Oracle multimedialny

Jadwiga Gnybek

 

Aplikacje XXI wieku to aplikacje multimedialne. Niezależnie od tego, czy realizują funkcje e-commerce, edukacyjne, finansowe, czy też stanowią część medycznej aparatury diagnostycznej. Wszystkie one potrzebują składowania i szybkiego dostarczania użytkownikowi informacji zawierających zapisy audio, wideo czy też pliki graficzne. Odpowiedzią na te potrzeby jest Oracle Database 11g wraz z licznymi rozszerzeniami, do których zaliczamy również Oracle Multimedia. Dzięki temu połączeniu zarządzanie multimediami zyskało wszystkie najlepsze cechy baz danych Oracle – takie jak wydajność, stabilność, skalowalność i bezpieczeństwo.

 

Oracle Multimedia dla Oracle Database 11g to kontynuacja produktu Oracle interMedia, czyli zbiór mechanizmów umożliwiających zarządzanie składowanymi w bazie danych obrazami oraz plikami audio i wideo. Informacje multimedialne dawno już przestały być domeną rozrywki. Obsługa plików multimedialnych stanowi dziś integralną część biznesowych aplikacji medycznych, finansowych czy handlu internetowego.

Multimedia w biznesie? Tak, przecież nie od dziś mówi się, że jeden obraz zastępuje tysiąc słów. Dlatego też łączenie danych biznesowych z multimediami prowadzi do znacznego rozszerzenia zakresu gromadzonych danych przy jednoczesnym skróceniu czasu ich kolekcjonowania.

W bazie lub poza bazą

Oracle Multimedia do opisu danych multimedialnych wykorzystuje typy danych podobne do tych wykorzystywanych w JAVA i klasach C++. Dane multimedialne mogą być fizycznie składowane wewnątrz baz lub poza nimi. W bazie multimedia zapisywane są w polach typu BLOB, a ich zarządzanie podporządkowane jest transakcyjnym procedurom bazodanowym. Jeśli multimedia przechowywane są w plikach zewnętrznych, transakcyjność bazy danych nie wpływa na ich zawartość, a w bazie danych znajdujemy jedynie informacje (pointer) o lokalizacji pliku płaskiego z formacie BFILE. Pliki takie składowane mogą być: w katalogach serwera HTTP (wówczas opisane są adresem URL), w katalogach specjalizowanych serwerów multimediów lub innych wskazanych przez użytkownika zasobach dyskowych. Każdy z tych sposobów ma swoje wady i zalety. Multimedia w bazie danych są z pewnością bezpieczniejsze i łatwiejsze w synchronizacji z pozostałymi danymi biznesowymi. Składowanie multimediów poza bazą daje możliwość wykorzystania najnowszych metod zarządzania dużymi plikami multimedialnymi przez specjalizowane do tego celu serwery multimediów.

Ładowanie plików multimedialnych do bazy odbywać się może na dwa sposoby. Jednym z nich jest znany i stosunkowo prosty w obsłudze SQL*Loader. Umożliwia on przepisywanie danych z zewnętrznych plików multimedialnych do struktur tabel bazodanowych zawierających kolumny typy object. Innym sposobem jest stworzenie odpowiednich procedur w PL/SQL lub Javie.

Bez względu na to, którą formę składowania danych wybierzemy, informacje o atrybutach multimediów składowane są zawsze w bazie danych. To właśnie dzięki takim atrybutom możliwe jest przeszukiwanie bibliotek multimediów. Na przykład użytkownicy sklepów internetowych mogą wyszukiwać pliki muzyczne podając szereg informacji opisujących ich zawartość. Do informacji tych zaliczyć należy na pewno takie, jak tytuł, autor, wykonawca, data nagrania, nazwa płyty itd. To właśnie takie dane mogą towarzyszyć w bazie plikom multimedialnym.

Od formatu do formatu

Dane multimedialne charakteryzują się dużą różnorodnością formy. Każdy typ multimediów obfituje w niezliczoną liczbę formatów zapisu i kompresji. Na szczęście Oracle Multimedia nie wymaga konwersji tych danych do jedynie słusznych akceptowalnych formatów. Dzięki zapisowi w bazie w uniwersalnym polu binarnym, multimedia mogą przyjmować niemal dowolną formę. Trzeba natomiast zdawać sobie sprawę z przestrzeni dyskowej jakiej składowanie niektórych z nich wymaga. Wielkość zapisywanych i odczytywanych z bazy plików nie pozostaje również bez wpływu na wydajność multimedialnych aplikacji. Tak więc Oracle Multimedia wspiera większość popularnych formatów graficznych a wśród nich: TIFF, JPEG, BMP, TARGA, EXIF, PCX, PICT, GIF, CALS, SUN RASTER, FPIX, PNGF, PPMF, PGMF, PBMF, WBMP. Akceptowane są również tak specyficzne formaty, jak DICOM – będący formatem plików graficznych stosowanych w urządzeniach medycznych. Warto wspomnieć również o nie kompresowanym formacie plików graficznych RPIX, który będąc natywnym formatem Oracle może stanowić gateway pomiędzy Oracle Multimedia, a nie wspieranymi formatami zapisu. RPIX będąc formatem nie kompresowanym umożliwia ponadto dostęp do danych pojedynczego piksela obrazu.

