IMS Logo

IMS Abstract Framework: White Paper

Version 1.0

Copyright © 2003 IMS Global Learning Consortium, Inc. All Rights Reserved.
The IMS Logo is a trademark of IMS Global Learning Consortium, Inc.
Document Name: IMS Abstract Framework: White Paper
Revision: 01 July 2003 

IPR and Distribution Notices

Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the specification set forth in this document, and to provide supporting documentation.

IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on IMS's procedures with respect to rights in IMS specifications can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.

Copyright © IMS Global Learning Consortium 2006. All Rights Reserved.

If you wish to distribute this document or use this document to implement a product or service, you must complete a valid license registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm.

This document may be copied and furnished to others by Licensee organizations registered on the IMS website provided that the above copyright notice and this paragraph are included on all such copies. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to IMS, except as needed for the purpose of developing IMS specifications, under the auspices of a chartered IMS work group.

Use of this specification to develop products or services is governed by the license with IMS found on the IMS website: http://www.imsglobal.org/af/afv1p0/afv1p0speclicense.html.

The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.

THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTER'S OWN RISK, AND NEITHER THE CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.


Executive Summary

The IMS Abstract Framework is a device to enable the IMS to describe the context within which it develops its eLearning technology specifications. This framework is not an attempt to define the IMS architecture, rather it is a mechanism to define the set of interfaces for which IMS may or may not produce a set of interoperability specifications. The IMS Abstract Framework is so named because:

It is the intention of IMS that this Abstract Framework and the associated IMS specifications produced to realize the exchange of information between the identified services will be adopted in a manner suitable for a particular system requirement. The Abstract Framework is represented as a layered model, as shown in the figures below; this approach was derived from an extensive survey of the state-of-the-art for eLearning architectures.

Abstract Framework represented as a layered model


The core features of the framework are:

The IMS specifications are used to define the data structures, and when appropriate the permitted behaviors for the exchange of those data structures, between the Components. This interoperability is defined in terms of the exchange of the appropriate XML instances as defined by their XML Schema Definitions. The IMS specification of a service is such that any number of bindings can be created e.g., native XML, web services description language, Java, etc. It is the corresponding information and behavioral descriptions that enable interoperability between these different bindings. The Abstract Framework also describes the transport mechanisms that can be used to exchange the XML documents.

The adoption of the Abstract Framework will be based upon the creation of suitable Domain Profiles. Domain profiling is the process that is undertaken to define which specifications and the detailed usage of the data objects within each specification are to be adopted to provide a particular solution. The domain profiling process is based upon:

This is a 'living' document i.e., it is not archival in nature. Our ideas for various parts of the Abstract Framework are constantly being developed and so the information contained herein should always be considered in that context. This white paper is one of a set of closely related documents, the others being:

'Domain Conformance' will not be defined with respect to an IMS specification. These specifications contain too many optional features and are subject to regional and sector specific amendments e.g., the inclusion of the appropriate vocabularies. Therefore, conformance will be against a particular Conformance Profile that has been derived from the corresponding Domain Profile. Conformance certification is considerably easier when all of the functionality is mandatory and so it is important for Conformance Profiles to remove as much optional functionality as possible. In turn, there is a generic requirement that for a Domain Profile to be 'Strictly Conforming' to an IMS specification then an XML instance of the domain profile must also validate against the corresponding IMS specification.

Table of Contents


Executive Summary

1. Introduction
     1.1 Scope and Context
     1.2 Using this Document
     1.3 Structure of this Document

2. Requirements Definition
     2.1 Historical Context
     2.2 Underlying Principles
           2.2.1 Interoperability
           2.2.2 Service-Oriented
           2.2.3 Component-Based
           2.2.4 Layering
           2.2.5 Behaviors and Data Models
           2.2.6 Multiple Bindings
           2.2.7 Adoption
     2.3 Key Use Cases
     2.4 Scoping of the Abstract Framework

3. The Abstract Framework
     3.1 eLearning Systems
     3.2 The Functional Model
           3.2.1 The Content Perspective
           3.2.2 The Individual Perspective
     3.3 The Layered Model
     3.4 The Service Abstraction
     3.5 The Run-time Environment
     3.6 UML Representation

4. Applications, Services, and Components
     4.1 Applications
     4.2 Application Services
     4.3 Common Services
     4.4 Components

5. Infrastructure Layer
     5.1 The Composition of the Infrastructure Layer
     5.2 XML-Based Context Sub-Layer
           5.2.1 XML Context Messages
     5.3 XML-Based Envelope Sub-Layer
           5.3.1 SOAP
           5.3.2 SOAP with Attachments
           5.3.3 ebXML Transaction, Routing, and Packaging
     5.4 Generic Transport Sub-Layer
     5.5 Building the Infrastructure Stack

6. Service Bindings
     6.1 Binding of the Information Model
     6.2 Possible Bindings

7. Profiling and Conformance
     7.1 Profiling
     7.2 Conformance
           7.2.1 First Generation Conformance
           7.2.2 Second Generation Conformance

8. Bibliography

Appendix A - List of Acronyms

Appendix B - IMS Specification Roadmap

