pobierz plik referatu - BDAS

Transkrypt

pobierz plik referatu - BDAS
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007
Rozdział 5
w
Integracja danych w środowisku Web
z wykorzystaniem technologii AXML
w
Wstęp
pl
s.
1
da
.b
w
Streszczenie. W rozdziale przedstawiono metodę integracji danych pamiętanych w heterogenicznych źródłach rozproszonych w Internecie (środowisku
Web) za pomocą technologii aktywnego XML (AXML, ang. Active XML).
Istotną cechą dokumentów AXML jest to, że obok tradycyjnie rozumianych
danych tekstowych zawarte są w nich informacje o odwołaniach do usług sieciowych Web Service. Każde wywołanie podanej usługi powoduje zastąpienie informacji o wywołaniu konkretną stałą tekstową, fragmentem dokumentu XML, bądź nowym fragmentem AXML zwracanym przez wywoływaną
usługę. Pokazujemy zalety takiego rozwiązania wyrażające się tym, że decyzje o materializacji wywołań (fizycznym pobraniu danych od wywoływanych
usług Web Service) podejmowane są tak późno, jak jest to tylko możliwe.
Dzięki temu uzyskuje się poprawę efektywności przesyłania danych (można
wybrać optymalny plan przekazywania danych – co jest szczególnie ważne
przy bardzo dużych zbiorach danych) oraz można uniknąć wielokrotnego
przesyłania tych samych danych (co może wystąpić, gdy te same dane mogą
być przekazywane różnymi kanałami). Rozważania ilustrowane są przykładem oraz omawiana jest eksperymentalna implementacja.
Wyszukiwanie danych w internetowym środowisku rozproszonym oraz ich późniejsza integracja to jeden z częściej poruszanych problemów w pracach naukowych dotyczących komunikacji i wymiany informacji w środowiskach rozproszonych.
Marcin Marczewski
IBM Polska Sp. z o.o., Laboratorium Oprogramowania IBM w Krakowie,
Al. Armii Krajowej 18, 30-150 Kraków,
Uniwersytet im. Adama Mickiewicza,
Wydział Matematyki i Informatyki, ul. Umultowska 87, 61-614 Poznań
email: [email protected]
Tadeusz Pankowski
Politechnika Poznańska, Instytut Automatyki i Inżynierii Informatycznej
pl. M. Skłodowskiej-Curie 5, 60-965 Poznań,
Uniwersytet im. Adama Mickiewicza, Wydział Matematyki i Informatyki
ul. Umultowska 87, 61-614 Poznań
email: [email protected]
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007
M. Marczewski, T. Pankowski
w
Problem ten w skrócie dotyczy tego, w jaki sposób należy zadać zapytanie oraz które
hosty sieciowe odpytać, aby w końcowej fazie, już po połączeniu danych pochodzących
z różnych źródeł, otrzymać zunifikowany zestaw informacji możliwy do odczytu przez system (np. aplikację) docelowy.
Dzięki możliwościom XML, który w ostatnim czasie stał się bardzo popularny, dane
mogą być prezentowane w ustrukturalizowany sposób. Co więcej, niezależność implementacyjna i przenośność dokumentów XML powoduje, że dane zapisane w taki sposób mogą
być bezproblemowo pamiętane w heterogenicznych źródłach w środowisku Web.
Duże znaczenie w procesie pozyskiwania takich danych ma to, w jaki sposób hosty sieciowe będą odpytywane (zapytanie), w jakiej kolejności oraz to jakim przekształceniom
otrzymane dane zostaną poddane (znalezienie schematu odwzorowania danych) zanim zostaną przesłane do hosta (aplikacji) docelowej. W procesie wyszukiwania danych ważne
miejsce zajmuje również wykonywanie zapytań (ang. query processing) [7], czyli odczytywanie odpowiednio wybranych danych źródłowych za pomocą zapytań zapisanych w jednym z jezyków zapytań (ang. query language), ich dynamiczna przebudowa oraz optymalizacja. Istnieje wiele języków zapytań w zależności od odpytywanego źródła danych oraz
zastosowania. W systemach bazodanowych najbardziej popularnym językiem zapytań jest
SQL (ang. Structured Query Language). Do uzyskiwania danych zapisanych w postaci
dokumentów XMLowych wykorzystywane są takie języki jak np. XPath [12], XQuery [13]
czy XPointer [14].
W środowisku Web istotne jest także to, w jaki sposób dane są udostępniane. Dotyczy to
zarówno formatu (schematu) danych jak i bezpieczeństwa systemu udostępniającego zasoby. W Internecie dane są coraz częściej publikowane za pośrednictwem usług sieciowych
Web Service, które są niezależne od systemu operacyjnego. Usługi te są definowane za
pomocą języka WSDL [10] (ang. Web Services Description Language) opartym na XML.
Dodatkowo, usługi sieciowe mogą być wywoływane przez inne zdalne hosty a wyniki ich
wywołania są przesyłane za pomocą wiadomości zbudowanych w oparciu o specyfikację
protokołu SOAP [11] (ang. Simple Object Access Protocol). Wszystkie te kwestie stanowią,
że usługi sieciowe Web Service są ważnym medium w procesie wyszukiwania i integracji
danych w rozproszonym środowisku internetowym.
Połączenie przedstawionych technologii, takich jak niezależny implementacyjnie i platformowo XML [8] i przechowywanie danych w ustrukturalizowany sposób wraz z wykorzystaniem języków zapytań (XQuery, XPath itd.) w celu pozyskiwania wskazanych danych oraz ich udostępnianie za pomocą usług Web to rozwiązanie, które może zostać zastosowane w procesie wyszukiwania danych i ich kooperacyjnej wymianie w środowisku rozproszonym.
Wśród prac związanych z wyszukiwaniem danych w środowisku Web prowadzone są
badania nad tzw. Aktywnym XML (ang. AXML) [1], [2], [6], [9]. Główna idea tej technologii polega na umożliwieniu zamieszczania w dokumentach XML wbudowanych odwołań
do usług sieciowych Web Service, za pomocą których udostępniane są dane docelowe.
W niniejszym rozdziale omawiamy technologię AXML oraz pokazujemy, w jaki sposób
rozwiązanie to może być zastosowane w procesie integracji danych. Pokazujemy zalety takiego rozwiązania. Rozważania ilustrowane są przykładem oraz omawiana jest eksperymentalna implementacja.
W pracy rozpatrujemy następujący scenariusz zastosowania AXML.
Wojewódzkie centrum informacji turystycznej na bieżąco, na podstawie danych pozyskiwanych z centrów powiatowych (lub innych źródeł), przygotowuje aktualną ofertę noclegową zawierającą szczegółowe informacje o dostępnej liczbie pokoi i ich standardzie oraz dodatkowych usługach we wszystkich zgłoszonych ośrodkach. Centra powiatowe otrzymują
bieżące dane, aktualizowane za każdym razem, gdy nastąpi jakaś zmiana, bezpośrednio od
da
.b
w
w
pl
s.
58
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007
Integracja danych w środowisku Web z wykorzystaniem technologii AXML
w
hoteli zlokalizowanych na terenie danego powiatu i wyposażonych w różne platformy działające na różnych systemach operacyjnych.
Podrozdział 2 w skrócie opisuje problem prezentacji danych w środowisku Web. W części tej przedstawiona jest idea AXML oraz kod przykładowego dokumentu. Architektura
hosta AXML opisana jest w części 3 rozdziału. Szczegóły dotyczące problemu materializacji dokumentów AXML opisane są w podrozdziale 4. Rozważania optymalizacyjne oraz
potencjalne możliwości zastosowania AXML zawarte są w podrozdziale 5. Wnioski prezentujemy w podrozdziale 6.
2
Dokumenty Active XML
w
da
.b
w
Dokument aktywnego XML (AXML) jest dokumentem XML, który oprócz danych zawiera wbudowane odwołania do usług sieciowych Web Service. Usługi te w momencie ich
wywołania zwracają zestaw danych, który także prezentowany jest za pomocą XML. Co
więcej, dane te mogą także zawierać kolejne odwołania do innych lokalnych lub zdalnych
usług sieciowych.
Odwołanie do usługi sieciowej zagnieżdzone w dokumencie AXML pomiędzy specjalnymi tagami identyfikowane jest za pomocą dwóch elementów: nazwy serwera udostępniającego daną usługę sieciową oraz nazwę definiowanej usługi. Możliwe jest także zdefiniowanie dodatkowych parametrów wywołania.
W implementacji AXML zaproponowanej w [3] odwołanie do usługi sieciowej zdefiniowane jest pomiędzy tagami: <sc> i </sc> (sc od ‘service call’).
Fragment przykładowego dokumentu AXML
pl
s.
<dolnyslask>
<powiat nazwa="legnicki">
<sc>mojalegnica.com/gdziePospac()</sc>
</powiat>
<powiat nazwa"boleslawiecki">
<miasto nazwa="Boleslawiec">
<sc name="Boleslawiec">
boleslawiec.pl/hoteleWBoleslawcu()
</sc>
</miasto>
</powiat>
</dolnyslask>
Powyższy fragment dokumentu AXML przedstawia, w jaki sposób w dokumencie aktywnego XML zawierane są odwołania do usług sieciowych Web Service. W przykładzie tym
zdefinowanie zostało odwołanie do usługi sieciowej o nazwie gdziePospac(), która jest
udostępniana przez serwer mojalegnica.com oraz hoteleWBoleslawcu() udostępnianej przez maszynę boleslawiec.pl.
Dopuszczalne jest także, aby odwołania do usług sieciowych Web Service zawierały dodatkowe parametry, dzięki którym funkcjonalność i zastosowanie takiej technologii może
być dodatkowo poszerzona.
W udostępnionej implementacji [3] udostępnionej za pośrednictwem [9] takie parametry
to między innymi:
− id – identyfikator wywołania, generowany automatycznie,
− name – nazwa wywołania usługi sieciowej Web Service,
59
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007
M. Marczewski, T. Pankowski
w
− callable – określa, czy dana usługa sieciowa może być wywoływana przez zdalnego AXML peera (inną zdalną maszynę działająca w sieci AXML); może przyjmować
dwie wartości: true or false,
− frequency – definiuje jak często dane wywołanie do usługi Web ma być uruchamiane. Możliwe są wartości takie jak: once (tylko raz), lazy (tylko wtedy, kiedy materializacja może mieć znaczenie dla uzyskania istotnych rezultatów – istotne gdy
'service call' odwołuje sie do innych 'service calli'), on Date (w podanym terminie),
every X (w określonych odstępach czasowych),
− lastCalled – parametr określający czas ostatniego wywołania danej usługi sieciowej Web Service,
− followedBy – umożliwia wywołanie kolejne usługi po zakończeniu ewaluacji wyników obecnego wywołania.
Możliwe jest też zdefiniowane innych parametrów wywołania usługi Web służących konkretnym celom biznesowym. Muszą być one jednak odpowiednio zaimplementowane. Parametrem takim może być na przykład zmienna określająca ile razy daną usługą Web może
być wywołana przez daną zdalną maszynę. Inna możliwość to parametr określający górną
granicę ilości danych, które zostaną przyjęte w przypadku wywołania zdalnej usługi sieciowej.
Dokument AXML zawierający wbudowane odwołania do usług sieciowych Web Service
ze zdefiniowanymi dodatkowymi parametrami
da
.b
w
w
pl
s.
<dolnyslask>
<powiat nazwa="wroclawski">
<sc name="Wroclaw Online" frequency ="every 10m">
wroclaw.pl/dostepneHotele()
</sc>
<hotel nazwa="Hotel Centrum">
<pokoj osob="2">
<sc>www.polskiehotele.com/Dwojki(../../@nazwa)</sc>
</pokoj>
<pokoj osob="1">0</pokoj>
<parking>100</parking>
</hotel>
</powiat>
<powiat nazwa="legnicki">
<sc callable="true" lastCalled="20061101000000000">
mojalegnica.com/gdziePospac()
</sc>
</powiat>
</dolnyslask>
Powyższy przykład prezentuje w jaki sposób dodatkowe parametry wbudowanych odwołań
do usług sieciowych Web Service mogą być zdefiniowane. Pierwsze z odwołań definiuje
jako źródło danych usługę o nazwie dostepneHotele(), która jest udostępniona przez
serwer wroclaw.pl. Usługa ta będzie wywoływana co 10 minut, co jest zdefinione poprzez parametr frequency. Drugie z wywołań odnoszące się do usługi Dwojki() nie ma
zdefiniowanych żadnych dodatkowych parametrów. Natomiast usługa gdziePospac()
udostępniana przez maszynę mojalegnica.com może być wywoływana przez zdalnego
hosta AXML (callable=true) a ostatni czas wywołania tej usługi to
20061101000000000 – parametr lastCalled.
60
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007
Integracja danych w środowisku Web z wykorzystaniem technologii AXML
3
Architektura AXML
w
AXML jest oparty na modelu komunikacji sieciowej peer-to-peer. Każdy host sieciowy
w tym środowisku jest nazywany hostem AXML (ang. AXML peer).
Host AXML przechowuje dane w dokumentach AXML. Dokumenty te, odczytywane za
pomocą lokalnych usług sieciowych Web Service mogą mogą zawierać dwa rodzaje danych: konkretne stałe tekstowe (ang. extensional data) oraz informacje o odwołaniu do usługi sieciowej (ang. intensional data).
Każdy host AXML może funkcjonować jako klient, pozyskując dane od innych, zdalnych hostów AXML poprzez wywoływanie udostępnianych przez nie usług sieciowych.
Może także jednocześnie pełnić funkcję serwera i być źródłem danych udostępniając dane
za pośrednictwem lokalnie zdefiniowanych usług sieciowych.
da
.b
w
w
Rys. 1. Architektura hosta Active XML
3.1 Role hosta Active XML
pl
s.
Host AXML zbudowany jest z szeregu komponentów, które zapewniają pełną funkcjonalność. Głównym z nich jest repozytorium dokumentów XML i AXML, zawierających dane
przedstawione w ustrukturyzowany sposób.
Dane przechowywane w postaci dokumentów XML i AXML w lokalnym repozytorium
dokumentów mogą być odczytywane tylko za pomocą lokalnych usług sieciowych Web
Service, które dalej mogą być wywoływane przez zdalne hosty.
Dodatkowo host AXML jest odpowiedzialny za określenie atrybutów wymaganych
przez wywoływane usługi WWW, za wywoływanie opisanych usług sieciowych w określonym przez podane parametry czasie oraz, co jest bardzo ważne, za interpretację uzyskanych
wyników.
Jak w tradycyjnym systemie opartym na modelu komunikacji peer-to-peer każdy host sieciowy w technologii AXML ma identyczną architekturę i jednocześnie pełni funkcje serwera i klienta.
Poniżej prezentujemy opis poszczególnych komponentów hosta AXML.
Host AXML jako klient
AXML peer odpowiedzialny jest za odpowiednio częste wywołania usług Web (materializację) określonych w przechowywanych dokumentach AXML oraz za interpretację wyni61
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007
M. Marczewski, T. Pankowski
w
ków uzyskanych od serwera AXML (innego hosta AXML). Parametry materializacji zdefiniowane są w dokumentach AXML. Istotnym zdaniem klienta AXML jest także odnalezienie wartości parametrów usług WWW opisanych w dokumentach AXML. Uzyskiwanie
wartości tych parametrów może odbywać się przy użyciu języka zapytań XPath w obrębie
dokumentów AXML i XML przechowywanych w repozytorium.
Klient AXML może wywoływać usługi WWW w czasie zdefiniowanym w opisie 'service calla' (tryb pull), ale również może odbierać dane od serwera AXML zaraz po aktualizacji danych (tryb push). Możliwe jest to po subsksrybcji danej usługi WWW zamieszczonej
na serwerze AXML przez klienta AXML.
Fragment dokumentu AXML zawierający odwołanie do usługi Web jest zastępowany
uzyskanym rezultatem tego wywołania. Ważność uzyskanego rezultatu może być różnie
określona - np. tydzień, miesiąc, rok itd. Ważność ta może być również zdefiniowana jako
wynik jednorazowy (tylko przy danym wywołaniu) oraz jako wynik wieczny (na zawsze).
w
da
.b
w
Host AXML jako serwer
AXML peer, który oprócz przechowywania dokumentów AXML udostępnia również lokalnie zdefiniowane usługi sieciowe Web Service, których wynikiem wywołania może być
zwrócenie odpowiednio przygotowanego zestawu danych. Zestaw takich danych może zawierać kolejne odwołania do usług Web udostępnionych przez ten lub innych serwer
AXML. AXML Serwer zaopatruje klientów w dane w przypadku subksrybcji serwisów
ciagłych (tryb push).
3.2 Komponenty hosta Active XML
Głównymi komponentami architektury hosta AXML są: repozytorium dokumentów
AXML, repozytorium opisów usług sieciowych, processor zapytań, ewaluator oraz SOAP
wrapper. W rozdziale tym opisujemy funkcje poszczególnych komponentów. Na rysunku 1
przedstawiono relacje pomiędzy nimi.
pl
s.
Repozytorium dokumentów AXML
Jest to moduł hosta AXML służący do przechowywania dokumentów XML i AXML zawierających dane. Dokumenty AXML przechowywane w tym repozytorium mogą zawierać
odwołania zarówno do lokalnych usług sieciowych, jak i tych udostępnionych przez inne
hosty AXML.
Repozytorium opisów usług sieciowych
Komponent ten służy do przechowywania definicji usług Web, za pomocą których dane
przechowywane w plikach XML i AXML zlokalizowanych w repozytorium dokumentów,
mogą być przekazywane innym AXML peerom. Definicje te zawierają także informacje
o wymaganych parametrach wejściowych. Usługi sieciowe za pomocą języków zapytań
XML mogą pracować na danych przechowywanych w postaci dokumentów XML i AXML
umieszczonych w repozytorium dokumentów.
Procesor zapytań
Komponent odpowiedzialny za wykonanie zapytania i efektywne pozyskiwanie danych
z dokumentów przechowywanych w repozytorium dokumentów. Wynikiem wykonywane62
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007
Integracja danych w środowisku Web z wykorzystaniem technologii AXML
go zapytania może być nie tylko zestaw danych, ale także modyfikacja dokumentu z danymi. Dodatkowo, procesor zapytań może także być wykorzystywany do wprowadzania
zmian (update) w źródłowych plikach z danymi.
w
Ewaluator
Ewaluator jest komponentem odpowiedzialnym za wywoływanie wskazanych usług Web,
analizę otrzymanych wyników oraz ich zamieszczanie w plikach wynikowych. W przypadku odwołania do lokalnej usługi sieciowej jest ona bezpośrednio wywoływana. Zapytania
o wyniki zdalnych usług są przesyłane do SOAP wrappera, który przygotowuje specyficzne
wiadomości zgodnie ze specyfikacją protokołu SOAP.
Ewaluator jest również odpowiedzialny za wywoływanie usług Web w odpowiednim
czasie. Dotyczy to głównie usług, które mają zdefiniowane dodatkowe parametry takie jak
frequency (usługa wywoływana na przykład co dwie godziny) czy followedBy (po
wywołaniu aktualnej usługi Web wywołaj kolejną wskazaną przez parametr).
w
4
da
.b
w
SOAP wrapper
SOAP wrapper wykorzystywany jest do przygotowywania i opakowywania nagłówkami
wiadomości SOAP wysyłanych do innych AXML peerów. Takimi wiadomościami mogą
być na przykład zapytania o wywołanie zdalnej usługi sieciowej.
Wyniki wywołania usługi sieciowej udostępnianej przez zdalnego hosta przesyłane są
także za pomocą protokolu SOAP do hosta AXML i odczytywane przy pomocy komponentu SOAP wrapper.
Integracja danych przy użyciu AXML
Wymiana dokumentów XML, które dodatkowo mogą zawierać wbudowane odwołania
do usług sieciowych Web Service to możliwość, dzięki której hosty sieciowe mogą kooperatywnie synchronizować i integrować swoje zasoby w heterogenicznym środowisku Web.
Odbywa się to w procesie materializacji.
pl
s.
Proces materializacji dokumentów AXML
Materializacja dokumentu AXML polega na wywołaniu wskazanej usługi, uzyskaniu danych i zastąpieniu fragmentu dokumentu opisującego wywołanie uzyskanym rezultatem.
Uzyskany rezultat może zawierać odwołania do innych usług sieciowych Web Service,
które też mogą zostać zmaterializowane, jeśli zachodzi taka potrzeba.
63
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007
M. Marczewski, T. Pankowski
w
w
Rys. 2. System wymiany informacji turystycznej, do którego zbudowania wybrana została
technologia AXML
da
.b
w
Klient AXML, aby otrzymać informację o dostępnych miejscach noclegowych, spełniających określone przez użytkownika warunki, musi wywołać lokalną usługę sieciową, której
rezultatem jest plik AXML zawierający wbudowane odwołanie do zdalnej usługi sieciowej
gdziePospac() udostępnianej przez wojewódzkie centrum informacji turystycznej. Odpowiednie przygotowanie parametrów i wywołanie tej usługi umożliwa pozyskanie danych
od hostów zdalnych (rys. 2 – A).
Fragment dokumentu AXML przechowywanego przez hosta A umożliwiający, za pośrednictwem usługi sieciowej, uzyskanie danych o wolnych miejscach noclegowych w województwie dolnośląskim
<dolnyslask>
<sc>dolnyslask.com/gdziePospac(miejscowosc,rodzaj_pokoju,ilosc)</sc>
</dolnyslask>
pl
s.
Poniższe przykłady opisujące sytuację pokazaną na rys. 2 przedstawiają, jak otrzymane
zestawy danych mogą się różnić w zależności od wybranej strategii materializacji dokumentów po wywołaniu usługi sieciowej.
Klient A odpytuje klienta B (centrum wojewódzkie) o informacje dotyczące wolnych
miejsc noclegowych definiując trzy parametry: miejscowosc=Legnica, rodzaj_pokoju=jednoosobowy, ilość=2. Host B, aby uzyskać te informacje musi wywołać usługę
sieciową udostępnianą przez hosta C.
Możliwych jest zatem kilka scenariuszy uzyskania żądanych danych, po wywołaniu
usługi sieciowej gdziePospac():
1) Host B po otrzymaniu zapytania od hosta A odpytuje hosta C wywołując
udostępnianą przez niego usługę sieciową lokalneHotele() otrzymuje pełen
zestaw żądanych danych. Następnie host B przekazuje uzyskane dane hostowi A.
Dokument AXML hosta A po wywołaniu usługi gdziePospac() na hoście B:
<dolnyslask>
<powiat nazwa="legnicki">
<hotel nazwa="Hotel Wroclawski">
<pokoj osob="2">7</pokoj>
</hotel>
<hotel nazwa="Hotel Centrum">
<pokoj osob="2">20</pokoj>
</hotel>
</powiat>
</dolnyslask>
64
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007
Integracja danych w środowisku Web z wykorzystaniem technologii AXML
2) Host C zwraca hostowi B fragment dokumentu AXML, zawierający odwołanie do
usługi sieciowej udostępnianej przez hosta D. Host B przekazuje taką informację
hostowi A.
Dokument AXML hosta A po wywołaniu usługi gdziePospac() na hoście B:
w
w
<dolnyslask>
<powiat nazwa="legnicki">
<hotel nazwa="Hotel Wroclawski">
<pokoj osob="2">7</pokoj>
</hotel>
<hotel nazwa="Hotel Centrum">
<sc>hotelCentrum.pl/pokoje(typ,osob)</sc>
</hotel>
</powiat>
</dolnyslask>
Host A, aby uzyskać pełny zestaw danych podejmuje kolejną decyzję o materializacji i odpytuje bezpośrednio hosta D.
w
3) Host B zwraca hostowi A fragmentu dokumentu AXML, zawierający odwołanie do
usługi sieciowej udostępnianej przez hosta C.
Dokument AXML hosta A po wywołaniu usługi gdziePospac() na hoście B:
da
.b
<dolnyslask>
<powiat nazwa="legnicki">
<sc>powiatlegnicki.eu/noclegi(miejscowosc,pokoje,osob)</sc>
</powiat>
</dolnyslask>
Aby uzyskać pełen zestaw danych, host A podejmuje kolejną decyzję o materializacji i odpytuje bezpośrednio hosta C, który zwraca zestaw danych pobrany od
hosta D lub zwraca informacje o usłudze sieciowej udostępnianej przez hosta D, za
pomocą której możliwe jest uzyskanie żądanej informacji.
5
Rozważania optymalizacyjne
pl
s.
Proces materializacji, tj. przesyłanie zapytań wywołujących i uruchamiających usługi sieciowe odbywa się przy wykorzystaniu takich technologii jak protokoły SOAP i WSDL.
Ważność danych uzyskanych po materializacji również może zostać ustalona. Dane mogą być przetrzymywane przez dzień, miesiac, rok itd. Ważność może zostać również ustalona jako jednarazowa (tylko dla danego wywołania usługi sieciowej) lub ostateczna (dane
pozostają aż do momentu ich ręcznego usunięcia).
Optymalizacja w procesie wyszukiwania i integracji danych przy użyciu technologii Active
XML powinna być rozpatrywana w kilku aspektach. W podrozdziale tej prezentujemy
ogólne rozważania dotyczące najważniejszych elementów technologii AXML, które mogą
mieć znaczący wpływ na wydajność i koszt przeprowadzanych transakcji.
Materializacja
Proces materializacji jest najważniejszym zagadnieniem optymalizacyjnym prezentowanej
technologii. Od decyzji czy i kiedy materializować dokument AXML tj. czy wywołać
65
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007
M. Marczewski, T. Pankowski
odpowiednią usługę Web i odwołanie to zastąpić uzyskanym wynikiem zależy wydajność
przeprowadzanej operacji materializacji danych, jak i całego systemu [5].
Przykład
w
Zakładając, że istnieją trzy hosty AXML, które komunikują się ze sobą i wymieniają informacje przy pomocy wywoływanych usług sieciowych (A, B, C). Prędkość przesyłu danych
jest trzykrotnie wyższa pomiędzy hostami A i B oraz A i C niż pomiędzy B i C. Host C
chce zmaterializować dokument AXML, który zawiera odwołania do usługi sieciowej
umieszczonej na hoście B. Wynikiem wykonania wywołania usługi sieciowej na hoście B
jest dokument AXML zawierający odwołanie do usługi sieciowej na hoście A, której wynikiem jest obszerny zestaw danych.
Z biznesowego punktu widzenia (koszt, czas przesyłu danych) optymalnym rozwiązaniem jest przesłanie do hosta C przez host B pliku AXML zawierającego odwołanie do
usługi na hoście A i zmaterializowanie całości na hoście C. W ten sposób cały zestaw danych będzie przesyłany pomiędzy hostami A i C wykorzystując parametry lepszego łącza.
w
w
Przykład
da
.b
Identyfikacja danych
Dane uzyskane podczas materializacji dokumentów AXML tj. podczas wywołania usług
sieciowych zastępują tagi definiujące wywołanie do usługi sieciowej w dokumencie materializowanym. Muszą one spełniać wszystkie warunki formatowania oryginalnego dokumentu AXML, czyli muszą zawierać odpowiednie elementy, atrybuty, wartości itd.
W przypadku, gdy rezultatem wykonania usługi sieciowej jest zbiór danych nie spełniający
wymogów formatowania oryginalnego dokumentu AXML, dane takie nie powinny być
przesyłane [4].
pl
s.
Na hoście A materializowany jest dokument AXML zawierający odwołanie do usługi sieciowej znajdującej się na hoście B. Wynikiem wywołania usługi na hoście B jest fragment
dokumentu XML. Należy zidentyfikować czy zwracany zestaw danych odpowiada regułom
formatowania dokumentu AXML zamieszczonego na hoście A.
Identyfikacja taka może odbywać się na dwa sposoby:
− host A wysyła reguły formatowania do hosta B. Jeżeli wynik wywołania usługi sieciowej na hoście B spełnia reguly formatowania wynik ten jest przesyłany do hosta
A. W przeciwnym wypadku przesyłany jest komunikat blędu.
− host B wysyła informacje o formacie danych uzyskanych w wyniku wywołania usługi sieciowej. Jeżeli format ten odpowiada regułom formatowania oryginalnego dokumentu AXML host A zatwierdza to odsyłając informacje potwierdzającą do hosta B.
Host B wysyła zestaw danych wynikowych.
Wykonywanie zapytań
W wielu przypadkach znaczący wpływ na czas realizacji materializacji ma również odpowiednie wydobycie i przygotowanie danych. Host AXML przechowuje dane w postaci dokumentów AXML. Dane te są przygotowane w ustrukturalizowany sposób, jednak wywoływana usługa sieciowa korzystająca z tych danych w wielu przypadkach musi dokonać
wielu transformacji tych danych - np. wykonań obliczeń matematycznych na wartościach
atrybutów różnych elementów tego dokumentu lub innych. Istotne więc jest odpowiednie
66
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007
Integracja danych w środowisku Web z wykorzystaniem technologii AXML
przygotowanie i wywoływanie zapytań, szczególnie gdy dotyczą one obszernego zestawu
danych.
w
Usługi ciągłe
W wielu przypadkach, kiedy dane przechowywane w dokumentach w jednym repozytorium
AXML zmieniają się rzadko, a są często wykorzystywane przez innych, rozsądniejszym
rozwiązaniem jest informowanie o zaistniałych zmianach, zamiast ciągłego wywoływania
usługi odczytującej pełny zestaw danych, które się nie zmieniają.
Twórcy Active XML project zaproponowali rozwiązanie ciagłych serwisów (ang. Continuous services) działające na zasadzie subskrybcji. Klient A wykorzystujący informacje
znajdujące się u klienta B wysyła do klienta B prośbę o subkrypcję danej usługi sieciowej.
Klient B w określonych odstępach czasowych lub gdy zestaw danych będący wynikiem
wywołania usługi sieciowej się zmieni, wysyła do klienta A przygotowany, aktualny zestaw danych.
W ten sposób Klient A nie musi każdorazowo odpytywać klienta B i sprawdzać czy dane
końcowe nie zmieniły się.
Analogicznie, nazwiązując do przykładu centrum informacji turystycznej. Centra powiatowe subskrybują informację hotelową w poszczególnych ośrodkach. Każdy hotel z osobna
wysyła aktualne informacje do danego centrum powiatowego, gdy tylko liczba wolnych pokoi się zmieni lub w określonym odstępie czasu.
da
.b
w
w
6
Podsumowanie
pl
s.
Przedmiotem pracy jest problem integracji danych w środowisku sieci Web. Różnorodność
źródeł danych, sposobów ich prezentowania i udostępniania oraz protokołów transmisji danych powoduje, że ciągle poszukiwane są nowe rozwiązania usprawniające proces integracji danych w takim środowisku.
Taką technologią może być Active XML, który łączy w sobie zalety XML, standardy
udostępniania danych za pomocą usług sieciowych Web Services oraz możliwość odpytywania źródeł danych za pomocą języków zapytań. Szczególną zaletą tego podejścia jest
możliwość „opóźnionej materializacji” integrowanych danych. Oznacza to, że na pośrednich etapach integracji przesyłane są tylko adresy i parametry usług sieciowych udostępniających wymagane dane. Przesłanie faktycznych danych następuje dopiero wtedy, gdy jest
to konieczne. Dzięki temu możliwe jest takie sterowanie procesem integracji, które zapewni
największą efektywność.
Pokazujemy, w jaki sposób technologia Active XML może być wykorzystana do integracji danych w środowisku Web. Rozważania ilustrowane są przykładami pokazującymi, że
rozwiązanie to może mieć zastosowanie w komunikacji sieciowej oraz integracji danych
pochodżących z różnych rozproszonych źródeł danych.
Omawiane podejście do integracji danych w oparciu o technologię AXML jest obecnie
w stadium implementacji. W implementacji tej korzystamy z oprogramowania udostępnionego pod adresem [3].
67
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007
M. Marczewski, T. Pankowski
Literatura
1.
2.
3.
4.
w
Abiteboul S., Manolescu I., Taropa E.: A Framework for Distributed XML Data Managements,
EDBT 2006, 1049–1058.
Abiteboul S., Benjelloun O., Milo T.: The Active XML project: an overview, 2005.
The Active XML Team, Active XML User's Guide, http://www.activexml.net.
Abiteboul S., Amann B., Baumgarten J., Benjelloun O., Dang Ngoc F., Milo T.: Schema-driven
Customization of Web Services, VLDB 2003.
Milo T., Abiteboul S., Amann B., Benjelloun O., Dang Ngoc F.: Exchanging Intensional XML
Data, 2005.
Abiteboul S., Benjelloun O., Milo T: Positive Active XML, PODS 2004.
Kossmann D.: The State of the Art in Distributed Query Processing, 2000.
W3C, Extensible Markup Language (XML), http://www.w3.org/XML.
Active XML home page, http://www.activexml.net.
W3C, Web Services Definition Language (WSDL), http://www.w3.org/TR/wsdl.
W3C, Simple Object Access Protocol (SOAP), http://www.w3.org/TR/SOAP.
W3C, XML Path Language (XPath), http://www.w3.org/TR/xpath.
W3C, An XML Query Language (XQuery), http://www.w3.org/TR/xquery.
W3C, XML Pointer Language (XPointer), http://www.w3.org/TR/WD-xptr
5.
da
.b
w
w
6.
7.
8.
9.
10.
11.
12.
13.
14.
pl
s.
68
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007