Java 1 - Kolos

Transkrypt

Java 1 - Kolos
Uniwersytet Łódzki
Wydział Matematyki i Informatyki,
Katedra Analizy Nieliniowej
Web Services
wykład 9
Programowanie w Javie 2
mgr inż. Michał Misiak
Agenda






Ewolucja sieci komputerowych
Co to jest Web Service
Dlaczego i do czego można użyć WS
Architektura i standardy dla WS
API dla WS w Javie oraz J2EE dla WS
Narzędzia dla WS
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Ewolucja sieci komputerowych

Coraz większe przepływności


Koncepcja zaadresowania wszystkich urządzeń:



możliwa z użyciem protokołu IPv6
Adresy będą posiadać: samochody, urządzenia domowe, etc …
Architektura rozproszona aplikacji


Technologie transmisji danych: WDM, DWDM,
Nowe protokoły: HTTP, SMTP, LDAP, SOAP, UDDI,
Powstanie koncepcji Software as a Service

Możliwość zakupu dostępu do aplikacji w trybie
abonamentowym, a nie konkretnego pliku wykonawczego
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Ewolucja sieci komputerowych

Ewolucja platform
 Protokoły
pomiędzy platformami
 Ilość urządzeń w sieci

Ewolucja wzorców komunikacji:
 Klient-Serwer
3
warstwowy model
 Aplikacje Webowe
 Web Services
 Sieć P2P
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Definicja usługi sieciowej W3C






Usługa sieciowa jest aplikacją
Aplikacja identyfikowana poprzez URI
Interfejsy WS są definiowane, opisane i odkrywane za pomocą
języka XML
Umożliwia interakcję pomiędzy innymi aplikacjami
Wykorzystuje XML do budowy wiadomości
Transportem mogą być znane protokoły internetowe
“A Web service is a software application identified by a URI, whose interfaces and
binding are capable of being defined, described and discovered by XML
artifacts and supports direct interactions with other software applications
using XML based messages via internet-based protocols” (definicja W3C)
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
RPC vs WS






Wewnątrz przedsiębiorstw
Związany z określonym
zbiorem języków
programowania
Proceduralny
Związany z określonym
protokołem transportowym
Komponenty ściśle powiązane
Wydajne przetwarzanie






Wykracza poza granice
przedsiębiorstwa
Niezależny od języku
programowania
Asynchroniczny, komunikacja
za pomocą wiadomości
Niezależny od protokołu
(standardowo używany jednak
z HTTP)
Komponenty luźno powiązane
(loosly copuled)
Niewydajne przetwarzanie
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Aplikacja Web vs WS


Interakcja pomiędzy
użytkownikiem, a
programem
Z góry założona struktura
kompletów widziana
przez użytkownika



Komunikacja pomiędzy
programami
Możliwość dynamicznej
integracji różnych
komponentów
Możliwość
integracji/agregacji wielu
usług w jednym miejscu
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Cechy WS








Bazuje na XML (format danych definiowany przez XML, opis WS w
XML, etc…)
Opiera się na komunikacji asynchronicznej – przesyłanie
wiadomości
Niezależna od języka programowania (istotne jedynie poprawne
generowanie wiadomości pod kątem semantycznym i
syntaktycznym)
Może być dynamicznie rozmieszczana
Możliwość dynamicznego składania lub agregacji
Dostęp w sieci internet
Charakter pozwalający stosować w sieciach rozproszonych
Bazuje na standardzie zaakceptowanym przez przemysł
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Przykład architektury WS
Rejestr Usług Siecowych
UDDI
Definicja Usługi Sieciowej
Definicja Usługi Sieciowej
Definicja Usługi Sieciowej
Web Services Broker
WSDL
WSDL
ZNAJDŹ
REJESTRUJ
Serwer Aplikacyjny Parlay
Brama Parlay Web Services
PRZYWIĄŻ
Logika
usługi
KOMUNIKACJA
Usługa Sieciowa
Framework
Definicja Usługi Sieciowej
Definicja Usługi Sieciowej
Aplikacje Parlay
Interfejs
Aplikacyjny
Parlay X
SOAP
Web Services Requestor
Web Services Provider
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Możliwość asemblacji WS
użytkownik
WS1
Zagregowana WS
wspierająca
proces biznesowy
WS2
WS3
WS…N
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Dlaczego WS?





Umożliwiają współpracę pomiędzy różnymi
technologiami po przez sieć Internet
Możliwość wielokrotnego wykorzystania komponentów
Automatyczna komunikacja bez konieczności ingerencji
człowieka
Dostępne niezależnie od urządzenia, miejsca i czasu
Brak ograniczeń jeśli chodzi o stosowanie oraz
możliwość wykorzystania w różnych heterogenicznych
środowiskach i aplikacjach
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Przykład WS
Możliwość realizacji transakcji pomiędzy przedsiębiorcami
bez koniczności inwestycji w infrastrukturę IT
Łatwość integracji rozwiązań przedsiębiorców
Możliwość częstej zmiany potencjalnych dostawców
Dystrybutor
soap
Dostawca
Internet
Wytwórca
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Ewolucja aplikacji z wykorzystaniem WS





