KEMBAR78
Saba Content | PDF | Web Server | Internet & Web
0% found this document useful (0 votes)
2K views48 pages

Saba Content

Creating AICC-Compliant Content for Interoperability with Saba Revision 2 is provided under non-disclosure and is subject to periodic revision based on input from market research, testing, and resource planning. All other trademarks are property of their respective owners.

Uploaded by

Bobby Flagg
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2K views48 pages

Saba Content

Creating AICC-Compliant Content for Interoperability with Saba Revision 2 is provided under non-disclosure and is subject to periodic revision based on input from market research, testing, and resource planning. All other trademarks are property of their respective owners.

Uploaded by

Bobby Flagg
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 48

Creating AICC-Compliant

Content for Interoperability


with Saba

Revision 2.3
For use with Saba3 Release5
Copyright
Creating AICC-Compliant Content for Interoperability with Saba
Revision 2.3
For use with Saba3 Release4
Revised: February 5, 2003
Copyright © 1997-2003 Saba Software Inc. All rights reserved.
This information is provided under non-disclosure and is subject to periodic revision based on
input from market research, testing, and resource planning. It is intended for rough planning
purposes only. It is not a commitment to deliver and may not be incorporated into any contract.

Trademarks
Saba, Saba Software Inc., the Saba logo, Saba Learning Network, Saba Learning Provider
Network and/or other Saba products referenced herein are either trademarks or registered
trademarks of Saba. All other trademarks are property of their respective owners.
All other brand or product names are trademarks of their respective companies or organizations.

Contacting Saba
Telephone (650) 696-3840

Fax (650) 696-1773

Mailing 2400 Bridge Parkway


Address Redwood Shores, CA 94065-1166
USA

Web http://www.saba.com
Contents

Contents

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Part I — Overview of AICC Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6


Who is AICC?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
AICC Compliance Criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Overview of Saba’s AICC Compliance. . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Benefits of AICC Compliance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Part II — Integrating AICC-Compliant Content with Saba . . . . . . . . . . . . . . 10


How is My AICC-Compliant Content Provided? . . . . . . . . . . . . . . . . . . . 10
AICC Content Provided as a Single URL . . . . . . . . . . . . . . . . . . . 10
AICC Content Provided as Course Structure Files . . . . . . . . . . . . 10
Setting Up AICC Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Specifying the Host Name of the Saba Server. . . . . . . . . . . . . . . . . . . . 13
Importing AICC Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Publishing AICC-Compliant Content to the Learning Catalog . . . . . . . . 16
Ordering AICC-Compliant Content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Launching AICC-Compliant Content . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Launching AICC Content Provided as a Single URL . . . . . . . . . . . 18
Launching AICC Content Provided as Course Structure
Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Part III — Designing AICC-Compliant Content for Interoperability with


Saba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Sequence of Events for AICC Interoperability with Saba . . . . . . . . . . . . 20
Interoperability Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Parsing the Launch String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Content Browser Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Communicating with Saba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Request Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.2 • 3


Contents

Request Message Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27


getParam Command Format . . . . . . . . . . . . . . . . . . . . . . . . . . 28
putParam Command Format . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Lesson Data File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
putInteractions Command Format . . . . . . . . . . . . . . . . . . . . . . 32
Interactions File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
exitAU Command Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Response Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Response Message Format . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Lesson Initialization Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Creating the Course Structure Files . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Course Structure File Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
any.AU Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
any.CRS Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
any.CST Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
any.DES Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

Part IV — AICC Interoperability with Older Releases of Saba. . . . . . . . . . . 46

Part V — Other References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

4 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.2


Introduction

Introduction
This document provides an overview of the AICC specification for managing and tracking web-
based learning objects and discusses the elements of the AICC specification that are
implemented in Saba’s learning solution.
This document is intended for two audiences:
 Users of Saba’s learning solution
 Saba’s content provider partners
For users of Saba’s learning solution, this document describes how to load and launch AICC-
compliant content in Saba.
For Saba’s content provider partners, this document describes how to design AICC-compliant
interfaces within their WBT/CBT courses. These interfaces enable courses, learning objects or
course players to interoperate and exchange data with Saba’s learning solution.
Specifically, this document includes the following sections:
 Part I — Overview of AICC Compliance
 Part II — Integrating AICC-Compliant Content with Saba (for Saba customers)
 Part III — Designing AICC-Compliant Content for Interoperability with Saba (for Saba
content partners)
 Part IV — AICC Interoperability with Older Releases of Saba
 Part V — Other References

Please This document describes functionality that may not be included with the release of Saba that you
Note are currently running. Until you have verified that your Saba release fully supports AICC Level I
compliance, you should use this document as a planning tool only. Please contact your Saba
Account Representative/Project Manager for release details.

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3 • 5


Part I — Overview of AICC Compliance

Part I —
Overview of AICC Compliance
Who is AICC?
The Aviation Industry CBT (Computer-Based-Training) Committee (AICC) was formed in 1988
to address the need for standardization of CBT delivery platforms within the aviation industry.
Due to its strong advocacy of standards for online learning and the generalized nature of those
standards, the AICC’s recommendations have gained wide adoption across multiple industries.
For online learning content developers concerned about reuse and interoperability, the AICC
recommendation provides an excellent set of guidelines for structuring content.
The AICC certifies training products that comply with AICC Guidelines and Recommendations
(AGR’s) via its independent test labs. Currently, the AICC offers formal certification testing for
the following AGR’s:
 AGR-006 — Computer Managed Instruction (File-based)
 AGR-010 — Web-based Computer Managed Instruction
The types of products that can be certified as compliant to AGR-006/AGR-010 include:
 CMI Systems — Systems for managing student access to learning content and tracking
results.
Although it provides a much broader spectrum of functionality than a typical CMI, Saba
belongs in this category for the purposes of AICC compatibility.
 Assignable Units — Computer-based learning content modules that can be launched and
tracked from an AICC-compliant CMI system.
 CBT Courses — Groups of assignable units bundled with an AICC-compliant course
structure.
 Interfacing Systems — Special-purpose systems designed to support multiple users that can
be launched/tracked as an AICC Assignable Unit, e.g. test-bank systems and virtual class
room systems.
 Authoring Systems — General purpose tools for creating online learning content.
For more information about the AICC, see the AICC web site at www.aicc.org.

6 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3


Part I — Overview of AICC Compliance

AICC Compliance Criteria


The AICC specification for CMI Interoperability (CMI-001) defines three groups of compliance
criteria for learning management system interoperability:
 Launching Interoperability — supports the launching of AICC-compliant content from a
learning management system. AICC-compliant content, indifferent of its origin, authoring
tool, or location, can be launched by a learning management system.
 Communications Protocol Interoperability — supports communications between the
learning management system and AICC-compliant content. Here, the CBT/WBT course and
the learning management system exchange registration, student, scoring, timing, status and
other data parameters using the HTTP-based AICC/CMI protocol (HACP).
 Course Structure Interoperability — supports the ability to import CBT/WBT course
structure files into the learning management system. This allows learners to see the course
structure, launch a particular lesson within the CBT/WBT, and view mastery score results for
each lesson. For course structure interoperability, AICC defines the following four levels of
compliance:
a) Level I — Defines course contents and course structure

b) Level II — Defines simple prerequisites and completion requirements for assignable


units

c) Level IIIa — Defines complex prerequisites and completion requirements for


assignable units

d) Level IIIb — Defines the relationship of objectives to assignable units


For more information about the AICC compliance criteria, refer to the CMI Guidelines for
Interoperability (AICC document CMI-001) located at
http://www.aicc.org/pages/down-docs-index.htm#WHITE

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3 • 7


Part I — Overview of AICC Compliance

Overview of Saba’s AICC Compliance


Saba is certified for Level I compliance to the AGR-010 as a CMI system.

