SOA vs verkkopalvelut
Web-palveluita käytetään sellaisten sovellusten rakentamiseen, jotka voivat lähettää/vastaanottaa viestejä SOAP-protokollalla HTTP:n kautta. Verkkopalvelu on julkistettu verkkopalvelupaketti. SOA on joukko arkkitehtonisia konsepteja, joita käytetään palveluiden kehittämiseen ja integrointiin. Verkkopalveluita voidaan käyttää SOA:n toteuttamiseen. Mutta se on vain yksi tapa toteuttaa SOA-pohjaisia sovelluksia.
Mitä verkkopalvelut ovat?
Web-palvelu on viestintämenetelmä verkon kautta. W3C:n mukaan verkkopalvelu on järjestelmä, joka on tarkoitettu tukemaan koneen välisiä tapahtumia verkossa. Se on WSDL:ssä (Web Service Description Language) kuvattu Web API, ja Web-palvelut ovat yleensä itsenäisiä ja itsekuvaavia. Verkkopalvelut voidaan löytää käyttämällä UDDI (Universal Description, Discovery and Integration) -protokollaa. Vaihtamalla SOAP (Simple Object Access Protocol) -viestejä tyypillisesti HTTP:n kautta (XML:n kanssa), muut järjestelmät voivat olla vuorovaikutuksessa verkkopalvelujen kanssa.
Web-palveluita käytetään useilla tavoilla, kuten RPC (Remote Procedure Calls), SOA (Service Oriented Architecture) ja REST (Representational State Transfer). Web-palveluiden kehittämiseen on kaksi automatisoitua suunnittelumenetelmää. Alha alta ylös -lähestymistapa käsittelee ensin luokkien luomista ja sitten WSDL-sukupolvityökalujen käyttöä näiden luokkien muodostamiseen verkkopalveluina. Ylhäältä alas -lähestymistapa käsittelee WSDL-spesifikaatioiden määrittelyä ja sitten koodin luontityökalujen käyttöä vastaavien luokkien luomiseen. Verkkopalveluilla on kaksi pääkäyttötapaa. Niitä voidaan käyttää uudelleenkäytettävinä sovelluskomponentteina ja/tai eri alustoilla toimivien web-sovellusten yhdistämiseen.
Mikä on SOA?
SOA (Service oriented architecture) on joukko arkkitehtonisia konsepteja, joita käytetään palveluiden kehittämiseen ja integrointiin. SOA käsittelee hajautettua tietojenkäsittelyä, jossa kuluttajat kuluttavat joukon yhteentoimivia palveluita. Useat kuluttajat voivat käyttää yhtä palvelua ja päinvastoin. Siksi SOA:ta käytetään usein useiden eri alustoja käyttävien sovellusten integrointiin. Jotta SOA toimisi kunnolla, palvelut tulee kytkeä löyhästi käyttöjärjestelmiin ja taustalla olevien sovellusten teknologioihin. SOA-kehittäjät luovat palveluita toiminnallisuusyksiköiden avulla ja tuovat ne saataville Internetin kautta. Web-palveluita voidaan käyttää SOA-arkkitehtuurin toteuttamiseen. Tällöin verkkopalveluista tulee SOA:n toiminnallisuusyksiköitä, jotka ovat käytettävissä Internetin kautta. Web-palveluita voivat käyttää kuka tahansa välittämättä niiden kehittämisessä käytetyistä alustoista tai ohjelmointikielistä. SOA rakentuu suoraan palvelukeskeisyyden periaatteelle, joka puhuu palveluista yksinkertaisella käyttöliittymällä, johon käyttäjät voivat päästä itsenäisesti ilman huolta palvelun varsinaisesta alustatoteutuksesta.
Mitä eroa on SOA:lla ja verkkopalveluilla?
Web-palvelujen ja SOA:n välillä on joitakin keskeisiä eroja. Verkkopalvelut määrittelevät verkkoteknologian, jota voidaan käyttää sellaisten sovellusten rakentamiseen, jotka voivat lähettää/vastaanottaa viestejä SOPA:n kautta HTTP:n kautta. SOA on kuitenkin arkkitehtoninen malli löyhästi kytkettyjen palvelupohjaisten sovellusten toteuttamiseen. Web-palveluita voidaan käyttää SOA-sovellusten toteuttamiseen. Vaikka SOA:n verkkopalvelulähestymistapa on tullut erittäin suosituksi, se on vain yksi SOA:n toteutustapa. SOA voidaan toteuttaa millä tahansa muulla palvelupohjaisella tekniikalla (esim. CORBA ja REST).