Explore Sakai - ETH Zurich, 2005-05-26 1
ETH Technical Presentation - May 2005 1
Overview of Sakai Technologyfor Eidgenössische
Technische Hochschule ZürichMark J. Norton
Senior Technical ConsultantThe Sakai Project
ETH Technical Presentation - May 2005 2
Overview
• Architectural Overview– The Sakai Framework
• Developing New Applications– Development Languages & Tools– Tool Development
• Integrating Sakai– Approaches– Examples
Explore Sakai - ETH Zurich, 2005-05-26 2
ETH Technical Presentation - May 2005 3
What is Sakai?
• Sakai is a Collaboration Learning Environment.
• A platform for modular tools.• Support for:
– Course management– Learning delivery– Collaboration, work, and administration
ETH Technical Presentation - May 2005 4
A Support Framework
• Sakai is separated into two main parts:
Tools
Sakai Framework
Explore Sakai - ETH Zurich, 2005-05-26 3
ETH Technical Presentation - May 2005 5
The
Sak
ai F
ram
ewor
k
SakaiService
SakaiService
SakaiService
SakaiService
Sakai Tool Sakai Tool Sakai Tool
What is a Framework?• A “framework” is like a “hosting environment”• It is the stuff that “surrounds” the user-programmable
parts “inside”• This framework includes common services that can
be used to build more complex services.
ETH Technical Presentation - May 2005 6
Aggregator
Presentation
Tools
Services
Client
System
The
Abs
tract
Sak
ai E
nviro
nmen
t
What is an Architecture?
• Very abstract• The part that doesn’t change• Defines common terminology• Usually not heavily debated• Is not the implementation
detail at all
Explore Sakai - ETH Zurich, 2005-05-26 4
ETH Technical Presentation - May 2005 7
Architecture .vs. Framework
Aggregator
Presentation
Tools
Services
Client
System
The
Abs
tract
Sak
ai E
nviro
nmen
t
The
Sak
ai F
ram
ewor
k
InternalAggregator
Sakai ToolPresentation
SakaiTool Code
ApplicationServices
FrameworkServices
PresentationSupport
The
Sak
ai T
ool E
nviro
nmen
t
ExternalAggregator
System
Architecture
Framework
The Sakai Architecture leads to the design of a Sakai Framework
ETH Technical Presentation - May 2005 8
The Sakai Framework
JSF
Tools
Application Services
Portal
Common Services
Kernel
The Sakai Framework consists of three essential parts: JSF to manage presentation and implement the Style Guide, Common Services to provide essential service support, and the kernel to provide a basic web application environment.
Explore Sakai - ETH Zurich, 2005-05-26 5
ETH Technical Presentation - May 2005 9
The Sakai Common Services
Authorization
Authentication
SuperStructure
RepositoryAgent / Group
UuidType
ETH Technical Presentation - May 2005 10
The AuthZ Structures
Group
Group Group
Agents Agents
Group Tree UCD
English Science
Staff Biology
BIO-101
Section
Site
Tools
Dean
Prof.
SuperStructure
Chat.Read
Email.Write
Assess.Grade
Site.Create
Functions
WHO CAN-DO WHAT?
Explore Sakai - ETH Zurich, 2005-05-26 6
ETH Technical Presentation - May 2005 11
sakai
UM
EE
EE101
S123
Off101
chat-tool dir/
file.txt
rsrc-tool
layout
Group-EE-Students
Group-UM-Students
chat-tool
GRP1
GRP2
Chat-channel-0439
Sakai SuperStructure
ETH Technical Presentation - May 2005 12
The Sakai User Interface Process
Sakai Tool
FacesServlet
Faces-config.xml
SakaiGUI Elements
FacesRenderer Portal
JSF Page
Client
Explore Sakai - ETH Zurich, 2005-05-26 7
ETH Technical Presentation - May 2005 13
Legacy Services• alias• announcement• archive• assignment• calendar• chat• content• coursemanagement• digest• discussion• dissertation• email• event• id• message
• news• notification• preference• presence• realm• resource• security• site• time• user• CVS• cluster• component• config• courier
• current• email• log• memory• portal• session• sql
ETH Technical Presentation - May 2005 14
Developing Sakai Code
• Development Tools• Kinds of Development• Design Patterns• Languages• Development Details
Explore Sakai - ETH Zurich, 2005-05-26 8
ETH Technical Presentation - May 2005 15
Development Tools
• Sakai developers use a number of tools to build services and applications:– Maven: a build tool based on dependencies.– Eclipse: an integrated development
environment.– JUnit: a unit testing support system– Jira: bug tracking and management– Sakai: projects, design, documentation
ETH Technical Presentation - May 2005 16
Kinds of Sakai Development
• Framework development – core• Service development - specialists• Tool development - general• User interface design – HCI specialists• Skins and style sheets - designers
Explore Sakai - ETH Zurich, 2005-05-26 9
ETH Technical Presentation - May 2005 17
Design Patterns
• Layered service architecture• Code to interfaces• Separation of presentation from
application logic• Beans and DAOs• ORM based on Hibernate• Database and OS independence
ETH Technical Presentation - May 2005 18
Languages
• Sakai is predominantly written in Java intended to run in Tomcat under Apache.
• It is Operating System independent.• It supports three kinds of databases:
– Oracle– MySQL– Hypersonic (HSQL)
Explore Sakai - ETH Zurich, 2005-05-26 10
ETH Technical Presentation - May 2005 19
Limited Support for Other Languages
• Key Sakai services are being revealed using WSRP and WSDL.
• This enables tools to be written in languages other than Java.
• Examples include Perl, PHP, Objective C, etc.
ETH Technical Presentation - May 2005 20
Development Details
• Bug Tracking• Build Processes• CVS• Release Process
Explore Sakai - ETH Zurich, 2005-05-26 11
ETH Technical Presentation - May 2005 21
Bug Tracking
• Full-time bug manager (Peter Knoop)
• [email protected]• [email protected]• bugs.sakaiproject.org• Open to the public to view and
submit• Will increasingly be the focus
of new work assignments
ETH Technical Presentation - May 2005 22
CVS Process
• Server: cvs.sakaiproject.org• CVS Structure
– Sakai module - Should always be a “workable Sakai”
– Samigo module– Gradebook module– Scratch module - emerging code (e.g. fw2)– UM / IU - etc modules - local configuration stuff
• CVS Head– Someone “has the pumpkin” for the “Sakai”
module
Explore Sakai - ETH Zurich, 2005-05-26 12
ETH Technical Presentation - May 2005 23
CVS (cont)
• Tagging– Allows production at sites to stabilize while head
moves forward• Permission - wide open - within team trust• Future
– Re-factor the Sakai directory so as to produce a more pure framework
– Move “optional” parts into modules– Move toward mechanism to assemble the “basic
Sakai release” from multiple modules - probably Maven
Build Process
• Slide From Rob/Lance
Thanks to Lance Speelmon
Explore Sakai - ETH Zurich, 2005-05-26 13
ETH Technical Presentation - May 2005 25
Documentation
• Collab.sakaiproject.org– This is where most projects are organized.
• Sakaipedia– A collaborative documentation effort similar
to Wikipedia.• Formal documents
– The kernel and key services are formally documented.
ETH Technical Presentation - May 2005 26
Enterprise Integration
• Sakai offers several approaches to campus integration:– Service replacement– Legacy plug-ins– Providers – federation, remote service
access.– Database intermediaries (a provider using
published schemas)
Explore Sakai - ETH Zurich, 2005-05-26 14
ETH Technical Presentation - May 2005 27
Service Replacement
• Service replace means creating a whole new implementation of a service based on it’s published API.
• While this gives you the most amount of control, it is also the most amount of work.
• Service dependencies may require multiple implementations.
ETH Technical Presentation - May 2005 28
Legacy Plugins
• The Sakai Legacy services include a plug-in architecture that enables extensions to be made.
• They are coded to the same interface as the service.
• These are being replaced by providers as we migrate older services to the new common services.
Explore Sakai - ETH Zurich, 2005-05-26 15
ETH Technical Presentation - May 2005 29
Providers
• Providers are a way to “look someplace else” for data.
• These other place can be a service or a database.
• Sakai is working on well known database schemas to allow data to be moved in via intermediate databases.
ETH Technical Presentation - May 2005 30
Integration Examples
• There are several versions of LDAP integration for Sakai. Schools have been using it for Authentication since 1.0.
• Work is underway at MIT to integrate Sakai to MIT services via the OKI OSIDs. Initial work is focused on the SuperStructure/Hierarchy service.
Explore Sakai - ETH Zurich, 2005-05-26 16
ETH Technical Presentation - May 2005 31
Migration and Tool Portability
• Data Migration– Migration Tools
• Tool Portability– Sakai portability– TPP portability
ETH Technical Presentation - May 2005 32
Data Migration
• Zachary Thomas of Texas State U. has developed a migration tool that currently allows content from Blackboard to be migrated into Sakai.
• This will also serve as the basis for a WebCT migration tool.
Explore Sakai - ETH Zurich, 2005-05-26 17
ETH Technical Presentation - May 2005 33
IMS Tool Portability Project
• Started as an IMS SIG for Sakai to interact with commercial LMS companies
• Approved by IMS 11/2004• Blackboard, CETIS, MIT, Sun, Indiana,
WebCT, University of Michigan …• Goal: By Alt-I-lab in July 2005 to have
demonstrated a single application working in Blackboard, WebCT, and Sakai.
ETH Technical Presentation - May 2005 34
SakaiSamigo
Welcome to Sakai
SamigoButtonButtonButtonButtonButtonButton
Welcome to WebCT
Samigo
Button Button Button Button Button Button Button Button
Welcome to BlackBoard
WebCt BlackBoard
Button Button Button Button Button Button Button Button
Samigo
HTML/HTTP Web Services
By July 2005 - Demonstrate
Explore Sakai - ETH Zurich, 2005-05-26 18
Header
Tool AreaButtonButtonButtonButtonButtonButton
Ext
erna
l W
eb A
pplic
atio
n
Launch Control
SessionAnd Services
Bootstrap
WebServices Application
Code
1
23
4
56
7
CLE
Env
ironm
ent
HTML/HTTPWeb Services
How it Works
ETH Technical Presentation - May 2005 36
Interoperability and Standards
• Sakai provides support for both interoperability and portability.
• Standard data interchange formats are being added to Sakai services.
• Tools are portable between Sakai environments.
• Tools can be ported to TPP-enabled environments.
Explore Sakai - ETH Zurich, 2005-05-26 19
ETH Technical Presentation - May 2005 37
The SCORM Runtime Engine
• UC Davis is porting the SCORM runtime engine to Sakai.
• This will enable delivery of SCORM modules and organized content.
• Support for sequencing will be included.
ETH Technical Presentation - May 2005 38
Leveraging other Open Source Projects
• Sakai uses a wide variety of other open source software:– Apache, Tomcat, Jakarta Commons– JavaServer Faces, myFaces, JSP– Hibernate, MySQL– Maven, Eclipse– XWiki, XML, WSRP, Velocity– Etc.
Explore Sakai - ETH Zurich, 2005-05-26 20
ETH Technical Presentation - May 2005 39
Questions?