SOA против ESB
SOA - это набор архитектурных концепций, используемых для разработки и интеграции сервисов. Услуга - это публичный пакет функций, предлагаемый в сети. ESB - это часть инфраструктурного программного обеспечения, которое обеспечивает структуру программной архитектуры для предоставления базовых услуг для сложных архитектур. ESB может использоваться как платформа, на которой реализована SOA.
Что такое SOA?
SOA (сервис-ориентированная архитектура) - это набор архитектурных концепций, используемых для разработки и интеграции сервисов. 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.