This document was created using the >e-novative> DocBook Environment (eDE)

Icodeon SCORM Player .NET Edition Configuration Guide

This documentation is for Icodeon SCORM Player .NET Edition Version 2

Icodeon Ltd, Cambridge, UK


                Icodeon Ltd
                St Johns Innovation Centre
                Cowley Road
                Cambridge
                Cambs
                CB4 0WS
                United Kingdom
                +44 (0)870 950 6582
                
              


              Install and Configuration Guide for Icodeon SCORM Player Version 2 (.NET Edition)

Install and Configuration Guide for Icodeon SCORM Player Version 2 (.NET Edition)

Feb 2008


Table of Contents

1. Introduction
1.1. Welcome
2. Distribution
2.1. Files
2.2. Licensing
3. Supported Specifications
3.1. SCORM Package Interchange Files
3.2. IMS Content Packages
3.3. Browsers
3.4. Databases
3.5. Platforms
3.6. Servers
3.7. Other Technical Specifications
4. Installation
4.1. Default Deployment
4.2. Production Deployment
5. Database Configuration
5.1. Database Support
5.2. SQL
5.3. Database Schema
5.4. Persistence Factory Classes
5.5. Database Configuration Files
6. Course Content Management Configuration
6.1. Course Content
6.2. Default Implementation
6.3. Plug-In Implementations
6.4. SCORM Cross-Domain Scripting Issue
7. User Interface Configuration
7.1. User Interface Customization
7.2. Integration with a host e-Learning System/LMS
8. Trouble Shooting
8.1. Server-Side Debugging
8.2. Client-Side Debugging
8.3. Product Updates
8.4. Icodeon Support
9. Extending the SCORM Player with a Custom Plug-In
9.1. Introduction
10. Performance and Optimization
10.1. Introduction
10.2. Persistence Layer Optimization
10.3. Launch Optimization
10.4. Cache Optimization

List of Tables

3.1. Browser and Operating System Combinations for Icodeon Player
7.1. Default Languages Supported by the Icodeon Player
7.2. User Interface Devices Supported by the Icodeon Player
7.3. Example Configurations of the Icodeon Player User Interface [click for full size]
7.4. Example Configurations of the Icodeon Player User Interface [click for full size]
7.5. User Interface Skins Supported by the Icodeon Player
7.6. Launch Parameters for the Icodeon Player

Chapter 1. Introduction

Table of Contents

1.1. Welcome

1.1. Welcome

Welcome and thank you for choosing the Icodeon SCORM Player .NET Edition. The Icodeon SCORM Player .NET Edition is a full SCORM run time environment designed to be easily intgerated into new or exisiting learning management systems.



        

SCORM 2004 games based learning running in the Icodeon SCORM Player

SCORM 2004 games based learning running in the Icodeon SCORM Player



        

The Player supports full latest SCORM 2004 Sequencing and Navigation specification to enable advanced adaptive web based learning.

The Icodeon SCORM Player is designed around a set of standards based web services that exchange XML documents with a SCORM run time environment in an Internet Browser.



        


              The player runs in the browser and exchnages XML documents with web
              services

The player runs in the browser and exchnages XML documents with web services



        

Chapter 2. Distribution

Table of Contents

2.1. Files
2.2. Licensing

2.1. Files



        

The Icodeon SCORM Player .NET Edition is distributed as a .zip file

The Icodeon SCORM Player .NET Edition is distributed as a .zip file



        

The Icodeon SCORM Player .NET Edition is distributed as a .zip file. Icodeon provide a username and password to download the zip file from the Icodeon website. Once the file is downloaded and unzipped, the following directory structure is seen:

          
[PARENT DIRECTORY]/api/
[PARENT DIRECTORY]/config/
[PARENT DIRECTORY]/docs/
[PARENT DIRECTORY]/legal/
[PARENT DIRECTORY]/resx/
[PARENT DIRECTORY]/sql/
[PARENT DIRECTORY]/src/
[PARENT DIRECTORY]/wwwroot/
          
        
The contents of these directories and their files are described in greater detail elsewhere. Summary descriptions are:
  • api: API documentation for building plug-in .dll libraries for the Icodeon SCORM Player.

  • config: some example database configuration files that can be used as a starting point for deployment specific configuration.

  • docs: user guides and other supporting documentation.

  • legal: licenses for 3rd party libraries used in the Icodeon SCORM Player and the Icodeon Software Evaluation License.

  • resx: source files for language packs.

  • sql: files containing the SQL required to set up the database tables for a number of popular databases.

  • src: Microsoft C# source code for default plug-ins.

  • wwwroot: Icodeon SCORM Player .NET Edition web application files.

