LAMS 2 0 Architecture Agenda LAMS 2 0



























- Slides: 27
LAMS 2. 0 Architecture
Agenda LAMS 2. 0: Technical Aims Architecture Technologies LAMS Core LAMS Tool Contract External Tools
LAMS 2. 0 Aims Improve scalability Modular Architecture (tool plug-ins) Interoperability Internationalisation
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 1. 0. x vs LAMS 2. 0 Architecture Comparison LAMS 2. 0 Architecture
LAMS Technologies LAMS 2. 0 Tool A Core Functions and Services Tool B Webserver (Apache, IIS) Tool C JBoss Appserver Hibernate Oracle HTML (JSPs) and XML over HTTP Users Web Browser
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 JFree. Chat for Charts Quartz for Scheduling Log 4 J for Logging WDDX: XML based Flash to Java Communication
LAMS Scalability JBoss Cluster DB Cluster Jboss 1 Oracle Jboss 2 Webserver Load balancer Oracle Jboss 3 Jboss 4
LAMS Core Common: Common services and data structures, common css files and images. Admin: Group and User Administration, System Administration Author: Supports Authoring Client – saving, opening designs, import and export of designs. Monitor: Supports Add Lesson and Monitor Clients lams. jar, lams-central. war Learner: Supports Learner Client. Includes the progress engine. lams-learning. jar, lams-learning. war lams-admin. jar, lams-admin. war lams-central. war lamsmonitoring. jar, lamsmonitoring. 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. http: //wiki. lamsfoundation. org/display/lams/Tool+Contract LAMS Core Stores and manages Designs Author My LAMS Tool Admin Learner Monitor Services Tool Contract Manage its own content
My LAMS Tool Author Con tract/API Admin Contract/AP I Lea rner Contract/API Monitor Contract/API Services API Author Admin Learner Monitor Services
Authoring URL <lams base path>/<tool's authoringurl>&tool. Content. ID=123&content. Folder. ID=123 A. . . D 123 Author Contrac t/API Author Contract/API My LAMS Tool Default Tool content Author environment must have three mandatory tabs: Basic, Advanced and Instructions Preview URL <lams base path>/<tool's preview url>&tool. Session. ID=123 Often the same as learning with a mode=author flag Import/Export: supply an object which is converted to/from XML Author
My LAMS Tool <lams base path>/<tool's monitor url>&tool. Content. ID=123&content. Folder. ID=11 A. . D 2 Implement Summary, Instructions, Edit Activity and Statistics tabs. Monitor Contract/AP I Monitor Contract/API Monitor URL Monitor Allow edit and hide entries (when required). Learner Progress “Looking over the learner’s shoulder” <lams base path>/<tool's learner progress url>&user. ID=<learners user id>&tool. Session. ID=123 Export Portfolio URL Export all of the lesson data: <lams base path>/<tool's exportfolio url>&mode=teacher&tool. Content. ID=123 Export as if you were a learner: <lams base path>/<tool's exportfolio url>&mode=learner&tool. Session. ID=231&user. ID=10
Learners URL <lams base path>/<tool's learner url>&tool. Session. ID=123 Handles Define later, Lock on Finish, Run offline Learner Contract/API My LAMS Tool Learner Notify Sequencing Engine of users’ completion Export Portfolio URL <lams base path>/<tool's exportfolio url>&mode=learner&tool. Session. ID=231
Edit “Default Tool Content” Admin Contract/API My LAMS Tool Admin 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)
My LAMS Tool Potentially any Jabber server, currently using Wildfire. Journal and notes Services API Chat/IM server Services 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
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 Locale. Filter. Just use the standard JSTL tags.
Questions on the Tool Contract?
External Tool Wrappers 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. Author Admin Learner Monitor Services Tool Contract Stays the same External Tool Wrapper Tool Contract Customise External Tool
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 Author Admin Learner Monitor Services Tool Contr act External Tool Wrapper (provided by LAMS) WS/Sakai API Test Engine
LAMS External Tool LAMS 2. 0 Tool A Core Functions and Services Tool B Webserver HTML (JSPs) and XML over HTTP Tool Adapter JBoss Appserver Hibernate Web Services & URL Calls Oracle Test Engine Users Web Browser
LAMS External Tool
Questions? http: //wiki. lamsfoundation. org/ Online Help: LAMS Documents Developer Doc: LAMS 2. 0 http: //lamscommunity. org/



























