Usługi sieciowe (Web Services)



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

Programowanie komponentowe

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

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

Programowanie Komponentowe WebAPI

Wybrane problemy modelu usługowego

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

XML w elektronicznej wymianie danych i integracji aplikacji

XML w elektronicznej wymianie danych i integracji aplikacji

SOA Web Services in Java

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

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

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

Rozproszone technologie Web Services

Rozproszone systemy internetowe

Komunikacja międzysystemowa

XML w elektronicznej wymianie danych, integracji aplikacji i bezpieczeństwie

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

Wprowadzenie do usług internetowych

Wybrane działy Informatyki Stosowanej

XML w elektronicznej wymianie danych, integracji aplikacji i bezpieczeństwie

JBPM [JUG] Tomasz Gratkowski [GRATKOWSKI SOFTWARE]

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

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

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

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

Elektroniczna wymiana danych (EDI) jest to: - wymiana informacji pomiędzy komputerami, z użyciem powszechnie akceptowanych standardów

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

Dni Użytkowników Aplikacji QAD Interoperacyjność z QXtend

Nowoczesne zastosowania XML

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

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Implementacja aplikacji biznesowych w technologii WS-BPEL

Web Services / Gridy

Rozproszone systemy Internetowe

IBM Corporation IBM SOA Center of Excellence

Web Service y w Javie

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

Geneza elektronicznej wymiany danych (EDI) XML w elektronicznej wymianie dokumentów i integracji aplikacji. Pojedyncze rozwiązania.

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

1.KOMPOZYCJA I INTEGRACJA USŁUG W ARCHITEKTURZE SOA

Simple Object Access Protocol

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

Komunikacja i wymiana danych

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

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Korporacyjna Magistrala Usług na przykładzie Mule ESB

Ministerstwo Finansów

Dobre praktyki w doborze technologii rozwiązań informatycznych realizujących usługi publiczne

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

Język BPEL. Bussiness Process Execution Language

Procesy biznesowe w praktyce. Przykłady użycia z wykorzystaniem jbpm 4.4

Geneza elektronicznej wymiany danych (EDI) XML w elektronicznej wymianie dokumentów i integracji aplikacji. Pojedyncze rozwiązania.

Wybrane działy Informatyki Stosowanej

Korporacyjna Magistrala Usług na przykładzie Oracle Service Bus

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

UDDI & WSDL wykład 10

Nowoczesne zastosowania XML

Projekt z AZNU tutorial

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

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

Szkolenie: Budowa aplikacji SOA/BPM na platformie Oracle SOA Suite 11g

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

Zastosowanie informatyki w gospodarce Wykład 5

Integracja Obieg Dokumentów - GiS Spis treści

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

Specyfikacja techniczna. mprofi Interfejs API

ZESZYTY NAUKOWE UNIWERSYTETU SZCZECIŃSKIEGO NR 740 STUDIA INFORMATICA NR

1.INTEGRACJA SYSTEMÓW W ARCHITEKTURZE ZORIENTOWANEJ NA USŁUGI

Programowanie obiektowe

1 Wprowadzenie do J2EE

Automatyzacja procesów biznesowych mgr inż. Krystyna Dziubich

Oracle Fusion Middleware

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

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

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

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

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

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

Jak powstaje model biznesowy? Co to jest? Modelowanie biznesowe. Model biznesowy. Jak powstaje model biznesowy? Jak firma generuje przychody?

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

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

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

Web Services wykład 9

Programowanie w Internecie

Podejścia do realizacji Web Services

Komunikacja systemów informatycznych przy pomocy usług sieciowych

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

Wybrane działy Informatyki Stosowanej

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

Architektura aplikacji

Hybrydowe aplikacje webowe

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

Fakty i mity usług sieciowych

Programowanie współbieżne i rozproszone

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

SOAP. Autor: Piotr Sobczak

Kompozycja usług. Tomasz Pawlak. Biznesowe Systemy Rozproszone

Transkrypt:

Usługi sieciowe (Web Services) Karol Kański Seminarium Systemy Rozproszone 14 października 2010

Agenda 1. Idea i historia usług sieciowych 2. Różne podejścia do tworzenia usług sieciowych 3. Języki opisu usług sieciowych 4. Rejestry usług sieciowych 5. Porównanie najpopularniejszych podejść 6. Szyny korporacyjne 7. Języki modelowania procesów biznesowych 8. Narzędzia i biblioteki 9. The Mobility Project

