2010-01-02 3 views
2

Я добавляю дополнительную информацию о приложении, поддерживая несколько методов уведомления. В настоящее время, если на сайте есть исключение или на сайте происходит событие, электронное письмо будет отправлено этим пользователям, но я хочу, чтобы это было более общим. Я хочу, чтобы пользователи могли определять приоритеты своих методов уведомления. Если они хотят получить сообщение XMPP, когда они подключены к сети, они будут уведомлены об этом. Если они не подключены к сети, они получат электронное письмо, и так далее и т. Д.Когда использовать ESB? обмен сообщениями с электронной почтой/XMPP/SMS

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

Я немного играл с Smack, и он хорошо работает для того, что я хочу. Это просто клиентская библиотека XMPP. Я думаю, после прочтения этих ответов, я должен определить, сколько я получу от Apache Camel или Active MQ и т. Д. Основным компонентом, который я хочу, является механизм маршрутизации. Я могу легко написать один из моих собственных, который приоритизирует/заказывает разные методы, но мне интересно, выгоднее ли сейчас укусить пулю, а не позже, и придется отказаться от моего настраиваемого механизма маршрутизации.

ответ

0

Я думаю, что пока, как я это делал в прошлом, с другими проектами, я пока откажу свой собственный маршрутизатор сообщений. Это будет более легкий вес, и я буду больше ценить/понимать, как это работает.

Инфраструктура, которую я использую, может использовать JMS-сервер, но в настоящее время использует модель Observer/Publisher для одного JVM. Я использую задания Quartz для обработки всех запросов, поэтому сервер не перегружен слишком большим количеством запросов. Когда я масштабируюсь до большего количества серверов, я могу использовать JMS-очередь, если это необходимо, без изменения моей базы кода.

Walter

4

ESBs очень тяжеловес. Если у вас не будет человека из Accenture, шепчущего вам в ухо, я настоятельно рекомендую пойти с чем-то более управляемым.

+0

Я использую JBoss Seam, и он также имеет приятную событийную систему наблюдателя/продюсер, который хорошо работает, что может быть настроено на использование JMS для нескольких виртуальных машин. Мне просто интересно, когда это событие будет поднято, где это должно произойти, использовать ESB, чтобы определить, как уведомить получателя или мою собственную реализацию? – 2010-01-03 14:59:45

1

ESBs большой вес. Один из интеграционных проектов должен сделать трюк. На ум приходит интеграция Apache Camel и Spring. Apache Camel уже имеет поддержку электронной почты и XMPP. Spring Integration имеет встроенную электронную почту, но в настоящий момент вам нужно будет создать свой собственный XMPP-адаптер, но, похоже, он находится в пути, см. Spring Integration 2.0.

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

Редактирование: Технически как интеграция Apache Camel и Spring можно рассматривать как ESB, но они определенно находятся в облегченном конце шкалы, так как ни один из них не применяет контейнерный механизм. Дополнительная информация о whether Camel is an ESB.

+0

Я столкнулся с Apache Camel и заметил, что у него поддержка XMPP/email, поэтому это плюс. Хорошо, да, я думаю, что я в первую очередь обеспокоен маршрутизацией, у меня создалось впечатление, что ESB имеют свой собственный синтаксис XML для определения того, как сообщения маршрутизируются/трансформируются. Это та часть, которую я хотел бы в первую очередь. Я также хотел бы выбрать, какие модули он поддерживает, чтобы уменьшить размер. – 2010-01-03 15:01:31

+0

Интеграция Camel и Spring позволит вам писать свои правила как обычный код. Оба они также разделяют свои модули на отдельные файлы jar, например: http://repo2.maven.org/maven2/org/apache/camel/, поэтому вы должны иметь возможность включать только необходимые банки. –

+0

Я хотел добавить: и интеграция Camel и Spring позволит вам писать свои правила как обычный код или XML в зависимости от ваших предпочтений. –

0

Я бы порекомендовал Apache Camel - его очень прост в использовании и поставляется с XMPP и mail поддержка - наряду со многими другими components.

Если на более позднем этапе вы хотите управлять автономным верблюдом, вы можете развернуть его в OSGI container too.

Смежные вопросы