Лабораторный практикум по дисциплине "Автоматизированные информационные системы в производстве"
Изучение методологии BPMN на примере программного продукта RunaWFE: Лабораторный практикум по дисциплине “Автоматизированные информационные системы в производстве”/ Уфимск. гос. авиац. техн. ун-т; Сост: Г.Г. Куликов, А.Г. Михеев, М. В. Орлов, Р.К. Габбасов, Д.В. Антонов.
Рассматриваются основные элементы и правила нотации BPMN, а также содержатся основные сведения, необходимые для работы с RunaWFE. Приводится порядок выполнения лабораторного практикума.
Предназначен для студентов старших курсов, обучающихся по направлениям подготовки 080801 – «Прикладная информатика (в экономике)» и 230102 – «Автоматизированные системы обработки информации и управления»
Практикум продемонстрирован на open-source версии RunaWFE Free.
Практикум можно аналогично пройти на RunaWFE Professional (скачать) или онлайн версии RunaWFE
Введение
BPMS — Business Process Management System/Suite — системы управления бизнес-процессами.
Одним из способов организации управления бизнес-процессами в компании является использование BPMS. Целями использования таких систем являются повышение качества исполнения бизнес-процессов, сокращение временных затрат, получение возможности контроля деятельности для повышения качества управления, а также непрерывное совершенствование внутренних бизнес-процессов c возможностью их изменения "на лету".
BPMS предназначена для автоматизации бизнес-процессов, но автоматизация бизнес-процессов не является основной целью внедрения системы. С внедрением BPM-системы у компании появляется инструмент для управления бизнес-процессами, что позволяет повысить исполнительскую дисциплину, заставить компанию работать по установленным правилам и непрерывно совершенствовать бизнес-процессы. Бизнес-процессы, без должного управления и контроля, склонны терять свою эффективность.
BPM System в обязательном порядке включает моделирование бизнес-процессов, их исполнение (process engine, процессный “движок”) и мониторинг/анализ. Опционально может включать имитационное моделирование, движок бизнес-правил и многое другое, но в этом случае она уже является BPM Suite.
Одной из информационных технологий реализации является RunaWFE - информационная система управления бизнес-процессами, позволяющая построить эффективное взаимодействие сотрудников компании и контролировать их деятельность с целью повышения качества работы всей компании с помощью ресурсов локальной вычислительной сети организации. То есть система RunaWFE реализует концепцию BPM, что позволяет строить гибкие адаптивные информационные системы, способные оперативно меняться вместе с изменением бизнес-процессов компании.
Система RunaWFE является свободным программным продуктом с открытым кодом. Ее дистрибутивы и исходный код можно скачать через интернет с сайта разработчиков свободного программного обеспечения sourceforge по адресу http://sourceforge.net/projects/runawfe/files. Систему можно свободно установить на любое количество компьютеров без каких-либо ограничений.
Лабораторная работа №1. Ознакомление с интерфейсом системы RunaWFE
Цель работы
Целью работы является ознакомление с интерфейсом и средствами разработчика и пользователя системы RunaWFE.
Теоретические сведения
RunaWFE - свободная, масштабируемая, ориентированная на конечного пользователя система проектирования управления бизнес-процессами предприятия и административными регламентами при их реализации.
Основная задача системы: проектировать модели бизнес-процессов, раздавать задания исполнителям и контролировать их выполнение. Последовательность заданий определяется графом бизнес-процесса, который менеджер или бизнес-аналитик может быстро изменять при помощи редактора бизнес-процессов.
При помощи переменных бизнес-процесса в системе происходит передача информации между исполнителями заданий. В случае хранения документов в переменных бизнес-процесса, систему можно использовать для автоматизации документооборота предприятия.
Система RunaWFE состоит из серверной и клиентской частей.
Компоненты, относящиеся к серверной части системы, это:
- RunaWFE – сервер;
- Бот-станция.
Серверная часть системы может быть установлена на уже существующий аппаратный сервер. Платформой, на которой разворачивается RunaWFE-сервер является сервер JBoss. Пример состава программного обеспечения на сервере показан на рисунке 1.1.
![Practicum1 1.png](/images/6/60/Practicum1_1.png)
На одном сервере может располагаться несколько серверных сетевых приложений. Во избежание конфликтов на уровне сетевого адаптера каждому из приложений присваивается один или несколько портов. В результате сетевой адрес этих приложений выглядит так: IP-адрес:порт. Например, чтобы обратиться к веб-интерфейсу сервера JBoss нужно будет в поле адреса набрать http://192.168.0.1:8080. По умолчанию большинство браузеров (IE, Mozilla Firefox, Opera, Google Chrome и др.) обращаются на порт 80.
Компоненты, относящиеся к клиентской части системы:
- Клиент (web-интерфейс);
- Клиент-оповещатель о поступивших заданиях;
- Графический редактор бизнес-процессов;
- Симулятор бизнес-процессов.
Взаимодействие между клиентской и серверной частями системы производится посредством локальной вычислительной сети, как показано на рисунке 1.2.
![Practicum1 2.png](/images/1/1f/Practicum1_2.png)
При помощи Web-интерфейса системы пользователь может:
- Получать, фильтровать, выполнять задачи, генерируемые экземплярами бизнес-процессов;
- Запускать новые экземпляры бизнес-процессов;
- Просматривать состояния выполняющихся экземпляров бизнес-процессов;
- Загружать файлы-архивы, содержащие определения бизнес-процессов в систему.
При помощи web-интерфейса системы администратор может:
- Создавать-удалять пользователей и группы пользователей;
- Включать (исключать) пользователей в группы;
- Раздавать права на объекты системы пользователям и группам пользователей;
- Принудительно останавливать экземпляры бизнес-процессов.
При помощи графического редактора бизнес-процессов аналитик может разрабатывать бизнес-процессы и экспортировать их в файлы-архивы в файловую систему.
Основные возможности системы:
- Работа с определениями и экземплярами бизнес-процессов;
- Работа со списками заданий;
- Визуализация форм, соответствующих заданиям;
- Работа с системой через web-интерфейс;
- Предоставление возможности работы с системой приложениям специального вида (ботам);
- Авторизация и аутентификация пользователей.
Возможности графического редактора:
- Редактирование графа бизнес-процесса;
- Создание и редактирование графических форм заданий;
- Создание и назначение ролей;
- Создание переменных.
Порядок выполнения работы
'Создание и редактирование пользователей и групп пользователей'
Для начала запустите сервер JBoss, для этого дважды кликните по ярлыку «Start Simulation» на рабочем столе. Запустится сервер JBoss (рис 1.1).
![Practicum1.png](/images/d/d8/Practicum1.png)
Через минуту дважды кликните на ярлыке «Simulation Web Interface». Откроется окно браузера (рис 1.2).
![Practicum2.png](/images/2/2a/Practicum2.png)
В поле «Пользователь» введите Administrator, а в поле «Пароль» - wf и нажмите кнопку «Войти». Перед Вами откроется интерфейс администратора сервера RunaWFE (рис 1.3).
![Practicum3.png](/images/f/ff/Practicum3.png)
Перейдите к списку исполнителей кликнув по надписи «Исполнители» в левой части экрана.
Откроется список исполнителей (рис 1.4)
![Practicum4.png](/images/4/4f/Practicum4.png)
Создайте группу пользователей «Users». Для этого кликните «Создать группу», Откроется интерфейс создания группы (рис 1.5).
![Practicum5.png](/images/7/76/Practicum5.png)
В поле «Имя» введите слово «Users», и добавьте какое-нибудь описание этой группы, после чего нажмите кнопку «Применить».
Далее перейдите на вкладку «Система», кликнув по надписи «Система» в нижней части меню. Откроется интерфейс «Обладатели полномочий» (рис 1.6).
![Practicum6.png](/images/e/ec/Practicum6.png)
Добавьте созданную Вами группу в этот список. Для этого кликните по надписи «Добавить». Откроется список (рис 1.7), в котором найдите группу «Users». Установите напротив этой группы галку и нажмите «Добавить».
![Practicum7.png](/images/8/86/Practicum7.png)
Теперь необходимо выдать группе некоторые полномочия. Для этого кликните по надписи «Система», напротив группы «Users» поставьте галки в столбцах: «Читать», «Входить», «Загружать определение процесса», как показано на рисунке, и нажмите кнопку «Применить».
![Practicum8.png](/images/e/e1/Practicum8.png)
Далее создайте учетные записи пользователей «Студент» и «Преподаватель».
Для создания учетной записи «Преподаватель» откройте интерфейс «Исполнители» и кликните по надписи «Создать пользователя». Откроется форма для ввода данных пользователя. В поле «Имя» введите «Преподаватель», в поле «Код» введите любой код, например 12, остальные поля заполнять необязательно.
![Practicum9.png](/images/9/9e/Practicum9.png)
По окончании заполнения форм нажмите кнопку «Применить».
Для дополнительной правки учетной записи откройте меню «Исполнители». Найдите исполнителя «Преподаватель» и кликните по нему. Откроется интерфейс редактирования учетной записи (рис 1.10).
![Practicum10.png](/images/7/7c/Practicum10.png)
Графа «Свойства исполнителя» является стандартным для учетной записи пользователя, в нем содержится базовое описание пользователя.
В графе «Статус» устанавливается статус пользователя («Активен» или «Не активен»). Его изменяют в случае если сотрудник появляется на рабочем месте, либо не может на нем появиться в силу каких-либо обстоятельств.
В графе «Пароль» введите пароль для пользователя «Преподаватель», знать старый пароль пользователя при этом не требуется. Затем нажмите «Применить». В графе «Группы пользователя» кликните надпись «Добавить» и в открывшемся списке поставьте галку напротив группы «Users», после чего нажмите кнопку «Добавить».
Настройка учетной записи «Преподаватель» завершена.
Аналогичным образом создайте и настройте учетную запись «Студент».
'Разработка модели процесса сдачи лабораторной работы'
Дважды кликните по ярлыку «Process Designer». Загрузится оболочка редактора бизнес-процессов.
![Practicum11.png](/images/c/c9/Practicum11.png)
Создайте новый проект. Для этого в поле «Проводник» кликните правой кнопкой мыши и выберите в выпадающем списке «Новый проект».
В появившемся окне (рис 1.12) введите имя своего проекта и нажмите «Готово».
![Practicum12.png](/images/4/4d/Practicum12.png)
Кликните правой кнопкой мыши по значку Вашего проекта в проводнике. В выпадающем списке выберите «Новый процесс».
В появившемся окне (рис 1.13) введите имя процесса, в поле «Нотация» выберите «bpmn» и нажмите «Готово».
![Practicum13.png](/images/6/67/Practicum13.png)
На палитре выберите элемент «Начало» и нанесите его на схему. Далее выберите элемент «Узел-действие». Разместите элементы на схеме как показано на рис 1.14.
![Practicum14.png](/images/a/a0/Practicum14.png)
Выберите элемент «Окончание» и добавьте его на схему, как показано на рис 1.15
![Practicum15.png](/images/1/12/Practicum15.png)
Далее соедините компоненты схемы при помощи элемента «Переход», как показано на рисунке 1.16
![Practicum16.png](/images/1/19/Practicum16.png)
Чтобы переименовать «Узел-действие» необходимо дважды по нему кликнуть и ввести текст.
Переименуйте узлы-действия как показано на рис 1.17 ниже.
![Practicum17.png](/images/a/a9/Practicum17.png)
Теперь необходимо задать роли каждому узлу. Для этого перейдите на вкладку «Роли», как показано на рисунке 1.18.
![Practicum18.png](/images/d/dc/Practicum18.png)
На вкладке «Роли» нажмите кнопку «Создать», как показано на рисунке 1.19
![Practicum19.png](/images/3/3d/Practicum19.png)
Появится окно создания новой роли, в поле «Название» напишите «Преподаватель-Роль» и нажмите кнопку «OK».
![Practicum20.png](/images/3/32/Practicum20.png)
Далее на вкладке Роли нажмите кнопку «Изменить». В появившемся окне перейдите на вкладку «Группы и пользователи WF».
![Practicum21.png](/images/3/3e/Practicum21.png)
Кликните по ссылке «Настройки соединения». Появится окно настроек соединения с сервером (рис 1.22).
![Practicum22.png](/images/0/03/Practicum22.png)
В поле URL сервера введите: jnp://127.0.0.1:1099, режим аутентификации выберите «По логину и паролю». В поле «Логин» введите Administrator, в поле «Пароль» – wf.
Нажмите кнопку «Проверить соединение» и, в случае успешной проверки, нажмите «Синхронизация», после чего нажмите «Готово».
Далее кликните по надписи «пользователь», потом по появившейся ссылке «Выбрать». В появившемся окне (рис 1.23) выберите пользователя «Преподаватель» и нажмите кнопку «OK».
Нажмите кнопку «OK» в поле «Редактирование инициализатора роли».
Аналогичным образом создайте роль «Студент-Роль».
В основном окне перейдите на вкладку «Граф».
Кликните правой кнопкой мыши на элемент «Начало», расположенный на схеме.
![Practicum24.png](/images/6/6a/Practicum24.png)
В выпадающем списке (рис 1.24) выберите «Роли» и «Преподаватель».
Аналогичным образом присвойте роли остальным блокам так, чтобы на первых двух блоках роль принадлежала учетной записи «Студент», а на остальных «Преподаватель» (рис 1.25).
![Practicum25.png](/images/2/2d/Practicum25.png)
Далее кликните правой кнопкой мыши на элемент «Начало», расположенный на схеме. В выпадающем списке (рис 1.26) выберите элемент «Форма» и «Проверка переменных формы».
![Practicum26.png](/images/0/09/Practicum26.png)
В появившемся окне (рис 1.27) нажмите «Да».
![Practicum27.png](/images/1/14/Practicum27.png)
В появившемся окне (рис 1.28) нажмите кнопку «Готово».
![Practicum28.png](/images/c/c4/Practicum28.png)
Повторите данную операцию для остальных элементов, кроме элемента «Окончание».
1.3.3 Создание форм для элементов.
Для того, чтобы создать форму кликните правой кнопкой мыши на элементе «Начало», в выпадающем списке (рис 1.29) и выберите «Форма» и «Создать форму».
![Practicum29.png](/images/2/29/Practicum29.png)
В появившемся окне (рис 1.30) выберите тип @HTML форма + freemarker теги» и нажмите кнопку OK.
![Practicum30.png](/images/6/6a/Practicum30.png)
Откроется окно HTML редактора (рис 1.31). Напишите в нем «Выдать задание на лабораторную работу».
![Practicum31.png](/images/4/4a/Practicum31.png)
Закройте окно HTML редактора кликнув крестик в верхней части экрана (рис 1.32)
![Practicum32.png](/images/f/f1/Practicum32.png)
Система предложит Вам сохранить изменения (рис 1.33), нажмите Да.
![Practicum33.png](/images/3/35/Practicum33.png)
Аналогичным образом создайте формы для каждого из элементов схемы, кроме элемента «Окончание».
В форме элемента «Получить задание на лабораторную работу» напишите: «Получить задание на лабораторную работу».
В форме элемента «Выполнить лабораторную работу» напишите: «Выполнить лабораторную работу».
В форме элемента «Проверить лабораторную работу» напишите: «Проверить лабораторную работу».
В форме элемента «Поставить отметку о сдаче лабораторной работы» напишите: «Поставить отметку о сдаче лабораторной работы».
Сохраните проект нажав кнопку «Сохранить» (рис 1.34) в верхней части экрана.
![Practicum34.png](/images/d/da/Practicum34.png)
'Экспорт процесса'
Экспортируйте процесс в *.par файл. Для этого нажмите кнопку «Экспорт процессов» (рис 1.35) в верхней части экрана.
![Practicum35.png](/images/d/de/Practicum35.png)
Откроется окно «Экспорт архива» (рис 1.36), нажмите кнопку «Обзор…»
![Practicum36.png](/images/9/9a/Practicum36.png)
В появившемся окне «Сохранить как» (рис 1.37) выберите путь сохранения и имя файла, после чего нажмите кнопку «Сохранить» и кнопку «Готово» в предыдущем окне.
![Practicum37.png](/images/8/8b/Practicum37.png)
'Загрузка процесса на сервер'
На рабочем столе откройте ярлык «Simulation Web Interface» и войдите в систему под логином «Преподаватель».
В меню кликните по надписи «Определения процессов», в открывшейся странице кликните по надписи «Загрузить определение процесса».
На открывшейся странице (рис 1.38) в качестве типа процесса выберите «Script». Затем нажмите кнопку «Выберите фай»л и в появившемся окне укажите созданный вами архив, после чего нажмите кнопку «Выполнить».
![Practicum38.png](/images/8/8d/Practicum38.png)
'Проигрывание загруженного процесса'
На открывшейся странице выберите определение процесса, которое Вы загрузили.
![Practicum39.png](/images/6/6f/Practicum39.png)
Процесс запустится после того, как на странице стартовой формы (рис 1.40) Вы нажмете кнопку «Запустить».
![Practicum40.png](/images/a/a4/Practicum40.png)
Запустите еще одно окно обозревателя и перейдите по адресу http://localhost:8080/wfe/. Войдите в систему под учетной записью студента.
У Вас появилась задача «Получить задание на лабораторную работу», щелкнув по ней вы можете изучить форму задания и выполнить его. Выполните все задания для учетной записи «Студент», после чего авторизуйтесь в системе под учетной записью «Преподаватель» и выполните все задания для учетной записи «Преподаватель».
Требования к содержанию и оформлению отчета
В результате выполнения лабораторной работы должен быть сформирован отчет.
В отчете должны содержаться следующие выходные данные:
1) Цель
2) Все созданные модели с пояснение и описанием
3) Скриншоты всех основных действий, совершенных в процессе выполнения задания с пояснениями
4) Список пользователей(ролей) с описанием их полномочий
5) Список использованных переменных в виде даталогической модели
6) Результаты исполнения
7) Выводы
Контрольные вопросы
-
- Что такое BPM?
- В чем отличие BPM от BPMN?
- Из каких компонентов состоит RunaWFE?
- Что такое Web-интерфейс?
- Какие вкладки содержит учетная запись Администратора на сервере?
- Что такое роль? Какими они бывают?
- Что такое форма?
Лабораторная работа №2. Построение Процесса сдачи лабораторной работы
Цель работы
Целью работы является освоение простейших приемов выполнения функций с элементами нотации BPMN, поддерживаемых конструктором процессов системы RunaWFE.
Теоретические сведения
В Workflow-системе деятельность организации представляется в виде множества взаимосвязанных бизнес-процессов. Бизнес-процесс – это упорядоченный по времени набор заданий, выполняемых как людьми, так и информационными системами предприятия, направленный на достижение заранее заданной бизнес цели за известное время.
Бизнес-процесс можно представить в виде математического графа – набора вершин, называемых «узлами-действиями» и «маршрутными узлами», соединенных между собой возможными переходами. По этим переходам перемещаются точки исполнения (управления). При переходе точки исполнения (управления) в конкретный узел-действие соответствующему исполнителю направляется задание.
Порядок выполнения работы
Откройте Редактор процессов. Приведите построенную вами ранее схему к схеме, указанной на рис 2.5.
Обратите внимание на разницу между элементами, обозначающими Разделение и Слияние, а также, что один из элементов имеет таймер (рис 2.1)
![Practicum2 1.png](/images/c/c1/Practicum2_1.png)
Элемент с таймером делается следующим образом: Кликните по элементу правой кнопкой мыши и в выпадающем списке выберите Добавить таймер.
Значение таймера задается в свойствах элемента (рис 2.2).
Имена переходов также задаются в их свойствах.
Для редактирования элемента Ветвление необходимо иметь в системе хотя бы одну переменную. Для этого перейдите на вкладку Переменные в нижней части экрана.
![Practicum2 3.png](/images/3/3d/Practicum2_3.png)
Нажмите кнопку Создать, в появившемся окне введите наименование кнопки, например Оценка_Отчета, в качестве формата укажите StringFormat.
Далее вернитесь на вкладку Граф и кликните правой кнопкой мыши по верхнему элементу Ветвление, откроется окно редактора Bean Shell (рис 2.4).
![Practicum2 4.png](/images/1/1a/Practicum2_4.png)
![Practicum2 5.png](/images/1/13/Practicum2_5.png)
Напротив каждого из путей выберите переменную Оценка_Отчета и соответствующее для данного пути значение этой переменной.
Аналогично редактируется и второй элемент ветвления, только в качестве пути по умолчанию укажите Хорошо (рис 2.6).
![Practicum2 6.png](/images/3/38/Practicum2_6.png)
Далее создайте формы и файлы проверки переменных для каждого из элементов схемы, кроме элементов Проверить лабораторную работу, Принять решение и Окончание аналогично примеру из предыдущего задания.
Чтобы изменить форму для элемента Проверить лабораторную работу кликните по ней правой кнопкой мыши и выберите в выпадающем списке Форма и Форма(Внутренний редактор).
![Practicum2 7.png](/images/1/16/Practicum2_7.png)
Используя элемент Кнопка выбора приведите форму к виду, указанному на рисунке выше.
При размещении этого элемента на форме появляется окно его настроек (рис 2.8).
![Practicum2 8.png](/images/0/0f/Practicum2_8.png)
В качестве имени выберите Оценка_Отчета. В поле Значение введите Хорошо для одной кнопки и Плохо для другой.
Аналогичным образом создайте и приведите к следующему виду (рис 2.9) форму элемента Принять решение.
![Practicum2 9.png](/images/5/5a/Practicum2_9.png)
Для элемента Проверить лабораторную работу создайте файл проверки переменных, если он еще не был создан, далее двойным кликом поставьте галку рядом с переменной Оценка_Отчета, как показано на рис 2.10.
![Practicum2 10.png](/images/5/5a/Practicum2_10.png)
Аналогичную операцию произведите с формой Принять решение.
Далее, пользуясь знаниями, полученными на предыдущем занятии экспортируйте Ваш проект в архив и загрузите этот архив на сервер. Затем запустите процесс на выполнение и проиграйте его.
Требования к содержанию и оформлению отчета
В результате выполнения лабораторной работы должен быть сформирован отчет.
В отчете должны содержаться следующие выходные данные:
1) Цель;
2) Все созданные модели с пояснение и описанием;
3) Скриншоты всех основных действий, совершенных в процессе выполнения задания с пояснениями;
4) Список пользователей(ролей) с описанием их полномочий;
5) Список использованных переменных в виде даталогической модели;
6) Результаты исполнения;
7) Выводы;
Контрольные вопросы
- Какие компоненты нотации BPMN используются в RunaWFE?
- Что такое валидация?
- Какие компоненты можно поместить на форму?
- Где можно просмотреть ход исполнения модели?
Лабораторная работа №3. Декомпозиция: подпроцессы и мульти-действия
Цель работы
Целью работы является освоение простейших приемов выполнения функций декомпозиции BPM-моделей процессов в среде RunaWFE.
Теоретические сведения
При построении модели процесса зачастую требуется описать ряд сложно-структурированных процессов, при этом требуется избегать перегрузки основного графа. Для решения данной задачи применяется метод декомпозиции, который заключается в разложении текущей задачи на части. В спецификации нотации BPM и, в частности, в редакторе RunaWFE используются два метода декомпозиции, это Подпроцессы и Мульти-действия.
Подпроцессом называется элемент, внутренняя структура которого была смоделирована с использованием элементов BPM нотации, таких как блоки, переходы, события, последовательные потоки и пр. Подпроцесс отображается в виде графического объекта в составе процесса, но также он может быть отображен «раскрытым» для отображения процесса более низкого уровня внутри данного подпроцесса.
Мульти-действием (или множественным действием) называется элемент, который позволяет создавать множественные экземпляры подпроцесса. Экземпляры могут запускаться как последовательно, так и параллельно. В редакторе RunaWFE реализован только параллельный запуск экземпляров подпроцесса.
Порядок выполнения работы
Откройте Редактор Процессов и перейдите в нем к проекту из предыдущей лабораторной работы.
Создайте в нем новый процесс, кликнув правой кнопкой мыши в Проводнике по проекту и выбрав в выпадающем меню Новый процесс (рис 3.1).
![Rl31.png](/images/7/70/Rl31.png)
В появившемся окне укажите имя для данного процесса и установите нотацию bpmn (рис 3.2), после чего нажмите Готово.
![Rl32.png](/images/5/5e/Rl32.png)
Перейдите к процессу из предыдущей лабораторной работы. Выделите при помощи нажатой клавиши Ctrl на схеме процесса блоки Задать дополнительные вопросы, Ответить на вопросы и Принять решение (рис 3.3).
![Rl33.png](/images/2/2d/Rl33.png)
Кликните правой кнопкой мыши о одному из выделенных блоков и выберите пункт Копировать (рис 3.4).
![Rl34.png](/images/f/fc/Rl34.png)
Перейдите к новому процессу. Кликните правой кнопкой мыши по области редактирования и нажмите Вставить. К появившимся элементам добавьте элементы начала и окончания процесса (рис 3.5).
![Rl35.png](/images/3/36/Rl35.png)
Кликните правой кнопкой мыши по блоку Задать дополнительные вопросы и выберите Удалить (рис 3.6). Далее присвойте элементу начала процесса роль Преподаватель, создайте для него форму и файл валидации (данные действия рассматривались в предыдущих лабораторных работах). Обратите внимание, что переменные процесса скопировались вместе с блоками.
![Rl36.png](/images/9/91/Rl36.png)
Перейдите к основному процессу. Удалите скопированные блоки и на их месте создайте элемент типа Подпроцесс и укажите переходы к нему как показано на рис. В свойствах перехода tr1 укажите наименование Плохо. Задайте блоку название Проверить знания студента (рис 3.7).
![Rl37.png](/images/c/c1/Rl37.png)
Далее зайдите в свойства элемента Ветвление. Для перехода tr1 или Плохо восстановите условия перехода.
Кликните правой кнопкой мыши по блоку Проверить знания студента и выберите Подпроцесс (рис 3.8).
![Rl38.png](/images/e/ea/Rl38.png)
В появившемся окне выберите в выпадающем списке Название процесса процесс, который создали. Далее требуется добавить переменную для связи процесса с подпроцессом, для этого внизу того же окна нажмите кнопку Добавить. В появившемся окне в обоих списках выберите переменную Оценка_Отчета (названия переменных совпадают из-за переноса блоков из одного процесса в другой). В группе Использование поставьте галочки напротив полей чтение и запись (рис 3.9).
![Rl39.png](/images/4/46/Rl39.png)
Далее сохраните и экспортируйте оба процесса.
Запустите сервер-симулятор процессов. Авторизуйтесь в системе под администратором и перейдите к списку процессов (пункт Меню Запустить процесс). Если в списке присутствуют процессы, созданные в прошлых работах, то удалите их.
Загрузите экспортированные процессы на сервер (рис 3.10).
![Rl310.png](/images/0/01/Rl310.png)
Запустите основной процесс и проиграйте его таким образом, чтобы задействовать подпроцесс. Перейдите к списку запущенных процессов. Обратите внимание, что было запущено два процесса (рис_3.11).
![Rl311.png](/images/0/01/Rl311.png)
Завершив процесс, откройте редактор процессов и перейдите в нем к графу основного процесса. Выделите на графе блоки Ответить на контрольные вопросы и Выполнить лабораторную работу вместе с элементами Разделение и Слияние (рис 3.12) и удалите их.
![Rl312.png](/images/3/38/Rl312.png)
Выберите на палитре элемент Мульти-действие (рис 3.12) и разместите его на месте удаленных элементов (рис 3.13)
![Rl313.png](/images/7/7e/Rl313.png)
Соедините новый элемент мульти-действия с остальными элементами схемы, как показано на рис 3.14. Задайте данному элементу имя Выполнить лабораторную работу
![Rl314.png](/images/e/e9/Rl314.png)
Создайте новый процесс в том же проекте, в котором находится основной (рис 3.15).
![Rl315.png](/images/e/eb/Rl315.png)
В новом процессе создайте граф, состоящий из элементов начала, окончания и узла-действия. Соедините их как показано на рис. 3.16 и задайте элементу узел-действие наименование Выполнить задание.
![Rl316.png](/images/3/36/Rl316.png)
Перейдите на вкладку Роли и создайте там новую роль, назовите ее Студент-Роль (рис 3.17).
![Rl317.png](/images/4/40/Rl317.png)
Перейдите на вкладку Переменные и создайте новую переменную, задайте ей имя QuestNum и формат StringFormat (рис_3.18). Эта переменная будет определять номер задания.
![Rl318.png](/images/1/1d/Rl318.png)
Перейдите к графу процесса и присвойте роль Студент-Роль элементу начала и блоку Выполнить задание (рис 3.19).
![Rl319.png](/images/a/a0/Rl319.png)
Создайте форму для элемента начала. Добавьте на форму текст «Изучить теорию по заданию №». Далее добавьте вывод переменной, нажав кнопку [[Image:]], помеченную как Вывод переменной. Задайте этой переменной имя QuestNum и установите формат Однострочный (рис 3.20.
![Rl320.png](/images/3/3d/Rl320.png)
Результат должен получиться как на рис 3.21.
![Rl321.png](/images/9/9b/Rl321.png)
Перейдите к основному процессу и откройте вкладку Переменные. Добавьте переменную с названием NumberOfQuests, задайте ей формат StringFormat (рис 3.22).
![Rl322.png](/images/0/09/Rl322.png)
Также добавьте переменную с названием QuestArray и задайте ей тип StringArrayFormat (рис 3.23).
![Rl323.png](/images/3/38/Rl323.png)
Откройте редактирование формы для элемента начала процесса (рис 3.24).
![Rl324.png](/images/c/cd/Rl324.png)
Добавьте на форму текст Выберите число задач в работе и добавьте на форму элемент Список, обозначенный символом .
В появившемся окне, в поле Имя выберите переменную NumberOfQuests, размер поля установите в одну линию, в поле Доступные варианты установите значения полей Текст и Значение как показано на рис 3.25. Число доступных вариантов должно быть не менее пяти.
![Rl325.png](/images/0/04/Rl325.png)
В результате форма должна выглядеть как на рис. 3.26.
![Rl326.png](/images/c/c8/Rl326.png)
Далее требуется передать блоку Выполнить лабораторную работу массив строковых значений. Для каждого элемента данного массива будет создан отдельный экземпляр процесса. Переменная массива уже создана, это QuestArray, остается передать в нее массив значений. Для создания и передачи массива используем обработчики. Убедитесь, что у вас установлена галочка в поле Вид->Показать обработчики (рис 3.27).
![Rl327.png](/images/a/a0/Rl327.png)
Создайте обработчик для блока Получить задание на лабораторную работу (рис 3.28).
![Rl328.png](/images/7/7c/Rl328.png)
Выделите созданный обработчик, в нижней части редактора процессов задайте значение свойству Класс обработчика, для этого нажмите кнопку с символом многоточия (рис 3.29).
![Rl329.png](/images/5/5a/Rl329.png)
В окне Выбор типа выберите ExecuteFormulaActionHandler (рис_3.30).
![Rl330.png](/images/9/9b/Rl330.png)
Нажмите на кнопку с символом многоточия напротив свойства Конфигурация. Введите в поле конфигурации следующий код:
QuestArray = “”
Данным кодом производится инициализация массива (рис_3.31).
![Rl331.png](/images/1/10/Rl331.png)
Создайте в том же блоке еще один обработчик (рис 3.32).
![Rl332.png](/images/e/ee/Rl332.png)
Укажите ему тип BSHActionHandler (рис 3.33).
![Rl333.png](/images/b/b4/Rl333.png)
В конфигурации обработчика введите следующий код:
int n = Integer.parseInt(NumberOfQuests);
String[] array = new String[n];
for (int i=0; i < n; i++){
array[i] =" "+(i+1);
};
QuestArray = array;
При помощи данного кода производится заполнение массива QuestArray.
Вызовите окно настройки подпроцесса для блока Выполнить лабораторную работу (рис 3.34).
![Rl334.png](/images/c/cc/Rl334.png)
В списке Название подпроцесса выберите подпроцесс, для которого создавали переменную QuestNum.
Нажмите кнопку Добавить для добавления новой переменной. В появившемся окне установите имя переменной в процессе QuestArray и имя переменной в подпроцессе – QuestNum, режим использования - установите чтение (рис 3.35).
![Rl335.png](/images/b/b2/Rl335.png)
Далее добавьте еще одну переменную, для нее установите имя переменной в процессе Студент и имя переменной в подпроцессе –Студент-Роль, режим использования - установите чтение (рис 3.36). Это требуется для делегирования роли в подпроцесс.
![Rl336.png](/images/f/fe/Rl336.png)
Сохраните проект и экспортируйте оба процесса на сервер. Проиграйте несколько вариантов сценариев и убедитесь в отсутствии ошибок в работе.
Требования к содержанию и оформлению отчета
В результате выполнения лабораторной работы должен быть сформирован отчет.
В отчете должны содержаться следующие выходные данные:
1) Цель;
2) Все созданные модели с пояснением и описанием;
3) Скриншоты всех основных действий, совершенных в процессе выполнения задания с пояснениями;
4) Список пользователей(ролей) с описанием их полномочий;
5) Список использованных переменных в виде даталогической модели;
6) Результаты исполнения;
7) Выводы.
Контрольные вопросы
- Чем отличается подпроцесс от мульти-действия?
- Чем определяется количество процессов, запущенных при помощи мульти-действия?
- В каком формате хранится массив данных, передаваемых в мульти-действие?
- Для чего требуется передавать роль участника процесса в качестве переменной?
Лабораторная работа №4. Моделирование собственного процесса
Цель работы
Целью работы является закрепление знаний о создании BPM-моделей процессов в среде RunaWFE.
Теоретические сведения
Веб-сервис – это метод платформонезависимого взаимодействия систем. Может осуществлятся по протоколу HTTP и обменивается информацию в формате XML. Для реализации удаленного вызова команд используется SOAP-протокол. Данный протокол используется поверх протокола HTTP.
SOAP (Simple Object Access Protocol – простой протокол доступа к объектам) – протокол обмена структурированными сообщениями в распределённой вычислительной среде. Используется для обмена произвольными сообщениями в формате XML (рис 4.1).
![Rl41.png](/images/0/00/Rl41.png)
Для каждого веб-сервиса есть уникальный документ WSDL, описывающий web-сервис. Он определяет расположение сервиса и операции (или методы), предоставляемые им.
WSDL (Web Services Description Language) – язык описания веб-сервисов и доступа к ним, основанный на языке XML.
При запуске RunaWFE–сервера, автоматически происходит запуск веб-сервисов. Веб-сервисы находятся в двух подсистемах: подсистеме авторизации и подсистеме workflow.
Доступ к веб-сервисам из подсистемы авторизации осуществляется с помощью запросов, идентифицируемых строкой: http://host:port/af.webservice/Имя_веб-сервиса. Для доступа к веб-сервисам из подсистемы workflow используется следующий URI: http://host:port/wf.webservice/Имя_веб-сервиса.
Порядок выполнения работы
Согласно одной из тем из списка разработайте модель веб-сервиса и реализуйте ее в пакете Runa:
- Монтаж видеоролика;
- Редактирование фотографии;
- Экзамен по вождению;
- Продажа товара;
- Написание программы;
- Посадка самолета;
- Взлет самолета;
- Прибытие поезда на вокзал;
- Поиск информации в Интернете и ее применение;
- Настройка межсетевого экрана;
- Выбор комплектующих к ПК и его сборка;
- Ремонт в квартире;
- Получение допуска к сессии;
- Получение допуска к экзамену;
- Приготовление пищи;
- Перевод текста при помощи программы-переводчика;
- Обмен шифрованными сообщениями (асимметричное шифрование RSA);
- Конвейерная сборка;
- Сборка авиамодели;
- Лечение болезни;
- Составление маршрута;
- Сканирование документов;
- Покупка билетов в кино;
- Строительство дома.
Также можно использовать свою тему, предварительно согласовав ее с преподавателем.
Модель должна содержать как минимум один подпроцесс, одно мульти-действие и одно ветвление.
Полученную модель процесса загрузите на сервер Runa, либо на сервер-симулятор и продемонстрируйте ее работоспособность преподавателю.
Требования к содержанию и оформлению отчета
В результате выполнения лабораторной работы должен быть сформирован отчет.
В отчете должны содержаться следующие выходные данные:
1) Цель;
2) Все созданные модели с пояснением и описанием;
3) Список пользователей(ролей) с описанием их полномочий;
4) Список использованных переменных в виде даталогической модели;
5) Результаты исполнения;
6) Выводы;
Контрольные вопросы
- Что такое веб-сервис?
- Что такое SOAP?
- Что такое WSDL?
- Каким образом запускаются сервисы в системе Runa?