2.2. Licensing

The Icodeon SCORM Player is distributed with a license file. The license file is located at:

          
[PARENT DIRECTORY]/wwwroot/bin/runtime.lic

        
The software is distributed with this license file set to provide a 30 day trial limit of the product. At the end of the license trial limit an error in the log files will read:
          
Could not validate license "Evaluation Edition (TRY-)" in C:\...\runtime.lic.
...
The trial period has expired.

        
After expiration of the trial limit, an evaluation team may contact Icodeon for purchase of a perpetual license, an extended license, or a date limited restricted license.
  • Perpetual License: Icodeon will provide a serial number that unlocks and licenses the software to be used without limits. To unlock the license, the serial number of the perpetual license should be pasted into the file at:

                    
    [PARENT DIRECTORY]/wwwroot/serial_number.inf
    
                  
    All other text, except the serial number, should be deleted from the file. The serial number for the standard perpertual license will have a prefix of "STD-" and form similar too:
                    
    STD-12345-ABCDE-1234-ABCD
    
                  

  • Extended License: Icodeon will provide a serial number that unlocks and licenses the software to be used within agreed time or date limits. To unlock the license, the serial number of the extended license should be pasted into the file at:

                    
    [PARENT DIRECTORY]/wwwroot/serial_number.inf
    
                  
    All other text, except from the serial number, should be deleted from the file. The serial number for the extended license will have a prefix of "EXT-" and form similar too:
                    
    EXT-12345-ABCDE-1234-ABCD
    
                  

  • Date Restricted License: Icodeon will provide a serial number that unlocks and licenses the software to be used to an agreed date limit. To unlock the license, the serial number of the date restricted license should be pasted into the file at:

                    
    [PARENT DIRECTORY]/wwwroot/serial_number.inf
    
                  
    All other text, except from the serial number, should be deleted from the file. The serial number for the extended license will have a prefix of "RES-" and form similar too:
                    
    RES-12345-ABCDE-1234-ABCD
    
                  

Chapter 3. Supported Specifications

3.1. SCORM Package Interchange Files

The following SCORM versions are supported:

  • SCORM 1.2

  • SCORM 2004 3rd Edition including SCORM run time environment, and all SCORM sequencing and navigation behaviour.

The Icodeon Player determines automatically at run time version of SCORM that is being used by the content. The correct adapters and behaviours are automatically loaded and no special set up is required by the host LMS.

Summary conformance logs for SCORM 2004 3rd Editon conformance are available for inspection.

3.2. IMS Content Packages

The Icodeon SCORM Player will display and sequence IMS Content Packages. The Icodeon Player determines automatically at run time the content type. The correct adapters and behaviours are automatically loaded and no special set up is required by the host LMS.

3.3. Browsers

The Icodeon SCORM Player .NET Edition has been tested on the following browser and operating system combinations:

Operating SystemBrowserComment
Windows 2000Internet Explorer 6OK
Windows XPInternet Explorer 6OK
Windows XPFireFox 1.5OK
Windows VISTAInternet Explorer 7OK
Windows VISTAFireFox 2OK
Windows VISTAOpera 9OK
Windows VISTASafari 3OK
Mac OS XSafari 3OK
Mac OS XFireFox 2OK
Mac OS XOmniweb 5.5OK
Mac OS XCamino 1.5OK
Mac OS XOpera 9OK

Table 3.1. Browser and Operating System Combinations for Icodeon Player

3.4. Databases

The Icodeon SCORM Player .NET Edition uses the NHibernate system as a software layer between the application and a relational database. All databases supported by NHibernate are therefore supported by the Icodeon Player. The software distribution comes with SQL and example configuration files for the following databases:

  • MySQL

  • Microsoft SQL Server 2000

  • Microsoft SQL Server 2005

3.5. Platforms

The following Microsoft .NET common language runtime (CLR) versions are supported:

  • .NET 1.1

  • .NET 2.0

3.6. Servers

The Icodeon SCORM Player is designed to be deployed to the Microsoft Internet Information (IIS) server. The application has bee tested on the following versions:

  • IIS 5

  • IIS 6

  • IIS 7

3.7. Other Technical Specifications

3.7.1. IMS TI

The Icodeon Player will be adding support for the IMS Tools Interoperability Specification in future versions. The specification enables a secure web services integration between the Icodeon Player and a host learning management system (LMS).

3.7.2. IEEE 1484.11.3

