Система ИАСК для Сбербанка
|
 |
Модель архитектуры
Общая архитектура системы представлена на рисунке и включает в себя следующие компоненты:
- Прикладные сервисы, отвечающие за выполнение бизнес логики
- Ядро системы, отвечает за базовые сервисы
- Клиентский уровень и WEB сервер, отвечающий за описание и представление бизнес объектов пользователю, то есть интерфейс системы
- Балансировка нагрузки, отвечает за равномерное распределение нагрузки по компонентам
- База данных, как основное хранилище информации
Данная архитектура решает данные проблемы:
- Сложная структура данных – решается с помощью выбранного ORM и шаблона DAO
- Долгие транзакции – решаются с помощью гибкости бизнес-процессов, а также поддерживаются механизмом сервиса управлениями бизнес процессами, а также платформой WebSphere и Oracle
- Асинхронные процессы - поддерживаются механизмом сервиса управлениями бизнес процессами, но также возможны и синхронные
- Периодические серверные задачи - поддерживаются механизмом сервиса планировщика
- Сложная и часто изменяемая бизнес логика – поддерживается с помощью модульной архитектуры
- Крайне нагруженный интерфейс = возможен гибкостью и возможностями платформы интерфейсной части системы
- Наследие предыдущей архитектуры (хранимые процедуры и толстый клиент) – есть возможность использовать и оптимизировать текущие наработки
В рамках данной архитектуры сервисы делятся на две категории:
- Общесистемные или ресурсные сервисы, т.н. «Ядро системы» такие как сервис кэширования, сервисы журналирования, аудита и мониторинга
- Бизнес сервисы, т.н. «Прикладные сервисы», отвечающие за описания, бизнес процессов в системе и связаны между собой посредством базовых сервисов и являются не зависимыми друг от друга и могут быть связаны только с ресурсными сервисами через специализированные интерфейсы.
Такое разделение позволяет оставить существующие наработки без изменений и использовать их повторно. В качестве протокола взаимодействия с шиной данных может выступать любой протокол, поддерживаемый JEE спецификацией, что позволит легко масштабировать систему как по горизонтали, так и по вертикали.
Подсистемы
Система будет разбита на несколько независимых подсистем Ядро Системы (далее IASKCF – IASK common framework), Прикладные сервисы (далее Application Services) и интерфейс пользователя (далее UI).
Подсистема IASKCF состоит из следующих компонент:
- Сервис БД (далее Database Facade) – отвечает за взаимодействие пользовательского интерфейса с базой данных
- Сервис управления бизнес процессами (далее Business Process Management) – отвечает за описание легковесных операций с бизнес объектами, такими как сохранение данных, перевод бизнес объект из состояния в состоянии, а так же за управлением транзакций
- Сервис отчётов (далее Reporting Service) – отвечает за формирования отчетности в системе в любой формат, поддерживает как асинхронный, так и синхронный режим
- Сервис сообщений (далее Message Service) – отвечает за интеграцию с внешними системами
- Планировщик (далее Scheduling Service) – отвечает за асинхронное выполнение задач
- Сервис интеграции с внешними системами (далее Integration Service) – отвечает за интеграцию с внешними системами. Также включает в себя эмулятор внешних систем (далее External System Emulator)
- Журналирование (далее Logging Configuration) – отвечает за настройку журналирования системы
- Аудит (далее Audit Configuration) – отвечает за настройку аудита системы
- Мониторинг (далее Monitoring Configuration) – отвечает за настройку мониторинга системы
- Сервис блокировок (далее Lock Service) – отвечает за механизм блокировок
- Сервис гарантированных сообщений персонала (далее Personal Messaging Service) – отвечает механизм блокировок
Подсистема Application Services состоит из следующих групп компонент:
- Договоры
- Финансовые операции
- Клиенты
- Коллектинг
- Административная консоль
- Расчёты
- НСИ
- Отчёты
Интерфейс пользователя — состоит из следующих компонент:
- SWING – отвечает за отображения интерфейса пользователя с помощью библиотеки SWING
- GWT – отвечает за отображения интерфейса пользователя
- SUDIR SSO Integration – отвечает за авторизацию пользователя
- Logging – отвечает за журналирование клиентского приложения
В качестве протокола взаимодействия web сервера и подсистемы IASKCF может выступать:
- RMI/IIOP – стандартный протокол Java EE
- SOAP over HTTP/HTTPS – стандартный протокол web-сервисов
- JMS – спецификация Java сообщений
Для всех клиентов web сервера обязателен HTTP/HTTPS.
Общие компоненты, используемые в системе, могут быть как ресурсными сервисами, так и клиентскими библиотеками которые необходимо использовать всем компонентам. К ним относиться все сервисы IASKCF. По возможности, будут использоваться существующие наработки.
Прикладные сервисы выполняют основную бизнес логику приложения.
Принципы разбиения системы на подсистемы
В основе разбиения системы на подсистемы лежит идея модульности, то есть система будет разбита на ряд компонент и сервисов, которые будут связаны между собой посредством Spring IoC контейнера и будут независимыми друг от друга, что позволит их независимо тестировать и масштабировать. За последовательность вызовов того или иного сервиса будет отвечать IASKCF, кроме сервисов, которые являются служебными такими как кэширование, журналирование, аудит и мониторинг.
Разбиение на модули
Предлагается следующая минимальная структура модулей системы:
- Интерфейсная часть
- Модули прикладных форм
- Модули общей (системной) логики
- Модули серверной логики
- Прикладные сервисы
- Модули прикладных сервисов
- Модули прикладных системных сервисов
- Ядро системы
- Модули системных сервисов
|