
 
online repositories or collections of LOs worldwide 
(e.g. MERLOT, Wisc-Online). The Jorum Team 
made a comprehensive survey (JORUM, 2006) of 
the existing repositories and noticed that most of 
these systems do not store actual LOs. They just 
store metadata describing LOs, including pointers to 
their locations on the Web, and sometimes these 
pointers are dangling.  
The repositories usually offer several features 
including upload/download, single/federated search, 
comment/review and collection management. 
Despite these features, existent repositories present 
integration and interoperability issues. For example, 
the LOs in the previously cited repositories must be 
manually imported into an LMS. An evaluation 
engine (EE) cannot query the repository and 
automatically import the LOs it needs. In summary, 
most of the current repositories are specialized 
search engines of LOs and not adequate for 
interoperating with other eLearning systems, such as 
an automatic evaluation engine. 
Surveys (Holden, 2004) show that users are very 
concerned with interoperability issues. Some major 
interoperability efforts (Hatala, 2004) were made in 
eLearning, such as NSDL, POOL, EduSource and 
IMS DRI. The IMS DRI specification was created 
by the IMS Global Learning Consortium (IMS GLC) 
and provides a functional architecture and reference 
model for repository interoperability. The IMS DRI 
provides recommendations for common repository 
functions, namely the submission, search and 
download of LOs. It recommends the use of web 
services to expose the repository functions based on 
the Simple Object Access Protocol (SOAP, 2007). 
3 CRIMSONHEX REPOSITORY 
In this section we introduce the crimsonHex 
repository and we present its application interface 
(API) used both internally and externally. Internally 
the API links the main components of the repository. 
Externally the API exposes the functions of the 
repository to third party systems. To promote the 
integration with other eLearning systems, the API of 
the repository adheres to the IMS DRI specification. 
The IMS DRI specifies a set of core functions and 
an XML binding for these functions. In the 
definition of API of crimsonHex we needed to create 
new functions and to extend the XML binding with a 
Response Specification language. The complete set 
of functions of the API and the extension to the 
XML binding are both detailed in this section. 
3.1 Architecture 
The architecture of the crimsonHex repository relies 
on an API where the repository exposes a set of 
functions implemented by a core component that 
was designed for efficiency and reliability. All other 
features are relegated to auxiliary components, 
connected to the central component using this API. 
Other eLearning systems can be plugged into the 
repository using also this API. Thus, the architecture 
of crimsonHex repository is based on the Core 
component  that  exposes the main features of the 
repository, both to external services, such as the 
LMS and the EE, and to internal components - the 
Web Manager and the Importer. In the remainder we 
focus on the Core component, more precisely, its 
API and we introduce a new language for message 
interchange. 
3.2 Applications Interface 
The IMS DRI recommends exposing the functions 
as SOAP web services. Although not explicitly 
recommended, other web service interfaces may be 
used, such as the Representational State Transfer 
(REST) (Fielding, 2000). We chose to expose the 
repository functions in these two distinct flavours. 
SOAP web services are usually action oriented, 
especially when used in Remote Procedure Call 
(RPC) mode and implemented by an off-the-shelf 
SOAP engine such as Axis. REST web services are 
object (resource) oriented and implemented directly 
over the HTTP protocol, mostly to put and get 
resources. The reason to provide two distinct web 
service flavours is to encourage the use of the 
repository by developers with different 
interoperability requirements. A system requiring a 
formal an explicit definition of the API in Web 
Services Description Language, to use automated 
tools to create stubs, will select the SOAP flavour. A 
lightweight system seeking a small memory 
footprint at the expense of a less formal definition of 
the API will select the REST flavour. The repository 
functions exposed by the Core are summarized in 
Table 1. 
Each function is associated with the corresponding 
operations in both SOAP and REST. The lines 
formatted in italics correspond to the new functions 
added to the DRI specification, to improve the 
repository communication with other eLearning 
systems. 
To describe the responses generated by the 
repository we defined a Response Specification as a 
new XML document type formalized in XML Sche- 
ICEIS 2010 - 12th International Conference on Enterprise Information Systems
128