Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI



Podobne dokumenty
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

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

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

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

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

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

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

Wybrane problemy modelu usługowego

1 Wprowadzenie do J2EE

Komunikacja i wymiana danych

Programowanie komponentowe

Aplikacje RMI

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

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

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG

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

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

Komponenty sterowane komunikatami

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

Technologie internetowe laboratorium nr 4. Instalacja i uruchomienie usługi sieciowej w serwerze Tomcat/AXIS

SOA Web Services in Java

Wywoływanie metod zdalnych

Usługi sieciowe (Web Services)

Wywoływanie metod zdalnych

Remote Method Invocation 17 listopada 2010

Podejście obiektowe do budowy systemów rozproszonych

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Web Service implementacja aplikacji klienta usługi

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej

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

SOAP. Autor: Piotr Sobczak

Programowanie Komponentowe WebAPI

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Wprowadzenie do J2EE. Maciej Zakrzewicz.

Simple Object Access Protocol

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1

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

Enterprise JavaBeans

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

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

Podejście obiektowe do budowy systemów rozproszonych

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Aplikacje RMI Lab4

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

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

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

RMI-2. Java Remote Method Invocation (RMI) na podstawie m.in. podręcznika firmy Sun Microsystems SYSTEMY ROZPROSZONE

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

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

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

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

Java Enterprise Edition spotkanie nr 1. Sprawy organizacyjne, wprowadzenie

Programowanie rozproszone w języku Java

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

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

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

Sieciowe programowanie rozproszone SOA, WebServices i systemy gridowe. Krzysztof Banaś Systemy rozproszone 1

mgr inż. Michał Paluch

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

Web Services / Gridy

Interfejsy w Javie. Przykład zastosowania interfejsów:

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

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

Integracja Obieg Dokumentów - GiS Spis treści

Certyfikaty firmy Sun. Ścieżka certyfikacyjna dla Javy Egzamin SCJP

Rozproszone systemy Internetowe

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

Enterprise JavaBeans. 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss.

XML w elektronicznej wymianie danych i integracji aplikacji

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego radmat radmat@math.uni.lodz.

Implementacja aplikacji biznesowych w technologii WS-BPEL

Systemy Rozproszone - Ćwiczenie 6

Zaawansowane aplikacje internetowe. Wykład 7. Implementacja procesów biznesowych w języku BPEL. wykład prowadzi: Maciej Zakrzewicz BPEL.

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

Rozproszone technologie Web Services

XML w elektronicznej wymianie danych i integracji aplikacji

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

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

RPC Remote Procedural Call. Materiały do prezentacji można znaleźć na stronie:

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

Zaawansowane aplikacje internetowe laboratorium

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

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

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

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

Programowanie obiektowe

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

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

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

Wykorzystywanie parsera DOM w programach Java i PL/SQL

Komunikacja międzysystemowa

ABC WCF.

Rozproszone systemy internetowe

Tworzenie i wykorzystanie usług sieciowych

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 2).

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

Transkrypt:

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI Maciej Zakrzewicz PLOUG mzakrz@cs.put.poznan.pl

Plan prezentacji Wprowadzenie do architektury zorientowanej na usługi Charakterystyka technologii Web Services protokół komunikacyjny SOAP języku opisu interfejsu WSDL rejestr usług UDDI Konstrukcja aplikacji Web Services za pomocą narzędzia Oracle JDeveloper

Architektura zorientowana na usługi ugi (SOA) Logika biznesowa nie stanowi monolitycznego programu; rozbita pomiędzy wiele rozproszonych komponentów usługowych Komponenty usługowe koordynowane przez centralną aplikację sterującą Nowy model biznesu IT, bazujący na odpłatnym oferowaniu dostępu do biznesowych komponentów usługowych

Architektura zorientowana na usługi ugi (SOA) konsument usług dostawca usług aplikacje usługi konsument usług internet dostawca usług

Technologia Web Services Technologia konstrukcji rozproszonych komponentów usługowych, stanowiących podstawę dla realizacji aplikacji biznesowych w architekturze SOA Usługa Web Service: zwarty, samodokumentujący się komponent programowy, który może być przez swojego twórcę zarejestrowany w sieci komputerowej, a następnie przez twórcę aplikacji-konsumenta odkryty i wywołany w trybie zdalnego wykonania

Technologia 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 Simple Object Access Protocol Prosty protokół komunikacyjny oparty na języku XML, umożliwiający przekazywanie wywołań zdalnych komponentów Web Services Może współdziałać z dowolnym niskopoziomowym sieciowym mechanizmem transportowym, np. HTTP, HTTPS, SMTP, JMS, RMI Dwa tryby wywołań: Remote Procedure Call i dokumentowy (document-oriented)

