Matisse
 

Download Matisse


overview
architecture
features
solutions
sales
pricing

Architecture
Client applications connect to the server through the network, or through a local transport. The client and server can reside on different systems or in the same device; there is no limit to the number of clients that can communicate with a single server. The various modules and interfaces are described below:

Matisse Server
The Matisse server performs the back-end processing of queries and language binding calls including access to objects and database administration. It interfaces directly with the storage subsystem(s). The Matisse Server is a general purpose object manager, managing a repository of persistent objects.

Database Administration Services.
The database administration module implements an API and a set of administrative functions including backup, disk management, and version collection.

Object Manager.
This module performs basic object operations such as creation, updates, and deletion of objects. It guarantees consistency and bi-directional referential integrity of the objects.

SQL Engine.
The SQL engine implements the SQL 99 standard including stored procedures and triggers. The Matisse SQL engine is unique in that it natively operates on objects.

Core DBMS modules.
These modules implement the basic database management features of transaction management, locking, versioning, and checkpointing.

Server Cache.
The Server Cache serves as a buffer in order to achieve performance gains.

Matisse Client Modules
The Matisse client provides a set of interfaces for programmers and 3rd party software tools. Generally, the Matisse database is accessed either by a programming language such as C#, Java, C++ or SQL through a standard ODBC, JDBC or ADO.NET interface.

XML.
Matisse provides tools for loading and exporting XML data.
Generally, the XML loader, mt_xml, generates a schema using an XML DTD and then loads the XML documents or records into the database. Data objects can also be exported to XML format.

Languages.
Language bindings have been written for the most popular languages including C++, Java, C#, Delphi, Eiffel, Smalltalk and the leading scripting languages including PERL, Python and PHP.

ODBC/JDBC.
Matisse supports both ODBC and JDBC interfaces. The client SQL query processor validates the syntax of the query and generates a query plan to be executed on the server. This module is also responsible for generating a SQL projection from the objects selected.

Client cache.
The client serves as a buffer in order to achieve performance gains.