sakai architecture charles severance / glenn golden university of michigan
TRANSCRIPT
![Page 1: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/1.jpg)
Sakai Architecture
Charles Severance / Glenn Golden
University of Michigan
![Page 2: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/2.jpg)
Sakai Deliverables
• Tool Portability Profile - A book on how to write Sakai-compliant services
• Tool Functionality Profile - A book on the features of the Sakai-developed tools
• Sakai Technology Release - O/S LMS– Sakai Technology Framework– Sakai Tools and Services– Integration, QA, and Release Management
![Page 3: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/3.jpg)
CHEF 2 Changes• uPortal replaces Jetspeed
– Enhanced to support the (jsr 168) Portlet 1.0 standard
• CHEF component framework (backed by Spring) replaces Turbine– Service Locator and Dependency Injections supported (IoC type 2,3)– OSID Loading supported
• Services Design Pattern unchanged• OKI OSIDs and full reference / production implementations• Current CHEF services deprecated or re-packaged as new OSIDs
– still available for legacy support– compatible with the new OSID services (i.e. Agent = User)
• New Tool Design Pattern– Based on Java Server Faces
• New component Packaging– Based on Java Web Applications– Hot deploy of tools & service components
![Page 4: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/4.jpg)
Sakai: Thorny Issues
• How to handle many repositories (Dspace, Fedora, JSR-170) though one API?
• How to store information in a way that is both efficient/fast and flexible/reusable - perhaps RDF/URI is a unifying approach to finding and reusing content?
• How to take the OKI APIs and add sufficient detail (out-of-band-agreements) so as to make it clear how to write tools?
• How to make AUTHZ scalable, fast, portable, and interoperable?
![Page 5: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/5.jpg)
Federated InterfacesOKI/Sakai
Tool I
LocalDR API
FederatedDR API
DSpaceDR API
DB
FedoraDR API
Fedora DSpace
…
![Page 6: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/6.jpg)
Use an Object Store?
Tool
AUTHZ AUTHNDRAPI
Object StoreRD
F/U
RI
ExternalPortfolio
Tool
![Page 7: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/7.jpg)
Use RDBMS?
Tool
AUTHN
RDBMS
AUTHZDRAPI
RD
F/U
RI
????
ExternalPortfolio
Tool
![Page 8: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/8.jpg)
RDBMS + “RDF” APIs
Tool
AUTHN
RDBMS
RD
F/U
RI
ExternalPortfolio
Tool
AUTHZDRAPI
Until we are sure based on development experience - this will be TBD - One thing for sure - we will not sacrifice performance for architectural elegance
![Page 9: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/9.jpg)
“Out-Of-Band Agreements”
Tool
AUTHZ AUTHNDRAPI
Object Store
OKI does not specify many schema details for lots of objects to maintain flexibility. The OKI API leaves these details to be worked out between the tool developers and the OSID implementers. The Sakai project will decide on these schema-like issues and publish them. But dealing with schema’s directly is often painful and leads to thick and hard-to-modify tools….
![Page 10: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/10.jpg)
Façade/Schema/Semantic Layer
org.sakai
AUTHZ AUTHNDRAPI
Object Store
Sakai will define build convenience classes (facades …) which enforce semantic details of the Sakai out-of-band agreements on the OKI APIs. Not all OKI APIs will have facades, Applications will be able to communicate directly with the OKI APIs as necessary, the façade mapping may not always be one-to-one. Specs like IMS and LOM will influence these schema decisions within Sakai. The goal is to keep tools easy, clean, and portable. Because the façade classes use OKI APIs, they can move into non-Sakai OKI compliant environments.
Tool
org.sakai
![Page 11: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/11.jpg)
Tools
ToolPattern
Service APIs
ServicesPattern
ServiceComponent
ServiceComponent
ServiceComponent
ServiceComponent
Com
pone
nt F
ram
ewor
k
Servlet PortletJSP
ApplicationConfiguration
2Tomcat uPortal
AccessNavigation
PortalNavigation
Tool Resources(jsp, css, png. …)
Tool Framework (CHEF enhanced JSF)
JSF
![Page 12: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/12.jpg)
Service Design Pattern
• Separation of concerns– Tools to handle user interactions– Services to handle specific functional, business logic, data type
modeling responsibilities
• Dependent on interfaces, not implementations– Clients dynamically bound to implementations by API
• Major service or manager API with most methods• Supporting core interfaces for the data entities modeled• Implemented by many different components
ServicesPattern
![Page 13: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/13.jpg)
Service API
• OKI OSIDs– Rich common services
• CHEF 1.x Services– Higher level feature specific– Becomes OSIDS, merges with the OSIDS
• New high level (org.sakai.) OSIDS– Packaged with new feature sets / tool suites
Service APIs
![Page 14: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/14.jpg)
Component Framework• Container for all service components, possibly for tool
components• Support many design styles
– Service Locator - a component manager to find dependent service components by api name
– Injection - (IoC type 2, 3) - support for auto-wiring and configuration through bean setters and constructors
• Life-style and Lifecycles– shared instance, instance per thread, instance per usage– init and destroy methods, possibly others…
• Configuration driven– Component selection for each API– Configuration values
Com
pone
nt F
ram
ewor
k
![Page 15: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/15.jpg)
Service Components
• Implement one service API and related core interfaces• Dependent on other service APIs• Implement other aspects
– Authorization, Event tracking, etc.
• Implementation choices– POJO (“plain old java object”)– Resolve dependencies via Injection or Locator– J2EE Enterprise Beans
• Selected and configured by the application
ServiceComponent
![Page 16: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/16.jpg)
Application Configuration
• Select a service component for each needed Service API
• Configure each component
• Multiple configurations - many packages
• Hot modify configurations (w/ new package deployment)
ApplicationConfiguration
![Page 17: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/17.jpg)
Tools• Orchestrates user interaction
– Present user interfaces (Views)– Process user requests– Tracks interaction state
• Responsible for an area of functionality– Chat, Announcements, Schedule, Resources …
• Java classes– designed to the Tool Pattern
• Static file resources– png, css, jsp, etc.
• Heavy lifting done by services– Common services– Custom services– Dependent on service API, not implementations
Tools
![Page 18: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/18.jpg)
Tool Design Pattern
• Based on Java Server Faces• Support abstract high level UI components
– button, menu, text field, alert, table …
• Support action model• Support view selection• Support interaction state• Support multiple user agents (browsers) & skins
– different renderers
• Configurable by placement instance– portal
• Achieve our goal of cross tool interface consistency & Skins
ToolPattern
![Page 19: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/19.jpg)
tool_bean
get…()
set…()
processAction…()
view
Render
Serv
ice A
PI (O
SID
)GUI: Java Server Faces
![Page 20: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/20.jpg)
Tool Framework
• To support the tool design pattern
• Based on Java Server Faces
• Extended with our own special– UI Components
– Renderers
• Extensions classes to Servlet and Portlet
• Utilities
• Third party packages (velocity, JSF, etc).
Tool Framework
![Page 21: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/21.jpg)
Navigation
• Like Tools, present UI and handle requests• Getting around to specific tool instances
– Tools organized in “spaces”: Sites– Multiple tools per “page”: Portal– Other modes
• Portal Navigation• Access Navigation
– URL access to resources.
AccessNavigation
PortalNavigation
![Page 22: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/22.jpg)
Packaging
• Based on standard java Web Applications– .war files
• Tool, Tool Suite
• Service Components
• No code change to add new package
• Possible Hot Deploy
![Page 23: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/23.jpg)
Standards
• Servlet
• JSP
• Portlet
• JSF
Servlet PortletJSP JSF
![Page 24: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/24.jpg)
Portal Engine
• uPortal 3– Enhanced with Portlet support
• Support for others possible– standard Portlet (JSR 168) portal engines– Open Source (i.e. Jetspeed 2)– Commercial (i.e. WebSphere)
Portlet
uPortal
![Page 25: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/25.jpg)
Portlet + Servlet Model
• Portlets for navigation, tool placement, tool configuration, usage sessions
• Servlets for popups and popins– Tool content without the portal decorations– New windows, iframes in portal windows
• Servlets for JSF– “included” from the standard CHEF JSF portlet
• Servlets for other navigations– Access, authentication, management, etc.
Servlet
Portlet
![Page 26: Sakai Architecture Charles Severance / Glenn Golden University of Michigan](https://reader036.vdocuments.site/reader036/viewer/2022062716/56649dc65503460f94aba377/html5/thumbnails/26.jpg)
Summary
• We have a long way to go and a short time to get there…
• The team we have assembled is the key - each institution brings deep and complimentary skills to the table
• Previous collaboration (Navigo, OKI) over the past few years has developed respect, teamwork, and trust from the first day of Sakai
• We are taking some time at the beginning to insure genuine consensus and that we truly make the right choices in the framework area.
• We understand that we may make mistakes along the way and have factored this into our apprach and resource allocation.
• So far everyone has had an open mind and understands the “good of the many…”