Представьте себе Java-приложение ERP клиент / сервер, обслуживающее до 100 одновременных пользователей, как веб-клиентов, так и клиентов Swing. Для настойчивости мы можем использовать Persistence API и Hibernate. Но когда дело доходит до взаимодействия клиент / сервер, действительно ли у нас есть альтернатива использованию AS с EJB для снижения затрат на программирование удаленного взаимодействия?
Добавление EJB-компонентов и сервера приложений только для удаленного взаимодействия кажется очень тяжелым решением. Существует также стандартный способ использования RMI, но кто в настоящее время хочет все кодировать самостоятельно ...
Я знаю, что вы получите множество функций бесплатно с AS в дополнение к части удаленного взаимодействия. И, может быть, это правильный путь. Но есть ли на самом деле какие-либо другие (низкие затраты на программирование) альтернативы AS для взаимодействия клиент-сервер для корпоративного приложения?




Вы можете использовать облегченные фреймворки для удаленного взаимодействия. В этом разделе Spring есть несколько вариантов.
Если вы спросите меня одним словом для обоих, я предложу два. Шов или пружина. Мне лично нравится Seam, но для облегченного удаленного взаимодействия у Spring есть более жизнеспособные решения и поддержка. Опять же, если ваша AS - JBoss, подумайте о Шов.
Сервер приложений - довольно тяжелое решение. В зависимости от ваших требований я бы попытался убедиться, что вы можете работать в простом контейнере сервлетов (например, Tomcat). Я считаю, что удаленное управление намного проще с Spring-удаленное взаимодействие вместо полного EJB. Spring-remoting представляет собой абстракцию от фактического используемого метода удаленного взаимодействия. Гессен имеет хорошую репутацию легковесного протокола.
Наличие какой-то серверной инфраструктуры (AS или контейнера сервлетов) - это хорошо, поскольку вам не нужно так много думать обо всех проблемах низкого уровня (установление соединения, многопоточность, ...).
Лично я считаю, что Seam является окончательным решением проблемы, которой у меня нет, но помимо этого, есть много вариантов, и для большинства из них используется Spring:
Преимущество методов удаленного взаимодействия на основе HTTP заключается в том, что они легко подключаются к моделям безопасности Spring. Кроме того, вы получаете доступ к таким вещам, как перехватчики.