Język XQuery jako narzędzie do integracji danych Oracle XML Data Synthesis



Podobne dokumenty
Język XQuery jako narzędzie do integracji danych Oracle XML Data Synthesis

XQuery konkurencja dla SQL?

Cechy języka XQUERY. o na wejściu dokument lub fragment względnie kolekcja dokumentów lub fragmentów o na wyjściu dokument lub fragment.

Wybrane działy Informatyki Stosowanej

XML extensible Markup Language 7

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Ekspert MS SQL Server Oferta nr 00/08

Automatyzacja procesów biznesowych Andrzej Sobecki. ESB Enterprise service bus

Wybrane działy Informatyki Stosowanej

Plan. Raport. Tworzenie raportu z kreatora (1/3)

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

XML w bazie danych IBM DB2

XML w bazach danych i bezpieczeństwie

Komunikacja i wymiana danych

Generowanie raportów

1 Wprowadzenie do J2EE

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Przykładowy dokument XML

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Programowanie komponentowe

Wprowadzenie do J2EE. Maciej Zakrzewicz.

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Programowanie Komponentowe WebAPI

5.14 JSP - Przykład z obiektami sesji Podsumowanie Słownik Zadanie... 86

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Wybrane działy Informatyki Stosowanej

Relacyjne bazy danych a XML

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Spis treści. Przedmowa

XML w bazach danych i bezpieczeństwie

Model semistrukturalny

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

1 90 min. Aplikacje WWW Harmonogram spotkań, semestr zimowy (studia stacjonarne)

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Serwery LDAP w środowisku produktów w Oracle

Język XML Query. Czym jest XML Query? Po co XML Query? Tomasz Traczyk. Czym jest XML Query? Wprowadzenie do składni języka.

Dostęp do komponentów EJB przez usługi Web Services

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

Systemy obiegu informacji i Protokół SWAP "CC"

Część I Rozpoczęcie pracy z usługami Reporting Services

JBoss: MetaMatrix, Mobicents, Seam, Rools, ESB

Wprowadzenie do technologii Business Intelligence i hurtowni danych

ETL darmowe narzędzia

Oracle Application Express -

World Wide Web? rkijanka

Tworzenie i wykorzystanie usług sieciowych

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

Hurtownie danych - przegląd technologii

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Systemy GIS Tworzenie zapytań w bazach danych

ERDAS ADE Suite edytor baz danych Oracle Spatial

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

Bazy danych i ich aplikacje

PHP: bazy danych, SQL, AJAX i JSON

Dokumentacja kompilacji źródeł aplikacji 1.0

Operacja PIVOT w języku SQL w środowisku Oracle

GS2TelCOMM. Rozszerzenie do TelCOMM 2.0. Opracował: Michał Siatkowski Zatwierdził: IMIĘ I NAZWISKO

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Zaawansowane aplikacje internetowe. Wykład 6. Wprowadzenie do Web Services. wykład prowadzi: Maciej Zakrzewicz. Web Services

Rozwiązanie Compuware Data Center - Real User Monitoring

Wprowadzenie do Doctrine ORM

EJB 3.0 (Enterprise JavaBeans 3.0)

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska

edziennik Ustaw Opis architektury

Oracle11g: Wprowadzenie do SQL

MongoDB. wprowadzenie. dr inż. Paweł Boiński, Politechnika Poznańska

Architektura bezpiecznych aplikacji internetowych na platformie Java Enterprise Edition. Jakub Grabowski Warszawa,

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

OLAP i hurtownie danych c.d.

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Instytut Technik Innowacyjnych Semantyczna integracja danych - metody, technologie, przykłady, wyzwania

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

TIN Techniki Internetowe zima

Otwarte protokoły wymiany informacji w systemach ITS

Dobre praktyki w doborze technologii rozwiązań informatycznych realizujących usługi publiczne

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Web Tools Platform. Adam Kruszewski

Wirtualizacja panelu HMI w systemie LOGO!

