Web services
Fra Biblab
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
- Box, Don (2001). A Brief History of SOAP. O'Reilly XML.com. XML From the Inside Out.
- Fielding, Roy Thomas (2000). Architectural Styles and the Design of Network-based Software Architectures. Doktoravhandling i Information and Computer Science, University of California, Irvine.
- OASIS (–). OASIS UDDI Specifications.
- World Wide Web Consortium (2004). Web Services Architecture. W3C Working Group Note 11 February 2004.
- World Wide Web Consortium (2007). SOAP Version 1.2 Part 0: Primer (Second Edition). W3C Recommendation 27 April 2007.
- World Wide Web Consortium (2007). Web Services Description Language (WSDL) Version 2.0 Part 0: Primer. W3C Recommendation 26 June 2007.