The Icodeon Player reports SCORM tracking data as an XML binding according to the schema for Content Object Comunciation Data Model, published as the IEEE 1484.11.3 standard. When a SCORM object is running in the Icodeon Player, any tracking data passed from the SCORM object to the Icodeon Player web services is sent as a SOAP message with an IEEE 1484.11.3 schema valid XML document instance.

Chapter 4. Installation

4.1. Default Deployment

The Icodeon SCORM Player .NET Edition web application files are distributed within the directory at:

          
[PARENT DIRECTORY]/wwwroot/

        
that includes a configuration file called:
          
[PARENT DIRECTORY]/wwwroot/web.config

        
The default deployment is to create a "virtual directory" (called "player") on an IIS web server that points to the wwwroot directory. Some versions of the IIS server control panel offer a "new virtual directory" option or a "new application" option. If the option is given, a "new application" must be chosen. For a fast initial deployment, XML file based persistence can be chosen to verify application install. This avoids the extra overhead of setting up database connection. The steps are:
  1. In the IIS management screen, create a new application directory called "player". Map this directory to the "wwwroot" directory distributed with the Icodeon SCORM Player.

  2. Using the file system, navigate to the "wwwroot" directory distributed with the Icodeon SCORM Player and open up the "web.config" configuration file using an XML editor. Edit the entries for persistence factory classes. These classes are "plug-ins" that enable different persistence strategies to be supported. For XML file based persistence, set the following values:

                    
    <add key="CMIPersistenceFactory" 
      value="Icodeon.Services.Cmi.DAO.Xml.PersistenceFactoryImpl"/>  
    ...
    <add key="SSPersistenceFactory"
      value="Icodeon.Services.SS.DAO.Xml.PersistenceFactoryImpl"/>
    
                  

  3. Restart the IIS web server.

  4. Using a browser, open the index.html page at:

                    
    http://localhost/player/index.html
    
                  

  5. A welcome screen is shown. The welcome screen is not part of the Icodeon SCORM Player application, but acts as an example page. The page contains minimal mark-up and script to show the Icodeon SCORM Player can be launched from a static HTML page.

  6. The Icodeon SCORM Player is based on a SCORM run time environment in the browser exchanging XML documents with SOAP based web services on the server. It is important to chech that the web servcies are deployed correctly before attempting to launch the browser base client-side code.



                  

    
                    Web services exchange XML documents with a SCORM run time
                    environment

    Web services exchange XML documents with a SCORM run time environment



                  

    Check the web service for the SCORM Computer Managed Instruction (CMI) data model is available at:

                    
    http://localhost/player/services/CmiService.asmx
    
                  

  7. Check the web service for the SCORM Sequencing and Navigation is available at:

                    
    http://localhost/player/services/SequencingService.asmx
    
                  

  8. The Icodeon SCORM Player is distributed with some example SCORM Interchange Files (PIF) and IMS Content Packages (CP). These are provided in the default location:

                    
    [PARENT DIRECTORY]/wwwroot/CourseImports/
    
                  
    Check that these packages can be launched in the Icodeon SCORM Player by clicking one of the course links on the static HTML index.html page.

  9. For a successful deployment, the course will be running in a new window.

    SCORM 1.2 Detective

    SCORM 1.2 Detective [ [full size] ]

4.2. Production Deployment

Production deployment essentially follows the same steps as the default deployment described above, with two important differences. Firstly, most production deployments will want to set up relational database persistence. Secondly, there are a nummer of small changes that need to be made to promote a secure deployment. The steps are:

  1. Follow the steps for the default deployment. Deployists may want to change the name of the virtual directory to something meaningful for a particular context.

  2. Follow the steps for the database configuration.

  3. Follow the steps for the user interface configuration.

  4. Follow the steps for the course content management configuration .

  5. Ensure that any exceptions created by the software do not provide rich details for users. Make the following edits to the web.config configuration file:

                    
    <compilation debug="false"/>
    <trace enabled="false" pageOutput="false"/>
    ...
    <customErrors mode="On" defaultRedirect="errors/LMSError.aspx">
      <error statusCode="404" redirect="errors/LMSError_404.aspx"/>
      <error statusCode="500" redirect="errors/LMSError_500.aspx"/>
    </customErrors> 
    
                  

  6. Ensure that server log level is set to INFO and that a log location is chosen:

                    
    <logger name="Icodeon" additivity="false">
      <level value="INFO"/>
      <appender-ref ref="FileAppender"/>
    </logger>
    ...  
    <appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="C:/path/to/log/directory/vendor_player_log.txt"/>
      ...
    </appender> 
    
                  

  7. Ensure that no client side logging is exposed to users:

                    
    <add key="ajaxLogLevel" value="NONE"/> 
    ...
    <add key="isDebugAjax" value="false"/>
    
                  

  8. Remove support and training files that came with the distribution thay should not be exposed to users:

                    
    [PARENT DIRECTORY]/wwwroot/index.html
    [PARENT DIRECTORY]/wwwroot/LMSFrameset.html
    [PARENT DIRECTORY]/wwwroot/LMSFrameset_header.html
    [PARENT DIRECTORY]/wwwroot/LMSFrameset_main.html
    [PARENT DIRECTORY]/wwwroot/LMSFrameset_menu.html
    [PARENT DIRECTORY]/wwwroot/LMSDatabase.aspx
    [PARENT DIRECTORY]/wwwroot/LMSPackages.aspx
    
                  

    The application is now configured for production use.

