Jeszcze kilka lat temu, kiedy po wielkiej rewolucji odeszły w zapomnienie języki strukturalne, a na ich miejsce pojawiły się języki zorientowane obiektowo, wszyscy spodziewali się, że historia powtórzy się także na polu baz danych. Wzrost roli Internetu oraz danych multimedialnych, z którymi relacyjne bazy danych radzą sobie nienajlepiej, prorokował świetlaną przyszłość dla systemów obiektowych. Niestety, rzeczywistość okazała się inna. Jak podaje [Leavitt 2000], dzisiejszy udział systemów obiektowych baz danych w rynku komercyjnych baz danych sięga jedynie kilku procent.
W dalszej części pracy zostaną zaprezentowani wiodący obecnie producenci systemów obiektowych baz danych oraz oferowane przez nich rozwiązania.
Firma Object Design została założona w roku 1988 w Burlington w USA. Pierwsza wersja bazy danych ObjectStore została wydana w roku 1990. W roku 1988 firma zaczęła tworzenie swojego drugiego, po bazie ObjectStore, sztandarowego produktu o nazwie eXcelon. Pierwsza wersja owego systemu została wydana w roku 1999. Stał się on na tyle ważny dla firmy, że w roku 2000 zmieniła ona swoją nazwę na eXcelon. Dział zajmujący się obiektowymi bazami danych stał się autonomiczną częścią firmy, zachowując swoją nazwę Object Design. W chwili obecnej dostępna jest baza ObjectStore w wersji 6.0. Informacje zawarte w niniejszym rozdziale pochodzą z [eXcelon 2002a-c] oraz następujących stron WWW:
http://www.exceloncorp.com
http://www.odi.com
http://www.objectdesign.com
Produkt ObjectStore jest wiodącą bazą obiektową na rynku. Jej udział jest szacowany na 40% wszystkich komercyjnych obiektowych serwerów baz danych. Produkt ten jest najczęściej wykorzystywany do zadań związanych z telekomunikacją oraz e biznesowych rozwiązaniach z dostępem przez WWW. Baza ta była również wykorzystywana na uniwersytecie MIT do badań nad genomem ludzkim (http://www-genome.wi.mit.edu). Firma eXcelon oferuje również jednostanowiskową wersję zwaną ObjectStore PSE for Java, bądź ObjectStore PSE for C++, w zależności od wykorzystywanego języka. Wersja PSE pomyślana jest jako produkt do różnego rodzaju urządzeń elektronicznych. Aby sprostać wymaganiom stawianym przez takie urządzenia, ma on bardzo niewielki rdzeń, możliwy do umieszczenia w pamięciach typu (EP)ROM.
Cały produkt składa się z następujących elementów: Baza ObjectStore, Active Toolkit, Database Designer, Inspector, ObjectForms, Performance Analyzer, Object Manager.
ObjectStore Server – System ten jest w pełni obiektową bazą. Produkt ów może pracować w dwóch trybach. W pierwszym jego działalność obejmuje wszystkie aspekty pracy bazy, natomiast w drugim (ang. cache forward) produkt pracuje jako proxy. Właściwą bazą jest wtedy inna, relacyjna baza, natomiast ObjectStore ma za zadanie z jednej strony być widzianą jako obiektowa baza danych przez aplikacje, natomiast z drugiej strony być widzianą jako relacyjny klient przez właściwą bazę. Interfejs zewnętrzny bazy jest jednakowy tak, że aplikacja klienta nie ma możliwości rozróżnienia w którym trybie pracuje ObjectStore. Baza ta może przechowywać klasy języków Java oraz C++. Wiązanie do Javy jest zgodne ze standardem ODMG 3.0, natomiast wiązanie z językiem C++ oparte jest na własnym rozwiązaniu.
Active Toolkit – Narzędzie to pozwala na łączenie bazy danych ObjectStore z dowolnym językiem umożliwiającym wykorzystanie ActiveX.
Component Wizard – Narzędzie to umożliwia tworzenie nagłówków klas oraz interfejsów komponentów w językach C++ lub Java na podstawie schematu danych zawartego w bazie.
Database Designer – Graficzne narzędzie do budowania modelu obiektowego bazy danych. Narzędzie jest niezależne od żadnego konkretnego języka programowania. Zbudowany schemat można potem zapisać w postaci nagłówków klas w konkretnym już języku.
Inspector – Graficzna konsola do bazy danych. Za pomocą tego narzędzia użytkownik może przeglądać, edytować i zadawać zapytania do bazy. Inspector umożliwia także eksport danych oraz tworzenie raportów.
ObjectForms – Za pomocą ObjectForms można automatycznie generować dynamiczne strony WWW. Na stronach tych można oczywiście prezentować dane pochodzące z bazy ObjectStore
Performance Analyzer – Za pomocą tego narzędzia można automatycznie przeprowadzać analizy działania bazy, tworzyć raporty statystyczne oraz archiwizować wyniki analiz. Narzędzie ułatwia dopracowywanie konfiguracji bazy.
Object Manager – Narzędzie zarządzające predefiniowanymi, gotowymi do wykorzystania komponentami, które zostały napisane z myślą o przechowywaniu danych takiego typu jak: dźwięk, obraz, pliki PDF, teksty, wideo.
ObjectStore obsługuje następujące platformy:
Microsoft Windows 2000, NT, 98
Sun Solaris SPARC, Intel
Hewlett-Packard HP-UX
Silicon Graphics IRIX
IBM AIX
Compaq Tru64 UNIX
Firma Objectivity została założona w roku 1988. Jej działalność jest głównie skierowana na rozwijanie obiektowej bazy danych Objectivity. Wcześniejsze wydania tego produktu miały miejsce w roku 1997 (wersja 5.0) oraz w roku 2000 (wersja 6.0). Obecnie najbardziej aktualną wersją jest 7.0. Firma oferuje ją od roku 2002. Zaprezentowane w dalszej części pracy informacje pochodzą z [Objectivity 2001] oraz strony WWW producenta:
http://www.objectivity.com
Objectivity jest rozproszonym systemem obiektowych baz danych. Objectivity przechowuje dane w formacie natywnym dla aplikacji. Architektura rozproszona zapewnia skalowalność, a co za tym idzie, możliwość dostosowania pojemności i wydajności systemu dla danego przedsięwzięcia.
Serwer ten można integrować z aplikacjami w sposób obiektowy, czyli przesyłać dane do/z bazy za pomocą wiązań do odpowiednich języków, a także w tradycyjny sposób, czyli za pomocą SQL’a.
Produkt Objectivity składa się z wielu programów, wśród których można wyróżnić następujące grupy:
baza danych, czyli: Objectivity/DB, Objectivity/DB Fault Tolerant Option, Objectivity/DB Data Replication, Objectivity/DB In-Process Lock Server, Objectivity/DB Open File System, Objectivity/DB Secure Framework,
wiązanie do języka C++, czyli: Objectivity/C++, Objectivity/C++ Data Definition Language oraz Objectivity/C++ Standard Template Library,
wiązanie do języka Java: Objectivity/Java,
wiązanie do języka Smalltalk: Objectivity/Smalltalk,
narzędzia zgodne z SQL-92: Objectivity/SQL++.
Objectivity/DB – Jest to serwer bazodanowy. Jego wyróżniającą się cechą jest rozproszona architektura. Zamiast jednego centralnego serwera, w rozwiązaniach opartych na Objectivity/DB można spotkać trzy typy serwerów: serwery blokujące, serwery lokalne oraz serwery odległe (rys. 6.1). Serwery blokujące gwarantują spójność danych, serwer lokalny to serwer, który jest bezpośrednio połączony z aplikacją korzystającą z danych w bazie. Serwery odległe to właściwe aplikacje przechowujące obiekty. Serwer odległy to oddzielny proces, który w praktyce wcale nie musi znajdować się na odległej maszynie. Dwa typy odległych serwerów mogą pracować w rodzinie Objectivity. Pierwszy, nazywany Objectivity/DB Advanced Multithreaded Server (AMS) jest wielowątkową aplikacją oferującą szybki dostęp do danych. Drugim typem jest serwer udostępniający dane poprzez Network File Servers (NFS).
RYSUNEK 6.1. SCHEMAT POŁĄCZEŃ MIĘDZY TRZEMA TYPAMI SERWERÓW Z RODZINY
OBJECTIVITY ORAZ APLIKACJĄ.
Objectivity/DB Fault Tolerant Option – Produkt ten ma za zadanie zapobiegać sytuacjom krytycznym, oraz jeśli już się zdarzą, obsługiwać je. Do jego głównych zadań należy: poprawianie dostępności do danych poprzez odpowiednie rozkładanie obiektów między serwerami; pomoc w zarządzaniu blokowaniem obiektów po awariach w sieci; replikacja schematu danych. Przy użyciu Fault Tolerant Option administrator może podzielić bazę na kilka autonomicznych części. Działanie tego narzędzia jest niewidoczne dla aplikacji korzystających z bazy.
Objectivity/DB Data Replication – Narzędzie to umożliwia replikacje danych pomiędzy serwerami bazodanowymi. Replikacje pomagają w rozłożeniu obciążenia serwerów oraz eliminują pojedyncze punkty, których awaria może unieruchomić całą bazę.
Objectivity/DB In-Process Lock Server – W uzupełnieniu do standardowego serwera blokującego, Objectivity oferuje serwer blokujący, który może być podłączony do danej aplikacji. Serwer ten może okazać się przydatny w przypadku, kiedy aplikacja jest wielowątkowa. Nie istnieje wówczas potrzeba każdorazowego odwoływania się do ogólnego serwera blokującego, co znacznie przyspiesza dostęp do danych.
Objectivity/DB Open File System – Narzędzie to umożliwia łączenie Objectivity/DB z HPSS14, a także tworzenie interfejsów do innych hierarchicznych systemów składowania danych.
Objectivity/DB Secure Framework – Narzędzie, które pracuje wspólnie z Objectivity/DB Open File System i ma za zadanie umożliwiać autoryzowany dostęp do danych.
Wiązanie do języka C++ – Wiązanie to jest częściowo zgodne z ODMG 3.0. Zapytania tworzy się, zamiast w języku OQL jak w ODMG, w SQL++, który jest własnym rozwiązaniem firmy ODMG.
Wiązanie do języka Java – Wiązanie to jest w pełni zgodne z ODMG 3.0.
Wiązanie do języka Smalltalk – Wiązanie to jest w pełni zgodne z ODMG 3.0. Wiązanie to dodatkowo rozszerza język znany z produktu VisualWorks firmy ObjectShare o cechy wymagane przy projektowaniu aplikacji związanych z bazą
Objectivity.
Objectivity/SQL++ – Język SQL++ jest językiem do tworzenia, uzyskiwania oraz kasowania obiektów przechowywanych w bazie Objectivity/DB. SQL++ jest w pełni zgodny z SQL-89 Entry Level Standard oraz częściowo zgodny z SQL-92 Intermediate Level Standard. Języka tego można używać jako osadzonych zapytań w języku C++. W porównaniu z językiem SQL, SQL++ wzbogacono o możliwość manipulowania obiektami. Te rozszerzenia obejmują dziedziczenie obiektów, dostęp do danych składowych obiektów oraz obsługę danych takich jak tablice. Język SQL++ umożliwia także wykonywanie metod zawartych w obiektach języka C++. Jako dodatek do SQL++ rozprowadzany jest sterownik ODBC, który umożliwia aplikacjom zgodnym z ODBC manipulowanie danymi w bazie Objectivity/DB przy pomocy SQL++.
Platformy wspierane przez system to:
Linux
Solaris
HP-UX
IRIX
AIX
Tru64
Windows
Firma Versant została założona w roku 1998 w USA. Głównym celem firmy było rozwijanie jej obiektowej bazy danych. W roku 2000 zalety tej bazy doceniła firma IBM, kiedy to rozpoczęła się współpraca mająca na celu integrację serwera aplikacji WebSphere firmy IBM oraz bazy danych Versant. Obecnie firm Versant oferuje swój produkt w wersji 6.0.5. Wersja ta została zaprezentowana po raz pierwszy w roku 2002.
Informacje przedstawione w kolejnych podrozdziałach zostały wybrane z [Versant 2002a-d] oraz strony WWW producenta:
http://www.versant.com/
Produkt Versant Developer Suite jest jednym z najpopularniejszych na rynku obiektowych baz danych. Z jego usług korzystają między innymi takie firmy i organizacje jak: AT&T, Alcatel, British Airways, Departament obrony USA, Ericsson, Siemens.
Produkt Versant Developer Suite jest całym środowiskiem programistycznym, a nie tylko obiektową bazą danych. W skład pakietu wchodzą: Versant ODBMS, wiązania do języków C++ oraz Java, XML Toolkit i Asynchronous Replication Framework. Produkt jest częściowo zgodny z ODMG 3.0, wprowadza także własny język zapytań VQL.
Na lato 2002 roku firma Versant planuje wydanie nowej wersji swojej bazy, w której dodana zostanie obsługa standardu Java Data Objects.
Versant ODBMS – Wewnętrznie baza jest złożona z kilku modułów. Modułem, który odpowiada za komunikację z otoczeniem jest Versant Manager. Moduł ten ma za zadanie umożliwiać komunikację pomiędzy interfejsami z językami programowania a rdzeniem bazy, czyli modułem Versant Server. Versant Manager zarządza zapytaniami, a także schematem bazy. Moduł ten pomaga w wykonywaniu transakcji, a także zarządza działaniem podręcznego bufora (ang. cache). Versant Server to rdzeń bazy, jego zadanie sprowadza się do wykonywania zapytań, modyfikacji danych w bazie, wypełniania bufora podręcznego, tworzenia indeksów, zarządzania transakcjami, blokowania, a także logowania zdarzeń. Moduł Virtual System Layer to łącze pomiędzy systemem operacyjnym a resztą produktów z Developer Suite. Jego istnienie ułatwia rozwijanie produktu na wielu platformach sprzętowych. Zapytania do bazy wykonuje się przy pomocy języka VQL (Versant Query Language). Język ten czerpie dużo z języka SQL-92 oraz OQL 3.0.
Wiązanie do języka C++ – Wiązanie to jest zgodne ze standardem ODMG 3.0 z dokładnością do języka zapytań, który został zmieniony z OQL na VQL. Wiązanie to zostało zorganizowane w postaci biblioteki klas oraz typów. Dodatkowo w skład wiązania wchodzą: Schema Capture Utility - tworzące nagłówki klas na podstawie schematu bazy, Drop Classes Utility - usuwające klasy ze schematu bazy, Drop Instances Utility - usuwające obiekty z bazy oraz Check Facility - sprawdzające poprawność syntaktyczną kodu.
Wiązanie do języka Java – Wiązanie to jest zgodne ze standardem ODMG 3.0, a także wprowadza własne, dodatkowe cechy. Wiązanie to podzielone jest na dwa poziomy. W jednym poziomie można zarządzać działaniem całej bazy, natomiast drugi poziom ma za zadanie umożliwić przenoszenie obiektów Javy z/do bazy oraz operacje bazodanowe według ODMG.
XML Toolkit – Produkt ten ma za zadanie mapować definicje klasy oraz dane z obiektów do postaci XML’a oraz w drugą stronę. Umożliwia to przechowywanie obiektów w bazie w postaci XML, co dla niektórych rozwiązań jest bardzo korzystne. Narzędzie działa z wiązaniem do C++ oraz Java.
Asynchronous Replication Framework – Jest to narzędzie służące do replikacji danych zawartych w bazach Versant. Możliwa jest replikacja synchroniczna15, a także asynchroniczna16.
Wśród obsługiwanych platform znajdują się:
Solaris
Windows
AIX
HP
Linux
SGI
Tru64
Firma Poet Software została założona w roku 1993 w Hamburgu. W roku 1995 siedziba została przeniesiona do San Mateo w Kalifornii. Głównym produktem firmy jest obiektowa baza danych FastObjects. Ostatnia wersja oznaczona numerem 9.0 została wydana w roku 2002. Kolejne podrozdziały opierają się na informacjach wybranych z [Chase 2001, Meyer 2001a-b, Poet 2001a-b] oraz następujących stron WWW:
http://www.poet.com
http://www.fastobjects.com
Firma Poet Software oferuje swoją bazę danych FastObjects w kilku wersjach, zależnie od potrzeb klienta. Baza ta może pracować zarówno jako wielodostępny serwer, jak i baza funkcjonująca w urządzeniach elektronicznych.
FastObjects t7 – Wersja t7 to sztandarowy produkt firmy Poet Software. Jest to wielodostępny obiektowy serwer baz danych. Standardowo jest on pomyślany do współpracy z językami C++ oraz Java. Produkt jest częściowo zgodny ze standardem ODMG. Językiem zapytań do bazy jest OQL w wersji 2.0. Wiązanie do C++ zmienia trochę standard wiązania z ODMG (wspólny język zapytań), natomiast wiązanie do języka Java jest w pełni zgodne z ODMG 3.0. Obecne (maj 2002) wersje beta produktu posiadają zaimplementowany standard Java Data Objects, zatem można się spodziewać, że kolejne wydania produktu FastObjects będą umożliwiały dostęp do bazy z poziomu Javy również w ten sposób. Serwer umożliwia prowadzenie wielu równoczesnych transakcji zarówno przez klientów C++ jak i Java. Dodatkowo posiada wbudowane mechanizmy automatycznego sprawdzania i ewentualnej naprawy danych. Istnieje możliwość eksportu oraz późniejszego importu klas oraz obiektów do postaci XML.
FastObjects j1 – FastObjects j1 jest okrojoną wersją t7. Można jej używać bezpłatnie w zastosowaniach niekomercyjnych. Produkt ma na celu popularyzowanie marki, posiada jednak możliwość łatwej rozbudowy do wersji t7. FastObjects j1 może współpracować jedynie z obiektami języka Java.
FastObjects e7 – Wersja e7 bazy FastObjects została pomyślana jako serwer do zastosowań osadzonych w urządzeniach elektronicznych. Baza ta może przechowywać obiekty języków C++ oraz Java.
FastObjects j2 – Wersja j2, podobnie jak wersja e7, ma za zadanie pracować w urządzeniach elektronicznych. Serwer ten potrafi przechowywać jedynie obiekty języka Java. Mniejsze możliwości niż wersja e7 rekompensuje mniejszą zajętością zasobów sprzętowych, co w zastosowaniach osadzonych ma szczególne znaczenie.
Do wspieranych platform zaliczają się:
Windows
Linux
HP-UX
Sun Solaris
Novel Netware
Firma GemStone została założona w roku 1982 w USA. W roku 1985 została wydana pierwsza wersja systemu GemStone/S. Obecnie głównymi produktami firmy są: GemStone/S, GemStone/J, GemFire, GemStone Facets. Ostania wersja GemStone/S została wydana w roku 2002 i została oznaczona numerem 6.0. Ostania wersja GemStone/J została wydana w roku 2002 i została oznaczona numerem 4.0. Informacje przedstawione w kolejnych podrozdziałach pochodzą z [GemStone 2000a-b,
GemStone 2001] oraz strony WWW producenta:
http://www.gemstone.com
Firma GemStone oferuje produkty: GemStone/S oraz GemStone/J. Są one skierowane do klientów, którzy chcą rozwijać swoje produkty w Smalltalk’u, Javie lub C/C++. Nie są to tylko obiektowe bazy danych, lecz całe serwery aplikacji. W niniejszej pracy omówiony został jedynie aspekt obiektowego przechowywania danych przez te serwery.
Persistent Cache Architecture – baza danych zawarta w pakiecie GemStone/J pozwala na przechowywanie klas języka Java. Baza ta nie czerpie, jak większość innych produktów, ze standardu ODMG, ale wzoruje swój interfejs na standardowym API języka Java. W bazie można efektywnie przechowywać tablice oraz kolekcje znane z pakietu java.util w typach zdefiniowanych przez GemStone. Standardowa biblioteka jest nieefektywna kiedy przechowuje się bardzo duży zestaw danych, gdyż wszystko jest trzymane w pamięci operacyjnej. Używanie do tego celu biblioteki bazy z GemStone/J nie niesie ze sobą takich niedogodności. Baza wspiera tworzenie indeksów, blokowanie danych, a także automatyczne wykrywanie zakleszczeń.
Dostęp do obiektów Persistent Cache Architecture może odbywać się w sposób znany z java.util, a także za pomocą języka zapytań GemStone/J Query Language. Język ten jest oparty na SQL-92, ale posiada również własne rozszerzenia obiektowe.
Gemstone/S – produkt pierwotnie był projektowany jako środowisko dla aplikacji napisanych w języku Smalltalk, później jednak został rozszerzony o wsparcie dla języków C++ oraz Java. W pakiecie tym zawarta jest baza dla języka Smaltalk zwana Personal Information Manager. Baza ta jest oparta na rozwiązaniach firmy GemStone. W pakiecie tym jest również zawarta baza Persistent Cache Architecture, taka sama jak w pakiecie GemStone/J.
Platformy wspierane przez GemStone/S to:
Solaris
HP-UX
AIX
Windows
Z kolei GemStone/J może działać na:
Solaris
Windows
Pierwsza wersja bazy danych Matisse powstała na Uniwersytecie Technicznym w Compiegne (Francja). Po krótkim czasie produkt się skomercjalizował i był dalej rozwijany dla potrzeb francuskiej agencji energii nuklearnej. W roku 1995 produktem zainteresowali się specjaliści z USA. Zainteresowanie to wzrosło na tyle, że w roku 1998 rozwój projektu przeniesiono do Stanów Zjednoczonych. Powołano w tym celu firmę Fresher. Obecnie firma ta oferuje bazę Matisse w wersji 6.0. Wersja ta została pierwszy raz zaprezentowana w roku 2001. Przedstawione w kolejnych podrozdziałach informacje zostały wybrane z [Fresher 2001, Fresher 2002] oraz strony WWW:
http://www.fresher.com
Matisse to baza w pełni obiektowa, potrafiąca jednak także przechowywać dane w postaci relacyjnej. Od ponad dziesięciu lat jest z powodzeniem używana przez francuską agencję energii nuklearnej, a także w wielu francuskich firmach i organizacjach, m.in. koncernach farmaceutycznych, kolei, armii.
Serwer Matisse – jest bazą, której siła tkwi w interfejsach do bardzo wielu języków programowania. Wśród tych języków można znaleźć na przykład: Java, C++, Perl, Python, PHP, C, Eiffel. Z tych języków można korzystać z bazy w standardowy sposób za pomocą języka SQL, jak również w sposób obiektowy. Matisse rozszerzyła język SQL o możliwość obsługi obiektów. Właśnie język zapytań do bazy jest jedyną przyczyną niepełnej zgodności z ODMG 3.0. Matisse wspiera ODL 3.0, a także wiązania do C++ oraz języka Java zgodne z ODMG.
mt_xml – Matisse udostępnia specjalne udogodnienia oraz narzędzia do języka XML. XML może być przechowywany w bazie, możliwe są także konwersje danych do tego języka i z powrotem.
mt_dba – jest to narzędzie administratorskie pozwalające na konfigurowanie, start, monitorowanie i wstrzymywanie bazy. Umożliwia także tworzenie kopii danych oraz zarządzanie poziomem bezpieczeństwa bazy.
mt_editor – narzędzie to pozwala na przeglądanie bazy, ręczne modyfikowanie obiektów oraz eksport schematu bazy do postaci ODL.
mt_sql – narzędzie podobne do mt_editor’a, jednakże używa się go w celu operowania na danych zapisanych relacyjnie.
mt_monitor – umożliwia monitorowanie pracy serwera. Jest on pomocny w dopracowywaniu konfiguracji serwera.
Windows
Linux
Sun Solaris
FreeBSD
Baza danych Jasmine powstała na mocy porozumienia firmy Computer Association oraz Fujitsu. Firmy te zadeklarowały wspólną chęć rozwijania obiektowej bazy danych. Pierwsza wersja produktu została zaprezentowana w roku 1996. Kolejne ważne wydanie produktu przypadło na rok 1998. Obecnie firmy oferują wersję wydaną w roku 2000. Fujitsu nazywa ją „Jasmine 2000”, natomiast Computer Association „Jasmine ii”.
Kolejne podrozdziały prezentują informacje pochodzące z [CA 2001, Fallon 1998, Fujitsu 2001, Ketabchi 1998] oraz następujących stron WWW:
http://www.cai.com/
http://www.fujitsu.co.jp/en/
Jasmine to produkt rozwijany równolegle przez dwie firmy: Computer Association oraz Fujitsu. Computer Association oferuje bazę Jasmine jako część większego produktu Jasmine ii The eBusiness Platform i nazywa ją „Jasmine ODB The Object Database”, natomiast Fujitsu oferuje bazę pod nazwą „Jasmine 2000”. W skład bazy Jasmine wchodzą następujące moduły: Object Database, Browser, Builder, WebLink, Extendable Class Libraries oraz pakiet wiązań do języków programowania. Nie wszystkie wyżej wymienione części wchodzą w skład pakietu każdego z producentów.
Object Database – Obiektowa baza danych Jasmine wspiera wszystkie obiektowe cechy, czyli: klasy abstrakcyjne, hermetyzację, dziedziczenie (w tym wielokrotne), unikalną identyfikację obiektów, polimorfizm oraz agregację. Oprócz obiektów może przechowywać w czystej postaci dane multimedialne. Do korzystania z bazy stworzony został specjalny język ODQL (Object Definition and Query Language). Język ten umożliwia tworzenie klas, dokonywanie zmian w bazie, zapytania do bazy, a także zestaw konstrukcji programistycznych nieznanych z klasycznych języków zapytań.
Języka ODQL można używać jako samodzielnego języka, a także wywoływać go z innych języków programowania.
Programming Language Support – Jest to pakiet wiązań do opisanych niżej języków programowania, a także narzędzia ułatwiające korzystanie z języka XML.
Wiązanie do C++ – Język C++ jest obok ODQL głównym językiem, który uwzględniano podczas projektowania bazy. Jasmine zapewnia pełną zgodność z tym językiem. Oprócz przechowywania klas C++ istnieje możliwość pisania rozszerzeń do Jasmine w tym języku.
Java Proxies – Java Proxies jest wiązaniem obiektowej bazy danych Jasmine do języka Java. Wiązanie to składa się z biblioteki klas umożliwiającej korzystanie z bazy Jasmine. Aby z poziomu języka Java pobrać istniejące dane z bazy, używa się języka ODQL. Chcąc dodać obiekty Javy do bazy, wywoływane jest dodatkowe narzędzie zwane JPCG (Java Proxies Class Generator), które ma za zadanie stworzyć semantyczny ekwiwalent definicji klas Javy w postaci ODQL.
Persistent Java – Persistent Java umożliwia wiązanie bazy Jasmine do języka Java zgodne ze standardem ODMG. Produkt ten składa się z dwóch części: Java Persistence Processor oraz Java Persistence Runtime. Narzędzie to umożliwia przechowywanie obiektów Javy w bazie, a także automatycznie tworzy definicje klas potrzebnych do schematu bazy. Zapytania do bazy formułuje się w przypadku Persistent Java w języku OQL, zamiast, jak to było w przypadku Java Proxies, w ODQL.
Jasmine Java Beans – Jest to trzecia możliwość dostępu do bazy Jasmine z poziomu języka Java. Produkt ten to zestaw ziaren Javy, które otwierają drogę do korzystania z Jasmine. Komponenty te zawierają także dodatkową funkcjonalność możliwą do wykorzystania przez programistów.
API do języka C – Jest to biblioteka do języka C umożliwiająca działanie tylko przy używaniu kompilatorów potrafiących obsłużyć biblioteki „dll”. Biblioteka zapewnia możliwość wpisania kodu ODQL do funkcji interpretujących.
ActiveX Development – Zestaw kontrolek ActiveX, które umożliwiają dostęp do bazy z poziomu języków zgodnych z ActiveX. Jest to dość uboga biblioteka, większość rzeczy osiąga się poprzez wpisanie odpowiedniego kodu ODQL do funkcji interpretujących.
Browser – Produkt ten udostępnia możliwość graficznego przeglądania zawartości bazy. Za jego pomocą można także modyfikować obiekty i klasy zawarte w bazie, a także wykonywać zadania administratorskie w stosunku do bazy.
Builder – Graficzne narzędzie do budowania aplikacji korzystającej z bazy. Produkt ten jest zintegrowany z Browser’em, co usprawnia tworzenie schematu bazy.
WebLink – Graficzne narzędzie do tworzenia dynamicznych stron WWW, które mogą odwoływać się do bazy Jasmine. Weblink może generować aplikacje WWW w trzech formatach: CGI dla serwerów typu Apache, ISAPI dla Microsoft IIS oraz NSAPI dla serwerów Netscape.
Extendable Class Libraries – Biblioteki dodatkowych klas i komponentów, które rozszerzają możliwości programisty korzystającego z bazy Jasmine.
Jasmine obsługuje dwie platformy: Windows oraz Sun Solaris.
Baza GOODS (Generic Object-Oriented Database System) powstała w roku 1998 na uniwersytecie w Moskwie. Projektem kieruje Konstanty Kniżnik. Kolejne podrozdziały powstały w oparciu o [Kniżnik 1999a-b] oraz stronę domową bazy:
http://www.ispras.ru/~knizhnik/goods.html
Serwer został tak pomyślany, aby wykonywał jedynie operacje związane z przechowywaniem i wyszukiwaniem obiektów, zarządzaniem transakcjami, blokowaniem, a także wykonywaniem kopii zapasowych. Cała reszta pracy przeniesiona jest na klientów bazy. Komunikacja pomiędzy serwerem a klientami odbywa się za pomocą specjalnego protokołu zwanego „Metaobject Protocol”.
GOODS ma architekturę rozproszoną. Baza może składać się z wielu węzłów, z których każdy może znajdować się w dowolnym miejscu sieci. Fizyczne rozlokowanie obiektów nie ma znaczenia dla klienta. Klient nie musi wiedzieć, gdzie są potrzebne mu dane, jednakże może sobie zażyczyć, gdzie mają być usytuowane obiekty, które właśnie zamierza składować. Serwer pomimo rozproszonej architektury potrafi obsługiwać transakcje oraz zmiany schematu bazy.
Obiekty w bazie mogą pochodzić z dowolnego języka programowania, dla którego zaimplementowano protokół „Metaobject Protocol”. Dostępne są także biblioteki dla języków C++ oraz Java.
Serwer jest dostępny wraz z dwoma dodatkowymi narzędziami, monitorem serwera i przeglądarką danych. Przeglądarka dostępna jest w dwóch wersjach konsolowych, a także z dostępem przez WWW.
Do wspieranych platform systemowych należą:
Windows
Linux
Sun Solaris
FreeBSD
Digital Unix
Firma Micro Database Systems została założona w roku 1979 przez profesorów z uniwersytetu Purdue. Firma była pionierem w tworzeniu baz danych na mikrokomputery. Obecnie głównym produktem firmy jest Titanium. Firma MDBS oferuje go w wersji 8.1, która została wydana w roku 2000. Informacje zaprezentowane w kolejnych podrozdziałach pochodzą z [MDBS 2000] oraz strony WWW producenta:
http://www.mdbs.com
Titanium jest bazą danych, która potrafi obsługiwać relacyjne, obiektowe oraz sieciowo/nawigacyjne modele danych. Baza pod względem swoich obiektowych cech jest zgodna ze standardem ODMG 3.0.
Produkt Titanium składa się z wielu modułów, najważniejsze z nich to:
TITANIUM Database Engine – główny moduł. Ma on za zadanie wykonywać wszystkie operacje typowe dla bazy danych, takie jak: przechowywanie danych, wykonywanie zapytań, obsługa transakcji, itp.
TITANIUM Interactive SQL Module – konsola języka SQL umożliwiająca wykonywanie zapytań.
TITANIUM Data Definition Module – narzędzie służące do projektowania struktury danych oraz późniejszego zakładania bazy na podstawie stworzonego schematu. Definicja obiektowych baz danych odbywa się przy użyciu języka ODL 3.0.
TITANIUM Language Interfaces – wiązania do języków programowania. W skład obsługiwanych języków wchodzą: C, C++, Cobol, Visual Basic, Delphi. Wiązanie do języka C++ jest w pełni zgodne z ODMG 3.0, włączając w to ODL oraz OML.
W chwili obecnej Titanium wspiera tylko platformę Windows. W przyszłości planowane jest dodanie wsparcia dla systemu Linux.
Baza danych Orient jest nowym projektem. Został on zapoczątkowany w roku 2000 we Włoszech. Także w roku 2000 wydano pierwszą wersję produktu. Obecnie firma oferuje wersję 2.0, która została pierwszy raz zaprezentowana w roku 2001. Więcej informacji o firmie Orient Technologies oraz produkcie Orient można znaleźć na stronie WWW: http://www.orientechnologies.com, która zawiera informacje stanowiące podstawę dla niniejszego rozdziału.
Orient Technologies oferuje bazę danych Orient w dwóch wersjach: Orient Enterprise Edition oraz Orient Just Edition. Baza Just Edition jest dostępna za darmo dla zastosowań niekomercyjnych.
Bazy Orient oferują niepełną zgodność ze standardem ODMG. Definicja schematu danych odbywa za pomocą języka ODL. Zapytania do bazy odbywają się w języku Orient Query Language, który czerpie swoje konstrukcje z SQL-92 oraz ODMG OQL.
Wraz z bazą dostarczane jest wiązanie do języka C++ zgodne ze standardem ODMG. Planowane jest wiązanie do języka Java zgodne ze standardem JDO.
W skład produktu, oprócz serwera bazodanowego, wchodzą: kompilator ODL, konsola do wydawania poleceń oraz narzędzia do wykonywania kopii zapasowych.
Baza wspiera platformy systemowe: Windows oraz Linux.
EyeDB była obiektową bazą danych rozwijaną przez Sysra Informatique przy współpracy z Infobiogen, ANVAR oraz Conseil Regional d'Ile de France. Więcej informacji o projekcie EyeDB można znaleźć na stronie WWW: http://www.sysra.com/eyedb/. Zawiera ona informacje wykorzystane w kolejnych podrozdziałach niniejszej pracy.
Pierwszy prototyp systemu, nazwany IDB był rozwijany przez Genethon Laboratories dla potrzeb projektu „Genome View”. Projekt „Genome View” został rozpoczęty w roku 1992 i miał na celu stworzenie kompletnej mapy ludzkiego genomu.
Od kwietnia 1994 roku nową wersją zajęła się Sysra Informatique. Nowa wersja bazy została przepisana od początku. Ostatnie informacje o pracach nad EyeDB pochodzą z roku 2000.
EyeDB był systemem, który miał wszystkie cechy obiektowych baz danych według ODMG 3.0. System bazował na modelu klient/serwer. Umożliwiał transakcje oraz równoległy dostęp. Model obiektu w tej bazie zawierał:
obiekty jako instancje klas,
polimorficzność,
kolekcje takie jak: set, bag, array, wielowymiarowe oraz zmiennowymiarowe tablice.
W skład systemu bazodanowego wchodziły:
język zapytań oparty na OQL z ODMG 3.0,
język definiowania danych oparty na ODL z ODMG 3.0,
wiązanie do języka Java,
wiązanie do języka C++,
generator kodu Java oraz C++ na podstawie ODL.
Baza EyeDB była obiektową bazą ogólnego zastosowania, jednakże była tworzona z myślą o przechowywaniu informacji związanych z genami ludzkimi. Największa baza danych, jaka została stworzona za pomocą EyeDB to HuGeMap. Jedyną obsługiwaną platformą jest Solaris.
skomentowano: 2017-08-08 07:38:06 przez: Daniel
skomentowano: 2017-08-08 07:39:44 przez: Daniel
Copyright © 2008-2010 EPrace oraz autorzy prac.