Jeśli zapisywany w Oracle Multimedia plik posiada zakodowane metadane określające jego parametry lub opisujące jego zawartość, dzięki mechanizmom OrdImage informacje takie mogą być odczytane. Dane takie kodowane są zwykle w standardzie IPTC, EXIF, XMP lub IIM4, a po odczytaniu przepisywane są do formatu XML. Odczytanie oraz odkodowanie tych informacji umożliwia zapisanie ich w bazie w formie umożliwiającej przeszukiwanie, indeksowanie i udostępnianie innym aplikacjom. Oczywiście możliwe jest przeprowadzenie operacji odwrotnej, polegającej na opatrzeniu pliku graficznego odpowiednio zakodowanymi informacjami.

Oracle Multimedia pomaga również swoim użytkownikom w wykonywaniu innej częstej czynności na plikach multimedialnych – wspiera proces kompresji i dekompresji. Dostępnymi schematami kompresji są tu między innymi: bezstratny schemat CCITT G3 / G4 oraz – stosowany głównie do obróbki zdjęć – schemat stratny ISO/CCITT JPEG.

Dla poszerzenia liczby aplikacji z którymi pakiet ten może współpracować, wyposażono go również w funkcje wspierające konwersje pomiędzy różnymi formatami zapisu plików oraz funkcje pozwalające na realizację zadań operujących na zawartych w plikach danych, takich jak skalowanie, czy cropping (który umożliwia przygotowanie obrazów w wersji umożliwiającej ich prezentację w sieci WWW). Inne dostępne funkcje obróbki obrazu, to na przykład rotacja, odwracanie obrazu, korekcja gamma korekcja kontrastu itp. A wszystko to dostępne jest dla użytkowników bazy zgodnie ze standardem ISO/IEC 13249-5:2001 SQL/MM Part 5: Still Image Standard. W standardzie tym uregulowane zostały nie tylko definicje obiektów bazy relacyjnej przeznaczonych do przechowywania multimediów, ale również ich atrybuty, metody oraz powiązane z tymi obiektami funkcje i procedury SQL.

Obsługa DICOM

Oracle Multimedia DICOM to moduł wprowadzony do bazy już w wersji 10.2 a rozszerzony funkcjonalnie w Database 11g. Jego głównym zadaniem jest dostarczanie narzędzi niezbędnych do obróbki danych pochodzących z urządzeń medycznych. Do dyspozycji programistów mamy tu zatem: obiekty typu ORDDicom, wsparcie dla formatu DICOM (w tym ekstrakcja metadanych), obróbkę obrazu, sprawdzanie zgodności, usuwanie zapisów identyfikujących obiekt, tworzenie i uruchamianie obiektów DICOM oraz modyfikacje modelu danych DICOM.

W zależności od potrzeb wykorzystać możemy obiekty podobne do klas definiowanych w Java lub C++, noszące odpowiednio nazwy ORDImage, ORDAudio, ORDVideo lub ORDDoc. Ten ostatni stanowi obiekt uniwersalny, mogący przechowywać informacje multimedialne będące dowolnym połączeniem informacji graficznej, muzycznej lub obrazu wideo. W uzupełnieniu tak zdefiniowanych obiektów, Oracle Multimedia został wyposażony również w zbiór metod będących procedurami, które wykonać można na składowanych w bazie obiektach multimedialnych. Wśród metod tych znajdziemy mechanizmy eksportu i importu, bardzo przydatne przy przenoszeniu danych pomiędzy bazami oraz getMetadata i processCopy, służące kompresji i konwersji formatów. Aplikacje wykorzystujące ten pakiet dodają zwykle do istniejącego modelu danych kolumny typu object.

Wsparcie obsługi plików wideo w pakiecie Oracle Multimedia obejmuje przechowywanie plików zapisanych w formatach AIFF, AIFF-C, AUFF, WAV, MPEG I, MPEG II, MPEGIV, 3GP, Microsoft ASF i formacie Real Networks Real Audio. Dla plików typu wideo, wspieranymi formatami są QuickTime, AVI, MPEGI, MPEGII, MPEGIV, 3GP, Real Networks Real Video format i format Microsoft ASF.

Format z metkami

