Разница между SOA и ESB

Я запутался в этих терминах веб-службы SOA, ESB.

кто-нибудь, пожалуйста, объясните.

5 ответов


SOA-это архитектурный подход, в котором вы подвергаете и инкапсулируете "услуги" грубым способом. В нем не предписывается никакого технического механизма или осуществления. SOA больше связано с взаимодействием границ / интеграции между системами. Поэтому, если система A предоставляет службы с использованием SOA, я могу взаимодействовать с этими службами из системы B.

ESB, с другой стороны, является технической реализацией, которая помогает в предоставлении SOA.


SOA is service oriented architecture. В SOA services are decoupled и могут взаимодействовать друг с другом независимо от типа сервиса. Значение конкретной службы может быть специфичным для платформы или протокола, но SOA позволяет таким службам взаимодействовать и обмениваться данными. Эти данные, по существу, обмениваются через ESB (Enterprise service bus) который формирует костяк любой архитектуры SOA.

позвольте мне пойти вперед и дать конкретный пример, чтобы помочь лучше понять это. Один из способов ESB может быть реализован нами с помощью JMS servers и используя XML/XSD как средство передачи данных между различными службами. Таким образом, различные службы будут регистрироваться или подключаться к этим серверам JMS и обмениваться данными с использованием формата XML. Обычно SOA suite поставляется в комплекте с так называемым adapters, которые помогают преобразовывать сообщения в формат и из формата, понимаемого службой и XML.

например рассмотрим систему торговли акциями. Приходят сообщения с фондовой биржи FIX протокол. Возможно, вы создадите приложение, которое ожидает JSON. К сделать эти обе системы работают вы будете использовать SOA - FIX адаптер преобразует сообщение FIX в XML, то этот xml будет передан в адаптер JSON через ESB, который затем преобразуется в JSON, как требуется вашей конечной точки системы.

наконец, надеясь, что следующая картина делает это очень ясно.

enter image description here


определения и различия объясняются в следующих вопросах:


SOA: - в основном в SOA, на одной стороне у нас есть производитель / поставщик, а на другой стороне у нас есть потребитель, разделенный мостом (который является сетью), где две стороны общаются. Поэтому сосредоточьтесь на том, как две стороны взаимодействуют(производят/потребляют) услуги

ESB: - ESB является архитектурным шаблоном, который, как несколько приложений / компонентов / системы могут общаться/взаимодействовать друг с другом, следуя принципам SOA, хотя здесь нет прямого производитель-потребитель. HSo здесь мы фокусируемся на том, как несколько гетерогенных приложений будут взаимодействовать друг с другом и достигать бизнес-цели.

кроме того,ESB дает API, который может использоваться для разработки сервисов и позволяет сервисам надежно взаимодействовать друг с другом. Технически ESB-это брокер обмена сообщениями, который выполняет преобразование протоколов, преобразование формата сообщений, маршрутизацию, прием и доставку сообщений от различных связанных служб и приложений для ESB.


SOA расшифровывается как Service Oriented Architecture и ESB расшифровывается как Enterprise Service Bus. Вы можете обратиться этот сайт IBM. и этой