Software AG Tamino
XML (Extensible Markup Language) is the latest and greatest item to hit the Web. XML is a subset of SGML (Structured Generalized Markup Language), modified and tailored specifically for use on the World Wide Web. The key design goal of XML was to provide a way to allow developers to create and work with custom tags, which are added essentially as extensions to the HTML tag set.
Tamino is an XML toolkit and data repository, and it is one of those products that is difficult to describe completely yet the overall effect is to do a simple job. Perhaps the scope of Tamino is best described by the sheer size of the documentation, which, when printed from the CD-ROM and placed on a desk will form a tower five inches in height. Reading all that material, and delving into the intricacies of Tamino, is a long job.
Tamino is designed for several operating systems, including Windows NT, UnixWare, and, to some extent, Linux and generic UNIX versions. Some third-party components bundled with Tamino are not available under all these platforms, but all are provided under Windows NT. We tested Tamino on a SCO UnixWare and a Windows NT system. Both systems were high-powered machines with dual 1GHz Pentium III CPUs, 512MB RAM, and 300GB SCSI RAID disk space.
What is Tamino?
Tamino is shipped as a single CD-ROM containing all the tools and the documentation you need. There is no printed documentation per se, leaving you to print everything out. Considering the price and complexity of this product, that’s an unforgivable oversight. We much prefer printed manuals to onscreen ones, especially when there is a ton of concepts and reference material that has to be digested and used frequently.
The best way to summarize Tamino is to use Software AG’s description: “Tamino is an information server that uses XML to store and retrieve data of any type”. This sounds like a database, doesn’t it? Yet, Tamino is much more than a simple repository of XML objects. Tamino can handle any type of object, Web-oriented or not, that can be stored directly or by reference. Tamino can handle sound files, documents, graphics, and any other type of file-based information. Tamino can handle SQL data and queries using a subset of the XML system.
Getting a grip on how Tamino does this is not necessary. All you really need to know is that something called the XML Store and X-Machine handle the storage and retrieval of these pieces of information. The location of each piece of information is handled by another component called the Data Map, and the Tamino server is managed by the Tamino Manager component. An interface, called X-Node, is used to allow the stored Tamino objects to be used by an external application. To communicate between the components a mix of HTTP and ODBC is used. All of this is transparent to the user.
When originally presented with the idea of this expensive XML toolkit, the first question we asked was “Why would anyone want to use this product?” The cost was way out of proportion to the perceived benefits. Our opinion changed a little bit as we worked more with Tamino, but it must be pointed out clearly that even after two weeks of concentrated work with Tamino we still have not discovered all its capabilities. This is likely to be one of those packages that you continue to discover and learn as you work with it.
The primary use for Tamino will be as a development tool for complex Web pages, especially those involving databases. The use of XML for Web pages is well understood now, and the ability of XML to handle multiple data types is clear because of its ability to treat everything as an object. Since object based designs allow reuse and inheritance, Tamino excels at allowing you to define new objects that inherit capabilities and attributes from existing objects (the real goal of object-oriented design).
To simplify a complex procedure, you use Tamino by first defining the type of data that is to be stored in the database. This is done using XML schemas. You can perform interim schema steps using XML’s DTD (Document Type Definition) if you want, and finalize it when the schema is complete.
The schema itself can be defined in a programming language or a Schema Editor tool, much like table definition tools in an RDBMS like Oracle or Informix. Using the programming language is much like coding native HTML: you use a set of tags to establish the structure of the elements, and can define relationships to other data. Each data piece is fully defined as to type, attributes, and so on. The GUI-based Schema Editor is useful, but we suspect most developers will prefer the “pedal to the metal” approach of hard coding except for simple schemas. For those used to working with SQL’s CREATE TABLE commands, a mapping utility is included that translates the table characteristics to a schema.
After a schema has been created, instances of it can be used to store information. Data can be placed in Tamino’s tables either directly, or using an external access method through an API. Retrieving information from the schema is a matter of formulating queries through X-Query, which is a curious mix of SQL and Perl programming syntax.
Learning Tamino is not for the faint hearted. Knowledge of SQL is a definite advantage, as is experience with a high-level programming language. Expect to spend at least a week getting to know the basics of the package, and at least a month learning how to properly use it. After two weeks of use, we were able to create and modify schemas, control information sent to and retrieved from the tables, and generate output reports and XML-based web pages. However, as mentioned earlier, we know there is a ton more under the hood.
Tamino’s role for most corporations will be as a repository of information that is to be accessed through Web pages, either intranet-based or on the Web. Since this is not a unique role performed by Tamino (there are many RDBMSs that can serve up information from their databases), it’s important to differentiate Tamino from an RDBMS. The use of XML means that Tamino-stored data can be manipulated and defined in terms of relationships, not requiring external applications to display results. In addition, you are not restricted to the types of data you can handle with Tamino. Software AG refers to Tamino as a virtual DBMS, because it isn’t truly a database management system. However, it performs as one but without some of the overhead.
The interfaces into Tamino take several forms. You can use traditional programming approaches, SQL, or some of the supplied utilities. There’s also a lively third-party market for Tamino which adds extra features. Although Software AG bundles some third-party products with their Tamino Starter Kit, we didn’t spend much time with them although some of the GUI interfaces look useful.
It was impossible for us to really torture test Tamino in our review cycle, primarily because we can’t scale up enough to load the system. On an intranet with 50 clients, our server barely blinked at requests from the clients. Tamino’s design is such that it makes extensive use of multi-threading, offering very good performance in multiprocessor machines and multithreaded operating systems. The system is a RAM hog, but that’s to be expected from something this complex. Besides, Tamino is aimed at large corporations that are not going to balk at spending thousands of dollars for a few gigabytes of RAM.
Administration and Security
For a tool of this complexity there is a need for simple management and security options to be employed. Management of the Tamino databases is relatively simple because of the Tamino Manager. Although a lot of the routine database management tasks that existing DBAs perform is not necessary because of the Manager’s abilities, there is still a need for routine administration. There is no need to set up complex structures to hold data, for example, because they are created automatically for you. The built-in capabilities in Tamino Manager allow for quick modifications to the underlying data structures without having performing tedious database updates. Administration and management tasks are all performed easily through browser interfaces.
Security is addressed in several ways with Tamino. The use of native operating system permissions is in place, as is using groups and domains under Windows NT. Tamino adds its own layer of security with authorization access routines. Behind the scenes, the transmitted data is kept secure using SSL, and there is support for different encryption and authentication systems like Kerberos.
Tamino is a huge, complex product but underneath it all there’s a simple design goal. We had no performance issues with Tamino on our two servers, and it didn’t crash a single time during our testing (despite some really stupid programming errors on our parts). Spending the kind of money Software AG wants for Tamino is limited to medium and large corporations, and takes Tamino completely out of the question for smaller companies.
As a competitor to other technologies like RDBMSs, Tamino can stand proud. It performed better than our Oracle server, and provided more flexibility than Oracle 8i. Having said that, the two products can fairly be argued as different from a fundamental point of view. If you look at just the Web access features, we preferred Tamino.
As we mentioned earlier Tamino is a real challenge to learn, especially in the early weeks. This is a long-term project for anyone, even experienced programmers and developers. The effort put into the system, though, could easily be rewarded by more flexible access to stored data. If you are curious about Tamino and what it can do for you, Software AG offers a Tamino Starter Kit to show the technology.