!Hurtownie i eksploracja danych



Podobne dokumenty
Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Usługi WWW. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska Opole zlipinski@math.uni.opole.pl

Simple Object Access Protocol

Programowanie komponentowe

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

XML-RPC: Zdalne wykonywanie procedur

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

SOAP i alternatywy. 1. WSDL. 2. Protokoły tekstowe XML-RPC. JSON-RPC. SOAPjr. 3. Protokoły binarne Google Protocol Bufers. Apache Thrift.

Część I -ebxml. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Web Services. Bartłomiej Świercz. Łódź, 2 grudnia 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Web Services

Rozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury

1 Wprowadzenie do J2EE

SOAP. Autor: Piotr Sobczak

RPC Remote Procedural Call. Materiały do prezentacji można znaleźć na stronie:

Rozproszone systemy Internetowe

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

Programowanie Komponentowe WebAPI

Rozproszone technologie Web Services

Usługi sieciowe (Web Services)

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

XML w elektronicznej wymianie danych i integracji aplikacji

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

XML w elektronicznej wymianie danych i integracji aplikacji

Komunikacja i wymiana danych

Wybrane działy Informatyki Stosowanej

Zaawansowane aplikacje WWW - laboratorium

Intro. I.Wojnicki, ZTB:XML ZTB: XML. Igor Wojnicki. Katedra Informatyki Stosowanej, Akademia Górniczo-Hutnicza w Krakowie.

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

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

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

Programowanie współbieżne i rozproszone

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

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

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Location paths. Osie (axes)

Wybrane problemy modelu usługowego

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

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

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

Wybrane działy Informatyki Stosowanej

Katalog książek cz. 3: Web Service

Bazy Danych i Usługi Sieciowe

1 XML w bazach danych

Wykorzystywanie parsera DOM w programach Java i PL/SQL

Tworzenie i wykorzystanie usług sieciowych

Mechanizmy pracy równoległej. Jarosław Kuchta

MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP

Wywoływanie metod zdalnych

Rozproszone systemy internetowe

76.Struktura oprogramowania rozproszonego.

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

XML w bazach danych i bezpieczeństwie

Programowanie obiektowe

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Nowoczesne zastosowania XML

Programowanie współbieżne i rozproszone

XML w elektronicznej wymianie danych, integracji aplikacji i bezpieczeństwie

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

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Pogadanka o czymś, co niektórzy nazywają AJAX

Języki XPath i XQuery

1. Wymagania dla lokalnej szyny ESB

Programowanie obiektowe

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Języki XPath i XQuery

Model semistrukturalny

Integracja Obieg Dokumentów - GiS Spis treści

Wywoływanie metod zdalnych

XML i nowoczesne technologie zarządzania treścią

Sieciowe programowanie rozproszone SOA, WebServices i systemy gridowe. Krzysztof Banaś Systemy rozproszone 1

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone

HttpRequest Aplikacja Czat

Zaawansowany kurs języka Python

Elektroniczna wymiana danych (EDI) jest to: - wymiana informacji pomiędzy komputerami, z użyciem powszechnie akceptowanych standardów

METODY REPREZENTACJI INFORMACJI

Geneza elektronicznej wymiany danych (EDI) XML w elektronicznej wymianie dokumentów i integracji aplikacji. Pojedyncze rozwiązania.

Ministerstwo Finansów

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

Programowanie Komputerów

Plan wykładu. Technologia Web Services. Web Services a WWW

Wielowarstwowe aplikacje internetowe. Web Services. Autorzy wykładu: Maciej Zakrzewicz Marek Wojciechowski. Web Services

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Specyfikacja API 1.0. Specyfikacja kontroli Konta systemu CashBill z wykorzystaniem API opartego na REST

Mydło i spółka. Aplikacje rozproszone. Serwisy sieciowe Broker usług. Serwisy sieciowe. Serwisy sieciowe, WWW (Web Services) Internet

XML w bazie danych IBM DB2

