Порядок выполнения работы:
-
Выбрать один из бизнес-процессов, реализуемых сайтом из варианта задания.
-
Утвердить выбранный бизнес-процесс у преподавателя.
-
Специфицировать модель реализуемого бизнес-процесса в соответствии с требованиями BPMN 2.0.
-
Разработать приложение на базе Spring Boot, реализующее описанный на предыдущем шаге бизнес-процесс. Приложение должно использовать СУБД PostgreSQL для хранения данных, для всех публичных интерфейсов должны быть разработаны REST API.
-
Разработать набор curl-скриптов, либо набор запросов для REST клиента Insomnia для тестирования публичных интерфейсов разработанного программного модуля. Запросы Insomnia оформить в виде файла экспорта.
-
Развернуть разработанное приложение на сервере helios.
Доработать приложение из лабораторной работы #1, реализовав в нём управление транзакциями и разграничение доступа к операциям бизнес-логики в соответствии с заданной политикой доступа.
Управление транзакциями необходимо реализовать следующим образом:
-
Переработать согласованные с преподавателем прецеденты (или по согласованию с ним разработать новые), объединив взаимозависимые операции в рамках транзакций.
-
Управление транзакциями необходимо реализовать с помощью Spring JTA.
-
В реализованных (или модифицированных) прецедентах необходимо использовать декларативное управление транзакциями.
-
В качестве менеджера транзакций необходимо использовать Bitronix.
Разграничение доступа к операциям необходимо реализовать следующим образом:
-
Разработать, специфицировать и согласовать с преподавателем набор привилегий, в соответствии с которыми будет разграничиваться доступ к операциям.
-
Специфицировать и согласовать с преподавателем набор ролей, осуществляющих доступ к операциям бизнес-логики приложения.
-
Реализовать разработанную модель разграничений доступа к операциям бизнес-логики на базе Spring Security + JAAS. Информацию об учётных записах пользователей необходимо сохранять в файле XML, для аутентификации использовать JWT.
Правила выполнения работы:
-
Все изменения, внесённые в реализуемый бизнес-процесс, должны быть учтены в описывающей его модели, REST API и наборе скриптов для тестирования публичных интерфейсов модуля.
-
Доработанное приложение необходимо развернуть на сервере helios.
Доработать приложение из лабораторной работы #2, реализовав в нём асинхронное выполнение задач с распределением бизнес-логики между несколькими вычислительными узлами и выполнением периодических операций с использованием планировщика задач.
Требования к реализации асинхронной обработки:
-
Перед выполнением работы неободимо согласовать с преподавателем набор прецедентов, в реализации которых целесообразно использование асинхронного распределённого выполнения задач. Если таких прецедентов использования в имеющейся бизнес-процесса нет, нужно согласовать реализацию новых прецедентов, доработав таким образом модель бизнес-процесса из лабораторной работы #1.
-
Асинхронное выполнение задач должно использовать модель доставки "подписка".
-
В качестве провайдера сервиса асинхронного обмена сообщениями необходимо использовать сервис подписки на базе Apache Kafka + ZooKeeper.
-
Для отправки сообщений необходимо использовать Kafka Producer API.
-
Для получения сообщений необходимо использовать клиент Kafka на базе Spring Boot.
Требования к реализации распределённой обработки:
-
Обработка сообщений должна осуществляться на двух независимых друг от друга узлах сервера приложений.
-
Если логика сценария распределённой обработки предполагает транзакционность выполняемых операций, они должны быть включены в состав распределённой транзакции.
Требования к реализации запуска периодических задач по расписанию:
-
Согласовать с преподавателем прецедент или прецеденты, в рамках которых выглядит целесообразным использовать планировщик задач. Если такие прецеденты отсутствуют — согласовать с преподавателем новые и добавить их в модель автоматизируемого бизнес-процесса.
-
Реализовать утверждённые прецеденты с использованием планировщика задач Spring (@Scheduled).
Правила выполнения работы:
-
Все изменения, внесённые в реализуемый бизнес-процесс, должны быть учтены в описывающей его модели, REST API и наборе скриптов для тестирования публичных интерфейсов модуля.
-
Доработанное приложение необходимо либо развернуть на сервере helios, либо продемонстрировать его работоспособность на собственной инфраструктуре обучающегося.