Appendix C - Related eLearning Architectures and Models
     C1 - Open Knowledge Initiative (OKI)
     C2 - IEEE Learning Technology Systems Architecture (LTSA)
     C3 - ADL Sharable Content Object Reference Model (SCORM)
     C4 - Schools Interoperability Framework (SIF)
     C5 - CMU Learning Technology System Architecture
     C6 - Open University Support System (OpenUSS)
     C7 - SUN Microsystems E-Learning Framework
     C8 - EU UNIVERSAL Project
     C9 - EU MOBIlearn Project
     C10 - UK Electronic Government Interoperability Framework (eGIF)
     C11 - UK Joint Information Systems Committee (JISC) Architectures
     C12 - Electronic Business XML

About This Document
     List of Contributors

Revision History

Index

1. Introduction

1.1 Scope and Context

The IMS Abstract Framework (IAF) is a device to enable the IMS to describe the context within which it will continue to develop its eLearning technology interoperability specifications. This framework is not an attempt to define the IMS architecture, rather it is mechanism to define the set of interfaces for which IMS may or may not produce a set of interoperability specifications. In the cases where IMS does not produce a specification then every effort will be made to adopt or recommend a suitable specification from another organization. The IMS Abstract Framework is so named because:

It is the intention of IMS that this Abstract Framework and the associated IMS specifications will be used as the starting point for the definition of many different eLearning systems. Each eLearning system will only adopt those parts of the IMS specifications that are of immediate use. This process is called the Profiling of the framework to define an architecture or reference model for a particular implementation domain; the process of profiling a particular specification is similar to refining the best practice to produce mandatory facets for an implementation domain. The Profiles can then be used to support conformance testing, based upon a particular conformance-profile for that domain, to ensure compliance to a particular requirement.

1.2 Using this Document

This is a 'living' document i.e., it is not archival in nature1. Our ideas for various parts of the IAF are constantly being developed and so the information contained herein should always be considered in that context. This white paper is one of a set of closely related documents, the others being:

At the current time only the Glossary and the Application, Services, and Components documents are available as support to this white paper. During the next twelve months the other documents will become available and consequently new releases of the IAF may be required. This white paper is constructed in three sections:

The IAF provides the context for the development of the next series of IMS specifications. The IMS specification development process uses the IAF to:

As with all of the IMS specifications there is a need to develop best practice for each of the activities summarized above. The IAF will be updated on a regular basis, typically once every six months, and as a part of other activities e.g., development of the learning activity model. While these updates will include important new information, the underlying principles of interoperable, component-based service definitions within a layered framework will not be changed.

1.3 Structure of this Document

The structure of this document is:

2. Requirements Definition
The definition of the requirements in terms of the underlying principles, scoping and use cases that define the context within which the abstract framework was developed;
3. The Abstract Framework
The definition of the overall structure of the abstract framework. This shows the relationship between the various sub-structures within the framework;
4. Applications, Services, and Components
The description of the ways in which the requirements and capabilities of applications, services and components can be defined;
5. Infrastructure layer
The detailed description of the Infrastructure Layer within the abstract framework. This includes the definition of the sub-layers and the identification of the core technologies that can be adopted to realize the corresponding functionality;
6. Service Bindings
A description of the different service bindings of the abstract framework and the implications for implementations based on these bindings;
7. Profiling and Conformance
A review of the profiling of the abstract framework and the accompanying IMS and other specifications to support a particular application, to define a specific architecture and to enable conformance;
Bibliography
The set of documents that are referenced within this document or which provide context to the contents of this document;
Appendix A - List of Acronyms
The list of acronyms used throughout this document;
Appendix B - IMS Specification Roadmap
A visualization of the development roadmap of the set of IMS specifications released and under development and their relationship and adoption timeline by other specification and architecture definition initiatives;
Appendix C - eLearning and Related Architectures & Models
Brief descriptions of each of the architectures and models currently in use or under development within the eLearning domain.

2. Requirements Definition

2.1 Historical Context

During the past 30 months IMS has released a unique set of interoperability specifications within the eLearning technology community (that work was founded upon an extensive range of experimental activities undertaken during the prior 24 months). During this period the various eLearning technology activities have begun a slow convergence that has been the result of extensive work behind the scenes by IMS and other organizations. It is now apparent that the current set of IMS activities and processes need to evolve to tackle the next series of technical issues [IMS, 02a]. As a consequence, IMS has produced its Abstract Framework to the context within which:

The current set of IMS specifications released and under development is listed in Table 2.1.

Table 2.1 - The set of IMS specifications.

IMS Specification Description Version Release Date
Meta-data
The tagging of any learning content.
1.2.1
December 2001
Enterprise
The exchange of Person and Group information.
1.1
July 2002
Learner Information Package
To exchange a Person's profile or life-long learning log.
1.0
March 2001
Question & Test
Used to support computer-based Assessment.
1.2.1
April 2003
Content Packaging
Exchanging content with its associated learning structures.
1.1.3
May 2003
Simple Sequencing
Adaptive learning routes through a set of learning content.
1.0
March 2003
Reusable Definition for Competency and Educational Objectives
A syntax for the description of competencies.
1.0
August 2002
Learning Design
The unified representation of different learning activities.
1.0
February 2003
Digital Repositories Interoperability
Search and retrieval using meta-data tagged resources distributed across a federated set of databases.
1.0
January 2003

