Et webserviceprogram er et sæt relaterede programfunktioner, som kan aktiveres programmatisk via internettet. Virksomheder kan dynamisk sammensætte og matche webserviceprogrammer, så der kan udføres komplekse transaktioner med et minimum af programmering. Webserviceprogrammer gør det muligt for købere og sælgere over hele verden at opspore hinanden, oprette dynamisk indbyrdes forbindelse og udføre transaktioner i realtid med minimal menneskelig interaktion.
Webserviceprogrammer er selvkørende, selvbeskrivende modulære programmer, som kan publiceres, findes og aktiveres via internettet.
Webserviceprogrammer er selvkørende. På klientsiden kræves der ingen yderligere software. Et programmeringssprog med XML- og HTTP-klientunderstøttelse er nok til at få dig i gang. På serversiden kræves der en webserver og et miniserverprogram. Klient og server kan implementeres i forskellige miljøer. Det er muligt at webklargøre et eksisterende program uden at skrive en eneste linje kode.
Webserviceprogrammer er selvbeskrivende. Klient og server skal bare kunne genkende format og indhold i anmodnings- og svarmeddelelser. Definitionen på meddelelsesformatet følger meddelelsen - der kræves ingen eksterne metadata-opbevaringssteder eller kodegenereringsværktøjer.
Webserviceprogrammer er modulære. Enkle webserviceprogrammer kan sammensættes til mere komplekse webserviceprogrammer, enten vha. arbejdsgangsteknikker eller ved kald af webserviceprogrammer på underliggende niveauer fra en webserviceprogramimplementering.
Webserviceprogrammer er platformsuafhængige. Webserviceprogrammer er baseret på et koncist sæt åbne, XML-baserede standarder, som er udformet til at styrke den indbyrdes funktionalitet mellem et webserviceprogram og klienter på forskellige computerplatforme og med forskellige programmeringssprog.
Webserviceprogrammer kan være hvad som helst, f.eks. teateranmeldelser, vejrudsigter, kreditoplysninger, aktiekurser, rejsebeskrivelser eller flyreservationer. Hvert af disse selvkørende virksomhedsserviceprogrammer er et program, som nemt kan integreres i andre serviceprogrammer fra samme eller fra en anden virksomhed, så der oprettes en fuldstændig forretningsproces. Denne indbyrdes funktionalitet gør det muligt for virksomheder dynamisk at publicere, opspore og binde en række webserviceprogrammer via internettet.
Webserviceprogrammer kan grupperes i tre kategorier:
Virksomhedsoplysninger. En virksomhed deler oplysninger med forbrugere eller andre virksomheder. I dette tilfælde anvender virksomheder webserviceydelser til at øge deres rækkevidde. Eksempler på webserviceprogrammer med virksomhedsoplysninger er nyhedsstrømme, vejrudsigter eller aktiekurser.
Virksomhedsintegration. En virksomhed stiller transaktionsbaserede, gebyrpålagte serviceydelser til rådighed for sine kunder. I dette tilfælde bliver virksomheden del af et globalt netværk af værditilvækst-leverandører, som kan bruges til handelsformål. Eksempler på webserviceprogrammer til virksomhedsintegration er e-markeder for bud- og auktionsvirksomhed, reservationssystemer og kreditoplysningsfunktioner.
Eksternalisering af virksomhedsprocesser. En virksomhed skiller sig ud fra sine konkurrenter via oprettelse af en global værdikæde. I dette tilfælde bruger virksomheden webserviceprogrammer til en dynamisk integration af sine processer. Et eksempel på webserviceprogrammer til eksternalisering af virksomhedsprocesser er tilknytningen mellem forskellige virksomheder med henblik på at udføre produktion, montage, grossistdistribution og detailsalg af et bestemt produkt.
En netværkskomponent i en arkitektur for webserviceprogrammer kan spille en eller flere grundlæggende roller: serviceudbyder, servicemægler og serviceklient.
Binding involverer etablering af alle miljømæssige forudsætninger, som er nødvendige for at kunne udføre serviceprogrammerne. Eksempler på miljømæssige forudsætninger er sikkerhed, overvågning af transaktioner og HTTP-tilgængelighed. Relationerne mellem disse roller er beskrevet i figur 1.
Figur 1. Serviceprogrammers roller og interaktioner.
Der er flere oplysninger om webserviceprogrammer på adressen www.ibm.com/developerworks/webservices