Wirtualny łącznik danych

Virtuoso jest motorem bazodanowym, umożliwiającym dostęp do różnych źródeł danych. Oprogramowanie firmy OpenLink zapewnia wsparcie najważniejszych standardów internetowych.

Virtuoso jest motorem bazodanowym, umożliwiającym dostęp do różnych źródeł danych. Oprogramowanie firmy OpenLink zapewnia wsparcie najważniejszych standardów internetowych.

Serwer Virtuoso firmy OpenLink pozwala zdefiniować bazę danych, w której zostaną połączone różne tabele czy widoki pochodzące z różnych motorów bazodanowych. Programista, kierując zapytanie do serwera Virtuoso, może w jednej kwerendzie połączyć informacje np. z systemu finansowo-księgowego przechowywanego na AS/400 i dane o sprzedaży z modułu wykorzystującego bazę Oracle.

Komponenty

Z poziomu aplikacji serwer Virtuoso 2.0 jest widziany jako motor bazodanowy za pośrednictwem sterownika ODBC (na Windows i Unix/Linux) czy JDBC (z programu napisanego w Javie). Składa się z kilku głównych komponentów.

Komponenty dostępu do danych umożliwiają dołączanie informacji z konkretnego serwera. Virtuoso 2.0 może korzystać zarówno ze standardowych sterowników ODBC i UDBC (specjalne sterowniki OpenLink), jak i sterowników dostosowanych do konkretnego motoru bazodanowego. Komponenty zarządzania autoryzacją pozwalają na definiowanie praw dostępu na poziomie serwera Virtuoso. Należy podkreślić, że prawa dostępu do konkretnej bazy danych zależą od sposobu zdefiniowania połączenia i nie mają związku z prawami przydzielanymi na poziomie Virtuoso.

Komponent przetwarzający zapytania działa zgodnie ze standardem ANSI 92. Nie są wspierane natomiast rozszerzenia poszczególnych producentów baz danych. Nie można korzystać z pełnej składni PL/SQL, nawet jeżeli zapytanie kierowane za pośrednictwem Virtuoso dotyczy tylko tabel przechowywanych w bazie Oracle. Ciekawostką jest to, że Virtuoso pozwala definiować widoki na heterogenicznych źródłach danych, a także "ogólne" procedury przechowywane przy użyciu specjalnej odmiany języka SQL - Virtuoso PL. W kolejnej wersji serwera ma być zaimplementowany pełny OQL.

Komponent odpowiadający za przetwarzanie metadanych, oprócz repozytorium, pełni także rolę translatora, który przekształca typy danych konkretnego serwera bazodanowego na standardowe opisy.

Transakcje

Najbardziej złożonym elementem Virtuoso jest komponent zarządzający transakcjami i zapewniający możliwość równoległej pracy wielu użytkownikom. Niestety, w wersji 2.0 serwera nie jest zaimplementowany pełny protokół dwufazowego potwierdzania i może się zdarzyć, że zapytanie aktualizujące nie zostanie automatycznie wycofane na wszystkich serwerach. Zaimplementowano natomiast mechanizm "jawnego" logowania stanu przed i po transakcji. Po awarii można jawnie zażądać "wycofania" operacji ze wszystkich serwerów.

Virtuoso pozwala stosować wszystkie możliwe dostępne poziomy izolacji. Warto nadmienić o specjalnych transakcjach "tylko do odczytu", zapewniających pewnego rodzaju dodatkową "atomowość" zapytania kierowanego do różnych serwerów.

Virtuoso stosuje blokowanie na poziomie strony. W kolejnej wersji ma być dostępne blokowanie na poziomie rekordów. Mechanizmy blokowania dotyczą sytuacji, gdy użytkownicy korzystają z serwera Virtuoso, a nie, jeżeli łączą się bezpośrednio z innymi bazami danych.

Virtuoso 2.0 zawiera tylko podstawowe mechanizmy replikacji (jest możliwość tworzenia replikacji typu snapshot i replikacji transakcyjnych).

Serwer Virtuoso pozwala także na tworzenie własnych baz, jednak ich format nie jest rozbudowany.

Internet

Virtuoso 2.0 zapewnia wsparcie standardów internetowych. Obsługuje XML, w tym XML Views. Pozwala na importowanie danych w tym formacie i tworzenie zapytań XPATH czy XML Query. Umożliwia także komunikację opartą na SOAP.

WebDav to specjalny komponent implementujący standard Web DAV (rozszerzenie HTTP pozwalające na wspólną pracę za pośrednictwem XML). Zaimplementowano także mechanizm wyszukiwania pełnotekstowego. Virtuoso Server Pages umożliwia tworzenie dynamicznych stron HTTP po stronie serwera. Wszystko to sprawia, że Virtuoso może pełnić rolę centralnego repozytorium dla serwera WWW, które dodatkowo może czerpać informacje z dowolnej bazy danych wykorzystywanej w przedsiębiorstwie.

Wersje i wymagania

Dzięki temu, że serwer Virtuoso nie przechowuje dużych ilości danych, do początkowej instalacji wystarczy 2 MB RAM i 10 MB na dysku. Definiowanie baz danych nieznacznie tylko zwiększa zapotrzebowanie na zasoby systemowe.

Virtuoso jest oferowane w trzech edycjach: Lite, Workgroup, Enter- prise. Wersje te różnią się głównie zestawem dostarczanych sterowników ODBC/JDBC/ UDBC i sposobem przetwarzania równoległego.

Serwer dostępny jest dla wielu systemów operacyjnych: Linux (dystrybucje oparte zarówno na glibc2, jak i libc5), Windows 95/98/ NT/2000, różnych systemów unixowych. Openlink planuje wersje dla OS390, OS400, VMS i Mac OS.

OpenLink Virtuoso Enterprise Edition dla 50 użytkowników i jednego procesora kosztuje 8 tys. USD. Wersja Lite dla 5 użytkowników - 600 USD.

Czy warto?

Obecnie na rynku istnieje wiele wirtualnych serwerów bazodanowych. Niemal każdy motor bazodanowy ma wbudowane mechanizmy dostępu do danych przechowywanych na innych serwerach czy w bazach plikowych. Także niektóre interfejsy dostępu do danych (np. BDE Borlanda czy JET Microsoftu) są pewnego rodzaju serwerami wirtualnymi dzięki możliwości dołączania zdalnych tabel.

W tych przypadkach przetwarzanie danych odbywa się zwykle na lokalnym serwerze, np. dane potrzebne do wyznaczenia konkretnej kwerendy są najpierw ładowane na serwer. Virtuoso ma własny motor bazy danych, tzn. można przechowywać pewne informacje bezpośrednio na serwerze, jednak jego głównym zadaniem jest optymalizacja dostępu do danych przechowywanych na innych serwerach. Procesor kwerend przetwarza zapytanie tak, by obliczenia wykonywał odpowiedni serwer bazodanowy. Tylko w przypadku zapytania łączącego informacje z różnych serwerów pewną część obliczeń wykonuje komputer, na którym działa Virtuoso.

Na potrzebę wykorzystania oprogramowania, takiego jak Virtuoso można też spojrzeć z drugiej strony. Jeżeli projektowana aplikacja jest tworzona w architekturze trójwarstwowej, to za połączenie się z bazą danych i dostarczenie informacji warstwie klienckiej odpowiada serwer aplikacyjny. Można więc tak skonstruować warstwę środkową, że nie będzie konieczności łączenia w jednym zapytaniu tabel czy informacji pochodzących z różnych serwerów bazodanowych.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200