Intraspect - Object Oriented Databases vs Relational Databases
Object Oriented Database vs Relational Database
Intraspect
(Knowledge Management)
Intraspect developed their namesake Intraspect Knowledge Management System (IKMS) using Objectivity/DB. IKMS allows a company to manage its knowledge resources (group memory) by giving employees the ability to collect information, organize it, collaborate, and discover and reuse colleagues' work. Intraspect originally started using Objectivity/C++, but they are now porting their application to Objectivity for Java 1.0. Objectivity for Java deployment occurred December 15, 1997. Intraspect strategically chose to deploy on Objectivity C++ despite the fact they were really waiting for the Objectivity for Java binding. Almost all of the Objectivity C++ features are available in Objectivity for Java (the features that are not available are language difference features and do not make sense in Java). Intraspect and Objectivity are partnering tightly and working together towards successful deployment of Intraspect on Objectivity Java.
Some users of IKMS include: an oil company for engineering archive and information repository, a financial services company for software architecture planning and coordination, a high-technology company for software configuration knowledge base, some consulting companies for managing virtual teams and their re-useable knowledge repositories, a telecommunications company for competitive analysis, and a software company for RFP responses and field intelligence.
Intraspect chose Objectivity over ORDBMSs and other ODBMSs because it has features that are not available from other object databases. Objectivity's distribution and replication capabilities drove their selection. Objectivity allows them to "grow into" distributed database features and have Objectivity manage the distributed aspects of their application transparently via the Objectivity single logical view. Intraspect supports hundreds of simultaneous users in their first release, eventually supporting thousand of simultaneous users. Objectivity's replication and distribution features will allow them to split the load across multiple servers. The elegance of the Objectivity binding as well as the ability to perform distributed queries with the programmer abstracted from the location of the data is in large part why Intraspect choose Objectivity. "Simultaneous users" are simultaneously active users, not just logged-on users. Using Objectivity, performance scales linearly with database size. IKMS document objects are often composed of hundreds of Objectivity objects, because they are divided into segments. Documents can be of any type. A 10MB PowerPoint presentation, for example, is composed of 640 chunks and one "metadata" object. For every other type of object, each IKMS object is exactly one Objectivity object. Breaking an object into small chunks allows speedy network delivery and Objectivity page server technology complements this document packaging technique. The Objectivity paged memory cache allows sections of a document to be present in memory also increasing performance (a multi-megabyte document does not need to be entirely in memory before it can be used). The IKMS current container strategy is 1 container per document allowing any number of reader processes or threads and 1 concurrent update process or thread using the Objectivity MROW feature. Each user command (e.g. dragging a desktop file and dropping it into IKMS "group memory", sending an email message to one of the mailing lists IKMS maintains) is a separate transaction. Transactions are short-lived for most commands.
IKMS provides two means of accessing the data in their Knowledge Management system. Clients can use either a Java enabled Web-browser or, if the client is running on Windows, a stand-alone Microsoft Foundation Class Application which provides the same functionality. Objectivity is used only in the server currently. Objectivity for Java will allow IKMS to perform in-process multi-threading on the server. Pure preemptive multi-threading is important for performance (especially for a server application) and Objectivity seamlessly maps Java threads to database transaction threads. In-process multithreading allows the client to "reuse" an open connection to the federated database. Any thread, even new ones, can "reuse" the open connection because the federated database connection is a property of the process, not the thread.
Due to the complexity of the data model, IKMS clearly needed an object database. Documents in the database are highly interconnected. Whenever data is collected, IKMS finds all the contexts in which it is used and presents this information to the user. This allows the user to see how everyone in the Knowledge Management system takes advantage of the same information. This context management would be incredibly painful with a relational database. In addition, previous search results are saved persistently and presented whenever IKMS can ensure they are still accurate. Automatic persistent threading of messages also contributes to the complexity. IKMS also stores product version information persistently in Objectivity.
IKMS has proven that Objectivity could be integrated with the other products easily. IKMS integrates the Verity search engine, WC3 Webserver, a Microsoft Foundation Classes Windows application, an email server and a server written entirely in Java using Objectivity. In fact the entire application is written in Java, except for the C++ interface to Verity. The use of Objectivity is completely hidden and transparent, embedded inside the IKMS product. The Objectivity schema evolution feature gives Intraspect the flexibility to change their schema. In the Knowledge Management field, loss of information is unacceptable, yet customers must be able to take advantage of the latest engineering innovations of IKMS. Old data is never lost but brought into the new schema.
Online backup is important to IKMS. Intraspect has wrapped Objectivity's online backup facility into their own user interface so that the users can schedule regular backups without ever seeing an Objectivity program. Users can select the days and times when backups should occur, and IKMS makes a backup of the database in a directory in the file system. This happens while the server is running. The flexibility of the Objectivity 24 X 7 online backup facility allows this backup customization.

