Обзор возможностей Oracle Multimedia
23.01.2009 от aryndin99Архитектура
Oracle Multimedia (в прошлом Oracle interMedia) - это возможность Oracle Database 11g для управления мультимедийным контентом (изображения, звук, видео). Использование этой функции позволяет управлять мультимедийными данными интегрированно с реляционной информацией. Oracle Multimedia умеет работать с большинством популярных мультимедийных форматов. Хранить такие мультимедийные данные можно разными способами (внутри и вовне базы). Также предоставляется целый спектр интерфейсов для использования этих сервисов (объектный, реляционный). Для разработки приложений Oracle поставляет набор Java интерфейсов и компонентов.
На слайде ниже показана общая архитектура Oracle Multimedia
Типы данных
Поддержка мультимедийных данных реализована через использование объектно-реляционных типов данных:
- ORDAudio - имеет специфичные для звукового файла свойства
- ORDImage - имеет специфичные для графического файла свойства
- ORDVideo - имеет специфичные для видео файла свойства
- ORDDoc - имеет общие для всех мультимедиа файлов свойства
Как и любые объектные типы экземляры ORDAudio, ORDDoc, ORDImage и ORDVideo состоят из атрибутов (включает метаданные и медиаданные) и методов. Медиаданные – это реальное видео, аудио или графическое изображение. Метаданные – это информация о данных: длина объекта, метод компрессии, формат. Методы – это процедуры, которые могут быть выполнены для объекта, такие как getContent() и setProperties().
Все четыре типа данных хранят информацию в объектно реляционном типе данных ORDSource.
Медиаданные могут храниться как в виде BLOB (большой плюс – транзакционный контроль), а могут вовне базы данных. В последнем случае в базе данных будет храниться указатель на медиаданные. Указатель может быть в одном из следующих видов:
- BFILE
- HTTP URL
- Пользовательский источник для media data server (RealNetworks Streaming Servers или Microsoft Windows Media Services), а также других серверов
Примеры приложений
Некоторые примеры приложений, которые могут использовать Oracle Multimedia:
- Электронный архив с медицинскими записями (включая DICOM изображения)
- Удаленное обучение
- Агенство недвижимости
- Архив фотографий (художественная галерея или профессональные фотографы)
- Электронный архив документов
- Публикация в web
Отдельного упоминания заслуживает возможность хранения DICOM данных. Это стандартный формат для хранения медицинских изображений. Этот формат включает в себя также набор метаданных (ФИО пациента, дату снимка и т.д.). Более подробно я опишу этот формат в отдельной статье.
Загрузка данных
Мультимедийные данные перед использованием в базе данных должны быть туда загружены. Для этого можно использовать следующие инструменты:
- SQL*Loader – встроенная утилита Oracle, позволяющая загружать данные в базу. В нашем случае – LOB данные и внешние мультимедийные файлы в таблицу
Пример загрузки с помощью SQL*Loader
- PL/SQL
Доступ к данным, хранящимся в Oracle Multimedia
Приложения могут получать доступ к данным в Oracle Multimedia с помощью SQL, PL/SQL, OCI или Java:
- Oracle Multimedia Java API
Позволяет Java приложениям в любом звене (база данных, сервер приложений, клиент) получать и модифицировать мультимедийные данные. Oracle Multimedia Java API позволяет включать в JDBC result set как традиционные реляционные, так и Oracle Multimedia данныею - Streaming Content from Oracle Database
Можно также использовать специальный plug-in от Oracle для распространения данных через RealNetworks и Microsoft Windows Media сервера.
Plug-in можно скачать по адресу: http://www.oracle.com/technology/software/products/intermedia/index.html
Java-приложение для Oracle Multimedia
1. Прежде чем начинать разработку приложения давайте проинсталлируем базу данных с примерами. По этой ссылку нужно выполнить пункты 1 и 2.
2. Кроме того, необходимо проинсталлировать JDK от Sun. Скачать ее можно вот здесь.
3. Также давайте проинсталлируем Standalone OC4J. Можно взять тот, который идет в поставке JDeveloper, но я сейчас буду говорить об обычном OC4J, который можно скачать здесь.
4. Распаковать OC4J на сервере.
5. После инсталляции нужно будет прописать переменную JAVA_HOME, указывающую на папку, куда был проинсталлирован JDK. В моем случае это папка /u01/app/oracle/product/11.1.0/db_1/jdk1.6.0_11, т.е. команда
export JAVA_HOME=/u01/app/oracle/product/11.1.0/db_1/jdk1.6.0_11
Также нужно подредактировать файл $OC4J_HOME/bin/oc4j. В этом файле нужно прописать переменную ORACLE_HOME, чтобы она указывала на папку $OC4J_HOME. Я сделал вот так (у меня глобальная переменная ORACLE_HOME указывает на /u01/app/oc4j):
#########################################################
########## START CONFIGURATION SECTION ##################
#########################################################
ORACLE_HOME=/u01/app/oc4j
J2EE_HOME=$ORACLE_HOME/j2ee/home
6. Создадим таблицы для нашего приложения
Создадим пользователя scott:
[sourcecode language="sql"]
create user scott identified by tiger;
grant connect,resource to scott;
[/sourcecode]
Наше приложение будет демонстрировать применение сервлетов для загрузки и выгрузки мультимедийных данных в и из базы данных. Пользователи получают доступ к фотоальбому для просмотра содержимого фотоальбома, включая предпосмотровые (thumbnail) версии полноразмерных изображений. Доступна также возможность загрузки фотографий в альбом. Наше приложение будет использовать таблицу photos и последовательность (sequence) photos_sequence. Создадим их
[sourcecode language="sql"]
CREATE TABLE photos( id NUMBER PRIMARY KEY,
description VARCHAR2(40) NOT NULL,
location VARCHAR2(40),
image ORDSYS.ORDIMAGE,
thumb ORDSYS.ORDIMAGE ) tablespace USERS
--
-- store full-size images and thumbnail images as SecureFile LOBs
--
LOB(image.source.localdata) STORE AS SECUREFILE
LOB(thumb.source.localdata) STORE AS SECUREFILE;
CREATE SEQUENCE photos_sequence;
[/sourcecode]
Типы данных для столбцов image и thumb определены как Oracle Multimedia image объекты. Они буду содержать соответственно полноразмерную и уменьшенную версии изображения.
7. В поставке Examples у нас уже есть написанное приложение для Oracle Multimedia и оно находится в папке $ORACLE_HOME/ord/http/demo/servlet. В этой папке есть файл README.TXT. В нем описано как проинсталлировать это приложение.
- Отредактируйте файл $ORACLE_HOME/ord/http/demo/servlet/PhotoAlbumServlet.java, введя корректную информацию для подключения к базе:
[sourcecode language="java"]
private final static String JDBC_CONNECT_STRING =
"jdbc:oracle:thin:@localhost:1521:orcl"; // JDBC Thin driver
private final static String JDBC_USER_NAME = "scott";
private final static String JDBC_PASSWORD = "tiger";
[/sourcecode] - Скомпилируйте файл PhotoAlbumServlet.java и полученный PhotoAlbumServlet.class
/u01/app/oracle/product/11.1.0/db_1/jdk1.6.0_11/bin/javac
-cp $ORACLE_HOME/ord/jlib/ordhttp.jar:$ORACLE_HOME/ord/jlib/ordim.jar:
$ORACLE_HOME/jdbc/lib/ojdbc6.jar:$ORACLE_HOME/sqlj/lib/runtime12.jar:
$ORACLE_HOME/oc4j/j2ee/home/lib/servlet.jar PhotoAlbumServlet.java - Cкопируйте полученный файл в папку $OC4J_HOME/j2ee/home/default-web-app/WEB-INF/classes
- Cкопируйте также уже заранее скомпилированный класс файл PhotoAlbumRequest.class в папку $OC4J_HOME/j2ee/home/default-web-app/WEB-INF/classes
- Скопируйте из папки $ORACLE_HOME/ord/jlib в $OC4J_HOME/j2ee/home/lib/ 2 файла: ordim.jar и ordhttp.jar.
- В файл $OC4J_HOME/j2ee/home/config/application.xml добавьте строки для ссылки на библиотеки
<library path="../../home/lib/ordim.jar" />
<library path="../../home/lib/ordhttp.jar" /> - В файле $OC4J_HOME/j2ee/home/default-web-app/WEB-INF/web.xml необходимо прописать mapping для сервлета:
[sourcecode language="xml"]
PhotoAlbumServlet
PhotoAlbumServlet
PhotoAlbumServlet
/PhotoAlbumServlet
[/sourcecode] - Пользователем root разрешите запуск oc4j:
chmod a+x $OC4J_HOME/bin/oc4j - Запустите OC4J
[sourcecode language="java"]
$OC4J_HOME/bin/oc4j -start
[/sourcecode] - Зайдите через Internet Explorer в альбом
http://server:8888/PhotoAlbumServlet
- Вам также могут быть интересны следующие статьи:
- Oracle Multimedia DICOM
- Пример триггера на spatial таблицу
- Работа с Georaster
- Подход Load-On-Demand к обработке сетевой модели данных
- Инсталляция пространственных веб-сервис в OC4J
Рубрики: Oracle Multimedia | Комментариев нет »