Rozdział ten przedstawia jeden ze sposobów implementacji usług sieciowych XML i aplikacji klienckich w PHP. Oprogramowanie

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Zdalna edycja i przeglądanie dokumentacji medycznej.

1. Uruchomić i skonfigurować środowisko tworzenia aplikacji i serwer aplikacji.

Komunikacja międzysystemowa

XML w elektronicznej wymianie danych, integracji aplikacji i bezpieczeństwie

Przykładowy dokument XML

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

JAX-RS czyli REST w Javie. Adam Kędziora

XML w bazach danych i bezpieczeństwie

Protokoly w technologii obiektow rozproszonych - CORBA, RMI/IIOP, COM, SOAP. Paweł Kozioł p.koziol@students.mimuw.edu.pl

Geneza elektronicznej wymiany danych (EDI) XML w elektronicznej wymianie dokumentów i integracji aplikacji. Pojedyncze rozwiązania.

Równoległość w środowisku rozproszonym. Jarosław Kuchta Programowanie Współbieżne

public interface TravelAgent { public void makereservation(int cruiseid, int cabinid, int customerid, double price); }

Transkrypt:

!Hurtownie i eksploracja danych Jacek Rumiński slajd 1 Kontakt: Katedra Inżynierii Biomedycznej, pk. 106, tel.: 3472678, fax: 3461757, e-mail: jwr@eti.pg.gda.pl

!XML i eksploracja danych Jacek Rumiński slajd 2

Integracja danych i metod przetwarzania: tabele/xml Źródło: J. E. Funderburk, S. Malaika, B. Reinwald, XML programming with SQL/XML and XQuery Źródło: Jon RubinIBM Software, The DB2 Framework for Business Intelligence slajd 3

Standaryzacja XML Metadata Interchange (CWM XMI) Common Warehouse Metamodel (CWM) Warehouse Management Warehouse Process Warehouse Operation Analysis Transformation OLAP Data Mining Information Visualization Business Nomenclature Resources Object- Oriented Relational Record- Oriented Multi Dimensional XML Foundation Business Information Data Types Expressions Keys Index Type Mapping Software Deployment CWM Levels Object Core slajd 4 Źródło: Christian Bremeau, XML Data Movement Components for Teradata, Meta Integration Technologies, Inc.

DAD Document Access Definition Konwersja: 1. Dane relacyjne (tabele) -> > XML 2. XML - > dane relacyjne (tabele) SQLX www.sqlx.org Źródło: J. E. Funderburk, S. Malaika, B. Reinwald, XML programming with SQL/XML and XQuery slajd 5

Funkcje SQL/XML slajd 6 IBM DB2 Guide

Funkcje SQL/XML IBM DB2 Guide slajd 7

Funkcje SQL/XML - przykłady 1. Stwórz element <elem1> używając XMLELEMENT. 2. Dodaj przestrzeń nazw używając XMLNAMESPACES. 3. Dodaj atrybut używając XMLATTRIBUTES, 4. Utwórz komentarz z XMLCOMMENT, 5. Utwórz sekwencje elementów używając XMLFOREST. slajd 8 Utwórz sekwencje elementów <item> z wszystkich pozycji z tabeli IBM DB2 Guide

Funkcje SQL/XML - przykłady slajd 9 IBM DB2 Guide

Inne funkcje SQL/XML slajd 10 IBM DB2 Guide

Przykład: XMLQUERY IBM DB2 Guide slajd 11

Dla wcześniejszego przykładu (Tabela CUSTOMER z plikami XML w kolumnie INFO) Konieczne ponieważ uzyskamy wiele elementów phone slajd 12 IBM DB2 Guide Przykład: XMLTABLE

Zakładając, że tabela CUSTOMER zawiera dokumenty XML w kolumnie INFO (podobnie jak poprzednio) slajd 13 IBM DB2 Guide Przykład: XMLEXISTS

