Реализуйте бизнес-логику на сервере приложений с помощью Spring - PullRequest
5 голосов
/ 24 мая 2010

Возможно ли реализовать бизнес-логику на удаленном сервере приложений, используя pojos вместо EJB или Servlets ???.Основная идея состоит в том, чтобы применить модель из 3 уровней, где клиентами могут быть как веб-браузеры, так и настольные приложения, и они разделяют бизнес-логику на сервере приложений.

это будет архитектура

браузер -----> Веб-сервер --------> | Сервер приложений (Business Logic common) | -------> | RDBMS common |
Настольное приложение (например, Swing) -> | Сервер приложений (Business Logic common) | -------> | RDBMS common |

1 Ответ

5 голосов
/ 24 мая 2010

Вы можете использовать Spring вместо EJB. И я рекомендую это!

Но обе альтернативы отлично справятся с корпоративными функциями, такими как обработка транзакций и безопасность.

Используя Spring или нет, вам все еще нужен контейнер сервлетов для ваших веб-страниц. Контейнер Servlet может запустить контейнер Spring, если вы правильно настроили файл web.xml контейнера Servlet.

Пример обработки транзакции с помощью Spring:

@Transactional
public void execute(..) {..}

И с EJB 3.x:

@TransactionAttribute
public void execute(..) {..}

Как видите, обе альтернативы предлагают декларативное добавление корпоративных функций.

Обновлено после прочтения комментария HenryOS:

Возможно иметь всю бизнес-логику на одном сервере.

Одним из решений может быть использование веб-служб между клиентами (WEB-сервер и толстые клиенты Swing). Это довольно хорошее и слабосвязанное решение.

Если вам нужна большая скорость, вы можете вместо этого использовать Protocol Buffer от Google или аналогичную технологию.

Интересно, что с веб-службами или буфером протокола вам все еще нужен веб-контейнер, такой как Tomcat или Jetty, на сервере с бизнес-логикой, поскольку он должен предоставлять веб-службы клиентам. Все платформы веб-сервисов, такие как Spring WS, CXF и Apache Axis 2, используют сервлет.

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

Наконец, если вы используете CXF или Spring WS вместе с JAXB, то все ваши классы на бизнес-сервере могут быть записаны как POJO! Это относится и к нескольким другим хорошо написанным платформам веб-служб.

Надеюсь, это ответит на ваш вопрос!

...