WS jest to pewna funkcjonalność (logika biznesowa) wystawiona w
sieci Internet dla innych podmiotów
Aplikacje monolityczne zostają rozłożone na komponenty, z których
można korzystać poprzez sieć
WS nie są czytane bezpośrednio przez człowieka
WS posiadają budowę modularną
Przykład: międzynarodowy system transakcji giełdowych:
Możliwość obserwacji wybranych walorów (WS dla instytucji w każdym
kraju dostarczające takie informacje)
 Możliwość założenia konta oraz przeprowadzania transakcji (WS dla
biura maklerskiego obsługującego daną giełdę)
 Możliwość zapoznania się z komunikatami giełdowymi (WS dla
dostawców wiadomości)

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Network Effect



Network Effect jest prawem
odkrytym/wymyślonym przez Metclafe
Wartość sieci jest proporcjonalna do kwadratu
liczby użytkowników sieci
Przykład ilustrujący
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Mity związane z WS




WS musi być transportowany z wykorzystaniem
protokołu HTTP (NIE)
WS bazuje na paradygmacie RPC (NIE)
WS wymaga jedynie bazowych komponentów:
SOAP, WSDL, UDDI (NIE)
WS jest nową koncepcją wykorzystywaną w
aplikacjach rozproszonych (NIE)
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Rozwój WS


Ciągły rozwój standardu WS w zakresie: SOAP,
WSDL, UDDI
Konieczność rozbudowy architektury o funkcje
wspierające zastosowania biznesowe WS:
 QoS
 Bezpieczeństwo,
transakcje
 Udostępnianie, rozliczanie
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Elementy architektury WS




Opis usługi sieciowej (service description) – opis
rozumiany globalnie
Rejestracja usługi sieciowej (service registration)
Odkrywanie usługi sieciowej (service discovery)
Wywoływanie usługi sieciowej (service
invocation)
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Architektura WS
Registry
Publish
Find
Rejestracja usługi
Web service
Żądanie odszukania
lokalizacji usług
Bind
Service client
Klient woła usługę
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
SOAP


Simple Object Access Protocol
Protokół połączeniowy bardzo podobny do:

IIOP dla CORBA
 JRMP dla RMI

XML wykorzystywany do kodowania informacji
Protokół czytelny dla człowieka, potencjalny problem z efektywnym
przetwarzaniem
 Określa zasady opakowywania danych



Wspiera XML-RPC
Specyfikacja SOAP 1.2 w ramach zaleceń W3C
Część 1: definiuje kopertę oraz szkielet powiązania z protokołem
 Część 2: określa model danych oraz powiązanie z HTTP

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Definicja SOAP zgodnie z W3C



SOAP jest lekkim protokołem zaprojektowanym
w celu wymiany strukturalizowanej informacji w
decentralizowanym rozproszonym środowisku
SOAP wykorzystuje XML jako narzędzie do
tworzenia wiadomości, które mogą być
przenoszone na różnego rodzaju protokołach
SOAP jest niezależny od konkretnego modelu
programistycznego
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Cechy SOAP




Prosty
Roszerzalny
Bezstanowy
Paradygmat jednokierunkowej wymiany wiadomości:


Oczywiście aplikacje mogą tworzyć bardziej złożone wzorce wymiany
wiadomości (req/resp,…) w zależności od potrzeb
SOAP nie mówi nic na temat


Semantyki przenoszonych danych
Routing wiadomości SOAP
 Niezawodność
 Trawersowanie NAT

SOAP określa zestaw akcji jakie węzeł może wykonać na
wiadomości
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Dodatkowe specyfikacje WS





WS-Security – określa wykorzystanie szyfrowania XML oraz
podpisu XML w ramach SOAP w celu zabezpieczenia wymiany
wiadomości. Jako alternatywę podaje się HTTPS
WS-Reliability – Standard protokołu przygotowany przez OASIS dla
niezawodnego przekazywania wiadomości
WS-ReliableMessaging – protokół dla niezawodnego przekazywania
wiadomości przygotowany przez MS, BEA, IBM i aktualnie
standaryzowany przez OASIS
WS-Addressing – sposób opisu adresu odbiorcy i nadawcy
wiadomości w ramach wiadomości SOAP
WS-Transaction – sposób w jaki będą zapewnione transakcje
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Struktura wiadomości SOAP
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Koperta wiadomości SOAP

Informacje zagnieżdżone



Nagłówek




