SOA kontra webszolgáltatások
A webszolgáltatások olyan alkalmazások létrehozására szolgálnak, amelyek SOAP HTTP-n keresztül tudnak üzeneteket küldeni/fogadni. A webszolgáltatás az interneten keresztül kínált, nyilvánosan elérhető funkciócsomag. A SOA a szolgáltatások fejlesztéséhez és integrációjához használt építészeti koncepciók összessége. A webszolgáltatások használhatók a SOA megvalósítására. De ez csak egyetlen módszer a SOA-alapú alkalmazások megvalósítására.
Mik azok a webszolgáltatások?
A webszolgáltatás a hálózaton keresztüli kommunikáció egyik módja. A W3C szerint a webszolgáltatás egy olyan rendszer, amely a hálózaton keresztüli gépek közötti tranzakciókat támogatja. Ez egy WSDL-ben (Web Service Description Language) leírt webes API, és a webszolgáltatások általában önállóak és önleíróak. A webszolgáltatások az UDDI (Universal Description, Discovery and Integration) protokoll használatával fedezhetők fel. A SOAP (Simple Object Access Protocol) üzenetek tipikusan HTTP-n keresztül (XML-lel) történő cseréjével más rendszerek kölcsönhatásba léphetnek a webszolgáltatásokkal.
A webes szolgáltatásokat számos módon használják, mint például az RPC (Remote Procedure Calls), a SOA (Service Oriented Architecture) és a REST (Representational State Transfer). A webszolgáltatások fejlesztésére két automatizált tervezési módszer létezik. Az alulról felfelé építkező megközelítés először az osztályok létrehozásával foglalkozik, majd a WSDL-generáló eszközök használatával webszolgáltatásként összeállítja ezeket az osztályokat. A felülről lefelé irányuló megközelítés a WSDL specifikációk meghatározásával, majd a kódgeneráló eszközök használatával a megfelelő osztályok generálásával foglalkozik. A webszolgáltatásoknak két fő felhasználási területük van. Használhatók újrafelhasználható alkalmazás-összetevőkként és/vagy különböző platformokon futó webalkalmazások összekapcsolására.
Mi az a SOA?
A SOA (szolgáltatás-orientált architektúra) a szolgáltatások fejlesztéséhez és integrációjához használt építészeti koncepciók összessége. A SOA az elosztott számítástechnikával foglalkozik, amelyben a fogyasztók egy sor interoperábilis szolgáltatást fogyasztanak. Egy szolgáltatást több fogyasztó is igénybe vehet, és fordítva. Ezért a SOA-t gyakran használják több különböző platformot használó alkalmazás integrálására. A SOA megfelelő működéséhez a szolgáltatásokat lazán össze kell kapcsolni az operációs rendszerekkel és a mögöttes alkalmazások technológiáival. A SOA-fejlesztők szolgáltatásokat hoznak létre funkcionalitási egységekkel, és teszik elérhetővé az interneten keresztül. A webszolgáltatások használhatók a SOA architektúra megvalósítására. Ebben az esetben a webszolgáltatások a SOA interneten keresztül elérhető funkcionalitási egységeivé válnak. A webszolgáltatásokat bárki használhatja anélkül, hogy aggódnia kellene a fejlesztésükhöz használt platformok vagy programozási nyelvek miatt. A SOA közvetlenül a szolgáltatás-orientáltság elvén épül fel, amely olyan egyszerű felületű szolgáltatásokról beszél, amelyekhez a felhasználók függetlenül is hozzáférhetnek anélkül, hogy aggódnának a szolgáltatás tényleges platformmegvalósítása miatt.
Mi a különbség a SOA és a webszolgáltatások között?
Van néhány alapvető különbség a webszolgáltatások és a SOA között. A webszolgáltatások olyan webtechnológiát határoznak meg, amellyel olyan alkalmazások hozhatók létre, amelyek HTTP-n keresztül SOPA-n keresztül tudnak üzeneteket küldeni/fogadni. A SOA azonban egy architekturális modell a lazán csatolt szolgáltatás alapú alkalmazások megvalósításához. A webszolgáltatások SOA-alkalmazások megvalósítására használhatók. Annak ellenére, hogy a SOA webszolgáltatási megközelítése nagyon népszerűvé vált, ez csak egyetlen módszer a SOA megvalósítására. A SOA bármely más szolgáltatásalapú technológia (pl. CORBA és REST) segítségével megvalósítható.