Rozproszone technologie Web Services



Podobne dokumenty
Simple Object Access Protocol

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

XML-RPC: Zdalne wykonywanie procedur

Rozproszone systemy Internetowe

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

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

Usługi sieciowe (Web Services)

XML w elektronicznej wymianie danych i integracji aplikacji

XML w elektronicznej wymianie danych i integracji aplikacji

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

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

Programowanie komponentowe

SOAP. Autor: Piotr Sobczak

Integracja Obieg Dokumentów - GiS Spis treści

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

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

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

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

Wybrane problemy modelu usługowego

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

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

Programowanie Komponentowe WebAPI

Komunikacja i wymiana danych

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

Programowanie współbieżne i rozproszone

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

Nowoczesne zastosowania XML

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

Technologie internetowe

Nowoczesne zastosowania XML

Programowanie współbieżne i rozproszone

76.Struktura oprogramowania rozproszonego.

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

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

Ministerstwo Finansów

Komunikacja międzysystemowa

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

SPECYFIKACJA WYMIANY DANYCH POMIĘDZY PROGRAMEM KS-APTEKA WINDOWS I SKLEPEM INTERNETOWYM FIRMY ZEWNĘTRZNEJ

Rozproszone systemy internetowe

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

XML Schema. Bartłomiej Świercz. Łódź, 19 listopada 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz XML Schema

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

Web Services wykład 9

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

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

1 Wprowadzenie do J2EE

Języki programowania wysokiego poziomu WWW

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

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

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

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

Protokół HTTP 1.1 *) Wprowadzenie. Jarek Durak. rfc2616 źródło


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

Wybrane działy Informatyki Stosowanej

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

Web Service y w Javie

Platforma.NET Wykład 13 Tworzenie usług sieciowych SOAP i WCF. Spis treści. Marek Sawerwain. 7 czerwca Notatki. Notatki

Ataki na aplikacje WWW. Łomem, czy wytrychem? Jak dobrać się do aplikacji WWW

4. Usługi Web. Maciej Piechówka Serwis turystyczny ABC: Gdańsk PLN 3,27. Możesz tam lecieć za jedyne: PLN 1999

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

SIMON SAYS ARCHITECTURE! Usługi zdalne. Technologie, techniki i praktyki implementacji

Spis treci. Dzie 1. I Wprowadzenie (wersja 0911) II Dostp do danych biecych specyfikacja OPC Data Access (wersja 0911)

Raport z przebiegu prac czwartej grupy problemowej

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Web Services. Technologie Biznesu Elektronicznego. Konrad Kunicki. Politechnika Wrocławska, Wydział Informatyki i Zarządzania

XML - wprowadzenie. <message> <text> Dobrze </text> </message> <message> <text> Źle </message> </text> <message> <message> <text> Źle.

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

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

MODEL WARSTWOWY PROTOKOŁY TCP/IP

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

Wprowadzenie do technologii XML

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

WebNotarius. Specyfikacja techniczna komunikacji z usługą WebNotarius. wersja 1.1

Geovertical Map Server API 1.2

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

CENTRUM PROJEKTÓW INFORMATYCZNYCH MINISTERSTWA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI

Wywoływanie metod zdalnych

Sieci komputerowe i bazy danych

Zaawansowany kurs języka Python

Remote Quotation Protocol - opis

Usługi sieciowe REST. Instytut Informatyki Politechnika Poznańska

Programowanie internetowe

Ministerstwo Finansów

Wybrane działy Informatyki Stosowanej

Programowanie obiektowe

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

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

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

Web Services / Gridy

Architektury usług internetowych. Tomasz Boiński Mariusz Matuszek

HTTP W 5-CIU PYTANIACH MICHAŁ KOPACZ

Referat z programowania systemowego. Przegląd protokołów do realizacji usług sieciowych SOAP, WSDL, UDDI

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1

Wywoływanie metod zdalnych

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

Programowanie współbieżne i rozproszone

Stan zaawansowania prac dotyczących zamówienia na opracowanie i wdrożenie rdzenia systemu e Urząd.

Zarządzanie sieciami komputerowymi - wprowadzenie

Transkrypt:

Rozproszone technologie Bartłomiej Świercz Katedra Mikroelektroniki i Technik Informatycznych Łódź, 11 kwietnia 2010 Bartłomiej Świercz Rozproszone technologie