Note Support for AICC Level I compliance is available in Saba release 3.3.0 and above
as baseline functionality. It is also available in Saba release 3.2.5.2 with an upgrade
patch.

AICC complicance in Saba is based on the 2.x version of the CMI00: AICC/CMI Guidelines for
Interoperability specification. Saba supports the HTTP-based HACP protocol for runtime
communications defined in the 2.x version of the AICC specification. Saba does not support the
API-based communications protocol defined in the 3.x version of the AICC specification.
In Saba, interoperability with AICC content includes support for the following capabilities:
 Import AICC content
 Export AICC content
 Launch AICC content
 Track AICC content and store learner results
 Record learner interactions data for each question on a test
When a learner on Saba launches AICC-compliant content, Saba passes information to the
content about the learner, such as profile and preference information and information about any
bookmarks the learner might have set during previous visits to the content. When the learner
completes a learning session, the content passes results information back to Saba. This
information can include completion status, test scores, time spent, and number of attempts. For
tests, this information can also include the learner response, result, time spent, and relative
weighting for every question on the test. Saba stores this information in the database and
provides view access to learners and their managers.

Benefits of AICC Compliance


To promote learning throughout the enterprise, Saba’s learning solution deploys a web-based
learning catalog that displays the learning materials selected by the Saba customer. These
learning materials are provided by Saba’s content partners. They include books, videos, tests,
web-based (WBT) and computer-based (CBT) courses, audio tapes, instructor-led courses, and
other educational content. Saba customers rely on Saba and its content partners to provide a
complete learning solution that supports all members of the extended enterprise, including
customers, distributors, employees and suppliers.
AICC compliance makes it possible for Saba to manage and track online learning content,
regardless of the vendor who produced it and without requiring the Saba customer to map any
elements of the content to internal Saba data structures. Saba manages the purchase, registration,

8 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3


Part I — Overview of AICC Compliance

and launch of online learning content and communicates with the content application to
exchange data in live time using an AICC-defined communications protocol. This enables Saba
to track and record information about the learner’s interactions with the content, such as
bookmarking, test scores, and timing information. Saba also can import AICC-defined course
structure files provided by the content developer to load the course structure automatically.
Saba’s AICC compliance ensures that Saba’s customers can purchase AICC-compliant learning
objects and integrate them seamlessly into their learning solution. Saba will launch the content
and track and record user interactions with it.
By designing to AICC-compliance guidelines, Saba’s content partners can ensure that the
learning content they develop will interoperate and exchange data with Saba’s learning solution.
This positioning provides leveraged access to Saba’s network of learning customers.

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3 • 9


Part II — Integrating AICC-Compliant Content with Saba

Part II —
Integrating AICC-Compliant Content with Saba
This section describes how to make AICC-compliant content available to learners on Saba. It is
intended for catalog developers and content integrators working with Saba Learning Enterprise.
When AICC-compliant content is provided in Saba, the Learning Catalog displays the titles
available in the system. Learners can browse these titles and request content objects. Saba
handles the ordering and registration for these requests, launches the content, and tracks and
records user interactions with the content.
The following sections describe how to load and launch AICC-compliant content in Saba.

Important! This information applies only to releases of Saba that support full AICC Level
I compliance (release 3.2.5.2 and above). If you are not running one of these
releases, please refer to “Part IV — AICC Interoperability with Older Releases
of Saba” on page 46 of this document for more information on AICC
compliance in your Saba release.

How is My AICC-Compliant Content Provided?


Saba can interoperate with AICC-compliant content that is provided in either of the following
ways:
 as a single URL pointing to the content source
 as a set of course structure files representing a list of lessons, each of which can be launched
and tracked independently by Saba

AICC Content Provided as a Single URL


If your AICC-compliant content is provided as a URL, Saba launches and tracks the content as a
single entity. While the course may contain multiple lessons, Saba cannot launch or track the
lessons independently.

AICC Content Provided as Course Structure Files


Your content vendor may provide a set of AICC-specified course structure files for AICC-
compliant content. The course structure files contain metadata for the course, including a course
description, information about the author, version, and creation date of the course, a definition of
the course structure including a URL for each of its content modules, and parameters for
launching the content over the Web.

10 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3


Part II — Integrating AICC-Compliant Content with Saba

If these files are available, Saba can launch and track each content module (i.e., lesson)
independently. Learners have the ability to view the content structure from within Saba and
launch any content module (i.e., lesson) defined in the structure.
At a minimum, vendors of AICC-compliant content should provide four course structure files
with the following file extensions:
 .CRS
 .DES
 .AU
 .CST

Note Additional course structure files may also be provided. Saba does not currently
support these.

For information about creating the course structure files, see “Creating the Course Structure
Files” on page 41.
Saba uses the information provided in these files to display details of the course structure in the
Learning Catalog and to parse out a URL for launching each content module (i.e., lesson)
defined in the course structure. When a learner requests a content module (i.e., lesson) from an
AICC-compliant course, Saba retrieves the appropriate URL from the database and launches the
content by calling the URL via HTTP.

Setting Up AICC Content


Since AICC-compliant content is accessed by calling a URL via HTTP, the content must be
hosted on a machine with a running Web server. The content can be hosted remotely by the
content vendor, or locally.
If the content is hosted by a content vendor, it will typically be hosted on an external machine
that is accessed via the Internet.
If you are hosting the content locally, you will need to load the content files onto a machine with
a running Web server. This machine is the content server. The content server can be the same
machine on which your Saba application server is running, or it can be a different machine.
When the content server and application server are both running on the same machine, this
configuration is called a “two-node scenario”. When the content server and application server

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3 • 11


Part II — Integrating AICC-Compliant Content with Saba

are running on different machines, it is called a “three-node scenario”. The following diagram
illustrates these configurations:

Two-Node Scenario Three-Node Scenario

Application
Server Application Content Server
Content Server
Server

Learner's Learner's
Machine Machine

Figure 1: Server Configurations for Content Hosting

Whether you import AICC-compliant as a URL or a set of course structure files does not have
any bearing on the server configuration you use. You can import externally hosted content as
well as internally hosted content in either format. However, since the URL information for
accessing the content server is encoded in the course structure files, you must define the content
server that will be used for hosting the content and identify the access URL before the course
structure files are created, or else edit the files after the access URL is known.
Any time you change the directory structure on the content server or move the content to a
different content server, you will need to update the access URL and reimport the content.

12 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3


Part II — Integrating AICC-Compliant Content with Saba

Specifying the Host Name of the Saba Server


When Saba launches a content module, it passes a URL-encoded launch string to the content
application. The URL-encoded launch string includes the Saba session ID, any launch
parameters provided by the content developer, and the Saba call-back address. The call-back
address is the URL that the content application will use to communicate with Saba.
The call-back URL that Saba passes is based on the value provided for a user-configurable
property called AICC/SCORMHost, which is defined in the SabaAdmin web administration tool
(SabaAdmin).
To define the AICC/SCORMHost property, follow the steps below:

1. Log in to the SabaAdmin web administration tool:


You can access the SabaAdmin web administration tool from any Web browser networked
to the Saba application server by using the following URL:
http://< machine_name>/SabaAdmin
where:
<machine_name> is the name of your Saba application server.

Note If you do not have the necessary privileges to access SabaAdmin, consult
your Saba system administrator.

2. In the sidebar, click the SabaWeb link under Site Administration.

3. Select Saba Learning Online.

4. In the AICC and SCORM host field, enter the host name and port (if the host listens on a port
other than 80) for the machine on which Saba is installed.
If the content is hosted on a machine within the local domain, it is sufficient to specify the
machine name of the Saba application server. For example:
machine
If the content is hosted on a machine in a remote domain, you need to specify both the
machine name and the domain name. For example:
machine.domain.com

