1 XML w integracji aplikacji
2 XML w integracji aplikacjiCel: umożliwienie wymiany danych pomiędzy aplikacjami: aplikacje/komponenty/moduły posługują się różnymi formatami wewnętrznymi, wspólny mianownik: XML. Zastosowania: komunikacja między klientem a serwerem, komunikacja między elementami systemu rozproszonego, integracja komponentów aplikacji, konfigurowanie aplikacji i jej komponentów, ... Coraz częściej aplikacje (niekoniecznie rozproszone) są złożone z komunikujących się ze sobą składników. W XML-EDI XML pojawiał się w niewidocznej dla użytkownika warstwie komunikacji między aplikacjami. Podobnie jest tutaj – XML może być niewidoczny dla użytkownika i stanowić interfejs między składnikami aplikacji. Projektowanie wykorzystania XML-a w integracji aplikacji jest o tyle prostsze od projektowania komunikatów EDI, że obie strony wymiany są pod naszą (projektanta) kontrolą i to my decydujemy o formacie wymiany. Odpada więc – niezbędny w wymianie EDI – uciążliwy proces standaryzacji.
3 XML w integracji aplikacjiPodstawy: XML a bazy danych. Ciekawe pomysły: XML-owe bazy danych, dokumenty XML jako obiekty Javy, Web Services.
4 XML a relacyjne bazy danychPrzechowywanie XML-a w relacyjnych bazach danych: elementy dokumentu XML jako pola tabeli bazodanowej (dokument „rozłożony na czynniki pierwsze”), dokument XML w całości przechowywany w polu bazy danych. Sposoby wspierania XML-a przez systemy zarządzania bazami danych: generowanie XML-a na podstawie zawartości bazy danych, wypełnianie zawartości bazy na podstawie zawartości dokumentu XML, specjalne indeksowanie pól zawierających XML, wbudowane parsery XML i procesory XSLT, integracja z serwerem WWW.
5 XML w Oracle 8i Parsery XML dostarczane przez Oracle:pozwalają na wykorzystanie XML-a we własnych aplikacjach korzystających z bazy, dostępne dla PL-SQL-a, Javy i C++. XML-SQL Utility: generowanie XML-a bezpośrednio z bazy przy pomocy specjalnych zapytań, wypełnianie bazy na podstawie zawartości dokumentu XML. Firma Oracle zareagowała na pojawienie się XML-a, dołączając mechanizmy go wspierające do swojego flagowego produktu. System Oracle może stanowić wzór tego, w jaki sposób systemy zarządzania bazami danych powinny wspierać wykorzystanie XML-a. Najsłabiej związanym z samym systemem Oracle sposobem wykorzystania XML-a jest operowanie dokumentami XML we własnych aplikacjach będących klientami bazy Oracle. W tym celu programiści mogą wykorzystać jeden z parserów dostarczanych przez Oracle po to, aby np. wypełniać bazę zawartością na podstawie dokumentu przetworzonego przez parser. Dokumentami XML można także operować bezpośrednio w bazie, korzystając z pakietu XML-SQL Utility.
6 Oracle XML-SQL UtilityPrzykład zapytania: SELECT xmlgen.getXML(’select * from emp’) FROM dual; Domyślne użycie standardowej struktury, np.
7 XML w Oracle 8i (c.d.) OracleXML: zewnętrzna aplikacja w Javie,dostęp do funkcjonalności XML-SQL Utility z poziomu aplikacji klienckiej. XML-SQL Servlet: ułatwia budowanie aplikacji internetowych opartych na Oracle’u, umożliwia przesyłanie XML-a z i do bazy za pośrednictwem protokołu HTTP, możliwość korzystania ze skryptów XSQL Pages, np:
8 Podejście alternatywne: TaminoTransaction Architecture for the Management of Internet Objects. Pierwszy serwer „bazodanowy” przechowujący dane „w XML-u”. Komunikacja: za pośrednictwem protokołu HTTP, bezpośrednio przez URL, moduł X-Node, zapewniający integrację z innymi źródłami danych: ODBC, OLE DB, system plików. Platforma dla: aplikacji internetowych typu B2C, elektronicznej wymiany dokumentów, systemów zarządzania treścią (?).
9 Baza danych w Tamino Definicja tabeli XML-Schema Wiersz tabeliElement (z podelementami) w dokumencie XML. Pole tabeli Element lub atrybut XML Relacja Odpowiednie atrybuty w XML-Schema Projektanci Tamino zaryzykowali, stosując technologie, które w czasie projektowania systemu nie były jeszcze uznanymi i zatwierdzonymi standardami (XML-Schema), a nawet nie są jeszcze ostatecznie zdefiniowane (XQL – język zapytań). Kwerenda Zapytanie w języku XQL
10 Web Services Pomysł na:udostępnianie aplikacji/funkcjonalności/obiektów w Internecie, (bardzo) rozproszony RPC/messaging, "strony internetowe" przeznaczone dla aplikacji. Web service: samodzielna aplikacja (komponent), która może być: opisana, opublikowana w sieci, znaleziona przez potencjalnych użytkowników, wywołana poprzez sieć w sposób standardowy. Web Services: platforma do tworzenia takich aplikacji.
11 Standaryzacja Standardowy system typów: XML Schema. Interfejs serwisu:WSDL – Web Service Definition Language. Sposób wywołania serwisu i otrzymania odpowiedzi: SOAP – Simple Object Access Protocol, HTTP POST. Sposób znajdowania odpowiedniego serwisu: UDDI - Universal Description, Discovery and Integration.
12 Typowe zastosowania Udostępnianie/sprzedaż użytecznych danych:linia lotnicza udostępnia swój rozkład lotów, dane o pogodzie. Zdalne usługi: wyszukiwanie, pobieranie aktualnej wersji oprogramowania, zaawansowane szyfrowanie algorytmem, który nie jest publicznie dostępny. Operacje biznesowe między partnerami: zamawianie, sprawdzanie stanu realizacji zamówienia.
13 Źródło: Yasser Shohould, "Building XML Web Services with VB .NET"Typowa architektura Źródło: Yasser Shohould, "Building XML Web Services with VB .NET"
14 Źródło: Yasser Shohould, "Building XML Web Services with VB .NET"Wywołanie serwisu Źródło: Yasser Shohould, "Building XML Web Services with VB .NET"
15 Opis serwisu: WSDL Zawartość opisu:udostępniane metody (nazwy, parametry, zwracane wartości), protokół używany do wywołania (np. SOAP poprzez HTTP), typ wywołania (RPC czy messaging), URI serwisu. Zastosowania: do czytania przez developera, automatyczne generowanie kodu klienta, analiza dokumentu WSDL w czasie wykonania w celu wywołania serwisu.
16 WSDL - przykład
17 Źródło: Yasser Shohould, "Building XML Web Services with VB .NET"Komunikacja: SOAP Standard kodowania komunikatów o dowolnej treści: Style komunikatów SOAP: document, RPC. Sposoby serializacji danych: encoded – dane są zserializowanymi obiektami programistycznymi, literal – dokument o dowolnej strukturze. Źródło: Yasser Shohould, "Building XML Web Services with VB .NET"
18 SOAP – przykład
19 UDDI: jak znaleźć odpowiedni serwisUDDI - Universal Description, Discovery and Integration: katalog serwisów do automatycznego wyszukiwania. UDDI web services: Inquiry: find_business, get_businessDetail; Publish: save_business, delete_business. Publiczne i prywatne serwery UDDI: replikacja między serwerami publicznymi.
20 Z lotu ptaka WSDL ... RPC Web Services UDDI SOAP messaging ... HTTP
21 Gdzie szukać dalej Bazy danych:- wykaz produktów bazodanowych ze wsparciem dla XML-a, - Ronald Bourret - artykuły o bazach danych i XML-u, linki. XML Data Binding: - XML Data Binding Resources Web Services: - W3C Web Services Activity, - LearnXMLws - zawiera m. in. książkę "Building XML Web Services with VB .NET" Treść rekomendacji XML. „Kuźnia standardów internetowych” – organizacja zajmująca się ich zatwierdzaniem i promowaniem. Duży zbiór materiałów, artykułów itp. Nowości, zasoby, lista organizacji zajmujących się XML-em itp.