1 Introduction to Oracle interMedia

Oracle interMedia ("interMedia") is a feature that enables Oracle Database to store, manage, and retrieve images, audio, video, or other heterogeneous media data in an integrated fashion with other enterprise information. Oracle interMedia extends Oracle Database reliability, availability, and data management to multimedia content in traditional, Internet, electronic commerce, and media-rich applications. Oracle interMedia does not control media capture or output devices; this function is left to application software.

interMedia manages multimedia content by providing the following:

interMedia provides media content services to Oracle JDeveloper, Oracle Content Management SDK, Oracle Application Server Portal, and Oracle partners. This guide describes the management and integration of audio, image, and video, or other heterogeneous media data with other Oracle tools and software, as well as with third-party tools and software.

1.1 Object Relational Technology

Oracle Database is an object relational database management system. This means that in addition to its traditional role in the safe and efficient management of relational data, it provides support for the definition of object types, including the data associated with objects and the operations (methods) that can be performed on them. Object relational technology includes integral support for BLOBs to provide the basis for adding complex objects, such as digitized audio, image, and video, to databases.

Within interMedia, audio data characteristics have an object relational type known as ORDAudio, heterogeneous data characteristics have an object relational type known as ORDDoc, image data characteristics have an object relational type known as ORDImage, and video data characteristics have an object relational type known as ORDVideo. All four types store data source information in an object relational type known as ORDSource.

See the following references for extensive information about using BLOBs and BFILEs:

See Oracle interMedia Reference for more information about the multimedia object types and methods, and for more information about the ORDSource object type and methods.

1.2 interMedia Capabilities

The capabilities of interMedia include the storage, retrieval, management, and manipulation of multimedia data managed by Oracle Database.

Multimedia applications have common and unique requirements. interMedia object types support common application requirements and can be extended to address application-specific requirements. With interMedia, multimedia data can be managed as easily as standard attribute data.

interMedia is accessible to applications through both relational and object interfaces. Database applications written in Java, C++, or traditional third-generation languages (3GLs) can interact with interMedia through modern class library interfaces, or PL/SQL and Oracle Call Interface (OCI).

interMedia supports storage of the popular file formats, including desktop publishing images, and streaming audio and video formats in databases. interMedia provides the means to add audio, image, and video, or other heterogeneous media columns or objects to existing tables, and insert and retrieve multimedia data. This enables database designers to extend existing databases with multimedia data, or to build new end-user multimedia database applications. interMedia developers can use the basic functions provided here to build specialized multimedia applications.

interMedia uses object types, similar to Java or C++ classes, to describe multimedia data. These object types are called ORDAudio, ORDDoc, ORDImage, and ORDVideo. An instance of these object types consists of attributes, including metadata and the media data, and methods. Media data is the actual audio, image, or video, or other heterogeneous media data. Metadata is information about the data, such as object length, compression type, or format. Methods are procedures that can be performed on the object, such as getContent( ) and setProperties( ).

The interMedia objects have a common media data storage model. The media data component of these objects can be stored in the database, in a BLOB under transaction control. The media data can also be stored outside the database, without transaction control. In this case, a pointer is stored in the database under transaction control, and the media data is stored in:

  • File-based large object (BFILE)

  • An HTTP server-based URL

  • A user-defined source on a specialized media data server, or other server

Media data stored outside the database can provide a convenient mechanism for managing large, existing or new, media repositories that reside as flat files on erasable or read-only media. This data can be imported into BLOBs at any time for transaction control. Section 1.8 describes several ways of loading multimedia data into a database.

Media metadata is stored in the database under interMedia control. Whether media data is stored within or outside the database, interMedia manages metadata for all the media types and may automatically extract it for audio, image, and video. This metadata includes the following attributes:

  • Storage information about audio, image, and video, or other heterogeneous media data, including the source type, location, and source name, and whether the data is stored locally (in the database) or externally

  • Update time stamp information for audio, image, and video, or other heterogeneous media data

  • Audio and video data description

  • Audio, image, and video, or other heterogeneous media data format

  • MIME type of the audio, image, and video, or other heterogeneous media data

  • Audio characteristics: encoding type, number of channels, sampling rate, sample size, compression type, and play time (duration)

  • Image characteristics: height and width, image content length, image content format, and image compression format

  • Video characteristics: frame width and height, frame resolution, frame rate, play time (duration), number of frames, compression type, number of colors, and bit rate

  • Extracted metadata in XML, such as the director or producer of a movie

