From Your Course Syllabus to Earthquake Engineering: Collaboration using the CHEF Framework Charles Severance University of Michigan Outline • • • • • • • Collaborative Activities at UM CHEF Technology CHEF Features CHEF Status The Sakai Project Sakai Technologies Sakai Timeline Collaboration @ UM Portal Technology Jetspeed 2.0 uPortal 3.0 Websphere É Java Swing JSR-168 Technology Legacy Channels, Teamlets CHEF Services JSR-168 Portlets Sakai GUI Sakai GUI Sakai Teamlet Sakai Teamlet OKI Services Sakai Other Services NMI Grid Portal NEESGrid CHEF 1 CHEF 2 Science of Collaboratories Worktools (Notes Based) WTNG CTNG Coursetools (Notes Based) SPARC 1991 - 1997 1998 1999 2000 2001 2002 2003 2004 2005 SPARC 2/2001 600 users 800 data sources CourseTools Over 42,000 users at the end of 2003 WorkTools Over 9000 users (2000 active) at the end of 2003 Science of Collaboratories people-to-people Communication, Collaboration Services groups-toinformation Distributed, media-rich information technology Digital libraries & documents http://www.scienceofcollaboratories.org/ NSF Funded ITR groups-tofacilities Remote instruments CHEF 1.0 • Fall 2001: CHEF Development begins – Generalized extensible framework for building collaboratories – “Best-of” CourseTools, SPARC, WorkTools • • • Integrate across current UM projects and adopt relevant standards Funded internally at UM as replacement for CourseTools All JAVA - Open Source – Jakarta Jetspeed Portal – Jakarta Tomcat Servlet Container – Jakarta Turbine Service Container • Build community of developers through workshops and outreach CHEF Technology • Provide a mechanism for software development which will allow organizations to share and re-use each other’s work • Utilize existing technologies wherever possible and add value rather than invent all new • Enable code reuse across multiple organizations • Lead to portal technology - Jetspeed Not “just” a portal • Portals are a framework to deploy tools (aka rectangles) and focus on how the user wants to arrange their own “rectangles” • While CHEF technically is a portal, the goal is for the tools to work together closely and seem to really be parts of a larger “tool” • CHEF has a lot of features, (services, presence, notification, etc..) which bridge the gap between portal and application framework CHEF General Tools – – – – – – – – – – – – – Announcements Chat Threaded Discussion Calendar Schedule E-Mail Archive Resources (including WebDav) Web-Frame Worksite Setup Profile Notifications / Subscriptions Public View Anonymous Comment CHEF - More tools • Course Management – Assignments – Drop Box Worktools – – – – • Data Viewers (Live/Stored) Telepresense Video as Data Electronic Notebook Grid Technologies – – – – Grid sign on using myproxy Grid computational portal GridFTP ..Many more Video as data: User Views Still Image / Camera Control Camera Control Gateway ^ < > Still Image Viewer ^ • ~ < > < > DT Main System Thumbnail + Audio + Data Data Viewer < > + Tomcat Servlet Container Jetspeed Portal CHEF Implementation Architecture - More Detail Velocity CSS Turbine Framework Turbine Service Tool Servlet Turbine Service Turbine Service In addition to Jetspeed, CHEF operates within a Servlet container called Jakarta Tomcat. Whereas portlets operate in one “recatangle” which is a subset of the screen, Servlets control the entire HTTP response or even talk non-HTTP protocols. HTTP Example Architecture Velocity Resources WEBDAV Tomcat Servlet Container Jetspeed Portal CSS Turbine Security Service Resource Tool Access Servlet Content Service src/java/org/chefproject/actions/ResourceAction.java src/vm/chef_resources_show.vm (plus 10 more) src/java/org/chefproject/service/component/BaseContentService.java src/java/org/chefproject/service/component/BaseUserDirectoryService.java src/java/org/chefproject/service/component/ChefSecurity.java src/java/org/chefproject/servlet/ChefdavServlet.java src/java/org/chefproject/servlet/AccessServlet.java Webdav Servlet User Dir. Service Services • Long-term lifecycle • One instance (Singleton) – Must be aware that multiple users can use service – Can use memory resident information (often used for cache) • Contains as much of the implementation as possible • Pluggable implementations – – – – Memory version XML implementation Web services implementation Database implementation Service Implementations Web Svcs Service Implementation Service API Database Service Implementation Tool Portal Engine Clustered Service Implementation Turbine Service Broker chef.properties The API is an Interface – There can be any number of different service implementations which implement the Interface. At run-time Turbine reads a configuration file and associates the appropriate service implementation with each API and provides lifecycle services to the service. Adding Grid Infrastructure to CHEF Jetspeed Login IU Code IU Portlets LDAP GridFTP Proxy User New Code Tomcat / Apache Jetspeed CHEF UserDirectory Service Component UserDirectory Existing GRID Grid Service API Existing CHEF UserDirectory Provider Grid UserDirectory Provider Service CHEF Grid Service Component COGs MyProxy Tools CHEF Applications • • • • CourseTools Next Generation WorkTools Next Generation NEESGrid NSF National Middleware Grid Portal CourseTools Next Generation Over 5000 users at the end of 2003 http://coursetools.ummu.umich.edu/ Worktools Next Generation New WorkTools Sites being created in WTNG as of 12/2003 Run on the same servers as CTNG. NEESGrid - The Equipment Network for Earthquake Engineering Simulation NSF Funded. NCSA, ANL, USC/ISI, UM, USC, Berkeley, MSU CHEF-Based NEESGrid Software Grid Service Stubs Portal Portlets And Teamlets Service API Grid Services NMI / OGCE Grid Protocols Local Portal Services Remote Content Services HTTP Remote Content Servers Jetspeed Internal Services Figure 4: The revised portal architecture will provide a unified interface for portal services. NSF National Middleware Iniative Indiana, UTexas, ANL, UM, NCSA www.ogce.org CHEF Status • CHEF is stable and released – CHEF 1.2 from www.chefproject.org – Workshops twice per year – Technical support mailing list – Collaborative site chefproject.org/chef/ • Other derived variants of CHEF – NMI 1.0 Beta from www.ogce.org – NEESGrid 2.1 from www.neesgrid.org What is Next: SAKAI • U Michigan, Indiana U, MIT, Stanford, uPortal – All have built portals / course management systems – JSR-168 portlet standard requires us all to re-tool and look at new approach to portals • Course Management System Standards – Open Knowledge Iniative (OKI) needed full implementation – IMS standard such as Question and Testing Interoperability (QTI) • • • • Why not coordinate this work , do the work once, and share each others solutions? Integrate across projects at multiple institutions and adopt relevant standards Collaboration at the next frontier - implementation Tool Portability Profile (TPP) – Truly portable tools and services – Tools built at different places look and feel the same and share data and services – This is difficult - Interoperbility is harder than portability • Mellon Foundation funding Open/Open Licensing • “..all work products under the scope of the Sakai initiative for which a member is counting matching contribution and any Mellon Sakai funding” will be open source software and documentation licensed for both education and commercial use without licensing fees. SAKAI Overview July 04 Jan 04 May 05 Activity: Maintenance & Transition from a project to a community Michigan •CHEF Framework •CourseTools •WorkTools Indiana •Navigo Assessment •Eden Workflow •Oncourse MIT •Stellar Stanford •CourseWork •Assessment OKI •OSIDs Dec 05 SAKAI 1.0 Release •Tool Portability Profile •Framework •Services-based Portal •Refined OSIDs & implementations SAKAI Tools •Complete CMS •Assessment SAKAI 2.0 Release •Tool Portability Profile •Framework •Services-based Portal SAKAI Tools •Complete CMS •Assessment •Workflow •Research Tools •Authoring Tools Activity: Ongoing implementation work at local institution… uPortal Primary SAKAI Activity Architecting for JSR-168 Portlets, Refactoring “best of” features for tools Conforming tools to Tool Portability Profile Primary SAKAI Activity Refining SAKAI Framework, Tuning and conforming additional tools Intensive community building/training Portability Profile (as of today) • Tools – JSF GUI Layer – JSR 168 Portlet – JSR Servlet Standard • Services – Level 1-3 Inversion of Control – Avalon, Turbine, OKI, Spring, Pico • J2EE / EJB / JBoss - Enterprise Services – Stateless Session – Entity beans for clustering and scaling • This is in progress - so it may change Sakai Architecture Portal Configuration Implementations Portal Technology uPortal 3.0 JSR-168 Technology Legacy Sakai GUI Portable code Sakai Service Layer Channels, Teamlets JSR-168 Portlets Sakai Teamlet Sakai GUI Layer Mega-portable code CHEF Services OKI Services Other Services Architecture and Tool Development Dec 15 SAKAI 1.0 Whitepaper Pre-alpha release of SAKAI’d CHEF Architect Discussions: getting it right across schools Sakai Timeline July 1 SAKAI 1.0 available for testing by production facilities Feb 15 SAKAI 0.5 available for tool development Oct ‘03 Jan ‘04 Nov 15 Requirements, Functional Design, UI, Full Spec Apr ‘04 Feb 15 Developers’ Workshop: Coding SAKAI 1.0 using SAKAI 0.05 July ‘04 Oct ‘04 Aug 1 Tools running in SAKAI 1.0 pilot/production environment at participating schools Feb 1 Deliver full spec to programmers July 1 Final tool delivery to participating schools Tool Development Summary