320 likes | 422 Views
An OCW Installer for Sakai using OKI v3 OSIDs. Mark J. Norton Nolaria Consulting July 2008. Overview. Open Courseware IMS Common Cartridges OKI v3 Initiative Design Challenges The Installer Application. Sponsorship. This work was sponsored by contributions from: The Hewlett Foundation
E N D
An OCW Installer for Sakai using OKI v3 OSIDs Mark J. Norton Nolaria Consulting July 2008
Overview • Open Courseware • IMS Common Cartridges • OKI v3 Initiative • Design Challenges • The Installer Application
Sponsorship • This work was sponsored by contributions from: • The Hewlett Foundation • C( )SL at Utah State University • Office of Educational Innovation and Technology at MIT
Objective • Create a web application that: • Installs OCW packages formatted as IMC Common Cartridges. • Uses the v3 OSIDs for portability • Implements the Filing OSID on Sakai. Before we get into the details of the project, let’s have a quick look at OCW, IMS-CC, and OKI.
Open Courseware and many others …
Open Courseware • The point of open courseware is to create and distribute free educational material organized as courses. • These are usually derived from actual course descriptions, syllabus, notes, slides, videos, and other support materials vetted to protect intellectual property rights.
The OCW Movement • Over 200 organizations worldwide are involved with creating and distributing open courseware. • Most of these are available under some of a Creative Commons license, which makes them free to use and re-use.
Access to OCW Courses • Most OCW courses are available in two forms: • Directly viewable in some kind of on-line repository. • Downloadable in some form of package The focus of this presentation is on expanding and improving support for OCW packaging creating an installer application based on IMS Common Cartridges.
OCW Packages • Early OCW packages where either simple archives (zip, tar, etc.) or an IMS Content Package (with internal manifest). • The introduction of the IMS Common Cartridge specification provides a new packaging profile that should promote better interoperability for OCW.
IMS Common Cartridges • Web content, media files, and application specific files (Word, etc.) • Assessments based on IMS-QTI 2.1 • Discussion forum topics • Metadata using Dublin Core • Remote authorization to protect intellectual property
imsmanifest.xml Metadata Web Content Object Resources Associated Content Question Bank Common Cartridge Package Object folder
Resources Supported • Additional web content • Links • Discussion topics • SCORM package • Assessments • Question bank references • Inter-package references
Additional Info • Each package can contain metadata, either embedded in the manifest, or in a separate file and a question bank in IMS-QTI 2.1 format. • The IMS Common Cartridge specification has not been ratified by the IMS community at this time and is not publicly available. This is expected soon.
OKI v3 OSID Initiative OKI v3 OSIDs, C’est Arrivé!
Problems Addressed The V3 OSIDs, though still preliminary, address problems of: • Session based threading, • Transactions • Unified handling of metadata • Abstract definitions vs. specific bindings • Problems identified in the v2 OSIDs
Filing OSID FilingProfile DirectoryAdminSession FileSession FilingManager DirectorySearchSession FileSearchSession This session oriented approach is one of the new design patterns that shows up through out the v3 OSIDs. DirectoryNotificationSession FileNotificationSession DirectoryEntryLookupSession
Design Challenges • Most OSIDs are an intermediate service layer between an application and system services. • In this case, it is a layer between the installer application and Sakai services (CHS). • The Filing OSID is designed to be more generic than the Content Hosting Service at it exists in Sakai. • Revealing detailed functionality through a generic interface can be challenging.
Data Streaming Application Filing OSID CHS Service Zip File I/O FilingManager CHS Service OutputStream FileSession Input Output InputStream This coupling is a design challenge CHS Storage
Separate Processes Application Filing OSID CHS Service Zip File I/O Input InputStream OutputStream Output CHS Storage
Three Solutions Three possible solutions were explored: • Spawn threads to handle each phase of the data transfer process. • Write the entire data block to the front. • Short-cut the whole chain. Each of these potential solutions have problems…
Problems with Spawning Threads • Threads are closely managed in Sakai. • Closely associated with specific types of activity. • While possible to spawn and use a generic thread, it is complicated. • Synchronization, blocking I/O, deadlocks, etc.
Problems with Writing All Data • Writing the whole data block to the stream results in some very large buffers for large media files (such as video). • Memory resources are limited. • Too easy to end up with multiple copies in memory.
Problems with Using Shortcuts • Creating a short cut involves an out of band agreement that reduces interoperability and subverts the OSID. • OoBA take away from the interoperability that the OSIDs seek.
Solution Used • Regardless of these problems, the current implementation loads all data into memory and uses a OoBA to communicate this data to the final content commit into the Sakai Content Hosting Service. • Besides actually working, this is fairly efficient, reducing install time required.
The Installer Application cc-installer RSF Presentation Layer IMS-CC Filing OSID Implementation Sakai Resources Content Hosting Service
CC-Install User Interface • Current implemented in RSF. • Three page views: main upload results
More Work to Do • Application is not 100% based on OSIDs yet – need to use DirectorySessionSearch • Complete the Filing OSID implementation. • Re-implement back end onto a file system to show portability.