Sakai Architecture Charles Severance / Glenn Golden University of Michigan.

Slides:



Advertisements
Similar presentations
Using the Collaborative Tools in NEESgrid Charles Severance University of Michigan.
Advertisements

Apache Struts Technology
The Developer Perspective Michelle Osmond. Design – Requirements Gathering Sales & Research projects –Prototypes/Demos User group meetings Usability workshops.
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmers’ Café Sakai NWU Workshop, South Africa Recap of Sakai Services Antranig.
IBM WebSphere Portal © 2008 IBM Corporation 1 Deliver an Irresistible User Experience  Provides an interactive user experience  No programming needed,
Building Systems from Standards-based Reusable Components.
Internet Technologies 1 Master of Information System Management Java Server Faces Model/View/Controller Design Pattern for Web Development Slides.
© 2005, Cornell University. Rapid Application Development using the Kuali Architecture (Struts, Spring and OJB) A Case Study Bryan Hutchinson
Java Server Faces Model/View/Controller Design Pattern for Web Development Slides adapted from “Core JavaServer Faces” by Geary and Horstmann and the J2EE.
Structure of a web application1 Dr Jim Briggs. MVC Structure of a web application2.
Session-01. Layers Struts 2 Framework The struts 2 framework is used to develop MVC-based web application. Struts 1.0 was released in June The.
Microsoft Office SharePoint Server Business Intelligence Tom Rizzo Director, Microsoft Office SharePoint Server
Understanding and Managing WebSphere V5
Emmanuel Cecchet et al.  Performance Scalability of J2EE application servers.  Test effect of: ◦ Application Implementation Methods ◦ Container Design.
Intro to Spring CJUG - January What is Spring? “The Spring framework provides central transaction control of various objects.” This means that any.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
UNIT-V The MVC architecture and Struts Framework.
Massachusetts Institute of Technology Page 1 Open Knowledge Initiative CSG - Princeton, 05/07/03.
Sakai / Portal Integration Charles Severance September 9, 2004 Not all those who wander are lost. J.R.R. Tolkien, The Fellowship of the Ring.
Pittsburgh Java User Group– Dec Java PureFaces: A JSF Framework Extension.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
1 The Problem Do you have: A legacy ABL system with millions of Lines of ABL Code? Years and years of modifications to your ABL code? System documentation.
Sakai Architecture Charles Severance University of Michigan.
Sakai: Localization & Internationalization Beth Kirschner University of Michigan
iphone / Mobile Application Development using Oracle ADF Jon Gooding – Solutions Architect.
An Introduction to Software Architecture
COMP 410 & Sky.NET May 2 nd, What is COMP 410? Forming an independent company The customer The planning Learning teamwork.
Design Patterns Phil Smith 28 th November Design Patterns There are many ways to produce content via Servlets and JSPs Understanding the good, the.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
JSF Introduction Copyright © Liferay, Inc. All Rights Reserved. No material may be reproduced electronically or in print without written permission.
Sakai Architecture Mellon Retreat Charles Severance University of Michigan.
CHEF II / Sakai Architecture. CHEF II Changes uPortal replaces Jetspeed –jsr 168 portlet, servlet compliant Spring replaces Turbine component framework.
1 ® Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 1 Building Portlets with ColdFusion Pete Freitag Foundeo, Inc.
Webcommerce Computer Networks Webcommerce by Linnea Reppa Douglas Martindale Lev Shalevich.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Java Web Development with NetBeans IDE -- Kai Qian Chapter 5 JavaServer Faces (JSF) Technology.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
.  A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate.  Taken advantage of Spring’s multi layer injection.
JSR 168 Overview Copyright © 2000 – 2007 Liferay, Inc. All Rights Reserved. No material may be reproduced electronically or in print without written permission.
Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.
UPortal and CHEF Charles Severance University of Michigan
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
Portals: Architecture & Best Practices Greg Hinkle February 2005.
The Sakai Architecture
Presentation.
® IBM Software Group © 2003 IBM Corporation IBM WebSphere Studio V5.1.2: Making Java Development Easier May 2004.
Navigation Framework using CF Architecture for a Client-Server Application using the open standards of the Web presented by Kedar Desai Differential Technologies,
Expense Tracking System Developed by: Ardhita Maharindra Muskan Regmi Nir Gurung Sudeep Karki Tikaprem Gurung Date: December 05 th, 2008.
Interstage BPM v11.2 1Copyright © 2010 FUJITSU LIMITED INTERSTAGE BPM ARCHITECTURE BPMS.
De Rigueur - Adding Process to Your Business Analytics Environment Diane Hatcher, SAS Institute Inc, Cary, NC Falko Schulz, SAS Institute Australia., Brisbane,
The Holmes Platform and Applications
J2EE Platform Overview (Application Architecture)
Portals: Background, Development & Conversion
Structure of a web application
LAMS 2.0 Architecture. LAMS 2.0 Architecture Agenda LAMS 2.0: Technical Aims Architecture Technologies LAMS Core LAMS Tool Contract External Tools.
ORACLE ADF ONLINE TRAINING COURSE
Charles Severance University of Michigan
Sri Vatsav Konreddy CIS 764 FALL 2007
Introduction to J2EE Architecture
Charles Severance University of Michigan
JavaServer Faces: The Fundamentals
An Introduction to Software Architecture
Scott Thorne & Chuck Shubert
Sakai / Portal Integration
Developing and testing enterprise Java applications
The Sakai Project and Partnership
SDMX IT Tools SDMX Registry
Presentation transcript:

Sakai Architecture Charles Severance / Glenn Golden University of Michigan

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

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

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?

Federated Interfaces OKI/Sakai Tool I Local DR API Federated DR API DSpace DR API DB Fedora DR API FedoraDSpace …

Use an Object Store? Tool AUTHZAUTHNDRAPI Object Store RDF/URI External Portfolio Tool

Use RDBMS? Tool AUTHN RDBMS AUTHZDRAPI RDF/URI ???? External Portfolio Tool

RDBMS + “RDF” APIs Tool AUTHN RDBMS RDF/URI External Portfolio 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

“Out-Of-Band Agreements” Tool AUTHZAUTHNDRAPI 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….

Façade/Schema/Semantic Layer org.sakai AUTHZAUTHNDRAPI 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

Tools Tool Pattern Service APIs Services Pattern Service Component Service Component Service Component Service Component Component Framework ServletPortletJSP Application Configuration 2 TomcatuPortal Access Navigation Portal Navigation Tool Resources (jsp, css, png. …) Tool Framework (CHEF enhanced JSF) JSF

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

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

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

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

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) Application Configuration

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

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

tool_bean get…() set…() processAction…() view RenderService API (OSID) GUI: Java Server Faces

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

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. Access Navigation Portal Navigation

Packaging Based on standard java Web Applications –.war files Tool, Tool Suite Service Components No code change to add new package Possible Hot Deploy

Standards Servlet JSP Portlet JSF ServletPortletJSPJSF

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

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

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