Зачем мне использовать Apache ServiceMix поверх ActiveMQ - PullRequest
5 голосов
/ 26 марта 2011

Я начинаю планировать новую платформу, которая должна интегрировать различные сервисы с различных внешних платформ. По сути, я связываю кучу внутренних, собственных сервисов и несколько внешних сервисов, которые мы лицензируем у третьих сторон.

Вообще говоря, внешние сервисы - это все веб-сервисы, но они представляют собой смесь REST, SOAP и XML-RPC. Некоторые из наших внутренних служб имеют REST API, но есть много вещей, которые не так просты: XMPP, Hessian, пользовательские протоколы сокетов, Java RPC, uWSGI, и этот список можно продолжить.

Исходя из моих исследований, кажется, что ESB, такой как Apache ServiceMix, вполне подойдет для моих нужд. Однако это выглядит действительно сложным. Я не запускаю ракеты, но мне нужен транзакционный обмен сообщениями (в основном для электронной коммерции и предоставления прав). Я чувствую, что очереди сообщений, используемой ServiceMix под капотом (ActiveMQ), может быть достаточно само по себе.

Может кто-нибудь объяснить, что ServiceMix предоставляет помимо ActiveMQ? Я знаю, что есть много, но ESB n00b трудно, как я, по-настоящему понять ощутимую разницу, когда я погружен в пустые слова.

Спасибо!

1 Ответ

8 голосов
/ 31 марта 2011

ServiceMix - это контейнер на основе OSGi, который позволяет развертывать и запускать приложения в контролируемой среде выполнения (например, в контейнере J2EE, но с меньшим весом и без программирования, например, для контрактов J2EE).Благодаря OSGi вы можете разбивать свои приложения на части и обновлять / развивать эти части независимо друг от друга.Вы можете обновить части своего приложения без необходимости удаления всего приложения.В OSGi намного лучше управление жизненным циклом, чем в автономных процессах Java.

Если вы думаете о создании приложения, которое со временем будет развиваться, то OSGi - это то, что вам следует учитывать.А ServiceMix предоставляет вам контейнер OSGi времени выполнения для развертывания ваших приложений.Я очень рекомендую книгу «OSGi в действии» от Мэннинга.

Для связывания различных внешних служб, которые могут даже использовать разные транспортные протоколы, я рекомендую Apache Camel, который, кстати, также прекрасно разворачивается в ServiceMix.

Кстати, существующие приложения могут быть развернуты в контейнере OSGi сдовольно мало усилий (без необходимости изменения кода).

Torsten Mielke FuseSource Веб: www.fusesource.com Блог: http://tmielke.blogspot.com

...