Business Logic of the Software Systems
Бизнес-логика программных систем:
Please enter your variant number to get your site name.
Описать бизнес-процесс в соответствии с нотацией BPMN 2.0, после чего реализовать его в виде приложения на базе Spring Boot.
Порядок выполнения работы:
- Выбрать один из бизнес-процессов, реализуемых сайтом из варианта задания.
- Утвердить выбранный бизнес-процесс у преподавателя.
- Специфицировать модель реализуемого бизнес-процесса в соответствии с требованиями BPMN 2.0.
- Разработать приложение на базе Spring Boot, реализующее описанный на предыдущем шаге бизнес-процесс. Приложение должно использовать СУБД PostgreSQL для хранения данных, для всех публичных интерфейсов должны быть разработаны REST API.
- Разработать набор curl-скриптов, либо набор запросов для REST клиента Insomnia для тестирования публичных интерфейсов разработанного программного модуля. Запросы Insomnia оформить в виде файла экспорта.
- Развернуть разработанное приложение на сервере
helios
.
Содержание отчёта:
- Текст задания.
- Модель потока управления для автоматизируемого бизнес-процесса.
- UML-диаграммы классов и пакетов разработанного приложения.
- Спецификация REST API для всех публичных интерфейсов разработанного приложения.
- Исходный код системы или ссылка на репозиторий с исходным кодом.
- Выводы по работе.
Вопросы к защите лабораторной работы:
- Понятие бизнес-логики в программных системах. Уровень бизнес-логики в многоуровневой архитектуре программных систем.
- Основные концепции, используемые при разработке бизнес-логики. CDI, IoC, управление транзакциями, безопасность, распределённая обработка данных.
- Моделирование бизнес-процессов. BPM и BPMN.
- Спецификация BPMN 2.0. Принципы составления и основные элементы моделей бизнес-процессов.
- Объекты потока управления, роли и артефакты в BPMN.
- Использование Spring Framework для реализации бизнес-логики. Реализация CDI и IoC. Связь уровня бизнес-логики с другими уровнями архитектуры программных систем в Spring.
- Spring Boot. Способы конфигурации бинов. Двухфазовый, трёхфазовый конструктор.
- Профили запуска приложения в Spring Boot.
Please enter your variant number to get your task text.
Правила выполнения работы:
- Все изменения, внесённые в реализуемый бизнес-процесс, должны быть учтены в описывающей его модели, REST API и наборе скриптов для тестирования публичных интерфейсов модуля.
- Доработанное приложение необходимо развернуть на сервере
helios
.
Содержание отчёта:
- Текст задания.
- Модель потока управления для автоматизируемого бизнес-процесса.
- Спецификация пользовательских привилегий и ролей, реализованных в приложении.
- UML-диаграммы классов и пакетов разработанного приложения.
- Спецификация REST API для всех публичных интерфейсов разработанного приложения.
- Исходный код системы или ссылка на репозиторий с исходным кодом.
- Выводы по работе.
Вопросы к защите лабораторной работы:
- Понятие транзакции. Особенности реализации транзакций на уровне бизнес-логики, отличия от транзакций на уровне БД.
- Распределённые транзакции, спецификация XA. Реализация в приложениях на базе Java EE и Spring.
- Реализация управления транзакциями в Spring. Аннотация
@Transactional
. Декларативное и программное управления транзакциями. - Java Transaction API. Основные принципы и программные интерфейсы. Работа с JTA в приложениях на базе Spring / Spring Boot.
- Менеджеры транзакций: Atomikos, Bitronix. Использование менеджера транзакций Java EE в приложениях на базе Spring / Spring Boot.
- Разграничение доступа и политики безопасности в корпоративных приложениях. Пользователи, роли и привилегии. Реализация политик безопасности на уровне бизнес-логики.
- Технология Spring Security. Основные понятия, аннотации, конфигурационные файлы и API. Использование на уровне бизнес-логики.
- Технология JAAS. Основные понятия, конфигурационные файлы и API. Использование на уровне бизнес-логики, в т.ч. совместно с Spring Security.
- Способы хранения информации об учётных записях пользователей в приложениях на Java.
- Подходы к реализации аутентификации пользователей в приложениях на Java.
Please enter your variant number to get your task text.
Правила выполнения работы:
- Все изменения, внесённые в реализуемый бизнес-процесс, должны быть учтены в описывающей его модели, REST API и наборе скриптов для тестирования публичных интерфейсов модуля.
- Доработанное приложение необходимо либо развернуть на сервере
helios
, либо продемонстрировать его работоспособность на собственной инфраструктуре обучающегося.
Содержание отчёта:
- Текст задания.
- Модель потока управления для автоматизируемого бизнес-процесса со всеми внесёнными изменениями.
- UML-диаграммы классов и пакетов разработанного приложения.
- Спецификация REST API для всех публичных интерфейсов разработанного приложения.
- Исходный код системы или ссылка на репозиторий с исходным кодом.
- Выводы по работе.
Вопросы к защите лабораторной работы:
- Асинхронное выполнение задач. Преимущества и недостатки, подходы к реализации.
- Спецификация Java Message Service.
- Ресурсы и сообщения JMS. Модели взаимодействия "очередь" и "подписка". Распределённая обработка сообщений.
- Протоколы взаимодействия с очередями сообщений: MQTT, AMQP, STOMP, XMPP. Отправка сообщений с использованием HTTP + WebSockets.
- Apache ActiveMQ. Архитектура, способы взаимодействия, поддерживаемые протоколы, особенности реализации JMS. Протокол OpenWire и его реализации для различных платформ.
- RabbitMQ. Архитектура, способы взаимодействия, поддерживаемые протоколы, особенности реализации JMS.
- Apache Kafka. Особенности обработки сообщений, сходства и отличия с очередями сообщений. Архитектура, особенности построения масштабируемых решений, интеграция с Service Discovery.
- Периодические задачи, планировщики выполнения задач.
- Cron. Архитектура, интеграция в ОС, способы конфигурации, синтаксис Cron Expression.
- Quartz. Архитектура, интеграция с приложением, способы конфигурации.
- Выполнение периодических задач в Java / Jakarta EE и Spring. Java / Jakarta EE Timer Services и Spring
@Scheduled
.
Please enter your variant number to get your task text.
Вопросы к защите лабораторной работы:
- BPM-фреймворки. Особенности реализации бизнес-логики, преимущества и недостатки по сравнению с реализацией логики "вручную".
- Платформа Camunda. Архитектура, состав, поддерживаемые языки, особенности разработки программ.
- Механизмы редактирования бизнес-процессов в Camunda. Camunda Modeler. Использование "внешних" редакторов.
- Роли и права доступа в Camunda.
- Использование Camunda в качестве подсистемы "внутри" приложения на базе Java / Jakarta EE и Spring.
- Интеграция Camunda с "внешними" сервисами (в т.ч. на базе Java / Jakarta EE и Spring). Основные API и адаптеры.
- Транзакции в Camunda. Поддержка JTA.
- Реализация GUI в Camunda. Управление формами.