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

Podobne dokumenty
NOWE TECHNOLOGIE INFORMACYJNE DLA ELEKTRONICZNEJ GOSPODARKI I SPOŁECZEŃSTWA INFORMACYJNEGO OPARTE NA PARADYGMACIE SOA POIG 1.3.1

Wybrane działy Informatyki Stosowanej

Usługi sieciowe (Web Services)

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Programowanie Komponentowe WebAPI

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

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

Rozproszone systemy internetowe

Wprowadzenie do usług internetowych

SOA Web Services in Java

Wybrane działy Informatyki Stosowanej

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

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

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

Wybrane problemy modelu usługowego

Rozproszone systemy Internetowe

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

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

Web Services / Gridy

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

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

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

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

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

Komunikacja międzysystemowa

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

Programowanie komponentowe

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

Komunikacja i wymiana danych

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

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Web Service y w Javie

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

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

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

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

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

Simple Object Access Protocol

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

Podejścia do realizacji Web Services

ZAŁOŻENIA TECHNICZNO-TECHNOLOGICZNE SYSTEMU BUDOWANEGO W RAMACH PROJEKTU

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

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

JBPM [JUG] Tomasz Gratkowski [GRATKOWSKI SOFTWARE]

Korporacyjna Magistrala Usług na przykładzie Mule ESB

Architektury i protokoły dla budowania systemów wiedzy - zadania PCSS w projekcie SYNAT

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

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

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

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

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

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

Projekt i implementacja zintegrowanego środowiska programistycznego dla języka ROsWeL

Szkolenie wycofane z oferty

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

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

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

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

ZESZYTY NAUKOWE UNIWERSYTETU SZCZECIŃSKIEGO NR 740 STUDIA INFORMATICA NR

Android tworzenie aplikacji mobilnych

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

Web Services wykład 9

Projekt architektury systemów informatycznych Uniwersytetu Warszawskiego w oparciu o metodykę TOGAF. Tomasz Turski

Ministerstwo Finansów

JBoss: MetaMatrix, Mobicents, Seam, Rools, ESB

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Programowanie obiektowe

Wywoływanie metod zdalnych

1 Wprowadzenie do J2EE

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

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

UWOLNIĆ INFORMACJĘ PUBLICZNĄ!

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

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

MODELOWANIE PROCESÓW Z WYKORZYSTANIEM SIEC SEMANTYCZNYCH

76.Struktura oprogramowania rozproszonego.

Programowanie. Dodatek - uzupełnienie wiadomości. mgr inż. Krzysztof Szwarc. Sosnowiec,

Departament Zakupów Centralnych ul. Żaryna 2A, Warszawa tel. (22) DZC/AS/708/12. Warszawa, dn. 27 listopada 2012 r.

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

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

ABC WCF.

Virtual Grid Resource Management System with Virtualization Technology

XML w elektronicznej wymianie danych i integracji aplikacji

Ekspert MS SQL Server Oferta nr 00/08

Szczegółowy opis przedmiotu umowy. 1. Środowisko SharePoint UWMD (wewnętrzne) składa się z następujących grup serwerów:

ZARZĄDZANIE WYMAGANIAMI ARCHITEKTONICZNYMI

Spis treci. Dzie 1. I Wprowadzenie (wersja 0911) II Dostp do danych biecych specyfikacja OPC Data Access (wersja 0911)

Zagadnienia projektowania aplikacji J2EE

Aplikacje webowe z wykorzystaniem Node.js oraz Express

Interoperacyjność system nie działa w próżni

Techniki integracji systemów informatycznych

udokumentowanych poprzez publikacje naukowe lub raporty, z zakresu baz danych

ASP.NET MVC 4 & WEB API. Jamie Kurtz

Architektura nowoczesnych aplikacji internetowych

Wybrane działy Informatyki Stosowanej

Dodatkowo, w przypadku modułu dotyczącego integracji z systemami partnerów, Wykonawca będzie przeprowadzał testy integracyjne.

Zestawy zagadnień na egzamin dyplomowy (inżynierski) dla kierunku INFORMATYKA (studia I stopnia)

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

Wywoływanie metod zdalnych

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

Transkrypt:

Usługi sieciowe REST Jerzy Brzeziński Cezary Sobaniec Instytut Informatyki Politechnika Poznańska