The IMS also has a set of guidelines that have been released to act as support documents to the specifications. These guidelines are:

2.2 Underlying Principles

2.2.1 Interoperability

The specifications are focussed on the exchange of information between systems. The specifications make no assumptions on how the data is managed within the communicating systems.

2.2.2 Service-Oriented

The exchange between the systems is to be defined in terms of the services being supplied by the collaboration of the systems. This service collaboration could take many forms as well as being based upon peer-to-peer and client-server techniques.

2.2.3 Component-Based

The set of services will be supplied as a 'sea of components' that can be mixed and matched to form a particular service. A single component may provide all or a sub-set of a service but it will not provide more than one service.

2.2.4 Layering

The total set of services required to make an eLearning system will be modelled as a set of layers with each layer providing a clearly defined set of services. A particular layer will make use of the services in the layer below it and will provide services to the entities in the layers above it.

2.2.5 Behaviors and Data Models

A service will be defined in terms of its behaviors and data model. The behaviors will cause changes in the state of the data model and the state of the data model will only be altered as a result of a clearly defined behavior. It may not be appropriate to define every service in terms of its behavior and in these cases only the relevant data models will be developed.

2.2.6 Multiple Bindings

The information model is to be defined and represented using an established syntax and semantics. This will then enable automatic mapping of the information model into a range of different bindings. The bindings of immediate importance are XML and Web Services Description Language (WSDL), however Java bindings will also be supported.

2.2.7 Adoption

New specifications will only be created as required. Whenever possible, appropriate specifications will be adopted from wherever and either used 'as is' or modified to suit a particular set of requirements.

2.3 Key Use Cases

The service range covered by the abstract framework is based upon a core set of use cases that have been collected from:

In all cases these use cases have been taken from different parts of the world, with a particular focus on North America, Europe and Asia. This ensures that the internationalization aspects of eLearning services are considered.

Note: The Use Case Portfolio activity currently underway will complete its work in late 2003. That portfolio will be used as the basis for further material in this sub-section. The key use cases will be used to identify the set of applications and services that need to be supported.

2.4 Scoping of the Abstract Framework

The scope of the abstract framework is set by the requirements generating by analyzing:

Note: The Use Case Portfolio activity currently underway will complete its work in late 2003. That portfolio will be used as the basis for further material in this sub-section.

3. The Abstract Framework

3.1 eLearning Systems

A review of a wide range of eLearning systems is summarized in Appendix C and a synthesis of these is shown in Figure 3.1. Figure 3.1 is a logical architecture based upon layer abstraction. The equivalent physical architectural model is shown in Figure 3.2.

A logical architecture for an eLearning system

Figure 3.1 - A logical architecture for an eLearning system.

The logical representation consists of the following layers:

The physical representation (Figure 3.2) consists of the following core structures:

A physical architecture for an eLearning system

Figure 3.2 - A physical architecture for an eLearning system.

The abstract framework has to be designed such that it can be used to represent a wide range of architectures.

3.2 The Functional Model

There are several possible functional perspectives of an eLearning system. The two perspectives that are introduced herein are (it is these perspectives that dominate the IMS specification activity):

These functional perspectives identify where the interoperability points are within an eLearning system i.e., where the arrows are used in Figures 3.3 and 3.4. If these exchange points are exposed as external communications between different systems then an interoperability specification is required.

3.2.1 The Content Perspective2

A functional representation of the flow and management of content and related information within an eLearning system is shown in Figure 3.3.

A functional model for using learning material.

Figure 3.3 - A functional model for using learning material.

There are four key functional themes:

3.2.2 The Individual Perspective

A functional representation of the flow and management of personal and related information within an eLearning system is shown in Figure 3.4

The functional person model

Figure 3.4 - The functional person model.

Again, there are four key functional themes:

3.3 The Layered Model

The abstract learning framework can be represented as a layered model, as shown in Figure 3.5, consisting of four layers:

The layered model

Figure 3.5 - The layered model.

Access to a service is through the appropriate Service Access Point (SAP). Each service has a single SAP. A Component may support one or more SAPs (in an object oriented representation, a SAP could be supported by one or more operators where the class is itself the definition of the service).

In a distributed implementation of this layered framework, as typified in a webs services environment, the interaction between the services would as shown in Figure 3.6. In this interaction framework there are three categories of interface that must be supported by the Infrastructure layer namely:

Service interaction through the layers

Figure 3.6 - Service interaction through the layers.

Figure 3.6 shows that there are two types of interaction behavior that need to be specified to ensure interoperability, namely:

3.4 The Service Abstraction

One of the design principles for the IAF is the adoption of service abstraction to describe the appropriate eLearning functionality. The service is hidden behind a SAP and can only be accessed by using the SAP (an API could be one way in which the SAP is actually implemented). However, even though the service provision is hidden behind the SAP, an implementation requires that the behavioral capabilities of the service be defined. Once again an object-oriented representation is adopted. In Figure 3.7 we have a schematic representation of a service, namely:

