This topic illustrates how Tamino XML Server's technology is implemented. It describes Tamino's general architecture by giving an overview of the salient components and a description of how they interact. In essence, Tamino consists of two main parts, the Tamino XML Server and the product components (enabling services), which are single units being able to work as standalone components.
The following graphic illustrates the complete Tamino installation:
The Tamino XML Server is not just a data store. It is comprised of the following major parts that make up a system for XML storage and retrieval. The five major parts are:
The native XML Data Store plus the XML-Engine (also referred to as X-Machine) are the central and most powerful components in the Tamino XML Server architecture. Their high performance and robustness are the basis for many Tamino core services such as highly efficient storage, querying and retrieval of XML documents. These core services include Tamino X-Query as well as W3C-conform XQuery, and full-text retrieval functionality. They are based on major building blocks such as an integrated XML parser, a query interpreter, and an integrated native XML data store. It is the direct storage of XML objects without further conversion to other data structures that is a main reason for Tamino's excellent performance. It is also capable of storing arbitrary non-XML objects.
XML objects to be stored by the X-Machine are described by their schema stored in Tamino's Data Map. The X-Machine's internal XML parser checks syntactical correctness of the schemas and ensures that incoming XML objects are well-formed. It also validates data, if there is a schema.
The Object Processor is used when storing objects in the native XML store. Support of external data sources is provided by the Tamino X-Node and X-Tension.
Tamino supports two query languages: Tamino X-Query, based on the XPath standard, and the standard query language XQuery as recommended by the W3C. The Query Interpreter consists of the Query Compiler and the Query Executor. It optimizes the query along the given schema for resolving requests and checks whether indexes are available to accelerate query execution. It interacts with the Object Composer to retrieve XML objects according to the schemas stored in the Data Map.
The Object Composer is used when the XML information sets have to be composed. Using the storage and retrieval rules defined in the Data Map, the Object Composer constructs the information objects and returns them as XML documents. The simplest case will be retrieving an object stored natively as XML. In more complex cases, communication with X-Node and X-Tension is required to compose an XML object from non-XML data sources.
The Data Map is the knowledge base of Tamino's server core. It contains XML metadata: the Tamino schemas, defining the rules according to which XML objects are stored and composed. The Tamino schema determines how XML objects, embedded in XML documents, will be mapped to physical database structures, whether they reside natively or externally (for example, legacy databases), and whether indexes are to be built for faster retrieval. This way, the Data Map allows existing databases to be enabled for XML technology and the Web:
The Data Map contains the information required for the following functions:
validation against logical schema
storage and indexing of XML objects within Tamino
mapping of data to different data structures to enable the integration of existing data
mapping of data to existing databases
executing user-defined application logic using a Server Extension Function associated with an object
The definition of the schemas in the Data Map is supported by a graphical tool (the Tamino Schema Editor) that guarantees the creation of error-free XML syntax and provides some default specifications.
Tamino XML Server supports W3C's XML Schema based on the XML-Engine's and the Data Map's capabilities. Therefore, Tamino is very flexible in its handling of XML documents and supports the storage of both well-formed XML (without an explicit schema definition) and valid XML (adhering to a schema).
Tamino X-Node provides access to existing Adabas databases with traditional data structures. Tamino X-Node maps this data to XML structures, providing continued usability of existing database infrastructures and thus protecting legacy IT investments. With the help of Tamino XML Server's mapping mechanism, Tamino X-Node allows the presentation of disparate corporate data to the client application as if it were obtained from a single database (single server view). This gives Tamino XML Server the power to act as virtual DBMS, meaning a central server for existing databases over the Web and for Web-oriented applications.
Tamino's X-Tension component allows calls to user-defined functions, so-called Server Extensions:
Server Extensions allow for access to various external applications and for writing custom functionality enabling Tamino XML Server to meet application specific needs. These user-defined function plug-ins of Tamino XML Server can be written in Java, C, C++ and any COM-enabled language. Tools (for Java, C, C++ and Natural) and an add-in for Microsoft Visual Studio (for C++) support the implementation of extension functions.
A typical user-defined function is one that handles data in some specific way that cannot be anticipated by a standard function provided by Tamino. Once plugged in, these extensions are not distinguishable to the user from Tamino's standard functions for X-Query/XQuery or mapping. Based on the schema definitions, an incoming XML object can be mapped to a user-defined function, which is then executed. Thus, Tamino X-Tension provides a built-in XML-enabled interface for access to legacy processes and data sources, using Software AG's EntireX package for the integration layer. Also, action triggers can be associated to nodes of the schema.
Starting with Tamino version 10.1, Tamino administration is enabled by the command line tool.