300 likes | 517 Views
Recycle Bridge: an easy to use way of consuming web applications within a portal framework. Matthew Grove m.grove@rdg.ac.uk Virtual Environments for Research in Archaeology Project, University of Reading. JISC Conference, April 2008. Background – the VERA project.
E N D
Recycle Bridge: an easy to use way of consuming web applications within a portal framework. Matthew Grove m.grove@rdg.ac.uk Virtual Environments for Research in Archaeology Project, University of Reading. JISC Conference, April 2008
Background – the VERA project • Virtual Research Environment for Archaeology. • A JISC funded collaboration. • Building on VRE 1 project. • Developing computer-based tools for archaeologists. • VERA took part in the 2007 Silchester excavation. • It rained a lot!
VERA components simplified A Virtual Research Environment for Archaeology Digital tools for archaeological excavations
Outline • This talk describes our experiences integrating web applications into portal frameworks. The talk is split into two parts: • Part 1 explains why you would want to do this integration and what the issues are. • Part 2 introduces the Recycle Bridge, which is our solution to this problem. • The message is: we don’t want re-write or fork code and you don’t have to. • The VRE II VERA project is used as an example throughout the talk.
What do we mean by integration? • There are a huge number of well maintained web applications which have had a lot of time and money invested in them. • Many of these applications could be used to fulfill the needs of research projects. • By integration we mean assembling a system from several existing web applications and making the whole system look / behave the same from a users perspective. • We don't want to re-write everything or fork established projects if possible. If we fork things, who is going to maintain them? Do we have the money to maintain them?
Two approaches to integration • You could take the existing application and make a theme (or skin) so it looks like the rest of your portal. • You could embed an existing application inside a portal without re-writing the application (using bridges and scrapers). • In the VERA project we have tried both skinning a portal to integrate it with an existing system and embedding web applications inside a portal.
Embedding apps inside portals • The tricky bit is how to get a web application to act like a normal portlet from a user perspective without rewriting the whole thing! • There are existing tools such as the Portlet Bridge (now un-maintained) which let you embed some web applications inside portlets by using web scraping techniques.
When web scraping fails... • VERA is committed to getting an application called the IADB inside a standards compliant container. • The IADB is 15 thousand lines of PHP and JavaScript, we are not going to re-write it. • We have worked with the web scraping tools during VRE I, and we know that the existing web scraping tools can't cope with a site like the IADB. Mainly because of the nested iframes and complex JavaScript that the IADB uses. • In this kind of scenario other people have tried using iframes but you can end up with an application which does not integrate well into the portal from a users perspective. The main issue is the lack of single sign-on (you log into the portal then have to log into the embedded application again).
Single sign-on for embedded apps • The elegant part of our solution is to use the client (web browser) to link the authentication information between the portal and the embedded application being consumed. • We wrote a portlet called the Recycle Bridge which sets a cookie containing the username of the user logged into the portal.
Recycle Bridge cont. • The Recycle Bridge uses an iframe to display the embedded application inside the portal. • You have to write an authentication plugin or patch for the application that is embedded to use the cookie (and suppress the applications log in screen). • From the users perspective the application looks like part of the portal. • There are settings for the Recycle Bridge to alter the appearance of the iframe to try and make the integration seamless from the users perspective.
Security for the cookie • Essentially the web application needs to have a way to trust the cookie contains authentic user information. • The Recycle Bridge shares a secret security token (salt) with any web application you want to embed. When you set things up you must provide a unique salt in the configuration files. • The Recycle Bridge includes an MD5 hash with the cookie based on the salt and username to provide a way for the authentication plugin to check that the cookie has not been tampered with.
Writing the authentication plugins • This plugin approach is language agnostic - we can support any language that can read a cookie. • We have split the process into two steps: • We have a generic library which provides the functions to read the cookie and check it is valid. • You will need a plugin or patch for the specific application you want to embed.
Plugins cont. • We have written the authentication library for PHP and had external contributors provide Python and Ruby versions. • We have plugins for: • MediaWiki (runs Wikipedia). • Wordpress which is a very popular blogging app. • We also wrote a patch for IADB, we have check in access to the IADB source repo.
We want your code! • The Recycle Bridge portlet, plugins and libraries are all released under the GPL. • We want more plugins and libraries. • The Recycle Bridge SVN repo is set up to make it very easy for us to accept code from you. • Even if you write a plugin for some obscure application, if you split the cookie functions out into a separate file (library) you will be helping anyone who wants to embed an application written in that language. • We are happy to help you write your plugin, especially if it uses a language we don't yet have the library for.
Contributions so far • After the last talk on the Recycle Bridge we received some external contributions: • Python library from Hugo Mills (OMII UK). • Ruby library from David Newman (MyExperiment). • The SVN repository is hungry for more.
We also want your portals! • The Recycle Bridge is a JSR-168 portlet. • As uou may know, unfortunately portal containers do not have standard XML files for portlet deployment. • We want help testing Recycle Bridge in your container, we don't have the manpower to install and test every container. • If you tweak anything to get the Recycle Bridge to work in a portal, we want your changes!
Summary • In this talk we have tried to convince you not to re-invent the wheel when it is not necessary when developing web portals. • We introduced the Recycle Bridge which is one tool that can be used to integrate existing web applications in to your portal.
Future work • We hope the Recycle Bridge will be useful for other people who are heavily invested in applications they don't want to / can't afford to re-write as portlets or who want to use web applications which are maintained by the community (like MediaWiki). • We would like your help writing adding support for more applications to the Recycle Bridge.
Links • http://vera.rdg.ac.uk/software/ - Recycle Bridge homepage (with code). • http://vera.rdg.ac.uk/ - Virtual Environments for Research in Archaeology (VERA) project. • http://www.portletbridge.org/ - Portlet Bridge (best of the web scrapers).
Offline Demo • These screen shots are from the live, working site.
Links • http://vera.rdg.ac.uk/software/ - Recycle Bridge homepage (with code). • http://vera.rdg.ac.uk/ - Virtual Environments for Research in Archaeology (VERA) project. • http://acet.rdg.ac.uk/~mjeg/blog.php - Blog aggregating all of my research activities. • http://www.portletbridge.org/ - Portlet Bridge (best of the web scrapers).