sakai technical overview part ii charles severance june 1, 2006 download:

66
Sakai Technical Overview Part II Charles Severance June 1, 2006 Download: www.dr-chuck.com/talks.php

Post on 20-Dec-2015

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Sakai Technical OverviewPart II

Charles Severance

June 1, 2006

Download: www.dr-chuck.com/talks.php

Page 2: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Sakai Technical Goals

• Enterprise Production-ready• Abstraction boundaries between tools,

services, framework, and presentation• Seamless integration across tools when

appropriate• Component based expandability with class

loader isolation• Data interoperability and ability to expand

Sakai without using Java• Flexibility - Ease of Local Customization

Page 3: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Enterprise Production-Ready

Page 4: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Sakai Enterprise TechnologiesJava1.4

Oracle

Apache - SSL, mod_jk, WEBISO, virtual hosting

MySql 4.1

Sakai is aimed at Enterprise Deployments.

Sakai supports organizations with > 100,000 users in a single installation

Sakai consists of technologies chosen to be common in Java Enterprise Environments.

SakaiTomcat 5.5

SpringHibernate

Java Server FacesVelocity (legacy)

Page 5: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

DatabaseServer

IP Sprayer w/Sticky Session

Enterprise ScalabilityHardware or SoftwareUM = NetScaler IU = Software

App servers with identical software loads.UM = 8X Dell PowerEdge 2650, dual 2.4-3.2 GHz CPU, 4 GB RAM

Database ServerUM = SunFire V480, Quad 900 MHz CPU, 20GB RAM, 4 StorEdge 3310 SCSI RAID Arrays w/ 12 73Gb disks (Oracle)

File Server (optional)IU = NetApp

Ap

p S

erv

er

Hot Spare

Hot Spare

Hot S

pare

FileServer(opt)

Page 6: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Sakai in Production

Text

20+ Full scale installations

Page 7: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Sakai in Production

Text

myUnisa: 1 Mar 2006 to 17 Mar 2006Unique visitors: 72675Number of visits: 169796 (2.33 visits/visitor)Pages: 10,086,589Bandwidth: 66.13 GB (408.4 KB/visit)

Page 8: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Sakai in Production

Text

Page 9: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

High Level

Page 10: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Framework, Tools and Services

• Tools– Cannot do any type of persistence– Responsible for presentation (GUI)

• Services / Components– Must provide documented API– Cannot do any presentation (not aware of HTML at all)– Must access other services through service APIs (not data

models)

• Framework– Provides registration for tools and service– Provides common capabilities– Knows nothing of domain objects

Page 11: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Component Based Expansion

• Take an empty Sakai system

– Pick from the tool library

– Include the appropriate services

– Add some local customizations, look feel, language etc

• And you have a production ready system

• Tools and capabilities written by many different groups or individuals

SakaiFramework

ServiceLibrary

Customization

Configuration

Customization

Configuration

ToolLibrary

Page 12: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

ToDoPresentation

Persistence

Browser

ToDo ServiceCode

MyMonolithicToDo ListServlet

Browser

Service Oriented Architecture

Persistence

ServiceInterface(i.e. API)

Page 13: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Fitting Into the Sakai Framework

Framework

Application

SAF—Kernel

SAF—Common Services

Other Services

ToDo Tool Code (Java)

ServiceInterface (i.e. API)

ToDo Service

ToDo Tool Layout (JSP)

SAF—Presentation Services

PresentationAbstraction

Browser

Page 14: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Sakai Presentation Services

<sakai:button_bar><sakai:button_bar><sakai:button_bar_item<sakai:button_bar_itemaction="#{MyTool.processActionDoIt}action="#{MyTool.processActionDoIt}value="#{msgs.sample_one_cmd_go}" />value="#{msgs.sample_one_cmd_go}" /></sakai:button_bar></sakai:button_bar>

<sakai:view_container title="#{msgs.sample_title}">

<sakai:date_input <sakai:date_input value="#{MyTool.date}" />value="#{MyTool.date}" />

<h:inputText <h:inputText value="#{MyTool.userName}" />value="#{MyTool.userName}" />

<sakai:group_box <sakai:group_box title="#{msgs.sample_one_groupbox}">title="#{msgs.sample_one_groupbox}">