Przestrzenie nazw
Informacja na temat kodowania
Opcjonalny
Może być przetwarzany przez węzły pośredniczące
Zawiera informacje na temat: bezpieczeństwa, transakcji
Ciało



Obowiązkowy
Obrabiany wyłącznie przez końcowego odbiorcę
Zawiera: dane aplikacji bądź wywołania metod RPC
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Nagłówek wiadomości SOAP

Wykorzystywany do tworzenia rozszerzeń
 Autentykacja
 Transakcje
 Zarządzanie
 Kontekst

wiadomości
Zbudowana z bloków nagłówków
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Bloki nagłówka SOAP


Elementy będące dziećmi nagłówka SOAP (env:Header)
Wykorzystywane do przenoszenia różnych informacji
wymaganych węzłów pośredniczących



Może być obsługiwany przez wskazany węzeł
Pozwala na realizację węzłom pośredniczącym dodatkowych
usług
Elementy nagłówka mogą być:

Przeglądane, kasowane, wstawiane, przekazywane dalej w
ramach ścieżki wiadomości SOAP
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Ciało wiadomości SOAP <env:Body>



Składa się z bloków ciała (body blocks, body
entries)
Przetwarzana/odczytywana wyłączenie przez
użytkownika końcowego
Przenosi informacje koniec-koniec
 Dane
aplikacji
 Wywołania metod RPC i ich parametrów
 Błędy SOAP
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Obsługa błędów SOAP


Wykorzystywane do przenoszenia informacji o
błędach bądź statusach
Zbudowany z 4 elementów:
 Faultcode
 Faultstring
 Faultactor
 Detail

Informacja o błędach jest w postaci czytelnej dla
człowieka
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Predefiniowane błędy SOAP

VesionMismatch


MustUnderstand


Odbiorca nie może przetworzyć bloku nagłówka
MustUnderstand
Client


W kopercie SOAP został użyty błędny namespace
Wskazuje błąd po stronie klienta np. niepoprawnie
sformatowana wiadomość, brak jakieś części
Server

Wskazuje błąd po stronie serwera, np. informacja o brak
możliwości przetworzenia wiadomości
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Jakie dane w nagłówku jakie w
ciele wiadomości?


Decyzja w kwestii, które dane umieścić, w której
części powinny być podjęte w trakcie
projektowania aplikacji
Dane przenoszone w ramach nagłówka mogą
być przeznaczone dla różnych węzłów
pośredniczących
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Terminologia protokołu SOAP







Węzeł SOAP (SOAP node) – element odpowiedzialny za
przetworzenie wiadomości zgodnie z założonymi regułami
Rola SOAP (SOAP role) – odbiorca SOAP oczekuje w trakcie
przetwarzania wiadomości.
Przywiązanie SOAP (SOAP Binding) – zbiór reguł na jakich będzie
przenoszona wiadomość SOAP w ramach innego protokołu np. w
ramach entity body protokołu HTTP
Cechy SOAP (SOAP Features) – rozszerzenie środowiska SOAP
zapewniającego: niezawodność, bezpieczeństwo, transakcje
Moduł SOAP (SOAP Module)
Wzorzec wymiany wiadomości SOAP – określa w jaki sposób będą
przesyłane wiadomości pomiędzy węzłami w ramach danego
protokołu transportu
Aplikacja SOAP
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Odbiorcy i nadawcy wiadomości





Nadawca SOAP
Odbiorca SOAP
Ścieżka wiadomości SOAP
Początkowy nadawca SOAP
Pośrednik SOAP



Jednocześnie nadawca i odbiorca SOAP
Przetwarza bloki nagłówka SOAP
Końcowy odbiorca SOAP


Końcowe przeznaczenie wiadomości SOAP
Odpowiedzialny za przetworzenie treści wiadomości
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Model wymiany wiadomości SOAP


SOAP jest prostym środowiskiem do wymiany informacji
wyspecyfikowanej w języku XML pomiędzy końcowym
odbiorcą i początkowym nadawcą
Typowy scenariusz zawiera serie wymienionych
wiadomości



Np. dla wzorca żądanie – odpowiedź
Model konwersacyjny request-response, w którym
wymieniane są dokumenty XML
Model RPC
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
RPC

Elementy wymagane przy RPC
 Adres
docelowego węzła SOAP
 Procedura lub nazwa metody
 Informacja na temat argumentów i rezultatów
 Separacja argumentów wykorzystywanych do
identyfikacji zasobów oraz argumentów
przenoszonych jako dane lub informacje sterujące
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008
Załączniki w SOAP

Wykorzystanie MIME jako kontener dla:
 Koperty
SOAP
 Dodatkowych załączników

Koperta SOAP oraz zawartość SOAP może
wskazywać na załączniki za pomocą URL
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej, M.Misiak © 2008

Podobne dokumenty