Можно ли использовать JMX для нормальной связи между двумя удаленными процессами Java? - PullRequest
0 голосов
/ 22 июля 2011

Может ли JMX использоваться для нормальной связи между двумя удаленными процессами Java для передачи некоторых данных назад и вперед? Если да, то почему JMX предпочтительнее RMI для вышеуказанного сценария?

Документация говорит, что JMX предназначен для управления / мониторинга, может ли он использоваться для вызова и возврата огромных коллекций объектов?

Ответы [ 2 ]

2 голосов
/ 22 июля 2011

Конечно, вы можете использовать JMX-форму простого взаимодействия, и если вы ограничиваете себя открытыми MBean-компонентами, вам даже не требуется специальная информация о типе с каждой стороны (то есть пользовательские jar-файлы, используемые для десериализации).

Еще одним преимуществом связи JMX является то, что вы можете легко переключать стек протоколов от RMI. Например. Вы можете использовать JMX HTTP-Bridge, например Jolokia , дополнительно или в качестве замены и получить некоторые дополнительные преимущества (удобство межсетевого экрана, массовые запросы, обмен данными без набора)

Недостаток JMX, используемого в качестве простого протокола связи, заключается в том, что JMX размывает многоуровневую архитектуру, поскольку MBean-компоненты могут быть зарегистрированы на любом уровне (презентация, служба, дао, ...). Вы, вероятно, хотите экспортировать только свой уровень обслуживания удаленно, с JSR-160 у вас есть доступ к каждому MBean, зарегистрированному на любом уровне, что может быть нежелательно с архитектурной точки зрения.

0 голосов
/ 22 июля 2011

Потому что JMX не так удобен, как RMI.В RMI вы можете работать с удаленным объектом через интерфейс, так что это похоже на работу с локальным объектом.Но с JMX вы должны вызывать методы по строковому имени с подписью.

...