

Client Server
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.
Embedded
Matisse Lite, the embedded version of Matisse DBMS, is a compact library that
implements the server-less version of Matisse DBMS. Matisse Lite provides
a transactional, multi-user database engine self-contained in a user-application
process.
Matisse Lite was designed from the ground up to function at peak in a
resource-limited architecture and to integrate seamlessly inside any application
process without the need to start up and to shut down separate database
processes.
Matisse Lite shares with Matisse the same set of APIs thus eliminating
the developer's learning curve. It also shares the same datafile format,
making your application fully compatible between both environments.
Matisse Lite is ideally suited for rich gadget applications on electronic
devices and hardware appliances, which require zero configuration, no
administration and a small footprint.
Matisse Lite also provides a reliable, scalable and fast solution to cache
rich information served by application servers in web farms.
Matisse Lite can also be used to build easy-to-deploy Evaluation or Demo
Edition of enterprise-class database applications.
|