Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmers’ Café Sakai NWU Workshop, South Africa Recap of Sakai Services Antranig.

Slides:



Advertisements
Similar presentations
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai Tool Naming Tips Aaron Zeckoski
Advertisements

Using the Collaborative Tools in NEESgrid Charles Severance University of Michigan.
A Blackboard Building Block™ Crash Course for Web Developers
© 2007 IBM Corporation IBM Emerging Technologies Enabling an Accessible Web 2.0 Becky Gibson Web Accessibility Architect.
WEB1P servintro1 Introduction to servlets and JSP Dr Jim Briggs.
Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
© 2005, Cornell University. Rapid Application Development using the Kuali Architecture (Struts, Spring and OJB) A Case Study Bryan Hutchinson
Software Architecture Patterns (2). what is architecture? (recap) o an overall blueprint/model describing the structures and properties of a "system"
1 Integration and Extension Hohmann Chapter 8.
Structure of a web application1 Dr Jim Briggs. MVC Structure of a web application2.
M.Sc. Course, Dept. of Informatics and Telecommunications, University of Athens S.Hadjiefthymiades “Web Application Servers” Basics on WAS WAS are necessary.
Sakai Technical Overview Charles Severance Sakai Chief Architect December 1, 2005
LDS Account and the Java Stack. Disclaimer This is a training NOT a presentation. – Be prepared to learn and participate in labs Please ask questions.
Introduction to Java web programming Dr Jim Briggs JWP intro1.
Authentication and Authorization in Sakai Charles Severance Sakai Chief Architect
UNIT-V The MVC architecture and Struts Framework.
Lecture 2 - Struts ENTERPRISE JAVA. 2 Contents  Servlet Deployment  Servlet Filters  Model View Controllers  Struts  Dependency Injection.
Chapter 10 EJB Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmers’ Café Sakai NWU Workshop, South Africa Introduction to Sakai and Sakai.
Classroom User Training June 29, 2005 Presented by:
Windows Server 2008 R2 Domain Name System Chapter 5.
Copyright © 2012 Accenture All Rights Reserved.Copyright © 2012 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 10: Service Component Architecture.
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmers’ Café Sakai NWU Workshop, South Africa Spring Fundamentals & RSF Fundamentals.
Extending Vista The PowerLinks WebServices SDK John Hallett Senior Product Manager WebCT, Inc
|Tecnologie Web L-A Anno Accademico Laboratorio di Tecnologie Web Introduzione ad Eclipse e Tomcat
J2EE Structure & Definitions Catie Welsh CSE 432
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
CHEF II / Sakai Architecture. CHEF II Changes uPortal replaces Jetspeed –jsr 168 portlet, servlet compliant Spring replaces Turbine component framework.
Struts J2EE web application framework “ Model 2 ” Model View Controller Controller Servlet Key features XML metadata Struts taglib Simplified form validation.
National Center for Supercomputing Applications NCSA OPIE Presentation November 2000.
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmers’ Café Introduction to Sakai and Sakai Services Aaron Zeckoski
Putting it all together Dynamic Data Base Access Norman White Stern School of Business.
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai Montreal CRIM Workshop Introduction to Spring Framework,
Creative Commons Attribution- ShareAlike 2.5 License Sakai Programmer's Café Sakai Oxford Tetra ELF Workshop Sakai Development Practices, Best, and otherwise.
1 Schema Registries Steven Hughes, Lou Reich, Dan Crichton NASA 21 October 2015.
Ch 2 – Application Assembly and Deployment COSC 617 Jeff Schmitt September 14, 2006.
Enterprise Integration in Sakai 2.4 An overview of what’s new and (hopefully) improved.
8th Sakai Conference4-7 December 2007 Newport Beach Integration: Users and Groups Mark J. Norton Nolaria Consulting.
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai development and app/tool tips Aaron Zeckoski
Sakai WebApp Structure
Sakai Architecture Charles Severance Sakai Chief Architect September 14, 2005.
Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)
Architecture for an Ontology and Web Service Modelling Studio Michael Felderer & Holger Lausen DERI Innsbruck Frankfurt,
1 Service Creation, Advertisement and Discovery Including caCORE SDK and ISO21090 William Stephens Operations Manager caGrid Knowledge Center February.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
The Sakai Architecture
Persistence – Iteration 4 Vancouver Bootcamp Aaron Zeckoski
 An essential supporting structure of any thing  A Software Framework  Has layered structure ▪ What kind of functions and how they interrelate  Has.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
