Web services

Fra Biblab

Gå til: navigasjon, søk

En Web service er en tjeneste på World Wide Web (WWW) som tilbyr XML-kodete data over HTTP-protokollen. Web services kan også betraktes som en teknisk arkitektur for å lage distribuerte systemer på WWW. Web services er implementasjonsuavhengige, som betyr at de kan være skrevet i et hvilket som helst programmeringsspråk og kjøre på hvilket som helst operativsystem.

Det finnes to varianter av Web services:

  • SOAP-baserte
  • REST-orienterte (RESTful på engelsk)

Innhold

[rediger] SOAP-baserte Web services

Dette er den opprinnelige formen for Web services, som ble introdusert for World Wide Web Consortium (W3C) rundt år 2000. I denne arktiekturen en er det tre aktører som inngår:

  • En tjenestebestiller (service requestor), som leter fram og bruker en Web service
  • Et tjenesteregister (service registry), som er en datatjeneste (noe á la Gule sider) som lar tjenestebestilleren lete fram og finne beskrivelse av ekseisterende Web services
  • En tjenesteleverandør (service provider), som tilbyr en Web service

World Wide Web Consortium (2004) opererer med følgende definisjon:

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.

Det trengs et sett av tekniske spesifikasjoner for å realisere denne arkitekturen, for HTTP-protokollen alene blir ansett som utilstrekkelig. Flere av disse ble levert til W3C, men bare to av dem er blitt godkjent som W3C-standarder (W3C Recommendations):

  • SOAP: Et XML-språk som pakker inn XML-meldingene med data som utveksles mellom klient og tjener i en transaksjon. Kalles gjerne en konvolutt (SOAP envelope).
  • WSDL (Web Service Description Language): Et XML-språk som formelt beskriver en Web service, det vil si hvordan den kalles og hva slags respons den gir. Programutviklingsverktøy kan typisk lese en WSDL-fil og generere et skjelett av programkoden som kreves for å kalle tjenesten.

Det finnes flere andre XML-spesifikasjoner knyttet til Web services-arkitekturen som er akseptert av andre standardiseringsorganisasjoner. Den mest kjente er UDDI (Universal Description, Discovery, and Integration), som er standardisert av OASIS.

[rediger] REST-orienterte Web services

REST-orienterte Web services er en reaksjon mot komplelksiteten i den SOAP-baserte arkitekturen. Her understrekes og dyrkes enkelheten i HTTP-protokollen. En typisk REST-orientert Web service kan brukes direkte i nettleseren ved å angi en URL og få et XML-dokument som respons.

REST (REpresentational State Transfer) er en form for nettverksbasert programvarearkitektur beskrevet av Roy Thomas Fielding i en doktoravhandling i 2000. Fielding var medforfatter av HTTP-protokollen, og trekker i doktoravhandlingen fram egenskaper ved denne som han mener er viktige:

  • Ressurser adresseres med stabile URI-er. Ressursenes tilstand kan endre seg fra én forespørsel til en annen, dvs. at den ikke alltid gir samme resultat
  • Alle HTTP-metoder (GET, POST, PUT, DELETE) benyttes til det de er ment for
  • Ressurser kan hentes i forskjellige representasjoner (HTML, XML, PDF, ren tekst, bilder, ulike språk m.m.) Hvilken representasjon som velges, skjer ved innholdsforhandling (content negotiation) mellom klient og tjener (dette er innebygd i HTTP-protokollen)
  • Kommunikasjonen mellom klient og tjener er tilstandsløs, som betyr at tjeneren «glemmer» tidligere forespørsler
  • Responser kan caches, dvs. at det lagres lokale kopier som kan benyttes dersom ikke ressursen er oppdatert siden forrige forespørsel fra klienten

Ikke alle REST-baserte Web services støtter alle disse egenskapene, og det pågår diskusjoner om hvor vidt begrepet skal anvendes.

[rediger] Eksempler på Web services

  • Amazon. Tilbyr både SOAP-baserte og REST-orienterte Web services mot sin bokhandel. Gratis, men krever registrering for bruk.
  • Bokkilden. Tilbyr REST-orientert Web service. Gratis.
  • Discogs. Tilbyr REST-orientert Web service mot sine artistdiskografier. Gratis, men begrenset (maksimalt 5000 forespørsler fra én IP-adresse i en 24-timersperiode) og krever registrering.

[rediger] Ressurser

Personlige verktøy