5. Click the Save Settings button.

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3 • 13


Part II — Integrating AICC-Compliant Content with Saba

Importing AICC Content


AICC-compliant can be imported either as a URL or using the four AICC course structure files
(*.AU, *.CRS, *.CST, and *.DES). For more information on the differences between these
formats, see “How is My AICC-Compliant Content Provided?” on page 10.
Once imported, AICC-compliant content can be published to the Learning Catalog for access by
learners, or it can be exported.
To import AICC-compliant content, follow the steps below:

1. Log in to your Saba application on the Web.

2. Select Content from the Go To: drop-down list at the top of the page to access the Content
module.

Note If you do not see Content in the Go To: drop-down list, you probably do not
have sufficient privileges to use the Content module. See your Saba system
administrator.

3. Using folder tree, navigate to the folder into which you want to import the content, and click
the Add new item link inside the folder.
Or, to import the content at the top level of the repository, click the Add Content link on the
left-hand sidebar.

4. Select AICC from the Content Format drop-down list.

5. Click Next.
You see the Content Objects Details page.

6. Define the fields provided on the Content Object Details page.


For AICC content, you need to provide the following required information

Field Description

Name Enter a name for the content object you are creating.
Note This is a required field.

Communications In the Communications Protocol drop-down list, AICC is the only


Protocol valid selection, and it is automatically selected.

14 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3


Part II — Integrating AICC-Compliant Content with Saba

Field Description

Player Leave this field empty.


By default, AICC-compliant content runs inside a standard browser
window.
Note Some content vendors may provide a content player that
manages the interaction between content and the learning
management system.

Security Domain Use the picker to select a security domain for the content object.
Note This is a required field.

You are ready to select the content file(s) to import.

7. Select the radio button for URL or Add Course Structure Files depending on how your AICC-
compliant content is provided.
 If your content is provided as a URL, select the URL radio button, and enter the full URL
name.
 If your content is provided as four AICC course structure files (*.AU, *.CRS, *.CST, and
*.DES), select the Add Course Structure Files radio button, and click the Browse button
to select each of the files into the appropriate fields.

Note All the course structure files must have the same file name.

8. After selecting the content file(s), click Save to parse the files and create/save your content
object.

Note If you modify any of the course structure files and need to reimport it, you must
reimport all four files.

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3 • 15


Part II — Integrating AICC-Compliant Content with Saba

Publishing AICC-Compliant Content to the Learning Catalog


After importing your AICC-compliant content into the Saba content repository, you can publish
it to the Learning Catalog, at which time it becomes orderable by learners.
You can publish your content to a new product or to an existing product. If you publish the
content to an existing product, and the product already has content associated with it, you must
indicate whether to overwrite the existing content with the new content or cancel the publishing
operation.
To publish your content to a product (new or existing), follow the steps below:

1. Open the content object whose content you want to publish.

2. On the Content Object Details window, click the Publish option in the title bar.

Note Note the Publish checkbox must be selected for the Publish option to appear.

You see the Publish page.

3. Select the New Product or Existing Product radio button, then click Next.
You see the following prompt:
Add competencies associated with content object to product?

4. Select Yes or No, then click Next.

Caution If the product to which you publish has competencies already defined for
it, choosing to add the competencies associated with the content object will
overwrite the competency model already defined.

5. If you are creating a new product, you see the Product Detail page.
Select/enter values for the required fields (those in red).
a) In the Product Group field, select a product group.

b) In the Part Number field, enter a part number.

c) In the Name field, enter a name for the product.

d) Make sure the List Price and Unit Cost fields are set to 0.00.

e) Use the calendar picker to select an Available From date.

6. Click Save when you finish defining the product.


The system creates the product with the associated content.

16 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3


Part II — Integrating AICC-Compliant Content with Saba

7. If you are publishing to an existing product, you see the Select Product page. Do the
following:
a) Select the product to which you want to publish the content.

b) Click Save to save the content association.


If the product already has content associated with it, you see the following prompt:
The product already has a content object associated with it. Are
you sure you want to overwrite this content?

c) Select Yes or No, then click Next.


If you choose to overwrite, the system updates the product with the new content.

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3 • 17


Part II — Integrating AICC-Compliant Content with Saba

Ordering AICC-Compliant Content


Once your AICC-compliant content has been published to a product, it is available in the
Learning Catalog for ordering by learners.
To order a product from the Learning Catalog, follow the steps below:

1. Select My Saba from the Go To: drop-down list at the top of the page to access the My Saba
module.

2. Select the Learning Resources tab.

3. In the Title field on the left-hand navigation bar, enter the name of a product with AICC-
compliant conntent, and click Go.

4. On the results page, click the shopping cart icon next to the product.
You see the Confirm Your Request popup window.

5. In the Confirm Your Request popup window, enter your password, and click Check Out.
Saba processes your order.

Launching AICC-Compliant Content


After requesting the appropriate catalog item from the Saba Learning Catalog, and once the
request is confirmed (if the business rule is configured to require confirmation), the learner can
launch the content from his or her Enrollments page.

Launching AICC Content Provided as a Single URL


For content that is provided as a single URL, when a learner launches the content, Saba calls the
specified URL and displays the content in a new browser window. Also on launch, Saba passes
learner profile and session information to the content application as well as progress and status
information about any previous attempts made by the learner. As the learner progresses through
the content, Saba tracks results information (as reported by the content application). This may
include completion status, scores obtained on any quizzes or tests, time spent, location of page
last visited, detailed information about learner responses to individuals questions on a test, and
other information.
When the learner reaches the end of the course, he or she typically clicks an Exit button or
performs some similar action to notify the content application that he or she is finished. This
action returns the learner to Saba and closes the content browser window.

18 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3


Part II — Integrating AICC-Compliant Content with Saba

Launching AICC Content Provided as Course Structure Files


For content that is provided as a set of course structure files, when a learner launches the course,
Saba opens the course menu page, which displays a list of content modules (i.e., lessons). Each
lesson in the course menu can be independently launched by the learner.
When the learner selects a lesson, Saba calls the selected content module using the URL
extracted from the *.AU course structure file and displays the content in a new browser window.
Also on launch, Saba passes learner profile and session information to the content application as
well as progress and status information about any previous attempts made by the learner. As the
learner progresses through the content, Saba tracks results information (as reported by the
content application). This may include completion status, scores obtained on any quizzes or
tests, time spent, location of page last visited, detailed information about learner responses to
individuals questions on a test, and other information.
When the learner reaches the end of a lesson, he or she typically clicks an Exit button or
performs some similar action to notify the content application that he or she is finished. This
action does not move the learner forward to the next lesson in the course. As per the AICC CMI
specification, Saba (as the CMI) is responsible for content sequencing. Consequently, exiting the
content closes the browser window in which the current lesson is displayed and returns the
learner to the course menu page in Saba, where he or she can select another lesson.

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3 • 19


Part III — Designing AICC-Compliant Content for Interoperability with Saba

Part III —
Designing AICC-Compliant Content for
Interoperability with Saba
Saba provides Level I compliance to the AICC specification governing interoperability between
a learning management system and CBT/WBT content. This specification is defined in the
document CMI Guidelines for Interoperability (AICC document CMI-001) located at:
http://www.aicc.org/pages/down-docs-index.htm#WHITE

Content that is compliant to the AICC specification will interoperate with Saba. This section
discusses some of the key issues involved with designing AICC-compliant content for
interoperability with Saba. It is intended for content developers.

Sequence of Events for AICC Interoperability with Saba


The following steps detail the complete sequence of events that occurs when AICC-compliant
content interoperates with Saba.

Note Depending on how content is designed, the content may be communicating with
Saba via client-side JavaScript, client-side applet, or client-side plugin. It might also
be communicating with Saba from a content server. Saba does not differentiate
between these communications agents. For simplicity, this document refers to the
communications agent on the content side as the content application.

