XMPP против JMS в качестве носителя сообщений

Я рассматриваю возможность использования XMPP или JMS в качестве транспорта для обмена сообщениями между программными агентами. (Я работаю с агентской системой JADE.)

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


person Surfin' Smurf    schedule 21.01.2011    source источник


Ответы (1)


Мы используем некоторую связь JMS через брандмауэры. Настройки брандмауэра зависят от вашего провайдера JMS, поскольку JMS — это не «проводной протокол», а API. Могут быть реализации JMS, которыми трудно управлять через брандмауэр. Мы использовали JBOSS MQ и SonicMQ и обнаружили, что это очень удобно: для обоих требуется открыть лишь небольшой набор портов.

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

person roundrobin    schedule 21.01.2011
comment
вам, вероятно, также следует принять во внимание поддержку вашей платформы в отношении JMS и XMPP. Например, в Android есть asmack, который обеспечивает достойную поддержку XMPP, но не имеет эквивалента для JMS. - person Thomas; 27.09.2013