In addition to metadata extraction methods, a minimal set of image manipulation methods is provided. For images, this includes performing format conversion, page selection, and quantize operations, and compression, scaling, cropping, copying, flipping, mirroring, rotating, and adjusting the gamma (brightness) of images.

interMedia is extensible. It supports a base set of popular audio, image, and video data formats for multimedia processing that also can be extended, for example, to support additional formats, new digital compression and decompression schemes (codecs), data sources, and even specialized data processing algorithms for audio and video data. See Chapter 7 for more information about extending interMedia.

interMedia is a building block for various multimedia applications rather than being an end-user application. It consists of object types along with related methods for managing and processing multimedia data. Some example applications for interMedia are:

  • Repositories for digital check images

  • Electronic health records, including DICOM medical images

  • Call centers (for example, 911 and product call centers)

  • Physical asset inventories

  • Distance learning and online learning

  • Real estate marketing

  • Stock photography archives (for example, digital art galleries and professional photographers)

  • Document imaging archives

  • Financial news service customer information

  • Web publishing

  • Audio and video Web stores

1.3 Audio Concepts

This section contains information about digitized audio concepts and using the ORDAudio object type to build audio applications or specialized ORDAudio objects.

1.3.1 Digitized Audio

ORDAudio integrates the storage, retrieval, and management of digitized audio data in a database.

Audio may be produced by an audio recorder, an audio source such as a microphone, digitized audio, other specialized audio recording devices, or even by program algorithms. Audio recording devices take an analog or continuous signal, such as the sound picked up by a microphone or sound recorded on magnetic media, and convert it into digital values with specific audio characteristics such as format, encoding type, number of channels, sampling rate, sample size, compression type, and audio duration.

1.3.2 Audio Components

Digitized audio consists of the audio data (digitized bits) and attributes that describe and characterize the audio data. Audio applications sometimes associate application-specific information, such as the description of the audio clip, date recorded, author or artist, and so forth, with audio data by storing descriptive text in an attribute or column in the database table.

The audio data can have different formats, encoding types, compression types, numbers of channels, sampling rates, sample sizes, and playing times (duration) depending upon how the audio data was digitally recorded. ORDAudio can store and retrieve audio data of any supported data format. ORDAudio can automatically extract metadata from audio data of a variety of popular audio formats. ORDAudio can also extract application attributes and store them in the comments field of the object in XML form. See Oracle interMedia Reference for a list of supported data formats from which ORDAudio can extract and store attributes and other audio features. ORDAudio is extensible and can be made to recognize and support additional audio formats.

The size of digitized audio (number of bytes) tends to be large compared to traditional computer objects, such as numbers and text. Therefore, several encoding schemes are used that squeeze audio data into fewer bytes, thus putting a smaller load on storage devices and networks.

1.4 ORDDoc or Heterogeneous Media Data Concepts

This section contains information about heterogeneous media data concepts and using the ORDDoc object type to build applications or specialized ORDDoc objects.

1.4.1 Digitized Heterogeneous Media Data

ORDDoc integrates the storage, retrieval, and management of heterogeneous media data in a database.

The ORDDoc type can store any heterogeneous media data including audio, image, and video data in a database column. Instead of having separate columns for audio, image, text, and video objects, you can use one column of ORDDoc objects to represent all types of multimedia.

1.4.2 Heterogeneous Media Data Components

Heterogeneous media data components consist of the data (digitized bits) and attributes that describe and characterize the heterogeneous media data.

Heterogeneous media data can have different formats, depending upon the application generating the media data. interMedia can store and retrieve media data of any supported data format. The ORDDoc type can be used in applications that require you to store different types of heterogeneous media data (such as audio, image, video, and any other type of media data) in the same column so you can build a common metadata index on all the different types of media data. Using this index, you can search across all the different types of heterogeneous media data. Note that you cannot use this same search technique if the different types of heterogeneous media data are stored in different types of objects, in different columns of relational tables.

