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



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

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

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

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

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

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

Tworzenie i wykorzystanie usług sieciowych

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

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

Usługi sieciowe (Web Services)

Programowanie komponentowe

Wybrane działy Informatyki Stosowanej

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

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

Rozproszone systemy internetowe

Programowanie Komponentowe WebAPI

ABC WCF.

1 Wprowadzenie do J2EE

Komunikacja międzysystemowa

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

Komunikacja i wymiana danych

SOA Web Services in Java

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

Wybrane problemy modelu usługowego

Wybrane działy Informatyki Stosowanej

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

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

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

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

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

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

Zagadnienia Programowania Obiektowego. Usługi sieciowe w Javie EE 5

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG

Rozproszone systemy Internetowe

JAX-RS czyli REST w Javie. Adam Kędziora

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

Web Service y w Javie

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

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

Plan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych

Programowanie komponentowe 5

XML w elektronicznej wymianie danych i integracji aplikacji

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

Simple Object Access Protocol

Programowanie obiektowe

Integracja Obieg Dokumentów - GiS Spis treści

Wprowadzenie do usług internetowych

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

Java JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG

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

Aplikacje RMI

XML w elektronicznej wymianie danych i integracji aplikacji

Zaawansowane aplikacje internetowe - laboratorium

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

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

mgr inż. Michał Paluch

Usługi sieciowe laboratorium 2013 K.M. Ocetkiewicz, T. Goluch

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

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

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

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2011/2012. Architektura zorientowana na usługi

Enterprise JavaBeans

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Web Services / Gridy

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

EJB 3.0 (Enterprise JavaBeans 3.0)

SOAP. Autor: Piotr Sobczak

Programowanie współbieżne i rozproszone

Michał Jankowski. Remoting w.net 2.0

Web Services (SOAP) Ćwiczenie 1

Wywoływanie metod zdalnych

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

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

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

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

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

Web Services w połączeniu z aplikacjami uruchamianymi na urządzeniach mobilnych

Audyt oprogramowania systemu B2B oprogramowanie umożliwiające zarządzanie informacjami o produktach:

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

Ministerstwo Finansów

Wywoływanie metod zdalnych

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

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

Rozproszone technologie Web Services

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

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

Aplikacje internetowe i rozproszone - laboratorium

Zastosowanie komponentów EJB typu Session

AXIS2 - tworzenie usługi sieciowej i klienta Axis Data Binding. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

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

Paweł Rajba

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

Modelowanie, projektowanie i implementacja usług Web Services. Maciej Zakrzewicz

ASP.NET MVC 4 & WEB API. Jamie Kurtz

Wybrane działy Informatyki Stosowanej

Java Enterprise Edition spotkanie nr 1. Sprawy organizacyjne, wprowadzenie

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Zaawansowany kurs języka Python

Transkrypt:

Web Services Autorzy wykładu: Maciej Zakrzewicz Marek Wojciechowski Web Services

Plan wykładu Wprowadzenie do technologii Web Services Architektura Web Services Protokół komunikacyjny SOAP Język opisu interfejsu WSDL Rejestr UDDI Web Services (2)

Technologia Web Services Rozproszone komponenty usługowe Samodokumentujące się Niezależne od języka programowania Rejestrowane Odkrywane Oparta na: SOAP WSDL UDDI Web Service Interfejs (WSDL) Komunikacja (SOAP) Interfejs (WSDL) Klient Opublikowanie Katalog serwisów (UDDI) Wyszukanie Web Services (3)

Web Services (4) Wielowarstwowe aplikacje internetowe Web Services a WWW HTML HTTP XML HTTP Warstwa prezentacji Web Service Warstwa logiki biznesowej Baza danych Serwer aplikacji

Zastosowania Web Services Komponenty aplikacji do wielokrotnego wykorzystania: Konwersja walut Weryfikacja poprawności numeru karty kredytowej Prognoza pogody Tłumaczenia... Integracja istniejącego oprogramowania interoperability Wymiana danych między różnymi aplikacjami, implementowanymi w różnych technologiach na różnych platformach Web Services (5)

