Changes between Version 2 and Version 3 of ArchitectureOverview


Ignore:
Timestamp:
07.05.2013 02:17:45 (8 years ago)
Author:
jri
Comment:

DeepaMehta Core, DeepaMehta Plugins

Legend:

Unmodified
Added
Removed
Modified
  • ArchitectureOverview

    v2 v3  
    77[[Image(Architecture.png)]] 
    88 
    9 DeepaMehta Core 
     9A 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. 
    1010 
    11 * Provides the DeepaMehta Core Service. 
     11== DeepaMehta Core == 
     12 
     13The DeepaMehta Core is a dedicated OSGi bundle. Its responsibilities comprise: 
     14 
     15* Mediating between the DeepaMehta plugins and the underlying OSGi environment. The plugin developer must not know about OSGi intrinsics. 
     16 
     17* Providing the //DeepaMehta Core Service//. 
    1218    * Offers transactional database access to handle DeepaMehta's basic entities: topics, associations, topic types, association types. 
    1319    * Supports creating/retrieving/updating/deleting composite topic structures by levereging the type definitions. 
    1420 
    15 * Mediates between the DeepaMehta plugins and the underlying OSGi environment. The plugin developer must not know about the OSGi intrinsics. 
     21* Firing //DeepaMehta Core Events//. 
    1622 
    17 * Defines a DB-agnostic service provider interface for the storage layer. By implementing this interface developers can adapt DeepaMehta to any database system. The DeepaMehta Standard Distribution comes with an Neo4j-based implementation. 
     23* 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. 
     24 
     25* 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. 
     26 
     27== DeepaMehta Plugins == 
     28 
     29A DeepaMehta plugin can have several parts: 
     30 
     31* **A data model**. The data model is a collection of domain-specific topic types and/or association types. 
     32 
     33* **Server-side logic**. Server-side logic comes in form of a) event handlers, and/or b) service methods. Server-side logic is written in Java. 
     34 
     35* **Client-side logic**. Client-side logic runs inside the DeepaMehta Webclient. Client-side logic comes in form of a) event handlers, b) custom renderers, and/or c) public API methods. Client-side logic is written in JavaScript?. 
     36 
     37Each of these parts is optional. Which parts a plugin provides depends on its purpose. 
     38 
     39== DeepaMehta Webclient == 
     40 
     41== Storage Implementation == 
     42 
     43The default storage implementation embeds Neo4j. Neo4j is accessed via its native Java API.