ORDDoc can automatically extract metadata from data of a variety of popular audio, image, and video data formats. ORDDoc can also extract application attributes and store them in the comments attribute of the object in XML form. See Oracle interMedia Reference for a list of supported data formats from which interMedia can extract and store attributes. ORDDoc is extensible and can be made to recognize and support other heterogeneous media data formats.

1.5 Image Concepts

This section contains information about digitized image concepts and using the ORDImage object type to build image applications or specialized ORDImage objects.

1.5.1 Digitized Images

ORDImage integrates the storage, retrieval, and management of digitized images in a database.

ORDImage supports two-dimensional, static, digitized raster images stored as binary representations of real-world objects or scenes. Images may be produced by a document or photograph scanner, a video source such as a digital camera or VCR connected to a video digitizer or frame grabber, other specialized image capture devices, or even by program algorithms. Capture devices take an analog or continuous signal such as the light that falls onto the film in a camera, and convert it into digital values on a two-dimensional grid of data points known as pixels. Devices involved in the capture and display of images are under application control.

1.5.2 Image Components

Digitized images consist of the image data (digitized bits) and attributes that describe and characterize the image data. Image applications sometimes associate application-specific information, such as the name of the person pictured in a photograph, description of the image, date photographed, photographer, and so forth, with image data by storing this descriptive text in an attribute or column in the database table.

The image data (pixels) can have varying depths (bits per pixel) depending on how the image was captured, and can be organized in various ways. The organization of the image data is known as the data format. ORDImage can store and retrieve image data of any data format. ORDImage can process and automatically extract properties of images of a variety of popular data formats. See Oracle interMedia Reference for a list of supported data formats for which ORDImage can process and extract metadata. In addition, certain foreign images (formats not natively supported by ORDImage) have limited support for image processing. See Oracle interMedia Reference for more information.

The storage space required for digitized images can be large compared to traditional attribute data such as numbers and text. Many compression schemes are available to squeeze an image into fewer bytes, thus reducing storage device and network load. Lossless compression schemes squeeze an image so that when it is decompressed, the resulting image is bit-for-bit identical with the original. Lossy compression schemes do not result in an identical image when decompressed, but rather, one in which the changes may be imperceptible to the human eye. As compared with lossless schemes, lossy schemes generally provide higher compression.

Image interchange format describes a well-defined organization and use of image attributes, data, and often compression schemes, allowing different applications to create, exchange, and use images. Interchange formats are often stored as disk files. They may also be exchanged in a sequential fashion over a network and be referred to as a protocol. There are many application subdomains within the digitized imaging world and many applications that create or utilize digitized images within these. ORDImage supports storage and retrieval of all image data formats, and processing and attribute extraction of many image data formats (see Oracle interMedia Reference).

1.5.3 Metadata in Images

Oracle Database 10g, Release 2 adds an image metadata feature to interMedia. The Metadata feature enhances the current behavior of the interMedia ORDImage object type by adding the ability to read (or extract) and write (or embed) application metadata in images. In addition, this feature adopts a standard way to represent metadata when it is separate from an image file. Metadata can be stored in a database, indexed, searched, and made available to applications using the standard mechanisms of Oracle Database.

See Chapter 5 for more information about the Metadata feature.

Oracle Database 10g, Release 2 also adds the Digital Imaging and Communications in Medicine (DICOM) feature to interMedia. The DICOM feature enhances the current behavior of the interMedia ORDImage object type by allowing interMedia to recognize standalone DICOM objects and extract a subset of embedded DICOM attributes relating to patient, study, and series.

See Chapter 5 for more information about the DICOM feature.

1.5.4 Metadata Extraction

interMedia provides the ability to extract content and format metadata from media sources (audio and video files), and collects and organizes this metadata as an XML formatted CLOB. Once metadata has been extracted and stored, you can index the metadata for powerful full text and thematic media searches using Oracle Text. Thus, the database can be queried to locate the media data based on the metadata extracted from the media. See the setProperties( ) method in Oracle interMedia Reference for more information.

1.5.5 Image Processing

