Introduction to the IMS Enterprise Specifications

An introduction to IMS Enterprise and IMS Enterprise Services

Juliette White, Institute of Educational Technology, The Open University

Universities and other educational institutions often need to keep information about students, courses and course enrolments synchronised between different IT systems. For instance they may want the data from their student record system replicated to their virtual learning environment or to other more specialist software applications.

IMS Enterprise and IMS Enterprise Services are specifications giving standard ways to interchange such information. They are both based on a concept of people, groups, membership of people in groups and relationships between groups. This enables a certain amount of flexibility so that the specification can be used in slightly different contexts, but does mean that you need to decide exactly how your data maps to this model.

The latest version of the specifications at the time of writing are IMS Enterprise 1.1 and IMS Enterprise Services 1.0. It is important to realise that IMS Enterprise and IMS Enterprise Services are two separate specifications. IMS Enterprise is an XML format for this data (see an example provided by the MINTED project) whereas IMS Enterprise Services is a specification for a Web Services API to access and manipulate such data with calls that let you do things such as creating people and groups, and updating and retrieving the information about the people and groups.

You would use IMS Enterprise if you want to use batch processing for exchanging the data, and IMS Enterprise Services if you wished to use web services. Technically IMS Enterprise Services is supposed to supercede IMS Enterprise, but in practice you would still use IMS Enterprise if you do not wish to use web services. The formats in which data is returned by IMS Enterprise Services are pretty much compatible with the IMS Enterprise data format.

IMS Enterprise is quite widely supported by student record systems and virtual learning environments, although to our knowledge there is no definitive list, whereas support for IMS Enterprise Services is currently pretty non-existent. Several JISC projects have done work involving one of the specifications. Recent project using IMS Enterprise Services include BEWT, (linking SITS and Bodington) JoinIn (linking groups in Moodle and LAMS), MINTED (linking Moodle and a JDBC-compliant database), and Smirkboard (linking Smirkboard and Questionmark Perception).

Despite the lack of built-in support so far for IMS Enterprise Services, there are two development kits to make it easier to write servers and clients for the specification - the CETIS Enterprise SDK for Java and the Sweet.net toolkit for .NET. They each provide skeleton server and client code so that you do not need details of the specifications or need to worry about the handling of web services. In theory, it should be possible to use for instance a CETIS Enterprise SDK client and Sweet.Net server, but we're not sure if this has actually ever been tried! We're not aware of similar toolkits for any other languages such as PHP.

If you want to use either specification in a production setting then you will also need to make sure that you deal with authentication and error handling issues. You will also need to be careful about how you handle the mapping between your data and the people and groups used by the specifications - you may find in some cases that there is no natural fit between the two. It is also worth bearing in mind that, especially in the case where you have direct database access to your student records or the systems you use do not already support the relevant specification, then IMS Enterprise and IMS Enterprise Services may well be too heavyweight and an ad hoc system may be more reliable and easier to implement.

The CETIS Enterprise SIG covers many areas of interest to 'Enterprise' implentations of IT systems in education including the IMS Enterprise and IMS Enterprise Services specifications. There is an also an IMS Enterprise mailing list.