Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

60
Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005

Transcript of Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Page 1: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Sakai Architecture

Charles Severance

Sakai Chief Architect

September 14, 2005

Page 2: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

The Ideal Sakai Deployment

• Take an empty Sakai system– Choose a set of 10-15 tools

for your needs– Choose a set of Services

(web services, etc)– 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

SakaiTool

Library

SakaiServiceLibrary

LocalCustomization

Page 3: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Sakai Goals

• Component based expandability• Appearance of a single well-integrated

application• Flexible Presentation (HTML, Portals)• Support for Web Services• Flexibility in Expansion including non-

Java• Production-ready

Page 4: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Framework, Tools and Services

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

• Services– 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 5: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Component Based Expansion

Page 6: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Sakai Service Rules

Tool A

X DataModel

X API

Service XImpl

Tool B

Y DataModel

Y API

Service YImpl

Tools can access Service APIs

Services can access Service APIs

We must be able to swap Service implementations

Page 7: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Substituting Service Implementations

Tool A

X API

Service XWS Impl

Tool B

Y DataModel

Y API

Service YImpl

If a deployment chooses to implement Service X is using web services, there is no data model and any implementation-X specific access is no longer available.X Web

Service

Page 8: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

The

Sak

ai F

ram

ewor

k

SakaiService

SakaiService

SakaiTPP Tool

SakaiTPP Tool

Sakai Framework

• Registration of tools and services

• Provides portability between environments where possible– HTML / Web Services

• Framework includes presentation elements as well to support tools

Page 9: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

The

Sak

ai F

ram

ewor

k

SakaiService

SakaiTPP Tool

Functionality Flow

• Goal: no replication of code

• Code trends toward the broadest and most reusable are of the system– Framework– Service– Tools

• As long as it does not break the “rules”

SakaiTPP Tool

SakaiService

Page 10: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Goal: Appear as Single Integrated Application

Page 11: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Why Build A Sakai Tool?

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

Sakai User?• Want a servlet “in Sakai” but with a minimum of

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

Page 12: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Sakai Goals (may conflict)

• A collaborative application– Reusable objects (Quiz Questions) across

many tools– Component based - any component can be

removed without harming the system

• Extremely easy to expand - reduce barriers to adding a new tool

Page 13: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Resources Presentation

Samigo

Melete

Anouncements

CurrentReusein 2.0

Page 14: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Resources Presentation

Samigo

Melete

Anouncements

BetterReuse

Page 15: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Resources Presentation

Samigo

Melete

Anouncements

Flexibility in reuse

ScormAuthoring

Page 16: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Resources Presentation

Samigo

MeleteLanguageModule

Anouncements

So you want to write a new

tool?

ScormAuthoring

Page 17: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

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 18: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Two Layer Architecture

TaskTool

Task API

TaskAPI

Impl.

Task DB

TaskTool

Task DB

Presentation

Public Abstraction

Persistence,Business Logic,ORM, etc…

Page 19: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

To fully integrate into “Sakai

TaskTool

Task API

TaskAPI

Impl.

Placement

Import/export

Components

Authorization

OtherTools

WebServices

Sakai DB

AutoDDL

Helper

Internationalization

Page 20: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Flexible Presentation

Page 21: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Aggregator

Presentation

Tools

Services

Client

SystemT

he A

bstr

act

Sak

ai E

nviro

nmen

t

Abstract Architecture

• To render a Sakai response, the tools, and services work with other elements– Presentation Support– Aggregation

Page 22: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

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

Writing a Tool

• Each tool describes its presentation needs in a generic fashion - the framework provides mechanisms to render the tool’s presentation

• The tool is unaware of any aggregation or final presentation

• Tools may produce “application” services related to the tools (chat tool / chat service)

• A service built for a particular tool should still operate through an API and be available to other tools

Page 23: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

The

Sak

ai F

ram

ewor

k

HTML BasedAggregator

GUI layout(JSF/JSP)

ScheduleTool (Java)

ScheduleAPI (Java)

OSID IdAPI

Sakai JSFWidget Set

The

Sak

ai T

ool E

nviro

nmen

t

uPortal viaWSRP

System

An Example