Chapter 5. Database Configuration

5.1. Database Support

The Icodeon SCORM Player .NET Edition uses the NHibernate library to manage persistence of instances of business object classes to a relational database. The Icodeon SCORM Player .NET Edition therefore supports all databases supported by NHibernate. In the Icodeon software distribution, SQL and example configuration files are included for MySQL and Microsoft SQL Server (2000 and 2005).

5.2. SQL

The software distribution comes with SQL for generating required database tables. Each table is prefixed with three characters that are used for the Icodeon namespace ("ICN") to distinguish Player tables from any exisiting host LMS tables. The SQL files can be found in the directory:

          
          [PARENT DIRECTORY]/sql/
           
        
On first use the SQL files may need to be edited. For example, lines starting with:
          
alter table ICN_ATTEMPT_PROGRESS_INFO  drop foreign key FKE551D07EEC46D115;
...
drop table if exists ICN_ATTEMPT_PROGRESS_INFO;
           
        
may cause errors to be reported because the tables have not yet been created. Once the database tables have been created, the un-edited SQL files should be used to re-generate a the database tables.

5.3. Database Schema

The database schema inherits semantics from the specifications used within the SCORM 2004 specification. In particular, the table names and field names are based on the following specifications: IMS Simple Sequencing IMS Content Packaging Computer Managed Instruction (CMI) Data Model

For further details of the database schema, and examples of report queries, please see the accompanying document schema.html

5.4. Persistence Factory Classes

The Icodeon SCORM Player supports an extensible architecture for persistence: it is possible to "plug-in" different persistence strategies. The distribution comes with two strategies:

  1. Persistence to the file system as XML

  2. Persistence to a relational database through the NHibernate layer

The system is extensible, and vendors may wish to add their own strategy as a thrird option. The figure below illustrates how a vendor may wish to plug-in a new persistence strategy for the service that manages the SCORM tracking informantion:



      


            Default and custom plug-in persistence strategies for the CMI tracking
            service

Default and custom plug-in persistence strategies for the CMI tracking service



      

To enable the default "plug-in" for persistence to a relational database through the NHibernate layer, it is necessary to ensure the correct factory classes are specified. Using the file system, navigate to the "wwwroot" directory distributed with the Icodeon SCORM Player and open up the "web.config" configuration file using an XML editor. Edit the entries for persistence factory classes. These classes are "plug-ins" that enable different persistence strategies to be supported. For NHibernate based persistence, set the following values:

          
<add key="CMIPersistenceFactory" 
  value="Icodeon.Services.Cmi.DAO.Hibernate.PersistenceFactoryImpl"/>  
...
<add key="SSPersistenceFactory"
  value="Icodeon.Services.SS.DAO.Hibernate.PersistenceFactoryImpl"/>

        

5.5. Database Configuration Files

