270 likes | 288 Views
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
E N D
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.0Architecture Comparison LAMS 2.0 Architecture
LAMS Technologies JBoss Appserver LAMS 2.0 Tool A Core Functions and Services Webserver (Apache, IIS) Users Web Browser Tool B HTML (JSPs) and XML over HTTP Tool C Hibernate Oracle
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 Scalability JBoss Cluster Jboss 1 DB Cluster Oracle Jboss 2 Webserver Load balancer Oracle Jboss 3 Jboss 4
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 Stores andmanagesDesigns My LAMS Tool Manage its own content Author LAMS Core Admin Tool Contract Learner Monitor Services
My LAMS Tool Author Contract/API Admin Contract/API Learner Contract/API Monitor Contract/API Services API Author Admin Learner Monitor Services
My LAMS Tool • Authoring URL <lams base path>/<tool's authoringurl>&toolContentID=123&contentFolderID=123A...D123 • Default Tool content • Author environment must have three mandatory tabs: Basic, Advanced and Instructions • Preview URL<lams base path>/<tool's preview url>&toolSessionID=123Often the same as learning with a mode=author flag • Import/Export: supply an object which is converted to/from XML Author Contract/API Author Contract/API Author
My LAMS Tool • Monitor URL • <lams base path>/<tool's 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” • <lams base path>/<tool's learner progress url>&userID=<learners user id>&toolSessionID=123 • Export Portfolio URL • Export all of the lesson data:<lams base path>/<tool's export portfolio url>&mode=teacher&toolContentID=123 • Export as if you were a learner:<lams base path>/<tool's export portfolio url>&mode=learner&toolSessionID=231&userID=10 Monitor Contract/API Monitor Contract/API Monitor
My LAMS Tool • Learners URL • <lams base path>/<tool's learner url>&toolSessionID=123 • Handles Define later, Lock on Finish, Run offline • Notify Sequencing Engine of users’ completion • Export Portfolio URL • <lams base path>/<tool's export portfolio url>&mode=learner&toolSessionID=231 Learner Contract/API Learner Contract/API Learner
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 Admin Contract/API Admin
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 Services API Services
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.
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. ExternalToolWrapper Author External Tool Admin Learner Tool Contract Tool Contract Monitor Stays the same Customise Services
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 ExternalToolWrapper (provided by LAMS) Test Engine Admin WS/Sakai API Learner Tool Contract Monitor Services
LAMS External Tool JBoss Appserver LAMS 2.0 Tool A Core Functions and Services Webserver Users Web Browser Tool B Tool Adapter HTML (JSPs) and XML over HTTP Web Services & URL Calls Hibernate Test Engine Oracle
Questions? • http://wiki.lamsfoundation.org/ • Online Help: LAMS Documents • Developer Doc: LAMS 2.0 • http://lamscommunity.org/