<sakai:instruction_message<sakai:instruction_messagevalue="#{msgs.sample_one_instructions}" />value="#{msgs.sample_one_instructions}" />

<sakai:tool_bar> <sakai:tool_bar_item/> </sakai:tool_bar>

Page 15: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Web Services

Framework

Application

ToDo Code

ToDo Layout

Presentation FrameworkWS Client

Axis

WS End Point

Web Svcs

Other Tools

Layout

PresentationAbstraction

SAF—Kernel

SAF—Common Services

Other Services ToDo Service

ServiceInterface (i.e. API)

Page 16: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Clear Abstraction Boundaries

Page 17: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Aggregator

Presentation

Tools

Services

Client

SystemT

he A

bstr

act

Sak

ai E

nviro

nmen

t

Abstract Architecture

• Sakai breaks its scope into distinct areas and builds strong abstractions between layers

• Goal is to be able to insert and remove implementations at any level without anyone noticing

Page 18: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Aggregator / Portal

• It assembles tools, buttons, tabs, etc and produces the final user interface

• The aggregator can completely transform the interface as it sees fit

• Receives and dispatches requests to tools after setting things like “context”

Aggregator

Presentation

Tools

Services

Page 19: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Mercury

Page 20: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:
Page 21: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:
Page 22: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Apple Portal

Page 23: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

VB Portal

Page 24: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Plex PLE

Page 25: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Upcoming Aggregators

• Cleaned up OSP Portal

• Hierarchy Portal - Astro

• Rumors and notions– Acetylene - Rumored RSF based portal– Iframe-free portal– PDA Aggregator– Better Desktop Portal

Aggregator

Presentation

Tools

Services

Page 26: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Presentation Layer Goals

• True abstraction between Presentation and Tools• Tools should not be aware that they are in a web browser

environment• GUI Widget reusability• Able to produce markup for multiple types of aggregators

(Sakai, JSR-168, WSRP)• Support multiple types of ultimate display devices (Browser,

PDA, etc)• Support internationalization and localization• Be as flexible as possible - support CSS and allow

transformability of the user interface,potentially under control of the end user

Aggregator

Presentation

Tools

Services

Page 27: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Presentation Technologies

• JSF– Current recommended solution because of setter/getter

pattern and support for reusable GUI components– Challenging to work with

• Velocity– Legacy– Simple, but abstraction is weak on the request-side

• Struts– Legacy

• RSF– Emerging but still waiting for proof in all areas

Aggregator

Presentation

Tools

Services

Page 28: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

<sakai:view_container title="#{msgs.sample_title}">

<sakai:tool_bar> <sakai:tool_bar_item/> </sakai:tool_bar>

<sakai:instruction_messagevalue="#{msgs.sample_one_instructions}" />

<sakai:group_box title="#{msgs.sample_one_groupbox}">

<h:inputText value="#{MyTool.userName}" />

<sakai:date_input value="#{MyTool.date}" />

<sakai:button_bar><sakai:button_bar_itemaction="#{MyTool.processActionDoIt}value="#{msgs.sample_one_cmd_go}" /></sakai:button_bar>

JSF Patterns

MyTool.processActionDoIt() {}

Aggregator

Presentation

Tools

Services

Page 29: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Tools and Services

• Tools– Written in Java and orchestrate the user interface– Have no persistence– Preferred pattern is Java object with getters and setters

• Services– Persistence– Business Objects– Business Logic

• Tools interact with services through published APIs • Tools find the implementations of APIs at runtime

using Spring and/or the ComponentManager

Aggregator

Presentation

Tools

Services

Page 30: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Finding Abstraction in your Tomcat

tomcat/webapps/portaltomcat/webapps/mercurytomcat/webapps/osp-portal

Aggregator

Presentation

Tools

Services

tomcat/webapp/sakai-user-tooltomcat/webapp/sakai-message-tool

tomcat/shared/lib/site-api.jartomcat/shared/lib/user-api.jar

tomcat/components/sakai-authz-packtomcat/components/sakai-user-pack

Page 31: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Seamless Tool Integration

Page 32: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Many levels of Integration

• Want your website under a button in Sakai?• Want your PHP app to know the current logged in

