Want some non trivial example of Web services for e-learning? There is certainly plenty of trivial examples of stock quotes or weather at airports but, otherwise, welcome to the dark zone. We're involved in a JISC project which requires us to study how to deliver and consume Web services so this article attempts to share some (low) illumination on this challenging but interesting area. Before moving on, let's consider what's Web services and how are they different from normal Web pages/sites?
Now I could expose you with intimidating technical definitions and really frighten us all by providing some examples of marketing hype. But no. Instead I offer the following; mainly because it's helped me get a grasp of the concepts.
The Web as we have know it has been built on a publishing model, i.e. 'get page from server'. Arguably, what we also need are systems which support distributed computing applications, i.e. different functional elements making up a client application may be remote from each other but can still communicate because they follow some standard protocols which allow such communication.
So a Web service receives a request message from a client application. If it recognizes the message the service sends back a response message. The system will only work because both the message and response is sent in a standard XML format. There are a number ways of packaging these XML messages but the important thing is that both the requester and responder know what's required. Simple Object Access Protocol (SOAP) is a common, but by no means the only, way of packaging these messages. Also, it's important to have a sense of humour when you consider the S in SOAP because simple doesn't mean trivial:)
It's important to realize that, all being well, a load of XML formatted data comes back from the Web service and it's up to the client application receiving this to utilize and present it. It's also important not feel intimidated by your lack of instant understanding of the XML data storm that comes back at you. XML is really meant for machines, not humans, to process and that once a client application script has been set up it will transform all that nasty XML into something humans can make use of.
But have Web services moved beyond the visionary to the concrete?
The answer seems to be an ever so tentative yes.
I found a link to an interesting case study contained in the JISC briefing document for JISC 07/04 Circular: Regional e-Learning Pilot Projects around Distributed e-Learning. The example cited by JISC is the LeAP Project Case Study on implementing Web services in an education environment from the Tasmanian Department of Education.
It's important to grasp that the LeAP case study is an architectural and systems comparison study and not an end user or institutional case study. Nevertheless, parts of it make for an interesting read. For example, on page 43 I found:
“As with the IMS Framework, the ELF document is intended as a starting point for discussion, with refinement of the detail anticipated over time.”
The ELF document is the JISC et al E-Learning Framework which has moved beyond being just 'a starting point for discussion' since it is the conceptual engine for the eTools projects now being undertaken under the distributed e-learning strand of the JISC E-Learning Programme.
And , of course there is the Isoph Blue LMS I mentioned in my recent article E-Learning Frameworks and Tools: Is it too late? - The Director's Cut along with mentions of the IBM Lotus Learning Management System and other major players, like Oracle iLearning, Saba, and Docent, with interests in emphasizing the Web services aspects of their products.
As part of my own orientation I thought it would be useful to try and track down some examples of non-trivial Web services which could be of direct or indirect relevance to e-learning.
Let's start with the indirect relevances.
As I mentioned in my ALT-C 2000 paper, a good example of an implementation which 'consumes' the output of a number of services is Erik Benson's All Consuming site. All Consuming uses Web services from Weblogs.com, Amazon.com, Technorati.com, and Alexa.com. All Consuming publishes aggregated information by literally 'consuming' RSS information about books from weblogs supplementing this with information about the book (acquired via Amazon's public Web services). To this mix All Consuming adds news information about each book via the Google public Web services. The screenshot below illustrates this aggregation.
All Consuming adds value to existing services in ways never evisaged by the original developers of the individual services. Are Google and Amazon unhappy about this? Not at all, the net effect is to steer more 'eyeballs' towards their 'products'.
Let's pose a related scenario (or use-case if you want:)
A member of Faculty publishes an online reading list of books for a module and wants to supplement this with additional information about the readings with some from Amazon.com. Why Amazon? Because the company is still, arguably, the leader in providing Web services and publishing information about them for consumption by third parties. Put more simply, they have a big database of information to which they allow access by independently developed computer/network applications so makes for a great test bed. Google Web services would also be a great alternative. However, if you are unhappy with Mammon providing the information, substitute Amazon for any similar non-commercial Web service (if they exist).
How could we do this? Amazon provides a number of techniques for getting at that information and it's not necessary to use SOAP/WSDL because the company's Web services options also includes XML over HTTP, e.g.
“http://xml.amazon.com/onca/xml3?t=[Your Associates ID]&dev-t=[Your developer token]&BrowseNodeSearch=[BrowseNode]&mode=books&sort=[sort type]&offer=All&type=lite&page=[page number]&f=xml”
Worked examples of the above technique can be found in Dan O'Brien's article Amazon Web Services: A Brief Introduction Using PHP. Further demonstrations and downloads of the XML approach can be also found at Jaap van Ganswijk's collection of free scripts. We happen to be PHP oriented here but similar functionality is available in most mainstream computer languages.
Other interesting sites built on services include Philipp Lenssen's FindForward site which does all things Google.
So from the above examples you can perhaps see that significant parts of the commercial world appear to believe that Web services are important aspects of their activity. Although they are commercially oriented, that doesn't mean that accessing the services needs to cost any more than your development effort. Creating some potentially useful client/Web applications from these 'free' commercial services should be possible.
But what about the non-commercial e-learning world?
It's been much more difficult to track down non-trivial examples of Web services development outside of the big commercial players. Nevertheless, here are a few promising initiatives.
Ariadne's Knowledge Pools looks promising (see Web Services to Achieve Interoperability Between eLearning Applications). However, there is a paucity of examples of how to connect to the Knowledge Pool. The existing documentation appears to make the assumption that a local system is being installed and that we are all Java enterprise oriented. Nevertheless, personal contact proved fruitful and the Aridane people have been very helpful and put me in touch with the person charged with the development of a PHP client for the Ariadne Web services. So it may be possible for us to try this out in the near future.
We also have the JISC Connect services but their SOAP interface information isn't quite ready, but I'm informed that this should be available in the near future.
And, of course, there is the joint JISC, DEST (Australia), Industry Canada, E-Learning Framework (ELF), and the service-oriented projects which will arise from this.
So from where I'm sitting and with the exception of Amazon and Google it's all a bit pending and works-in-progress at the moment, but yet All Consuming does illustrate the potential. What we need, therefore, is an FE/HE equivalent of All Consuming which at a stroke would sell the concept of Web services to an otherwise bemused community.
We also need, urgently, demonstrations of services which are not necessarily dependent on a portal/portlet model. That's not to say that I don't feel portals are important. They are. However, there's a lot more people around who can demonstrate services which aren't dependent on having access to a portal than there is with access to, and knowledge of, portal technologies and their associated implementations, e.g.WSRP.
So JISC Connect, JORUM, TOIA, Ariadne et al take a leaf from Amazon and Google's book and let's make it as simple as possible to send requests and get responses from your services and in that way viral marketing will do the rest!
Now if someone could just bring out say a demonstrator online discussion' service, or an assignment service or that reading list service … 🙂