interMedia supports image processing, such as image format transcoding, image cutting, image scaling, and generating thumbnail images. In addition, specifically when the destination image file format is RAW Pixel (RPIX) format or Microsoft Windows Bitmap (BMPF) image format, interMedia supports a variety of operators for changing the format characteristics. See Oracle interMedia Reference for more information.

1.5.6 Content-Based Retrieval of Images

Content-based retrieval of images with extensible indexing is supported for image matching. An overview of the benefits of content-based retrieval is described in Chapter 6 along with how content-based retrieval works, including definitions and explanation of the visual attributes (color, texture, shape, and location) and why you might emphasize specific attributes in certain situations. In addition, the use of indexing to improve search and retrieval performances is described in Section 6.4 in that chapter.


Note:

All interMedia features are available with the Standard Edition of Oracle Database, except image indexing, which uses the ORDImageSignature object. The image indexing feature requires bit-mapped indexing, which is available only when you install the Enterprise Edition of Oracle Database.

1.5.7 SQL/MM Still Image Standard Support

interMedia also provides support for the first edition of the ISO/IEC 13249-5:2001 SQL MM Part5:StillImage standard (commonly referred to as the SQL/MM Still Image standard), which includes these object relational types for image characteristics: SI_StillImage, SI_AverageColor, SI_Color, SI_ColorHistogram, SI_FeatureList, SI_PositionalColor, and SI_Texture.

The following ORDImage features are not specified by the SQL/MM Still Image Standard, and therefore are not available for StillImage objects:

  • Storing image data outside the database

  • Image processing operations (such as scaling up, compressing, and so on) that are specific to ORDImage

  • Java client API

In addition, the following image-matching features are not specified by the SQL/MM Still Image Standard, and therefore are not available for StillImage objects:

  • Image matching based on shape

  • Indexing (averagecolor, texture, positionalcolor, and colorhistogram)

Finally, the SI_Score methods do not provide the same performance as the interMedia ORDImageSignature methods for image matching.

See Oracle interMedia Reference for more information about the SQL/MM Still Image Standard object types. The remainder of this chapter applies to the ORDAudio, ORDVideo, ORDDoc, ORDImage, and ORDSource object types.

1.6 Video Concepts

This section contains information about digitized video concepts and using ORDVideo to build video applications or specialized ORDVideo objects.

1.6.1 Digitized Video

ORDVideo integrates the storage, retrieval, and management of digitized video data in a database.

Video may be produced by a video recorder, a video camera, digitized animation video, other specialized video recording devices, or even by program algorithms. Some video recording devices take an analog or continuous signal, such as the video picked up by a video camera or video recorded on magnetic media, and convert it into digital values with specific video characteristics such as format, encoding type, frame rate, frame size (width and height), frame resolution, video length, compression type, number of colors, and bit rate.

1.6.2 Video Components

Digitized video consists of the video data (digitized bits) and the attributes that describe and characterize the video data. Video applications sometimes associate application-specific information, such as the description of the video training tape, date recorded, instructor's name, producer's name, and so forth, within the video data.

The video data can have different formats, compression types, frame rates, frame sizes, frame resolutions, playing times, compression types, number of colors, and bit rates depending upon how the video data was digitally recorded. ORDVideo can store and retrieve video data of any supported data format. ORDVideo can:

  • Automatically extract metadata from video data of a variety of popular video formats

  • Extract application attributes and store them in the comments attribute of the object in XML form

    See Oracle interMedia Reference for a list of supported data formats from which interMedia can extract and store attributes and other video features/

  • Be made to recognize and support additional video formats (because it is extensible)

The size of digitized video (number of bytes) tends to be large compared to traditional computer objects, such as numbers and text. Therefore, several encoding schemes are used that squeeze video data into fewer bytes, thus putting a smaller load on storage devices and networks.

1.7 Multimedia Storage and Querying

Media can be stored in interMedia object types, or directly in BLOBs or BFILEs. You will realize the most benefit by storing media in interMedia object types. However, many of the features of interMedia are available to media stored in BLOBs and BFILEs using the relational interface.