Architektura zorientowana na usługi (SOA) SOA = Service-Oriented Architecture Architektura umożliwiająca tworzenie rozproszonych aplikacji z luźno powiązanych komponentów Obejmuje: Usługi elementy logiki biznesowej, dobrze zdefiniowane, niezależne od kontekstu i stanu innych usług Powiązania połączenia między usługami SOA dawniej implementowane w oparciu o ORB/DCOM SOA obecnie oparte najczęściej na Web Services Web Services (6)

Web Services (7) Wielowarstwowe aplikacje internetowe Architektura Web Services klient Web Service call p1(2,5) serializacja wywołań deserializacja wyników komponent Web Service function p1(a,b) function p1(a,b) function p1(a,b)...<p1> <a>2</a> <b>5</b> </p>... komunikat SOAP wyślij żądanie sieciowe Internet deserializacja wywołań serializacja wyników serwer aplikacji HTTP...<p1> <a>2</a> <b>5</b> </p>...

Protokół SOAP Pierwotnie: Simple Object Access Protocol Protokół komunikacyjny oparty na XML Struktura komunikatu SOAP: <Envelope> <Header> <Body> <Fault> Tryby wywołań RPC zawsze synchroniczne Dokumentowy synchroniczne lub asynchroniczne Web Services (8)

Web Services (9) Wielowarstwowe aplikacje internetowe Przykładowe żądanie SOAP <?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 xmlns:m="demo"> <m:multiply> <m:val1>3</m:val1> <m:val2>2</m:val2> </m:multiply> </soap:body> </soap:envelope>

Web Services (10) Wielowarstwowe aplikacje internetowe Przykładowa odpowiedź SOAP <?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 xmlns:m="demo"> <m:multiplyresponse> <m:result>6</m:result> </m:multiplyresponse> </soap:body> </soap:envelope>

Implementacja klienta Web Services Call call = new Call(); call.settargetobjecturi("demo"); call.setmethodname("multiply"); call.setencodingstyleuri(constants.ns_uri_soap_enc); Vector params = new Vector(); params.addelement(new Parameter("val1", Integer.class, 2, null)); params.addelement(new Parameter("val2", Integer.class, 3, null)); call.setparams(params); Response resp = call.invoke(new URL("http://poznan/demo"), ""); Parameter ret = resp.getreturnvalue(); Object value = ret.getvalue(); System.out.println(value); Web Services (11)

Web Services (12) Wielowarstwowe aplikacje internetowe Język WSDL Web Services Description Language Opis interfejsu komponentu Web Service Automatyczne generowanie kodu źródłowego klienta Web Service Język znaczników XML <definitions> <service> <service> <port> <port> <binding> <operation> <operation> <input> <output> <porttype> <operation> <operation> <input> <output>

Web Services (13) Wielowarstwowe aplikacje internetowe Przykładowy dokument WSDL (1/2) <definitions name="demo"...> <message name="multiply0request"> <part name="val1" type="xsd:int"/> <part name="val2" type="xsd:int"/> </message> <message name="multiply0response"> <part name="return" type="xsd:int"/> </message> <porttype name="demoporttype"> <operation name="multiply"> <input name="multiply0request" message="tns:multiply0request"/> <output name="multiply0response" message="tns:multiply0response"/> </operation> </porttype>...

Web Services (14) Wielowarstwowe aplikacje internetowe Przykładowy dokument WSDL (2/2)... <binding name="demobinding" type="tns:demoporttype"> <soap:binding style="rpc"...> <operation name="multiply"> <input name="multiply0request">... </input> <output name="multiply0response">... </output> </operation> </binding> <service name="http://miner/demo"> <port name="demoport" binding="tns:demobinding"> <soap:address location="http://poznan/demo"/> </port> </service> </definitions>

Rejestr UDDI Universal Description, Discovery, and Integration Specjalizowana baza danych Trzy poziomy opisu komponentów White Pages Yelow Pages Green Pages rejestracja usługi JAXR-API UDDI JAXR-API wyszukanie usługi komponent JAX-RPC wywołanie usługi klient Web Services (15)

Zestaw programisty Java Java API for XML-based RPC (JAX-RPC) Java API for XML-based Web Services (JAX-WS) SOAP with Attachments API for Java (SAAJ) Java API for XML Processing (JAXP) Java API for XML Messaging (JAXM) Java API for XML Registries (JAXR) Java Architecture for XML Binding (JAXB) Web Services (16)

