In essence, in providing an AICC HACP
(HTTP/S-based AICC/Computer Managed Instruction (CMI) Protocol)
interface to external LMS systems, we are providing an alternative
mechanism for registering users and logging into the LMS. Via the AICC
calling convention, we are provided with the interface URL and session
identifier (SID) which are used to communicate with the calling LMS via
HTTP. By issuing an AICC getParam call, we can readily discover the
name and identification number for the user along with a block of
vendor specific data which we can use to identify the learning unit to
launch.
Stage | Steps |
Setup | 1. authenticate request 2. establish session 3. establish user account if it doesn't exist 4. deliver requested activity to user account if required 5. display activity in user's browser window or display menu if entry point is a folder |
Interact | 6. User interacts with [menu]/learning object(s). 7. User requests exit or session times out. |
Tear Down | 8. Post back status update to calling system. 9. Issue ExitAU to calling system. 10. Close session and redirect user back to calling system if possible. |
Access
via the AICC interface is controlled at the licensee level and must be
enabled in order to use this interface. Once access is enabled, the
interface will permit access to all content licensed to the licensee.
The
type of learning unit launched (aggregated content [course, lesson]
versus a leaf node [topic, assessment]) will have impact on how the LMS
must treat the request. When providing access to aggregated content,
the LMS will provide the end user with a user interface whereby they
can navigate within the hierarchy of the content, select a specific
lesson, topic, or assessment, and interact with that content. In this
case, the LMS will only convey summary information (overall completion
and success status for the user) to the calling system. When the
calling system specifically identifies a single SCO (or assessment), it
is possible to provide more detailed information to the calling system.
Entry Point: /lms/aiccLaunch.aspx
Parameter Name | Parameter Value |
aicc_sid | Calling system's session identifier (mandatory) |
aicc_url | URL to AICC HACP interface on calling system (mandatory) |
au_id | Set to the external item identifier to identify the activity requested.
(This is an optional URL parameter)
|
au_entry_point_id | An
optional parameter which allows the external LMS to direct the user to
a particular item within the activity tree identified by the
au_id value. If it is not supplied, the au_entry_point_id is set to the
au_id.
If this id is specified, the user is not
permitted access to higher level items in the specified activity tree.
Status information sent back to the LMS will be for the
au_entry_point_id item.
(This is an optional URL parameter)
|
licensee_login_id | Identifies the licensee. (This is an optional URL parameter) |
return_url | URL to redirect user to upon exit from the learning object. (optional) |
cmi_version | CMI version (for instance, "3.5") desired by the external LMS. (optional) |
close_window_on_exit | Flag
('y' | 'n') indicating if the browser window should be closed on end of
the AICC session. By default, the window will be left open. (optional) |
core_score_format | Format of the score information reported to the calling LMS in the Core.Score data element (see AICC CMI Specification section 2.1.10). Currently, only "relative" and "integerPercent" values are accepted.
The
(default) "relative" format means a set of scores is reported: a raw
score, optionally followed by the maximum and minimum score achievable
(if known). Note that these scores may be integer or decimal values.
The
"integerPercent" format means only one score value is reported and is
an integer percentage value from 0 to 100. This is done by taking the
scaled score, multiplying it by 100, and then rounding it off to the
nearest integer value.
(This is an optional URL parameter) |
The au_id and licensee_login_id
parameters must be supplied in order to gain access to the LMS, either
as part of the Core Vendor data block or as URL parameters. The
preferred method is to provide the au_id, au_entry_point_id, and licensee_login_id
as part of the Core Vendor data block. Core Vendor data is retrieved
from the external LMS via the AICC get parameter call which is more
secure than URL provided parameters.
Note:
- The AICC interface requires that the calling LMS supply a unique identifier for each student using the system.
- The au_id and au_entry_point_id parameter values must be URL encoded if specified in a URL call. If they are specified in the Core Vendor data block, they should not be encoded.
HACP Message Types and Data Elements Supported
The LMS AICC interface to external LMS systems uses the following HACP message types:
The following core data elements are consummed by the interface:
- Core.Student ID [the LMS supports a maximum length of 255 characters; this ID must be unique within the given licensee]
- Core.Student Name [the interface parses the name into first and last name and supports up to 40 characters for each name]
- Launch Data (Core_Vendor) [contains data identifying the assignable unit within the LMS]
- Core.Entry [determines whether the LMS starts the assignable unit as a new attempt or resumes an existing attempt]
- Core.Lesson Status
- Suspend Data (Core_Lesson)
The interface updates the following elements:
- Core.Lesson Status
- Core.Exit
- Core.Score [when score information is available for the the unit]
- Core.Session
Time [excludes the timeout period in the case where an assignable unit
is terminated due to inactivity for a period exceeding the time out
interval]
- Suspend Data (Core_Lesson) [the LMS stores information here so that it can resume an existing attempt at an assignable unit]