LAMS 2.0 Features “Tech Stuff” Scalability Multiple authentication mechanism LAMS Tools Contract Easy add/import new activity tools Support for multiple databases External Tool Wrapper
LAMS 1.0.x vs LAMS 2.0 Architecture Comparison
LAMS 2.0 Architecture
JBoss Appserver LAMS 2.0 Core Functions and Services Tool A Tool B Tool C Webserver (Apache, IIS) Webserver Hibernate UsersWebBrowserUsersWebBrowser Oracle LAMS Technologies HTML (JSPs) and XML over HTTP
Frameworks and Class Libraries: The Biggies Spring: The glue holding LAMS together. Handles transactions, accesses the service bean in the tool and core modules, etc. Hibernate: Database Layer. Service caching is done using Hibernate and JBOSS. Struts: Web Layer
Frameworks and Class Libraries: Some More Too many to name them all, but to a few: Axis for Webservices Jakarta Commons JFreeChat for Charts Quartz for Scheduling Log4J for Logging WDDX: XML based Flash to Java Communication
LAMS Core Common: Common services and data structures, common css files and images. lams.jar, lams-central.war Admin: Group and User Administration, System Administration lams-admin.jar, lams-admin.war Author: Supports Authoring Client – saving, opening designs, import and export of designs. lams-central.war Monitor: Supports Add Lesson and Monitor Clients lams- monitoring.jar, lams- monitoring.war Learner: Supports Learner Client. Includes the progress engine. lams-learning.jar, lams-learning.war
Questions on Architecture?
Tools & Tools Contract LAMS is one EAR, with the tools as “almost” independent web applications within the EAR. Set of expected behaviours, registered URLs and API calls that a LAMS Tool has to implement to "talk" to LAMS Core. Clear separation between Design and Tool Content. Stores and manages Designs AuthorAuthor AdminAdmin LearnerLearner MonitorMonitor ServicesServices My LAMS Tool Manage its own content My LAMS Tool Manage its own content LAMS Core Tool Contract
AuthorAuthorAdminAdminLearnerLearnerMonitorMonitorServicesServices My LAMS Tool Author Contract/API Admin Contract/API Learner Contract/API Monitor Contract/API Services API
AuthorAuthor My LAMS Tool Authoring URL / &toolContentID=123&contentFolderID=123A...D123 Default Tool content Author environment must have three mandatory tabs: Basic, Advanced and Instructions Preview URL / &toolSessionID=123 Often the same as learning with a mode=author flag Import/Export: supply an object which is converted to/from XML Author Contract/API
My LAMS Tool Monitor URL / &toolContentID=123&contentFolderID=11A..D2 Implement Summary, Instructions, Edit Activity and Statistics tabs. Allow edit and hide entries (when required). Learner Progress “Looking over the learner’s shoulder” / &userID= &toolSessionID=123 Export Portfolio URL Export all of the lesson data: / &mode=teacher&toolContentID=123 Export as if you were a learner: / &mode=learner&toolSessionID=231&userID=10 Monitor Contract/API MonitorMonitor
My LAMS Tool Learners URL / &toolSessionID=123 Handles Define later, Lock on Finish, Run offline Notify Sequencing Engine of users’ completion Export Portfolio URL / &mode=learner&toolSessionID=231 Learner Contract/API LearnerLearner
My LAMS Tool Edit “Default Tool Content” Reuses authoring url, with the tool content id = default tool content id. Future: Administration URL Provide statistics about Tool usage General view of Tools metadata (tool version, etc) Admin Contract/API AdminAdmin
My LAMS Tool Chat/IM server Potentially any Jabber server, currently using Wildfire. Journal and notes In authoring the author selects whether or not to display a notebook entry screen at the end of the tool’s screens. The notebook entries are stored centrally, not in the tool. Content repository Add/Remove content Add new versions of content Stream content to users Services API ServicesServices
Tool Writer’s Helps Rename Utility: Start by copying an existing tool and modifying. Needs more work! Custom Tags for common buttons, fields, controlling stylesheets, etc Automatic Internationalisation and Localisation via LocaleFilter. Just use the standard JSTL tags.
Questions on the Tool Contract?
External Tool Wrappers AuthorAuthor AdminAdmin LearnerLearner MonitorMonitor ServicesServices External Tool Wrapper Tool Contract ExternalToolExternalTool An external tool can be used as normal LAMS Tools using the tool wrapper. Effectively, Moodle,.LRN or Sakai tools can be used as native LAMS tools (including advanced features as groupings, branching, define in monitor, etc). We hope to develop a generic tool wrapper that tool writers can use to wrap up other tools. Stays the same Customise
AuthorAuthor AdminAdmin LearnerLearner MonitorMonitor ServicesServices External Tool Wrapper (provided by LAMS) External Tool Wrapper (provided by LAMS) Tool Contr act WS/Sakai API Test Engine External Tool Wrapper (Sakai Example) The LAMS/Sakai wrapper provides another level of abstraction to bundle Sakai activities as LAMS native tools that you can drag and drop create learning sequences just like any other tool
JBoss Appserver LAMS 2.0 Core Functions and Services Tool A Tool B Tool Adapter WebserverWebserver Hibernate UsersWebBrowserUsersWebBrowser Oracle LAMS External Tool HTML (JSPs) and XML over HTTP Test Engine Web Services & URL Calls