|Oracle® interMedia User's Guide
10g Release 1 (10.1)
Part Number B10840-01
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:
Support for popular formats (see the audio, image, and video data format appendixes in Oracle interMedia Reference)
Querying using associated relational data
Querying using extracted metadata
Querying using media content with optional specialized indexing
interMedia provides media content services to Oracle JDeveloper 10g, 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.
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 on using BLOBs and BFILEs:
Oracle Database Concepts -- see the chapter on Object Views.
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.
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 on the SQL/MM Still Image Standard object types. The remainder of this chapter applies to the ORDAudio, ORDVideo, ORDDoc, ORDImage, and ORDSource object types.
The capabilities of interMedia include the storage, retrieval, management, and manipulation of multimedia data managed by Oracle Database. interMedia supports multimedia storage, retrieval, and management of:
Binary large objects (BLOBs) stored locally in the database and containing audio, image, or video data, or other heterogeneous media data
File-based large objects, or BFILEs, stored locally in operating system-specific file systems and containing audio, image, or video data, or other heterogeneous media data
URLs containing audio, image, or video data or other heterogeneous media data, stored on any HTTP server such as Oracle Application Server or Oracle Database, Netscape Application Server, Microsoft Internet Information Server (IIS), Apache HTTPD server, and Spyglass servers
Streaming audio or video data stored on specialized media
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 image, 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.9 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 and video metadata, or other heterogeneous media metadata in XML
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
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 on 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:
Internet music stores that provide music samplings of CD quality
Digital sound repositories
Dictation and telephone conversation repositories
Audio archives and collections (for example, for musicians)
Digital art galleries
Real estate marketing
Photograph collections (for example, for professional photographers)
Internet video stores and digital video-clip previews
Digital video sources for streaming video delivery systems
Digital video libraries, archives, and repositories
Libraries of digital video training programs
Digital video repositories (for example, for motion picture production, television broadcasting, documentaries, advertisements, and so forth)
This section contains information about digitized audio concepts and using the ORDAudio object type to build audio applications or specialized ORDAudio objects.
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.
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.
This section contains information about heterogeneous media data concepts and using the ORDDoc object type to build applications or specialized ORDDoc objects.
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.
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.
This section contains information about digitized image concepts and using the ORDImage object type to build image applications or specialized ORDImage objects.
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 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.
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.
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).
This section contains information about digitized video concepts and using ORDVideo to build video applications or specialized ORDVideo objects.
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.
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 identical to what is provided by Oracle interMedia Annotator.
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.
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 to move media data between the local file system and the database, to parse and extract the properties of the media data, and to store these properties in 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.
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 4K bytes in size 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 on 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
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.
Applications access and manipulate multimedia data using SQL, PL/SQL, OCI, or Java through the object relational types OrdAudio, OrdDoc, OrdImage, and OrdVideo. See Oracle interMedia Java Classes Reference for more information about using Java.
The object syntax for accessing attributes within a complex object is the dot notation (except in Java):
The syntax for invoking methods of a complex object is also the dot notation (except in Java):
variable.function(parameter1, parameter2, ...)
A complete set of media attribute accessors (get methods) and setters (set methods) are provided for accessing attributes for each media type.
See Oracle Database Concepts for information on this and other SQL syntax.
interMedia provides the ability to extract content and format metadata from media sources (image, 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.
Oracle interMedia Annotator lets you write an application that reads media data, extracts metadata, associates other metadata, and then uploads the media data and all associated metadata into the database. It lets you customize annotations to further describe the data and loads the annotation and the media data into a database. Use Oracle interMedia Annotator if you need to extend the formats or metadata supported, or if you want to associate other metadata. See Oracle interMedia Annotator User's Guide and Reference for more information.
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.
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 5 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 5.4.
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.
interMedia speech mining and speech indexing adds speech recognition and indexing capabilities to the database. With this feature, third-party speech recognition vendors can easily and tightly integrate their speech recognition technology with a database. Customers can then build their own complete multimedia storage, management, mining, and indexing solutions on top of Oracle and third-party speech recognition software.Speech-to-text conversion capabilities of third-party speech recognition software integrated with a database enable speech data mining. The Oracle speech index introduces a new index type that lets users build indexes on the results of speech processing so they can use text-based queries to retrieve data.This technology is designed to facilitate the mining, indexing, and searching of recorded speech data. It is not designed to be used for real-time, speech-enabled user interfaces, or for voice transcriptions, such as a call center application.
This feature can be downloaded from the Oracle interMedia Software section of the Oracle Technology Network Web site
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 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.
A procedural extension to SQL, PL/SQL is an advanced fourth-generation programming language (4GL) of Oracle Corporation. 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 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 for a description of a sample PL/SQL multimedia data load script. See also PL/SQL User's Guide and Reference for more information.
You can use Oracle interMedia Annotator to upload media data and an associated annotation into a database. Oracle interMedia Annotator does this using a PL/SQL Upload Template, which contains both PL/SQL calls and Annotator-specific keywords. Oracle interMedia Annotator extracts content and format attributes from media sources (image, audio, and video files), and organizes the attributes into an XML formatted annotation.
Advanced users with PL/SQL experience can create their own PL/SQL Upload Templates in a text editor.
See Oracle interMedia Annotator User's Guide and Reference for more information.
Section 1.10.1 through Section 1.10.4 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.
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 Reference for more information.
You can stream content stored in a 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, RealSystem RealServer 7.0, RealSystem iQ Server 8.0, and Helix Universal Server allows these RealNetworks servers to stream multimedia data to a client directly out of the database. This plug-in is installed in the RealNetworks server and defined in the RealNetworks server configuration file. The data is requested with a URL, which contains information necessary to select the multimedia data from the database.
For information on RealNetworks servers, see the following URL
See Oracle interMedia Plug-in 2.0 for RealNetworks Streaming Servers Readme for more information. The Oracle interMedia Plug-in for RealNetworks Streaming Servers can be downloaded from the Oracle interMedia Software section of the Oracle Technology Network Web site
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 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.
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
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 on the Oracle Database 10g Documentation Library CD-ROM as Oracle interMedia Java Classes for Servlets and JSP and as Oracle interMedia Java Classes.
Also, see Oracle interMedia Java Classes Reference for more information.
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: Oracle Application Server Forms Services and Oracle Application Server Reports Services. 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 Oracle Application Server Forms Services 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 forms, Oracle Application Server Portal offers a report component. The Oracle Application Server Reports Services 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 an interactive demonstration on the use of Oracle Application Server Portal and interMedia, see Building Portlets Using Oracle interMedia and an interMedia/Portal Interactive Demonstration in the interMedia Training section on the Oracle Technology Network Web site
For rapid development of media-rich Web applications, Oracle offers developers a Java integrated development environment (IDE) (Oracle JDeveloper 10g) and an application framework (Oracle Business Components for Java (BC4J)), that utilize rich media data type support in a database. Oracle JDeveloper 10g enables developers to build multitier, component-based Internet applications in Java quickly and efficiently. Oracle BC4J is an XML-powered framework for creating reusable business logic. An Oracle interMedia/BC4J 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 BC4J framework 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 do the following:
Write and test business logic in components that automatically integrate with relational databases.
Reuse business logic through multiple SQL-based views of data, supporting different application tasks.
Access and update the views from servlets, JavaServer Pages, and thin Java Swing clients.
Customize application functions in layers without requiring modification of the delivered application.
For more information, see the Oracle interMedia/BC4J Interactive Demonstration in the interMedia Training section on the Oracle Technology Network Web site
You can also use a WebDAV-compliant client application, such as Adobe GoLive, Macromedia UltraDev, Microsoft's Web Folders, and other available software products to retrieve multimedia objects, such as audio, video, and image data, from a database. Using WebDAV, client applications have read-only access to multimedia content in the database.
To configure WebDAV access to multimedia data, using Oracle HTTP Server and the mod_oradav component (OraDAV), download the necessary software from the Oracle interMedia Software section of the Oracle Technology Network Web site
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. See Chapter 6 for more information.
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. See Oracle interMedia Java Classes Reference for more information.
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 and annotations 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.
interMedia supports a heterogeneous media column, known as the ORDDoc object type. This allows a column to hold a mixture of image, audio, and video data, or other heterogeneous media data. Using interMedia import and export methods for each object type and for the relational interface, import and export operations between media objects 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 Oracle interMedia Plug-in for RealNetworks, RealSystem RealServer 7.0, RealSystem iQ Server 8.0, or the Helix Universal 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 run external 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. Oracle interMedia Java Classes makes it possible for JDBC result sets to include both traditional relational data and interMedia media objects (OrdAudio, OrdDoc, OrdImage, and OrdVideo). This support enables applications to easily select and operate on a result set that contains interMedia columns plus other relational data. These Java classes also enable access to interMedia object attributes and invocation of interMedia object methods.
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.
In the third or client tier, the browser-based WebDAV clients can use the WebDAV-enabled HTTP protocol for communication with the Oracle Application Server tier to access media data in the database. For thick clients and tools, Oracle interMedia Annotator is a media parser. In addition, client-side media processing is supported through Java classes, JAI, and the JMF. For rapid development of media-rich Web applications, Oracle offers developers a Java IDE (Oracle JDeveloper 10g) and an application framework (Oracle Business Components for Java (BC4J)), that utilize rich media data type support in a database so developers can build scalable, multitier database applications from reusable business components.
Figure 1-1 interMedia Architecture
Oracle interMedia features available only on Oracle Technology Network (OTN)
http://otn.oracle.com/products/intermedia include the following:
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; not supported means interMedia can store any format, it just cannot extract the metadata or process the media data for these external formats that are not known to it.
Audio and video data processing
For more information about extending interMedia, see Chapter 7.