Интеграция JMS/DDS
У меня есть устаревшее приложение C++, которое использует DDS для асинхронной связи / обмена сообщениями. Мне нужно интегрировать это приложение в среду JavaEE, которая использует JMS для обмена сообщениями. Кроме создания автономного модуля моста JMS/DDS, есть ли другие варианты, которые я мог бы иметь?
4 ответа
Если вы хотите продолжать использовать свой существующий продукт DDS, ваша лучшая ставка почти наверняка окажется пользовательским мостом. Текущие реализации DDS, как правило, не совместимы на уровне сообщений и даже не близки на уровне QoS.
Чтобы использовать что-то вроде службы сообщений RTI, вам придется использовать RTI DDS. Если вы уже используете этот конкретный продукт, это может быть вариант для вас. В противном случае, я бы порекомендовал написать мост, который явно публикует и подписывает ваши темы, представляющие интерес.
Имейте в виду, что JMS не имеет богатого набора QoS, который есть у DDS. Во всех случаях, кроме самых простых, будет необходимо выяснить, какое поведение вы действительно ожидаете от своих тем, и четко определить, как реализовать это с помощью JMS.
Вы можете попробовать создать реализацию DDS, которая просто делегирует API C++ поставщика JMS, например, используя API Apache CMS, который прекрасно работает с Apache ActiveMQ.
Итак, первое попадание Google для "моста DDS в JMS" приводит документ, в котором упоминается коммерческий продукт: служба сообщений RTI
Судя по бумаге и странице продукта, это делает то, что вы хотите. Есть бесплатная оценка (по модулю рекламный звонок, конечно.)
RTI также предоставляет отдельный двунаправленный мост DDS-JMS. Этот продукт называется Connext Integrator