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.
So our solution: a bridge – or rather middleware.
A single piece of software to carry most of the traffic across that gap
Only have to build the majority of that infrastructure once
Plug in at either end to whatever software / environment is running
Library system (Unix, SQL, web service, SIP2…)
Social space (PHP, HTML, Javascript, .NET)
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 stands for JavaScript object notation
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.
As it’s JavaScript developers can consume it directly in their widgets.
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:-
Documentation exists!
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