View
228
Download
3
Tags:
Embed Size (px)
Citation preview
Matthew Grove [email protected] Environments for Research in Archaeology Project, University of Reading.
Recycle Bridge: an easy to use way of
consuming web applications within a portal framework.
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).
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).