The NHibernate system uses XML configuration files (typically with file extension "myfilename.cfg.xml") to pass various parameter values (such as connection strings) to the applications. The software distribution comes with example NHibernate configuration files in a directory located:

          
[PARENT DIRECTORY]/config/
          
        
Deployists will need to copy and then edit one of these example files for the specific parameter values (such as connection string, driver) of the local deployment environment. The remaining steps for database configuration are to map the location of the NHibernate configuration file to a parameter value of a parameter named "domainID" and to provide the "domainID" parameter value in the launch parameters of the Icodeon Player. The steps are:
  1. Copy and then edit one of the example NHibernate configuration files for the specific parameter values (such as connection string, driver) of the local deployment environment and database type:

                         
    <hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >
      <session-factory name="player">
        ...
        <property name="dialect">NHibernate.Dialect.MsSql2000Dialect</property>
        <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
    	<property name="connection.connection_string">...</property>
        ...
        <mapping assembly="Icodeon.Player" />
       </session-factory>
    </hibernate-configuration>
              
                  
    There will need to be one NHibernate configuration file for each database instance that the application needs to support. For example, if an vendor is providing SCORM services to three customers, then the vendor may decide to use a different database for each customer.

  2. Edit the web.config application configuration file for the name and location of the NHibernate configuration file:

                         
      <playerGroup>
        <sessionFactories>
          <sessionFactory domainID="database_for_customer_A"
              factoryConfigPath="C:\path\to\edited\configuration\file\myfilename.cfg.xml"/>
        </sessionFactories>
      </playerGroup>
              
                  

  3. The web.config application configuration file will also be edited with a chosen parameter value for the "domainID" parameter name for each NHibernate configuration file. In this way a key/value pair relationship is established and the application can use multiple database instances, each with they own identifying key:

                         
      <playerGroup>
        <sessionFactories>
          <sessionFactory domainID="database_for_customer_A"
              factoryConfigPath="C:\path\to\edited\configuration\file\myfilename.cfg.xml"/>
          <sessionFactory domainID="database_for_customer_B"
              factoryConfigPath="C:\path\to\edited\configuration\file\anotherfilename.cfg.xml"/>
        </sessionFactories>
      </playerGroup>
              
                  

  4. The value of the "domainID" parameter needs to be added to the launch parameters of the Icodeon Player. For example, if an HTML form is being used to launch the Player window, the "domainID" parameter and value would be added as a hidden form field:

                        
    <form method="post">
      <input type="hidden" name="domainID" value="database_for_customer_A"/>
      ...
    </form>
              
                  

Chapter 6. Course Content Management Configuration

6.1. Course Content

SCORM content is distributed as compressed .zip file known as a Package Interchange File (PIF). A host learning management system will typically provide some facility for uploading and unzipping these files to a network location. It is the responsibility of the host learning management system to provide the Icodeon SCORM Player with a unique identifer, the "courseID" parameter value, that can be resolved to the location of the unzipped PIF.

The details of exactly how the "courseID" is resolved to the network location of an unzipped PIF is implementation specific. The software is provided with the default implementation and source code. Vendors are free to write their own implementation as a "plug-in" for a vendor specific strategy for resolving the "courseID" parameter value to the the location of the unzipped PIF.

6.2. Default Implementation

The default implementation relies on a simple strategy of:

  1. Specifing path for a root directory for all unzipped PIF files. This directory is specified in the web.config configuration file, and can be a relative or absolute URL:

                        
    <add key="LCMSEndPoint" value="CourseImports"/>
              
                  
    The example above specifies a directory relative to the application directory. For an application mapped to a virtual directory called "player" all unzipped PIF files would be found at:
                        
    http://localhost/player/CourseImports/
              
                  
    If an ansolute URL had been specified: URL:
                        
    <add key="LCMSEndPoint" value="http://localhost/content/scorm"/>
              
                  
    all unzipped PIF files would be found below the "scorm" directory.

  2. Specifying that the "courseID" parameter value is the same as the directory name of the unzipped PIF file. The Icodeon Player then builds a URL to read in the imsmanifest.xml file give the location of the root directory that contains all unzipped PIF files, and the specific directory name of the directory contained the unzipped PIF file itself.

The code that implements this strategy is in a class called "ManifestHandlerFactory" and compiled into a library called "Icodeon.Player.Plugins". The class is mapped to a defined handler name called "ManifestResolver" and specified in the web.config configuration file:

              
<system.webServer>
  <handlers>
    ...
      <add name="ManifestResolver" verb="GET" path="ManifestResolver.aspx"
          type="Icodeon.RTE.Handlers.ManifestHandlerFactory, Icodeon.Player.Plugins"/>
    ...
    </handlers>
</system.webServer>
          
        
The source code for this default implementation is found in:
          
[PARENT DIRECTORY]/config/src/Icodeon/RTE/Handlers
          
        
Icodeon customers are licensed to re-use this code as a basis for their own implementation to "plug-in" as a replacement for the default implementation.

6.3. Plug-In Implementations

The process of writing a "plug-in" implementation to relace the default implementation is as follows:

  1. Design a strategy that can be implemented in C# code for the .NET 1.1 or .NET 2.0 platform that resolves a given "courseID" to the unqiue network location of the unzipped PIF file.

  2. Code the strategy as an "HTTP Handler" class, that implemenent the interface:

                    
    System.Web.IHttpHandler
              
                  
    Instances of these classes are manufactured by factory classes that are an implemenation of the the interface:
                    
    System.Web.IHttpHandlerFactory
              
                  
    so a factory class will need to be written also. The "HTTP Handler" class and it's "Factory" will then need to be compiled into a class library (.dll) file and mapped against the defined handler name called "ManifestResolver" that is specified in the web.config configuration file.
                        
    <system.webServer>
      <handlers>
        ...
          <add name="ManifestResolver" verb="GET" path="ManifestResolver.aspx"
              type="Vendor.RTE.Handlers.ManifestHandlerFactory, Vendor.Player.Plugins"/>
        ...
        </handlers>
    </system.webServer>
              
                  