Motywacja i idea Główny cel: Integracja aplikacji i elektroniczna wymiana danych (Electronic Data Interchange - EDI) Droga prowadząca do osiągnięcia go: Poprzez użycie najbardziej rozpowszechnionych i akceptowanych technologii i standardów (sieć WWW, protokół HTTP, język XML)

Definicje usługi sieciowej Definicja W3C (ze specyfikacji Web Services Architecture) A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards. Definicja z polskiej Wikipedii Komponent programowy niezależny od platformy i implementacji, dostarczający określonej funkcjonalności. Definicja z angielskiej Wikipedii Typically application programming interfaces (API) or Web APIs that are accessed via Hypertext Transfer Protocol (HTTP) and executed on a remote system hosting the requested services.

Historia SOAP (Simple Object Access Protocol) 1998 REST (Representational State Transfer) 2000 UDDI (Universal Description Discovery and Integration) 2000 WSDL (Web Services Description Language) 2001 Cała reszta specyfikacji spod znaku WS-* w zasadzie od 1998 roku ciągle pojawia się coś nowego

Ogólny schemat postępowania Dostawca usługi: Tworzy usługę Definiuje ją za pomocą języka opisu usług Publikuje ją w rejestrze usług Klient: Wyszukuje usługę w rejestrze Pobiera definicję usługi Używa usługi

Źródło: www.w3.org

Tworzenie WS - podejścia Główne trendy w rozwoju usług sieciowych to dziś: Big Web Services (zorientowane na usługi) RESTful Web Services (zorientowane na zasoby) Hybrydy powyższych

Tworzenie WS - podejścia REST: Amazon ebay Yahoo Youtube Facebook Big Web Services: Amazon ebay Google

SOA Źródło: www.w3.org

SOA Podejście zorientowane na usługi Związane z Big Web Services Język opisu usług WSDL Rejestr usług UDDI Wywołanie usługi HTTP GET + protokół SOAP Zwrócenie wyników odpowiedź na HTTP GET + protokół SOAP

ROA Źródło: www.w3.org

ROA Podejście zorientowane na zasoby Związane z stylem REST Pobieranie zasobów Język opisu usług WADL lub WSDL 2.0 Rejestr usług w stylu REST (deskryptory jako zasoby) ale da się też UDDI Wywołanie usługi metody HTTP Zwrócenie wyników odpowiedź na HTTP

Przesyłanie danych - BWS Wywołanie usług odbywa się za pomocą komunikatu HTTP z metodą GET Do przesyłania danych używa się protokołu 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:header>... </soap:header> <soap:body>... <soap:fault>... </soap:fault> </soap:body> </soap:envelope>

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="http://www.mimuw.edu.pl/students"> <m:getstudent> <m:studentid>10</m:studentid> </m:getstudent> </soap:body> </soap:envelope> <?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="http://www.mimuw.edu.pl/students"> <m:getstudentresponse> <m:student> <m:firstname>karol</m:firstname> <m:lastname>kański</m:lastname> </m:student> </m:getstudentresponse> </soap:body> </soap:envelope>

Przesyłanie danych - REST Wywołanie usługi (czyli w tym wypadku pobranie zasobu) odbywa się za pomocą komunikatów HTTP, przy czym różne metody mają różne znaczenie. Parametry w URL Wynik to najczęściej HTML, XML lub JSON, ale tak naprawdę może nim być cokolwiek

REST Zasób URI kolekcji, np. http://example.com/resources/ URI elementu, np. http://example.com/resources/142 GET Lista URI członków kolekcji. Ewentualnie inne informacje o członkach kolekcji. Reprezentacja danego elementu. PUT Zamienia całą kolekcję na inną. Aktualizuje dany element kolekcji. Tworzy go jeśli dany element nie istniał. POST Tworzy nowy wpis w kolekcji. Traktuje element jako kolekcje i tworzy w niej nowy wpis. DELETE Usuwa całą kolekcję. Usuwa dany element kolekcji.

Źródło: en.wikipedia.org Opis usług - BWS Usługi opisywane w języku WSDL (dwie wersje: 1.1 popularniejsza, 2.0)

