Changes between Version 3 and Version 4 of ArchitectureOverview


Ignore:
Timestamp:
07.05.2013 20:03:42 (8 years ago)
Author:
jri
Comment:

DeepaMehta Core

Legend:

Unmodified
Added
Removed
Modified
  • ArchitectureOverview

    v3 v4  
     1[[PageOutline]] 
     2 
    13= Architecture Overview = 
    24 
    3 DeepaMehta features an OSGi-based modular architecture that shares features with an service-oriented architecture (SOA). Each module's service can be consumed as an OSGi service. At the same time DeepaMehta can publish a module's service as an RESTful web service without requiring the module author to do extra coding.  
     5DeepaMehta features an OSGi-based modular architecture that shares features with an service-oriented architecture (SOA). Each module's service can be consumed as an OSGi service. At the same time DeepaMehta can publish a module's service as a RESTful web service without requiring the module developer to do extra coding.  
    46 
    5 In a distributed (client-server) setup the OSGi container runs at the server-side. Clients access the server via HTTP. 
     7In a distributed (client-server) DeepaMehta setup the OSGi container runs at the server-side. Clients access the server via HTTP. 
    68 
    79[[Image(Architecture.png)]] 
    810 
    9 A central part of DeepaMehta is its plugin development framework. A DeepaMehta plugin is an OSGi bundle. However the DeepaMehta plugin developer must not know about OSGi intrinsics. Instead the developer can rely on facilities provided by the DeepaMehta Core. 
     11A central part of DeepaMehta is its plugin development framework. A DeepaMehta plugin is an OSGi bundle. However the DeepaMehta plugin developer must not know about the OSGi intrinsics. Instead she can rely on the facilities and conventions rooted in the DeepaMehta Core and its high-level API. 
    1012 
    1113== DeepaMehta Core == 
    1214 
    13 The DeepaMehta Core is a dedicated OSGi bundle. Its responsibilities comprise: 
     15Features of the DeepaMehta Core: 
    1416 
    15 * Mediating between the DeepaMehta plugins and the underlying OSGi environment. The plugin developer must not know about OSGi intrinsics. 
     17* The DeepaMehta Core mediates between the DeepaMehta plugins and the underlying OSGi environment. In particular the DeepaMehta Core ... 
     18  * registers the plugin's service as an OSGi service. 
     19  * additionally publishes the plugin's service as a RESTful web service via OSGi's HTTP service. 
     20  * publishes the plugin's web resources (images, scripts, CSS) via OSGi's HTTP service. 
     21  * tracks the plugin services the plugin want to consume. 
    1622 
    17 * Providing the //DeepaMehta Core Service//. 
    18     * Offers transactional database access to handle DeepaMehta's basic entities: topics, associations, topic types, association types. 
    19     * Supports creating/retrieving/updating/deleting composite topic structures by levereging the type definitions. 
     23* The //DeepaMehta Core Service// provides transactional access to the DeepaMehta database. There are high-level methods for dealing with the basic DeepaMehta application objects (Topics, Associations, Topic Types, Association Types) and complex composite structures. The DeepaMehta Core Service also provides basic query (including fulltext) and traversal capabilities. 
    2024 
    21 * Firing //DeepaMehta Core Events//. 
     25  Every DeepaMehta plugin has access to the DeepaMehta Core Service. External applications can access the DeepaMehta Core Service as a RESTful web service (via HTTP). 
     26 
     27* //DeepaMehta Core Events// are fired in particular situations, e.g. before and after a topic is created in the database. By implementing event listeners DeepaMehta plugins can react upon these events. 
    2228 
    2329* The //Migration Manager// ensures the database model and content is compatible with the installed plugins. It does so by running database migrations when a plugin is installed or updated. 
    2430 
    2531* Defining a DB-agnostic low-level service provider interface for the storage layer. By implementing this interface developers can deploy any database system as the DeepaMehta storage. 
     32 
     33The DeepaMehta Core is an OSGi bundle. 
    2634 
    2735== DeepaMehta Plugins ==