Table 2: Sequence of Events for AICC Interoperability with Saba

1. Saba content administrator imports AICC-compliant content into the Saba content
repository using either the AICC course structure files or a simple URL.
Note If course structure files are provided, Saba parses the course structure files and
extracts the URL for each content module (i.e., lesson). Saba also parses out some
additional information, including any web launch parameters, from these course
structure files.

2. Saba content administrator publishes the content object representing the AICC-compliant
content to the Saba Learning Catalog as a product, class, or course.

3. Saba learner requests the catalog item with AICC content from the Saba Learning Catalog,
registers for it, then selects a content module (i.e., lesson) to begin.

20 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3


Part III — Designing AICC-Compliant Content for Interoperability with Saba

Table 2: Sequence of Events for AICC Interoperability with Saba

4. Saba launches the selected lesson in a new browser window and passes a launch string
with a URL-encoded call-back address to the content application.

5. Content application receives the launch string and parses out the call-back address.

6. Content application issues a getParam command to Saba to request initialization data,


including information about the learner and the learner’s previous interactions with the
lesson.

7. Saba responds to this request by sending the initialization data to the content application in
a plain text output stream.

8. Content application receives the initialization data as a plain text input stream and parses
the relevant data.

9. Content application creates a lesson data file (or a set of temporary variables) to store
progress and performance data that will be passed back to Saba upon completion of the
current session.

10. Learner progresses through the lesson.


11. Content application accumulates and stores progress and performance data in the lesson
data file or temporary variables and can optionally issue intermittent putParam and
putInteractions commands to send this information to Saba.

12. Learner completes the lesson and performs some action to notify the content application of
completion.

13. Content application issues a final putParam command to send Saba the accumulated
performance and progress data from the lesson data file or temporary variables.

14. Saba returns a response message indicating acknowledgement of receipt.


15. Content application issues an exitAU command to notify Saba that the learner has
completed the lesson.

16. Saba returns a response message indicating acknowledgement of receipt.


17. Learner clicks Exit button or performs some similar action to exit the content and return to
Saba.

18. Back in Saba, learner selects the next lesson and the appropriate steps are repeated.
19. On course completion, Saba moves the course to the learner’s Transcript and updates the
Transcript with the performance data received from the content application.

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3 • 21


Part III — Designing AICC-Compliant Content for Interoperability with Saba

Interoperability Requirements
To ensure interoperability with Saba, there are three key areas that content developers must
address when designing AICC-compliant content:
 Parsing the Launch String
 Communicating with Saba
 Creating the Course Structure Files
The following sections describe these requirements in detail.

Parsing the Launch String


When Saba launches an AICC content module (i.e., lesson), it retrieves the URL for the lesson
(which it has parsed from the any.AU course structure file and stored in the database) and then
calls the lesson using a launch string. Via the launch string Saba passes URL-encoded
information to the content application. This information includes a call-back address, a session
ID, and any parameters provided by the content developer for launching the lesson over the web.
The launch string uses the following syntax:
<lesson_URL> ?aicc_sid=<saba_session>&aicc_url=<call-back_URL>
&<web launch parameters>

where:
 <lesson_URL> is the address for calling the lesson (provided by the content developer in the
any.AU course structure file).
 ? is a delimiter that separates the lesson URL from the data being passed to the content
application.
 <saba_session> is a unique AICC session identifier generated by Saba (it is different from
the Saba session ID).
 & is a delimiter that separates name/value pairs.
 <call-back_URL> is the call-back address that the content application will use to
communicate with Saba.
 <web launch parameters> are parameters for launching the lesson over the web (these are
provided by the content developer in the web_launch field of the any.AU course structure
file).

22 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3


Part III — Designing AICC-Compliant Content for Interoperability with Saba

For example:
http://www.cbtvendor.com/cbt1/au001.html?aicc_sid=saba123
&aicc_url=www.saba.com/sabaweb&vendorparam=001005

Note All values to the right of the ? delimiter must be URL-encoded. In URL-encoded
format, hex values must be used to represent the following characters:
/ — %2F

To parse out the call-back address:

1. Search for the string aicc_url=

2. Read in the data following this string.

3. Stop reading in data at the first instance of the ampersand character (&) or at the end of the
launch string, whichever comes first.
To parse out the Saba session identifier:

1. Search for the string aicc_sid=

2. Read in the data following this string

3. Stop reading in data at the first instance of the ampersand character (&) or at the end of the
launch string, whichever comes first.

Content Browser Window


When a learner in Saba launches AICC-compliant content, Saba displays the content in a new
browser window. The browser window is subdivided into two frames (a content frame and a
communications frame) with an invisible divider. Saba uses the communications frame (located
at the bottom of the window) as a bridge for sending data to the content application without
disrupting the content display.
Although this structure is not flexible, the structure of the content is completely open. Content
developers can design the content to behave any way they choose. For example, to display the
content in a browser independent of Saba, you can launch a plugin or use JavaScript to launch a
new browser window. You can also include code to minimize the Saba browser window. While
this makes the content appear to be entirely separate from Saba, communications between the
content application and Saba are still channeled through the communications frame in the Saba
browser window.
When the learner reaches the end of a lesson, he or she typically clicks an Exit button or
performs some similar action to notify the content application that he or she is finished. This

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3 • 23


Part III — Designing AICC-Compliant Content for Interoperability with Saba

action must trigger the sending of an exitAU command to Saba. Upon receipt of the exitAU
command, Saba closes the browser window in which the content is being displayed. If the
content is a single-AU course, this action returns the learner to the Enrollments page in Saba. If
the content is a multiple-AU course, it returns the learner to the course menu page in Saba, where
he or she can select the next lesson.

Communicating with Saba


The Saba server and the AICC-compliant content application exchange data before and after
each learning session and can also exchange data while the learning session is in progress,
depending on how the content developer chooses to design the content. The information
exchanged includes the following:
 Who is the learner initiating this learning request? What is his or her unique learner ID?
 What course has the learner selected and what is the course’s objective?
 What individual lessons are contained within the course?
 Has the learner entered this course before? From what point in the course should the learning
session resume?
 Are any pre- or post-assessment tests offered with the course?
 What result did the learner achieve upon completing the course, a lesson within the course or
a test associated with the course?
 How much time did the learner spend interacting with the course, a lesson within the course
or a test associated with the course?
 For tests, detailed information about each question is reported, including the question type,
the learner’s response, the correct answer, and the outcome.
Some of this data is generated from the learner’s interaction with the content, and some, such as
the course objective, is defined in the metadata provided by the course structure files. Saba
maintains a learner database that stores all of the learner’s skills information and a log of all the
learner’s learning sessions.
Data is exchanged using the HTTP-based AICC/CMI protocol (HACP) defined in the AICC
specification. There are two types of messages exchanged via HACP between the Saba server
and content application:
 Request messages
 Response messages
All messages sent by the content application to Saba are request messages. Request messages
use the HTTP “POST” method with a content type of application/x-www-form-urlencoded.
All messages sent by Saba to the content application are response messages. Response
messages have a content type of text/plain.

24 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3


Part III — Designing AICC-Compliant Content for Interoperability with Saba

For both types of messages, message data is contained in the “entity-body” of the message and
uses a convention called “name/value pairs”. Name/value pairs are defined as follows:
<name>=<value>
where <name> represents a field name and <value> represents the data stored in the field.
The following sections provide additional detail on the messaging protocol.

Request Messages
During each learning session, the content application can send the following types of request
messages to Saba:
 getParam
 putParam
 putInteractions
 exitAU