WSDL <definitions> <types/> <message name="errormessage"> <part name="parameters" element="tns:error"/> </message> <message name="getstudentrequest"> <part name="parameters" element="xs:integer"/> </message> <message name="getstudentresponse"> <part name="parameters" element="tns:student"/> </message> <porttype name="studentdata"> <operation name="getstudent"> <input name="getstudentrequest" message="getstudentrequest"/> <output name="getstudentresponse" message="getstudentresponse"/> <fault name="fault" message="errormessage"/> </operation> </porttype> <binding name="studentdatabinding" type="studentdata"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="getstudent"> <input><soap:body use="literal"/></input> <output><soap:body use="literal"/></output> <fault><soap:fault name="fault" use="literal"/></fault> </operation> </binding> <service name="studentdataservice"> <port name="studentdata" binding="studentdata"> <soap:address location="http://www.mimuw.edu.pl:8080/studentdataservice/studentdataport"/> </port> </service> </definitions>

Opis usług REST Językiem opisu usług jest WADL, ale może też być nim WSDL 2.0 <application xmlns="http://research.sun.com/wadl/2006/07"> <grammars> <include href="studentdata.xsd"/> <include href="serror.xsd"/> </grammars> <resources base="http://www.mimuw.edu.pl:8080/studentdataservice/"> <resource path= students > <method href="#getstudent"/> </resource> </resources> <method id="getstudent" name="get"> <request> <query_variable name= id type= xsd:int required= true /> </request> <response> <representation mediatype="application/xml" element="studentdata"/> <fault id="getstudenterror" status="400" mediatype="application/xml" element="error"/> </response> </method> </application>

Znajdowanie usług - BWS Dla BWS rejestrem usług jest rejestr UDDI, który składa się z trzech komponentów: White Pages dane kontaktowe dostawcy usługi (nazwa firmy, adres itp.) Green Pages semantyka i techniczne informacje o usłudze (WSDL) Yellow Pages przemysłowa kategoryzacja usługi

Znajdowanie usług - REST Można wykorzystać rejestr UDDI Częściej spotykanym pomysłem jest stworzenie rejestru w stylu REST Zasobami są wtedy deskryptory usług

REST vs. Big Web Services Big Web Services Sprawdzanie typów Duże wsparcie ze strony bibliotek i narzędzi Standard Wbudowana obsługa błędów Lekki REST Wyniki czytelne dla człowieka Łatwość tworzenia Brak standardu Specyficzne wykorzystanie metod HTTP

Szyny korporacyjne (ESB) Problem: zintegrować systemy używające różnych protokołów, formatów danych itp. Rozwiązania: Enterprise Application Integration (EAI) Enterprise Service Bus (ESB)

ESB Źródło: http://www.mulesoft.org

Obszary działania ESB Invocation Routing Mediation Messaging Process choreography Service orchestration Complex event processing Other quality of service Management

Języki modelowanie procesów biznesowych Służą do opisu procesów biznesowych w terminach wywołań usług sieciowych. Do najpopularniejszych należą: Business Process Execution Language (BPEL) Business Process Modeling Language (BPML) nadzbiór BPEL

BPEL Powstał z języków: Web Services Flow Language (IBM) i XLANG (Microsoft) Odpowiedzialny za warstwę abstrakcji i wykonania Brak możliwości edycji graficznej, ale do tego można wykorzystać Business Process Modeling Notation (BPMN)

BPEL - znaczniki <invoke> <sequence> <receive> <flow> <reply> <switch> <assign> <while> <throw> <pick> <wait> <variable> <terminate> <partnerlink>

Workflow Źródło: http://wso2.org/

Biblioteki i narzędzia BWS: Java.NET REST: Java Python Ruby.NET

Biblioteki i narzędzia - Java BWS: Apache CXF Java Web Services Development Pack REST: restlet JSR 311

The Mobility Project Oprogramowanie do obsługi wymian studenckich Wymiana danych pomiędzy instytucjami W przyszłości obsługa dużej liczby instytucji Sensowne rozwiązanie: wykorzystanie usług sieciowych Stan obecny: implementacja za pomocą BWS Mój cel: implementacja REST

Bibliografia http://www.w3.org http://www.w3schools.com/ http://pl.wikipedia.org http://en.wikipedia.org http://wso2.org http://wazniak.mimuw.edu.pl ;) http://www.ics.uci.edu/~fielding/pubs/dissertation