6.4. SCORM Cross-Domain Scripting Issue

There is a well known issue in SCORM implementations known as the "SCORM Cross-Domain Scripting Issue" that is a variant of the browser "Single Origin" security policy: that scripts from a web page from one domain may not invoke functions of a script on a web page of another domain.

The issue arrises in SCORM implementations as SCORM specifies that a host run time environment (such as the Icodeon SCORM Player) and content objects must establish a communication session through Java Script function calls.

There is ongoing discussion within the community of SCORM implementers concerning this cross-domain scripting issue. Icodeon recommends placing both the Icodeon Player and the Course Content within the same network domain to be the most successful strategy.

Chapter 7. User Interface Configuration

7.1. User Interface Customization

7.1.1. Globalization

The Icodeon SCORM Player supports an extensible system for user interface language. Compiled resource (.resx) files can be added in the approptiate directory under the location:

            
[PARENT DIRECTORY]/wwwroot/bin/
          
          
By default the Icodeon Player supports the following languages in the table below. The language system is extensible, so venndors can request additions to the languages supported.
CodeCountry and Language
da-DKDanish
de-DEGerman
en-GBEnglish (UK)
en-USEnglish (US)
es-ESSpanish
fr-FRFrench
nb-NONorwiegen
sv-SVSwedish

Table 7.1. Default Languages Supported by the Icodeon Player

The language to be used is specified in the web.config configuration guide:
            
<globalization 
  requestEncoding="utf-8" 
  responseEncoding="utf-8" 
  culture="en-US"
  uiCulture="en-US"/>
          
          

7.1.2. User Interface Devices

The Icodeon Player supports customization of user interface devices. SCORM 2004 3rd Edition User Interface conformance requires that that SCORM run time environments provide learners with a minimum set of User Interface devices. Howver, because SCORM content often contains its own navigation devices, many vendors wish to remove devices from the run time environment. One way to do this is to customize the user interface devices of the Icodeon Player.

The user interface devices of the Icodeon Player are customized by editing a comma separated list of features in an element in the web.config configuration file:

            
<add key="uiFeatureList" 
  value="back,next,exit,toolbar"/>
          
          
The table below lists the vocabulary tokens supported for each user interface feature. There is a special token of "blank" that displays the Icodeon SCORM Player with no user interface controls.
TokenDescription
back Button to trigger SCORM "previous" navigation event
next Button to trigger SCORM "continue" navigation event
exit Button to trigger SCORM "exit" or "exitAll" navigation event
toolbarCollapsible tool bar
organizations Drop down combo box for multiple organizations
tree Collapsible table of contents displayed as tree control
blankNo user interface devices

Table 7.2. User Interface Devices Supported by the Icodeon Player

The images below illustrate example configurations:
ConfigurationScreen shot
back,next,exit,toolbar (default)
blank
back,next,exit,about,toolbar,organizations,tree

Table 7.3. Example Configurations of the Icodeon Player User Interface [click for full size]

7.1.3. Toolbar Title

The title that appears of the Icodeon Player toolbar is customized by editing a an element in the web.config configuration file:

            
<add key="playerTitle" 
      value="Vendor Branded Title"/>
          
          
The image below illustrate an example configurations:
ConfigurationScreen shot
Vendor Branded Title

Table 7.4. Example Configurations of the Icodeon Player User Interface [click for full size]

7.1.4. Look and Feel

The Icodeon Player is provided with four configurations for look and feel. These configurations are known as user interface "skins". The skin configuration of the Icodeon Player is customized managed using the "skinID" element in the web.config configuration file:

            
<add key="skinID" value="default"/>
          
          
The table below lists the vocabulary tokens supported for each of the provided skins and a screen shot of each skin:
TokenDescriptionScreen Shot
defaultMicrosoft "Outlook" style
grayGray style
aeroSemi transparent style
vistaMicrosoft Vista style

Table 7.5. User Interface Skins Supported by the Icodeon Player

7.1.5. Markup

