REST an idealistic model or a realistic solution?

Samankaltaiset tiedostot
Järjestelmäarkkitehtuuri (TK081702)

Tiedonsiirto- ja rajapintastandardit

Viimeinen rajoite (hypermedia as the engine of application state) tarkoittaa käytännössä sitä, että palvelimelta saadut vastaukset sisältävät URIt

Web Service torilla tavataan!

T Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

HSMT J2EE & EJB & SOAP &...

Digikoulu Pilviteknologiat - Tunti 1001: Tiedon varastointi Amazon Simple Storage Service (Amazon S3) palveluun

REST-arkkitehtuurityylin käyttö web-rajapinnoissa

Järjestelmäarkkitehtuuri (TK081702) SOA, Service-oriented architecture SOA,

REST rajapintana mobiilikehityksessä

HOJ J2EE & EJB & SOAP &...

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

REpresentational State Transfer (REST)

in condition monitoring

Arkkitehtuuri. Ylätason sovellusarkkitehtuuri

Käyttäjähallintapalvelun REST-rajapinnat

Laitteessa tulee olla ohjelmisto tai uudempi, tarvittaessa päivitä laite

Kertaus. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2013

HTTP-välityspalvelimen käyttö tapahtumien keräämiseen

Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy

Integrointi. Ohjelmistotekniikka kevät 2003

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

REST-POHJAISEN WEB SERVICEN KEHITTÄMINEN

Rajapinnat kuntajärjestelmissä #Kuntamarkkinat

Copyright Observis Oy All rights reserved. Observis Oy Ville Kanerva, CTO Heikki Isotalus, COO Datasta tietoa

OSI ja Protokollapino

Visma Software Oy

Kanta PHR:n CapabilityStatement ja REST-API. Eeva Turkka

Toimintaympäristön kuvaus. LTC-Otso Myyjän työkalu (POC)

Sivuston tiedotqbsupportcustom erservice.com

Visma Nova Webservice Versio 1.1 /

Kertaus. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2011

URL-osoitteiden suunnittelu

W3C ja alueellinen standardointi

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

XML johdanto, uusimmat standardit ja kehitys

W3C-teknologiat ja yhteensopivuus

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Integraatiot muihin järjestelmiin

KIURU Tietotekniikan sovellusprojekti

Kanta PHR:n CapabilityStatement ja REST-API. Eeva Turkka

Jarmo Pihlajaniemi. REST-pohjaisen web-rajapinnan kehittäminen

X-Road ja WFS-rajapinnat, uudet APIt. Pekka Latvala , KaPA ja paikkatietoinfrastruktuurin kärkiteeman työpaja

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

Tietojärjestelmien yhteensovittaminen turvallisesti älykkäisiin koneisiin

Web Services tietokantaohjelmoinnin perusteet

HELIA 1 (11) Outi Virkki Tiedonhallinta

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita.

Koodistoeditorin toteutuksen lähtökohtia: KaPA-koodistopalvelu ja REST-rajapinnat

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta

KADA (Drupal 7) migraatio uuteen (versioon) webiin

10 Nykyaikainen WWW-arkkitehtuuri

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

Julkishallinnon perustietovarantojen rajapinnat (PERA) -työryhmä

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

Semanttinen Web. Ossi Nykänen Tampereen teknillinen yliopisto (TTY), DMI / Hypermedialaboratorio W3C Suomen toimisto

TIETOKANNAT JOHDANTO

Tässä kertauksena SOA ja palvelu.

WOA JA REST 1(16) Representational State Transfer (REST) ja Web-suuntautunut arkkitehtuuri (WOA) arkkitehtuurityylinä

REST-pohjaisen web-rajapinnan kuvaaminen Case Tax Treatment Service

Rajapintapalvelut ja verkkojulkaisu MapInfon

Tilaajavastuu.fi. Muutoshistoria. Suomen Tilaajavastuu Oy. Raporttinoutaja Rajapinta yritysten tilaajavastuutietojen tarkistamiseen

Visual Basic -sovelluskehitin Juha Vitikka

Hälyri-tietojärjestelmä, Palvelinohjelmiston version asennusohje

BORIS 2. Järjestelmän rajapinnat. Samuli Neuvonen, SYKE Rajapinnat tehokäyttöön -seminaari


Tavoitteena yhdistää eri tavoin toteutetut ja eri tavoin toimivat järjestelmät; integration & interoperability.

Attribuutti-kyselypalvelu

Uusi Ajatus Löytyy Luonnosta 4 (käsikirja) (Finnish Edition)

Sovellusarkkitehtuurit

Internet of Things. Ideasta palveluksi IoT:n hyödyntäminen teollisuudessa. Palvelujen digitalisoinnista 4. teolliseen vallankumoukseen