XML DB demonstracja na przykładzie DB2!!! slajd 14

Przetwarzanie XML XSL i XQuery! XML podstawowy format komunikatów (np. SOA). Źródło: Michael Gonzales, Getting Active, DB2 mgazine Integracja dane operacyjne i dane przygotowane do analiz OLAP ADW! slajd 15

Od wymiany listów do usług sieciowych - Web Services Źródło: Robert Chu, Web Services Standards for Data Mining slajd 16

Źródło: Robert Chu, Web Services Standards for Data Mining slajd 17

Źródło: Robert Chu, Web Services Standards for Data Mining slajd 18

Zanim zastosujemy usługi sieciowe do ekploracji danych... Przypomnijmy sobie XPath/XQuery slajd 19

XPath XPath rekomendacja W3C pozwalająca na definiowanie referencji (adresu) do encji. Wykorzystywana jest często do formułowania treści wyszukiwanej w dokumencie XML. XPath jest bardzo często wykorzystywany przez XDB. W wersji XPath 2.0 wprowadzono wyrażenia regularne rozszerzające dodatkowo zakres możliwych do zdefiniowania wzorców. Zasadnicza składnia wyrażenia XPath opiera się o znaną ścieżkę dostępu w hierarchii systemu plików, np.: /sklep - oznacza główny element dokumentu (korzeń), /sklep/chleb - oznacza subelement chleb dokumentu, //napoj - oznacza wszystkie elementy napoj hierarchii, /sklep/* - oznacza wszystkie subelementy elementu sklep, /sklep/napoj[1] - oznacza pierwszego potomka subelementu napoj, /sklep/napoj[last()] oznacza ostatniego (użycie funkcji) potomka subelementu napoj, //napoj[@cola] - oznacza atrybuty cola wszystkich elementów napoj, //napoj[not(@*)]- oznacza wszystkie elementy napoj bez atrybutow; //napoj[@cola= pepsi ] oznacza wszystkie elementy napoj o wartości atrybutu cola równej pepsi slajd 20

XPath //*[count(napoj)=2] oznacza wszystkie elementy mające dwóch potomków napoj, //*[contains(name(), n')] oznacza wszystkie elementy zawierające w nazwie n, //napoj //chleb - oznacza wszystkie elementy napoj i chleb, //napoj/parent::* - oznacza wszystkich rodziców elementu napoj, i wiele innych. Dla XPath zdefiniowano szereg funkcji oraz operatorów umożliwiających budowanie złożonych ścieżek dostępu. XPath 2.0 umożliwia również wykorzystanie pętli, instrukcji warunkowych itp. slajd 21

Xpath XPathQ.java DEMO Przykład DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); //zbuduj dokument (DOM) Document document = builder.parse(new File("salon.xml")); XPath xpath = XPathFactory.newInstance().newXPath(); //zdefiniuj wyrażenie XPath String expression = "//samochod//silnik"; //pobranie węzła Node car = (Node)xpath.evaluate(expression, document, XPathConstants.NODE); //Wydruk informacji o nim System.out.println("Node is: " + car); //pobranie wartości węzła w reprezentacji ciągu znaków String carstring = (String)xpath.evaluate(expression, document, XPathConstants.STRING); //Wydruk informacji jako ciąg znaków System.out.println("String is: " + carstring); //pobranie wartości węzła w reprezentacji typu double Double cardouble = (Double) xpath.evaluate(expression, document, XPathConstants.NUMBER); //Wydruk informacji System.out.println("Double is: " + cardouble); slajd 22

XPath 2.0 Model danych XQuery 1.0/XPath 2.0 Dokument XDM (W3C XQuery 1.0 and XPath 2.0 Data Model), definiuje model danych stosowany w [XPath 2.0], [XSLT 2.0] i [XQuery]; bazuje na modelu [XPath 1.0] i wcześniejszych opracowaniach (np. [XML Query Data Model]). slajd 23

