1 Introduction to Oracle Multimedia

Oracle Multimedia (formerly Oracle 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 Multimedia extends Oracle Database reliability, availability, and data management to multimedia content in traditional, Internet, electronic commerce, and media-rich applications. Oracle Multimedia does not control media capture or output devices; this function is left to application software.

Oracle Multimedia manages multimedia content by providing the following:

Oracle Multimedia 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 Oracle Multimedia, 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 Multimedia Reference for more information about the multimedia object types and methods, and for more information about the ORDSource object type and methods.

1.2 Oracle Multimedia Capabilities

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

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

Oracle Multimedia 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 Oracle Multimedia through modern class library interfaces, or PL/SQL and Oracle Call Interface (OCI).

Oracle Multimedia supports storage of the popular file formats, including desktop publishing images, and streaming audio and video formats in databases. Oracle Multimedia 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. Oracle Multimedia developers can use the basic functions provided here to build specialized multimedia applications.

Oracle Multimedia 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 objects, such as getContent( ) and setProperties( ).

The Oracle Multimedia 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 Oracle Multimedia control. Whether media data is stored within or outside the database, Oracle Multimedia 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.

Oracle Multimedia 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 Oracle Multimedia.

Oracle Multimedia 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 Oracle Multimedia 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 Multimedia 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. Oracle Multimedia 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 Multimedia Reference for a list of supported data formats from which Oracle Multimedia 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 on, 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 Multimedia 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 Multimedia 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 compression schemes, lossy compression schemes generally provide higher compression.

The 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 protocols. 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 Multimedia Reference).

1.5.3 Metadata in Images

Oracle Database 10g, Release 2 added an image metadata feature to Oracle Multimedia. The metadata feature enhanced the behavior of the Oracle Multimedia ORDImage object type by adding the ability to read (or extract) and write (or embed) application metadata in images. In addition, this feature adopted 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 6 for more information about the metadata feature.

1.5.4 Medical Imaging

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

See Chapter 6 for more information about the Oracle Multimedia DICOM feature introduced in Oracle Database 10g, Release 2.

Oracle Database 11g, Release 1 adds the following medical imaging format support for Oracle Multimedia DICOM:

  • A DICOM object creation capability

  • DICOM image processing enhancements

  • A DICOM object conformance validation enhancement

  • DICOM metadata extraction enhancements

  • The ability to make DICOM objects anonymous

  • The new ORDDicom object type

  • A run-time, updatable DICOM data model

In addition to the services and support provided for images, DICOM (medical images), audio, and video data, Oracle Multimedia manages DICOM content by providing the following:

  • Storage and retrieval of medical imaging data in the database to synchronize the DICOM data with the associated business data

  • Full object and relational interfaces to Oracle Multimedia DICOM services

  • Extraction of DICOM metadata into user-specifiable XML documents

  • Querying using associated relational data and extracted metadata

  • Image processing, such as thumbnail generation

  • Creation of new DICOM objects

  • Conformance validation based on a set of user-specified conformance rules

  • Making DICOM objects anonymous based on user-defined rules that specify the set of attributes to be made anonymous and how to make those attributes anonymous

  • The ability to update run-time behaviors, such as the version of the DICOM standard supported, without installing a new release of Oracle Database

See Oracle Multimedia DICOM Developer's Guide for more information about the Oracle Multimedia DICOM feature enhancements introduced in Oracle Database 11g, Release 1.

1.5.5 Metadata Extraction

Oracle Multimedia 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 Multimedia Reference for more information.

1.5.6 Image Processing

Oracle Multimedia 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, Oracle Multimedia supports a variety of operators for changing the format characteristics. See Oracle Multimedia Reference for more information.

1.5.7 SQL/MM Still Image Standard Support

Oracle Multimedia 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

See Oracle Multimedia Reference for more information about the SQL/MM Still Image Standard 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 Multimedia Reference for a list of supported data formats from which Oracle Multimedia 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 Oracle Multimedia object types, or directly in BLOBs or BFILEs. You will realize the most benefit by storing media in Oracle Multimedia object types. However, many of the features of Oracle Multimedia are available to media stored in BLOBs and BFILEs using the relational interface.

The Oracle Multimedia relational interface lets developers use static methods of Oracle Multimedia 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 Oracle Multimedia object types to take advantage of this relational interface. Oracle Multimedia static methods can also be used to perform image processing operations such as cut, scale, compress, and convert format. See Oracle Multimedia 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

Oracle Multimedia 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 8 terabytes to 128 terabytes, depending on the block size) 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 SecureFiles and Large Objects Developer's Guide and Oracle Call Interface Programmer's Guide for detailed information about using BLOBs and BFILEs.

Oracle Multimedia 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 Oracle Multimedia 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 Oracle Multimedia 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 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 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 Oracle Multimedia object types.

