One of the major requirements of multimedia applications is the ability to easily manipulate large amounts of complex data. An object oriented approach to the development of multimedia applications significantly reduces the complexity required to manage multimedia information. This paper describes how object oriented databases are relevant in the creation of multimedia applications. Issues relating to object oriented databases in the context of multimedia will be discussed in the following format: 1) A definition and brief description of object oriented databases, 2) The use of the features of object orientation (eg, inheritance, ,encapsulation) to assist in the development of multimedia applications, 3) Adding persistence (the reading and writing of multimedia data to the database, eg text, picture, sound and video), 4) The example of the document and its current uses in multimedia and suitability for modelling with object oriented databases. Engineering object oriented databases and their relevance to multimedia applications, 5) Future directions of multimedia software implementation. The paper will cover all of the above topics with the use of some multimedia application examples.
In the proceedings from the last symposium Dr Harry Edgar defined multimedia in terms of interactive media integration and described it as "the integration of audio, video, graphics, animation and text utilising the computer as a control and presentation platform in such a manner to have the potential to significantly enhance the learning and information environment" (IMMS, 1992). This paper discusses the storage of multimedia using object orientated databases.
A majority of current database systems are based around data with logic dispersed throughout a program that interrogates and updates the data according to the requirements of the particular system. The data is maintained independently (often in indexed tables) with control on data redundancy, sharing, integrity and recovery. In most current commercial database systems, data is usually a fixed length string or number. Generally simple relationships exist between the system's entities.
The majority of information storage is been centred around these current database systems, especially in commercial applications. However the requirements of engineering, multimedia and most future information systems is significantly different from the current database applications. For example it is highly likely tomorrow's banks will make use of sound and graphics for voice and signature recognition of clients when making transactions. How will these new data types affect their systems?
In most current engineering and multimedia systems, data is large, complex in structure and of variable length. Multimedia by definition can have many different forms. From a large scale video file through to a small picture that forms only part of a larger piece, multimedia applications have data types that are of widely varying size and form. The multimedia application itself is often very complex in the relationships it contains and its behaviour.
Future commercial information systems will continue to include integrated media (following the general rule that if the technology is financially and commercially viable it will be adopted), subsequently these systems will adopt many of the techniques currently being used in the areas of engineering and multimedia. Object oriented databases have a big contribution to make in this development and they are already widely used in engineering and multimedia systems.
Won Kim has a concise definition drawn from the book Introduction to Object Oriented Databases (Kim, 1990). An object oriented database is "a collection of objects whose behaviour and state, and the relationships are defined in accordance with an object oriented data model." Object oriented databases have the ability to normalise the logic of a system as well as its data.
Won Kim mentions five core modelling concepts that form the basis of an object oriented database. These are :
The object identifier is important in defining relationships between one object and another. This relationship is defined in terms of referencing through an objects object identifier. By using object identifiers it is possible to navigate around a complex structure of objects.
An object identifier can however be used to deal with non-navigational manipulation of objects. Many object oriented databases now support non-navigational manipulation. The Versant object oriented database management system (OODBMS) has Object SQL, which is an SQL based manipulation language that maintains the basic SQL structures.
In a traditional database system entity-relationship schema no distinction can be made between the relationships that are internal to an object and should be hidden and relationships that are public and external that can be shared. Relational databases have difficulty modelling a hierarchy which inheritance achieves. Every level in the hierarchy requires a new table and when an update is carried out all tables need to be changed appropriately.
However there are programming language extensions to relational database systems that allow object oriented requests to be carried out such as in the POSTGRES system.
There are some object oriented languages that have persistence as part of the language, eg, Galileo. The C++ language requires persistence to be created by the programmer. All object oriented databases that use C++ must add their own form of persistence.
A C++ implementation of persistence is based along the following lines. A persistent object will retrieve a copy of itself when it is declared. The best place to do this in C++, would be in the class constructor. The object will write itself to the disk before it goes out of scope. In C++, the best place to do this would be in the class destructor.
If inheritance is to be included, a relationship has to be formed m the inheritance structure between the base class and its derived class. It is necessary to provide communication between the derived class and the base class. The derived class identifies itself to the base class and supplies type and size information , the base class acts upon this information and stores and retrieves from disk.
The ObjectStorer base class described below, uses pure virtual functions. These are methods (services) that need to be redefined by the derived class before it can be instanciated. This ensures that the base class finds the class id of the derived class and what it needs to read and write from disk. The derived class calls the base class when updates are required and information is passed between the two classes to work out what needs to be read or stored from disk.
class ObjectStorer {... // To be provided by derived class virtual int ClassIdentification() = 0; virtual void WriteObject() = 0; virtual void ReadObject() = 0; .... }The Person class inherits (is derived) from the ObjectStorer base class. By redefining the WriteObject and ReadObject pure virtual functions the Person object is able to be read and written to disk when it is created or destroyed. By redefining ClassIdentification the persistent base class can locate the derived class instance.
// Person class class Person : public ObjectStorer { .... }The above example is a simplified version based on an article by Al Stevens (1992).
By adding simple persistence you don't necessarily get an object oriented database. As Tom Love points out there are many other requirements that are necessary before a database can become commercially viable (Love, 1993). There are requirements for system backup, restart/ recovery, concurrency control data (object) distribution, query facilities (eg, SQL, security, integrity and the ability to handle schema modification.
A recent project that deals with object oriented databases and distribution of data (or objects), is the Zenith distributed multimedia information system (Davies et al, 1993). Zenith is based around the ANSA computational model which treats all entities as objects, with the objects being accessed through interfaces which operate and constrain an objects invocation. The invocation of the object is carried out by the passing of messages. There are many considerations that need to be dealt with when dealing with distributed objects. In particular there is a need for transparent migration of objects, transparent persistence of objects and access security on objects.
With all distributed object oriented database systems there is a need for class checking. This is required to deal with partial system failure and the requirement if this occurs to mask out the affected objects. An objects class needs to be determined for it to be masked out. Inheritance also produces problems for distributed systems as run time class hierarchy navigation has been found to be too slow. This traditionally acceptable form of object orientation has proven to be difficult to implement on distributed object oriented database systems (Blair & Lea, 1992).
Despite the complexity of a distributed multimedia system , it is worth noting that an audio/video conferencing system and a multimedia Presentation system have been developed using Zenith (Davies et al, 1993).
Borland, one of the world's largest software companies recently announced its Object Exchange technology (OBEX). This technology allows documents and other information to be treated as an object and given the ability to be translated across applications and networks. This development provides an example of how workgroup or office computing is increasing in complexity while providing an environment that is easier for the user to work within. It is highly likely that this type of computing will become more complex and more popular over time. The problem remains however that the storage of these types of documents is inefficient using traditional databases.
On the other hand, object oriented databases are well suited to handling the complexities of multimedia applications and the information contained within these applications. They have the ability to easily model and access the complex structure of a document as well as having the ability to handle many different versions of the same document.
In their 1986 article "An object oriented approach to multimedia databases", Woelk, Kim and Luther proposed - "Objects in a multimedia database have various properties and participate in a number of relationships with other objects. We have found that by generalisation the basic notions of objects (instantiation and generalisation), and augmenting them with the notions of aggregation (an object contains other objects) and relationships (an object is related to another object), we can capture the data modelling requirements of multimedia applications" (Woelk, Kim & Luther, 1986).
A document can consist of any combination of paragraphs, drawings, sound files, etc. Through inheritance, it is possible to represent the way the parts of a document are constructed. At each level of an inheritance hierarchy the class represents an abstraction of all classes that exist on the next level down. A paragraph is composed of sentences, which and made up of words, which in turn contain characters.
Complex multimedia types within the document can be grouped together in one area and are able to be broken down into their individual component parts using aggregation. For example, a drawing could be composed of shapes which can be broken into lines, colours, and other shapes. By implementing the object oriented technique of aggregation, all the various parts of a document can be modelled.
Through the use of an object identifier it is possible to navigate through the document, to access and interrogate objects. This type of access can consist of accessing objects through their class, accessing objects through the inheritance hierarchy, and access through relationships between objects.
The Windows concept of object linking and embedding OLE 1.0 can be represented in an object oriented database by using sharing by reference. This is when a user wishes to include an object in a document and wants only the most recent version of the object to be displayed.
Given that the area of multimedia object oriented databases is continuing to grow and expand, it is well worth looking at existing engineering systems that use object oriented database technology in a new and innovative way. There is much to be learned from an examination of these systems from the point of view of potential ideas and approaches for future multimedia systems.
The QBin program is a 3D seismic tapered binning program. The program uses sophisticated graphics to show what traces are present in individual bins.
The Acumen part of the system processes data as it is acquired, while carrying out error corrections in real time. The data is received from many different sources including radio, long baseline acoustic receivers, laser, and GPS receivers and streamers. The output from the Acumen system is online and includes the position of active source and vessel reference point in three coordinate systems. Statistical analysis and computations are performed on tho information received. Full streamer and source graphics including streamer and source shapes, LOPs and node positions. There is much more information produced by this system. From a multimedia point of view it is worth noting that the objects are represented graphically online as they are being processed and streamed to disk.
Using object orientation this representation is enabled by defining object behaviour and representing this graphically. The online graphical representation of objects has a wide application in multimedia. In this case a large amount of diverse information is able to be translated into a comprehensible representation of what is happening. The Acumen program works as follows :
It reads real time navigation data from up to eight serial ports continuously; the amount of data varies but a typical figure would be 10 kB every 5 seconds. The program cycles once per seismic shot, which is typically every 8-9 seconds. The incoming data is formatted into an object which is then stored into a file and sent to the processing module. The processing module decodes the incoming object record and splits it into several matrices which are used as entry points into a Kalman filter.In many respects this system can be seen as an object oriented database system with intricate processing and locking functionality. It is a specialised, highly efficient system that carries out real time processing and mass storage of information. Like the ACUMEN application many multimedia systems are specialised in what they do and require their own type of functionality (Loweth, 1993).Once the data has successfully been computed and adjusted using the filter, we end up with a vector of polynomial coefficients for each streamer and for each source array, as well as an absolute position for the vessel and its course and speed.... For each shot the size of the output record is about 10 kB, resulting in two 10 MB files for a typical 100-shot line. The system actually completes a whole cycle in about 1.5 seconds for a typical dataset. The key to the speed of operation is in the careful use of pointers to objects (and the new and delete operators) together with the overloaded input and output operators. The use of these operators was found to decrease overhead considerably.
So the object architecture of Realize focuses on the ability to encapsulate complex processing capabilities within objects, and to provide a model environment in which these objects can be invoked to deliver the required capabilities transparently to the user; ie, at database level. This makes it possible for Realize to implement knowledge and rules based processing and to address the requirements of project automation systems.
Among the capabilities of a Realize object is the ability to evaluate the current state of other objects from which it has been defined, and to maintain its own status as current. This process may involve the creation or updating of a sub model which may represent an expansion or transformation of the original object. Thus an object may be given a capability to project itself forward to a more detailed level of model definition, which could represent a later stage of a physical project (Wittenoom, 1993).
Encapsulation is supported in Powerbuilder in that each window encapsulates the interface elements within it. A push button can Only be referenced by first referencing the window that contains the push button.
Inheritance is supported by Powerbuilder in that all windows can inherit from other Windows. In addition there is the concept of a user object that can be built up from any of the visual or non-visual Powerbuilder objects. All user objects can inherit from all other user objects therefore providing the functionality to build an object oriented hierarchy for any application.
Although Powerbuilder currently only provides connectivity to conventional databases, it is anticipated that connectivity to OODBMS will be provided in the near future. This is a trend that seems to be emerging with most of the front end development tools.
The GEL language (Gain Extension Language) that is built into GAIN allows multimedia object manipulation. GEL also allows the execution of full SQL statements. Data managers then work to retrieve information from the SQL databases.
As the GAIN Momentum product is based around an object oriented database, it is able to perform exceptionally well when handling complex data. For instance GAIN can handle live video feeds. This type of data input is large and of an indeterminate size making it well suited to being stored in an OODBMS.
The GAIN products will be used in the forthcoming Football World Cup. GAIN will be used to provide everything from security through to multimedia information kiosks.
Object oriented databases provide sophisticated modelling techniques that are important in many multimedia applications. This is carried out by using the object oriented techniques like encapsulation and inheritance. OODBMS are able to handle complex data types and data that is of variable length.
Through sophisticated modelling the maintainability of multimedia object oriented database applications is reduced dramatically.
A document is well suited to being treated as an object and modelled using object oriented techniques. Object oriented databases are ideal for handling all document types including documents containing complex data. The storage of multimedia documents using object oriented databases is an area that may expand at a previously unexpected rate.
Davies, N., Davy, M., Blair, G. S. and Mariani, L. A. (1993). Object invocation and management in the Zenith distributed multimedia information system. Information and Software Technology, 35(5), 259-266.
IMMS (1992). Proceedings of the International Interactive Multimedia Symposium 1992. Perth: Promaco Conventions. http://www.aset.org.au/confs/iims/1992/iims92-conts.html
Kim, W. (1990). Introduction to object oriented databases. The MIT Press.
Love, T. (1993). Object lessons (Lessons learned in object oriented development projects). SIGS Books Inc.
Loweth, Roger (1993). Letter from the QSEA Company Pty Ltd. (Explanation of the ACUMEN and QBIN systems). 27th Oct.
Reinhardt, A. (1993). Video conquers the desktop. Byte, Sep, 64-80.
Stevens, A. (1992). Persistent objects in C++. Dr Dobb's Journal, December, 34-44.
Wittenoom, Richard (1993). Letter from Richard Wittenoom & Associates Pty Ltd. 11th Nov.
Woelk, D., Kim, W. and Luther, W. (1986). An object oriented approach to multimedia databases. In Stanley B. Zdonik, & David Maier (Eds), Readings in object oriented database systems. Morgan Kaufmann Publishers, Inc, 1990. pp592-606.
Author: Mr Thomas Picton-Warlow, Analyst Programmer, The University of Western Australia, Nedlands WA 6009. Tel: 09 380 2611 Fax: 09 382 1688 Email: picton@uniwa.uwa.edu.au Please cite as: Picton-Warlow, T. (1994). A multimedia view of object oriented databases. In C. McBeath and R. Atkinson (Eds), Proceedings of the Second International Interactive Multimedia Symposium, 430-435. Perth, Western Australia, 23-28 January. Promaco Conventions. http://www.aset.org.au/confs/iims/1994/np/picton-warlow-t.html |