Sakai User?• Want build a self-contained that “cooperates” with

Sakai?• Full blown Sakai tool - released separately?• An optional part of the Sakai release?• A seamlessly integrated core part of the Sakai

release?Integration with the rest of Sakai is just another aspect of any tool’s design. Tool writers choose how deeply their tool is to be integrated into Sakai. The community will likely value more highly integrated tools more.

Page 33: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Sakai Architecture Goals

• Two seemingly conflicting goals– Seamless integration across tools– Ability to expand Sakai without using Java

• In the short term, writing tools in Java and using Sakai framework elements directly is the path to seamless integration

• But in the long term, we must make 3P tools full peers in Sakai.

Page 34: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Resources Presentation

Samigo

Melete

Anouncements

Reuse in 2.1

Page 35: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Resources Presentation

Samigo

Melete

Anouncements

Reuse in 2.2

OSPortfolio

Page 36: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Resources Presentation

Samigo

Melete

Anouncements

BetterReuse

OSPortfolio

Page 37: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Resources Presentation

Samigo

Melete

Anouncements

Flexibility in reuse

ScormAuthoring

OSPortfolio

Page 38: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Resources Presentation

Samigo

MeleteLanguageModule

Anouncements

We are building a general way to do

this….

ScormAuthoring

OSPortfolio

Page 39: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

HT

ML

HT

ML

Sakai Entity APIs

ExistingSakaiTools

Legend Existing Sakai 2.2 Work

WebDav

Web

Sakai SOA APIs

HT

ML

HT

ML

ExistingSakaiTools

Access

perl

php

python

.NET

Sakai ServicesSearchService

plone

joomla

External

Sakai Entity APIs

Import and Export

SOAP

Page 40: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Sakai Search

Page 41: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Building Tools

• To meet the goals of Sakai it is not sufficient to simply build a stovepipe tool

• While much of what is described here is “optional”, the more “integrated” a tool intends to be, the more “required” these elements become

Page 42: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Provisional Tools

• Should we include a tool in this release?– We needed something between “yes” and “no”

• Need to deeply involve the production users in the evaluation and testing of any new tool.

• Three stages– Contrib - Available - caveat emptor– Provisional - In the release, hidden, QA by developer team– Released - Full peer in terms of QA, etc.

• Increasing criteria as tools progress to encourage tools to meet Sakai’s tool architecture

Page 43: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Provisional Tool Criteria

• Community Support– Must have commit list and be in SVN– Must run in production at >=2 sites– Must have proper license– Must be willing to answer questions– Needs to be tracked in JIRA

Page 44: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Tool Criteria (cont)

• Technical– Support HSQL, MySql, Oracle– Use AutoDDL properly– Use sakai.properties– Do AUTHZ functions like the rest of Sakai– No patches to other elements– Must cluster– Use proper versions of Spring, Hibernate, etc.

Page 45: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Tool Criteria (cont.)

• Interaction and Visual Design– Inherit skins properly– Look “like” the rest of Sakai tools (fit in)– Follow interaction designs in style guide– Use JSF UI Components (if applicable)– Include help - properly added to the Sakai

Help system

• QA test plans and specifications

Page 46: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Tool Criteria

• Desirable elements– Internationalized– Accessible (including a review)– Separation of persistence and business logic into

a properly factored Sakai Component – Event generation as appropriate

• These are strongly suggested for full inclusion

Page 47: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

*Sample* Attribute Matrix

Announce Melete Jforum Rwiki Profile

AutoDDL Yes Yes Yes Yes Yes

Properties Yes Yes No Yes Yes

MySql Yes Yes Yes Yes Yes

Oracle Yes Yes No ** Yes Yes

Skinnable Yes Yes No Yes Yes

Cluster Yes ?? Yes Yes Yes

Resource Yes No No Yes No

I18N Yes Yes Yes Yes Yes

Events Yes No No No No

Page 48: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Ease of Expansion Including non-Java Tools

Page 49: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Sakai Architecture Goals

• Two seemingly conflicting goals– Seamless integration across tools– Ability to expand Sakai without using Java

• In the short term, writing tools in Java and using Sakai framework elements directly is the path to seamless integration

