The Millau Valley, in Southern France. Valley of the river Tarn. One side to the other is around one and a half miles Valley sides are around 1 – 2,000 feet above the valley bottom.
The problem: We’re over here, with services for our students Account details Loan renewals Fine checking and payment Reservations …all available from our lovely Voyager OPAC. Our students are over there, in… Facebook iGoogle …and for academic work Moodle JISC gave us money to come up with a solution, as part of the JISC Rapid Innovation grants in 2009. But… Has to be Open Source Has to be something that other libraries could use – even if they’re not using Voyager! Has to be extendable. Not just for Facebook. What about other new social spaces that are appearing?
The solution: The Millau Viaduct The world’s tallest roadbridge. Designed by Norman Foster, who also designed the LSE Library About a mile and half long, 1,500 feet high.
One end of the bridge - plugging into Voyager Seem to be two ways: Voyager Web Service API and SIP We saw drawbacks in using the API Widgets would be closely coupled to how the API works. Voyager specific would mean upgrading to Voyager 7.1 We used SIP2 (3M’s Standard Interchange Protocol) Same level of functionality as web services for the functions we wanted to use Old school standard used by non-Voyager sites meaning middleware would adapt easily to other LMS Widely used (especially in the UK) Wouldn’t have to upgrade!
Built the middleware as a grails application
Grails Open source web application for the java platform Favours a ‘convention over configuration’ approach that reduces complexity – via use of sensible defaults allowing you to get on with agile iterative development ‘Scaffolding’ – time saving quick prototyping through automatic generation of a user interface Allows you to take advantage of best-of-breed technologies: Spring, Hibernate, SiteMesh, jUnit, log4j Built for RESTful services
Groovy Modern dynamic language that runs on JVM. Language of choice for Grails. Builds on Java but with relaxed syntax. A lot less boilerplate / ceremony. Get more done with substantially less code Modern power features for advanced features – DSLs, closures, MetaProgramming.
Uniform RESTful interface is provided by the middleware
Examples of developer documentation – this is what is used by the widgets.
Here’s you’ve got an authentication call with HTTP method and various status codes.
Docs also include code examples and screenshots of how to test it with GUI tools like Poster.
Here’s the doc for another call which retrieves the patrons loaned items.
It again features the response codes but also an example of a JSON response.
JSON is used as the data format – it’s lightweight in that it typically contains very little redundant repeating data that you commonly get in other formats.
The students are still over there. And we’re still over here. But now there is real traffic, with real working widgets.
Authentication to access Self Service functions. Retrieval of items on loan Renewals Retrieval and payment of fines
iGoogle Facebook Moodle VuFind
Bridges are surprisingly portable! The picture is of London Bridge, Lake Havasu, Arizona When the new London Bridge was built, the old one was sold to a private entrepreneur in 1967 – taken apart, shipped over to Arizona, and rebuilt brick by brick.
We built our code to be as portable and flexible as possible Should work with other sites Don’t need to be a Voyager site – should work with minimal recoding if you have SIP2
Worked with Falmouth Aberystwyth Open University All to varying degrees. Aberystwyth got something up and running in a day
Should you wish to get involved:-
This is the main Documentation page which covers the environment, what you need to install and setup.
This is the main configuration area where your site specific bits need to go.
The main slots are for: Voyager’s Oracle database and SIP server
Widgets and Middleware for Voyager and beyond
Widgets and Middleware
for Voyager and beyond
Michael Fake, Library Systems Manager
Shiraz Azizali, Lead Developer
London School of Economics