11 WebService ESB WS


11. Web Service i ESB
Web Service
Marcin Piątek 164797
Plan prezentacji
" Co to jest Web Service ?
" Korzyści, możliwości, zastosowania
" Rozwiązania i technologie
XML-RPC

SOAP

WSDL

UDDI

" Przykład Web Service  płatności.pl
" Podsumowanie , bibliografia
2 / 29
Web Service - definicja własna
Web Service to zdalna usługa sieciowa,
która oferuje jej użytkownikom/klientom
pewne funkcjonalności i korzyści po
komunikacji z tą usługą za pomocą dobrze
opisanych interfejsów i z użyciem
odpowiednich protokołów komunikacji.
3 / 29
Web Service  definicja wg W3C
" Web Service to oprogramowanie stworzone w celu
wspierania sieciowej współpracy między
systemami/maszynami. Posiada interfejs opisany
formatem "maszynowym" (np. WSDL). Inne systemy
współpracują z Web Service w sposób opisany w
jego dokumentacji, z wykorzystaniem wiadomości
SOAP, najczęściej transportowanym przez protokół
HTTP z serializacją XML, w połączeniu z innymi
sieciowymi standardami.
Tłumaczenie własne definicji za w3.org
4 / 29
Dlaczego tego używać ?
" Oszczędność
" Skalowalność
" Zaawansowane i sprawdzone rozwiązania
" Możliwość zarobku ( z perspektywy
dostarczającego usługi )
5 / 29
Przykłady zastosowań
" Serwis pogodowy
" Internetowy katalog produktów
" RSS
" Mapy
" Płatności online
" & wiele innych
6 / 29
Web Service  stos protokołów
7 / 29
Wzorce wymiany informacji
" Jednokierunkowa
- klient dostawca
(np. założenie nowej płatności )
- dostawca klient
(np. informacja o zmianie stanu
płatności )
" Dwukierunkowa
- k d k
(np. żądanie anulowania
transakcji w odpowiedzi
status )
- d k d
(np. informacja o zmianie stanu
płatności z potwierdzeniem
odbioru)
8 / 29
XML-RPC
" Protokół XML pierwszej generacji
" Oparty na RPC (Remote Procedure Call)
" Bardzo prosty (specyfikacja: 4 strony) :
żądania HTTP POST z odpowiednią strukturą treści:
Nagłówek HTTP ( i XML)

Rama:

Metoda:

Parametry:

" Typy danych: 6 podstawowych + tablice i rekordy
9 / 29
XML-RPC - przykład


Klient WS Dostawca WS
weather.getWeather

10016






65



10 / 29
SOAP
" Simple Object Access Protocol
" Protokół XML drugiej generacji
" Większa złożoność "! większe możliwości
" Niezależny od protokołu przenoszenia danych
" Bardzo elastyczny  określone tylko ramy, nie
szczegóły  możliwość wyboru czy wręcz użycia
własnej formy przekazywanej zawartości
wiadomości
11 / 29
SOAP  struktura wiadomości
Wymagane:
 Envelope  opakowanie
całości
 Body  zawartość
wiadomości
Opcjonalne:
 Header  metadane itp.
 Fault  nie zawsze
obsługiwany
12 / 29
SOAP  przykład wiadomości

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">


orsenigo473



SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
10016



13 / 29
SOAP  kodowanie wiadomości
" SOAP nie narzuca żadnego standardu, można
wybrać dowolne kodowanie treści
" ...ale oferuje też własny standard kodowania
(najczęściej używany)
" & który posiada:
 Własną składnię
 Typy proste ( 21 )
 Typy złożone : tablice i rekordy
14 / 29
SOAP  2 przykłady kodowania
SOAP Encoding Literal XML Encoding

xmlns:ns1="urn:weatherservice" xmlns:ns1="urn:XMLweatherservice"
SOAP-ENV:encodingStyle= SOAP-ENV:encodingStyle=
"http://www.w3.org/2001/09/soap- "http://xml.apache.org/xml-soap/literalxml">
encoding">

54990
54990 20110509


2011-05-09




15 / 29
SOAP  jak korzystać ?
" Ręczne tworzenie wiadomości  raczej nie
dla ludzi (tym bardziej nie dla [leniwych]
informatyków )
" Korzystamy z gotowych implementacji 
dostępne dla wszystkich popularnych
języków użycie dobrze opisanego WS (z
użyciem WSDL) praktycznie identyczne z
lokalnym użyciem metod/funkcji
16 / 29
WSDL - wstęp
" Web Service Description Language
" Opis słowny usług świadczonych przez WS
nie jest wystarczający
" Wygodne jest korzystanie z ujednoliconego
opisu rozumianego przez maszyny
" WSDL jest rodzajem kontraktu między
świadczącym usługę a korzystającymi z
niej
17 / 29
WSDL cd.
" Niezależny od platformy i języka opisywanych usług
" Definiowany w XML
" Określa:
 CO dany WS robi (np. jakie operacje udostępnia)
 GDZIE WS można znalezć (np. adresy URL )
 JAK danego WS'a używać (np. format wiadomości )
