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, lets 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 Cartridge
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
Common Cartridge Package Object folder Object Resources Associated Content imsmanifest.xml Web Content Metadata Question Bank
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.
Open Knowledge Initiative
OKI v3 OSID Initiative OKI v3 OSIDs, Cest 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 FilingManager FilingProfile DirectoryAdminSession DirectoryEntryLookupSession DirectoryNotificationSession DirectorySearchSession FileNotificationSession FileSearchSession FileSession This session oriented approach is one of the new design patterns that shows up through out the v3 OSIDs.
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 Zip File I/O OutputStreamFileSession InputOutputInputStream CHS Storage FilingManagerCHS Service Application Filing OSIDCHS Service This coupling is a design challenge
Separate Processes Zip File I/O OutputStream Input Output InputStream CHS Storage Application Filing OSIDCHS Service
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 RSF Presentation Layer Filing OSID Implementation Content Hosting Service cc-installer Sakai Resources IMS-CC
CC-Install User Interface Current implemented in RSF. Three page views: mainuploadresults
Select Target Directory
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.