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