Metasafe - Functional Architecture
Metasafe is a general purpose DBMS with an entity-relationship metamodel. The primary purpose of Metasafe is to provide a secure, flexible and user friendly multi-user data management platform for applications.
Metasafe based Applications
typically deal with complex, fine grained data which are connected by a network of relationships. Typical applications are repositories, analysis, planning and reporting systems, development tools (i.e. the applications which are used by developers), configuration management.
contains general purpose tools to develop / maintain / document models, to browse / enter / import / export instance data. The tools are fully model driven – i.e. changes to the model will automatically be handled by the tools. The tools are based on the Eclipse framework with configurable plugins.
Access Language erSQL - beyond SQL
erSQL is a powerful and user friendly query-language for users AND application developers. It describes a query as a navigation in the conceptual model in contrast to the JOIN-Logic of the "RDBS-SQL".
The Metasafe API
provides a large set of methods for a java developer to ensure control over all functions of the database provided by the metasafe core. The erSQL-Query-language is integrated in the API.
The Metasafe Core
handles all access requests from multiple users in transaction mode. Metasafe core enforces the ACID-principles (Atomicity, Consistency, Isolation, and Duration). The metasafe core maintains the structure of the models and the pending data in a cache. It compresses/decompresses the data and stores them via the persistence interface.
The Persistence Layer
uses a set of tables of an RDBMS for the physical storage of the data. The system has been implemented for several RDBMS and can be adapted easily to any other RDMBS.