Решение проблемы организации быстрой связи между исполнителями при работе с бизнес-процессами, для внедрения в свободной системе RunaWFE (OSSDEVCONF-2019) — различия между версиями

Материал из 0x1.tv

;{{SpeakerInfo}}: 
* {{Speaker|Михаил Румянцев}}
* {{Speaker|Александр Хайдаров}}
<blockquote>
При работе с Бизнес процессами в среде RunaWFE, существует потребность в online взаимодействии пользователей. В докладе
представляется решение данной задачи в виде программного модуля чата с использованием технологий WebSoket и Ajax,
объясняется функционал и способ его реализации.
</blockquote>

{{VideoSection}}
{{vimeoembed|366003503|800|450}}
<!-- 
{{youtubelink|}} -->|2PUEzlWc6MM}}


{{SlidesSection}}
[[File:Решение проблемы организации быстрой связи между исполнителями при работе с бизнес-процессами для RunaWFE (OSSDEVCONF-2019).pdf|left|page=-|300px]]

{{----}}

== Thesis ==

Версия 14:09, 24 ноября 2019

Докладчик

При работе с Бизнес процессами в среде RunaWFE, существует потребность в online взаимодействии пользователей. В докладе представляется решение данной задачи в виде программного модуля чата с использованием технологий WebSoket и Ajax, объясняется функционал и способ его реализации.

Видео

on youtube


Презентация

Решение проблемы организации быстрой связи между исполнителями при работе с бизнес-процессами для RunaWFE (OSSDEVCONF-2019).pdf Решение проблемы организации быстрой связи между исполнителями при работе с бизнес-процессами для RunaWFE (OSSDEVCONF-2019).pdf Решение проблемы организации быстрой связи между исполнителями при работе с бизнес-процессами для RunaWFE (OSSDEVCONF-2019).pdf Решение проблемы организации быстрой связи между исполнителями при работе с бизнес-процессами для RunaWFE (OSSDEVCONF-2019).pdf Решение проблемы организации быстрой связи между исполнителями при работе с бизнес-процессами для RunaWFE (OSSDEVCONF-2019).pdf Решение проблемы организации быстрой связи между исполнителями при работе с бизнес-процессами для RunaWFE (OSSDEVCONF-2019).pdf Решение проблемы организации быстрой связи между исполнителями при работе с бизнес-процессами для RunaWFE (OSSDEVCONF-2019).pdf Решение проблемы организации быстрой связи между исполнителями при работе с бизнес-процессами для RunaWFE (OSSDEVCONF-2019).pdf Решение проблемы организации быстрой связи между исполнителями при работе с бизнес-процессами для RunaWFE (OSSDEVCONF-2019).pdf Решение проблемы организации быстрой связи между исполнителями при работе с бизнес-процессами для RunaWFE (OSSDEVCONF-2019).pdf Решение проблемы организации быстрой связи между исполнителями при работе с бизнес-процессами для RunaWFE (OSSDEVCONF-2019).pdf Решение проблемы организации быстрой связи между исполнителями при работе с бизнес-процессами для RunaWFE (OSSDEVCONF-2019).pdf Решение проблемы организации быстрой связи между исполнителями при работе с бизнес-процессами для RunaWFE (OSSDEVCONF-2019).pdf Решение проблемы организации быстрой связи между исполнителями при работе с бизнес-процессами для RunaWFE (OSSDEVCONF-2019).pdf

Thesis

При работе с Бизнес процессами в среде RunaWFE, существует потребность в online взаимодействии пользователей. В докладе представляется решение данной задачи в виде программного модуля чата с использованием технологий WebSoket и Ajax, объясняется функционал и способ его реализации.

Системы управления бизнес-процессами генерируют задания исполнителям в соответствии с движением точек управления по схеме бизнес-процесса и таким образом координируют совместную работу сотрудников, а также информационных систем предприятия. При этом у исполнителей текущих заданий часто возникает потребность получения дополнительной информации от пользователей, выполнивших какие-то иные задания бизнес-процесса. Для обмена информацией между исполнителями заданий в системе управления бизнес-процессами RunaWFE, был разработан модуль online взаимодействия участников экземпляра бизнес-процесса в виде чата.

