Позвольте мне попытаться разъяснить вам эти условия:
Шина в контексте архитектуры ESB не должна рассматриваться как простая очередь для отправки сообщений. ESB предоставляет гораздо больше возможностей для интеграции различных сервисов. Важные дополнительные функции ESB:
- маршрутизация. Сообщения могут быть направлены в разные службы, в зависимости от содержимого сообщения или спецификации конечной точки.
- Преобразования сообщений / медиации между различными форматами
- Преобразование транспортного протокола. ESB должен иметь возможность беспроблемной интеграции приложений
которые используют разные транспортные протоколы (JMS, HTTP / S, чистый TCP и т. д.)
- Улучшение сообщения. Сообщения могут быть обогащены отсутствующими данными перед дальнейшей обработкой.
- Безопасность
- Управление и мониторинг
Эти функциональные возможности предоставляются службами, которые работают в ESB. Сервисы соединяются друг с другом через конечные точки - единые, уникальные «адреса». Сообщения, отправляемые между конечными точками, используют унифицированный транспорт (метод / протокол, который инкапсулирует полезную нагрузку сообщения). Приложение, которое изначально использует другой транспорт, должно подключаться к ESB через подходящий адаптер - сервис, который обеспечит необходимое преобразование транспорта. Таким образом, приложения, использующие ESB, отделены друг от друга и не нуждаются в самих преобразованиях.
Конечно, это только очень краткие описания терминов. Помните, что Enterprise Service Bus подходит только для определенного типа архитектуры (или концепции), но никак не стандартизирован. Таким образом, конкретные реализации могут сильно отличаться друг от друга.
Если вы заинтересованы в стандартизированной ESB, вы можете взглянуть на JBI (Java Bussiness Integration). Существует несколько реализаций JBI с открытым исходным кодом, среди которых Apache ServiceMix , Mule , OpenESB . Очень хорошее введение в технологии ESB представлено в книге " ESB с открытым исходным кодом в действии ", изданной Мэннингом.