LDS Account and the Java Stack. Disclaimer This is a training NOT a presentation. – Be prepared to learn and participate in labs Please ask questions.
Interstage BPM v11.2 1Copyright © 2010 FUJITSU LIMITED INTERSTAGE BPM ARCHITECTURE BPMS.
Building Preservation Environments with Data Grid Technology Reagan W. Moore Presenter: Praveen Namburi.
START Application Spencer Johnson Jonathan Barella Cohner Marker.
Academic Computing Stanford University Libraries Technical Overview of CourseWork 3.0 January 2004.
Structure of a web application
Authentication and Authorization in Sakai
Sakai PLRE Slides (extracted)
Persistence – Iteration 4 Vancouver Bootcamp
Java Beans Sagun Dhakhwa.
Sakai WebApp Structure
Introduction to Sakai and Sakai Services
ISE 390 Dynamic Web Development
Part 2 Setting up a web server the easy way
Sakai PLRE Slides (extracted)
Enterprise Java Beans.
Leveraging ColdSpring To Make Better Applications
JAAS AuthN Tokens in uPortal and Beyond
SDMX IT Tools SDMX Registry
Presentation transcript:

Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmers’ Café Sakai NWU Workshop, South Africa Recap of Sakai Services Antranig Basman

2 What is in Sakai, where is it all? The Sakai “container” is a lightly(ish) modified J2EE (Servlet) container –Tomcat, WebSphere, WebLogic, etc. are all in use A Sakai tool is a user-facing element, and is basically a kind of Servlet A Sakai component is the implementation of some Sakai API, and is a (collection of) Spring Beans

3 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 Framework, Tools and Services

4 Sakai Structure 2: Logical Artefacts Framework Application Presentation Tech WS Client Axis WS Endpoint Web Svcs New Tool New Portal Other Tools Portal Presentation Abstraction Kernel Common Services Other Services New Service Service Interface (i.e. API) DB Web Browser

5 Standardised Sakai Services In addition to “free” APIs defined by services, Sakai recognises particular standard varieties of service – some core examples: –UserDirectoryProvider – map your local user information (eg in LDAP, IMS Enterprise, Kerberos) into Sakai –GroupProvider –CourseManagementProvider –PortalHandler (new in Sakai 2.4) – register new top-level handlers in the Sakai portal URL space –EntityProducer – export primary entities handled by your service as 1st-class Sakai “Entities” (resolvable by URLs, addressible by Events, searchable, &c) Look these up in the Sakai JavaDocs, or better still in your Sakai source

6 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

7 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

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

9 Emerging Integration Points CourseManagement ContentHosting Plugin Calendar Plugin

10 Accessing and Defining Sakai Services Sakai services are implemented by a set of Spring beans held in the shared Spring context Each Sakai component advertises its services using a Spring-formatted file components.xml These are all read and pooled on Sakai startup, with dependencies automatically sorted and wired together

11 Sakai Services in Spring Sakai APIs are defined in terms of Java interfaces There is ONE implementation of each API interface in Sakai The name of the Spring bean in the Sakai Spring context (file components.xml ) is always the fully qualified interface name Classic example: the Sakai UserDirectoryService Lots more stuff here! Will learn about this later, but concentrate on the familiar elements and There is ONE global, shared Sakai application context holding beans for all Sakai services <bean id="org.sakaiproject.user.api.UserDirectoryService“ class="org.sakaiproject.user.impl.DbUserService" init-method="init"destroy-method="destroy" singleton="true">......

12 Writing Sakai Tools A Sakai tool is “nearly” like a normal Servlet, only with some oddities – (see morning’s talk) –The tool’s Spring context ( applicationContext.xml ) is automagically “glued” onto the bottom of the global shared Spring context, so Sakai services can be directly referenced in Spring –Spring JARs must NOT be included in the application, since they are already in shared

13 Using a Sakai Service in an RSF tool Since RSF is itself written in Spring, consuming Sakai services is particularly direct and easy Every RSF entity is a Spring bean, services can be injected anywhere In this example we will be working only with the rendering layer (Producers), although it is more typical to inject services into the backing beans

14 Sakai Service to an RSF Producer No extra formality Add the setter to the producer, and away you go <property name=“userDirectoryService” ref="org.sakaiproject.user.api.UserDirectoryService”