An object-oriented database integrated with a multimedia development system
In 1995, most vendors and industry analysts scoffed at Computer Associates (CA) when it staked out a position in the pure object database management system (ODBMS) market. Vendors and analysts embraced a hybrid object-relational database management system (ORDBMS), which became the basis for the universal ORDBMSs of Oracle, IBM, Sybase, and Informix. Despite the opposition and the acquisition of the Ingres relational database management system (RDBMS), CA (with the help of Fujitsu) pushed forward and created a new ODBMS product, Jasmine: Objects @ Work.
Since Jasmine's debut in December 1997, CA has billed the product as a complete "object database in a kit" application development environment for building dynamic, multimedia client/server and Internet applications. CA's highly multimedia-centric marketing approach (CA even uses media jargon, such as scenes instead of forms or pages) puzzled me at first. But then I figured out the reason: CA's initial target is organizations that want to build new Web or kiosk applications, especially those organizations that don't have massive databases but want 24 * 7 support.
At first glance, you might think that this market differs greatly from CA's traditional customer base of large multinational companies with mainframes. However, many of those FORTUNE 500 firms are building new intranet and extranet applications. For those firms that aren't building such applications, CA has made sure Jasmine also supports classic client/server application development.
Traditional customers will likely use Jasmine to develop client/server multimedia applications, such as electronic catalogs on CD-ROM. Nontraditional customers will likely use Jasmine to develop Web-based applications, such as electronic commerce applications on the Internet. No matter whether customers fall into the traditional or nontraditional category, they need to know about Jasmine's pure object technology, architecture, system setup, features (such as extensible classes, easy-to-run queries, and WebLink), and downfalls.
Pure Object Technology
As Table 1 (page 80) shows, RDBMSs and ODBMSs differ in many respects. One of the most important differences concerns how they organize data. Unlike an RDBMS, which organizes data into tables, an ODBMS organizes objects hierarchically based on object templates called classes. In other words, an ODBMS integrates object-oriented technology capabilities with database capabilities. (ORDBMSs aren't included in Table 1 because they typically have the same traits as RDBMSs.)
Jasmine, like most ODBMSs, combines traditional data (such as names and phone numbers) with multimedia data (such as photographs and sound files) to form business objects. Just as in other object-oriented technology, each business object has properties, which help define the object, and methods, which define the way in which an object interacts with users, applications, and other objects.
Architecture
Jasmine features a multithreaded, modular architecture. As Figure 1 (page 80) shows, the architecture is open. Computer Associates has designed Jasmine as an open system that can run within the component object model (COM) or Common Object Request Broker Architecture (CORBA) environments. Programmers can use tools as diverse as scripting languages, Java, and ActiveX controls to create Jasmine objects. Jasmine consists of several components.
Jasmine object database server. This server is the Jasmine object engine that features integrated database management functions. It stores and performs database methods.
Jasmine Studio. Although Jasmine hasn't been in existence long, you might run into terminology that is now obsolete. For example, Jasmine Application Development Environment (JADE) and Jasmine Application Development System (JADS) are early names for what is now called Jasmine Studio. You use the Jasmine Studio integrated development environment (IDE) to create Jasmine applications and access the Jasmine database and to browse, inspect, edit, and create objects, classes, and class families. Jasmine Studio has an interactive GUI that lets you use point-and-click or drag-and-drop operations to manipulate applications, databases, and classes. You must connect Jasmine Studio, which runs under Windows 95 or Windows NT to the NT- or Solaris-based Jasmine database server.
Jasmine store. This store is a physical data container within the Jasmine database. It stores both traditional and multimedia data.
Jasmine client. The client is the environment in which you run Jasmine applications. You can run applications on standalone systems, client/server systems, extranets, intranets, and the Internet.
Jasmine class libraries. The Jasmine class libraries contain predefined class families, such as the multimedia and SQL class families. To extend the class libraries, you can create new classes and class families or purchase them from many third-party vendors. (For a list of these vendors, see the Windows NT Magazine Web site at http://www.winntmag.com.)
Jasmine API. You can use this set of function calls to manipulate the Jasmine database. You can use several programming languages, including C and C++.
Java Bindings. You can use the Jasmine-centric Java proxies (jP) approach or the Java-centric persistent Java (pJ) approach to combine Java with Jasmine. In the jP approach, you define classes within Jasmine and then use a simple utility to export those classes into Java. In the pJ approach, the Java files contain the class definitions. You run a pair of utilities to make those classes persist in Jasmine.
Jasmine ActiveX. This facility works with Visual Basic (VB). It also works with any development environment that supports ActiveX.
Jasmine plugin. This Web-browser plugin lets users run Jasmine applications through the Web. The plugin also lets users access the Jasmine database through the Web.
WebLink. This HTML toolkit lets you access Jasmine objects from standard HTML pages on the Web without the Jasmine plugin. Common Gateway Interface (CGI) and Netscape API (NSAPI) interfaces are available; the Internet Server API (ISAPI) interface is under development.
Relational data access. This set of predefined SQL classes lets Jasmine applications access and manipulate data in other databases. The SQL classes use native drivers to integrate with traditional database systems (including Sybase's Adaptive Server Enterprise and Microsoft's SQL Server) and mainframe-based databases (including CA's CA-IDMS and IBM's DB2). You can also use third-party data-access middleware. For example, ISG offers ISG Navigator, which provides OLE DB, Open Database Connectivity (ODBC), and Java Database Connectivity (JDBC) interfaces for NT. CA expects to have integrated the ISG interfaces into the 1.2 release early in the second quarter of 1998.