The interMedia relational interface lets developers use static methods of interMedia object types with existing and new media stored in BLOBs and BFILEs. Specifically, developers can move media data between the local file system and the database; parse and extract the properties of the media data; and store these properties in an XMLType or an XML formatted CLOB, and optionally, in individual relational columns. Developers are not required to make changes to their existing application schema or to instantiate interMedia object types to take advantage of this relational interface. interMedia static methods can also be used to perform image processing operations such as cut, scale, compress, and convert format. See Oracle interMedia Reference for more information.

The ORDAudio, ORDDoc, ORDImage, and ORDVideo object types all contain an attribute of type ORDSource and methods for multimedia data source manipulation.


Note:

ORDSource methods should not be called directly. Instead, invoke the wrapper method of the media object corresponding to the ORDSource method. This information is presented for users who want to write their own user-defined sources.

1.7.1 Storing Multimedia Data

interMedia can store multimedia data as an internal source within the database, under transactional control as a BLOB. It can also externally reference digitized multimedia data stored as an external source in an operating system-specific file in a local file system, as a URL on an HTTP server, or as a user-defined source on other servers, such as media servers. Although these external storage mechanisms are particularly convenient for integrating existing sets of multimedia data with a database, the multimedia data will not be under transactional control if it is not stored in the database.

BLOBs are stored in the database tablespaces in a way that optimizes space and provides efficient access. Large BLOBs may not be stored inline (BLOBs under 4 kilobytes can be stored inline) with other row data. Depending on the size of the BLOB, a locator is stored in the row and the actual BLOB (up to 4 gigabytes) is stored in other tablespaces. The locator can be considered a pointer to the actual location of the BLOB value. When you select a BLOB, you are selecting the locator instead of the value, although this is done transparently. An advantage of this design is that multiple BLOB locators can exist in a single row. For example, you might want to store a short video clip of a training tape, an audio recording containing a brief description of its contents, a syllabus of the course, a picture of the instructor, and a set of maps and directions to each training center all in the same row.

Because BFILEs are not under the transactional control of the database, users could change the external source without updating the database, thus causing an inconsistency with the BFILE locator. See Oracle Database Application Developer's Guide - Large Objects and Oracle Call Interface Programmer's Guide for detailed information about using BLOBs and BFILEs.

interMedia ORDAudio, ORDDoc, ORDImage, and ORDVideo object types provide wrapper methods to do the following:

  • Set the source of the data as local or external

  • Modify the time an object was last updated

  • Set information about the external source type, location, and name of the data

  • Transfer data into or out of the database

  • Obtain information about the local data content such as its length, location, or its handle to the BLOB, put the content into a temporary BLOB, or delete it

  • Access source data by opening it, reading it, writing to it, trimming it, and closing it

1.7.2 Querying Multimedia Data

Once stored within a database, multimedia data can be queried and retrieved by using the various alphanumeric columns or object attributes of the table to find a row that contains the desired data. For example, you can select a video clip from the Training table where the course name is 'Oracle Database Concepts'.

Multimedia data can be queried by extracted metadata, by other relational table columns, and by content, such as image content-based retrieval with optional specialized indexing.

1.8 Loading Multimedia Data

Multimedia data can be managed best by Oracle Database. Your multimedia data should be loaded into the database to take advantage of its reliability, scalability, availability, and data management capabilities. To bulk load multimedia data into the database, you can use:

  • SQL*Loader

    SQL*Loader is an Oracle utility that lets you load data, and in this case, multimedia data (LOB data), from external multimedia files into a table of a database containing interMedia object type columns.

  • PL/SQL

    A procedural extension to SQL, PL/SQL is an advanced fourth-generation programming language (4GL) of Oracle. You can write PL/SQL procedures to load multimedia data from BLOB, file system, and URL media data sources into interMedia object type columns.

An advantage of using SQL*Loader is that it is easy to create and test the control file that controls your data loading operation. See Section 8.3 in Chapter 8 for a description of a sample control file. See also Oracle Database Utilities for more information.

An advantage of using PL/SQL scripts to load your data is that you can call methods as you load data to generate thumbnail images, or extract properties. See Section 8.3 in Chapter 8 for a description of a sample PL/SQL multimedia data load script. See also PL/SQL User's Guide and Reference for more information.

1.9 Accessing Multimedia Data