1.9.1 Oracle Multimedia Java Classes

Oracle Multimedia Java classes enable 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 Multimedia Java classes make it possible for Java database connectivity (JDBC) result sets to include both traditional relational data and Oracle Multimedia media objects. This support enables applications to easily select and operate on a result set that contains sets of Oracle Multimedia columns plus other relational data. These classes also enable access to object attributes and invocation of object methods.

See Oracle Multimedia Java API Reference and Oracle Multimedia Servlets and JSP Java API Reference for more information about Oracle Multimedia Java classes.

1.9.2 Streaming Content from Oracle Database

You can stream audio and video content stored in Oracle Database using an Oracle Multimedia 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 Multimedia Plug-in for RealNetworks Streaming Servers

Oracle Multimedia 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 Multimedia Plug-in for RealNetworks Streaming Servers Readme for more information about this plug-in. Oracle Multimedia Plug-in for RealNetworks Streaming Server can be downloaded from the Oracle Multimedia Software section of the Oracle Technology Network Web site at

http://www.oracle.com/technology/products/multimedia/

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

http://www.realnetworks.com/

Oracle Multimedia Plug-in for Microsoft Windows Media Services

Oracle Multimedia 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 Multimedia Plug-in for Microsoft Windows Media Services Readme for more information about this plug-in. Oracle Multimedia Plug-in for Microsoft Windows Media Services can be downloaded from the Oracle Multimedia Software section of the Oracle Technology Network Web site at

http://www.oracle.com/technology/products/multimedia/

1.9.3 Support for Web Technologies

Using Oracle Multimedia 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 Multimedia Servlets and JSP Java API

Oracle Multimedia Servlets and JSP Java API facilitates the upload and retrieval of multimedia data stored in a database using the Oracle Multimedia OrdAudio, OrdDoc, OrdImage, and OrdVideo object types. Oracle Multimedia Servlets and JSP Java API uses Oracle Multimedia Java API to access data stored in the Oracle Multimedia object types. However, Oracle Multimedia Servlets and JSP Java API 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 Java servlets. 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 Multimedia Servlets and JSP Java 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 JSP. 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.

See Oracle Multimedia Servlets and JSP Java API Reference for more information about Oracle Multimedia Servlets and JSP Java API.

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 Oracle Multimedia 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 Oracle Multimedia 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 Oracle Multimedia, see Oracle Application Server Portal Developer's Guide in the Oracle Application Server 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 Oracle Multimedia 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 Multimedia/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 Multimedia Java API, 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 Multimedia/ADF Business Components Interactive Demonstration in the Oracle Multimedia Training section on the Oracle Technology Network Web site at

http://www.oracle.com/technology/products/multimedia/

1.9.4 Oracle Multimedia Custom DataSource and DataSink Classes for JMF 2.0/2.1

Oracle Multimedia 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 Oracle Multimedia OrdAudio and OrdVideo objects.

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

http://www.oracle.com/technology/products/multimedia/

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

http://java.sun.com/

1.9.5 Oracle Multimedia Support for Java Advanced Imaging (JAI)

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

For more information about the Java classes for JAI stream objects provided by Oracle Multimedia, see Oracle Multimedia Java API Reference.

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

http://java.sun.com/

1.10 Oracle Multimedia Architecture

Oracle Multimedia 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 Oracle Multimedia 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 Oracle Multimedia 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 Oracle Multimedia, 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-size images, converting image formats, and image indexing and matching.

Using Oracle Multimedia methods, import and export operations between the database and operating system files (external file storage) are possible. Oracle Multimedia also supports special delivery types of servers, such as streaming content from a database. Using the Oracle Multimedia 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 Oracle Multimedia through Oracle Multimedia Java classes, which enable 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 Multimedia Servlets and JSP Java API facilitates the upload and retrieval of multimedia data stored in a database using the Oracle Multimedia OrdAudio, OrdDoc, OrdImage, and OrdVideo object types. Oracle Multimedia Servlets and JSP Java API can access data stored in the Oracle Multimedia objects or BLOBs or BFILEs directly.

Developers can also use Oracle JDeveloper and Oracle Multimedia to build media-rich Java applications quickly and easily using the Oracle Multimedia/ADF Business Components integration package. Oracle Multimedia 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 Multimedia Java classes, JAI, and JMF. JAI and JMF provide a set of APIs for media processing on the client, and Oracle Multimedia Java classes supply direct access to all media types from the client.

Figure 1-1 Oracle Multimedia Architecture

Description of Figure 1-1 follows
Description of "Figure 1-1 Oracle Multimedia Architecture"

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

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

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

  • Oracle Multimedia 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 Multimedia

Oracle Multimedia 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:

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

For more information about extending Oracle Multimedia, see Chapter 7.