The Icodeon Player distribution is supplied with some sample HTML markup to show how the Player can be loaded into either a new window or an HTML frameset.

            
[PARENT DIRECTORY]/wwwroot/index.html
[PARENT DIRECTORY]/wwwroot/LMSPackages.aspx
[PARENT DIRECTORY]/wwwroot/LMSFrameset.html

          
These files are not intended for production use and are not part of the Icodeon SCORM Player application. The files are included to guide integration developers with an approach to integrating the Icodeon Player into their own windows and web pages.
The Icodeon SCORM Player within an HTML frameset

The Icodeon SCORM Player within an HTML frameset [full size]

7.2. Integration with a host e-Learning System/LMS

7.2.1. Player Launch

How the Icodeon Player is launched from a host LMS is an implementation decision for the LMS intgerator. The Player may be launched using a link with added URL parameters, or from a form, where parameters are added in hidden form fields. The Player may be launched into a new window or into an HTML frameset/IFrame within an LMS screen.

NOTE: Some SCORM content will attempt to close down a containing window. If the Player is added to an HTML frameset/IFrame within an LMS screen AND the SCORM content attempts to close down the LMS window, the user experiences the content closing an LMS session window. The example dynamic(.aspx)and static (.html) pages included with the distribution include example code for launching using HTML links and forms.

            
[PARENT DIRECTORY]/wwwroot/index.html
[PARENT DIRECTORY]/wwwroot/LMSPackages.aspx
[PARENT DIRECTORY]/wwwroot/LMSFrameset.html

          
There a are a number of mandatory and optional parameters that will need to be added to a launch link or a launch form. Many of these parameters are also featured in the web.config file where they are used to determine the behaviour for an instance of the application. If a parameter is used in a launch request for a particular learner session, then the launch parameter overrides the configuration parameter of the same name. In this way, individual learner sessions with the Player can be tailored to the specific user. The launch parameters are listed in the table below:
Parameter NameMandatoryComment
learnerIDYes Used to populate the SCORM run time environment data model element cmi.learner_id.
courseIDYes Used to resolve the location of the directory containing the imsmanifest.xml file.
domainIDYes Used as a key to map to the location of the NHibernate configuration file.
learnerNameNo (except for SCORM conformance testing) Used to populate the SCORM run time environment data model element cmi.learner_name. If used, the format should be family name followed by first name separated by a comma. A middle intial can be added after space after the first name. Example: Student, Joseph A.
sessionIDNo This has no semantic meaning within the Icodeon Player and is simply persisted in the database table ICM_COCD.
skinIDNo Overrides the value set in the web.config file.
uiFeatureListNo Overrides the value set in the web.config file.
playerTitleNo Overrides the value set in the web.config file.
cultureNo Overrides the value set in the web.config file.

Table 7.6. Launch Parameters for the Icodeon Player

If the mandatory parameters are not specified at launch, then the Icodeon Player will report an error condition.

Chapter 8. Trouble Shooting

8.1. Server-Side Debugging

Detailed diagnostic information is required to identify the issue for resolution if there are errors reported by the Icodeon Player. To provide vendors and Icodeon with this detailed diagnostic information, use the following steps:

  1. Turn on server-side debugging in the log files. The server-side log level is specified in the web.config configuration file, and should be set to DEBUG:

                        
    <logger name="Icodeon" additivity="false">
      <level value="DEBUG"/>
        <appender-ref ref="FileAppender"/>
    </logger>
              
                  

  2. Optionally, filter server-side debugging for the component where the error is being generated. For example, is there is an error with the SCORM tracking, a filter could be applied to only log DEBUG messages from the CMI data model tracking web service:

                        
    <logger name="Icodeon.Services.Cmi" additivity="false">
      <level value="DEBUG"/>
        <appender-ref ref="FileAppender"/>
    </logger>
              
                  

  3. Set error reporting to rich error reporting messaging. The richness of error reporting is specified in the web.config configuration file.

                        
    <compilation debug="true"/>
    <trace enabled="true" pageOutput="true"/>
    ...
    <customErrors mode="Off" defaultRedirect="errors/LMSError.aspx">
    ...
    </customErrors>
              
                  

Once all of the above are enabled, then rich error reporting in the browser and in then log files is enabled. Log files and browser messages can be sent to Icodeon for diagnosis.

8.2. Client-Side Debugging

The Icodeon Player makes use of advanced client-side JavaScript classes to manage SCORM behaviour and communication with web services. Errors in client-side behvaiour will not appear in the server side rich error reporting. To provide vendors and Icodeon with this detailed client-side diagnostic information, use the following steps:

  1. Switch to using a FireFox browser for client side debugging. The error messaging from Java Script classes is more detailed in this browser.

  2. Turn on AJAX logging for client side log messages. The debug and error messaging from Java Script classes will be recorded in a new browser window. The client-side log level is specified in the web.config configuration file, and should be set to DEBUG:

                        
    <add key="ajaxLogLevel" value="DEBUG"/>
              
                  

