Сервер звонит клиенту (EJB) - PullRequest
1 голос
/ 13 октября 2011

В моем проекте Business Logic реализован как EJB на Сервере приложений и как клиентское приложение для настольного компьютера, которое вызывает эти EJB. Все работает нормально, когда у меня есть только одна односторонняя связь (клиент -> сервер), но теперь мне нужна возможность подписаться / быть объединены в сервер. Таким образом, в основном после входа клиента на сервер сервер может отправить ему обновление в любое время. Поскольку я не могу использовать EJB вне сервера приложений, вопрос в том, как это сделать (каков стандартный и предпочтительный способ решения таких проблем). Может быть, я мог бы реализовать JMS? (Как она работает вне сервера приложений ..)

Привет

Ответы [ 2 ]

0 голосов
/ 13 октября 2011

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

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

0 голосов
/ 13 октября 2011

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

  • Просто создайте EJB на сервере, который клиент вашего компьютера может запросить, чтобы получить какие-либо обновления. Для этого вы можете создать фоновый поток на клиенте. Используя какой-то шаблон наблюдателя на клиенте, вы можете «вытолкнуть» информацию в графический интерфейс.
...