Przykładowy dokument XML

XQuery. XQuery. Przykład. dokument XML. XQuery (XML Query Language) XQuery 1.0: An XML Query Language. W3C Recommendation

Język XML Query. Tomasz Traczyk. Politechnika Warszawska e mail:

OpenLaszlo. OpenLaszlo

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

Web Services. Wojciech Mazur. 17 marca Politechnika Wrocławska Wydział Informatyki i Zarządzania

Organizacyjnie. Prowadzący: dr Mariusz Rafało (hasło: BIG)

Architektury i technologie integracji danych

Database Connectivity

Imię, nazwisko i tytuł/stopień KOORDYNATORA (-ÓW) kursu/przedmiotu zatwierdzającego protokoły w systemie USOS Dr Adam Naumowicz

Transkrypt:

Język XQuery jako narzędzie do integracji danych Język XQuery jako narzędzie do integracji danych Oracle XML Data Synthesis Tomasz Traczyk Wydział Elektroniki i Technik Informacyjnych Politechnika Warszawska 2 Integracja danych Integracja danych, c.d. Integracja danych Łączenie informacji pochodzącej z różnych źródeł wewnętrznych (zlokalizowanych w tej samej organizacji) zewnętrznych Cele integracji danych Uzyskiwanie najnowszych informacji na bieżąco Odpowiednie wybieranie i łączenie informacji Łatwa zmiana zakresu uzyskiwanych informacji Łatwe dostosowywanie do zmian w strukturze czy formacie informacji źródłowych Pożądane cechy narzędzi do integracji Działanie on-line Elastyczność Klasyczne metody integracji danych Bezpośrednia wymiana danych między aplikacjami wymagana ingerencja w źródła danych zwiększona komplikację systemów ryzyko związane z modyfikacjami Repozytorium gromadzące informacje obce konieczna replikacja danych» zajmuje miejsce» trzeba odświeżać repliki Rozwiązania specjalizowane on-line brak ogólności duże koszty mizerna elastyczność Trudności w integracji danych Dane ze źródeł heterogenicznych bazy danych» różne bazy relacyjne» bazy nierelacyjne pliki» arkusze kalkulacyjne dokumenty internetowe» strony w HTML» dokumenty XML» dokumenty w innych formatach Źródła internetowe różne protokoły internetowe» ftp» http» WebDav» SOAP 3 4

