11 WebService ESB WS

background image

Web Service

Marcin Piątek 164797

11. Web Service i ESB

background image

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

background image

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

background image

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

background image

Dlaczego tego używać ?

• Oszczędność
• Skalowalność
• Zaawansowane i sprawdzone rozwiązania
• Możliwość zarobku ( z perspektywy

dostarczającego usługi )

5 / 29

background image

Przykłady zastosowań

• Serwis pogodowy
• Internetowy katalog produktów
• RSS
• Mapy
• Płatności online
• … wiele innych

6 / 29

background image

Web Service – stos protokołów

7 / 29

background image

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

background image

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: <methodCall>
– Metoda: <methodName>
– Parametry: <params>

• Typy danych: 6 podstawowych + tablice i rekordy

9 / 29

background image

XML-RPC - przykład

<?xml version="1.0" encoding="ISO-8859-1"?>
<methodCall>
<methodName>weather.getWeather</methodName>
<params>
<param><value>10016</value></param>
</params>
</methodCall>

<?xml version="1.0" encoding="ISO-8859-1"?>
<methodResponse>
<params>
<param>
<value><int>65</int></value>
</param>
</params>
</methodResponse>

Klient WS

Dostawca WS

10 / 29

background image

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

background image

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

background image

SOAP – przykład wiadomości

<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="

http://www.w3.org/2001/XMLSchema

">

<SOAP-ENV:Header>
<ns1:PaymentAccount xmlns:ns1="urn:ecerami" >
orsenigo473
</ns1:PaymentAccount >
</SOAP-ENV:Header>

<SOAP-ENV:Body>
<ns1:getTemp xmlns:ns1="urn:xmethods-Temperature"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<zipcode xsi:type="xsd:string">10016</zipcode>
</ns1:getTemp>
</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

13 / 29

background image

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

background image

SOAP – 2 przykłady kodowania

<SOAP-ENV:Body>
<ns1:getTemperatureRequest
xmlns:ns1="urn:weatherservice"
SOAP-ENV:encodingStyle=
"http://www.w3.org/2001/09/soap-
encoding">

<zipcode xsi:type="xsd:integer">
54990
</zipcode>
<date xsi:type=”xsd:date”>
2011-05-09
</date>

</ns1:getTemperatureRequest>
</SOAP-ENV:Body>

<SOAP-ENV:Body>
<ns1:getTemperature
xmlns:ns1="urn:XMLweatherservice"
SOAP-ENV:encodingStyle=
"http://xml.apache.org/xml-soap/literalxml">

<request>
<zip>54990</zip>
<date>20110509</date>
</request>

</ns1:getTemperatureRequest>
</SOAP-ENV:Body>

SOAP Encoding

Literal XML Encoding

15 / 29

background image

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

background image

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

background image

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 znaleźć (np. adresy URL )
JAK danego WS'a używać (np. format wiadomości )

18 / 29

background image

WSDL - zawartość

W WSDL dany Web Service jest opisywany przez 6 głównych elementów:

• TYP (<wsdl:types> ), definicje typów danych używanych do komunikacji

przez dany WS

• WIADOMOŚĆ (<wsdl:message>), abstrakcyjna definicja danych

przesyłanych/odbieranych w operacjach (przykład: wiadomość
zapytanieTemperatura zawiera pola : integer ZIPCODE , date DATA )

• TYP PORTU (<wsdl:portType> ), zbiór abstrakcyjnych operacji, dla każdej

określone wiadomości wejściowe i wyjściowe oraz ewentualnie wiadomość z
błędem.

• WIĄZANIE (<wsdl:binding>) , specyfikuje konkretny protokół i format danych

dla operacji i wiadomości zdefiniowanych dla danego typu portu

• PORT (<wsdl:port>) , przypisanie konkretnego adresu URL
• SERWIS (<wsdl:service>) , zbiór wszystkich portów danego WS

19 / 29

background image

WSDL: zawartość schemat

20 / 29

background image

UDDI - wstęp

• Universal Description Discovery and

Integration

• Geneza: jak znaleźć usługę której

potrzebujemy ?

• UDDI umożliwia :

opisywanie
odkrywanie
integrację

...usług sieciowych

21 / 29

background image

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

background image

UDDI – scenariusz użycia

23 / 29

background image

UDDI – struktura dokumentu

24 / 29

background image

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

background image

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:

• W odpowiedzi otrzymujemy obiekt z atrybutami określonymi

w dokumentacji (oraz w dokumencie WSDL)

• To wszystko, właśnie użyliśmy SOAP !

$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);

26 / 29

background image

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

background image

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

background image

Pytania

? ?


Wyszukiwarka

Podobne podstrony:
11 WebService i ESB ESB
(11) Obwieszczenie KE ws definicji rynku właściwego
Niewygodne tajne dokumenty ws wojny w Iraku (22 11 2009)
2015 11 03 Oto tajny raport TVN ws Durczoka
Miliband przedstawia strategię ws Afganistanu (17 11 2009)
2017 11 08 Niemcy w objęciu gender Urząd antydyskryminacyjny w euforii po historycznej decyzji TK ws
2016 11 29 Kuriozalne tłumaczenia ambasady Francji ws
182 11 Morawski(wer) (Opinia Morawskiego ws krzyża)
Zarz[1] finan przeds 11 analiza wskaz
11 Siłowniki
11 BIOCHEMIA horyzontalny transfer genów
PKM NOWY W T II 11
wyklad 11

więcej podobnych podstron