18 / 29
WSDL - zawartość
W WSDL dany Web Service jest opisywany przez 6 głównych elementów:
" TYP ( ), definicje typów danych używanych do komunikacji
przez dany WS
" WIADOMOŚĆ (), abstrakcyjna definicja danych
przesyłanych/odbieranych w operacjach (przykład: wiadomość
zapytanieTemperatura zawiera pola : integer ZIPCODE , date DATA )
" TYP PORTU ( ), zbiór abstrakcyjnych operacji, dla każdej
określone wiadomości wejściowe i wyjściowe oraz ewentualnie wiadomość z
błędem.
" WIZANIE () , specyfikuje konkretny protokół i format danych
dla operacji i wiadomości zdefiniowanych dla danego typu portu
" PORT () , przypisanie konkretnego adresu URL
" SERWIS () , zbiór wszystkich portów danego WS
19 / 29
WSDL: zawartość schemat
20 / 29
UDDI - wstęp
" Universal Description Discovery and
Integration
" Geneza: jak znalezć usługę której
potrzebujemy ?
" UDDI umożliwia :
 opisywanie
 odkrywanie
 integrację
...usług sieciowych
21 / 29
UDDI cd.
" UDDI nie jest związany z żadną konkretną technologią
usług, opisuje nie tylko WS używające SOAP czy nawet
komputerów teoretycznie może opisywać nawet usługi
świadczone przez Fax, choć &
" Opisywany zawsze za pomocą XML
22 / 29
UDDI  scenariusz użycia
23 / 29
UDDI  struktura dokumentu
24 / 29
Przykład użycia WS- płatności.pl
" Opis : dokumentacja techniczna oraz WSDL
" Możliwe sposoby komunikacji
 Czyste żądania HTTP  POST, GET  w
odpowiedzi XML lub czysty tekst
żądanie może wyglądać np. tak:
https://adres/NewPayment?arg1=val1&arg2=val2&...
 SOAP ( opisane przez WSDL )
25 / 29
Przykład cd.
" Z dokumentacji technicznej znamy adres WSDL
" Chcemy wywołać metodę getRefunds , która za parametr
przyjmuje obiekt z 4 atrybutami : posID, sessionId, ts, sig
" Do dzieła ! W php to będzie tak:
$wsdl_url = 'https://www.platnosci.pl/paygw/webapi/Refunds?wsdl' ;
$client = new SoapClient($wsdl_url) ;
$argumenty = (object) array('posId'=>'1234' , 'sessionId'=>'1102', 'ts'=> '1915', 'sig'=>'ASD21D') ;
$odpowiedz = $client->getRefunds($argumenty);
" W odpowiedzi otrzymujemy obiekt z atrybutami określonymi
w dokumentacji (oraz w dokumencie WSDL)
" To wszystko, właśnie użyliśmy SOAP !
26 / 29
Podsumowanie
Użycie Web Service daje bardzo duże możliwości rozwoju i integracji oprogramowania
"
Dostępne są różne metody użycia Web Service, od prostych (XML-RPC) po złożone
"
(SOAP)
Istnieją języki/standardy pozwalające w pełni korzystać z dobrodziejstw usług
"
sieciowych, od ich odkrywania, przez poznawanie i opisywanie, aż do bezpośredniego
ich użycia z pomocą konkretnych protokołów komunikacji i transportu
Poznanie języków formalnych (SOAP, UDDI, WSDL) wymaga czasu, ale nie jest
"
konieczne, jeżeli chcemy tylko używać pewnych usług, a nie tworzyć własne.
27 / 29
Bibliografia
" M. Papazoglou,  Web Services: principles
and technology , 2008
" E. Cerami,  Web Service Essentials , 2002
" Oficjalna strona World Wide Web
Consortium, www.w3.org
" Specyfikacja XML-RPC ,
http://www.xmlrpc.com/spec
" Dokumentacja techniczna płatności.pl
" Wikipedia
Pytania
? ?


Wyszukiwarka

Podobne podstrony:
11 WebService i ESB ESB
rozp min infr z 04 11 2008 zm rozp ws szkolenia, egzaminowania ( )
Niewygodne tajne dokumenty ws wojny w Iraku (22 11 2009)
11 (311)
ZADANIE (11)
Psychologia 27 11 2012
359 11 (2)
11
PJU zagadnienia III WLS 10 11
Wybrane przepisy IAAF 10 11

więcej podobnych podstron