XML i XQuery w integracji danych Język XQuery jako narzędzie do integracji danych XML jako format integracji Duża siła wyrazu może reprezentować dowolne dane mające postać tekstową Elastyczność Łatwo dostępne narzędzia Własny język wielu źródeł danych serwisy w XML, XHTML Web Services Stosunkowo łatwa konwersja innych źródeł bazy danych arkusze kalkulacyjne HTML itp. XML jest bardzo dobrym formatem dla danych przeznaczonych do integracji XQuery jako narzędzie do integracji Cechy języka zapytań XQuery deklaratywny» łatwe pisanie zapytań nie trzeba kodować algorytmów uniwersalny» łatwe łączenie dane z wielu źródeł» dowolne formatowanie wyniku XQuery umożliwia integrację źródeł danych» w czasie rzeczywistym» bez replikowania informacji efektywność» dobry stosunek wydajności i jakości wyniku do nakładów elastyczność integracji» łatwe rozszerzanie» łatwa adaptacja do zmian danych źródłowych XQuery może być bardzo dobrym narzędziem do integracji danych dostępnych w XML 5 6 XQuery przypomnienie Czym jest XQuery (XML Query) Deklaratywny język zapytań dla dokumentów XML Propozycja World Wide Web Consortium (working draft) Umożliwia łączenie danych z wielu źródeł wykonywanie obliczeń (np. agregacji) dowolne formatowanie wyniku w XML użycie zmiennych pomocniczych definiowanie i wywoływanie funkcji użytkownika Składnia języka Język funkcyjny konstrukcje złożone z wyrażeń zwracających sekwencje sekwencje: uporządkowane ciągi węzłów i wartości prostych Bazuje na ścieżkach XPath 2.0 najprostsze zapytania: wyrażenia XPath Korzysta z przestrzeni nazw predefiniowane przestrzenie i prefiksy dla funkcji wbudowanych XQuery i XPath Złożone zapytania buduje się wykorzystując konstrukcje FLWOR XQuery przypomnienie, c.d. Wyrażenia FLWOR for przypisuje do zmiennej kolejne pozycje sekwencji zwróconej przez wyrażenie XPath let dokonuje jednokrotnego podstawienia wyniku wyrażenia do zmiennej where i order by znaczenie podobne jak w SQL return określa postać wyniku, umożliwiając dokonywanie różnorodnych przekształceń Przykład: <terminy_oplat> { for $r in doc("terminy.xml")//termin let $t := $r/text(), $z := $r/@typ_zaliczenia where $z = ('P', 'L') order by $z return <termin typ="{$z}"> <data>{$t}</data> </termin> } </terminy_oplat> <terminy_platnosci> <termin typ_zaliczenia="e">2005-10-20</termin> <termin typ_zaliczenia="z">2005-10-20</termin> <termin typ_zaliczenia="p">2005-09-25</termin> <termin typ_zaliczenia="l">2005-09-25</termin> </terminy_platnosci> <terminy_oplat> <termin typ="l"> <data>2005-09-25</data> </termin> <termin typ="p"> <data>2005-09-25</data> </termin> </terminy_oplat> 7 8

XQuery w technologii Oracle Oracle 10g release 2 Nowe funkcje SQL/XML XMLQuery» wykonuje zapytanie podane jako parametr» zwraca w wyniku fragment dokumentu (o typie XMLType) XMLTable» wykonuje zapytanie XQuery» elementy wynikowej sekwencji umieszcza w wierszach wirtualnej tabeli, która może być wykorzystana w klauzuli FROM zapytań SQL Nowe polecenie SQL*Plus XQUERY» umożliwia interaktywne wykonywanie zapytań XQuery Oracle Application Server 10g Zapowiadane wbudowanie technologii XDS (XML Data Synthesis) Język XQuery jako narzędzie do integracji danych 9 10 Architektura integracji danych Wymagania w stosunku do usług integracji danych XML Dostęp do źródeł danych konwertery na XML działające on-line wirtualne widoki danych w XML Dostępność wyników integracji od strony klienta i od strony bazy danych w różnorodnych formatach i przez różne protokoły» HTML, XML» JSP (biblioteki znaczników)» API» komponenty EJB, CORBA itp.» Web Services (SOAP) XML Data Synthesis Oracle XDS Narzędzie do integracji danych działające w warstwie middle-tier napisane w Jawie (aplikacja serwera OC4J) używające XML jako wspólnego formatu danych używające języka XQuery do definiowania sposobu integracji Dostępność obecnie wersja developers preview technologia ma być włączona do AS10g Najlepszą lokalizacją dla usług integracji wydaje się warstwa middle-tier 11 12

Źródła danych dla XDS Wyniki XDS Możliwe źródła danych Dokumenty XML Dokumenty nie-xml transformowane na bieżąco opis transformacji w D3L Dane z baz relacyjnych przez JDBC Dane uzyskiwane z Web Services Dane z aplikacji typu EIS dostępne przez odpowiedni adapter JCA (J2EE Connector Architecture) Buforowanie danych XDS może buforować dane źródłowe polepszenie wydajności parametry buforowania ustawiane w pliku konfiguracyjnym Dostęp do źródeł w XQuery Przez funkcje zastępujące standardową doc() definiowane deklaratywnie (pliki konfiguracyjne XDS) D3L (Data Definition Description Lang.) Część technologii Oracle Application Server Integration InterConnect Język opisu formatów nie-xml-owych dialekt XML określa» format źródła» sposób jego udostępnienia w XML Motor D3L wbudowano w XDS definicja źródła danych może odwoływać się do URL opisu w D3L XDS wykonuje translację on-line i udostępnia do integracji dane w XML Dostęp do wyników integracji Biblioteka znaczników JSP API klienta dla języka Java Komponenty sesyjne EJB bezstanowy zachowujący stan» umożliwia pobieranie wyniku w wielu krokach Widoki XQuery udostępnione jako Web Services Widoki XQuery Zapytania XQuery zapamiętane w plikach.xq mogą być sparametryzowane za pomocą zmiennych zewnętrznych (declare variable external ) Użycie: jako źródła danych w innych zapytaniach» definicja źródła danych podaje nazwę pliku z zapytaniem położenie repozytorium zapytań parametry jako usługi sieciowe 13 14 Język XQuery jako narzędzie do integracji danych 15 Przykład zadanie Dane wejściowe Spis repet studentów w poszczególnych semestrach perspektywa w bazie danych Oracle Cennik opłat za powtarzanie przedmiotów, ceny w euro plik Excela w formacie CSV Lista terminów wnoszenia opłat plik XML Kursy walut usługa sieciowa Opis zadania Zestawić repety za ostatni semestr z podaniem terminu opłaty i kwoty opłaty w złotych Rozwiązanie Cztery źródła danych SQL dokument tekstowy z konwersją przez D3L dokument XML Web Service Integracja w XDS przez zapytanie XQuery 16

Konfiguracja w pliku xds-config.xml Źródło danych: dokument XML <xds-sources> <document-source iscached="false"> <name>terminy_dokumentxml</name> <target>http:///terminy.xml</target> </document-source> </xds-sources> <terminy_platnosci> <termin typ_zaliczenia="e">2005-10-20</termin> <termin typ_zaliczenia="z">2005-10-20</termin> <termin typ_zaliczenia="p">2005-09-25</termin> <termin typ_zaliczenia="l">2005-09-25</termin> </terminy_platnosci> 17 Konfiguracja w pliku xds-config.xml Źródło danych: dokument CSV <document-source iscached="false"> <name>ceny_dokumentcsv</name> <target>http:///ceny.csv</target> <XMLTranslate method="d3l">http:///ceny_csv2xml.xml</xmltranslate> </document-source> Konfiguracja D3L <?xml version="1.0"?> <!DOCTYPE message SYSTEM "d3l.dtd"> <message name="exceldata" type="ceny_repet"> <imparray id="wiersz"> <struct> <field name="typ_zaliczenia"><termstring endchar=","/></field> <field name="nazwa_typu"><termstring endchar=","/></field> <field name="cena_w_euro"><number><termstring endchar="\n"/></number></field> </struct> </imparray> <ceny_repet> <struct id="ceny_repet"> <repeta> <field name="repeta"> <typ_zaliczenia>e</typ_zaliczenia> <typeref type="wiersz"/> </field> <nazwa_typu>egzamin</nazwa_typu> </struct> <cena_w_euro>150</cena_w_euro> </message> </repeta> 18 </ceny_repet> Źródło danych: zapytanie SQL Konfiguracja w pliku xds-config.xml <wsdl-source iscached="false"> <name>repety_zrodlosql</name> <wsdlurl>http:///repety_sql.wsdl</wsdlurl> <operation>pobierzdanesql</operation> <service>repety_sql</service> <port>portsql</port> <input-parameters> <part position="1" name="semestr" type="xs:string"/> </input-parameters> </wsdl-source> Konfiguracja usługi w pliku WSDL (fragment) <binding name="wiazaniesql" type="oe:zrodlosql_typ"> <sql:binding/> <operation name="pobierzdanesql"> <sql:operation XMLtransform="XSU-client"> select * from repety where semestr = :1 </sql:operation> <input name="sqlinput"> <sql:input>semestr</sql:input> </input> <output name="sqlresult"/> <fault name="sqlfault"/> </operation> </binding> <ROW num="1"> <ID_STUDENTA>120032</ID_STUDENTA> <NAZWISKO>Abacki</NAZWISKO> <IMIONA>Aleksander</IMIONA> <KOD_PRZEDMIOTU>BD1</KOD_PRZEDMIOTU> <SEMESTR>05L</SEMESTR> </ROW> <TYP_ZALICZENIA>L</TYP_ZALICZENIA> <service name="repety_sql"> <port name="portsql" binding="oe:wiazaniesql"> <sql:address data-source-location="jdbc/oraclecoreds" user="" password="" /> </port> </service> 19 Źródło danych: usługa sieciowa (Web( Service) Konfiguracja w pliku xds-config.xml <wsdl-source iscached="true"> <name>kursywalut_webservice</name> <wsdlurl>http:///currencyexchangeservice.wsdl</wsdlurl> <operation>getrate</operation> <service>currencyexchangeservice</service> <port>currencyexchangeport</port> <input-parameters> <part position="1" name="country1" type="xs:string"/> <part position="2" name="country2" type="xs:string"/> </input-parameters> </wsdl-source> Konfiguracja odwołuje się do obcego dokumentu WSDL, opisującego usługę 20

Zapytanie XQuery Język XQuery jako narzędzie do integracji danych declare namespace xds = "http://xmlns.oracle.com/ias/xds"; declare function xds:repety_zrodlosql ($id_semestru as xs:string) external; declare function xds:ceny_dokumentcsv() external; declare function xds:kursywalut_webservice($j1 as xs:string, $j2 as xs:string) external; declare function xds:terminy_dokumentxml() external; let $t := xds:terminy_dokumentxml(), $c := xds:ceny_dokumentcsv(), $k := xds:kursywalut_webservice("euro", "poland") return <oplaty> { for $r in xds:repety_zrodlosql('05l')//row let $ce := $c//repeta[typ_zaliczenia=$r//typ_zaliczenia]/cena_w_euro/text(), $cz := $ce * $k, $te := $t//termin[@typ_zaliczenia=$r//typ_zaliczenia]/text() order by $r//kod_przedmiotu, $r//typ_zaliczenia, $r//nazwisko, $r//imiona return <repeta> <oplata> {$r//kod_przedmiotu} {$r//typ_zaliczenia} <kwota waluta="eur">{$ce}</kwota> <kwota waluta="pln">{$cz}</kwota> <termin_wplaty>{$te}</termin_wplaty> </oplata> <student> {$r//nazwisko} {$r//imiona} </student> </repeta> } </oplaty> <oplaty> <repeta> <oplata> <KOD_PRZEDMIOTU>BD1</KOD_PRZEDMIOTU> <TYP_ZALICZENIA>E</TYP_ZALICZENIA> <kwota waluta="eur">150</kwota> <kwota waluta="pln">588,450014591217</kwota> <termin_wplaty>2005-10-20</termin_wplaty> </oplata> <student> <NAZWISKO>Cabacki</NAZWISKO> <IMIONA>Cezary</IMIONA> </student> </repeta> </oplaty> 21 22 Podsumowanie XQuery w integracji danych Język XQuery wydaje się bardzo dobrym narzędziem do integracji danych deklaratywny uniwersalny elastyczny XQuery trzeba zasilić danymi przekształconymi do postaci XML Oracle XML Data Synthesis Rozsądne wykorzystanie XQuery do integracji danych w warstwie middle-tier elegancko wykorzystuje składnię XQuery do zdefiniowania rozszerzeń XDS z licznymi możliwymi źródłami danych» dobrze połączone z relacyjnymi bazami danych» rozszerzalne (JCA) z licznymi interfejsami wyjściowymi Język XQuery jako narzędzie do integracji danych Oracle XML Data Synthesis XDS stanowi obiecującą propozycję technologii integracji danych Niestety, na razie tylko wersja preview z pewnymi brakami 23 24