• This is a tool written using the Sakai JSF widget set

• The tool builds its own API (Schedule)

• The tool makes use of framework APIs.

• The tool is rendered in HTML and displayed within uPortal via the Web Services for Remote Portlets (WSRP) protocol

• Outside the tool, there is great flexibility which is hidden to the tool

Page 24: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

The

Sak

ai F

ram

ewor

k

Servlet/HTMLRenderer

Java ServerFaces in JSP

Java Tool LogicJava Beans

Sakai ApplicationServices

Sakai JSFWidget Set

The

Sak

ai T

ool E

nviro

nmen

t

Portals viaiframe

Sakai and/or OKIAPIs

Sakaiiframe

WSRPRenderer

SakaiNon iframe

Portals viaWSRP

JSR-168Renderer

uPortal viaJSR-168

Rendering Flexibility

Page 25: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

<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>

Tool Display in JSF

Page 26: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

<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>

MyTool.userName() {}

MyTool.date() {}

MyTool.processActionDoIt() {}

Describing Actions in JSF

Page 27: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

The

Sak

ai F

ram

ewor

kHTML BasedAggregator

Java ServerFaces in JSP

Java Tool LogicJava Beans

Sakai ApplicationServices

Hibernate

Sakai JSFWidget Set

The

Sak

ai T

ool E

nviro

nmen

t

uPortal viaiframe

VelocityTemplates

Sakai LegacyTools

Sakai LegacyServices

SakaiFramework APIs

Sakai VelocitySupport Layer

The

Sak

ai L

egac

y E

nviro

nmen

t

SakaiStand-Alone

OKI OSIDs

OKI OSIDLegacy Covers

Support For Velocity Tools

Page 28: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

LoginBranding

Site Selection

Tool Selection

Tool AreaTool Area

Presence

HTML Aggregator - Charon

Page 29: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

http://sakai.edu/portal/galleryhttp://sakai.edu/portal/gallery

http://sakai.edu/portal/page/<id>http://sakai.edu/portal/tool/<id>http://sakai.edu/portal/page/<id>http://sakai.edu/portal/tool/<id>

http://sakai.edu/portal/site/<id>http://sakai.edu/portal/site/<id>

Charon - Rendering Subsets

Page 30: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

CharonPortal

Kernel Tool Registry

Charon

Tool A Tool B Tool C

Sakai Sites

Request Filter

Page 31: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Mercury

Page 32: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

MercuryPortal

Kernel Tool Registry

Mercury

Tool A Tool B Tool C

User’sBrowser

Request Filter

Page 33: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

WSRP Activities

• SunGard-led and funded: Vishal Goenka• Working with uPortal in their WSRP 3.0 effort• As we really try to use WSRP, we identify issues in

the standard and WSRP4J implementation• Sakai and uPortal are becoming involved in WSRP

standards activities and WSRP4J

Page 34: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Sakai

tool tool

HTTP

WSRP

Portal

Sakai

tool tool

HTTP

Sakai

tool tool

HTTP

Non-Sakai Non-Java Tools

tool tool

WS

RP

Non-SakaiTool

WSRP WSRP

WSRP Use Case

Page 35: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

WSRP“Portal”

Kernel Tool Registry

Sakai WSRP

Tool A Tool B Tool C

Sakai Sites

Request Filter

Apache WSRP4J

WSRP ConsumerPortal

Web Services

WSRPPlacements

Page 36: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

WSRP Image

Page 37: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

The

Sak

ai F

ram

ewor

k

Servlet/HTMLRenderer

Java ServerFaces in JSP

Java Tool LogicJava Beans

Sakai ApplicationServices

Sakai JSFWidget Set

The

Sak

ai T

ool E

nviro

nmen

t

Portals viaiframe

Sakai and/or OKIAPIs

Sakaiiframe

WSRPRenderer

SakaiNon iframe

Portals viaWSRP

JSR-168Renderer

uPortal viaJSR-168

Rendering Flexibility

Page 38: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Web Services

Page 39: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

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 40: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Web Services

• Web Services shipped in Sakai 2.0

• Based on Axis 1.2• Release 2.0

includes sample PHP client

Web ServicesClient

