O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Oracle 10g Developing Media Rich Applications

Book Description

Oracle 10g Developing Media Rich Applications is focused squarely on database administrators and programmers as the foundation of multimedia database applications. With the release of Oracle8 Database in 1997, Oracle became the first commercial database with integrated multimedia technology for application developers. Since that time, Oracle has enhanced and extended these features to include native support for image, audio, video and streaming media storage; indexing, retrieval and processing in the Oracle Database, Application Server; and development tools. Databases are not only words and numbers for accountants, but they also should utilize a full range of media to satisfy customer needs, from race car engineers, to manufacturing processes to security.

The full range of audio, video and integration of media into databases is mission critical to these applications. This book details the most recent features in Oracle’s multimedia technology including those of the Oracle10gR2 Database and the Oracle9i Application Server. The technology covered includes: object relational media storage and services within the database, middle tier application development interfaces, wireless delivery mechanisms, and Java-based tools.

* Gives broad coverage to integration of multimedia features such as audio and instrumentation video, from race cars to analyze performance, to voice and picture recognition for security data bases. As well as full multimedia for presentations
* Includes field tested examples in enterprise environments
* Provides coverage in a thorough and clear fashion developed in a London University Professional Course

Table of Contents

  1. Copyright
    1. Dedication
  2. Oracle Database Related Book Titles
  3. Acknowledgments
  4. 1. Introduction
    1. 1.1. Uses for Digital Media
    2. 1.2. The Challenge of Digital Media
    3. 1.3. The Evolution of Digital Media Storage and Management
    4. 1.4. The Value Proposition for the Full Use of a Database for Digital Media
    5. 1.5. The Value Proposition for Using Media Types
    6. 1.6. Summary
  5. 2. Multimedia Basics
    1. 2.1. Introduction
    2. 2.2. What Is Different about Multimedia Data?
    3. 2.3. Multimedia Metadata
    4. 2.4. Image Data
      1. 2.4.1. History of the Pixel and Digital Images
    5. 2.5. Multimedia Data Acquisition
    6. 2.6. Multimedia Data Transformation
      1. 2.6.1. Resolution
      2. Color Depth
      3. Image Channels
      4. Contrast Correction
      5. Dithering
      6. Layers
      7. 2.6.2. Delivery
        1. Internet and ICT Applications
        2. MIME Types
      8. 2.6.3. Compression
    7. 2.7. Color Perception
      1. 2.7.1. CIE_XYZ Color-space
      2. 2.7.2. RGB Additive Color from Glowing Bodies, Lights, TVs, and Monitors
      3. 2.7.3. CMYK: Subtractive Color from Reflecting Objects—Color Printing
      4. 2.7.4. HSB System (Hue, Saturation, and Brightness)
      5. 2.7.5. RYB (Red, Yellow, and Blue)
      6. 2.7.6. Comparing the Four Models
    8. 2.8. Real-time Media
      1. 2.8.1. Seeing Video
      2. 2.8.2. Audio
      3. 2.8.3. Video and Audio Streaming
      4. 2.8.4. What Is Available?
      5. 2.8.5. 3GP Standards
    9. 2.9. What Is Metadata?
      1. 2.9.1. Generating and Extracting Metadata
      2. 2.9.2. Image Metadata
        1. Resource Description Framework (RDF)
      3. 2.9.3. Image Metadata Format
    10. 2.10. Summary
  6. 3. Introduction to interMedia Storage
    1. 3.1. Introduction
    2. 3.2. Object-relational and Relational Features
    3. 3.3. Using Large Object Data Types
    4. 3.4. Using LOB Locators
    5. 3.5. Using BFILES
      1. 3.5.1. The Disadvantages of Using BFILES
        1. Family and Friends Picture Book Case Study
    6. 3.6. Using the Relational Approach
      1. 3.6.1. The Disadvantages of Using BLOBS and BFILES
    7. 3.7. Using the Object-relational Approach
    8. 3.8. Using Oracle interMedia
      1. 3.8.1. Manipulating Image Data Using interMedia
      2. 3.8.2. New Formats Supported
      3. 3.8.3. ORDImage
      4. 3.8.4. Using PL/SQL Stored Procedures
      5. 3.8.5. ORDAudio
      6. 3.8.6. ORDDoc
      7. 3.8.7. ORDVideo
    9. 3.9. Using SQL/MM Still Image Standard (ISO/IEC 13249-5:2001 SQL/MM)
    10. 3.10. Using interMedia to Create Your Own Object Types
      1. 3.10.1. The Disadvantages of Using Your Own Object Types
    11. 3.11. Summary
  7. 4. Introduction to Web Delivery of interMedia Multimedia Data
    1. 4.1. HTTP Delivery
      1. 4.1.1. How Browsers Handle Media
      2. 4.1.2. Image
      3. 4.1.3. Arbitrary MIME Types
      4. 4.1.4. Browser Plug-ins
      5. 4.1.5. HTTP Caching
    2. 4.2. Servlets
    3. 4.3. interMedia HTTP Classes
    4. 4.4. The mod_plsql Module
    5. 4.5. interMedia JSP Tag Library
    6. 4.6. Oracle Portal
    7. 4.7. Oracle Data Provider for .NET (ODP.NET)
      1. 4.7.1. ODP.NET Media Delivery to Browser
      2. 4.7.2. ODP.NET Media Delivery from Browser
    8. 4.8. PHP: Hypertext Preprocessor with OCI8 extension
      1. 4.8.1. PHP Media delivery to browser
      2. 4.8.2. PHP Media delivery from browser to database
    9. 4.9. Streaming Server Delivery
      1. 4.9.1. Real/Helix Server
      2. 4.9.2. Microsoft Streaming Server
    10. 4.10. Oracle Wireless
      1. 4.10.1. Media Image Adaptation
    11. 4.11. Oracle interMedia OraDAV Driver
      1. 4.11.1. Install OraDAV Database Infrastructure in ORDSYS
      2. 4.11.2. Define the OraDAV Endpoint in the Webdav Configuration File
      3. 4.11.3. Using the OraDAV Endpoint
    12. 4.12. Summary
  8. 5. Introduction to interMedia APIs
    1. 5.1. PL/SQL
      1. 5.1.1. Preparation
      2. 5.1.2. Place the Images into the Database
      3. 5.1.3. Processing the Image, Creating a JPEG Thumbnail
      4. 5.1.4. Obtaining the Thumbnail in a File—Exporting the Image
      5. 5.1.5. Putting It All Together
    2. 5.2. interMedia Java Proxy Classes
      1. 5.2.1. Overview of ORDSYS.ORDImage (Oracle Database) and OrdImage (Java) Objects
      2. 5.2.2. Setting Up the Required Java Environment—Imports and CLASSPATH
        1. Imports
        2. CLASSPATH
        3. Documentation
      3. 5.2.3. Creating the JDBC Connection
      4. 5.2.4. Uploading Images from Files into Tables
      5. 5.2.5. Creating the JDBC Connection, Uploading Images from Files into Tables, and Retrieving Image Properties
      6. 5.2.6. Creating Thumbnails and Changing Formats
      7. 5.2.7. Downloading Image Data from Tables into Files
    3. 5.3. Oracle C++ Call Interface
      1. 5.3.1. Includes and C++ Namespaces
      2. 5.3.2. Creating the Connection
      3. 5.3.3. Populating the Image Row from a File
      4. 5.3.4. Extracting the Thumbnail from the Database into a File
    4. 5.4. C# Using Oracle Data Provider for .NET (ODP.NET)
      1. 5.4.1. Prerequisites for Using Oracle with Visual Studio .NET
      2. 5.4.2. Preparing the Visual Studio Project to Use ODP.NET
      3. 5.4.3. Object References
      4. 5.4.4. Creating the Connection
      5. 5.4.5. Creating the Database Commands to Insert a Row
      6. 5.4.6. Populating the Image Row
      7. 5.4.7. Extracting the Thumbnail from the Database into a File
    5. 5.5. Java Advanced Imaging interMedia APIsxs
      1. 5.5.1. JAI Includes
      2. 5.5.2. Creating the Database Row
      3. 5.5.3. Get the Thumbnail Image, Put a Logo on the Image, and Put the Image into a File
      4. 5.5.4. Running the Sample
    6. 5.6. Summary
  9. 6. Loading Media
    1. 6.1. PL/SQL
      1. 6.1.1. Loading from Local Files
      2. 6.1.2. Loading from an HTTP Source
      3. 6.1.3. Loading from a User Written Source
      4. 6.1.4. Unrecognized Formats
      5. 6.1.5. PL/SQL Loading Methods Performance Considerations
    2. 6.2. SQL*Loader
    3. 6.3. External Tables
      1. Oracle Data Pump
    4. 6.4. Transportable Tablespaces
    5. 6.5. HTTP Form Load
    6. 6.6. Thick Client Loading
    7. 6.7. Summary
  10. 7. Planning interMedia Applications
    1. 7.1. Introduction
    2. 7.2. Gathering Requirements
      1. 7.2.1. Functional Requirements
      2. 7.2.2. Data Requirements
      3. 7.2.3. Environmental Requirements—Context of Use
      4. 7.2.4. User Requirements
      5. 7.2.5. Usability Requirements
      6. 7.2.6. Tools and Techniques
        1. What Are Scenarios?
        2. interMedia Application Development
    3. 7.3. Define Architecture
      1. Applications
      2. 7.3.1. Technical Architecture
      3. 7.3.2. Client-server Architecture
      4. 7.3.3. Alternative Architectures
    4. 7.4. Data Modeling
      1. 7.4.1. Define Schema
    5. 7.5. Prototyping
      1. 7.5.1. Why Prototype?
      2. 7.5.2. What Is Prototyping?
      3. 7.5.3. Low-fidelity Prototypes
      4. 7.5.4. High-fidelity Prototypes
    6. 7.6. Refine Requirements
    7. 7.7. Test Infrastructure
    8. 7.8. References
  11. 8. Media in Object Types
    1. 8.1. Media Objects
    2. 8.2. Methods Available for ORDImage Object Type
      1. 8.2.1. Dealing with Image Metadata
        1. The getMetadata() Method
        2. The putMetadata() Method
    3. 8.3. Methods Available for ORDAudio Object Type
    4. 8.4. Methods Available for ORDVideo Object Type
      1. Object type
    5. 8.5. Methods Available for ORDDoc Object Type
    6. 8.6. SI_StillImage Object Type
      1. 8.6.1. SI_StillImage Methods
        1. Using SI_StillImage(content)
        2. Using the DBMS_LOB Package
        3. Using SI_StillImage(content, explicitFormat)
        4. Using SI_StillImage(content, explicitFormat, height, width)
        5. Using SI_MkStillImage1()
      2. 8.6.2. Methods for Image Processing
    7. 8.7. Object Tables
    8. 8.8. Summary
  12. 9. J2EE/ADF Application Development
    1. 9.1. Introduction
    2. 9.2. Application Development Framework
      1. 9.2.1. Creating the Model Component
      2. 9.2.2. Creating the Controller and View Components
    3. 9.3. interMedia Java Server Pages Tag Library
      1. 9.3.1. Retrieving Multimedia Data Using the interMedia JSP Tag Library
        1. Example of Retrieving Multimedia Data Using the interMedia JSP Tag Library
      2. 9.3.2. Uploading Multimedia Data Using the interMedia JSP Tag Library
    4. 9.4. interMedia Java Proxy Classes
      1. 9.4.1. A Note on the Context Parameter
      2. 9.4.2. Preparing to Use the Proxy Classes
        1. Creating the JDBC Connection
        2. Creating a New Media Row with the Media Objects and Create the Proxy Objects
        3. Execute an SQL Select Statement to Return a Media Column for Existing Rows and Obtain the Proxy Objects
        4. Use the Proxy Classes
        5. Update the Media Objects in the Databases
      3. 9.4.3. OrdAudio, OrdImage, OrdAudio, and OrdDoc
        1. OrdImage Noncommon Methods
        2. OrdAudio Noncommon Methods
        3. OrdVideo Noncommon
        4. OrdDoc Noncommon
      4. 9.4.4. OrdImageSignature Methods
    5. 9.5. interMedia Java Classes for Servlets
      1. 9.5.1. Media Delivery
        1. Media Delivery Using JSPs
        2. Media Delivery Using Servlets
      2. 9.5.2. Media Upload Classes for Servlets
        1. Media Upload Using OrdHttpUploadFormData
        2. Media Upload Using OrdMultipartFilter
    6. 9.6. Summary
  13. 10. Image Metadata Support
    1. 10.1. Introduction
    2. 10.2. Metadata Schemas
    3. 10.3. Extracting Image Metadata
    4. 10.4. Inserting Image Metadata
    5. 10.5. Indexing Image Metadata
      1. 10.5.1. Oracle Text Indexing
    6. 10.6. DICOM Metadata
    7. 10.7. Summary
  14. 11. Query Mode
    1. 11.1. Introduction
    2. 11.2. Querying Media Data
    3. 11.3. Attribute-based Retrieval
    4. 11.4. How Is Metadata Used in Query Processing?
    5. 11.5. Using SQL
    6. 11.6. Content-based Retrieval
    7. 11.7. PL/SQL Application Development
      1. 11.7.1. Developing PL/SQL Web Applications
      2. 11.7.3. Make Loops as Efficient as Possible
    8. 11.8. Server-side SQL
    9. 11.9. Text-based Retrieval
  15. 12. interMedia Application Performance
    1. 12.1. Identify Performance Needs and Goals
    2. 12.2. Tuning the Database
    3. 12.3. Creating Tables with Media Data
    4. 12.4. Distributing the I/O Load
    5. 12.5. Load Performance
    6. 12.6. Performance Tools
    7. 12.7. Delivery on the Web
    8. 12.8. Backup
    9. 12.9. Summary
  16. 13. Advanced Queries
    1. 13.1. Introduction
    2. 13.2. Content-based Image Retrieval in interMedia
    3. 13.3. Retrieval Process—Precision and Recall
    4. 13.4. Using SQL/MM StillImage for CBIR
      1. 13.4.1. Image Matching
      2. 13.4.2. For Color Matching—Using SI_ColorHistogram Object Type
        1. colorsList
        2. colorFrequenciesList
        3. colorPositions
        4. textureEncoding
    5. 13.5. Summary
  17. 14. Streaming Audio and Video
    1. 14.1. Introduction
    2. 14.2. Microsoft Media Services
      1. 14.2.1. Background
      2. 14.2.2. Integration with Oracle
      3. 14.2.3. Creating a Mount Point
      4. 14.2.4. Creating a Publishing Point
      5. 14.2.5. File Types Supported by the interMedia MMS Data Source Plug-in
    3. 14.3. Real/Helix Server
      1. 14.3.1. Background
      2. 14.3.2. Integration with Oracle
      3. 14.3.3. Creating a Mount Point
    4. 14.4. Creating an interMedia Streaming Server Plug-in Procedure
    5. 14.5. Summary
  18. Appendix
    1. Where to get more information