General Architecture | return |
ActiveMath is implemented as a Java-based web application. As is typical for these type of applications, it uses a Model-View-Controller (MVC) architecture, which separates application logic ("controller") from application data ("model") and the presentation of that data ("view").
ActiveMath is split up into components, each with clearly defined functionality and interface towards the rest of the system. It is built on top of over 50 open-source components, among them Tomcat, Maverick, Velocity, Hibernate, and Derby.
Primary Components
Primary components are the essential building blocks that form the basis of the ActiveMath system. The primary components are:
- Application Core for configuration, life cycle management and other basic functionality
- Event Framework for loosely coupled information exchange
- User Management for handling of learners, tutor and authors
- Web Layer Frontend for tying the application together as a web application
Tightly Coupled Components
Each tightly coupled component implements an important part of ActiveMath as a learning system.
- The Content database (MBase) provides access to OMDoc documents for the mathematical content
- The Content Manager represents content, metadata and relations in form of individual learning items, books, pages and table of content.
- The Presentation System takes care of assembling and transforming content into the desired output format such as HTML or PDF.
- The Learner Model models the knowledge of a learner and is used as a major source for personalization
- The Exercise System is running interactive content, diagnosing input, and represents the major source of input for the learner model.
- The Tutorial Component selects appropriate content items based on a learner's preferences and knowledge and applies pedagogical rules to assemble it into personal content for the learner.
- Search provides a sophisticated search facility for the whole content database.
Loosely Coupled Components
Loosely coupled components are external applications that can cooperate with ActiveMath, such as the Siette assessment tool or external content repositories. They will not be described here.
Client Tools
Client tools are rich client applications that provide extra service to a learner. Examples are
- Assembly Tool, for assembling personal books from individual learning objects
- iCMap, the interactive concept mapper