DeepaMehta Software Architecture




Fig 1: DeepaMehta is a comprehensive software architecture in Java

Besides the 3 MVC layers the communication approach is abstract and displayed as 4th layer here. Core of the backend is an application server. Applications are developed in the scope of the DeepaMehta application framework. The communication approach is transparent to the application developer. DeepaMehta Applications can operate on both, DeepaMehta's own corporate memory and external data sources. The actual storage systems are abstracted by the respective interfaces. The XML based ISO 13250 Topic Maps standard is used for import/export. XSL stylesheets are used for dynamic HTML, SVG and PDF creation.

A DeepaMehta application is written once and is served to many users via different communication channels:

The DeepaMehta Development Guide explains how to develop applications for the DeepaMehta platform.

Topic Model


Fig 2: Topic Model
outdated

Type Model


Fig 3: Type model

A type is an abstract specification of a type according to the Topicmaps standard
-- an actual type is a topic type resp. an association type.

Standard topic types


Fig 4: Standard topic types
outdated

This is the first UML class diagram focused to the ActiveTopic Framework. For the time being just the class tree of DeepaMehta's 18 kernel active topics is shown. Additionally the 4 active topics of the Movies example application are shown. DeepaMehta applications are build upon this Framework, particularily every active topic is (directly or indirectly) derived from the ActiveTopic class.

Sequence of a server request


Fig 5: Sequence of a server request
outdated

This UML activition diagram shows the control flow of the server request REQUEST_SHOW_ASSOCIATIONS. This requests topics and associations based on a specified topic and a specified association type (this request is send by a client when the user selects an association type from the topic contexts "Show Associations" submenu). InteractionServerProxy asks the LiveCorporateMemory which returns the topics and associations as CorporateDirectives. The InteractionServerProxy sends this directives to the client and reqeusts updating of live corporate memory according to the directives.

If you ignore the gray marked area for the moment you'll see LiveCorporateMemory retrieves the topics and associations directly from corporate memory (StorageLayer). The default implementation of ActiveTopic.revealRelatedTopics() does nothing. The gray marked area shows the activity of the Active Topic DataConsumerTopic. At request time a data consumer retrieves data from a CorporateDataSource and replicates them into corporate memory in form of topics, associations and properties before the topics and associations are retrieved from corporate memory.

Resp. shorter spoken: "Active Topics can reveal topics and associations on-the-fly e.g. by quering corporate datasources".

Data Model


Fig 6: Entity-Relationship Model



Fig 7: Tables in a relational database




24.6.2003, Jörg Richter jri@freenet.de