XPath 2.0 XDM - definicje Każda instancja modelu XDM to sekwencja. Sekwencja jest uporządkowaną kolekcją zero lub więcej pozycji (item). Sekwencja nie może być częścią sekwencji. Pozycją jest węzeł (node) lub wartość atomowa. Istnieje 6 rodzajów węzłów: document, element, attribute, text, namespace, processing instruction i comment. Każdy węzeł należy dokładnie do jednego drzewa; każde drzewa ma dokładnie jeden węzeł główny (root-korzeń). Drzewo, którego węzłem głównym jest Document Node jest dokumentem. Drzewo, którego węzłem głównym nie jest Document Node jest fragmentem. Wartość atomowa to wartość typu atomowego (atomic type) oznaczona tym typem. Typy atomowe to typy podstawowe (XML Schema) i z nich wywiedzione. slajd 24

XPath 2.0 Hierarchia typów w modelu XDM. slajd 25

XPath 2.0 http://www.w3.org/tr/xpath20/ XPath 1.0 a ponadto m.in.... slajd 26

XPath 2.0 Instrukcja for ForExpr ::= SimpleForClause "return" ExprSingle SimpleForClause ::= "for" "$" VarName "in" ExprSingle ("," "$" VarName "in" ExprSingle)* slajd 27

XPath 2.0 Instrukcja if IfExpr ::= "if" "(" Expr ")" "then" ExprSingle "else" ExprSingle porównanie test czy element/atrybut istnieje slajd 28

XPath 2.0 Instrukcja in QuantifiedExpr ::= ("some" "every") "$" VarName "in" ExprSingle ("," "$" VarName "in" ExprSingle)* "satisfies" ExprSingle Prawdziwe, jeśli slajd 29

