Web Services wykład 9

Podobne dokumenty
Simple Object Access Protocol

Rozproszone systemy Internetowe

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Wybrane działy Informatyki Stosowanej

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

Programowanie Komponentowe WebAPI

SOA Web Services in Java

Wybrane działy Informatyki Stosowanej

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Komunikacja i wymiana danych

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

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

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

Automatyzacja procesów biznesowych Andrzej Sobecki. ESB Enterprise service bus

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

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

Programowanie współbieżne i rozproszone

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

Programowanie współbieżne i rozproszone

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

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

System DiLO. Opis interfejsu dostępowego v. 2.0

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

SOAP. Autor: Piotr Sobczak

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

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

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

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

Programowanie obiektowe

Oprogramowanie dostosowane do potrzeb użytkownika. Skrócenie czasu wejścia na rynek

1 Wprowadzenie do J2EE

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

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Wprowadzenie do usług internetowych

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

Programowanie komponentowe

GS2TelCOMM. Rozszerzenie do TelCOMM 2.0. Opracował: Michał Siatkowski Zatwierdził: IMIĘ I NAZWISKO

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

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS. (c) 2008 Grupa SPOT SJ

UDDI & WSDL wykład 10

Systemy obiegu informacji i Protokół SWAP "CC"

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

Enterprise Java Beans wykład 7 i 8

Usługi sieciowe (Web Services)

1. Wymagania dla lokalnej szyny ESB

Application Layer Functionality and Protocols

Wprowadzenie. Dariusz Wawrzyniak 1

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Spis treúci. 1. Wstęp... 11

EXSO-CORE - specyfikacja

Tworzenie i wykorzystanie usług sieciowych

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Ministerstwo Finansów

Dotacje na innowacje - Inwestujemy w Waszą przyszłość ZAPYTANIE OFERTOWE

MONITOROWANIE DOSTĘPNOŚCI USŁUG IT

Systemy rozproszone System rozproszony

współbieżność - zdolność do przetwarzania wielu zadań jednocześnie

Usługi danych przestrzennych w GEOPORTAL-u. Marek Szulc , Warszawa

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

Wybrane działy Informatyki Stosowanej

Protokoły sieciowe - TCP/IP

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

MODEL WARSTWOWY PROTOKOŁY TCP/IP

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Komunikacja międzysystemowa

Architektura bezpiecznych aplikacji internetowych na platformie Java Enterprise Edition. Jakub Grabowski Warszawa,

Zasady budowy i przekazywania komunikatów wykorzystywanych w Systemie IT KDPW_CCP

EJB 3.0 (Enterprise JavaBeans 3.0)

Podstawy Transmisji Danych. Wykład IV. Protokół IPV4. Sieci WAN to połączenia pomiędzy sieciami LAN

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Wybrane problemy modelu usługowego

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

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Deduplikacja danych. Zarządzanie jakością danych podstawowych

Dotacje na innowacje - Inwestujemy w Waszą przyszłość ZAPYTANIE OFERTOWE

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

Rozproszone systemy internetowe

HP Service Anywhere Uproszczenie zarządzania usługami IT

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

Forum Client - Spring in Swing

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

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

XML w elektronicznej wymianie danych i integracji aplikacji

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Rozwiązanie Compuware Data Center - Real User Monitoring

Stosowanie protokołu AS4 zgodnie z Interoperability Network Code

Rozproszone systemy internetowe 2. WS-Policy: specyfikacje wymagań dla usług WWW

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

JBPM [JUG] Tomasz Gratkowski [GRATKOWSKI SOFTWARE]

Wywoływanie procedur zdalnych

Wybrane działy Informatyki Stosowanej

Konspekt pracy inżynierskiej

Wywoływanie procedur zdalnych

Remote Quotation Protocol - opis

Transkrypt:

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

Ewolucja sieci komputerowych Coraz większe przepływności Technologie transmisji danych: WDM, DWDM, 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 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

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

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)

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

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

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ł

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 ZNAJDŹ REJESTRUJ WSDL Serwer Aplikacyjny Parlay Definicja Usługi Sieciowej Definicja Usługi Sieciowej Aplikacje Parlay Web Services Requestor PRZYWIĄŻ KOMUNIKACJA SOAP Brama Parlay Web Services Logika usługi Usługa Sieciowa Framework Interfejs Aplikacyjny Parlay X Web Services Provider

użytkownik Możliwość asemblacji WS WS1 Zagregowana WS wspierająca proces biznesowy WS2 WS3 WS N

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

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 Dostawca soap Internet Wytwórca

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)

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

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)

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

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)

Architektura WS Registry Publish Rejestracja usługi Find Żądanie odszukania lokalizacji usług Web service Bind Klient woła usługę Service client

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

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

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

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

Struktura wiadomości SOAP

Koperta wiadomości SOAP Informacje zagnieżdżone Przestrzenie nazw Informacja na temat kodowania Nagłówek 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

Nagłówek wiadomości SOAP Wykorzystywany do tworzenia rozszerzeń Autentykacja Transakcje Zarządzanie Kontekst wiadomości Zbudowana z bloków nagłówków

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

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

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

Predefiniowane błędy SOAP VesionMismatch W kopercie SOAP został użyty błędny namespace MustUnderstand Odbiorca nie może przetworzyć bloku nagłówka MustUnderstand Client 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

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

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

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

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

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

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