SOA a ESB
SOA to zestaw koncepcji architektonicznych wykorzystywanych do tworzenia i integracji usług. Usługa to upubliczniony pakiet funkcjonalności oferowany w sieci. ESB to oprogramowanie infrastrukturalne, które zapewnia konstrukcję architektury oprogramowania do świadczenia podstawowych usług dla złożonych architektur. ESB może służyć jako platforma, na której realizowana jest SOA.
Co to jest SOA?
SOA (architektura zorientowana na usługi) to zestaw koncepcji architektonicznych używanych do tworzenia i integracji usług. SOA zajmuje się przetwarzaniem rozproszonym, w którym konsumenci korzystają z zestawu usług interoperacyjnych. Wielu konsumentów może korzystać z jednej usługi i odwrotnie. Dlatego SOA jest często używana do integracji wielu aplikacji korzystających z różnych platform. Aby SOA działała poprawnie, usługi powinny być luźno powiązane z systemami operacyjnymi i technologiami bazowych aplikacji. Programiści SOA tworzą usługi za pomocą jednostek funkcjonalności i udostępniają je przez Internet. Usługi sieci Web mogą służyć do implementacji architektury SOA. W takim przypadku usługi sieciowe stają się jednostkami funkcjonalności SOA dostępnymi przez Internet. Z usług internetowych może korzystać każdy, nie przejmując się platformami lub językami programowania używanymi do ich tworzenia. SOA jest bezpośrednio zbudowana na zasadzie zorientowania na usługi, która mówi o usługach z prostym interfejsem, do którego użytkownicy mogą uzyskać dostęp niezależnie, bez martwienia się o rzeczywistą implementację usługi na platformie.
Co to jest ESB?
ESB (Enterprise Service Bus) to oprogramowanie infrastrukturalne, które zapewnia konstrukcję architektury oprogramowania do świadczenia podstawowych usług dla złożonych architektur. Istnieje jednak spory spór dotyczący tego, czy ESB można nazwać stylem architektonicznym, oprogramowaniem, a nawet grupą produktów. Świadczy usługi za pośrednictwem mechanizmu przesyłania komunikatów opartego na zdarzeniach i opartego na standardach (który w rzeczywistości jest magistralą usług). Oprócz tego mechanizmu przesyłania komunikatów udostępniona jest warstwa abstrakcji, która umożliwia architektom korzystanie z udogodnień oferowanych przez magistralę bez pisania rzeczywistego kodu. ESB jest zwykle wdrażany za pomocą infrastruktury oprogramowania pośredniczącego opartej na standardach.
Użycie terminu „magistrala” w ESB wynika z faktu, że ESB zapewnia bardzo podobną funkcję do fizycznej magistrali komputerowej, ale na znacznie wyższym poziomie abstrakcji. Jedną z głównych zalet posiadania ESB jest możliwość zmniejszenia liczby punktów kontaktowych; tym samym znacznie ułatwiając adaptację do zmian. ESB może służyć jako platforma, na której realizowana jest SOA. ESB może wprowadzić do architektury SOA koncepcje transformacji/rutingu (związane z przepływem). Ponadto, udowadniając abstrakcję dla punktów końcowych (w SOA), ESB promuje luźne sprzężenie między usługami.
Jaka jest różnica między SOA a ESB?
Istnieją pewne kluczowe różnice między SOA i ESB. SOA to model architektoniczny do implementacji luźno powiązanych aplikacji opartych na usługach. ESB to oprogramowanie infrastrukturalne, które pomaga programistom rozwijać usługi i komunikować się między usługami za pośrednictwem odpowiednich interfejsów API. ESB może służyć jako platforma, na której realizowana jest SOA. ESB jest tylko medium, przez które przepływają usługi. ESB zapewnia udogodnienia do komponowania i wdrażania usług, które z kolei wdrażają architekturę SOA.