• But in the long term, we must make 3P tools full peers in Sakai.

Page 50: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Web Services

• Web Services allow flexible reuse of API and services in contexts beyond the Sakai interfaces– WSRP presentation– SOAP - RPC

• Web Services Issues– Security– Performance– API needs to tend towards document-style rather

than RPC-style

Page 51: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Web Services

Framework

Application

ToDo Code

ToDo Layout

Presentation FrameworkWS Client

Axis

WS End Point

Web Svcs

Other Tools

Layout

PresentationAbstraction

SAF—Kernel

SAF—Common Services

Other Services ToDo Service

ServiceInterface (i.e. API)

Page 52: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

IMS Tool Interoperability

• Focus is on making tools portable between systems (Sakai, WebCT, and Blackboard)

• Established to further the discussion with commercial and other CMS/CLE providers

• Uses web services and IFRAMES• Roughly based on WebCT PowerLinks• Does not require tools to be written in Java• Currently in contrib space in Sakai

Page 53: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

JVM

Sak

ai

Sakai APIs

Sam

igo,

Con

cept

Tut

or, E

tc

SakaiIMS Proxy

SessionAnd Services

Bootstrap

IMS TI OutcomeRequest

ApplicationCode

1

2

34

5

6

7

Launch

Outcome

How IMS TI Works

Page 54: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Tool Interoperability (REST)

• Several sites have written “proxy tools”– UNISA, Indiana, UM …

• As part of integrating CAPA and other tools at Rutgers - Chuck Hedrick has written one that is intended to be flexible, reusable and powerful

• Similar to IMS Tool Interoperability - but using REST approaches (I.e. easier)

• https://source.sakaiproject.org/contrib/rutgers/linktool/

Page 55: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Hedrick Proxy

Page 56: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Going Forward

• We must “dramatically up our game” when it comes to support for data interoperability to allow external applications to fully participate in Sakai and work directly with Sakai’s data

Page 57: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

HT

ML

H

TM

LR

ES

T

WebDavSOAP

iCal

SPARQL

RSSCalDav

Collaborationand

Learning

WebDavSOAP Collaborationand

Learning

Current Sakai

Future Sakai

Sakai “Swiss Army Knife”

Page 58: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

HT

ML

HT

ML

HT

ML

HT

ML

Sakai Object Bus

SakaiCore

Services

SakaiSemanticServices

NewSemantic

Tools

ExistingSakai

Services

ExistingSakaiTools

Legend Existing Sakai New Work

WebDav

RSS

REST

SPARQL

CalDav

iCal

SOAP

Sakai SOA APIs

Import and Export WebDav

RSS

REST

SPARQL

CalDav

iCal

SOAP

Sakai Web 2.0

Page 59: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Local Configuration

Page 60: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Providers inSakai

Sakai VelocityTools

Sakai JSFTools

Enterprise D

ataSakai JSFSupport

Sakai VelocitySupport

Sakai ServletTools

SakaiFramework

Services

SakaiApplicationServices

RoleProvider

UserProvider

Course/SiteProvider

Page 61: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

User Directory Provider

• Very mature - since Sakai 1.0• User type is controlled by provider - this controls the

user template when the user is created• Can provide fully populated User objects or just

answer ID/PW queries• Consulted at log-in• Supports special “properties” known to the provider• Sample providers in release 2.0: JLDAP, OpenLDAP,

Kerberos, and IMS Enterprise in a database

Page 62: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Course Provider

• Does not auto-populate courses• Provides the course list when instructor is

making a new worksite• Consulted during “New Site” operation• More work needed here

– Need to make into a Site provider– Need to be able to set site type from provider– Need to come up with auto population mechanism

Page 63: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Realm Provider (Role)

• Consulted at login• What are the sites and roles within each site

for this user• If the system is using many different roles

throughout, this code must feed the proper site the proper role

• Sakai internal tables are updated as changes from the provider are noticed.

Page 64: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Many Skins…

Text

20+ Full scale installations

Page 65: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Emerging Integration Points

• CourseManagement

• ContentHosting Plugin

• Calendar Plugin

Page 66: Sakai Technical Overview Part II Charles Severance June 1, 2006 Download:

Questions..