Applications access and manipulate multimedia data using SQL, PL/SQL, OCI, or Java through the object relational types OrdAudio, OrdDoc, OrdImage, and OrdVideo.

The following subsections describe ways in which applications, Oracle development tools, and third-party development tools can access multimedia data stored in the database using interMedia object types.

1.9.1 Oracle interMedia Java Classes

Oracle interMedia Java Classes enables Java applications on any tier (client, application server, or database) to manipulate and modify audio, image, and video data, or heterogeneous media data stored in a database. Oracle interMedia Java Classes makes it possible for Java database connectivity (JDBC) result sets to include both traditional relational data and interMedia media objects. This support enables applications to easily select and operate on a result set that contains sets of interMedia columns plus other relational data. These classes also enable access to object attributes and invocation of object methods. See Oracle interMedia Java Classes API Reference and Oracle interMedia Java Classes for Servlets and JSP API Reference for more information.

1.9.2 Streaming Content from Oracle Database

You can stream audio and video content stored in Oracle Database using an interMedia plug-in that supports a third-party streaming server, and deliver this content for play on a client that uses the browser-supported streaming player.

Oracle interMedia Plug-in for RealNetworks Streaming Servers

Oracle interMedia Plug-in for RealNetworks Streaming Server is a data source plug-in that enables RealNetworks Streaming Server to stream media data directly from Oracle Database to a media player client. The plug-in is installed with RealNetworks Streaming Server and configured and managed using the administration tool of the streaming server. The plug-in is format neutral; any format supported by the streaming server can be sourced by Oracle Database.

See Oracle interMedia Plug-in for RealNetworks Streaming Servers Readme for more information about this plug-in. Oracle interMedia Plug-in for RealNetworks Streaming Server can be downloaded from the Oracle interMedia Software section of the Oracle Technology Network Web site at

http://www.oracle.com/technology/products/intermedia/index.html

For more information about streaming servers from RealNetworks, see the RealNetworks Web site at

http://www.realnetworks.com/

Oracle interMedia Plug-in for Microsoft Windows Media Services

Oracle interMedia Plug-in for Microsoft Windows Media Services allows Microsoft Windows Media servers to stream multimedia content to a client directly from Oracle Database. This package also includes a Plug-in Property Page that can be accessed from the Windows Media Services Administrative interfaces. The Plug-in Property Page allows users to inspect, define, and edit the Plug-in mount points that map to media content in Oracle Database. The Plug-in mount points are used to configure the source URL of a server publishing point, from which a Microsoft Windows Media Player client requests media content stored in Oracle Database.

See Oracle interMedia Plug-in for Microsoft Windows Media Services Readme for more information about this plug-in. Oracle interMedia Plug-in for Microsoft Windows Media Services can be downloaded from the Oracle interMedia Software section of the Oracle Technology Network Web site at

http://www.oracle.com/technology/products/intermedia/index.html

1.9.3 Support for Web Technologies

Using interMedia support for Web technologies, you can easily integrate multimedia data into Web and Java applications. You can also store, retrieve, and manage rich media content in a database.

Oracle interMedia Java Classes for Servlets and JSP

Oracle interMedia Java Classes for Servlets and JSP facilitates the upload and retrieval of multimedia data stored in a database using the interMedia OrdAudio, OrdDoc, OrdImage, and OrdVideo object types. Oracle interMedia Java Classes for Servlets and JSP uses Oracle interMedia Java Classes to access data stored in the interMedia object types. However, Oracle interMedia Java Classes for Servlets and JSP can also be used to handle upload and retrieval of data using BLOBs directly.

The OrdHttpResponseHandler class facilitates the retrieval of multimedia data from a database and its delivery to a browser or other HTTP client from a Java servlet. The OrdHttpJspResponseHandler class provides the same features for JavaServer Pages (JSP).


Note:

JSP engines are not required to support access to the servlet binary output stream. Therefore, not all JSP engines support the delivery of multimedia data using the OrdHttpJspResponseHandler class. See Oracle interMedia Java Classes for Servlets and JSP API Reference for more information.