Ввиду того, что система RunaWFE изменяется под потребности конкретных пользователей (компаний) было решено выполнить чат в виде полностью автономного модуля-тега, который будет легко встроить в любую html страницу. Для того чтобы окно чата не заслоняло нужный контент страницы он выполнен в виде кнопки, вызывающей открытие перемещаемого немодального окна поверх страницы, у которого есть 2 варианта размера.

Для администрирования/модерации чата была введена система chat_id, которая позволяет объединять чаты с разных страниц в общие чаты. Администратор может отслеживать происходящее во всех подконтрольных ему чатах одновременно, не отвлекаясь на постоянные переключения между окнами.

Ввиду того что бизнес-процесс может длиться долгое время, была реализована система цитирования сообщений, которая позволяет создавать многоуровневые вложения цитат, подгружаемые по мере необходимости и позволяющие пользователям просмотреть о чем шла речь в переписке без долгого поиска среди ленты старых сообщений.

Для передачи информации между чатом и сервером изначально применялись Ajax-запросы т.к. они уже применялись в системе повсеместно, однако ввиду необходимости инициирования получения информации сервером был добавлен web-socket для обмена сообщениями, а Ajax применяется только для подгрузки цитируемых сообщений с целью экономии трафика и улучшения производительности чата.

Хранение сообщений в базе данных выполнено с использованием библиотеки hibernate и разделено на таблицы (см. Табл. 1)

[rum_tbl0]

Таблицы БД чата
название таблицы описание
CHAT_MESSAGE хранение текста и автора сообщений
CHAT_MESSAGE_FILES хранит файлы для контроля занимаемой памяти без удаления всего сообщения
CHATS_USER_INFO для хранения индивидуальных настроек пользователя в конкретном чате и номера последнего непрочитанного им сообщения

Функциональность текущего решения:

Кнопка «Открыть чат» — открывающая чат встраивается в html страницу (см. Рисунок 1)

Кнопка «Открыть чат»

Встроенный в код страницы тег чата:

На страницу добавляется три js-скрипта (в дальнейшем планируется их объединить), один css и тег с chat id (identifiableId) в желаемое местоположение кнопки открытия чата. (см. Рисунок 2)

Внешний вид чата в развернутом виде
  • кнопка слева-сверху изменяет размер чата (на скриншете размер большой)
  • кнопка «удалить» внизу сообщений присутствует только у адинистратора
  • кнопка «ответить» добавляет цитирование сообщений, цитируемое сообщние появляется в нижней части чата, ограничение — около 100 единовременно цитируемых на 1 уровне вложения (т.е. не считая цитируемые в них сообщения), что является избыточным и позволяет пользователю об этом не беспокоится.

Для прикрепления файлов предусмотрено 2 способа:

  1. кнопка «выбрать файлы»
  2. перетаскивание файла в область ввода сообщений (см. Рисунок 3)
Перетаскивание файла в область ввода сообщений
Отладка и тестирование
Браузер Результат
Google Chrome работает нормально
Yandex browser работает нормально
FireFox работает нормально
Opera работает нормально
Microsoft Edge (платформа Chromium) работает нормально
Microsoft Edge (движок EdgeHTML) имеется проблема с миганием при drag-and-drop файлов, альтернативный способ прикрепления кнопкой «обзор» работает. наблюдается смещение размеров сообщений (только визуальный баг)

Планы доработки чата:

  • Ввести в чат систему вывода картинок, видео и таблиц в браузере (без их загрузки).
  • Передача в чате ссылок на элементы бизнес-процесса для перехода к ним прямо из чата.
  • Поправить смещения кнопки «ответить» при большом количестве развернутых уровней цитирования.
Решение проблемы организации быстрой связи между исполнителями при работе с бизнес-процессами для RunaWFE (OSSDEVCONF-2019)!.jpg

Примечания и ссылки

  • Михеев А. Г. Системы управления бизнес-процессами и административными регламентами на примере свободной программы RunaWFE — 2-е изд. — М.:ДМК Пресс, 2016
  • Илюшечкин В. М. Основы использования и проектирования баз данных