Podejścia do tworzenia Web Services Bottom-up W oparciu o istniejące komponenty Np. klasy, sesyjne bezstanowe EJB, zapytania SQL, procedury składowane Podejście niewymagające biegłej znajomości WSDL i XML Schema Top-down Punktem wyjścia jest przygotowanie pliku WSDL (ewentualnie wcześniej schematów XML opisujących przesyłane wiadomości) Umożliwia zrównoleglenie prac nad implementacją serwisu i klienta Web Services (17)

Web Services standardy uzupełniające WS-Security WS-Reliability WS-ReliableMessaging WS-Adressing WS-Transaction WS-Interoperability... Web Services (18)

Web Services Metadata w Java EE Tworzenie Web Services poprzez oznaczenie klas Java lub EJB odpowiednimi adnotacjami: @WebService @WebMethod @WebParam @WebResult @SOAPBinding Web Services (19)

Web Services (20) Wielowarstwowe aplikacje internetowe Web Services Metadata - Przykład import javax.ejb.stateless; import javax.jws.webmethod; import javax.jws.webservice; @Stateless @WebService public class MnozenieBean { public MnozenieBean() {} @WebMethod public int mnoz(int p1, int p2) { return p1 * p2; } } MnozenieBean.java

Web Services (21) Wielowarstwowe aplikacje internetowe Implementacja klienta Web Service w praktyce Do utworzenia klienta Web Service nie jest niezbędna znajomość SOAP ani interfejsów programistycznych związanych z technologią Web Services W praktyce korzysta się z narzędzi, które w oparciu o WSDL generują klasę proxy Pośredniczącą w komunikacji z komponentem Web Service Udostępniającą funkcjonalność serwisu w formie metod lokalnego obiektu Ukrywającą szczegóły komunikacji WSDL2java http://www.poznan.pl/webservices/mnozenie.wsdl

Web Services (22) Wielowarstwowe aplikacje internetowe Generacja klasy proxy w IDE (1/3)

Web Services (23) Wielowarstwowe aplikacje internetowe Generacja klasy proxy w IDE (2/3)

Web Services (24) Wielowarstwowe aplikacje internetowe Generacja klasy proxy w IDE (3/3)

Web Services w Microsoft.NET Implementowane w ASP.NET Klasy opisane specjalnymi atrybutami Mnozenie.asmx <%@ WebService Language="C#" Class="MnozenieWS"%> using System; using System.Web; using System.Web.Services; [WebService(Namespace="http://www.poznan.pl/webservices")] public class MnozenieWS { } [WebMethod(Description="Mnozenie dwoch liczb calkowitych")] public int mnoz(int p1, int p2) { return p1 * p2; } Web Services (25)

Web Services (26) Wielowarstwowe aplikacje internetowe Witryna i klient Web Services w.net Witryna Web Service Tworzenie klasy proxy dla klienta Web Service wsdl http://www.poznan.pl/webservices/mnozenie.asmx?wsdl lub Add Web Reference w Visual Studio 2008

Rozwiązania alternatywne dla SOAP REST (Representational State Transfer) Tzw. RESTful Web Services Interfejs komponentu Web Service w formie URI dostępnych operacjami GET, POST, PUT, DELETE, itd. protokołu HTTP Komunikaty w formie zwykłych dokumentów XML WSIF (Web Services Invocation Framework) Elastyczny sposób wywoływania serwisów opisanych w WSDL (SOAP, EJB, klasa lokalna) Możliwość dynamicznych wywołań Web Services (27)

REST (Representational State Transfer) Architektoniczny styl tworzenia oprogramowania dla rozproszonych systemów hipermedialnych nie tylko Web Services Kolekcja zasad dotyczących tworzenia i adresacji zasobów Zasób (ang resource) jako centralne pojęcie abstrakcja stanu i funkcjonalności aplikacji każdy zasób ma unikalny adres o uniwersalnej składni stosowanej dla hiperlinków (URI w HTTP) jednolity interfejs do transferu stanu między klientem i zasobem (wymianiane są reprezentacje zasobów) Interfejs do transmisji danych poprzez HTTP bez dodatkowej warstwy komunikacyjnej i śledzenia sesji Web Services (28)