XQuery język zapytań da XML Relacja pomiędzy XQuery a XPath 2.0: XQuery 1.0 : XQuery is derived from an XML query language called Quilt [Quilt], which in turn borrowed features from several other languages, including XPath 1.0 [XPath 1.0], XQL [XQL], XML-QL [XML-QL], SQL [SQL], and OQL [ODMG]. XQuery Version 1.0 is an extension of XPath Version 2.0. Any expression that is syntactically valid and executes successfully in both XPath 2.0 and XQuery 1.0 will return the same result in both languages. Przykład: Generacja dokumentu HTML jako lista nagłówków zawierająca ceny napojów (elementy /sklep/napoj/cena): <html>{ let $sklep := document( mojsklep.xml")/sklep for $t in $sklep/napoj return <h2>{$t/cena)</h2> }</html> slajd 30

XQuery 2.0 http://www.w3.org/tr/xquery/ slajd 31

XQuery 2.0 Przykładowa implementacja XQuery: http://support.xhive.com/xquery/index.html -demonstracja przykładowych zapytań według: http://www.w3.org/tr/xmlquery-use-cases/ Inna: www.fatdog.com -możliwe do pobrania z tej strony API oraz prosta aplikacja umożliwiają testowanie własnych zapytań XQuery. slajd 32

Przykład na podstawie: http://www.w3.org/tr/xmlquery-use-cases/ slajd 33

XQuery 2.0 Wyrażenia FLWOR flower expressions to najbardziej typowe wyrażenia przetwarzania danych w XML Query. Ich znaczenie i budowa są podobne do SELECT-FROM-WHERE znanego z języka SQL. F- For L- Let W-while O-order by R-return for $b in doc("books.xml")//book where $b/@year = "2000" return $b/title for $i in (1, 2, 3) for $t in doc("books.xml")//title order by $t return $t let $j := (1, 2, 3) return <car><i>{ $i }</i><j>{ $j }</j></car> slajd 34

XQuery 2.0 Nowe, definiowane funkcje! Definiowane zmienne! define variable $titles { doc( books.xml )//title } slajd 35

XQuery 2.0 Moduły funkcje można zapisać w ramach modułu, który może być wczytany dla danego zapytania. module "http://example.com/xquery/library/book" define function toc($book-or-section as element()) as element()* { for $section in $book-or-section/section return <section> { $section/@*, $section/title, toc($section) } </section> } slajd 36

XQuery 2.0 instance of zgodność typów. Wynik true <foo/> instance of element() 3.14 instance of xs:decimal "foo" instance of xs:string (1, 2, 3) instance of xs:integer* () instance of xs:integer? (1, 2, 3) instance of xs:integer+ Wynik false 3.14 instance of xdt:untypedatomic "3.14" instance of xs:decimal 3.14 instance of xs:integer Inne: np. typeswitch (rodzaj instukcji wyboru CASE), validate (sterowanie walidacją), itd. slajd 37

XML w technologii Web Services XML może stanowić uniwersalną formę pakietów/kopert służących do: -wywoływania określonej funkcjonalności/usług po stronie serwera (dostawcy usług); -kodowania nazw: funkcji, argumentów i elementów przekazywanych przez funkcję; -kodowania danych: określanie typów danych, zapis wartości; -przesyłania wyników działania wywołanej wcześniej funkcji jak również i przesyłanie informacji o ewentualnych wyjątkach i błędach. Przykładowo: boolean hasinsurance(string pesel) -> hasinsurance( 70100904047 ); <methodcall name= hasinsurance > <args> <arg1 type= string >70100904047<arg1> </args> <return type= boolean /> </methodcall> slajd 38

XML w technologii Web Services Standaryzacja/popularność użycia XML jako metody kodowania w RPC: 1. XML-RPC 2. Web services 3. AJAX? XML-RPC (http://www.xmlrpc.com/): Jedna z najkrótszych specyfikacji (Dave Winer) a zarazem tak istotna. XML-RPC to inaczej wersja protokołu Remote Procedure Calling działająca w technologiach sieci WEB. Warstwa transportowa: HTTP (żądanie HTTP-POST request). Kodowanie wiadomości (Content Type): XML. slajd 39

POST /RPC2 HTTP/1.0 User-Agent: Mozilla Host: biomed.eti.pg.gda.pl Content-Type: text/xml Content-length: 166 <?xml version="1.0"?> <methodcall> <methodname>examples.hasinsurance</methodname> <params> <param> <value><string> 70100904047 </string></value> </param> </params> </methodcall> XML w technologii Web Services Przykładowo slajd 40

XML w technologii Web Services Typy danych w XML-RPC: <i4> or <int> typ liczb całkowitych ze znakiem (4B) <boolean> 0 (false) lub 1 (true) <string> ciąg znaków <double> typ liczb rzeczywistych, zmiennoprzecinkowych <datetime.iso8601> data/godzina <base64>base64 zakodowane dane binarne <struct> <member> </member></struct> - struktury <array> <data> </data> </array> - macierze slajd 41

XML w technologii Web Services Odpowiedź zawiera główny element <methodresponse>, który może zawierać: 1.)<params> jeśli są wyniki dla wcześniejszego wywołania funkcji (użycie elementu params identyczne jak przy <methodcall>) 2.) <fault> w przypadku błędu opisywany jest błąd w przekazywanej strukturze w polach o nazwach <name>faultcode</name> i <name>faultstring</name> Krótki przegląd specyfikacji. slajd 42

XML w technologii Web Services Wraz z rozwojem technologii XML over HTTP wprowadzano dodatkową funkcjonalność oraz wypracowywano procedury przepływu instrukcji w wykorzystaniu usług sieciowych dostępnych w otoczeniu sieci WEB. Wypracowano (budując odpowiednie rekomendacje stosujące technologię XML) następujące specyfikacje, stanowiące podstawę współczesnych usług klasy Web Services: -rejestr usług (UDDI - Universal Description, Discovery and Integration ), -opis usług (WSDL- Web Services Description Language), -opis komunikatów żądań/odpowiedzi (SOAP - Simple Object Access Protocol). slajd 43

XML w technologii Web Services UDDI Universal Description, Discovery and Integration (UDDI) jest usługą katalogową gdzie strona może zarejestrować swoją usługę jak i przeglądać istniejące usługi. Najprościej rejestr skąd można uzyskać informacje o WSDL, którego znajomość umożliwia wprost utworzenie kodu zastosowania opisywanych w WSDL usług sieciowych. UDDI specyfikacja, opis i inne: UDDI.org Przykład serwera z UDDI: http://uddi.epfl.ch/uddi/index.jsp UDDI wspiera wiele firm, m.in. Dell, Fujitsu, HP, Hitachi, IBM, Intel, Microsoft, Oracle, SAP, i Sun. slajd 44 UDDI a ebxml (Electronic Business using extensible Markup Language ). ISO 15000-1: ebxml Collaborative Partner Profile Agreement ISO 15000-2: ebxml Messaging Service Specification ISO 15000-3: ebxml Registry Information Model ISO 15000-4: ebxml Registry Services Specification ISO 15000-5: ebxml Core Components Technical Specification http://ebxml.xml.org/

XML w technologii Web Services WSDL jako rekomendacja W3C bazuje na XML i służy do opisu i lokalizacji usług sieciowych. Dokument WSDL zawiera szereg elementów XML, które umożliwiają opis usługi <porttype> Funkcjonalność usługi sieciowej <message> Komunikaty wykorzystywane przez usługi sieciowe <types> Typy danych wykorzystywane przez usługi sieciowe <binding> Protokoły komunikacyjne wykorzystywane przez usługi sieciowe WSDL Ports - Najbardziej istotnym elementem (opisuje funkcjonalność) jest <porttype>. Można go porównać do biblioteki funkcji. WSDL Messages - Każdy element <message> może zawierać jedną lub więcej części. Opisuje dane (argumenty) związane z funkcjami (usługami). WSDL Types - Element ten definiuje typy danych, jakie używane są przez usługę sieciową (XML Schema). slajd 45 WSDL Bindings Element <binding> określa format komunikatu oraz parametry protokołu związane z każdą funkcjonalnością (<port>).

XML w technologii Web Services SOAP służy do komunikacji stron w ramach dostępu, żądania usług i przesyłania wyników określonej funkcjonalności usługi sieciowej (WS). SOAP jest dialektem XML a odpowiednia rekomendacja (W3C w3.org) definiuje wymagania co do budowy dokumentu SOAP. Komunikaty SOAP wymagają: - stosowania XML-a, - użycia przestrzeni nazw SOAP Envelope i SOAP Encoding. Komunikaty SOAP nie mogą: - zawierać odwołania do DTD, - zawierać odwołania do instrukcji przetwarzania (XML Processing Instruction). SOAP to niewątpliwie bardziej rozbudowana wersja XML-RPC (niektórzy początkowo nazywali XML-RPC jako SOAP). slajd 46

slajd 47 <?xml version="1.0"?> Szkielet komunikatu SOAP <soap:envelope xmlns:soap=http://www.w3.org/2001/12/soap-envelope soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> <soap:header>......</soap:header> <soap:body>...... <soap:fault>...... </soap:fault> </soap:body> </soap:envelope> XML w technologii Web Services Element SOAP Envelope jest głównym elementem (root) dokumenty SOAP. Opcjonalny element SOAP Header zawiera informacje specyficzne dla aplikacji (np. dotyczące płatności). Jeśli ten element jest obecny musi być pierwszym dzieckiem root-a. Element Body jest obowiązkowy i zawiera istotną treść komunikatu SOAP. Można również zdefiniować element SOAP Fault (błąd). Poza tym możemy zapisać własne subelementy.

XML w technologii Web Services Opracowano na przykładzie: http://www.w3schools.com/soap/soap_summary.asp slajd 48

XML w technologii Web Services package hello; import javax.jws.webservice; @WebService public class CircleFunctions { public double getarea(double r) { return java.lang.math.pi * (r * r); } public double getcircumference(double r) { return 2 * java.lang.math.pi * r; } } import javax.xml.ws.endpoint; public static void main(string[] args) { Endpoint.publish( "http://localhost:8080/webserviceexample/circlefunctions", new CircleFunctions()); } Annotation (jdk1.6 generuje dodatkowy kod do osbługi WS) Usługi Uruchomienie usług (wbudowany w jdk1.6 serwer) slajd 49

XML w technologii Web Services Skompilować powyższy kod. Następnie używając narzędzia wsgen wygenerować automatycznie resztę potrzebnego kodu i plików konfiguracyjnych: wsgen cp. hello.circlefunctions Następnie (ponieważ JDK 1.6 ma wbudowany serwer WWW/aplikacji sieciowych) wystarczy jedynie uruchomić metodę main z powyższego kodu (main()). Weryfikację działania można sprawdzić poprzez połączenie się z http://localhost:8080/webserviceexample/circlefunctions?wsdl pobierając dokument WSDL. DEMO 8 slajd 50

XML w technologii Web Services AJAX Asynchronous JavaScript and XML Wprowadzenie specjalnego obiektu (XMLHttpRequest) realizującego asynchroniczną interakcję użytkownik-klientserwer. PRZEGLĄDARKA GUI JavaScript HTML AJAX engine Wykorzystywane technologie HTML, XML, JavaScript oprogramowanie serwera (np. Java, PHP, inne). HTTP request Dane XML Specjalne znaczenie w budowaniu serwisów o bogatej treści interfejsu (odświeżany jest tylko fragment ekranu, a nie cała strona). WEB server (XML, HTML) Inne serwery (np. DB) SERWER slajd 51

XML w technologii Web Services AJAX kolejne operacje: 1.Klient wywołuje zdarzenie (np. onkeyup) 2. Tworzony jest obiekt XMLHttpRequest (req=new XMLHttpRequest();) 3. Ustawiane są własności obiektu XMLHttpRequest ( req.onreadystatechange = processrequest; // callback function ) 4. Obiekt XMLHttpRequest wywołuje asynchroniczne żądanie (if (!target) target = document.getelementbyid("userid"); var url = "validate?id=" + escape(target.value); req.open("get", url, true); req.send(null);) 5. Servlet (itp.) odpowiada na żądanie generując dokument XML (doget() XML) 6. Obiekt XMLHttpRequest wywołuję funkcję callback() i przetwarza wynik 7. HTML DOM jest aktualizowany (HTML-><div id="useridmessage"></div> var usermessageelement = document.getelementbyid("useridmessage"); w obsłudze zmienić usermessageelement) slajd 52

Java Data Mining Web Service Extension (JDMWS) slajd 53 Źródło: Robert Chu, Web Services Standards for Data Mining

XMLA XML for Analysis (OLAP) slajd 54 Źródło: Robert Chu, Web Services Standards for Data Mining

Dane XML a eksploracja danych Zbiory częste - tradycyjne podejście Źródło: Jacky W.W., Wan Gillian Dobbie, Mining Association Rules from XML Data using XQuery slajd 55

XQuery implemenacja algorytmu Apriori zbiory częste Źródło: Jacky W.W., Wan Gillian Dobbie, Mining Association Rules from XML Data using XQuery slajd 56

XQuery generacja reguł 1. Zbiór 1 zawiera więcej elementów niż zbiór 2, 2. Zbiór 2 jest podzbiorem zbioru 1, 3. Ufność > od zadanego poziomu [ P(XuY)/P(X) ]. Źródło: Jacky W.W., Wan Gillian Dobbie, Mining Association Rules from XML Data using XQuery slajd 57

Przykładowe testy Intel Pentium 4, 1.8MHz, Window XP Professional, RAM= 256 MB Źródło: Jacky W.W., Wan Gillian Dobbie, Mining Association Rules from XML Data using XQuery slajd 58