SOA vs veebiteenused
Veebiteenuseid kasutatakse rakenduste loomiseks, mis suudavad saata/vastu võtta sõnumeid SOAP-i kaudu HTTP kaudu. Veebiteenus on avalikustatud funktsioonide pakett, mida pakutakse veebis. SOA on arhitektuursete kontseptsioonide kogum, mida kasutatakse teenuste arendamiseks ja integreerimiseks. SOA juurutamiseks saab kasutada veebiteenuseid. Kuid see on ainult üks meetod SOA-põhiste rakenduste realiseerimiseks.
Mis on veebiteenused?
Veebiteenus on võrgu kaudu suhtlemise meetod. W3C järgi on veebiteenus süsteem, mis on ette nähtud masinatevaheliste tehingute toetamiseks võrgu kaudu. See on WSDL-s (Web Service Description Language) kirjeldatud veebi API ja veebiteenused on tavaliselt iseseisvad ja ise kirjeldavad. Veebiteenuseid saab avastada UDDI (Universal Description, Discovery and Integration) protokolli abil. SOAP-i (Simple Object Access Protocol) sõnumite vahetamisel tavaliselt HTTP kaudu (XML-iga), saavad teised süsteemid veebiteenustega suhelda.
Veebiteenuseid kasutatakse mitmel viisil, näiteks RPC (Remote Procedure Calls), SOA (teenusele orienteeritud arhitektuur) ja REST (esindusliku oleku ülekanne). Veebiteenuste arendamiseks on kaks automatiseeritud disaini metoodikat. Alt-üles lähenemisviis käsitleb esm alt klasside loomist ja seejärel WSDL-i genereerimise tööriistade kasutamist nende klasside veebiteenustena koostamiseks. Ül alt-alla lähenemisviis käsitleb WSDL-i spetsifikatsioonide määratlemist ja seejärel koodi genereerimise tööriistade kasutamist vastavate klasside genereerimiseks. Veebiteenustel on kaks peamist kasutusala. Neid saab kasutada korduvkasutatavate rakenduskomponentidena ja/või erinevatel platvormidel töötavate veebirakenduste ühendamiseks.
Mis on SOA?
SOA (teenusele orienteeritud arhitektuur) on arhitektuursete kontseptsioonide kogum, mida kasutatakse teenuste arendamiseks ja integreerimiseks. SOA tegeleb hajutatud andmetöötlusega, mille puhul tarbijad tarbivad koostalitlusvõimeliste teenuste komplekti. Ühte teenust võivad tarbida mitu tarbijat ja vastupidi. Seetõttu kasutatakse SOA-d sageli mitme erinevat platvormi kasutava rakenduse integreerimiseks. SOA nõuetekohaseks toimimiseks peaksid teenused olema lõdv alt ühendatud operatsioonisüsteemide ja aluseks olevate rakenduste tehnoloogiatega. SOA arendajad loovad teenuseid, kasutades funktsionaalsusüksusi, ja teevad need Interneti kaudu kättesaadavaks. Veebiteenuseid saab kasutada SOA arhitektuuri juurutamiseks. Sel juhul muutuvad veebiteenused Interneti kaudu juurdepääsetavateks SOA funktsionaalsusüksusteks. Veebiteenuseid saavad kasutada kõik, muretsemata nende arendamiseks kasutatavate platvormide või programmeerimiskeelte pärast. SOA on otseselt üles ehitatud teenusekesksuse põhimõttele, mis räägib lihtsa liidesega teenustest, millele kasutajad saavad iseseisv alt juurde pääseda, muretsemata teenuse tegeliku platvormi rakendamise pärast.
Mis vahe on SOA-l ja veebiteenustel?
Veebiteenuste ja SOA vahel on mõned olulised erinevused. Veebiteenused määratlevad veebitehnoloogia, mida saab kasutada rakenduste loomiseks, mis saavad SOPA kaudu HTTP kaudu sõnumeid saata/vastu võtta. SOA on aga arhitektuurne mudel lõdv alt seotud teenusepõhiste rakenduste rakendamiseks. Veebiteenuseid saab kasutada SOA rakenduste juurutamiseks. Kuigi veebiteenuste lähenemine SOA-le on muutunud väga populaarseks, on see vaid üks SOA juurutamise meetod. SOA-d saab rakendada mis tahes muu teenusepõhise tehnoloogia (nt CORBA ja REST) abil.