Web service

Web service (www-sovelluspalvelu) on W3C:n määritelmän mukaan ohjelmistojärjestelmä, joka mahdollistaa keskenään yhteensopivan tietokoneiden välisen vuorovaikutuksen tietoverkon yli . Käytännössä termillä tarkoitetaan World Wide Web -pohjaisia ohjelmointirajapintoja: jokin palvelin tarjoaa muilla tietokoneilla toimiville ohjelmistoille palvelun HTTPn tai muun Internetissä toimivan protokollan yli. 

Termi sekoitetaan helposti verkkopalveluihin; web service -termillä tarkoitetaan Web-teknologialla toteutettua ohjelmointiteknistä palvelurajapintaa. Tyypillisesti web service -palvelut toteutetaan samoilla palvelimilla kuin varsinaiset palvelutkin. Esimerkiksi Wikipedia on verkkopalvelu, joka tarjoaa samalla REST-pohjaisen web service -rajapinnan; käyttäjät voivat lukea ja muokata Wikipediaa verkkoselaimella, ja automaattisesti toimivat bot-ohjelmat voivat lukea ja muokata Wikipediaa ohjelmointirajapinnan kautta.

Web service koostuu kolmesta osasta, joista kaksi on pakollisia. Palvelulla on tarjoaja (Service provider) ja käyttäjä (Service requester). Lisäksi on mahdollista käyttää palveluhakemistoa (Service broker). Kolmen osapuolen välillä kommunikoidaan erilaisten XML-pohjaisten protokollien avulla.

W3C:n Web services -protokollakenttään kuuluu kolme XML-pohjaista komponenttia:

 SOAP (Simple Object Access Protocol)
 SOAP on kieli ja protokolla, jonka avulla palvelun käyttäjä voi lähettää komennon palvelun tarjoajalle ja palvelun tarjoaja voi lähettää vastauksen.
 WSDL (Web Service Description Language)
 WSDL on kieli, jonka avulla SOAP-protokollalla tarjotun palvelun rajapinta, eli pyyntö- ja vastausmuoto, voidaan määritellä. WSDL-tiedostoja tarvitaan usein järjestelmän liittämiseen varsinaiseen ohjelmointirajapintaan; WSDL-tiedostosta voidaan generoida esimerkiksi lähdekoodia.
 UDDI (Universal Description Discovery and Integration)
 Standardoitu tapa julkaista ja etsiä eri palveluiden metadataa.

Pääasiallisena kommunikaatiokanavana ovat useimmiten HTTP tai HTTPS, mutta kommunikointi on myös mahdollista muita kanavia pitkin. 

W3C määritteli XML-, SOAP- ja WSDL-standardit. UDDI on alun perin OASIS-standardi. Lisäksi W3C ja OASIS ovat standardoineet useita eri lisästandardeja liittyen mm. tietoturvaan ja luotettavuuteen.

W3C:n määrittelemien protokollien lisäksi on olemassa muitakin protokollia, kuten XML-RPC, jotka toimivat samalla periaatteella.

REST on arkkitehtuurimalli, joka on eräs tapa toteuttaa web service -toiminnallisuutta käyttämällä vain HTTP-protokollaa.

Katso myös 
 Palvelukeskeinen arkkitehtuuri

Lähteet 

World Wide Web
Ohjelmointi
Seulonnan keskeiset artikkelit