Lab

Лабораторные работы

bl -- labwork1 -- title

Lab Work #1

bl-portlet-lab1

Please enter your variant number to get your site name.

bl -- labwork1 -- task

Описать бизнес-процесс в соответствии с нотацией BPMN 2.0, после чего реализовать его в виде приложения на базе Spring Boot.

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

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

Содержание отчёта:

  1. Текст задания.
  2. Модель потока управления для автоматизируемого бизнес-процесса.
  3. UML-диаграммы классов и пакетов разработанного приложения.
  4. Спецификация REST API для всех публичных интерфейсов разработанного приложения.
  5. Исходный код системы или ссылка на репозиторий с исходным кодом.
  6. Выводы по работе.

Вопросы к защите лабораторной работы:

  1. Понятие бизнес-логики в программных системах. Уровень бизнес-логики в многоуровневой архитектуре программных систем.
  2. Основные концепции, используемые при разработке бизнес-логики. CDI, IoC, управление транзакциями, безопасность, распределённая обработка данных.
  3. Моделирование бизнес-процессов. BPM и BPMN.
  4. Спецификация BPMN 2.0. Принципы составления и основные элементы моделей бизнес-процессов.
  5. Объекты потока управления, роли и артефакты в BPMN.
  6. Использование Spring Framework для реализации бизнес-логики. Реализация CDI и IoC. Связь уровня бизнес-логики с другими уровнями архитектуры программных систем в Spring.
  7. Spring Boot. Способы конфигурации бинов. Двухфазовый, трёхфазовый конструктор.
  8. Профили запуска приложения в Spring Boot.

bl -- labwork2 -- title

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

bl-portlet-lab2

Please enter your variant number to get your task text.

bl -- labwork2 -- task and questions

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

  1. Все изменения, внесённые в реализуемый бизнес-процесс, должны быть учтены в описывающей его модели, REST API и наборе скриптов для тестирования публичных интерфейсов модуля.
  2. Доработанное приложение необходимо развернуть на сервере helios.

Содержание отчёта:

  1. Текст задания.
  2. Модель потока управления для автоматизируемого бизнес-процесса.
  3. Спецификация пользовательских привилегий и ролей, реализованных в приложении.
  4. UML-диаграммы классов и пакетов разработанного приложения.
  5. Спецификация REST API для всех публичных интерфейсов разработанного приложения.
  6. Исходный код системы или ссылка на репозиторий с исходным кодом.
  7. Выводы по работе.

Вопросы к защите лабораторной работы:

  1. Понятие транзакции. Особенности реализации транзакций на уровне бизнес-логики, отличия от транзакций на уровне БД.
  2. Распределённые транзакции, спецификация XA. Реализация в приложениях на базе Java EE и Spring.
  3. Реализация управления транзакциями в Spring. Аннотация @Transactional. Декларативное и программное управления транзакциями.
  4. Java Transaction API. Основные принципы и программные интерфейсы. Работа с JTA в приложениях на базе Spring / Spring Boot.
  5. Менеджеры транзакций: Atomikos, Bitronix. Использование менеджера транзакций Java EE в приложениях на базе Spring / Spring Boot.
  6. Разграничение доступа и политики безопасности в корпоративных приложениях. Пользователи, роли и привилегии. Реализация политик безопасности на уровне бизнес-логики.
  7. Технология Spring Security. Основные понятия, аннотации, конфигурационные файлы и API. Использование на уровне бизнес-логики.
  8. Технология JAAS. Основные понятия, конфигурационные файлы и API. Использование на уровне бизнес-логики, в т.ч. совместно с Spring Security.
  9. Способы хранения информации об учётных записях пользователей в приложениях на Java.
  10. Подходы к реализации аутентификации пользователей в приложениях на Java.

bl -- labwork3 -- title

Lab Work #3

bl-portlet-lab3

Please enter your variant number to get your task text.

bl -- labwork3 -- task and questions

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

  1. Все изменения, внесённые в реализуемый бизнес-процесс, должны быть учтены в описывающей его модели, REST API и наборе скриптов для тестирования публичных интерфейсов модуля.
  2. Доработанное приложение необходимо либо развернуть на сервере helios, либо продемонстрировать его работоспособность на собственной инфраструктуре обучающегося.

Содержание отчёта:

  1. Текст задания.
  2. Модель потока управления для автоматизируемого бизнес-процесса со всеми внесёнными изменениями.
  3. UML-диаграммы классов и пакетов разработанного приложения.
  4. Спецификация REST API для всех публичных интерфейсов разработанного приложения.
  5. Исходный код системы или ссылка на репозиторий с исходным кодом.
  6. Выводы по работе.

Вопросы к защите лабораторной работы:

  1. Асинхронное выполнение задач. Преимущества и недостатки, подходы к реализации.
  2. Спецификация Java Message Service.
  3. Ресурсы и сообщения JMS. Модели взаимодействия "очередь" и "подписка". Распределённая обработка сообщений.
  4. Протоколы взаимодействия с очередями сообщений: MQTT, AMQP, STOMP, XMPP. Отправка сообщений с использованием HTTP + WebSockets.
  5. Apache ActiveMQ. Архитектура, способы взаимодействия, поддерживаемые протоколы, особенности реализации JMS. Протокол OpenWire и его реализации для различных платформ.
  6. RabbitMQ. Архитектура, способы взаимодействия, поддерживаемые протоколы, особенности реализации JMS.
  7. Apache Kafka. Особенности обработки сообщений, сходства и отличия с очередями сообщений. Архитектура, особенности построения масштабируемых решений, интеграция с Service Discovery.
  8. Периодические задачи, планировщики выполнения задач.
  9. Cron. Архитектура, интеграция в ОС, способы конфигурации, синтаксис Cron Expression.
  10. Quartz. Архитектура, интеграция с приложением, способы конфигурации.
  11. Выполнение периодических задач в Java / Jakarta EE и Spring. Java / Jakarta EE Timer Services и Spring @Scheduled.

bl -- labwork4 -- title

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

bl-portlet-lab4

Please enter your variant number to get your task text.

bl -- labwork4 -- questions

Вопросы к защите лабораторной работы:

  1. BPM-фреймворки. Особенности реализации бизнес-логики, преимущества и недостатки по сравнению с реализацией логики "вручную".
  2. Платформа Camunda. Архитектура, состав, поддерживаемые языки, особенности разработки программ.
  3. Механизмы редактирования бизнес-процессов в Camunda. Camunda Modeler. Использование "внешних" редакторов.
  4. Роли и права доступа в Camunda.
  5. Использование Camunda в качестве подсистемы "внутри" приложения на базе Java / Jakarta EE и Spring.
  6. Интеграция Camunda с "внешними" сервисами (в т.ч. на базе Java / Jakarta EE и Spring). Основные API и адаптеры.
  7. Транзакции в Camunda. Поддержка JTA.
  8. Реализация GUI в Camunda. Управление формами.