This approach means that every service (application and common) must be defined using this form of abstraction. In many cases the services interact with each other e.g., an application service will use a common service. This interaction is reflected by the service invoking the SAP of the required service.

The service abstraction

Figure 3.7 - The service abstraction.

The adoption of UML as our representation framework means that each service must be defined by:

3.5 The Run-time Environment

Few of the current IMS specifications address the issue of content run-time interoperability. This is handled by other specifications e.g., the AICC CMI. However, IMS need to look at several run-time issues such as content-to-content communication, web service based content launch, etc. A schematic representation of the run-time architecture for content is shown in Figure 3.8.

A run-time environment model

Figure 3.8 - A run-time environment model.

Figure 3.8 shows that the interactions between a content server (LMS, LCMS, etc.) and the delivery clients (typically this includes the usage of a browser); note that in general the server will have a significant number of concurrent users who will be using different learning materials and who may or may not wish to halt and restart their activities at various times. The client should be able to 'pull-in' other content as and when required without requiring communication through the server. The client should also be able to launch multiple concurrent 'learning objects' that co-operate to provide the full learning experience. Therefore the client will need a range of plug-ins that will enable it to parse the content, render the content, etc. before actually playing the material to the user.

This scenario requires clear definition of the internal behaviors of the server and client in response to the user's interactions with the content. The nature of the content being exchanged between the server and client needs to be addressed - at present this is either web pages with or without other material that can be played with the appropriate plug-in or it is executables that can run natively on the client device. The increasing adoption of XML may mean that it is possible to encode content natively in XML - clearly not all content will be XML encoded e.g., video.

3.6 UML Representation

The layered representation shown for the IAF in Figure 3.5 can be redrawn in UML as shown in Figure 3.9. In many regards this is a more appropriate representation as the IAF does not enforce a robust layering in the way that it can be implemented.

A UML package diagram of the abstract framework

Figure 3.9 - A UML package diagram of the abstract framework.

The object oriented representation in Figure 3.9 shows the dependence between the different 'layers' or the services.

4. Applications, Services, and Components

The set of applications, services and components that can be developed using this abstract framework are detailed in [IMS, 03b]. In this Section we are going to describe the characteristics that are used to categorize an application, application service, common service and component.

4.1 Applications

In the context of eLearning, an application is the manifestation of a system or tool that delivers one or more eLearning application services to a user. The key differences between an application and an application service are that an application provides an interface to the user(s) and that it may use more than one application service. A template for the brief description of an application is shown in Table 4.1.

Table 4.1 - A template for the description of an application.

Application

Application Description:
A description of the application.
User Interface:
Definition of the form and structure of the user interface.
Application Service Dependencies:
Identification of the application services that are used to create the application.

Note: IMS will not be undertaking the specification of applications as a part of its specification development activity.

4.2 Application Services

In the context of eLearning, an application service is responsible for delivering a set of features that support the manipulation of a set of data objects for a common purpose e.g., an Assessment Service for online assessment. An application service may be created by aggregating other application services. A template for the brief description of an application service is shown in Table 4.2.

Table 4.2 - A template for the description of an application service.

Application Service

Service Description:
A description of the service.
Service Access Point:
Definition of the service access point i.e., the supported operators.
Core Attributes:
The definition of the core data objects that can be manipulated via the operators.
Core Components:
Identification of the component(s) that will be used to realize the application service.
Common Service Dependencies:
Identification of the common services that are invoked by the application service.
Infrastructure Dependencies:
Definition of the infrastructure required for the support of the application service.

Note: The core specification development activity undertaken by IMS will focus on the development of application services.

4.3 Common Services

A common service is responsible for delivering a set of features that are relevant to more than one application service and which, in many cases, are also required by non-eLearning systems e.g., an authentication service. A template for the brief description of a common service is shown in Table 4.3.

Table 4.3 - A template for the description of a common service.

Common Service

Service Description:
A description of the service.
Service Access Point:
Definition of the service access point i.e., the supported operators.
Core Attributes:
The definition of the core data objects that can be manipulated via the operators.
Core Components:
Identification of the component(s) that will be used to realize the common service.
Infrastructure Dependencies:
Definition of the infrastructure required to support the common service.

Note: IMS will not be undertaking the specification of common services as a part of its specification development activity.

4.4 Components

A component is the realization of an abstract model. IMS produces specifications of services that can be released as components that provide interoperability capabilities for eLearning systems. A template for the brief description of a component is shown in Table 4.4.

Table 4.4 - A template for the description of a component.

Component

Component Description:
A description of the component.
Source Specification(s):
The data objects for the original specification(s) and standard(s) from which this component is derived.
Interfaces:
Definition of the interfaces that expose the support functionality.
Core Attributes:
The definition of the core data objects that can be manipulated via the interfaces.
Protocol Requirements:
Definition of the protocols required to provide intra and inter component communications.
Component Dependencies:
Identification of the other components that are required by this component.

An IMS specification of a component is the UML-based representation of the abstract application programming interface. This representation describes the set of classes for the component and defines the data and information that is exchanged between the corresponding objects.

