48
Creating AICC-Compliant Content for Interoperability with Saba Revision 2.3 For use with Saba3 Release5

Saba Content

Embed Size (px)

Citation preview

Page 1: Saba Content

Creating AICC-Compliant Content for Interoperability with Saba

Revision 2.3For use with Saba3 Release5

Page 2: Saba Content

CopyrightCreating AICC-Compliant Content for Interoperability with SabaRevision 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.

TrademarksSaba, 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 SabaTelephone (650) 696-3840

Fax (650) 696-1773

Mailing Address

2400 Bridge ParkwayRedwood Shores, CA 94065-1166USA

Web http://www.saba.com

Page 3: Saba Content

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 StructureFiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Part III — Designing AICC-Compliant Content for Interoperability withSaba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

Page 4: Saba Content

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

Page 5: Saba Content

Introduction

IntroductionThis 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

PleaseNote

This document describes functionality that may not be included with the release of Saba that you 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

Page 6: Saba Content

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

Page 7: Saba Content

Part I — Overview of AICC Compliance

AICC Compliance CriteriaThe 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 athttp://www.aicc.org/pages/down-docs-index.htm#WHITE

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

Page 8: Saba Content

Part I — Overview of AICC Compliance

Overview of Saba’s AICC ComplianceSaba 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 ComplianceTo 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

Page 9: Saba Content

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

Page 10: Saba Content

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

ccassella
Highlight
Page 11: Saba Content

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 ContentSince 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

ccassella
Note
Content is hosted on web server.
Page 12: Saba Content

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:

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.

Learner'sMachine

ApplicationServer

Content Server

Learner'sMachine

Two-Node Scenario Three-Node Scenario

ApplicationServer

Content Server

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

Page 13: Saba Content

Part II — Integrating AICC-Compliant Content with Saba

Specifying the Host Name of the Saba ServerWhen 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

Page 14: Saba Content

Part II — Integrating AICC-Compliant Content with Saba

Importing AICC ContentAICC-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 Protocol

In the Communications Protocol drop-down list, AICC is the only valid selection, and it is automatically selected.

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

Page 15: Saba Content

Part II — Integrating AICC-Compliant Content with Saba

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.

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.

Field Description

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

ccassella
Highlight
ccassella
Highlight
Page 16: Saba Content

Part II — Integrating AICC-Compliant Content with Saba

Publishing AICC-Compliant Content to the Learning CatalogAfter 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

Page 17: Saba Content

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

Page 18: Saba Content

Part II — Integrating AICC-Compliant Content with Saba

Ordering AICC-Compliant ContentOnce 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 ContentAfter 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

Page 19: Saba Content

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

ccassella
Highlight
ccassella
Note
Learner profile info is not being sent to CW, hence the error message.
Page 20: Saba Content

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 SabaThe 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

Page 21: Saba Content

Part III — Designing AICC-Compliant Content for 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.

Table 2: Sequence of Events for AICC Interoperability with Saba

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

Page 22: Saba Content

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

Interoperability RequirementsTo 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 StringWhen 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

Page 23: Saba Content

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

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

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

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

Page 24: Saba Content

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 SabaThe 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

Page 25: Saba Content

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

Page 26: Saba Content

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 from Saba.

Required

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 Saba.

Required

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 Saba.

Optional

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 learner has completed the content module.

Required

This command must be issued at the end of a learning session.

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

Page 27: Saba Content

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

command=

version=

session_id=

au_password=

aicc_data=

Value

<AICC Command>

<AICC Spec Version>

<Unique Session Identifier>

<Assignable Unit Specific Password> [OPTIONAL]

<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

Page 28: Saba Content

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

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.

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

command=PutParam&version=2.0&session_id=saba123 &aicc_data=[core]lesson_location=endlesson_status=passscore=87time=00:23:15

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

Table 4: HACP Request Message Format

Category Description

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

Page 29: Saba Content

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.

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:

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.

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

Page 30: Saba Content

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.

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.

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.

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

Page 31: Saba Content

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

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.

For example:

command=putparam&version=2.0&session_id=saba123&aicc_data=[core]lesson_location=endlesson_status=incompletescore=75time=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& — %26carriage return — %0Dline feed — %0A

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

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

Page 32: Saba Content

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:

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.

Table 5: Saba-supported Contents of Lesson Data File

Group Name Function of Group Keywords

[Core]

(see section 5.2.1 in the AICC specification)

Information about the results of the learner’s interaction with the lesson, including “page last visited” information.

Lesson_Location (required)

Lesson_Status (required)

Score (required)

Time (required)

[Core_Lesson]

(see section 5.2.2 in the AICC specification)

Can be any information used by the lesson.

The information is stored by Saba and returned the next time the learner launches the lesson.

Data is undefined and may be unique to each lesson.

[Objectives_Status]

