SOA проти ESB
SOA - це сукупність архітектурних концепцій, що використовуються для розвитку та інтеграції послуг. Послуга - це оприлюднений пакет функціональних можливостей, пропонований через Інтернет. ESB - це частина інфраструктурного програмного забезпечення, яка забезпечує побудову архітектури програмного забезпечення для надання базових послуг для складної архітектури. ESB можна використовувати як платформу, на якій реалізується SOA.
Що таке SOA?
SOA (Service-орієнтована архітектура) - це сукупність архітектурних концепцій, що використовуються для розвитку та інтеграції послуг. SOA має справу з розподіленими обчисленнями, в яких споживачі споживають набір сумісних послуг. Кілька споживачів можуть споживати одну послугу і навпаки. Тому SOA часто використовується для інтеграції декількох додатків, які використовують різні платформи. Щоб SOA правильно працювала, сервіси повинні бути слабко поєднані з операційними системами та технологіями базових програм. Розробники SOA створюють сервіси, використовуючи одиниці функціональності, і роблять їх доступними через Інтернет. Веб-сервіси можна використовувати для реалізації архітектури SOA. У цьому випадку веб-сервіси стають одиницями функціональності SOA, доступними через Інтернет. Веб-сервісами може користуватися будь-хто, не переймаючись платформами або мовами програмування, які використовуються для їх розробки. SOA безпосередньо побудований на принципі орієнтації на сервіс, який говорить про сервіси з простим інтерфейсом, до якого користувачі можуть отримати доступ самостійно, не турбуючись про фактичну реалізацію послуги на платформі.
Що таке ESB?
ESB (Enterprise Service Bus) - це частина інфраструктурного програмного забезпечення, що забезпечує структуру архітектури програмного забезпечення для надання базових послуг для складної архітектури. Але є вагомий аргумент щодо того, чи можна називати ESB архітектурним стилем, програмним продуктом чи навіть групою продуктів. Він надає послуги за допомогою подій, заснованих на стандартах, і на основі стандартного двигуна для обміну повідомленнями (що фактично є службовою шиною). Поверх цього двигуна обміну повідомленнями надається шар абстракції, що дозволяє архітекторам експлуатувати об'єкти, пропоновані шиною, не пишучи жодного фактичного коду. ESB зазвичай впроваджується через інфраструктуру, засновану на стандартах.
Використання терміна "шина" в ESB пояснюється тим, що ESB забезпечує дуже схожу функцію з фізичною шиною комп'ютера, але на значно більшому рівні абстракції. Однією з головних переваг наявності ESB є можливість зменшити кількість точок контактів; таким чином, значно полегшується адаптація до змін. ESB можна використовувати як платформу, на якій реалізується SOA. Концепції перетворення / маршрутизації (пов'язані з потоком) можуть бути внесені до SOA ESB. Крім того, підтверджуючи абстракцію кінцевих точок (у SOA), ESB сприяє вільній зв'язці між службами.
Яка різниця між SOA та ESB?
Існують деякі ключові відмінності між SOA та ESB. SOA - це архітектурна модель для реалізації слабко пов'язаних додатків на основі послуг. ESB - це частина інфраструктурного програмного забезпечення, яка допомагає розробникам розвивати сервіси та спілкуватися між службами через відповідні API. ESB можна використовувати як платформу, на якій реалізується SOA. ESB - це лише середовище, через яку протікають послуги. ESB надає засоби для складання та розгортання служб, які в свою чергу реалізують SOA.