Tulevaisuuden Internet. Sasu Tarkoma

Sivuston nopeus. Sivullasi ei ole uudelleenohjauksia. Lue lisää aloitussivun uudelleenohjausten välttämisestä.

Kanta PHR:n Sandboxympäristöt. Eeva Turkka

SISÄLLYS 1 YLEISTÄ VERSIOT Tukiaika Variaatiot OHJELMISTO Paketinhallinta Komentorivisyntaksi

Linkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen.

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

A TIETORAKENTEET JA ALGORITMIT

ETÄTERMINAALIYHTEYS SELAIMELLA

Johdatus rakenteisiin dokumentteihin

Projektinhallintaa paikkatiedon avulla

Olet tehnyt hyvän valinnan hankkiessasi kotimaisen StorageIT varmuuskopiointipalvelun.

Tietojärjestelmäarkkitehtuurit

Hajautettu versionhallinta Gitillä

Tikon Ostolaskujenkäsittely versio SP1

The OWL-S are not what they seem

Konesali ilman rajoja Kongressi A

Sivuston nopeus. Tiivistämällä resursseja gzip- tai deflate-koodilla voit vähentää verkon kautta lähetettävien tavujen määrää.

Verkottunut suunnittelu

18 LIITTYMÄT MUIHIN JÄRJESTELMIIN

Sivuston tiedotwixaccounting.com

Käyttöohje Planeetta Internet Oy

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

Tinkimätöntä tietoturvaa kaikkiin virtuaaliympäristöihin

Transkriptio:

REST an idealistic model or a realistic solution? 17.10.2006 Jari Aarniala jari.aarniala@cs.helsinki.fi

Johdanto Representational State Transfer, eli REST Arkkitehtuurinen tyyli hajautetuille (hypermedia)järjestelmille Tunnetuin esimerkki REST-periaatteita seuraavasta järjestelmästä: World Wide Web, ~1990 Termi REST Roy Fieldingin väitöskirjasta, v. 2000 Buzzword - herättänyt suurta mielenkiintoa viime aikoina 2

REST:in periaatteet Ei sidottu tiettyyn protokollaan, eikä webiin; kommunikaation tietomuoto on myös vapaa Tosin tunnetuimmat REST-pohjaiset järjestelmät käyttävät HTTP:tä ja XML:ää Käsitteitä: resurssit, operaatiot ja sisältötyypit Asettaa vaatimuksia käytettävälle protokollalle 3

Resurssiperustaisuus RESTiin pohjautuvat järjestelmät mallinnetaan resursseina Yksillölliset tunnisteet (esim. URL) Resursseja voi olla järjestelmässä rajaton määrä Järjestelmälle on määritetty rajattu joukko operaatioita (esim. GET, POST) Operaatiot eivät siis ole resurssikohtaisia Järjestelmän tietotyypit on myös rajattu (esim. HTML, XML) Rajattujen operaatioiden ja tietotyyppien johdosta kaikki resurssit voivat periaatteessa jakaa saman rajapinnan ulkomaailmaan 4

Resurssit, operaatiot ja sisältötyypit 5

Esimerkkejä operaatioiden vastaavuuksista HTTP: GET, PUT, POST, DELETE CRUD: READ, UPDATE, CREATE, DELETE SQL: SELECT, UPDATE, INSERT, DELETE... 6

RESTin protokollavaatimukset Client-server -malli Tilattomuus (stateless) Kaikki tarvittava tieto kulkee pyyntöjen mukana Sessionhallinta keksien avulla rikkoo siis RESTin periaatteita Mahdollisuus välimuistin käyttöön (cacheable) Webin välimuistipalvelimet Kaikkea ei voi tallentaa välimuistiin palvelu kontrolloi Rakentuu kerroksista (layered) Palvelimen ja asiakkaan välille voidaan lisätä palomuureja, välityspalvelimia yms 7

Esimerkki REST-pohjaisen palvelun rajapinnasta HTTP-pohjainen esimerkki Tyypillinen CRUD-palvelu: tuotetietokanta RPC vs. REST RPC: GET tiedon hakuun, POST muokkaamiseen URL:n mukana kulkee tieto siitä, mikä operaatio halutaan suorittaa REST: hyödynnetään muitakin HTTP:n metodeja, jotka kuvaavat operaatioita paremmin 8

Esimerkki, RPC-tyyliä mukaillen # create a product POST /product/create # show details for product #1 GET /product/read/1 # update details for product #1 POST /product/update/1 # remove the product #1 POST /product/delete/1 9

Esimerkki, REST-tyyliä mukaillen # create a product POST /product # show details for product #1 GET /product/1 # update details for product #1 PUT /product/1 # remove the product #1 DELETE /product/1 10