When a learner launches a content module (i.e., lesson), the content application sends a request
message with the getParam command to Saba. The getParam command requests the learner’s
ID and information about the learner’s status based on previous learning sessions. Saba returns a
response message that provides the requested data. As the learner progresses through the
content, the content application collects progress and performance data in a temporary lesson
data file. When the learner completes the lesson, the content application issues a request message
with the putParam command to send the contents of the lesson data file to Saba. Saba records
this information in the learner’s course log.

Note Although the getParam and putParam messages are required only once per session
(getParam at launch and putParam at completion), the content application can
optionally send multiple getParam and putParam messages during the session.

If the content application includes one or more tests with questions, it can optionally collect
information about the learner’s interactions with the individual questions, such as the question
type, the learner’s response, the correct answer, and the outcome. At any time, the content
application can send a request message with the putInteractions command to report the question-
level interaction data to Saba. The putInteractions command is entirely optional. It can be sent
multiple times on a per-question basis, or a single message can include interactions data for
multiple questions. Saba records this information in the learner’s course log.
Finally, when the learner completes the session, the content application issues a request message
with the exitAU command. The exitAU command tells Saba to close the learner’s session log.
Saba updates the learner’s Transcript page with any interaction and performance data provided
by the content application.

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3 • 25


Part III — Designing AICC-Compliant Content for Interoperability with Saba

The request message commands are described in the table below:


Table 3: HACP Request Message Commands

Command Function Usage Rules

getParam Requests input data Required


from Saba. This command can be issued multiple times per
session.
Note If the command follows one or more
putParam commands, the values received
will reflect any changes caused by the
putParam's.

putParam Sends output data to Required


Saba. The putParam command can be issued multiple
times per lesson. Each time it is sent, the output
data is overwritten. Saba records and stores the
data from the final putParam message in a
learning session.
Note If a getParam is issued after multiple
putParam's, the values returned by Saba
will reflect the last putParam values.

putInteractions Sends output data to Optional


Saba. The putInteractions command can be issued
multiple times per session. Each time it is sent,
the output data is appended to the output data
from previous messages. Saba records and
stores the data from all putInteractions messages
in a learning session.

exitAU Notifies Saba that the Required


learner has completed This command must be issued at the end of a
the content module. learning session.

26 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3


Part III — Designing AICC-Compliant Content for Interoperability with Saba

Request Message Format


The following table describes the format for HACP request messages:
Table 4: HACP Request Message Format
Category Description

Content Type application/x-www-form-urlencoded

Request Type POST

Format The format of the entity-body is as follows:

Name Value
command= <AICC Command>
version= <AICC Spec Version>
session_id= <Unique Session Identifier>
au_password= <Assignable Unit Specific Password> [OPTIONAL]
aicc_data= <AICC Data>
<end of buffer>

where:
• <AICC Command> is either getParam, putParam, putInteractions, or
exitAU
• <Unique Session Identifier> is a unique Saba session identifier, as
parsed from the content launch string
• <Assignable Unit Specific Password> is an optional password for the
assignable unit
• <AICC Spec Version> is the major version of the AICC specification
currently being used (e.g., 2.0)
• <AICC Data> is URL-encoded performance data for the current session
provided in “name/value pair” format (applies to putParam and
putInteractions commands only)

Usage Rules • The message body must be URL-encoded.


• The name/value pairs can appear in any order.
• If an optional value is to be omitted, the name must also be omitted.
• The name of each parameter is not case-sensitive.

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3 • 27


Part III — Designing AICC-Compliant Content for Interoperability with Saba

Table 4: HACP Request Message Format


Category Description

Examples command=GetParam&version=2.0&session_id=saba123

command=PutParam&version=2.0&session_id=saba123
&aicc_data=[core]
lesson_location=end
lesson_status=pass
score=87
time=00:23:15

Note In URL-encoded format, hex values must be used to represent the


following characters:
[— %5B
]— %5D
= — %3D
: — %3A
& — %26
carriage return — %0D
line feed — %0A

getParam Command Format


The getParam command requests data from the Saba server, including the learner’s ID and
information about the learner’s status based on previous learning sessions.
As defined by the AICC specification, the getParam command is sent in an “entity-body” using
the HTTP POST method. The “entity-body” is a string that concatenates together a series of
name/value pairs.
To send the getParam command:

1. Contact the Saba server using the call-back URL.

28 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3


Part III — Designing AICC-Compliant Content for Interoperability with Saba

Note You can parse the call-back URL from the query string that was appended to
the content launch string.

For example:
In the content string shown below:
http://www.cbtvendor.com/cbt1/au001.html?aicc_sid=saba123
&aicc_url=www.saba.com/sabaweb&vendorparam=001005

Note All values to the right of the ? delimiter must be URL-encoded.


The call-back URL is www.saba.com/sabaweb.

2. Send the getParam request in an entity-body string.

Note You will typically generate the entity-body string using a scripting language,
such as Java, Perl, or JavaScript.

Regardless of how it is generated, Saba must receive the entity-body string in the following
format:
command=getparam&version=<aicc_version> &session_id=<saba_session>&aicc_data=
where:
 <aicc_version> is the version of the AICC specification currently being used.
 <saba_session> is a unique identifier for the Saba session, as parsed from the content
launch string.

For example:
command=getparam&version=2.0&session_id=saba123&aicc_data=

Note In URL-encoded format, hex values must be used to represent the following
characters:
= — %3D
& — %26

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3 • 29


Part III — Designing AICC-Compliant Content for Interoperability with Saba

putParam Command Format


The putParam command sends progress and performance data recorded from the current session
to the Saba server.
As defined by the AICC specification, the putParam command is sent in an “entity-body” using
the HTTP POST method. The “entity-body” is a string that concatenates together a series of
name/value pairs.
To send the putParam command:

1. Contact the Saba server using the call-back URL.

Note You can parse the call-back URL from the query string that was appended to
the content launch string.

For example:
In the content string shown below:
http://www.cbtvendor.com/cbt1/au001.html?aicc_sid=saba123
&aicc_url=www.saba.com/sabaweb&vendorparam=001005

Note All values to the right of the ? delimiter must be URL-encoded.


The call-back URL is www.saba.com/sabaweb.

2. Send the putParam request in an entity-body string.

Note You will typically generate the entity-body string using a scripting language,
such as Java, Perl, or JavaScript.

Regardless of how it is generated, Saba must receive the entity-body string in the following
format:
command=putparam&version=<aicc_version> &session_id=<saba_session>
&aicc_data=<aicc_data>
where:
 <aicc_version> is the version of the AICC specification currently being used.
 <saba_session> is a unique identifier for the Saba session, as parsed from the content
launch string.
 <aicc_data> is the progress and performance data collected in the lesson data file for
the current session. It is URL-encoded and provided in “name/value pair” format.

30 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3


Part III — Designing AICC-Compliant Content for Interoperability with Saba

For example:
command=putparam&version=2.0&session_id=saba123&aicc_data=[core]
lesson_location=end
lesson_status=incomplete
score=75
time=00:34:54
[core_lesson]
this can be any data you want

Note In URL-encoded format, hex values must be used to represent the following
characters:
[— %5B
]— %5D
= — %3D
: — %3A
& — %26
carriage return — %0D
line feed — %0A

Caution Do not include NULL data parameters in the putParam command.

Lesson Data File


After receiving a response from Saba to its getParam request, the content application must create
a temporary repository for collecting progress and performance data as the learner progresses
through the content. This temporary repository can be variables, files, a database, or whatever
storage format the content application chooses to use. For the purposes of this document, we call
this temporary repository the lesson data file.
The lesson data file is typically initialized with the information sent by Saba in response to the
getParam request. As the learner progresses through the lesson, the content application collects
interaction and performance data and stores it in the lesson data file. The contents of the lesson
data file are sent back to Saba with a putParam request.

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3 • 31