5. Infrastructure Layer

5.1 The Composition of the Infrastructure Layer

The IMS specifications are focused on data exchange interoperability. To this end they define a data model of the information to be exchanged and a behavioral model that encapsulates the data model and constrains the way in which the data can be manipulated. An IMS information model is the manifestation of this behavioral and data description and an information model will consist of one or more IMS Components (these will realize either all, or part of, an Application Service). These components can then be realized in a variety of ways; the defined IMS method is as an XML-based binding. As such, this binding describes the way in which the data is exchanged in the form of XML messages/documents, however the actual transfer of these structures requires, at the very least, an appropriate communications system.

The exchange of the data between the XML components within the abstract framework is defined through the Infrastructure Layer. A schematic representation of the system components in this infrastructure description is shown in Figure 5.1. This representation assumes that the system is loosely coupled e.g., as per web services.

The infrastructure layer

Figure 5.1 - The infrastructure layer.

In Figure 5.1 the key parts of this infrastructure are:

5.2 XML-Based Context Sub-Layer

The XML-based Context sub-layer is responsible for mapping the behaviors and associated operators of the XML components onto an appropriate sequence of XML messages. In principle there are a very large number of possible operators for even just a few components. There is however a number of common operators as described in Table 5.1. Table 5.1, or the Beshears Matrix (taken from work produced by the Enterprise working-group) was derived to identify the generic types of operation/methods required to enable the exchange of objects between an initiating system (initiator) and the responding system (respondent).

The corresponding state diagram requires that the completion of each method should be accompanied by the definition of which of the next methods can be invoked successfully on the same object.

The set of XML messages required to support the operators in Table 5.1 must include the following range of functionality:

Any of the messages may consist of the actual control and core data structures plus any associated resources e.g., jpeg files, etc.

Table 5.1 - The Beshears Matrix.


Respondent is the owner of the data. Request an action. Initiator is the owner of
the data.
Announce data availability for others.
Initiator is the owner of
the data.
Request synchronization.
Create
Create the object and return the allocated identifier. The object data structure is populated with the supplied data (only the mandatory parts are supplied). The respondent owns the object.
Broadcasting of the fact that an object has been created with the assigned identifier. The initiator owns the object.
Create the object using the supplied identifier. The object data structure is initialized as empty. The initiator owns the object.


createRequestObj()
createAnnounceObj()
createRequestObj()
Delete
Delete the object.
Broadcasting of the fact that the object has been deleted by its owner.
Delete the object.


deleteRequestObj()
deleteAnnounceObj()
deleteRequestObj()
Update
Change the object identified by the supplied ID. This could be a partial update of the component. This is a destructive write but only the fields changed are updated; it is not required to have sent a copy of the old data.
Announcement that the Object has been changed. This includes the information of which part of the object has been changed.
Change the object identified by the supplied ID. This could be a partial update of the component. This is a destructive write but only the fields changed are updated; it is not required to have sent a copy of the old data.


updateRequestObj()
updateAnnounceObj()
updateRequestObj()
Append
This is a functional adding of a new part to the identified parent. The commonality with 'update' equivalent needs thinking thru. This will need an equivalent delete part of object.
Announcement that the Object has been changed. This includes the information of which part of the object has been changed. This will need an equivalent delete part of object.
This is a functional adding of a new part to the identified parent. The commonality with 'update' equivalent needs thinking thru. This will need an equivalent delete part of object.


appendRequestObj()
appendAnnounceObj()
synchronizeRequestObj()

Read

Read the part of the object identified. If read 'All' then only return those parts permitted for view by the requester. Need to consider whether we get flat data or just the reference. readObj()

Query

This provides the capability to ask for all objects that comply with a particular set of search criteria. The details for all of the objects that comply with the search criteria are returned. queryObj()

The equivalent state diagram for the operators shown in Table 5.1 is given in Figure 5.2.

The state diagram for the core operators

Figure 5.2 - The state diagram for the core operators.

The start state is when the system is idle. An instance of an object can then be created one of three ways:

Once the object has been created all operations are now supported. Once the delete operation has been invoked the object is deleted and the system returns to the 'Idle' state. In Figure 5.2, it is assumed that the state of the operation is reported to the system initiating the operation.

5.2.1 XML Context Messages

In the case of loosely coupled systems then the Beshears matrix is implemented by the exchange of messages. In most cases this is a two-phase message exchange with the initiator of the interaction issuing the 'request' message and the respondent replying with the 'response' message; this is normally termed the 'request-response' service model. It is good practice to ensure that the response message carries back the state of the initial request i.e., was the request successfully process or not and if not what was the cause for the failure. Table 5.2 shows the types of information that should be sent in the request/response messages. The various status codes include:

Table 5.2 - The logical information contained in the request/response messages3.

Operation Request Message Information Response Message Information
Create
Initialization state
Transaction Identifier
Status Code
Transaction Identifier
Delete
Object identifier
Transaction Identifier
Status Code
Transaction Identifier
Read
Object identifier
Transaction Identifier
Object data
Status Code
Transaction Identifier
Update
Object identifier
Replacement data
Transaction Identifier
Status Code
Transaction Identifier
Append
Object identifier
New data
Transaction Identifier
Status Code
Transaction Identifier
Query
Search criteria
Transaction Identifier
Set of object data
Status Code
Transaction Identifier