Wprowadzenie Service Oriented Architecture nie zakłada stosowania technologii Web Services...... więc porozmawiajmy o alternatywie J. Brzeziński, C. Sobaniec Usługi sieciowe REST [1/20]

Krytyka (Big) WebServices Dominująca technlogia realizacji usług sieciowych Szerokie wsparcie ze strony dostawców oprogramowania Ale: złożoność mnogość standardów WS-* powielanie istniejących standardów ignorowanie dostępnych technologii/standardów sieci Web problemy ze współoperacyjnością (działania WS-I) problemy z wydajnością J. Brzeziński, C. Sobaniec Usługi sieciowe REST [2/20]

REpresentational State Transfer REST Roy Fielding, Architectural Styles and the Design of Network-based Software Architectures, PhD Thesis, 2000. jeden z kluczowych autorów protokołu HTTP (RFC 2616) rozwijał HTML tworzył koncepcję URI współzałożyciel projektu Apache HTTP Server członek OpenSolaris Boards J. Brzeziński, C. Sobaniec Usługi sieciowe REST [3/20]

REST Representational State Trasfer styl architektoniczny, metaarchitektura, metodologia Założenia: architektura klient-serwer bezstanowość (cache) buforowanie podręczne jednolity interfejs dostępu Jednolity interfejs jednolita identyfikacja/adresacja zasobów manipulacja zasobami poprzez ich reprezentacje samoopisujące się wiadomości (bezstanowość) powiązania między zasobami (wyrażone w reprezentacjach) J. Brzeziński, C. Sobaniec Usługi sieciowe REST [4/20]

Cele REST Skalowalność interakcji komponentów Ogólność interfejsów Niezależność wdrażania komponentów loose coupling możliwość aktualizacji/rozszerzania protokołu Możliwość wprowadzania usług pośredniczących redukcja opóźnień zwiększanie bezpieczeństwa opakowywanie zastanych systemów (gateways) J. Brzeziński, C. Sobaniec Usługi sieciowe REST [5/20]

REST w kontekście HTTP RESTful web services usługi sieciowe REST Resource Oriented Architecture Założenia ROA Wykorzystanie URI do identyfikacji zasobów Wykorzystanie metod protokołu HTTP do manipulacji zasobami (model CRUD): POST tworzenie GET odczyt PUT aktualizacja DELETE usuwanie Reprezentacja zasobów: typy MIME J. Brzeziński, C. Sobaniec Usługi sieciowe REST [6/20]

Zalety usług sieciowych REST Prostota Mniejszy narzut obliczeniowy brak dodatkowego opakowania zleceń (koperta SOAP) brak konieczności przetwarzania dokumentów XML Wykorzystanie znanej i przetestowanej infrastruktury: Web Możliwość stosowania serwerów pośredniczących Semantyka operacji charakter zlecanego przetwarzania (odczyt, modyfikacja) optymalizacja buforowania podręcznego i replikacji Mniej problemów ze współoperacyjnością (jednolity interfejs) Minimum narzędzi potrzebnych do implementacji Szeroka akceptacja wśród programistów J. Brzeziński, C. Sobaniec Usługi sieciowe REST [7/20]

Usługi sieciowe a architektura Web (1) SOAP traktuje Web jako mechanizm transportowy do przesyłania wiadomości interpretowanych przez aplikacje spoza Web tunelowanie wiadomości przez Web nie po to był tworzony Web nie za bardzo nadaje się do tego celu SOAP korzysta tylko z (rozmytej semantycznie) metody POST protokołu HTTP pomijając najsilniejsze strony Web Web jest już integrującą szyną komunikacyjną (cf. ESB) wyposażoną w: predefiniowaną semantykę operacji predefiniowany model adresowania J. Brzeziński, C. Sobaniec Usługi sieciowe REST [8/20]

Usługi sieciowe a architektura Web (2) Fundamentem dla Web są identyfikatory URI (Uniform Resource Identifier) Web Services pozostawiają zarządzanie nazwami aplikacjom SOAP stosuje URI tylko do wskazywania punktu dostępu do usługi, która zarządza wszystkimi wewnętrznymi zasobami, np.: bank = new SOAPProxy("http://bank.pl/ws"); bank.addmoneytoaccount("23-1234-5678", 540.5); brak bezpośredniego dostępu do konta (tylko bank) nowa przestrzeń nazw dla numeracji kont J. Brzeziński, C. Sobaniec Usługi sieciowe REST [9/20]

