What is DRAGOS

DRAGOS is a database system which is developed according to the requirements of software systems for special application areas. This includes integrated development environments, case tools, re- and reverse engineering tools and other interactive applications using complex object structures. Common for these applications is the necessity to handle different types of objects on different levels efficiently: Coarse- and fine-grained objects (documents and paragraphs), hierarchical and non-hierarchical relations between them (compositions and cross references) and a vast number of differently sized attributes (chapter numbers and images) efficiently.

History

The predecessors of the DRAGOS project have been used in various projects at different sites. For more informations see the homepage of the GRAS project

This document

This site contains the DRAGOS project documentation. If you came from our department website and wish to go back, click here.

Differences compared to former GRAS versions

Unlike the previous GRAS versions (e.g. RGRAS and GRAS3) DRAGOS utilizes third-party databases for storing graphs efficiently. Currently, three different graph storages are supported:

  1. Generic SQL/JDBC Graph Storage (Module: dragos-db-jdbc)
    • Generic implementation that can easily be customized to run on most modern SQL databases.
    • Currently modules exist for the PostgreSQL, MySQL and Apache Derby database systems.
    • Features support for nested transactions
  2. JDO Graph Storage (Module: dragos-db-jdo)
    • Supports over 10 relational database systems out of the box
    • Implemented using JPOX
    • No support for nested transaction due to a limitation in the JDO specification
  3. In-Memory Graph Storage (Module: dragos-db-memory)
    • Very fast implementation
    • Graphs are stored persistently when application finishes
    • Basic transaction support

Subsequent releases will support other object-oriented and relational databases. Due to the service-oriented architecture of DRAGOS these graph storages can be developed and released indendently.

Another difference between DRAGOS and its predecessors is the graph model. RGRAS and GRAS3 only supported a very limited graph model, e.g. n-ary and attributed relations were not support. The graph model of DRAGOS supports the following graph constructs:

  • Graph classes
  • n-ary, attributed relations
  • Directed and undirected relations
  • Hierarchical graphs

Compared to its predecessors DRAGOS offers only a very limited functionality. For example, neither incremental evaluation of attribute values nor undo/redo is supported. The support for this functionality has been moved from the DRAGOS Kernel to extension modules. This avoids performance pentalties in applications which do not require this functionality. At the moment the following extension modules exist:

  • Auto Commit: Ensures that every graph modification is executed in a transaction. Thus the application is relieved from transaction management
  • Graph versioning: Adds support for graph versioning and configuration management
  • Incremental evaluation of attributes: Adds support for attributes whose values is computed on demand and default initialization of attribute values.

Tools We Use

Profiling

YourKit is kindly supporting open source projects with its full-featured Java Profiler. YourKit, LLC is creator of innovative and intelligent tools for profiling Java and .NET applications. Take a look at YourKit's leading software products: YourKit Java Profiler and YourKit .NET Profiler.

Test Coverage analysis

Please visit the Cenqua website for more information.