Form-based file uploading using HTML forms encodes form data and uploaded files in Post requests using the multipart/form-data format. The OrdHttpUploadFormData class facilitates the processing of such requests by parsing the Post data and making the contents of regular form fields and the contents of uploaded files readily accessible to a Java servlet or JavaServer Pages. The handling of uploaded files is facilitated by the OrdHttpUploadFile class, which provides an easy-to-use API that applications call to load audio, image, and video data, or heterogeneous media data into a database.

To read the Javadoc documentation that describes how to use Oracle interMedia Java Classes for Servlets and JSP, see the API documentation, which can be found in the Oracle Database 10g Online Documentation Library as Oracle interMedia Java Classes for Servlets and JSP API Reference.

Integration with Oracle Application Server Portal

Oracle Application Server Portal is used to create useful and appealing enterprise portals. A key feature of the Oracle Application Server Portal framework are portlets, which provide a convenient way to access any type of data including rich content such as images, audio, and video. Oracle Application Server Portal has components that give the developer a declarative way to create objects that capture, act upon, and display data from an Oracle table or view. These Oracle Application Server Portal components can be connected together to create Web applications that can be applied directly to enterprise databases. And, as interMedia objects are stored in Oracle tables, they can be included in the types of data available to Oracle Application Server Portal components.

Two Oracle Application Server Portal components are predefined: Forms and Reports. Oracle Application Server Portal contains wizards to help easily create a form to interact with the data in one or more database tables or views. The Forms component builds an appealing Web interface that lets users interact with data -- they can add, query, update, and delete information stored in the database. Rich content can be both uploaded and downloaded between the database and the portal framework by building a form on tables containing interMedia objects.

In addition to a form component, Oracle Application Server Portal offers a report component. The Reports component is used to display dynamic data in a columnar report format through a Web interface. Rich media content stored in tables can be downloaded, and again, wizards facilitate the creation of reports.

For more information about the use of Oracle Application Server Portal and interMedia, see Oracle Application Server Portal Developer's Guide in the Oracle Application Server 10g Online Documentation Library.

Integration with Oracle Application Development Framework Business Components

For rapid development of media-rich Web applications, Oracle offers developers a Java integrated development environment (IDE), Oracle JDeveloper, that maximizes developer productivity. Oracle JDeveloper enables developers to build multitier, component-based Internet applications in Java that use interMedia features to create visually attractive applications. Oracle Application Development Framework Business Components (ADF Business Components) is the component of JDeveloper that provides a set of intelligent software building blocks to manage common facilities. An Oracle interMedia/ADF Business Components integration package includes media-specific domain classes and a set of utilities. The domain classes are wrappers of the classes of Oracle interMedia Java Classes, and inherit all the underlying multimedia retrieval, upload, and manipulation methods. The domain classes support the ADF Business Components APIs and provide built-in integrated multimedia capabilities, while the utility classes support the retrieval, rendering, and uploading of multimedia content. Together, they provide a fully featured, integrated application development environment that enables a developer to create a wide variety of media-rich applications.

For more information, see the Oracle interMedia/ADF Business Components Interactive Demonstration in the interMedia Training section on the Oracle Technology Network Web site at

http://www.oracle.com/technology/products/intermedia/index.html

1.9.4 interMedia Custom DataSource and DataSink Classes for JMF 2.0/2.1

Oracle interMedia Custom DataSource and DataSink classes are an extension to the current Java Media Framework (JMF) version 2.0/2.1 developed by Sun Microsystems. This software allows a JMF application to upload and retrieve time-based media data stored in a database using interMedia OrdAudio and OrdVideo objects.

For more information about these classes, see Oracle interMedia Custom DataSource and DataSink Classes Readme. These classes can be downloaded from the Oracle interMedia Software section of the Oracle Technology Network Web site at

http://www.oracle.com/technology/products/intermedia/index.html

For more information about JMF, see the Sun Microsystems Web site at

http://www.java.sun.com/jmf

1.9.5 interMedia Support for Java Advanced Imaging (JAI)

Oracle interMedia Java Classes describes three types of stream objects, which provide interfaces to BLOB and BFILE data, that can be used by Java Advanced Imaging (JAI). These classes allow a JAI application to read and write image data stored in a database using interMedia OrdImage objects, or in BLOBs or BFILEs.

