4.4.1. Сервисы

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

Основные задачи сервисов:

  • Предоставляют удаленный (remote) интерфейс для вызова с клиентского уровня

  • Проверяют наличие активной пользовательской сессии, соответствующей идентификатору сессии, переданному с клиента

  • Записывают в журнал необработанные исключения среднего слоя

Кроме того, именно в слое сервисов рекомендуется выполнять авторизацию текущего пользователя, т.е. проверять его права на ту или иную функциональность.

Общие для всех сервисов задачи решаются следующим образом:

  • Проверка наличия пользовательской сессии и логгирование исключений производится классом-интерцептором ServiceInterceptor, который перехватывает выполнение каждого метода сервиса с помощью Spring AOP

  • Удаленный интерфейс для доступа к сервису через Spring HTTP Invoker создается бином RemoteServicesBeanCreator, который конфигурируется в файле remoting-spring.xml модуля core.

Рисунок 4.10. Диаграмма классов сервиса

Диаграмма классов сервиса