EgorMlt/3 - БЛПС
2022-06-29 21:31:26 +03:00
..
README.md Update README.md 2022-05-18 20:10:22 +03:00
БЛПСЛаб1.docx Бизнес-логика программных систем | 3 курс 2022-03-12 19:24:10 +03:00
БЛПСЛаб2.docx Бизнес-логика программных систем | 3 курс 2022-03-29 16:45:40 +03:00
БЛПСЛаб3.docx Бизнес-логика программных систем | 3 курс 2022-04-22 17:13:47 +03:00
БЛПСЛаб4.docx Бизнес-логика программных систем | 3 курс 2022-05-18 20:21:30 +03:00
БПЛС - Вопросы к рубежному тестированию.pdf Бизнес-логика программных систем | 3 курс 2022-06-29 21:31:26 +03:00

Лабораторная работа №1

https://ru.wikipedia.org/
Описать бизнес-процесс в соответствии с нотацией BPMN 2.0, после чего реализовать его в виде приложения на базе Spring Boot. Порядок выполнения работы:

  1. Выбрать один из бизнес-процессов, реализуемых сайтом из варианта задания.
  2. Утвердить выбранный бизнес-процесс у преподавателя.
  3. Специфицировать модель реализуемого бизнес-процесса в соответствии с требованиями BPMN 2.0.
  4. Разработать приложение на базе Spring Boot, реализующее описанный на предыдущем шаге бизнес-процесс. Приложение должно использовать СУБД PostgreSQL для хранения данных, для всех публичных интерфейсов должны быть разработаны REST API.
  5. Разработать набор curl-скриптов, либо набор запросов для REST клиента Insomnia для тестирования публичных интерфейсов разработанного программного модуля. Запросы Insomnia оформить в виде файла экспорта.
  6. Развернуть разработанное приложение на сервере helios.

Лабораторная работа №2

Доработать приложение из лабораторной работы #1, реализовав в нём управление транзакциями и разграничение доступа к операциям бизнес-логики в соответствии с заданной политикой доступа. Управление транзакциями необходимо реализовать следующим образом:

  1. Переработать согласованные с преподавателем прецеденты (или по согласованию с ним разработать новые), объединив взаимозависимые операции в рамках транзакций.
  2. Управление транзакциями необходимо реализовать с помощью Spring JTA.
  3. В реализованных (или модифицированных) прецедентах необходимо использовать программное управление транзакциями.
  4. В качестве менеджера транзакций необходимо использовать Atomikos.

Разграничение доступа к операциям необходимо реализовать следующим образом:

  1. Разработать, специфицировать и согласовать с преподавателем набор привилегий, в соответствии с которыми будет разграничиваться доступ к операциям.
  2. Специфицировать и согласовать с преподавателем набор ролей, осуществляющих доступ к операциям бизнес-логики приложения.
  3. Реализовать разработанную модель разграничений доступа к операциям бизнес-логики на базе Spring Security. Информацию об учётных записях пользователей необходимо сохранять в файле XML, для аутентификации использовать JWT.

Лабораторная работа №3

Доработать приложение из лабораторной работы #2, реализовав в нём асинхронное выполнение задач с распределением бизнес-логики между несколькими вычислительными узлами и выполнением периодических операций с использованием планировщика задач.
Требования к реализации асинхронной обработки:

  1. Перед выполнением работы необходимо согласовать с преподавателем набор прецедентов, в реализации которых целесообразно использование асинхронного распределённого выполнения задач. Если таких прецедентов использования в имеющейся бизнес-процесса нет, нужно согласовать реализацию новых прецедентов, доработав таким образом модель бизнес-процесса из лабораторной работы #1.
  2. Асинхронное выполнение задач должно использовать модель доставки "очередь сообщений".
  3. В качестве провайдера сервиса асинхронного обмена сообщениями необходимо использовать очередь сообщений на базе Apache ActiveMQ.
  4. Для отправки сообщений необходимо использовать протокол XMPP. Библиотеку для реализации отправки сообщений можно взять любую на выбор студента.
  5. Для получения сообщений необходимо использовать слушателя сообщений JMS на базе Spring Boot (@JmsListener).

Требования к реализации распределённой обработки:

  1. Обработка сообщений должна осуществляться на двух независимых друг от друга узлах сервера приложений.
  2. Если логика сценария распределённой обработки предполагает транзакционность выполняемых операций, они должны быть включены в состав распределённой транзакции.
    Требования к реализации запуска периодических задач по расписанию:
  3. Согласовать с преподавателем прецедент или прецеденты, в рамках которых выглядит целесообразным использовать планировщик задач. Если такие прецеденты отсутствуют -- согласовать с преподавателем новые и добавить их в модель автоматизируемого бизнес-процесса.
  4. Реализовать утверждённые прецеденты с использованием планировщика задач Spring (@Scheduled).

Лабораторная работа №4

Переработать программу, созданную в результате выполнения лабораторной работы #3, следующим образом:

  1. Для управления бизнес-процессом использовать BPM-движок Camunda.
  2. Заменить всю "статическую" бизнес-логику на "динамическую" на базе BPMS. Весь бизнес-процесс, реализованный в ходе выполнения предыдущих лабораторных работ (включая разграничение доступа по ролям, управление транзакциями, асинхронную обработку и периодические задачи), должен быть сохранён!.
  3. BPM-движок должен быть встроен в веб-приложение (embedded mode).
  4. Для описания бизнес-процесса необходимо использовать приложение Camunda Modeler.
  5. Пользовательский интерфейс приложения должен быть сгенерирован с помощью генератора форм Camunda.
  6. Итоговая сборка должно быть развёрнута на сервере helios под управление сервера приложений Apache Tomcat.

Правила выполнения работы:

  1. Описание бизнес-процесса необходимо реализовать на языке BPMN 2.0.
  2. Необходимо интегрировать в состав процесса, управляемого BPMS, всё, что в принципе возможно в него интегрировать. Если какой-то из компонентов архитектуры приложения (например, асинхронный обмен сообщениями с помощью JMS) не поддерживается, необходимо использовать для интеграции с этой подсистемой соответствующие API и адаптеры.
  3. Распределённую обработку задач и распределённые транзакции на BPM-движок переносить не требуется