i3 rest id 208694 Nieznany

background image

Usługi sieciowe REST

Jerzy Brzeziński

Cezary Sobaniec

Instytut Informatyki

Politechnika Poznańska

background image

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]

background image

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]

background image

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]

background image

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]

background image

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]

background image

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]

background image

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]

background image

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]

background image

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]

background image

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]

background image

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]

background image

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]

background image

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]

background image

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]

background image

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]

background image

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]

background image

Opis usługi

Przetwarzalny maszynowo opis interfejsu usług

WS-*: WSDL + XML Schema

silne typowanie
możliwość automatycznego generowania kodu

REST:

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]

background image

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]

background image

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]

background image

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]


Document Outline


Wyszukiwarka

Podobne podstrony:
pmr v3 i3 113 116 id 363531 Nieznany
Abolicja podatkowa id 50334 Nieznany (2)
4 LIDER MENEDZER id 37733 Nieznany (2)
katechezy MB id 233498 Nieznany
metro sciaga id 296943 Nieznany
perf id 354744 Nieznany
interbase id 92028 Nieznany
Mbaku id 289860 Nieznany
Probiotyki antybiotyki id 66316 Nieznany
miedziowanie cz 2 id 113259 Nieznany
LTC1729 id 273494 Nieznany
D11B7AOver0400 id 130434 Nieznany
analiza ryzyka bio id 61320 Nieznany
pedagogika ogolna id 353595 Nieznany
Misc3 id 302777 Nieznany
cw med 5 id 122239 Nieznany
D20031152Lj id 130579 Nieznany

więcej podobnych podstron