lams 2.0 architecture

27

Upload: fritz-dale

Post on 02-Jan-2016

56 views

Category:

Documents


1 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: LAMS 2.0 Architecture
Page 2: LAMS 2.0 Architecture

LAMS 2.0 Architecture

LAMS 2.0 Architecture

Page 3: LAMS 2.0 Architecture

AgendaAgenda

LAMS 2.0: Technical Aims

Architecture

Technologies

LAMS Core

LAMS Tool Contract

External Tools

Page 4: LAMS 2.0 Architecture

LAMS 2.0 AimsLAMS 2.0 Aims

Improve scalability

Modular Architecture (tool plug-ins)

Interoperability

Internationalisation

Page 5: LAMS 2.0 Architecture

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

Page 6: LAMS 2.0 Architecture

LAMS 1.0.x vs LAMS 2.0Architecture Comparison

LAMS 1.0.x vs LAMS 2.0Architecture Comparison

Page 7: LAMS 2.0 Architecture

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

Page 8: LAMS 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

Page 9: LAMS 2.0 Architecture

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

Page 10: LAMS 2.0 Architecture

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

Page 11: LAMS 2.0 Architecture

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

Page 12: LAMS 2.0 Architecture

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

Page 13: LAMS 2.0 Architecture

Questions on Questions on Architecture?Architecture?

Page 14: LAMS 2.0 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

Page 15: LAMS 2.0 Architecture

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

Page 16: LAMS 2.0 Architecture

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

Page 17: LAMS 2.0 Architecture

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

Page 18: LAMS 2.0 Architecture

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

Page 19: LAMS 2.0 Architecture

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

Page 20: LAMS 2.0 Architecture

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

Page 21: LAMS 2.0 Architecture

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.

Page 22: LAMS 2.0 Architecture

Questions on Questions on the Tool the Tool

Contract?Contract?

Page 23: LAMS 2.0 Architecture

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

Page 24: LAMS 2.0 Architecture

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

Page 25: LAMS 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 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

Page 26: LAMS 2.0 Architecture

LAMS External ToolLAMS External Tool

Page 27: LAMS 2.0 Architecture

Questions?

http://wiki.lamsfoundation.org/

Online Help: LAMS Documents Developer Doc: LAMS 2.0

http://lamscommunity.org/