Реализация внутреннего хранилища бизнес-объектов в свободной системе управления бизнес-процессами RunaWFE Free (Михаил Алексеев, OSEDUCONF-2021) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) (→Thesis) |
||
;{{SpeakerInfo}}: {{Speaker|Михаил Алексеев}}
<blockquote>
</blockquote>
{{VideoSection}}
{{vimeoembed|541382201|800|450}}
{{youtubelink|}}
{{SlidesSection}}
[[File:Реализация внутреннего хранилища бизнес-объектов в свободной системе управления бизнес-процессами RunaWFE Free.pdf|left|page=-|300px]]
{{----}}
== Thesis ==
{{----}}
[[File:{{#setmainimage:Реализация внутреннего хранилища бизнес-объектов в свободной системе управления бизнес-процессами RunaWFE Free!.jpg}}|center|640px]]
При внедрении RunaWFE на предприятиях было выявлено, что наибольшую сложность составляет организация работы с слоем бизнес-объектов.
Слой бизнес-объектов "— это информация о ресурсах организации, предназначенная для персистентного хранения. Например, данные о банкоматах, товарах и пр.
Жизненный цикл бизнес-объектов выходит за рамки жизненного цикла бизнес-процессов. Таким образом, с одним и тем же бизнес-объектом могут взаимодействовать разные экземпляры бизнес-процессов.
Для решения проблемы в системе RunaWFE Free было решено реализовать внутреннее хранилище бизнес-объектов, удовлетворяющее следующим требованиям:
# В качестве персистентного хранилища должны использоваться Excel файлы.
# Внутреннее хранилище должно автоматически разворачиваться при установке RunaWFE Free, не требуя от пользователей дополнительных действий, но быть кастомизируемым под нужды пользователей.
# Внутреннее хранилище должно быть реализовано с минимальными трудозатратами, используя существующие компоненты RunaWFE.
Хранилище на основе Excel файлов было выбрано в учебных целях, чтобы студенты финансово-бухгалтерских специальностей могли легко проверить результаты работы бизнес-процессов, не обладая специфическими знаниями теории баз данных.
Работу с внутренним хранилищем было решено реализовать при помощи следующих элементов:
# Обработчик внутреннего хранилища.
# Иконка data store из BPMN и пунктирная стрелка.
# Признак хранения во внутреннем хранилище для пользовательских типов данных.
Обработчик может быть сконфигурирован для выполнения 4 операций: insert, select, update, delete.
Выбор подмножества операций должен происходить автоматически при связывании иконки data store с обработчиком внутреннего хранилища с помощью пунктирной стрелки:
<pre>data store → обработчик = {select}
обработчик → data store = {insert, update, delete}</pre>
В качестве основы для обработчика внутреннего хранилища был взят существующий обработчик внешнего хранилища, конфигурация которого для операции update представлена на Рис. 1.
Способ конфигурации обработчика внешнего хранилища обладает следующими недостатками:
* пользователю предлагается слишком много полей для ввода, что затрудняет использование обработчика внешнего хранилища новыми пользователями;
* поле «Условие» принимает на ввод строку определённого формата, в котором легко допустить ошибку;
* выбраны не самые удачные названия настроек для секции «Атрибут», которые меняют своё значение в зависимости от выполняемой операции, что ещё сильнее усложняет понимание конфигурации;
[[File:alekseev-img001.eps|thumb|none|alt=Конфигурация обработчика внешнего хранилища|Конфигурация обработчика внешнего хранилища]]
Для переиспользования серверного кода обработчика внешнего хранилища было решено сохранить формат конфигурации обработчика внешнего хранилища, улучшив его usability в обработчике внутреннего хранилища.
В ходе анализа конфигурации обработчика внешнего хранилища были определены следующие этапы улучшения usability,:
# Автоматически заполнять параметр конфигурации «Входной файл» (источник данных) специальным значением ''InternalStorage'' при связывании обработчика внутреннего хранилища с иконкой data store, таким образом убрав данный параметр из конфигурации.
# Упразднить секцию «Атрибут», введя параметр «Пользовательский тип данных», который может принимать любое значение из множества пользовательских типов данных, имеющих признак хранения во внутреннем хранилище.
# Минимизировать количество отображаемых параметров конфигурации, оставив только необходимые для совершения операции. В таблице 1 представлено соответствие необходимых параметров для каждой из операций.
# Типизировать параметр «Условие» на основании выбранного пользовательского типа данных.
{|
|align="center"| Операция
|align="center"| Предикаты
|align="center"| Переменная с данными/
|-
|align="center"|
|align="center"|
|align="center"| переменная-результат
|-
|align="center"| insert
|align="center"| -
|align="center"| +
|-
|align="center"| select
|align="center"| +
|align="center"| +
|-
|align="center"| update
|align="center"| +
|align="center"| +
|-
|align="center"| delete
|align="center"| +
|align="center"| -
|}
[[File:alekseev-img002|thumb|none|alt=Дерево предикатов|Дерево предикатов]]
Параметр «Условие» в конфигурации обработчика внешнего хранилища представляет собой строку вида
<pre>[атрибут_пользовательского_типа_данных] операция_сравнения @переменная_сравнения
операция_объединяющая_предикаты
[атрибут_пользовательского_типа_данных] операция_сравнения @переменная_сравнения
…</pre>
Которая может быть описана с помощью бинарного дерева, представленного на Рис. 2.
Логическое представление дерева предикатов позволяет осуществлять его обработку, в том числе типизацию отдельных предикатов.
При реализации описанной функциональности были использованы следующие технологии:
* Java 8;
* Apache Poi 3.17;
* Apache Struts 1.3.8;
* Apache Commons 2.6;
* Spring 3.1.2;
* Lombok 1.18;
* Dom4j 1.6.1;
* Eclipse Tycho 1.5.1.
=== Результаты ===
На Рис 3–6 представлены скриншоты элементов системы, использующихся для работы с внутренним хранилищем. Модифицированные конфигурации обработчиков не допускают ввода произвольного текста, дают только возможность выбора из существующих элементов. Структура конфигураций сильно упрощена за счёт использования направленности соединения задачи-сценария с иконкой базы данных пунктирной стрелкой.
[[File:alekseev-img003.eps|thumb|none|alt=Схема бизнес-процесса с использованием BPMN data store.|Схема бизнес-процесса с использованием BPMN data store.]]
[[File:alekseev-img004.eps|thumb|none|alt=Признак хранения во внутреннем хранилище.|Признак хранения во внутреннем хранилище.]]
[[File:alekseev-img005.eps|thumb|none|alt=Конфигурация обработчика внутреннего хранилища.|Конфигурация обработчика внутреннего хранилища.]]
[[File:alekseev-img006.eps|thumb|none|alt=Содержимое внутреннего хранилища.|Содержимое внутреннего хранилища.]]
=== Заключение ====
В результате реализации внутреннего хранилища пользователям стал доступен удобный способ работы с слоем бизнес-объектов, позволяющий в декларативной форме описывать операции над бизнес-объектами и скрывающий низкоуровневые детали реализации.
<span>9</span> Михеев А. Г., Орлов М. В. Система управления бизнес-процессами и административными регламентами. // Программные продукты и системы, № 3, 2011 Ссылка на сайт проекта RunaWFE Free: http://runawfe.org/rus
{{LinksSection}}
<!-- <blockquote>[©]</blockquote> -->
<references/>
[[Категория:OSEDUCONF-2021]]
[[Категория:Draft]]
[[Категория:СПО в образовании]] |
Версия 08:18, 24 августа 2021
- Докладчик
- Михаил Алексеев
Видео
Презентация
Thesis
При внедрении RunaWFE на предприятиях было выявлено, что наибольшую сложность составляет организация работы с слоем бизнес-объектов.
Слой бизнес-объектов "— это информация о ресурсах организации, предназначенная для персистентного хранения. Например, данные о банкоматах, товарах и пр.
Жизненный цикл бизнес-объектов выходит за рамки жизненного цикла бизнес-процессов. Таким образом, с одним и тем же бизнес-объектом могут взаимодействовать разные экземпляры бизнес-процессов.
Для решения проблемы в системе RunaWFE Free было решено реализовать внутреннее хранилище бизнес-объектов, удовлетворяющее следующим требованиям:
- В качестве персистентного хранилища должны использоваться Excel файлы.
- Внутреннее хранилище должно автоматически разворачиваться при установке RunaWFE Free, не требуя от пользователей дополнительных действий, но быть кастомизируемым под нужды пользователей.
- Внутреннее хранилище должно быть реализовано с минимальными трудозатратами, используя существующие компоненты RunaWFE.
Хранилище на основе Excel файлов было выбрано в учебных целях, чтобы студенты финансово-бухгалтерских специальностей могли легко проверить результаты работы бизнес-процессов, не обладая специфическими знаниями теории баз данных.
Работу с внутренним хранилищем было решено реализовать при помощи следующих элементов:
- Обработчик внутреннего хранилища.
- Иконка data store из BPMN и пунктирная стрелка.
- Признак хранения во внутреннем хранилище для пользовательских типов данных.
Обработчик может быть сконфигурирован для выполнения 4 операций: insert, select, update, delete.
Выбор подмножества операций должен происходить автоматически при связывании иконки data store с обработчиком внутреннего хранилища с помощью пунктирной стрелки:
data store → обработчик = {select} обработчик → data store = {insert, update, delete}
В качестве основы для обработчика внутреннего хранилища был взят существующий обработчик внешнего хранилища, конфигурация которого для операции update представлена на Рис. 1.
Способ конфигурации обработчика внешнего хранилища обладает следующими недостатками:
- пользователю предлагается слишком много полей для ввода, что затрудняет использование обработчика внешнего хранилища новыми пользователями;
- поле «Условие» принимает на ввод строку определённого формата, в котором легко допустить ошибку;
- выбраны не самые удачные названия настроек для секции «Атрибут», которые меняют своё значение в зависимости от выполняемой операции, что ещё сильнее усложняет понимание конфигурации;
Для переиспользования серверного кода обработчика внешнего хранилища было решено сохранить формат конфигурации обработчика внешнего хранилища, улучшив его usability в обработчике внутреннего хранилища.
В ходе анализа конфигурации обработчика внешнего хранилища были определены следующие этапы улучшения usability,:
- Автоматически заполнять параметр конфигурации «Входной файл» (источник данных) специальным значением InternalStorage при связывании обработчика внутреннего хранилища с иконкой data store, таким образом убрав данный параметр из конфигурации.
- Упразднить секцию «Атрибут», введя параметр «Пользовательский тип данных», который может принимать любое значение из множества пользовательских типов данных, имеющих признак хранения во внутреннем хранилище.
- Минимизировать количество отображаемых параметров конфигурации, оставив только необходимые для совершения операции. В таблице 1 представлено соответствие необходимых параметров для каждой из операций.
- Типизировать параметр «Условие» на основании выбранного пользовательского типа данных.
Операция | Предикаты | Переменная с данными/ |
переменная-результат | ||
insert | - | + |
select | + | + |
update | + | + |
delete | + | - |
Параметр «Условие» в конфигурации обработчика внешнего хранилища представляет собой строку вида
[атрибут_пользовательского_типа_данных] операция_сравнения @переменная_сравнения операция_объединяющая_предикаты [атрибут_пользовательского_типа_данных] операция_сравнения @переменная_сравнения …
Которая может быть описана с помощью бинарного дерева, представленного на Рис. 2.
Логическое представление дерева предикатов позволяет осуществлять его обработку, в том числе типизацию отдельных предикатов.
При реализации описанной функциональности были использованы следующие технологии:
- Java 8;
- Apache Poi 3.17;
- Apache Struts 1.3.8;
- Apache Commons 2.6;
- Spring 3.1.2;
- Lombok 1.18;
- Dom4j 1.6.1;
- Eclipse Tycho 1.5.1.
Результаты
На Рис 3–6 представлены скриншоты элементов системы, использующихся для работы с внутренним хранилищем. Модифицированные конфигурации обработчиков не допускают ввода произвольного текста, дают только возможность выбора из существующих элементов. Структура конфигураций сильно упрощена за счёт использования направленности соединения задачи-сценария с иконкой базы данных пунктирной стрелкой.
Заключение =
В результате реализации внутреннего хранилища пользователям стал доступен удобный способ работы с слоем бизнес-объектов, позволяющий в декларативной форме описывать операции над бизнес-объектами и скрывающий низкоуровневые детали реализации.
9 Михеев А. Г., Орлов М. В. Система управления бизнес-процессами и административными регламентами. // Программные продукты и системы, № 3, 2011 Ссылка на сайт проекта RunaWFE Free: http://runawfe.org/rus