LAMS 2.0 Architecture
-
Upload
fritz-dale -
Category
Documents
-
view
47 -
download
1
description
Transcript of LAMS 2.0 Architecture
LAMS 2.0 Architecture
LAMS 2.0 Architecture
AgendaAgenda
LAMS 2.0: Technical Aims
Architecture
Technologies
LAMS Core
LAMS Tool Contract
External Tools
LAMS 2.0 AimsLAMS 2.0 Aims
Improve scalability
Modular Architecture (tool plug-ins)
Interoperability
Internationalisation
LAMS 2.0 Features“Tech Stuff”
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 1.0.x vs LAMS 2.0Architecture Comparison
LAMS 1.0.x vs LAMS 2.0Architecture Comparison
LAMS 1.0.x vs LAMS 2.0Architecture Comparison
LAMS 2.0 ArchitectureLAMS 2.0
Architecture
JBoss AppserverJBoss AppserverJBoss AppserverJBoss Appserver
LAMS 2.0LAMS 2.0
Core Core Functions Functions
and and ServicesServices
Core Core Functions Functions
and and ServicesServices
Tool ATool ATool ATool A
Tool BTool BTool BTool B
Tool CTool CTool CTool C
WebserverWebserver(Apache, IIS)(Apache, IIS)WebserverWebserver(Apache, IIS)(Apache, IIS)
HibernateHibernate
UsersUsersWeb Web
BrowserBrowser
UsersUsersWeb Web
BrowserBrowser
OracleOracle
LAMS TechnologiesLAMS Technologies
HTML(JSPs)
and XML overHTTP
Frameworks and Class Libraries: The
Biggies
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
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
DB ClusterDB ClusterDB ClusterDB Cluster
JBoss ClusterJBoss Cluster
LAMS ScalabilityLAMS Scalability
Jboss 1Jboss 1Jboss 1Jboss 1
WebserverWebserverLoad Load
balancerbalancer
WebserverWebserverLoad Load
balancerbalancer
Jboss 4Jboss 4Jboss 4Jboss 4
Jboss 3Jboss 3Jboss 3Jboss 3
Jboss 2Jboss 2Jboss 2Jboss 2OracleOracle
OracleOracle
LAMS CoreLAMS CoreCommon: 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 Questions on Architecture?Architecture?
Tools & Tools ContractTools & Tools ContractLAMS 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 andStores andmanagesmanages
DesignsDesigns
Stores andStores andmanagesmanages
DesignsDesigns
AuthorAuthorAuthorAuthor
AdminAdminAdminAdmin
LearnerLearnerLearnerLearner
MonitorMonitorMonitorMonitor
ServicesServicesServicesServices
My LAMS My LAMS ToolTool
Manage its Manage its own contentown content
My LAMS My LAMS ToolTool
Manage its Manage its own contentown content
LAMS Core
Tool ContractTool ContractTool ContractTool Contract
AuthorAuthorAuthorAuthor AdminAdminAdminAdmin LearnerLearnerLearnerLearner MonitorMonitorMonitorMonitor ServicesServicesServicesServices
My LAMS ToolMy LAMS ToolMy LAMS ToolMy LAMS Tool
Auth
or
Auth
or
Contra
ct/API
Contra
ct/API
Auth
or
Auth
or
Contra
ct/API
Contra
ct/API
Adm
in
Adm
in
Contra
ct/API
Contra
ct/API
Adm
in
Adm
in
Contra
ct/API
Contra
ct/API
Learn
er
Learn
er
Contra
ct/API
Contra
ct/API
Learn
er
Learn
er
Contra
ct/API
Contra
ct/API
Monito
r M
onito
r C
ontra
ct/API
Contra
ct/API
Monito
r M
onito
r C
ontra
ct/API
Contra
ct/API
Serv
ices A
PI
Serv
ices A
PI
Serv
ices A
PI
Serv
ices A
PI
AuthorAuthorAuthorAuthor
My LAMS ToolMy LAMS ToolMy LAMS ToolMy 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
Auth
or
Contr
act
/API
Auth
or
Contr
act
/API
Auth
or C
ontra
ct/API
Auth
or C
ontra
ct/API
Auth
or C
ontra
ct/API
Auth
or C
ontra
ct/API
My LAMS ToolMy LAMS ToolMy LAMS ToolMy 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 URLExport 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
Monit
or
Contr
act
/API
Monit
or
Contr
act
/API
MonitorMonitorMonitorMonitor
Monito
r Con
tract/A
PI
Monito
r Con
tract/A
PI
Monito
r Con
tract/A
PI
Monito
r Con
tract/A
PI
My LAMS ToolMy LAMS ToolMy LAMS ToolMy 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
Learn
er
Contr
act
/API
Learn
er
Contr
act
/API
LearnerLearnerLearnerLearner
Learn
er C
ontra
ct/API
Learn
er C
ontra
ct/API
Learn
er C
ontra
ct/API
Learn
er C
ontra
ct/API
My LAMS ToolMy LAMS ToolMy LAMS ToolMy 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)
Adm
in C
ontr
act
/API
Adm
in C
ontr
act
/API
AdminAdminAdminAdmin
Adm
in C
on
tract/A
PI
Adm
in C
on
tract/A
PI
Adm
in C
on
tract/A
PI
Adm
in C
on
tract/A
PI
My LAMS ToolMy LAMS ToolMy LAMS ToolMy LAMS Tool
Chat/IM serverPotentially any Jabber server, currently using Wildfire.
Journal and notesIn 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 repositoryAdd/Remove content
Add new versions of content
Stream content to users
Serv
ices
API
Serv
ices
API
Serv
ices A
PI
Serv
ices A
PI
Serv
ices A
PI
Serv
ices A
PI
ServicesServicesServicesServices
Tool Writer’s HelpsTool Writer’s HelpsTool Writer’s HelpsTool 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 Questions on the Tool the Tool
Contract?Contract?
External Tool WrappersExternal Tool Wrappers
AuthorAuthorAuthorAuthor
AdminAdminAdminAdmin
LearnerLearnerLearnerLearner
MonitorMonitorMonitorMonitor
ServicesServicesServicesServices
ExternalExternalToolTool
WrapperWrapper
ExternalExternalToolTool
WrapperWrapper
Tool Tool ContracContrac
tt
Tool Tool ContracContrac
tt
ExternaExternall
ToolTool
ExternaExternall
ToolTool
Tool Tool ContracContrac
tt
Tool Tool ContracContrac
tt
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
AuthorAuthorAuthorAuthor
AdminAdminAdminAdmin
LearnerLearnerLearnerLearner
MonitorMonitorMonitorMonitor
ServicesServicesServicesServices
ExternalExternalToolTool
WrapperWrapper(provided (provided by LAMS)by LAMS)
ExternalExternalToolTool
WrapperWrapper(provided (provided by LAMS)by LAMS)
Tool Tool ContrContractact
Tool Tool ContrContractact
WS/Sakai APIWS/Sakai APIWS/Sakai APIWS/Sakai API
Test Test EngineEngine
External Tool Wrapper(Sakai Example)
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 AppserverJBoss AppserverJBoss AppserverJBoss Appserver
LAMS 2.0LAMS 2.0
Core Core Functions Functions
and and ServicesServices
Core Core Functions Functions
and and ServicesServices
Tool ATool ATool ATool A
Tool BTool BTool BTool B
Tool Tool AdapterAdapter
Tool Tool AdapterAdapter
WebserverWebserverWebserverWebserver
HibernateHibernate
UsersUsersWeb Web
BrowserBrowser
UsersUsersWeb Web
BrowserBrowser
OracleOracle
LAMS External ToolLAMS External Tool
HTML(JSPs)
and XML overHTTP
Test EngineTest Engine
Web Services
& URL Calls
LAMS External ToolLAMS External Tool
Questions?
http://wiki.lamsfoundation.org/
Online Help: LAMS Documents Developer Doc: LAMS 2.0
http://lamscommunity.org/