Sakai project:
Sakai is a Java-based, service-oriented application suite that is designed to be scalable, reliable, interoperable and extensible. It is derived by a community of academic institutions, commercial organizations and individuals who work together to develop a common Collaboration and Learning Environment (CLE). The Sakai CLE is a free, community source, educational software platform distributed under the Educational Community License (a type of open source license). The Sakai CLE is used for teaching, research and collaboration.
Sakai Programmer's Cafe
Moodle Moodle LMS is not good. People are moving away.


A global, nonprofit organization that strives to enable the growth and impact of learning technology in the education and corporate learning sectors worldwide. http://www.imsglobal.org/ The main goal is interoperability: make things seamlessly interpretable.


is a community of academic institutions

Sakai CLE

is a free, community source, educational software platform
Sakai is a Java-based, service-oriented application suite that is designed to be scalable, reliable, interoperable and extensible.

The Sakai software includes many of the features common to course management systems, including document distribution, a gradebook, discussion, live chat, assignment uploads, and online testing.

In addition to the course management features, Sakai is intended as a collaborative tool for research and group projects. To support this function, Sakai includes the ability to change the settings of all the tools based on roles, changing what the system permits different users to do with each tool. It also includes a wiki, mailing list distribution and archiving, and an RSS reader. The core tools can be augmented with tools designed for a particular application of Sakai. Examples might include sites for collaborative projects, teaching and portfolios.

CMS: Course Management Systems (CMS)
LMS: Learning Management Systems (LMS)
VLE: Virtual Learning Environments (VLE)

LTI (Learning Tools Interoperability)

This is a module (portlet) in the Sakai project that implements the IMS Basic Learning Tools Interoperability specification. The tool can be placed in a Sakai site and used to point at a tool that is running outside of Sakai. IMS Basic LTI sends course, user, and role information to the external tool using OAuth.

SCORM (Sharable Content Object Reference Model)

 XML-based standard (specification). is a collection of standards and specifications for web-based e-learning.

It defines communications between client side content and a host system called the run-time environment, which is commonly supported by a learning management system. SCORM also defines how content may be packaged into a transferable ZIP file called "Package Interchange Format".

SCORM introduced an idea called sequencing: a set of rules that specifies the order in which a learner may experience content objects. It constrains a learner to a fixed set of paths through the training material, permit the learner to "bookmark" their progress when taking breaks, and assure the acceptability of test scores achieved by the learner.

SCORM 2004:
It is based on new standards for API and content object-to-runtime environment communication. Includes ability to specify adaptive sequencing of activities that use the content objects. Includes ability to share and use information about success status for multiple learning objectives or competencies across content objects and across courses for the same learner within the same learning management system. A more robust test suite helps ensure good interoperability.

SCORM Sub-specs

Content Packaging
specifies how content should be packaged and described. It is based primarily on XML.
SCORM specifies that content should be packaged in a self-contained directory or a ZIP file. This delivery is called a Package Interchange File (PIF). The PIF must always contain an XML file named imsmanifest.xml (the “manifest file”) at the root. The manifest file contains all the information the LMS needs to deliver the content. The manifest divides the course into one or more parts called SCOs. SCOs can be combined into a tree structure that represents the course, known as the “activity tree”. The manifest contains an XML representation of the activity tree, information about how to launch each SCO and (optionally) metadata that describes the course and its parts.
specifies how content should be launched and how it communicates with the LMS. It is based primarily on ECMAScript (JavaScript).
The run-time specification states that the LMS should launch content in a web browser, either in a new window or in a frameset. The LMS may only launch one SCO at a time. All content must be web deliverable and it is always launched in a web browser. Once the content is launched, it uses a well-defined algorithm to locate an ECMAScript (JavaScript) API that is provided by the LMS. This API has functions that permit the exchange of data with the LMS. The CMI data model provides a list of data elements (a vocabulary) that can be written to and read from the LMS. Some example data model elements include the status of the SCO (completed, passed, failed, etc), the score the learner achieved, a bookmark to track the learner’s location, and the total amount of time the learner spent in the SCO.
specifies how the learner can navigate between parts of the course (SCOs). It is defined by a set of rules and attributes written in XML.
The sequencing specification allows the content author to govern how the learner is allowed to navigate between SCOs and how progress data is rolled up to the course level. Sequencing rules are represented by XML within the course’s manifest. Sequencing operates on a tracking model that closely parallels the CMI data reported by SCOs during run-time. Sequencing rules allow the content author to do things like:
* Determine which navigational controls the LMS should provide to the user (previous/next buttons, a navigable table of contents, etc).    
* Specify that certain activities must be completed before others (prerequisites).    
* Make some parts of a course count more than others toward a final status or score (creating optional sections or providing question weighting).    
* Randomly select a different subset of available SCOs to be delivered on each new attempt (to enable test banking, for instance).    
* Take the user back to instructional material that was not mastered (remediation).



Basic LTI is a protocol between SCORM server (as LTI provider: maintains content of course, e.g. SCORM Player) and Sakai server (as LTI consumer: maintains users, their activities, scores, etc.) Full LTI is two-way and its specifications are not completed yet. LTI is a protocol, a set of parameters.

Sakai ------------ LTI--------> SCORM
Sakai <--- Generate UI --- SCORM

Web services work through SOAP, XML RPC, JSON, etc.

Sakai has a LTI module to generate LTI rules, This module probably encodes strings twice, hence UTF is skipped.

Sakai is a portal has a set of portlets, each of which could be from any source or any website or web service. Modules of Sakai can be using JSP, Servlets, Faces, hibernate, Spring, etc, it is with a community-based development structure like drupal.

Layers of J2EE communicate through ports.

Java HTTP is slower than APACHE!?

My Jobs:
1. Build and Deploy of Sakai
Maven is over ant and matches subversion
2. After deploying and working --> change a module without touching others.
Understand the properties files, XML files
3. Develop Full LTI

Cnfluence- Jira: Bug tracking in Sakai

Subpages (1): Sakai