Студенты:
- Крисанов Роман Валерьевич
- Шабалов Антон Павлович
Вариант №331313: Готовим дома. Кулинарные рецепты с фотографиями блюд - http://gotovim-doma.ru
Разработать приложение на базе Spring Boot, реализующее бизнес-процесс "Добавление и подтверждение рецепта".
-
Приложение должно использовать СУБД PostgreSQL хранения данных
-
Для всех публичных интерфейсов должны быть разработаны REST API.
-
Необходимо реализовать в нём управление транзакциями и разграничение доступа к операциям бизнес-логики в соответствии с заданной политикой доступа.
-
Управление транзакциями необходимо реализовать следующим образом:
- Управление транзакциями необходимо реализовать с помощью Spring JTA.
- В реализованных прецедентах необходимо использовать программное управление транзакциями.
-
Разграничение доступа к операциям необходимо реализовать следующим образом:
- Реализовать разграничений доступа к операциям бизнес-логики на базе Spring Security
- Информацию об учётных записах пользователей необходимо сохранять в реляционую базу данных
- Для аутентификации использовать HTTP basic.
-
-
Реализовать асинхронное выполнение задач с распределением бизнес-логики между несколькими вычислительными узлами и выполнением периодических операций с использованием планировщика задач.
- Требования к реализации асинхронной обработки:
- Асинхронное выполнение задач должно использовать модель доставки "очередь сообщений".
- В качестве провайдера сервиса асинхронного обмена сообщениями необходимо использовать очередь сообщений на базе RabbitMQ.
- Для отправки сообщений необходимо использовать протокол AMQP. Библиотеку для реализации отправки сообщений можно взять любую на выбор студента.
- Для получения сообщений необходимо использовать слушателя сообщений
@RabbitListener
.
- Требования к реализации распределённой обработки:
- Обработка сообщений должна осуществляться на двух независимых друг от друга узлах сервера приложений.
- Требования к реализации запуска периодических задач по расписанию:
- Реализовать утверждённые прецеденты с использованием планировщика задач Quartz
- Требования к реализации асинхронной обработки: