EJB на клиенте - PullRequest
       23

EJB на клиенте

0 голосов
/ 22 июня 2010

Мне нужно разработать приложение на Java, которое использует подход «клиент [встроенный сервер] - (- - сервер) - (...)». (данные отправляются по коммитам или автоматически)

Рабочий процесс (сущности, проверка, логика, сеансы) везде одинаков. В соединениях сервер-сервер логично использовать EJB-компоненты (сущностные и сессионные компоненты, в будущем, вероятно, также объекты, управляемые сообщениями). Клиент общается с локальным «сервером» или - в зависимости от настроек пользователя - с одним или несколькими реальными серверами (серверы могут общаться и со многими серверами).

Можно ли (и: просто) использовать локально EJB-фреймворк (без локального сервера Java EE, чтобы избежать установки на клиентах и ​​использования памяти), и если это считается хорошим решением? Или я должен реализовать другую логику на клиенте и переключаться в зависимости от настроек? Что проще?

Ответы [ 2 ]

0 голосов
/ 22 июня 2010

Совершенно возможно вызвать ваш EJB с клиента, не имея локального сервера Java EE.

Все серверы Java EE поставляются с jar-файлом клиента, который содержит классы, необходимые для подключения к серверу Java EE. Вам необходимо предоставить конфигурацию для сервера JNDI с помощью файла jndi.properties (или настройки системных свойств перед получением исходного контекста JNDI), и все.

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

Если вам действительно необходимо выполнить развертывание на локальном компьютере, вы можете рассмотреть возможность развертывания приложения на сервере Java EE. JBoss или Glassfish довольно модульны и не так тяжелы для бега. Выбросьте ненужные модули и разверните на нем свое приложение.

0 голосов
/ 22 июня 2010

Да, это возможно. Спецификация EJB 3.1 определяет встраиваемый контейнер EJB (глава 20), который может использоваться в приложениях Java SE без необходимости использования сервера приложений Java EE.

Но даже до EJB 3.1 существуют контейнеры, которые легко встраиваются, например, OpenEJB от Apache.

Является ли это хорошо или плохо, конечно, спорными, но я думаю, что если есть существующие EJ и вы хотите использовать их на местном уровне, то почему бы нет. Другие, вероятно, предпочли бы Spring, но у меня нет большого опыта в этом, поэтому я не могу комментировать это.

...