Mechanizmy pakietu potrafią wyekstrahować z wszystkich wymienionym powyżej formatów zakodowane tam informacje opisujące zawartość pliku. Informacje te dotyczyć mogą: typu źródła danych, miejsca ich składowania, nazwy pliku przechowującego dane, daty ostatniej modyfikacji, czy MIME. W przypadku danych graficznych metadane zakodowane w pliku źródłowym zawierać mogą również rozmiar obrazu, format zapisu, sposób kompresji. Dla plików muzycznych będą to informacje o liczbie kanałów, częstotliwości próbkowania, typie konwersji, czasie trwania utworu oraz opisy dotyczące autora lub wykonawcy. Pliki wideo zwykle oznaczane są wielkością ramki, rozdzielczością, czasem trwania projekcji, liczbą klatek, ilością kolorów oraz informacjami o twórcach nagrania.

Informacje takie mogą być na przykład przepisane do postaci umożliwiającej zarządzanie i przeszukiwanie zbiorem multimediów. Same pliki audio i wideo mogą oczywiście być składowane również poza plikami bazy danych.

W celu szybkiego dostarczenia do odbiorcy plików audio i wideo, Oracle Multimedia wyposażony został w umiejętność współpracy z Real Networks Server i Microsoft Streaming Server. Komunikacja z tymi produktami umożliwia zarówno dostarczanie użytkownikowi plików składowanych na tych serwerach, jak również wykorzystanie mechanizmów streamingu do dostarczania plików zapisanych w bazie Oracle 11g. Jeśli serwery steamingu nie są wykorzystywane, Oracle Multimedia potrafi również dostarczyć żądany plik w trybie „download and play”.

Integracja z Web

Pakiet Oracle Multimedia – jak niemal wszystkie pakiety, jest funkcjonalnie ściśle zintegrowany z technologią Web. Do zarządzania plikami multimedialnymi wykorzystywać możemy zatem Servlety, JSP , Java API oraz obiekty typu OrdAudio, OrdDoc, OrdImage i OrdVideo. Przykładem takiej integracji może być tu Oracle Application Server Portal. Oparty na portletach framework Portala przeznaczony do budowy profesjonalnych portali internetowych posiada również mechanizmy do zarządzania i prezentacji plików multimedialnych.

Już tradycyjnie korporacja Oracle oferuje również programistom Java zintegrowane środowisko JDE. Znany od dawna Oracle JDeveloper umożliwia bowiem budowę wielowarstwowych, opartych na komponentach Java aplikacji wykorzystujących funkcjonalności Oracle Multimedia, tak aby spełniały one wszelkie wymogi współczesnego użytkownika sieci Web. To właśnie dzięki Oracle Application Development Framework Business Components (ADF Business Components) będącego częścią JDeveloper, do dyspozycji programistów oddane zostały inteligentne bloki kodu realizujące wszystkie niezbędne udogodnienia w obsłudze multimediów. W zależności od potrzeb, do dyspozycji programistów oddane zostały Oracle Multimedia Java Classes znajdujące zastosowanie przy budowie servletów i JSP lub Multimedia Tag Library. Bez wątpienia servlety i JSP to propozycja umożliwiająca daleko idącą modyfikację ostatecznego kształtu aplikacji. Stawiając większe wymagania przed programistami, są zwykle stosowane do budowy aplikacji o dużym stopniu skomplikowania. Rozwiązaniem szybszym, a zarazem i prostszym w użyciu jest natomiast Multimedia Tag Library. Z pomocą tej biblioteki można szybko zbudować aplikacje proste, nie wymagające specjalistycznej kastomizacji i dużego doświadczenia programistycznego.

Multimedia, to dziś już zdecydowanie nie tylko rozrywka, dlatego też Oracle Multimedia stosowany może być również w aplikacjach stworzonych przez narzędzie Oracle Application Express (Oracle APEX), sprzedawane także pod nazwą HTML DB. Narzędzie to służy do budowy dostępnych za pośrednictwem przeglądarki internetowej aplikacji bazodanowych, nie wymagając od programisty dużego doświadczenia w konstruowaniu bezpiecznych i wydajnych rozwiązań biznesowych.

Dla bardziej wymagających, Oracle Multimedia może współpracować z aplikacjami pisanymi w Javie, C++ lub innych tradycyjnych narzędziach 3GL. Oczywiście, w przypadku wyboru takich technologii, przydatne stają się PL/SQL i OCI.

Podsumowując ten krótki przegląd funkcjonalności pakietu Oracle Multimedia zaznaczyć warto, że jest to skalowalny, wydajny i bezpieczny sposób składowania multimediów, tuż obok „tradycyjnych” danych biznesowych składowanych z powodzeniem w strukturach relacyjnej bazy danych. Jednym słowem: relacyjnie i multimedialnie.