Part III — Designing AICC-Compliant Content for Interoperability with Saba

Section 5.2 of the AICC specification provides guidelines for constructing the lesson data file.
The table below shows the data (organized by group names and keywords) that Saba currently
stores:
Table 5: Saba-supported Contents of Lesson Data File

Group Name Function of Group Keywords

[Core] Information about the results of Lesson_Location (required)


(see section 5.2.1 in the the learner’s interaction with the Lesson_Status (required)
AICC specification) lesson, including “page last
visited” information. Score (required)
Time (required)

[Core_Lesson] Can be any information used by Data is undefined and may


(see section 5.2.2 in the the lesson. be unique to each lesson.
AICC specification) The information is stored by Saba
and returned the next time the
learner launches the lesson.

[Objectives_Status] Status information about the J_ID.1


(see section 5.2.4 in the objectives defined for the lesson. J_Score.1
AICC specification) Saba will return the objectives J_Status.1
information the next time the
learner launches the lesson.

The core items (which the lesson must make available) should appear first, followed by the
optional items listed alphabetically.

putInteractions Command Format


The putInteractions command sends information about learner interactions with individual
questions on a test recorded from the current session to the Saba server.
As defined by the AICC specification, the putInteractions command is sent in an “entity-body”
using the HTTP POST method. The “entity-body” is a string that concatenates together a series
of name/value pairs.

32 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3


Part III — Designing AICC-Compliant Content for Interoperability with Saba

To send the putInteractions command:

1. Contact the Saba server using the call-back URL.

Note You can parse the call-back URL from the query string that was appended to
the content launch string.

For example:
In the content string shown below:
http://www.cbtvendor.com/cbt1/au001.html?aicc_sid=saba123
&aicc_url=www.saba.com/sabaweb&vendorparam=001005

Note All values to the right of the ? delimiter must be URL-encoded.


The call-back URL is www.saba.com/sabaweb.

2. Send the putInteractions request in an entity-body string.

Note You will typically generate the entity-body string using a scripting language,
such as Java, Perl, or JavaScript.

Regardless of how it is generated, Saba must receive the entity-body string in the following
format:
command=putInteractions&version=<aicc_version> &session_id=<saba_session>
&aicc_data=<aicc_data>
where:
 <aicc_version> is the version of the AICC specification currently being used.
 <saba_session> is a unique identifier for the Saba session, as parsed from the content
launch string.
 <aicc_data> is the interactions data collected in the interactions file for the current
session. It is URL-encoded and provided in “name/value pair” format.

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3 • 33


Part III — Designing AICC-Compliant Content for Interoperability with Saba

For example:
command=putInteractions&version=2.0&session_id=saba123
&aicc_data="course_id","student_id","lesson_id","date","time",
"interaction_id","objective_id","type_interaction",
"correct_response","student_response","result","weighting",
"latency","text"
"course123","JSMITH","Test","11/30/2001","12:33:11","Question
1_447","true-false","0","0","correct","10","00:00:03","George
Washington was the first President of the United States."

Note In URL-encoded format, hex values must be used to represent the following
characters:
= — %3D
: — %3A
& — %26
carriage return — %0D
line feed — %0A

Interactions File
If the content application includes one or more tests with questions, it can collect information
about the learner’s interactions with the questions, such as the question type, the learner’s
response, the correct answer, and the outcome. This information is collected in a temporary file
called the interactions file. At any time, the content application can send a message using the
putInteractions command to send the contents of the interactions file back to Saba.

Important Use of the interactions file is entirely optional.

Section 7.2 of the AICC specification provides guidelines for constructing the interactions file.
The table below defines the interactions data that Saba currently stores
Table 6: Saba-supported Contents of Interactions File

Field Description

course_id Unique identifier for the course with which the interaction is associated.

student_id Unique identifier for the learner.

lesson_id Unique identifier for the AU with which the interaction is associated.

date_id Date on which the interaction began.

34 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3


Part III — Designing AICC-Compliant Content for Interoperability with Saba

Table 6: Saba-supported Contents of Interactions File

Field Description

time_id Time at which the interaction began.

interaction_id Unique identifier for the interaction/question.

objective_id Saba does not currently support this data value.

type_interaction Type of question. Value can be:


• true-false — question with only two possible responses.
• choice — question with a limited number of predefined responses
from which the student may select. Each response is numbered or
lettered. One or more responses may be correct.
• fill-in — question with a simple one or few-word answer. The answer/
response is not predefined, but must be created by the student (as
opposed to selected).
• matching — question with one or two sets of items. Two or more of
the members of these sets are related. Answering the question
requires finding and matching related members.
• performance — performance question is in some ways similar to a
multiple choice question. However, instead of selecting a written
answer, the student must perform a task or action.
• sequencing — question in which the student is required to identify a
logical order for the members of a list.
• likert — question offers the student a group of alternatives on a
continuum. The response is generally based on the student's opinion
or attitude.
• numeric — simple number with or without a decimal point required
answering the question. Correct answer may be a single number
within a range of numbers.

correct_response Correct response(s) to the question.

student_response Learner’s response(s) to the question.

result Result of learner’s response(s) to the question. Value can be:


• Correct
• Wrong
• Neutral
• Unanticipated

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3 • 35


Part III — Designing AICC-Compliant Content for Interoperability with Saba

Table 6: Saba-supported Contents of Interactions File

Field Description

weighting A single floating point number that defines the weighted value of the
question.

latency Time elapsed during interaction (from beginning of current interaction to


beginning of next interaction).

text Text of the question.


Note This data element is a Saba-enabled extension. It is NOT defined
by the AICC specification, and it is NOT required.

exitAU Command Format


The exitAU command notifies the Saba server that the learner has completed the lesson. Upon
receipt of the exitAU command, Saba closes the browser window in which the content is being
displayed. If the content is a single-AU course, this action returns the learner to the Enrollments
page in Saba. If the content is a multiple-AU course, it returns the learner to the course menu
page in Saba, where he or she can select the next lesson.
As defined by the AICC specification, the exitAU command is sent in an “entity-body” using the
HTTP POST method. The “entity-body” is a string that concatenates together a series of name/
value pairs.
To send the exitAU command:

1. Contact the Saba server using the call-back URL.

Note You can parse the call-back URL from the query string that was appended to
the content launch string.

For example:
In the content string shown below:
http://www.cbtvendor.com/cbt1/au001.html?aicc_sid=saba123
&aicc_url=www.saba.com/sabaweb&vendorparam=001005

Note All values to the right of the ? delimiter must be URL-encoded.


The call-back URL is www.saba.com/sabaweb.

2. Send the exitAU request in an entity-body string.

36 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3


Part III — Designing AICC-Compliant Content for Interoperability with Saba

Note You will typically generate the entity-body string using a scripting language,
such as Java, Perl, or JavaScript.

Regardless of how it is generated, Saba must receive the entity-body string in the following
format:
command=exitau&version=<aicc_version> &session_id=<saba_session>
where:
 <aicc_version> is the version of the AICC specification currently being used.
 <saba_session> is a unique identifier for the Saba session, as parsed from the content
launch string.

For example:
command=exitau&version=2.0&session_id=saba123

Note In URL-encoded format, hex values must be used to represent the following
characters:
= — %3D
& — %26

Response Messages
Each time the content application sends a request message to Saba, the Saba server returns an
appropriate response message.
In response to putParam, putInteractions, and exitAU requests, Saba returns a simple
acknowledgment in the form of an error code.
In response to a getParam request, Saba returns a text-based output stream of data, including
information about the learner and lesson data collected and stored from previous learning
sessions.

Tip If your content application is using JavaScript, you will need to design a workaround
for reading the Saba server response messages, since JavaScript cannot parse plain-
text responses. You can do this using plugins, applets, or server-side technologies.

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3 • 37


