MINTED - Moodle Integration with Enterprise Data


Discussion

We also experimented with a REST-style approach to managing the integration between our enterprise database and the learning management system. A REST approach

REST - REpresentational State Transfer - is a lightweight approach to implementing webservices using HTTP and XML. Roy Fielding developed the ideas in his doctoral thesis. There are many resources on REST available on the web. A useful introductory article is available on the XML.Com site, How to Create a REST Protocol.

Scott Wilson, the original developer of the CETIS-ES toolkit, wrote about the idea of using a REST-style service to implement Enterprise Services here in a blog entry Enterprise Services URL (ESU): Simple Read-Only Access to Person and Group Information.

To illustrate how a RESTian approach to the IMS Enterprise Services group specification could work, let's consider a particular university course C1001. We want to be able to implement IMS-ES methods such as readGroup(groupID).

A key feature of the REST approach is that a system is conceptualised as consisting of a set of resources, each of which has its own URI. So first of all, we need to identify how we will address the Person/Group/Membership resources. For example, the group resource might be addressed with the URI:
http://sussex.ac.uk/minted/groups/C1001

The next issue we need to consider is how the data about our resources will be represented. For this, we will use the IMS Enterprise specification, and pass data around in the XML formats this defines.

The methods of the IMS Enterprise Services specification will be implemented using standard HTTP operations such as GET, POST and DELETE. So in order to implement a readGroup(groupID) request, our REST-aware client will run an http GET request for the URI http://sussex.ac.uk/minted/groups/C1001.

The REST-aware server is then responsible for issuing the appropriate calls on the database to carry out the required operations. The server will then take the response codes or data back from the database and convert this into the expected XML format. Appropriate HTTP status codes are also returned by the server.

This article describes in a little more detail how we set up a simple REST-style approach to IMS data transfer.

The MINTED project ran between 2006-2007 and was funded by JISC as part of the E-Learning programme