Our current Multimedia application consists of following modules:

  Configurable interface
    Functionality:

This module provides graphical interface to the database data, allowing user to understand database structure, view database contents according to user-defined constraints and to applicate various voice/image processing algorithms to the multimedia data extracted from database. This interface can be configured to provide connection to either Informix or Jasmine based database with regards to user's selection; once configured, it attaches to itself other relevant modules. Note that right now image/voice processing algorithms are an integral part of the interface module for both database types; however, in the future they will resign as multimedia data methods of Jasmine object if Jasmine database is to be accessed.

    Interactions:

This module sends queries to database servers using appropriate database clients and receives flat text query results (for Informix DB) or object handle (for Jasmine DB). It is able to multimedia data and user permissions to the interaction server on its own initiative or upon request. It can request from structure server to read DB structure and has full access to this structure information afterwards.

  Interaction server
    Functionality:

This module allows users to work on multimedia objects simultaneously, using various tools such as line drawing, text writing, zoom, picture segmentation etc. These objects can be modified by anybody (shared object) or only by owner. Users are grouped by virtual rooms to which they enter.

    Interactions:

This module receives multimedia objects and (optionally) methods for accessing/processing their contents from interface module and can request limited data from it, such as user permissions, additional data for object already held.

  Database servers
    Functionality:

These modules are industrial database servers. Currently we have two such servers: Informix and Jasmine. They provide database repository for relational and object-oriented databases correspondingly.
    Interactions:

Database servers interact only with corresponding database clients; they receive queries in their native format and send results back to client. Each server resides on specific machine and it's client's responsibility to provide access to them. See multimedia database structure in Jasmine DB

  Database clients
    Functionality:

Database clients exist for two types of database servers (Informix and Jasmine) and provide connection to remote database, pass queries from interface module to server and pass query results from DB server to the interface module.
    Interactions:

Database client acts as a "tube" and is connected only to interface module and database repository.

  Structure server
    Functionality:

This module is a utility for database structure analysis, Jasmine database definition, reading database data from one type of database and storing it in another. Currently, Informix to Jasmine translation is implemented, but other database types can be added without affecting the existing ones. Reading from, translating and writing to database are separate parts, and the translator itself is a general component not binded to any of the database types. This means that if N reading and M writing methods are implemented, then M*N translations are possible.

    Interactions:

Structure server is activated from user interface and provides to it all knowledge about database structure upon request.

The application schema


*