8.3. Product Updates

From time to time Icodeon issue product updates. Customers will recieve automatic notification from Icodeon Customer Support when a new release is available for download. If the product update is a minor version change (for example, from Verison 2.09 to Version 2.10), then updated application files can normally be copied over an exisiting deployment, with the exception of configuration files and serial numbers, which will need to be back up and restored to the newly copied files:

              
[PARENT DIRECTORY]/wwwroot/web.config
[PARENT DIRECTORY]/wwwroot/serial_number.inf
          
        

The Icodeon SCORM Player makes extensive use of client (browser) side Ajax libraries which may be cached locally in the browser. When testing the product update it is necessary to ensure that browser caches are refreshed to ensure the updated libraries are used by the browser.

8.4. Icodeon Support

This guide provides details for installing and configuring the Icodeon SCORM Player .NET Edition for typical evaluation and production deployments.

The Icodeon SCORM Player provides the vendor with many customization options and extension points at which vendor "plug-ins" can be used to replace the default code provided by Icodeon. For support regarding further customization options and extension points go to http://support.icodeon.com


        

Support and help with the Icodeon Player

Support and help with the Icodeon Player


        

Chapter 9. Extending the SCORM Player with a Custom Plug-In

Table of Contents

9.1. Introduction

9.1. Introduction

The Icodeon SCORM Player comes with numeroous configuration and customization options. However, sometimes these options provided by Icodeon do not meet the specific needs of a particular vendor.

For further details of the database schema, and examples of report queries, please see the accompanying document plugin.html

Chapter 10. Performance and Optimization

10.1. Introduction

The SCORM specification, escpecially SCORM 2004, requires a lot of "state" to be maintained and processed and so there are inherent limits to the performance of SCORM run times.

Note also that the first request to the Icodeon SCORM Player, like all ASP.NET applications is atypical - there are application start up events associated with the first request that make this (once only) request slower than subsequent requests.

However, there are a number of configuration and deployment options that can be used to tune/optimize the performance of the Icodeon SCORM Player.

10.2. Persistence Layer Optimization

The Icodeon SCORM Player uses the Hibernate Object/Relational layer for persistence. At start-up this layer generates required SQL statements and caches them for use later at run-time. The following property can be added to the Hibernate configuration files that gives slower applicatio start-up (a one time event) but faster run time behaviour:

          
    <!-- Optimizer is slower on initialization, but faster when running -->
    <property name="hibernate.use_reflection_optimizer">true</property>

        

10.3. Launch Optimization

When the Icodeon Player is launched, the mandatory parameter called:

          
          courseID

        
must be included in the launch URL or form parameters. Launch performance can be improved by adding the optional parameter called:
          
          orgID

        
which is the identifier of the particular organization to be used within the SCORM manifest file. By specifying the organization identifier in the launch, the extra effort to read in the manifest file and determine the identifier is avoided, improving launch performance.

10.4. Cache Optimization

When the Icodeon SCORM Player is launched, the manifest file for the particular SCORM package is read in and parsed. To avoid repeated reads of the same manifest file, the Player is configured to cache the file for faster reuse. Cache behavior is dependent on where the Icodeon SCORM Player reads the manifest file from: either from a directory that is below the root directory of the Player application, or from a different virtual directory in the same domain.

  1. The Icodeon SCORM Player reads from a directory that is below the root directory of the Player application. The value of the parameter for LCMSEndPoint is a relative URL.

    With this configuration, the Player supports dynamic checking of the cache against the manifest files on disk. If a manifest file is changed on disk, the file is automatically removed from the cache and replaced next time the manifest is requested by the application.

    This configuration provides the best performance.

  2. The Icodeon SCORM Player reads from a different virtual directory in the same domain. The value of the parameter for LCMSEndPoint is an absolute URL.

    With this configuration, the Player cannot check to see if a manifest file has been changed at a remote location. If the file needs to be removed from the cache either the cache can be configured to renew after a period of time, or the manifest items can be removed from the cache manually. The cache expiry time can be set in the web.config file using the parameter value for manifestCacheExpiryMins. The cache can be cleared manually using the controls available on the application control panel at LMSAdmin.aspx

    This configuration gives better performance when the manifestCacheExpiryMins is set to a higher value.

This document was created using the >e-novative> DocBook Environment (eDE)