WSDL is one representation method for the context sub-layer. This enables the operations and their associated logical messages to be expressed in XML but it also provides the binding of those messages to the equivalent transport mechanism (the envelope sub-layer). In the case of SOAP the XML message is carried in the body part of the SOAP message is defined using an XSD. A brief overview of WSDL is given in the IMS specification development methods and best practices guide [SpecDev, 03].

5.3 XML-Based Envelope Sub-Layer

The XML-based Envelope sub-layer is responsible for encapsulating the sequence of XML messages and associated resources produced by the XML-based Context sub-layer in a common XML messaging structure. The three available approaches are:

5.3.1 SOAP

The Simple Object Access Protocol (SOAP) is a messaging transport protocol that can be implemented using XML documents [SOAP, 03a], [SOAP, 03b], [SOAP, 03c]. A brief overview of SOAP is given in the IMS specification development methods and best practices guide [SpecDev, 03].

5.3.2 SOAP with Attachments

SOAP with Attachments is an extension of SOAP that is designed to enable non-XML information to be transported in the SOAP messages [SOAP, 01a]. A brief overview of SOAP is given in the IMS specification development methods and best practices guide [SpecDev, 03].

5.3.3 ebXML Transaction, Routing, and Packaging

The XML-based replacement of the Electronic Data Interchange (EDI) is termed ebXML. ebXML is based upon an extensive range of functionality ranging from the transaction exchange mechanisms to the routing table protocols [ebXML, 01a], [ebXML, 01b], [ebXML, 01c], [ebXML, 01d], [ebXML, 01e], [ebXML, 01f], [ebXML, 01g].

5.4 Generic Transport Sub-Layer

The Generic Transport sub-layer is responsible for transferring the XML messages across the appropriate data network architecture. The specification of these protocols is outside the scope of the abstract framework with the exception of ensuring that the XML-based Envelope sub-layer XML messages can be exchanged using the appropriate generic transport protocol. The detailed sub-structure of the generic transport sub-layer is:

5.5 Building the Infrastructure Stack

A working system requires the profiling of the entire infrastructure layer to support the appropriate application and common services. IMS will be producing a series of recommendations for a set of default infrastructure profiles as a part of its general web services binding project (to be completed by the end of 2003). One of the strengths of this layered approach is that the information model definition remains unchanged for different infrastructure profiles as it is the only the binding to that infrastructure that must be changed. Also, one infrastructure profile is capable of supporting many different information models provided the infrastructure sustains the minimum quality of service capabilities e.g., reliable end-to-end data delivery.

6. Service Bindings

6.1 Binding of the Information Model

The abstract framework is formally expressed as a UML representation. From an IMS perspective, this information model representation is traditionally bound to XML. In the new specifications XML will not be the only supported binding. This representation process is shown in Figures 6.1.

The UML representation relationships

Figure 6.1 - The UML representation relationships.

In Figure 6.1 it is shown that the logical representation of a system is derived from one or more classes that are grouped using packages. The package shows the dependencies between the classes. Each class consists of attributes (the data structures) and operators (the operations permitted on the data structures). The system is then constructed from these components as shown in the deployment diagram. The logical structure is represented using packages and it is representation that must be mapped using an appropriate binding. The advantage of this approach is that both the UML specification (the Information Model) and the corresponding set of bindings (of which XML and WSDL are just two) can be used for implementation. It is then possible to map together different implementations in different ways without loss of capability. The usage of an information model defines the common service capability between the different bindings.

The binding must take into account the attributes and operators of the class. In the original IMS specifications the XML DTDs and XSDs were a representation of the attributes of the class. The behavioral representations are defined through the class operators. In this case the binding is achieved by representing these operators as a series of messages exchanged by the communicating eLearning systems. The behavior is represented by the sequence of messages and the content of the control field in the headers of the messages (a message is assumed to consist of a header, containing the control fields, and the body, containing the data to be transferred).

A simple system showing the exchange of an object between two systems (the initiator and the respondent) is shown in Figure 6.2. In this system the initiator is requesting that the respondent create an object. In the initiator the 'createObject()' operator is invoked. The implementation of the object handler in the initiator translates this action into a 'createObject.request' XML message. This message is passed to the communications handler object that is responsible for transmitting this message to the respondent system via the communications network. The respondent communication handler may be required (this depends upon the protocol being implemented) to return an acknowledgment message that is used to inform the initiator that the request has been received. When the respondent actually completes the object creation request, notification of this may be returned to the initiator. This notification results in the transmission of the 'createObject.response' message. Its receipt at the initiator signifies that the request has been completed; this may or may not have resulted in the creation of the object and so some completion status codes should be returned via the 'createObject.response' message.

A typical sequence diagram for object information exchange

Figure 6.2 - A typical sequence diagram for object information exchange.

This sequence gives rise to three categories of information exchange, namely:

From the perspective of the fully layered abstract framework one possible sequence of events is as shown in Figure 6.3. In this scenario two systems (perhaps Enterprise systems) are exchanging information e.g., the initiator wishes to inform the respondent of the creation of a group. The systems use a common application service and one common service e.g., authorization. The infrastructure service underpins all of the other services and provides a reliable end-to-end communication infrastructure. The initiator is using remote services and as such the initiating objects must contain the interface definitions for the service. The respondent objects must contain the functionality to actual handle the service requests.

A possible full sequence diagram for object information exchange

Figure 6.3 - A possible full sequence diagram for object information exchange.

The initiating system issues the 'createObject()' which results in the object invoking the relevant application service. The application service issues the remote object creation instruction. This request requires the application service to obtain authorization though the corresponding common service. Once the authorization has been completed the actual object creation process is started and this request is sent to the respondent system. Once the request has been processed the appropriate response is returned to the initiator.

There are several ways in which this scenario could be developed:

It is important to stress that this scenario has been considered from the perspective of a generic binding of the services. The actual mapping is dependent on the nature of the services and the underlying capabilities in the Infrastructure Layer.

6.2 Possible Bindings

The advantage of using a robust method for representing the behavioral aspects of the information model means that, in principle, different bindings can be automatically generated by the usage of the appropriate tools and the application of suitable transformation rules. Figure 6.4 shows the set of possible bindings that can be created.

Possible set of bindings of the information model

Figure 6.4 - Possible set of bindings of the information model.

The key points from Figure 6.4 are:

The preferred IMS service binding approach is based upon:

It is possible to translate between different IMS bindings provided the binding of the information model has been reliably and consisted. This gives rise to the following forms of communications interoperability issues:

7. Profiling and Conformance

7.1 Profiling

Domain profiling is the process that is undertaken to define which specifications and the detailed usage of the data objects within each specification are to be adopted to provide a particular solution. Therefore, the development of SCORM, using this terminology, was domain profiling undertaken on behalf of the US Department of Defense. In general, a resulting 'Domain Profile' or 'Reference Model' will be based upon a variety of specifications and standards i.e., it will not consist, solely, of IMS specifications.

The domain profiling process is based upon:

The issue now becomes one of how to map between different domain profiles i.e., this is inter-domain interoperability (the domain profile supports intra-domain interoperability. In many cases different domain profiles will have a common core with only a small set of important differences. Mapping between domain profiles is simplified due to the usage of XML as the binding format. The mapping process is shown schematically in Figure 7.1 in which there are two, currently theoretical, domain profiles of QTI for SCORM and SIF. Each domain profile has its own XML schema that is the manifestation of the domain profile of the IMS QTI specification. These schemas are then used to validate the QTI-XML documents for the corresponding application profile. In each case the domain profile would be used by an appropriate system e.g., a SIF LMS (it is possible that a single LMS could in fact support both the SCORM and SIF domain profiles).

The advantage of the usage of XSDs is that an XML Stylesheet Transformation (XSLT) can be used to support the transformation between the XSDs; there would be one XSLT for each QTI transformation i.e., SIF-to-SCORM and SCORM-to-SIF.

Mapping between different application profiles

Figure 7.1 - Mapping between different application profiles.

The XSLT can be defined to handle the mapping of each element and attribute in the XSDs, including those defined in any extension - each domain profile must define the information model and XML binding for all extensions. In some cases it will not be possible to map some features from one domain profile to similar features in the other. In these cases there is a loss of functionality but this is a controlled situation in that the situations under which this loss occurs is well understood.

7.2 Conformance

'Domain Conformance' will not be defined with respect to an IMS specification. These specifications contain too many optional features and are subject to regional and sector specific amendments e.g., the inclusion of the appropriate vocabularies. Therefore, conformance will be against a particular Conformance Profile that has been derived from the corresponding Domain Profile. Conformance certification is considerably easier when all of the functionality is mandatory and so it is important for Conformance Profiles to remove as much optional functionality as possible.

7.2.1 First Generation Conformance

The key issue for conformance under the first-generation specifications is that they were not designed from the perspective of being testable i.e., exhaustive testing to show compliance is possible but not cost effective. The reason for this is that the specifications are designed to support practice and not to impose a best practice. This has produce specifications that a largely based upon optional features and so the derived conformance profiles can have many disjoint features. The current specifications are data models and so the associated behaviors are assumed in the information model and not defined in a behavioral model. Once again this leads to important discrepancies in the underlying assumptions used by different application profiles.

Each of the first-generation specifications contains a conformance statement. In most cases these statements are either a simple statement of the obvious i.e., the insistence that the information is followed or consists of a tick list of the features that are supposedly supported. In neither case is it possible to use the statements as a definitive guide to the compliance or otherwise of an implementation to the corresponding IMS specification.

7.2.2 Second Generation Conformance

An underlying objective in the creation of the second-generation specifications is the creation of specifications against which conformance can be clearly shown. This means that the second-generation specifications must:

Unlike the first-generation specification the second-generation ones will contain an extensive conformance specification that will form the basis for conformance against which the application profiles will build.

8. Bibliography
[ADL, 01a]
SCORM v1.2: The SCORM Overview, ADL, Version 1.2, October 2001.
[ADL, 01b]
SCORM v1.2: The SCORM Content Aggregation Model, ADL, Version 1.2, October 2001.
[ADL, 01c]
SCORM v1.2: The SCORM Run-time Environment, ADL, Version 1.2, October 2001.
[ADL, 02a]
SCORM v1.2: The SCORM Addendums, ADL, Version 2.0, January 2002.
[ADL, 02b]
SCORM v1.2: Conformance Requirements, ADL, Version 1.2, February 2002.
[CP, 03a]
IMS Content Packaging Information Model, T.Anderson, M.McKell, A.Cooper, W.Young, C.Moffatt and C.Smythe Version 1.1.3, IMS, May 2003.
[CP, 03b]
IMS Content Packaging XML Binding, T.Anderson, M.McKell, A.Cooper, W.Young, C.Moffatt and C.Smythe Version 1.1.3, IMS, May 2003.
[CP, 03c]
IMS Content Packaging Best Practice and Implementation Guide, T.Anderson, M.McKell, A.Cooper, W.Young, C.Moffatt and C.Smythe Version 1.1.3, IMS, May 2003.
[DRI, 03a]
IMS Digital Repositories Information Model, T.Barefoot, J.Mason and K.Riley Version 1.0, IMS, January 2003.
[DRI, 03b]
IMS Digital Repositories XML Binding, T.Barefoot, J.Mason and K.Riley Version 1.0, IMS, January 2003.
[DRI, 03c]
IMS Digital Repositories Best Practice and Implementation Guide, T.Barefoot, J.Mason and K.Riley Version 1.0, IMS, January 2003.
[ebXML, 01a]
ebXML Technical Architecture Specification, ebXML, Version 1.0.4, February 2001.
[ebXML, 01b]
ebXML Business Process Specification Schema, ebXML, Version 1.01, May 2001.
[ebXML, 01c]
Collaboration-Protocol Profile and Agreement Specification, ebXML, Version 1.0, May 2001.
[ebXML, 01d]
Message Service Specification ebXML Transport, Routing & Packaging, ebXML, Version 1.0, May 2001.
[ebXML, 01e]
ebXML Requirements Specification, ebXML, Version 1.06, May 2001.
[ebXML, 01f]
ebXML Registry Information Model, ebXML, Version 1.0, May 2001.
[ebXML, 01g]
ebXML Registry Services Specification, ebXML, Version 1.0, May 2001.
[eGIF, 02]
e-Government Schema Guidelines for XML, Version 3.0, Office of the e-Envoy, UK, December 2002.
[eGIF, 03a]
e-Government Interoperability Framework Part 1: Framework, Version 5.0, Office of the e-Envoy, UK, April 2003.
[eGIF, 03b]
e-Government Interoperability Framework Part 2: Technical Policies and Specifications, Version 5.0, Office of the e-Envoy, UK, April 2003.
[Ent, 02a]
IMS Enterprise Information Model V1.1 Final Specification, C.Smythe, G.Collier, C.Etesse and W.Veres, IMS Specification, July 2002.
[Ent, 02b]
IMS Enterprise XML Binding V1.1 Final Specification, C.Smythe, G.Collier, C.Etesse and W.Veres, IMS Specification, July 2002.
[Ent, 02c]
IMS Enterprise Best Practice & Implementation Guide V1.1 Final Specification, C.Smythe, G.Collier, C.Etesse and W.Veres, IMS Specification, July 2002.
[IEEE, 02]
IEEE P1484.1/D9 Draft Standard for Learning Technology: Learning Technology Systems Architecture (LTSA), IEEE LTSC Publication, Draft 9, 30th November 2002.
[IMS, 01a]
IMS Persistent Location-independent Resource Identifier Implementation Handbook, V1.0, M.McKell, IMS Specification, May 2001.
[IMS, 01b]
Using the IMS Content Packaging to Package Instances of LIP and Other IMS Specifications Implementation Handbook, V1.0, B.Olivier and M.McKell, IMS Specification, August 2001.
[IMS, 02a]
Minutes of the IMS System Components & Infrastructure Workshop: Cambridge USA 29th April - 1st May 2002, Colin Smythe, IMS, May 2002.
[IMS, 02b]
IMS Guidelines for Developing Accessible Learning Applications, Cathleen Barstow, Mark McKell, Madeleine Rothberg and Chris Schmidt, V1.0, IMS White Paper, June 2002.
[IMS, 03a]
IMS Abstract Framework: Glossary, Editor C.Smythe, IMS Publication, V1.0, July 2003.
[IMS, 03b]
IMS Abstract Framework: Applications, Services & Components, Editor C.Smythe, IMS Publication, V1.0, July 2003.
[LD, 03a]
IMS Learning Design Information & Behavioral Model, R.Koper, B.Olivier and T.Anderson Version 1.0, IMS, February 2003.
[LD, 03b]
IMS Learning Design XML Binding, R.Koper, B.Olivier and T.Anderson Version 1.0, IMS, February 2003
[LD, 03c]
IMS Learning Design Best Practice and Implementation Guide, R.Koper, B.Olivier and T.Anderson Version 1.0, IMS, February 2003
[LIP, 01a]