RESTful Web Services Usługi sieciowe implementowane w oparciu o HTTP i zbiór zasad REST Web Service jako kolekcja zasobów 3 aspekty definicji serwisu: adres URI (np. http://myservice.com/resources/products, http://myservice.com/resources/products/p12345) typ MIME obsługiwanych danych (np. XML, JSON) zbiór obsługiwanych operacji w postaci metod (rozkazów) HTTP (POST, GET, PUT, DELETE) Web Services (29)

RESTful Web Service - Przykład http://myservice.com/resources/products GET pobranie listy produktów POST dodanie nowego produktu PUT podmiana całej kolekcji produktów (nietypowe) DELETE usunięcie całej kolekcji produktów (nietypowe) http://myservice.com/resources/products/p12345 GET pobranie konkretnego produktu POST (nieużywane) PUT modyfikacja konkretnego produktu DELETE usunięcie konkretnego produktu Web Services (30)

Windows Communication Foundation Nowy model programistyczny zorientowany na usługi Najważniejsze aspekty WCF Unifikacja istniejących technologii komunikacyjnych.net Framework ASP.NET Web services (ASMX).NET Framework remoting Enterprise Services WSE (Web Services Enhancements for Microsoft.NET) Microsoft Message Queuing (MSMQ) Cross-vendor interoperability z uwzględnieniem niezawodności, bezpieczeństwa i transakcji Jawna orientacja na usługi Web Services (31)

WCF Interoperability Aplikacja oparta o WCF może współpracować z: aplikacjami WCF na tej samej maszynie Windows aplikacjami WCF na innych maszynach Windows aplikacjami zbudowanymi w dowolnych technologiach na dowolnym systemie operacyjnym wspierających standardowe Web services Komunikacja WCF-WCF jest znacząco zoptymalizowana W pozostałych scenariuszach wykorzystywane są standardowe protokoły Web services Aplikacja WCF może udostępniać swoje usługi obu typom klientów (WCF i nie-wcf) Web Services (32)

Web Services (33) Wielowarstwowe aplikacje internetowe Specyfikacje WS zapewniające WCF interoperability Przesyłanie wiadomości: SOAP WS-Addressing Message Transmission Optimization Mechanism (MTOM) Metadane WSDL, WS-Policy, WS-MetadataExchange Bezpieczeństwo WS-Security, WS-SecureConversation, WS-Trust, WS-Federation Niezawodność WS-Reliable Messaging Transakcje WS-Coordination, WS-Atomic Transaction

WCF kluczowe pojęcia message (body + headers) service wystawia endpoints endpoint (address + binding) do odbioru i wysyłania wiadomości address (URI) binding (transport + encoding) service operation contracts: service contract, operation contract, message contract, fault contract, data contract) Web Services (34)

Web Services (35) Wielowarstwowe aplikacje internetowe WCF Przykład (1/2) Plik zawartości reprezentujący usługę w aplikacji Service.svc <%@ ServiceHost Language="C#" Debug="true" Service="Service" CodeBehind="~/App_Code/Service.cs" %> Interfejs usługi (contract) IService.cs [ServiceContract] public interface IService { [OperationContract] string GetData(int value); }

Web Services (36) Wielowarstwowe aplikacje internetowe WCF Przykład (2/2) Klasa implementująca usługę public class Service : IService { public string GetData(int value) { return string.format("you entered: {0}", value); } } Tworzenie klasy proxy dla klienta usługi WCF svcutil.exe /language:cs /out:generatedproxy.cs /config:app.config http://localhost:8000/servicemodelsamples/service lub Add Service Reference w Visual Studio 2008 Service.cs

Podsumowanie Architektura zorientowana na usługi Kanony implementacji środowisk Web Services Interfejsy programistyczne dla języka Java Tworzenie usług i klientów na platformach Java i.net RESTful Web Services Windows Communication Foundation Web Services (37)

Materiały dodatkowe "Web Services Activity", http://www.w3.org/2002/ws "Web Services and Other Distributed Technologies", http://msdn.microsoft.com/webservices/ "SOA and Web Services", http://www- 128.ibm.com/developerworks/webservices "XMethods", http://www.xmethods.net/ "Java Technology and Web Services", http://java.sun.com/webservices/ "Web Services Project @ Apache", http://ws.apache.org/ Web Services (38)