For more information about the interMedia Java classes for JAI stream objects, see Oracle interMedia Java Classes API Reference.

For more information about JAI, see the Sun Microsystems Web site at

http://java.sun.com/products/java-media/jai/index.html

1.10 interMedia Architecture

interMedia is a single, integrated feature that extends the database by storing, managing, and retrieving image, audio, and video data, and by supporting Web technologies for multimedia data.

The interMedia architecture defines the framework (see Figure 1-1) through which media-rich content as well as traditional data are supported in the database. This content and data can then be securely shared across multiple applications written with popular languages and tools, easily managed and administered by relational database management and administration technologies, and offered on a scalable database that supports thousands of users.

Figure 1-1 shows the interMedia architecture from a three-tier perspective: database tier -- Oracle Database; application server tier -- Oracle Application Server; and client tier -- thin and thick clients.

In the first tier, through the use of interMedia, Oracle Database holds rich content in tables along with traditional data. Through a database-embedded JVM, a server-side media parser is supported as well as an image processor. The media parser has object-oriented and relational interfaces, supports format and application metadata parsing, and can be extended to support additional formats. The image processor includes JAI and provides image processing for operations such as producing thumbnail-sized images, converting image formats, and image indexing and matching.

Using interMedia methods, import and export operations between the database and operating system files (external file storage) are possible. interMedia also supports special delivery types of servers, such as streaming content from a database. Using the interMedia Plug-ins for RealNetworks or Windows Media Services, the Helix Universal Server or Windows Media Streaming Server can stream multimedia data to a client directly out of the database using Real-Time Streaming Protocol (RTSP). In addition, third-party media processors such as speech recognition engines can run external to the database to process media stored in the database and return results to the database.

In the second or middle tier, Oracle Application Server provides access to interMedia through Oracle interMedia Java Classes, which enables Java applications on any tier (client, application server, or database) to access, manipulate, and modify audio, image, and video data stored in a database.

In addition, Oracle interMedia Java Classes for Servlets and JSP facilitates the upload and retrieval of multimedia data stored in a database using the interMedia OrdAudio, OrdDoc, OrdImage, and OrdVideo object types. Oracle interMedia Java Classes for Servlets and JSP can access data stored in the interMedia objects or BLOBs or BFILEs directly.

Developers can also use Oracle JDeveloper and interMedia to build media-rich Java applications quickly and easily using the interMedia/ADF Business Components integration package. interMedia rich content can also be easily and transparently incorporated into Oracle Portal forms and reports, which can then be published as portlets.

SQL developers familiar with the database can develop Web applications that use Oracle Application Server exclusively, and Oracle Database using the PL/SQL development environment. The steps include using the PL/SQL Gateway (mod_plsql) feature of the Oracle HTTP Server and the PL/SQL Web Toolkit. Web application developers can write PL/SQL servlets and PL/SQL server pages (PSP) that invoke PL/SQL procedures stored in the database through an Oracle Net connection and OCI.

In the third or client tier, the ability to perform local processing is supported through Oracle interMedia Java Classes, JAI, and JMF. JAI and JMF provide a set of APIs for media processing on the client and interMedia Java Classes supply direct access to all media types from the client.

Figure 1-1 Oracle interMedia Architecture

Description of 9iimarch.gif follows
Description of the illustration 9iimarch.gif

Oracle interMedia features available only on Oracle Technology Network (OTN) include the following:

  • interMedia Plug-in for RealNetworks Streaming Servers, see Section 1.9.2

  • interMedia Plug-in for Microsoft Windows Media Services, see Section 1.9.2

  • interMedia Custom DataSource and DataSink classes JMF 2.0/2.1 (requires JMF 2.0 or higher), see Section 1.9.4

1.11 Extending Oracle interMedia

interMedia can be extended to support:

  • Other external sources of media data not currently supported (other than BLOB, BFILE, or URL)

  • Other media data formats not currently supported


    Note:

    interMedia can store any format. However, it can only extract metadata and process (image only) media data for formats that are supported or known to interMedia. See the audio, image, and video data format appendixes in Oracle interMedia Reference for lists of supported formats.

  • Audio and video data processing

For more information about extending interMedia, see Chapter 7.