Part III — Designing AICC-Compliant Content for Interoperability with Saba

Response Message Format


The table below describes the format for HACP response messages:
Table 7: HACP Response Message Format
Category Description

Content type text/plain

Request Method POST

Format The format of the entity-body is as follows:

Name Value
error= <AICC Error Number>
error_text= <AICC Error Description> [OPTIONAL]
version= <AICC Spec Version> [OPTIONAL]
aicc_data= <AICC Data>
<end of buffer>

where:
• <AICC Error Number> is the AICC HTTP error message number
(see below)
• <AICC Error Description> is the AICC HTTP error message text
(see below)
• <AICC Spec Version> is the version of the AICC specification being
used (e.g., 2.0)
• <AICC Data> is the lesson initialization data stored by Saba
(applies only if the message is a response to a getParam request)

AICC Error Error Number Error Text


Messages 0 Successful
1 Invalid Command
-1 Failed database save

38 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3


Part III — Designing AICC-Compliant Content for Interoperability with Saba

Table 7: HACP Response Message Format


Category Description

Usage Rules • Leading and trailing white space (CR,LF, Tab, space) is allowed
before and after the <name> , “=”, and <value>.
• The <value> data in aicc_data begins as the first non-white space
character after the “=” and continues until the end of the entity-body
buffer.
• The <value> data for all other <name> variables begins as the first
non-white space character after the “=” and continues until the last
non-white character before the CR (or CRLF).
• The <value> data is plain text (and NOT URL-encoded)
• aicc_data is only included in response to a getParam request
• If aicc_data is returned, it must be the last name/value pair in the
entity-body.
• The name in the name/value pair is not case sensitive.
• If an optional value is omitted, the name must also be omitted.

Example Error=0
version=2.0
aicc_data=[Core]
Student_ID=B1781
Student_Name=Doe, John
Output_file=
Credit=C
Lesson_Location=
Lesson_Status=Not Attempted
path=
Score=
Time=00:00:00
[Evaluation]
Course_ID=B17

Note For more information about the student and lesson data provided
to the content application by Saba, see “Lesson Initialization
Data” on page 39.

Lesson Initialization Data


In response to a getParam request, Saba returns a text-based output stream of data, including
information about the learner and lesson data collected and stored from previous learning
sessions. This data initializes the lesson.

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3 • 39


Part III — Designing AICC-Compliant Content for Interoperability with Saba

Section 5.1 of the AICC specification outlines the lesson initialization data that can be sent by
the learning management system. The table below shows the data parameters (organized by
group names and keywords) that Saba currently sends:
Table 8: Saba-supported Lesson Initialization Data

Group Name Function of Group Keywords

[Core] Information about the learner and Student_ID (required)


(see section 5.1.1 in the results from the previous attempt Student_Name (required)
AICC specification) by the learner, including “page last
visited” information. Output_File (required)
Credit (required)
Lesson_Location (required)
Lesson_Status (required)
Path (required)
Score (required)
Time (required)

[Core Lesson] Information reported by the lesson Data is undefined and may
(see section 5.1.2 in the during the last attempt by the be unique to each lesson.
AICC specification) learner.

[Core_Vendor] Information about vendor-specific Data is undefined and may


(see section 5.1.3 in the requirements for launching or be unique to each vendor.
AICC specification) using the content.

[Evaluation] Information used by the lesson for Course_ID


(see section 5.1.5 in the generating evaluation data.
AICC specification)

[Objectives_Status] Status information about the J_ID.1


(see section 5.1.6 in the objectives defined for the lesson. J_Score.1
AICC specification) Note Saba returns the objectives J_Status.1
information reported by the
content during the last
attempt by the learner.

For all required lesson initialization data parameters, Saba will send a NULL value if no data is
currently stored. Consequently, the lesson can always depend on these parameters being
available. For optional parameters, the lesson must be constructed such that there is a default to
be used if the optional parameters are not provided by Saba.

40 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3


Part III — Designing AICC-Compliant Content for Interoperability with Saba

Creating the Course Structure Files


Saba can launch and track AICC-compliant content that is provided in either of the following
ways:
 as a single URL pointing to the content source
 as a set of course structure files representing a structured hierarchy of lessons, each of which
can be launched and tracked independently by Saba (the files are loaded into Saba by the
customer)
Saba recommends developing the course structure files, as the use of these files enables tighter
integration and more informed communications between the content application and Saba.
The course structure files contain metadata representing the full range of information required by
the learning management system in order to present the learning material to the learner in the
way intended by the content developer. This information includes a course description,
information about the author, version, and creation date of the course, a definition of the course
structure including a URL for each of its assignable units, parameters for launching the course
over the web, and other similar data.
The availability of these course structure files to Saba is the key to achieving seamless
interoperability with the learning content. Saba uses the information provided in these files to
display the course structure details in the Saba Learning Catalog. Learners see a hierarchical
representation of the content blocks and assignable units comprising the course and can
selectively launch the content module (i.e., lesson) that best suits their needs. Likewise, Saba can
track learner interactions not only with the entire course but also with each discrete content
module.
For example, a learner with a skill gap using tables in Microsoft Word can directly launch the
“Using Tables” lesson of a Microsoft Word WBT/CBT. Saba tracks any learner assessment
information associated with the “Using Tables” lesson and updates the learner’s Transcript page
appropriately.
The AICC specification defines seven distinct course structure files that provide information
about the content and structure of a CBT/WBT. At present (and per Level I compliance), Saba
supports four of these files.
 any.AU
 any.CRS
 any.CST
 any.DES

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3 • 41


Part III — Designing AICC-Compliant Content for Interoperability with Saba

Section 6.0 of the AICC specification documents the structure and format of the course structure
files. The following table describes the four Saba-supported AICC course structure files:
Table 9: Saba-supported AICC Course Structure Files

File Name Contents Type

any.AU This file contains information about each Table (Comma


(see section 6.3 in assignable unit (AU) in the course, including the Delimited ASCII)
the AICC data needed to launch the unit.
specification) Each assignable unit has its own record (or row
in the table).

any.CRS This file contains information about the entire Group/Keyword


(see section 6.1 in course, including a text description. (MS Windows INI)
the AICC It offers information that relates to more than just
specification) a single element in the course.

any.CST This file contains data about the structure of the Table (Comma
(see section 6.4 in course. It includes all of the assignable units and Delimited ASCII)
the AICC blocks in the course. The order in which these
specification) appear in the file implies (but does not force) an
order for presentation to the student.
Although the student can select any assignable
unit or block, Saba lists them in the order in
which they appear in this file.

any.DES This file contains a complete list of every content Table (Comma
(see section 6.2 in module defined in the course. It is used as the Delimited ASCII)
the AICC basic cross-reference file showing the
specification) correspondence of system-generated IDs with
user-defined IDs for every element. This file can
also contains text descriptions for the content
modules.
content modules include
• Assignable Units
• Blocks
• Objectives
• Complex Objectives

42 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3


Part III — Designing AICC-Compliant Content for Interoperability with Saba

Course Structure File Examples


Below are examples of each of the four Saba-supported course structure files.

any.AU Example