Jakarta Axis

Sakai APIs

Sakai Kernel

WS End Point

Samples Only

Available in Sakai 2.0

Page 41: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Ease of Expansion Including non-Java Tools

Page 42: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Why Build A Sakai Tool?

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

Sakai User?• Want a servlet “in Sakai” but with a minimum of

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

(Review)

Page 43: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Sakai Goals (may conflict)

• A collaborative application– Reusable objects (Quiz Questions) across

many tools– Component based - any component can be

removed without harming the system

• Extremely easy to expand - reduce barriers to adding a new tool

Page 44: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Simpler Routes to New Tools

• May want to write in PHP, or some other language other than java

• May not want to comply with “Sakai” rules such as import/export, accessibility, or internationalization

• May just want very small distribution (I.e. not part of the Sakai release)

• Perhaps a very innovative early concept

Page 45: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

JVMT

he S

akai

Fra

mew

ork

HTTML BasedAggregator

Java ServerFaces in JSP

Java Tool LogicJava Beans

Sakai ApplicationServices

Sakai JSFWidget Set

The

Sak

ai T

ool E

nviro

nmen

t

uPortal viaiframe

Sakai/OKIAPIs

SakaiStand-Alone

Java Tool Logic

ApplicationServices N

on-S

akai

Web

App

licat

ion

Presentation

Sak

ai C

omm

pone

nts

Sakai RequestFilter

Integrating A Servlet

Page 46: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Java Tool Logic

Presentation

AUTHNProvider

AUTHZProvider

GroupProvider

Storage

GroupProvider

ApplicationServices

Java Tool Logic

Presentation

Sakai Components

Sakai Request Filter

AUTHNProvider

AUTHZProvider

GroupProvider

Storage

GroupProvider

ApplicationServices

GroupProvider

GroupProviderWeb Application Container (Tomcat)

Stand Alone Operation Operating Within Sakai

Page 47: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

IMS Tool Portability Group

• 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• Does not require tools to be written in Java• Working demonstration at the July 2005 Alt-I-lab

with Samigo in Sakai, WebCT, and Blackboard• Will be released as part of Sakai 2.1

Page 48: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

JVM

Sak

ai

Sakai APIs

Sam

igo,

Con

cept

Tut

or, E

tc

SakaiIMS Proxy

SessionAnd Services

Bootstrap

Sakai WebServices

ApplicationCode

1

2

34

5

6

7

Launch

Outcome

Page 49: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Local Configuration

Page 50: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Providers inSakai

Sakai VelocityTools

Sakai JSFTools

Enterprise D

ataSakai JSFSupport

Sakai VelocitySupport

Sakai ServletTools

Sakai Kernel and RequestFilter

SakaiCommonServices

SakaiFramework

Services

SakaiApplicationServices

RoleProvider

UserProvider

Course/SiteProvider

Page 51: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

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 52: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

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 53: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

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 54: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Production Configurations

Page 55: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Important Production Choices

• Operating System– Linux (*), Solaris, X/Serve, AIX, Windows

• Data Base– Oracle (*), MySql, HSQL

• Configuration– One System– Separate DB Server– Clustered application servers (*)

Page 56: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Deployment Configurations

• Developer/Demo - Hypersonic SQL

• MySql– Medium sized systems

• Oracle– Large systems

• Clustered– Multiple application servers

Page 57: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Developer WorkStation

Sakai HSQLDatabase

Developer Environment

• HSQL database– In memory– On file

• Easy to use/configure• HSQL is Open Source so it

can be included with Sakai’s distribution

• Sometimes runs “too fast” because it is in memory

Page 58: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Server

Sakai MySqlDatabase

Small/Medium Production System

• MySql database• Application and database can

be on same server• Placing on same server

simplifies some performance tuning

• Pair of fast 2-CPU systems or one 4-CPU system should support 200+ simultaneous users

DatabaseServer

ApplicationServer

SakaiMySql

Database

Page 59: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

DatabaseServer

Sakai

OracleDatabase

Sakai

Sakai

Sakai

ApplicationServer Cluster

IP S

pray

er

Large Production Environment

Page 60: Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.

Summary / Questions

• Thank you for your time