(see section 5.2.4 in the AICC specification)

Status information about the objectives defined for the lesson.

Saba will return the objectives information the next time the learner launches the lesson.

J_ID.1

J_Score.1

J_Status.1

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

Page 33: Saba Content

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.

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.

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.

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

Page 34: Saba Content

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

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

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& — %26carriage return — %0Dline feed — %0A

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

Page 35: Saba Content

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

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

Table 6: Saba-supported Contents of Interactions File

Field Description

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

Page 36: Saba Content

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

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.

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

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.

Table 6: Saba-supported Contents of Interactions File

Field Description

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.

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

Page 37: Saba Content

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.

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.

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

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

Page 38: Saba Content

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

error=

error_text=

version=

aicc_data=

Value

<AICC Error Number>

<AICC Error Description> [OPTIONAL]

<AICC Spec Version> [OPTIONAL]

<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 Messages

Error Number

0

1

-1

Error Text

Successful

Invalid Command

Failed database save

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

Page 39: Saba Content

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

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.

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=0version=2.0aicc_data=[Core]Student_ID=B1781Student_Name=Doe, JohnOutput_file=Credit=CLesson_Location=Lesson_Status=Not Attemptedpath=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.

Table 7: HACP Response Message Format

Category Description

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

Page 40: Saba Content

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:

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.

Table 8: Saba-supported Lesson Initialization Data

Group Name Function of Group Keywords

[Core]

(see section 5.1.1 in the AICC specification)

Information about the learner and results from the previous attempt by the learner, including “page last visited” information.

Student_ID (required)

Student_Name (required)

Output_File (required)

Credit (required)

Lesson_Location (required)

Lesson_Status (required)

Path (required)

Score (required)

Time (required)

[Core Lesson]

(see section 5.1.2 in the AICC specification)

Information reported by the lesson during the last attempt by the learner.

Data is undefined and may be unique to each lesson.

[Core_Vendor]

(see section 5.1.3 in the AICC specification)

Information about vendor-specific requirements for launching or using the content.

Data is undefined and may be unique to each vendor.

[Evaluation]

(see section 5.1.5 in the AICC specification)

Information used by the lesson for generating evaluation data.

Course_ID

[Objectives_Status]

(see section 5.1.6 in the AICC specification)

Status information about the objectives defined for the lesson.

Note Saba returns the objectives information reported by the content during the last attempt by the learner.

J_ID.1

J_Score.1

J_Status.1

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

Page 41: Saba Content

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

Creating the Course Structure FilesSaba 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

Page 42: Saba Content

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

(see section 6.3 in the AICC specification)

This file contains information about each assignable unit (AU) in the course, including the data needed to launch the unit.

Each assignable unit has its own record (or row in the table).

Table (Comma Delimited ASCII)

any.CRS

(see section 6.1 in the AICC specification)

This file contains information about the entire course, including a text description.

It offers information that relates to more than just a single element in the course.

Group/Keyword (MS Windows INI)

any.CST

(see section 6.4 in the AICC specification)

This file contains data about the structure of the course. It includes all of the assignable units and blocks in the course. The order in which these 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.

Table (Comma Delimited ASCII)

any.DES

(see section 6.2 in the AICC specification)

This file contains a complete list of every content module defined in the course. It is used as the basic cross-reference file showing the 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

Table (Comma Delimited ASCII)

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

Page 43: Saba Content

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

Page 44: Saba Content

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

Page 45: Saba Content

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

any.CST Example

any.DES 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"

"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

Page 46: Saba Content

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:.

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).

Saba Release AICC Compliance

3.5 Certified for Level I compliance

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

3.4.1 (Enhancement Pack)

Certified for Level I compliance

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

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

Page 47: Saba Content

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

Page 48: Saba Content

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

www.aicc.org

Provides an overview of the AICC, including:

• Description of the organization’s charter

• Overview of AICC compliance

• Links to AICC publications

• List of certified products

CMI Guidelines for Interoperability (AICC document CMI-001)

http://www.aicc.org/pages/down-docs-index.htm#WHITE

AICC specification detailing requirements and methodology for interoperability between CMI systems and content. Relevant sections include:

• Section 5 — CMI/Lesson Communication

• Section 6 — Course Structure Data

• Appendix A — HTTP-Based CMI Protocol

Web Launch Scenarios for the AICC CMI Guidelines (AICC document CMI-007)

http://www.aicc.org/pages/down-docs-index.htm#WORKING

Concise AICC document that describes and diagrams a web launch scenario.

Saba Content Administrator Guide

Available with Saba3 Release4 Documentation Set

Provides documentation on:

• Importing AICC content into the Saba content 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 (Version 1.3)

Contact your Saba account representative or project manager

If you are running any Saba release other than Saba3 Release4, you need to use the previous version of this document.

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