RESTin hyödyt World Wide Webin suosio osoittaa, että RESTin yksinkertainen tyyli toimii ja skaalautuu hyvin Tästä ei tietenkään voida tehdä universaaleja johtopäätöksiä sen toimivuudesta Kannattajia RESTillä ainakin löytyy: "Compared with other styles of web services, REST is easy to implement and has many highly desirable architectural properties: scalability, performance, security, reliability, and extensibility" from Implementing REST Web Services: Best Practices and Guidelines 11

RESTin hyödyt Yleisimmin viitataan RESTin yksinkertaisuuteen Palveluiden rajapinnat ovat selkeitä, helppokäyttöisiä yms Monet RESTin väitetyt hyödyt liittyvät suorituskykyyn... Protokollan tilattomuus parantaa skaalautuvuutta Asiakas ei sidottu tiettyyn palvelininstanssiin -> klusterointi Välimuistin käyttö Pyyntöjen tietomuoto vapaasti määritettävissä -> pysyvät kompakteina?...toiset väitetyt hyödyt taas vaikuttavat kaukaa haetuilta Esim. universal client application Vrt. Web-selain 12

Toisaalta... RESTiin liittyy jonkinlainen 'tee-se-itse' -henki Standardien puute toisaalta yksinkertaistaa asioita, mutta toisaalta joudutaan tekemään paljon ad-hoc -ratkaisuja Määrittelyvapauden johdosta varsinaisia REST-työkaluja ei juuri ole 13

REST käytännössä REST-käsitteen käyttöön liittyy paljon väärinymmärryksiä: Esim. HTTP ja XML -pohjainen palvelu ei ole automaattisesti RESTin periaatteiden mukainen RESTin periaatteita seuraava järjestelmä voi yhtä hyvin käyttää vaikkapa binääriprotokollaa REST on tällä hetkellä muotia: Flickr, Del.icio.us Mainostavat web service -rajapintojensa olevan RESTpohjaisia, mutta käytännössä näin ei ole, esim: Flickr ei käytä HTTP-virhekoodeja kunnolla Del.icio.us käyttää GET-metodia myös pyynnöissä, jotka poistavat tietoa 14

Case study: Amazon S3 Amazon Simple Storage Service, eli Amazon S3 on esimerkki web servicestä, joka tarjoaa oikean RESTrajapinnan Palvelun idea: nopea ja luotettava online-tietovarasto esim. varmuuskopiointiin Maksullinen; hinnoittelu siirto- ja tallennusmäärien mukaan Tarjolla myös SOAP-pohjainen rajapinta, mutta RESTpohjainen on suositumpi 15

Amazon S3 Käsittehierarkia: Service -> Bucket > Object Palvelun käyttäjällä on Service-resurssin alla Bucketresursseja (vrt. hakemisto) URL: http://[bucketname].s3.amazonaws.com/ Kukin Bucket voi sisältää rajattomasti Object-resursseja (vrt. tiedosto), joiden koko voi olla 1 tavusta 5 gigatavuun URL: http://[bucketname].s3.amazonaws.com/[objectname] 16

Amazon S3 Rajapinta käyttää standardeja HTTP-operaatioita GET, PUT, DELETE ja HEAD Samat operaatiot toimivat eri tavalla eri resursseissa: GET + Service: palauttaa listan käyttäjän bucketeista GET + Bucket: palauttaa listan bucketin olioista GET + Object: palauttaa olion sisällön HEAD + Object: palauttaa olion metatiedot, muttei sisältöä PUT + Bucket: luo uuden bucketin PUT + Object: luo uuden olion DELETE + Bucket: poistaa bucketin, jos se on tyhjä DELETE + Object: poistaa olion 17

REST ja enterprise-ohjelmistojen maailma Kuten edellä on nähty, RESTin periaatteet sopivat hyvin yhteen esim. perinteisten CRUD-tietokantasovellusten kanssa ns. sweet spot? Taipuuko REST monimutkaisempiin sovelluksiin? Esimerkkejä on ainakin vaikea löytää... S3:kin rajapinta on pohjimmiltaan erittäin yksinkertainen RESTin vajaavaisuudet Esim. Asynkroniset pyynnöt, pyyntöjen reititys... RESTille on esitelty laajennoksia: esim. ARRESTED Loppujen lopuksi, RESTin vetovoima on sen yksinkertaisuudessa 18

Yhteenveto Right tool for the right job! REST-pohjainen web-palvelu voi tavoittaa helposti suuren käyttäjäjoukon...... mutta toisaalta REST tuskin sopii laajojen enterprisesovellusten mallintamiseen 19