SOAP a inne technologie Web/XML Wiele protokołów/technologii zakłada wykorzystanie URI do adresacji zasobów: Resource Description Framework XLinks odwołania w dokumentach XML RSS Really Simple Syndication XPointer uogólnienie XPath XInclude załączanie zewnętrznych dokumentów SOAP wymusza tworzenie nowych standardów zastępujących wymienione. J. Brzeziński, C. Sobaniec Usługi sieciowe REST [10/20]

Modele usług sieciowych Zdalne wywołania procedur Java RMI, CORBA, Web Services Architektura zorientowana na zasoby usługi sieciowe REST Podejścia hybrydowe J. Brzeziński, C. Sobaniec Usługi sieciowe REST [11/20]

Klasyfikacja usług sieciowych (1) Podstawowe pojęcia używane przy opisie usługi: operacje wykonywane/oferowane przez usługę zasoby udostępniane przez usługę Wybór determinuje sposób modelowania i projektowania usługi Usługa może udostępniać oba interfejsy Nie ma możliwości automatyzacji translacji odwołań do usług pomiędzy modelami specyfika usługi J. Brzeziński, C. Sobaniec Usługi sieciowe REST [12/20]

Klasyfikacja usług sieciowych (2) Zakładając wykorzystanie protokołu HTTP do komunikacji Gdzie jest nazwa metody? Gdzie jest wskazanie na zakres przetwarzanych danych? (ang. scoping) J. Brzeziński, C. Sobaniec Usługi sieciowe REST [13/20]

Klasyfikacja usług sieciowych (3) RPC metoda i argument zapisane w wiadomości SOAP POST /ws HTTP/1.1 Host: books.example.com Content-Type: application/soap+xml Content-Length: 165 <?xml version="1.0" encoding="utf-8"?> <soap:envelope> <soap:body> <m:lookupbook> <m:id>12345</m:id> </m:lookupbook> </soap:body> </soap:envelope> J. Brzeziński, C. Sobaniec Usługi sieciowe REST [14/20]

Klasyfikacja usług sieciowych (4) Model zasobowy metoda protokołu HTTP, argument w URI Usługa sieciowa REST GET /books/12345 HTTP/1.1 Host: books.example.com Istotne różnice: wykorzystanie metody GET zamiast POST jawna reprezentacja zasobu /books/12345 brak dodatkowej koperty J. Brzeziński, C. Sobaniec Usługi sieciowe REST [15/20]

Klasyfikacja usług sieciowych (5) Usługa hybrydowa metody i argument w URI: Usługa hybydowa GET /service?method=lookupbook&id=12345 HTTP/1.1 Host: books.example.com Uwagi: ograniczenie się do protokołu HTTP metody modyfikujące wywoływane metodą GET J. Brzeziński, C. Sobaniec Usługi sieciowe REST [16/20]

Opis usługi Przetwarzalny maszynowo opis interfejsu usług WS-*: WSDL + XML Schema REST: silne typowanie możliwość automatycznego generowania kodu WADL Web Application Description Language modelowanie zasobów i relacji pomiędzy nimi URI + metoda + arg. we wynik WSDL 2.0 odkrywanie usługi (calling navigation) J. Brzeziński, C. Sobaniec Usługi sieciowe REST [17/20]

Kompozycja usług WS-* Business Process Execution Language JOpera, XL REST Web 2.0 mashups J. Brzeziński, C. Sobaniec Usługi sieciowe REST [18/20]

Repozytoria usług WS-*: UDDI standard okrzepły, ale mała liczba publicznych, otwartych repozytoriów usług REST: po prostu Web wyszukiwarki internetowe microformats J. Brzeziński, C. Sobaniec Usługi sieciowe REST [19/20]

Podsumowanie Obszary zastosowań usług sieciowych (architektury SOA): Zastosowania przemysłowe (enterprise) preferencja WebServices szerokie wsparcie ze strony producentów oprogramowania dostępność standardów uzupełniających Zastosowania webowe preferencja usług REST (Google Data API, Amazon WS) usługi sieciowe REST są de facto rozszerzeniem Web priorytet: integracja z istniejącą siecią Web J. Brzeziński, C. Sobaniec Usługi sieciowe REST [20/20]