SOA vs nettjenester
Webtjenester brukes til å bygge applikasjoner som kan sende/motta meldinger ved hjelp av SOAP over HTTP. En webtjeneste er en publisert pakke med funksjonalitet som tilbys over nettet. SOA er et sett med arkitektoniske konsepter som brukes for utvikling og integrering av tjenester. Webtjenester kan brukes til å implementere SOA. Men det er bare en enkelt metode for å realisere SOA-baserte applikasjoner.
Hva er nettjenester?
En webtjeneste er en metode for kommunikasjon over nettverket. I følge W3C er en webtjeneste et system dedikert for å støtte maskin-til-maskin-transaksjoner over et nettverk. Det er et web-API beskrevet i WSDL (Web Service Description Language), og webtjenester er vanligvis selvstendige og selvbeskrivende. Webtjenester kan oppdages ved hjelp av UDDI-protokollen (Universal Description, Discovery and Integration). Ved å utveksle SOAP-meldinger (Simple Object Access Protocol) vanligvis over HTTP (med XML), kan andre systemer samhandle med webtjenester.
Netttjenester brukes på en rekke måter som RPC (Remote Procedure Calls), SOA (Service Oriented Architecture) og REST (Representational State Transfer). Det er to automatiserte designmetoder for utvikling av webtjenester. Bottom-up-tilnærmingen omhandler først å lage klassene og deretter bruke WSDL-generasjonsverktøy for å komponere disse klassene som webtjenester. Top-down-tilnærmingen handler om å definere WSDL-spesifikasjonene og deretter bruke kodegenereringsverktøy for å generere de tilsvarende klassene. Webtjenester har to hovedbruksområder. De kan brukes som gjenbrukbare applikasjonskomponenter og/eller for å koble sammen nettapplikasjoner som kjører på forskjellige plattformer.
Hva er SOA?
SOA (Service-oriented architecture) er et sett med arkitektoniske konsepter som brukes for utvikling og integrering av tjenester. SOA omhandler distribuert databehandling, der forbrukere bruker et sett med interoperable tjenester. Flere forbrukere kan bruke en enkelt tjeneste og omvendt. Derfor brukes SOA ofte til å integrere flere applikasjoner som bruker forskjellige plattformer. For at SOA skal fungere ordentlig, bør tjenester være løst koblet med operativsystemer og teknologiene til underliggende applikasjoner. SOA-utviklere lager tjenester ved å bruke funksjonsenheter, og gjør dem tilgjengelige over internett. Webtjenester kan brukes til å implementere SOA-arkitektur. I så fall blir webtjenester funksjonalitetsenhetene til SOA tilgjengelig over internett. Webtjenester kan brukes av hvem som helst uten å være bekymret for plattformene eller programmeringsspråkene som brukes til å utvikle dem. SOA er direkte bygget på prinsippet om tjenesteorientering, som snakker om tjenester med enkelt grensesnitt som kan nås uavhengig av brukere uten å bekymre seg for den faktiske plattformimplementeringen av tjenesten.
Hva er forskjellen mellom SOA og nettjenester?
Det er noen viktige forskjeller mellom webtjenester og SOA. Webtjenester definerer en webteknologi som kan brukes til å bygge applikasjoner som kan sende/motta meldinger ved hjelp av SOPA over HTTP. Imidlertid er SOA en arkitektonisk modell for implementering av løst koblede tjenestebaserte applikasjoner. Webtjenester kan brukes til å implementere SOA-applikasjoner. Selv om nettjenestetilnærming til SOA har blitt veldig populær, er det bare en enkelt metode for å implementere SOA. SOA kan implementeres ved bruk av hvilken som helst annen tjenestebasert teknologi (f.eks. CORBA og REST).