Title: LAMS 2'0 Architecture
1(No Transcript)
2LAMS 2.0 Architecture
3Agenda
- LAMS 2.0 Technical Aims
- Architecture
- Technologies
- LAMS Core
- LAMS Tool Contract
- External Tools
4LAMS 2.0 Aims
- Improve scalability
- Modular Architecture (tool plug-ins)
- Interoperability
- Internationalisation
5LAMS 2.0 FeaturesTech Stuff
- Scalability
- Multiple authentication mechanism
- LAMS Tools Contract
- Easy add/import new activity tools
- Support for multiple databases
- External Tool Wrapper
6LAMS 1.0.x vs LAMS 2.0Architecture Comparison
7LAMS 1.0.x vs LAMS 2.0Architecture Comparison
LAMS 2.0 Architecture
8LAMS 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
9Frameworks 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
10Frameworks 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
11LAMS Scalability
JBoss Cluster
Jboss 1
DB Cluster
Oracle
Jboss 2
Webserver Load balancer
Oracle
Jboss 3
Jboss 4
12LAMS Core
13Questions on Architecture?
14Tools 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/ToolC
ontract
Stores andmanagesDesigns
My LAMS Tool Manage its own content
Author
LAMS Core
Admin
Tool Contract
Learner
Monitor
Services
15My LAMS Tool
Author Contract/API
Admin Contract/API
Learner Contract/API
Monitor Contract/API
Services API
Author
Admin
Learner
Monitor
Services
16My LAMS Tool
- Authoring URL ltlams base pathgt/lttool's
authoringurlgttoolContentID123contentFolderID12
3A...D123 - Default Tool content
- Author environment must have three mandatory
tabs Basic, Advanced and Instructions - Preview URLltlams base pathgt/lttool's preview
urlgttoolSessionID123Often the same as learning
with a modeauthor flag - Import/Export supply an object which is
converted to/from XML
Author Contract/API
Author Contract/API
Author
17My LAMS Tool
- Monitor URL
- ltlams base pathgt/lttool's monitor
urlgttoolContentID123contentFolderID11A..D2 - Implement Summary, Instructions, Edit Activity
and Statistics tabs. - Allow edit and hide entries (when required).
- Learner Progress
- Looking over the learners shoulder
- ltlams base pathgt/lttool's learner progress
urlgtuserIDltlearners user idgttoolSessionID123 - Export Portfolio URL
- Export all of the lesson dataltlams base
pathgt/lttool's export portfolio urlgtmodeteachert
oolContentID123 - Export as if you were a learnerltlams base
pathgt/lttool's export portfolio urlgtmodelearnert
oolSessionID231userID10
Monitor Contract/API
Monitor Contract/API
Monitor
18My LAMS Tool
- Learners URL
- ltlams base pathgt/lttool's learner
urlgttoolSessionID123 - Handles Define later, Lock on Finish, Run offline
- Notify Sequencing Engine of users completion
- Export Portfolio URL
- ltlams base pathgt/lttool's export portfolio
urlgtmodelearnertoolSessionID231
Learner Contract/API
Learner Contract/API
Learner
19My 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
20My 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
tools 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
21Tool Writers 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.
22Questions on the Tool Contract?
23External 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
24External 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
25LAMS 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
26LAMS External Tool
27 Questions?
- http//wiki.lamsfoundation.org/
- Online Help LAMS Documents
- Developer Doc LAMS 2.0
- http//lamscommunity.org/