LAMS 2.0 Architecture

Download Report

Transcript LAMS 2.0 Architecture

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
JFreeChat for Charts
Quartz for Scheduling
Log4J 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.
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
lamsmonitoring.jar,
lamsmonitoring.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.
http://wiki.lamsfoundation.org/display/lams/Tool+Contract
LAMS Core
Author
My LAMS
Tool
Admin
Stores and
manages
Designs
Learner
Monitor
Services
Tool Contract
Manage its
own content
My LAMS Tool
Author
Admin
Learner
Monitor
Services
My LAMS Tool
Author Contract/API
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=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
Monitor Contract/API
Monitor URL
Monitor
<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
Learner Contract/API
My LAMS Tool
Learner
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
Admin Contract/API
My LAMS Tool
Admin
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)
My LAMS Tool
Services API
Chat/IM server
Services
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
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
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/