Protokół 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:val2>2</m:val2> <?xml version="1.0"?> </m:multiply> <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" </soap:body> soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> </soap:envelope> <soap:body xmlns:m="demo"> Odpowiedź: 6 <m:val1>3</m:val1> <m:multiplyresponse> <m:result>6</m:result> </m:multiplyresponse> </soap:body> </soap:envelope> Żądanie: multiply(2,3)

Implementacja usługi ugi Web Services 1. Utwórz klasę Java zawierającą metody logiki biznesowej 2. Skorzystaj z kreatora Java web Service

Instalowanie usługi ugi Web Services

Testowanie zainstalowanej usługi ugi

Implementacja klienta Web Services import org.apache.soap.*; import oracle.soap.transport.http.*;... 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://miner/demo"), ""); Parameter ret = resp.getreturnvalue(); Object value = ret.getvalue(); System.out.println(value);

Dokument WSDL <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>... <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://miner/demo"/> </port> </service> </definitions> WSDL to język znaczników XML służący do opisu technicznych parametrów połączenia sieciowego aplikacji-klienta z komponentem Web Service

Generowanie klasy pośrednika (Stub/Proxy)

Klasa-po pośrednik (Stub( Stub/Proxy) public class Demo { public int multiply(int val1, int val2) {return val1 * val2;} public int add(int val1, int val2) {return val1 + val2;} } public class DemoStub { public DemoStub() {...} public String getendpoint() {...} public void setendpoint(string endpoint) {...} public Integer add(integer val1, Integer val2) throws Exception {...} public Integer multiply(integer val1, Integer val2) throws Exception {...} public void setmaintainsession(boolean maintainsession) {...} public boolean getmaintainsession() {...} public void settransportproperties(properties props) {...} public Properties gettransportproperties() {...} } public class DemoClient { public static void main(string[] args) throws Exception { DemoStub ds = new DemoStub(); System.out.println(ds.multiply(new Integer(2),new Integer(3))); }}

Dynamiczne generowanie klasy- pośrednika (Stub( Stub/Proxy) WebServiceProxyFactory factory = new WebServiceProxyFactory(); WebServiceProxy proxy = factory.createwebserviceproxy("http:...demo.wsdl"); WebServiceMethod method = proxy.getmethod("multiply"); String paramnames[] = { "val1", "val2"}; Object paramvalues[] = new Integer[2]; paramvalues[0] = new Integer(2); paramvalues[1] = new Integer(3); Object response = method.invoke(paramnames,paramvalues);...

Universal Description, Discovery, and Integration - UDDI Specyfikacja bazy danych, w której twórcy usług Web Services dokonują ich rejestracji (przy użyciu WSDL) Twórcy aplikacji klienta mogą przeszukiwać bazy danych UDDI w celu znalezienia potrzebnej im usługi sieciowej; przeszukiwanie jest oparte o nazwy, adresy, klasyfikacje NAICS, ISO-3166, UNSPSC Pobrany z bazy danych UDDI dokument WSDL służy twórcom aplikacji klienta do wygenerowania Client Proxy, używanego następnie podczas budowy aplikacji końcowej Przykładowe bazy danych UDDI - http://uddi.microsoft.com, http://uddi.sap.com, http://uddi.ibm.com Udostępniane usługi obejmują prognozy pogody, wyszukiwarki, kursy akcji, kursy walut, oferty sklepów internetowych, itd.

Cykl życia usługi ugi Web Service UDDI rejestracja usługi JAXR-API JAXR-API wyszukanie usługi komponent wywołanie usługi JAX-RPC klient

Zestaw programisty WSDP Java API for XML Processing (JAXP): podstawowe biblioteki przetwarzania danych XML, zgodne z rekomendacją W3C, Java API for XML Messaging (JAXM): biblioteka sieciowej komunikacji opartej na języku XML, SOAP with Attachments API for Java (SAAJ): biblioteka sieciowej komunikacji w oparciu o protokół SOAP, Java API for XML-based RPC (JAX-RPC): biblioteka służąca do realizacji zdalnych wywołań komponentów usługowych w trybie RPC, Java API for XML Registries (JAXR): biblioteka służąca do dostępu do XML-owych rejestrów usług Web Servicesm np. UDDI, Tomcat zredukowany serwer J2EE umożliwiający instalowanie i uruchamianie komponentów usługowych Web Services, JavaServer Pages Standard Tag Library (JSTL): standardowa biblioteka znaczników JSP, Registry Server: rejestr UDDI

Podsumowanie Podstawowe kanony implementacji środowisk Web Services: implementację komponentu usługowego w dowolnym języku programowania sporządzenie pliku opisu interfejsu komponentu (WSDL) zgłoszenie komponentu do centralnego rejestru (UDDI) wyszukanie komponentu w centralnym rejestrze (UDDI) wygenerowanie kodu komunikacyjnego dla klienta (Web Service Stub) implementację klienta Web Service