"System_ID","type","command_line","Max_Time_Allowed","time_limit_action",
"Max_Score","Core_Vendor","System_Vendor","File_name","Mastery_Score",
"Web_Launch","AU_Password"
"A000","AICC Test AU","","","","100","LESSON#0=0","Macromedia Shockwave & MS
Visual Basic","http://127.0.0.1/aicc/ltest.html","75","AICC_TSP=+-0+-1",""
"A001","AICC Test AU","","","","100","LESSON#1=1","Macromedia Shockwave & MS
Visual Basic","http://127.0.0.1/aicc/ltest.html","75","AICC_TSP=+-1+-1",""
"A002","AICC Test AU","","","","100","LESSON#2=2","Macromedia Shockwave & MS
Visual Basic","http://127.0.0.1/aicc/ltest.html","75","AICC_TSP=+-2+-1",""
"A003","AICC Test AU","","","","100","LESSON#3=3","Macromedia Shockwave & MS
Visual Basic","http://127.0.0.1/aicc/ltest.html","75","AICC_TSP=+-3+-1",""
"A004","AICC Test AU","","","","100","LESSON#4=4","Macromedia Shockwave & MS
Visual Basic","http://127.0.0.1/aicc/ltest.html","75","AICC_TSP=+-4+-1",""
"A005","AICC Test AU","","","","100","LESSON#5=5","Macromedia Shockwave & MS
Visual Basic","http://127.0.0.1/aicc/ltest.html","75","AICC_TSP=+-5+-1",""
"A006","AICC Test AU","","","","100","LESSON#6=6","Macromedia Shockwave & MS
Visual Basic","http://127.0.0.1/aicc/ltest.html","75","AICC_TSP=+-6+-1",""
"A007","AICC Test AU","","","","100","LESSON#7=7","Macromedia Shockwave & MS
Visual Basic","http://127.0.0.1/aicc/ltest.html","75","AICC_TSP=+-7+-1",""
"A008","AICC Test AU","","","","100","LESSON#8=8","Macromedia Shockwave & MS
Visual Basic","http://127.0.0.1/aicc/ltest.html","75","AICC_TSP=+-8+-1",""
"A009","AICC Test AU","","","","100","LESSON#9=9","Macromedia Shockwave & MS
Visual Basic","http://127.0.0.1/aicc/ltest.html","75","AICC_TSP=+-9+-1",""
"A010","AICC Test AU","","","","100","LESSON#10=10","Macromedia Shockwave & MS
Visual Basic","http://127.0.0.1/aicc/ltest.html","75","AICC_TSP=+-10+-1",""

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3 • 43


Part III — Designing AICC-Compliant Content for Interoperability with Saba

any.CRS Example

; This is a Web-based test course generated by the AICC Test Suite (Version 1.3)
;
;
;
;

[Course]
Course_Creator = AICC Test Suite
Course_ID = AICC-TEST-COURSE-1
Course_System = Microsoft Visual Basic 4.0
Course_Title = AICC TEST SUITE GENERATED COURSE
Level = 1
Max_Fields_CST = 5
Total_AUs = 11
Total_Blocks = 4
Version = 2.0

[Course_Behavior]
Max_Normal = 3

[Course_Description]
This is a Web-based test course generated by the AICC Test Suite.
The AU's (assignable units) in this course are multiple references to
the same URL. The WEB_LAUNCH field in each AU record has a parameter
identifying it as different Lesson in the course structure

44 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3


Part III — Designing AICC-Compliant Content for Interoperability with Saba

any.CST Example

"Block","Member","Member","Member","Member"
"Root","B001","B002","B003","B004"
"B001","A000","A001","A002","A003"
"B002","A004","A005","A006"
"B003","A007","A008"
"B004","A009","A010"

any.DES Example

"System_ID","Title","Description","Developer_ID"
"A000","AICC Test Lesson #0","Description for Lesson#0","AICC-0"
"A001","AICC Test Lesson #1","Description for Lesson#1","AICC-1"
"A002","AICC Test Lesson #2","Description for Lesson#2","AICC-2
"A003","AICC Test Lesson #3","Description for Lesson#3","AICC-3"
"A004","AICC Test Lesson #4","Description for Lesson#4","AICC-4"
"A005","AICC Test Lesson #5","Description for Lesson#5","AICC-5
"A006","AICC Test Lesson #6","Description for Lesson#6","AICC-6"
"A007","AICC Test Lesson #7","Description for Lesson#7","AICC-7"
"A008","AICC Test Lesson #8","Description for Lesson#8","AICC-8"
"A009","AICC Test Lesson #9","Description for Lesson#9","AICC-9"
"A010","AICC Test Lesson #10","Description for Lesson#10","AICC-10"
"B001","Subject #1","Subject Description #1","AICC-Subj-1"
"B002","Subject #2","Subject Description #2","AICC-Subj-2"
"B003","Subject #3","Subject Description #3","AICC-Subj-3"
"B004","Subject #4","Subject Description #4","AICC-Subj-4"

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3 • 45


Part IV — AICC Interoperability with Older Releases of Saba

Part IV —
AICC Interoperability with Older Releases of Saba
Older releases of Saba may not support all of the functionality described in this document.
However, it is still possible to integrate AICC-compliant content with all releases of Saba in the
3.2.5 and 3.3 families.
The table below details the level of AICC compliance supported by Saba releases:.

Saba Release AICC Compliance

3.5 Certified for Level I compliance


Support for interactions data (including support for question text
extension)

3.4.1 Certified for Level I compliance


(Enhancement Pack) Support for interactions data

3.4.0 Certified for Level I compliance


Support for interactions data (including support for question text
extension)

3.3.x Certified for Level I compliance

3.2.5.3 Limited compliance in baseline release


Note Full Level I compliance available in upgrade patch

3.2.5.2 Limited compliance in baseline release


Note Full Level I compliance available in upgrade patch

3.2.5.1 Limited compliance

pre-3.2.5 Not supported

Note If you are not sure what Saba release you are running or if you have installed the
upgrade patch for 3.2.5.2/3.2.5.3, please contact your Saba Account Representative
or Project Manager

The term “limited compliance” used in the table above means that these releases of Saba do not
support the ability to import or export course structure files. Consequently, these releases do not
have visibility into the structure of the content, and the Saba Learning Catalog cannot
automatically display or launch individual content modules (i.e., lessons).

46 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3


Part IV — AICC Interoperability with Older Releases of Saba

All Saba releases in the 3.2.5.x family do support communications between Saba and the content
application, as described in “Communicating with Saba” on page 24 of this document. Saba is
able to track information relating to the learner’s status, including bookmarking, number of
attempts and timing information, and the results of any assessment tests.
For information on loading AICC-compliant content into releases of Saba prior to 3.4, you need
a previous version (v1.3) of this document. Contact you Saba Account Representative/Project
Manager to request this.

Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3 • 47


Part V — Other References

Part V —
Other References
This document describes how to load and launch AICC-compliant content in Saba and provides
an overview of how to design AICC-compliant content for interoperability with Saba.
For additional information about AICC compliance, see these resources:

Resource and Location Information Provided

AICC web site Provides an overview of the AICC, including:


www.aicc.org • Description of the organization’s charter
• Overview of AICC compliance
• Links to AICC publications
• List of certified products

CMI Guidelines for Interoperability AICC specification detailing requirements and


(AICC document CMI-001) methodology for interoperability between CMI
systems and content. Relevant sections include:
http://www.aicc.org/pages/down-docs-
• Section 5 — CMI/Lesson Communication
index.htm#WHITE
• Section 6 — Course Structure Data
• Appendix A — HTTP-Based CMI Protocol

Web Launch Scenarios for the AICC CMI Concise AICC document that describes and
Guidelines (AICC document CMI-007) diagrams a web launch scenario.
http://www.aicc.org/pages/down-docs-
index.htm#WORKING

Saba Content Administrator Guide Provides documentation on:


Available with Saba3 Release4 • Importing AICC content into the Saba content
Documentation Set repository
• Managing content objects in the content
repository
• Publishing AICC content to the Saba Learning
Catalog
• Launching and tracking AICC content

Integrating AICC Content with Saba If you are running any Saba release other than
(Version 1.3) Saba3 Release4, you need to use the previous
Contact your Saba account version of this document.
representative or project manager

48 • Creating AICC-Compliant Content for Interoperability with Saba • Revision 2.3

You might also like