Wstęp Serwery aplikacji i zdalne usługi Wstęp do Technologia Oprogramowanie napisane w różnych językach i uruchomione na różnych platformach może wykorzystać do wymiany danych za pomocą sieci komputerowej w sposób przypominający standardową komunikację pomiędzy procesami działającymi na jednym komputerze. W przypadku użycia otwartych standardów możliwa jest współpraca programów napisanych w wielu językach (np. Java, Python) i różnych platform systemowych(np. MS WindowsiLinux). Istnieją dwie organizacje(w3c i OASIS) odpowiedzialne za standaryzację i rozwój architektury systemów nazywanych Web Services. Powołana została również specjalna organizacja WS-I zajmująca się promocją technologi. Bartłomiej Świercz Rozproszone technologie

Serwery aplikacji i zdalne usługi Wstęp do Technologia Definicja W3C(http://www.w3.org/TR/ws-arch/): AWebserviceisasoftwaresystemdesignedtosupport interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format(specifically ). Other systems interact with the Web service in a manner prescribed by its description using messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards. Bartłomiej Świercz Rozproszone technologie

Architektura Wstęp do Technologia Rysunek: Autor: H. Voormann Bartłomiej Świercz Rozproszone technologie

Wstęp do Technologia Architektura stosowa( Protocol Stack) Rysunek: Źródło: W3C Bartłomiej Świercz Rozproszone technologie

Języki Serwery aplikacji i zdalne usługi Wstęp do Technologia Języki znaczników używane w systemach : BEEP- Blocks Extensible Exchange Protocol BPEL- Business Process Execution Language E-Business XML - Simple Object Access Protocol UDDI- Universal Description, Discovery, and Integration - Description Language WSFL- Flow Language WSCL- Conversation Language - XML Remote Procedure Call Bartłomiej Świercz Rozproszone technologie

Standardy Serwery aplikacji i zdalne usługi Wstęp do Technologia Na obecny kształt systemów mają wpływ poniższe standardy: 1.1 1.1 UDDI 2.0 XML 1.0(Second Edition) XML Schema Part 1: Structures XML Schema Part 2: Datatypes Bartłomiej Świercz Rozproszone technologie

Standardy C.D. Serwery aplikacji i zdalne usługi Wstęp do Technologia Na obecny kształt systemów mają wpływ poniższe standardy: RFC2246: The Transport Layer Security Protocol version 1.0 RFC2459: Internet X.509 Public Key Infrastructure Certificate and CRL Profile RFC2616: HyperText Transfer Protocol 1.1 RFC2818: HTTP over TLS RFC2965: HTTP State Management Mechanism The Secure Sockets Layer Protocol version 3.0 Bartłomiej Świercz Rozproszone technologie

Wstęp do Technologia Komunikacja zorientowana na wiadomości Rysunek: Źródło: W3C Bartłomiej Świercz Rozproszone technologie

Wstęp do Technologia Model aplikacji zorientowanej na serwisy Rysunek: Źródło: W3C Bartłomiej Świercz Rozproszone technologie

Wstęp do Technologia Model aplikacji udostępniającej zasoby Rysunek: Źródło: W3C Bartłomiej Świercz Rozproszone technologie

Model polityki bezpieczeństwa Wstęp do Technologia Rysunek: Źródło: W3C Bartłomiej Świercz Rozproszone technologie

Zalety Wstęp do Technologia pozwalają na współdziałanie programów napisanych w różnych językach i działających na różnych platformach. używają otwartych standardów i protokołów bazujących na tekscie czytelnym dla człowieka. Poprzez wykorzystanie protokołu HTTP jako kanału transportowego pozbywają się problemu obecności firewall w sieci. pozwalają na łączenie zasobów wielu instytucji i firm. Bartłomiej Świercz Rozproszone technologie

Wady Serwery aplikacji i zdalne usługi Wstęp do Technologia Ciągle brakuje standardów dla bardziej zaawansowanych technik(np. transakcje) realizowanych w oparciu o Web Services. Aplikacje oparte o mają słabą wydajność w porównaniu do aplikacji zbudowanych w oparciu o inne technologie rozproszone(dcom, CORBA, RMI). Poprzez wykorzystanie protokołu HTTP i obejściu większości zapór sieciowych pojawiają się problemy z właściwym zabezpieczeniem aplikacji. Bartłomiej Świercz Rozproszone technologie

Wstęp do Technologia Powody dla których warto użyć Podstawowym powodem dla którego warto użyć technologi Web Services jest naturalny podział projektu na moduły, co ułatwia późniejszy rozwój aplikacji. Bartłomiej Świercz Rozproszone technologie

Wstęp do Internet dostarcza wiele możliwości programistą piszącym aplikacje komunikujące się pomiędzy różnymi komputerami i systemami. Zazwyczaj projektowanie rozproszonego oprogramowania jest procesem złożonym, szczególnie jeżeli oprócz aplikacji projektuje się również protokół komunikacji. Bartłomiej Świercz Rozproszone technologie

Wstęp do Internet dostarcza wiele możliwości programistą piszącym aplikacje komunikujące się pomiędzy różnymi komputerami i systemami. Zazwyczaj projektowanie rozproszonego oprogramowania jest procesem złożonym, szczególnie jeżeli oprócz aplikacji projektuje się również protokół komunikacji. Obecnie jednak podstawowym pytaniem podczas projektowania aplikacji rozproszonej jest pytanie, który sposób komunikacji(jaką bibliotekę) należy wybrać. Bartłomiej Świercz Rozproszone technologie

Wstęp do Dwa najbardziej popularne protokoły(framework) to: CORBA DCOM Obydwie technologie są bardzo silne i pozwalają na zbudowanie dowolnej architektury połączeń. Są jednak skomplikowane. Bartłomiej Świercz Rozproszone technologie

Serwery aplikacji i zdalne usługi XML-Remote Procedure Call jest technologią zdalnego wykonywania procedur. Jest to prosta, przenośna i niezależna od języka programowania technologia komunikacji rozproszonych systemów wykorzystująca protokół HTTP jako kanał transportowy język XML do opisu danych. http://www.xml-rpc.org Bartłomiej Świercz Rozproszone technologie

Protokół HTTP Serwery aplikacji i zdalne usługi Hypertext Transfer Protocol jest protokołem warstwy aplikacji przeznaczonym dla rozproszonych i zorientowanych na media systemów informacyjnych. Jest to protokół bardzo ogólny, bezstanowy, który może być wykorzystany do dystrybucji informacji hipertekstowej oraz jako serwer rozproszonych zorientowanych obiektowo systemów(poprzez rozszerzenie metody request, kodów błędów i nagłówków). http://www.w3.org/protocols/rfc2616/rfc2616.html Bartłomiej Świercz Rozproszone technologie

Protokół HTTP- przykład Przykład zapytania do serwera HTTP GET/ HTTP/1.1 Host: localhost:8000 User-Agent: Mozilla/5.0(X11; U; Linux i686; en-us; rv:1.7.10) Gecko/20050911 Firefox/1.0.6(Debian package 1.0.6-5) Accept: text/xml, application/xml, application/xhtml+xml, text/html;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: pl,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Bartłomiej Świercz Rozproszone technologie

Protokół HTTP- przykład Przykład odpowiedzi serwera HTTP HTTP/1.1 302 Found Date:Fri,28Oct200505:39:29GMT Server: Apache/2.0.54(Debian GNU/Linux) PHP/4.3.10-15 Location: http://localhost:8000/apache2-default/ Content-Length: 323 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/html; charset=iso-8859-1 Bartłomiej Świercz Rozproszone technologie

: omówienie Komunikat jest realizowany jako żądanie HTTP-POST. Treścią wiadomości jest struktura XML. Procedura wykonywana jest na serwerze i wynik jest zwracany jako poprawnie sformatowany dokument XML. Parametrem procedury mogą być liczby, napisy, struktury i tablice. Bartłomiej Świercz Rozproszone technologie

: omówienie Przykład zapytania POST/ HTTP/1.0 Host: localhost:9000 User-Agent: xmlrpclib.py/1.0.1 Content-Type: text/xml Content-Length: 187 <?xml version= 1.0?> <methodcall> <methodname>pow</methodname> <params> <param> <value><int>2</int></value> </param> <param> <value><int>8</int></value> </param> </params> </methodcall> Bartłomiej Świercz Rozproszone technologie

: omówienie Przykład odpowiedzi HTTP/1.0 200 OK Server: BaseHTTP/0.3 Python/2.3.5 Date:Wed,26Oct200511:44:59GMT Content-type: text/xml Content-length: 123 <?xml version= 1.0?> <methodresponse> <params> <param> <value><int>256</int></value> </param> </params> </methodresponse> Bartłomiej Świercz Rozproszone technologie

Typy skalarne Serwery aplikacji i zdalne usługi Znacznik: Opis: <i4> lub <int> cztero-bajtowa liczba całkowita ze znakiem <boolean> wartość logiczna: 0(fałsz) lub 1(prawda) <string> napis <double> liczba zmiennoprzecinkowa podwójnej precyzji <datetime.iso8601> format daty i czasu: 19980717T14:08:55 <base64> wartość binarna zakodowana algorytmem Base64 Bartłomiej Świercz Rozproszone technologie

Typy strukturalne Serwery aplikacji i zdalne usługi <struct> <member> <name>lowerbound</name> <value><i4>18</i4></value> </member> <member> <name>upperbound</name> <value><i4>139</i4></value> </member> </struct> Bartłomiej Świercz Rozproszone technologie

Typy tablicowe Serwery aplikacji i zdalne usługi <array> <data> <value><i4>12</i4></value> <value><string>egypt</string></value> <value><boolean>0</boolean></value> <value><i4>-31</i4></value> </data> </array> Bartłomiej Świercz Rozproszone technologie

Czym jest? Serwery aplikacji i zdalne usługi Akronim oznacza Simple Object Access Protocol. jest protokołem komunikacyjnym służącym do wymiany wiadomości pomiędzy aplikacjami. przeznaczony jest do wymiany danych w sieci internet. jest niezależny od platformy sprzętowej oraz języka programowania. Wiadomości są opisane za pomocą XML. jest standardem W3C: http://www.w3.org/tr/soap/ Bartłomiej Świercz Rozproszone technologie

Dlaczego? Serwery aplikacji i zdalne usługi Komunikacja Systemy wykorzystujące komunikację rozproszoną w postaci Remote Procedure Call jak CORBA lub DCOM napotykają na problemy bezpieczeństwa i dostępności serwisów w sieci internet. Przeszkodą są licznie wykorzystywane w sieci Internet systemy firewall i proxy. Powszechność jest wykorzystywany przez wiele firm i aplikacji komercyjnych. Jest podstawowym elementem architektury Microsoft.NET dla aplikacji internetowych. Bartłomiej Świercz Rozproszone technologie

Założenia projektowe Podstawowym założeniem projektu była prostota i rozszerzalność projektowanego protokołu. Oznacza to, że wiele elementów występujących w innych protokołach RPC nie pojawia sięwnp: Rozproszony odśmiecacz pamięci(distributed garbage collection). Przekazywanie obiektów przez referencję (Objects-by-reference). Bartłomiej Świercz Rozproszone technologie

Podział Serwery aplikacji i zdalne usługi Protokół logicznie dzieli się na trzy części: Kopertę( envelope)- jest to definicja opisująca co znajduje się w wiadomości, dla kogo jest przeznaczona i czy wiadomość jest obowiązkowa lub opcjonalna. Zasady kodowania( encoding rules)- możliwość definiowania typów wykorzystywanych przez aplikację. Reprezentacja RPC( RPC representation)- określa reguły opisu zdalnych procedur i ich odpowiedzi. Bartłomiej Świercz Rozproszone technologie

Wiadomość Serwery aplikacji i zdalne usługi Wiadomość jest podstawową komunikacją jednokierunkową pomiędzy nadawcą, a odbiorcą. Wiadomość może wykorzystać różne protokoły jako medium transportowe(np. HTTP). Aplikacja, która odebrała wiadomość musi ją przetworzyć zgodnie z zasadami: Rozpoznać wszystkie części wiadomości. Zdecydować, czy wszystkie części wiadomości są wspierane przez aplikację. Jeżeli aplikacja nie jest adresatem wiadomości to musi ją przekazać do adresata. Bartłomiej Świercz Rozproszone technologie

Przykładowa wiadomość Wiadomość osadzona w HTTP- żądanie POST/StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn Action:"Some-URI" <-ENV:Envelope xmlns:-env="http://schemas.xmlsoap.org/soap/envelope/" -ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <-ENV:Body> <m:getlasttradeprice xmlns:m="some-uri"> <symbol>dis</symbol> </m:getlasttradeprice> </-ENV:Body> </-ENV:Envelope> Bartłomiej Świercz Rozproszone technologie

Przykładowa wiadomość Wiadomość osadzona w HTTP- odpowiedź HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <-ENV:Envelope xmlns:-env="http://schemas.xmlsoap.org/soap/envelope/" -ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <-ENV:Body> <m:getlasttradepriceresponse xmlns:m="some-uri"> <Price>34.5</Price> </m:getlasttradepriceresponse> </-ENV:Body> </-ENV:Envelope> Bartłomiej Świercz Rozproszone technologie

Budowa wiadomości Wiadomość jest dokumentem XML zawierającym elementy: Wymagane elementy koperty, które identyfikują dokument XML jako wiadomość. Opcjonalny nagłówek. Wymagany element Body, który zawiera informacje żądającego lub odpowiadającego na wiadomość. Opcjonalny element Fault opisujący błędy mogące pojawić się podczas przetwarzania wiadomości. Bartłomiej Świercz Rozproszone technologie

Składnia wiadomości Wiadomość musi być zapisana przy użyciu XML. Wiadomość musi zawierać przestrzeń nazw Envelope. Wiadomość musi zawierać przestrzeń nazw Encoding. Wiadomość nie może zawierać definicji DTD. Wiadomość nie może zawierać instrukcji przetwarzania XML. Bartłomiej Świercz Rozproszone technologie

Szkielet wiadomości <?xml version="1.0"?> <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> Bartłomiej Świercz Rozproszone technologie

Koperta wiadomości Koperta wiadomości jest jednocześnie głównym(root) elementem dokumentu XML. Definiuje dokument XML jako wiadomość. Struktura koperty <?xml version="1.0"?> <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding">.. Miejsce na wiadomość. </soap:envelope> Koperta zawsze musi być skojarzona z przestrzenią nazw http://www.w3.org/2001/12/soap-envelope. Bartłomiej Świercz Rozproszone technologie

Atrybut encodingstyle Atrybut encodingstyle jest używany do zdefiniowania typów używanych w wiadomości. Wiadomość nie ma domyślnego kodowania. Bartłomiej Świercz Rozproszone technologie

Element Header Serwery aplikacji i zdalne usługi Opcjonalny element Header zawiera informacje specyficzne dla aplikacji(autoryzacja, transakcje itd.). Jeżeli element Header jest obecny w wiadomości to musi być pierwszym potomkiem elementu Envelope. Bartłomiej Świercz Rozproszone technologie

Element Body Serwery aplikacji i zdalne usługi Element Body jest wymagany w każdej wiadomości. Elementy potomne elementu Body mogą być umieszczone w innej przestrzeni nazw. Specyfikacja definiuje tylko jeden element potomny umieszczony w domyślnej przestrzeni nazw. Jest to element Fault. Bartłomiej Świercz Rozproszone technologie

Element Body Serwery aplikacji i zdalne usługi Przykład zapytania <?xml version="1.0"?> <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding" > <soap: Body> <m:getprice xmlns:m="http://www.w3schools.com/prices"> <m:item>apples</m:item> </m:getprice> </ soap: Body> </soap:envelope> Bartłomiej Świercz Rozproszone technologie

Element Body Serwery aplikacji i zdalne usługi Przykład odpowiedzi <?xml version="1.0"?> <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding" > <soap: Body> <m:getpriceresponse xmlns:m="http://www.w3schools.com/prices"> <m:price>1.90</m:price> </m:getpriceresponse> </ soap: Body> </soap:envelope> Bartłomiej Świercz Rozproszone technologie

Element Fault Serwery aplikacji i zdalne usługi Informacja o błędzie dotyczącym wiadomości przekazywana jest wewnątrz elementu Fault. Element Fault musi być potomkiem elementu Body i może wystąpić tylko raz w dokumencie. Bartłomiej Świercz Rozproszone technologie

Element Fault Serwery aplikacji i zdalne usługi Informacja o błędzie dotyczącym wiadomości przekazywana jest wewnątrz elementu Fault. Element Fault musi być potomkiem elementu Body i może wystąpić tylko raz w dokumencie. Przykład: < ENV:Envelope xmlns: ENV="http://schemas.xmlsoap.org/soap/envelope/"> < ENV:Body> < ENV:Fault> <faultcode> ENV:MustUnderstand </faultcode> <faultstring> Must Understand Error </faultstring> </ ENV:Fault> </ ENV:Body> </ ENV:Envelope> Bartłomiej Świercz Rozproszone technologie

Elementy potomne elementu Fault Element Fault może mieć zagnieżdżone elementy: Element: Opis: <faultcode> Kod identyfikujący błąd. <faultstring> Czytelny opis kodu. <faultactor> Informacja o tym co wywołało błąd. <detail> Dodatkowe informacje o błędzie. Bartłomiej Świercz Rozproszone technologie

Kody błędów Serwery aplikacji i zdalne usługi Kod: Opis: VersionMismatch Nieprawidłowa przestrzeń nazw dla elementu Envelope. MustUnderstand Odbiorca wiadomości nie zrozumiał elementu, który miał ustawiony atrybut mustunderstand. Client Wiadomość została nieprawidłowo zbudowana lub zawiera niepoprawne dane. Server Wystąpił błąd podczas pracy serwera. Bartłomiej Świercz Rozproszone technologie

Wstęp do Serwery aplikacji i zdalne usługi jest skrótem od Description Language. jest dokumentem XML. służy do opisywania usług udostępnianych przez Web Services. jest używany do lokalizacji usługi(). W3C draft: http://www.w3.org/tr/wsdl Bartłomiej Świercz Rozproszone technologie

Wstęp do Serwery aplikacji i zdalne usługi jest skrótem od Description Language. jest dokumentem XML. służy do opisywania usług udostępnianych przez Web Services. jest używany do lokalizacji usługi(). W3C draft: http://www.w3.org/tr/wsdl jest powiązany z technologiami: 1.1, HTTP GET/POST i MIME. Bartłomiej Świercz Rozproszone technologie

Przykład dokumentu XML http://www.w3.org/tr/wsdl#_wsdl Część 1: <?xml version="1.0"?> <definitions name="stockquote" targetnamespace=" http:// example. com/ stockquote. wsdl" xmlns:tns="http://example.com/stockquote.wsdl" xmlns:xsd1="http://example.com/stockquote.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/"> Bartłomiej Świercz Rozproszone technologie

Przykład dokumentu XML http://www.w3.org/tr/wsdl#_wsdl Część 2: <types> <schema targetnamespace=" http:// example. com/ stockquote. xsd" xmlns="http://www.w3.org/2000/10/xmlschema"> <element name="tradepricerequest"> <complextype> <all> <element name="tickersymbol" type="string"/> </all> </ complextype> </element> <element name="tradeprice"> <complextype> <all> <element name="price" type="float"/> </all> </ complextype> </element> </ schema> </types> Bartłomiej Świercz Rozproszone technologie

Przykład dokumentu XML http://www.w3.org/tr/wsdl#_wsdl Część 3: <message name=" GetLastTradePriceInput"> <part name="body" element="xsd1:tradepricerequest"/> </ message> <message name=" GetLastTradePriceOutput"> <part name="body" element="xsd1:tradeprice"/> </ message> <porttype name=" StockQuotePortType"> <operation name="getlasttradeprice"> <i n p u t message=" tns:getlasttradepriceinput"/> <ou t p u t message=" tns:getlasttradepriceoutput"/> </operation> </ porttype> Bartłomiej Świercz Rozproszone technologie

Przykład dokumentu XML http://www.w3.org/tr/wsdl#_wsdl Część 4: <binding name="stockquotesoapbinding" t y p e=" tns:stockquoteporttype"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="getlasttradeprice"> <soap:operation soapaction="http://example.com/getlasttradeprice"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> Bartłomiej Świercz Rozproszone technologie

Przykład dokumentu XML http://www.w3.org/tr/wsdl#_wsdl Część 5: <service name="stockquoteservice"> <documentation>my first service</documentation> <port name="stockquoteport" binding="tns:stockquotebinding"> <soap:address location="http://example.com/stockquote"/> </port> </service> </definitions> Bartłomiej Świercz Rozproszone technologie

Przykład dokumentu XML Dokument jest zbiorem definicji! Bartłomiej Świercz Rozproszone technologie

Podstawowe elementy Element Znaczenie: <porttype> Operacje dostarczane przez <message> Wiadomości używane przez <types> Definicja typów używanych przez <binding> Opis protokołu używanego przez Bartłomiej Świercz Rozproszone technologie

Podstawowe elementy Element Znaczenie: <porttype> Operacje dostarczane przez <message> Wiadomości używane przez <types> Definicja typów używanych przez <binding> Opis protokołu używanego przez Dokument może zawierać inne elementy rozszerzające jego funkcjonalność oraz elementy pozwalające na łączenie wielu dokumentów w jeden opisujący rożne. Bartłomiej Świercz Rozproszone technologie

Struktura dokumentu <definitions> <types>.......... </types> <message>.......... </ message> <porttype>.......... </ porttype> <binding>.......... </binding> </definitions> Bartłomiej Świercz Rozproszone technologie

Element porttype Jest to najważniejszy element dokumentu. Definiuje usługi i powiązane z nimi wiadomości. Element porttype można porównać do klasy w tradycyjnym scentralizowanym programowaniu. Bartłomiej Świercz Rozproszone technologie

Element porttype Jest to najważniejszy element dokumentu. Definiuje usługi i powiązane z nimi wiadomości. Element porttype można porównać do klasy w tradycyjnym scentralizowanym programowaniu. Rodzajoperacji: Opis: One-way Operacja pobiera dane ale nic nie zwraca (procedura) Request-response Operacja pobiera dane i zwraca wynik (funkcja) Solicit-response Operacja wysyła rządanie i czeka na odpowiedź Notification Operacja wysyła rządanie i nie czeka na odpowiedź Bartłomiej Świercz Rozproszone technologie

Element message Element message definiuje dane na których operują funkcje dostarczane przez. Element ten można porównać do deklaracji funkcji w tradycyjnych językach programowania. Bartłomiej Świercz Rozproszone technologie

Element types Element types definiuje typy danych, które są używane przez Web Services. Dokumenty używają XML Schema do definicji typów danych. Bartłomiej Świercz Rozproszone technologie

Element binding Element binding definiuje format wiadomości(najczęściej ) i protokół transportowy(najczęściej HTTP) dla każdego portu (usługi). Bartłomiej Świercz Rozproszone technologie

Przykład dokumentu XML tym razem ze zrozumieniem http://www.w3.org/tr/wsdl#_wsdl Część 1: <?xml version="1.0"?> <definitions name="stockquote" targetnamespace=" http:// example. com/ stockquote. wsdl" xmlns:tns="http://example.com/stockquote.wsdl" xmlns:xsd1="http://example.com/stockquote.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/"> Bartłomiej Świercz Rozproszone technologie

Przykład dokumentu XML tym razem ze zrozumieniem http://www.w3.org/tr/wsdl#_wsdl Część 2: <types> <schema targetnamespace=" http:// example. com/ stockquote. xsd" xmlns="http://www.w3.org/2000/10/xmlschema"> <element name="tradepricerequest"> <complextype> <all> <element name="tickersymbol" type="string"/> </all> </ complextype> </element> <element name="tradeprice"> <complextype> <all> <element name="price" type="float"/> </all> </ complextype> </element> </ schema> </types> Bartłomiej Świercz Rozproszone technologie

Przykład dokumentu XML tym razem ze zrozumieniem http://www.w3.org/tr/wsdl#_wsdl Część 3: <message name=" GetLastTradePriceInput"> <part name="body" element="xsd1:tradepricerequest"/> </ message> <message name=" GetLastTradePriceOutput"> <part name="body" element="xsd1:tradeprice"/> </ message> <porttype name=" StockQuotePortType"> <operation name="getlasttradeprice"> <i n p u t message=" tns:getlasttradepriceinput"/> <ou t p u t message=" tns:getlasttradepriceoutput"/> </operation> </ porttype> Bartłomiej Świercz Rozproszone technologie

Przykład dokumentu XML tym razem ze zrozumieniem http://www.w3.org/tr/wsdl#_wsdl Część 4: <binding name="stockquotesoapbinding" t y p e=" tns:stockquoteporttype"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="getlasttradeprice"> <soap:operation soapaction="http://example.com/getlasttradeprice"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> Bartłomiej Świercz Rozproszone technologie

Przykład dokumentu XML tym razem ze zrozumieniem http://www.w3.org/tr/wsdl#_wsdl Część 5: <service name="stockquoteservice"> <documentation>my first service</documentation> <port name="stockquoteport" binding="tns:stockquotebinding"> <soap:address location="http://example.com/stockquote"/> </port> </service> </definitions> Bartłomiej Świercz Rozproszone technologie