Как создать исполняемый вечный процесс в BPMN?(Прочитано 15482 раз)
Добрый день коллеги.
Возник вопрос, как в BPMN сделать исполняемый "вечный процесс".
Для примера рассмотрим модель бизнес процесса «Регистрация на рейс» из Вики
http://upload.wikimedia.org/wikipedia/commons/1/1f/Check-in_BPMN_example.png

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

Рисую в BizAgi, но как я понимаю это не важно, вопрос по самой нотации BPMN.



Не по теме.
Не знаю в деталях, что BPMN думает по этому поводу, НО!
приведенный пример не является "вечным процессом".
Во-первых, существует событие "начало регистрации на рейс"
во-вторых, существует событие "конец регистрации на рейс" (как вариант может быть рассмотрено событие "все пассажиры зарегистрированы на рейс")
т.е., формально говоря, процесс не вечный.
на языке алгоритмизации подобные процессы могут быть названы циклическими за счет многократного выполнения экземпляра подпроцесса "регистрация пассажира" между событиями начало/конец.

P.S. также позволю себе внести поправку по формулировке  "может быть любое числе одновременного исполнения процессов". возможно я запутался в этом нагромождении несогласованных между собой слов, но скажу. в одно время (т.е. для одного пассажира) выполняется один экземпляр процесса, для следующего пассажира - порождается новый. свидетельством тому, например, посадочный талон - уникальный для каждого пассажира. в противном случае в один и тот же талон вписывали бы всех пассажиров.
Лью воду...



Цитировать
Цель диаграммы верхнего уровня не показать как работает ваш процесс, а показать как все элементы сквозного процесса работают вместе.

Это отсюда

Но можно и поиском пользоваться Как моделировать в BPMN правильно?

Цитировать
Что лучше использовать pool или lane для отображения участников процесса (сотрудников, отделы, службы, системы)?

А вот это - дело вкуса или избранного стиля моделирования. Право на жизнь могут иметь разные стили (естественно, при условии непротиворечия стандарту и внутренней логичности). Я лично использую дорожки для отображения участников и пулы для отображения процессов. Могу объяснить почему именно так, но не в формате комментария на форуме, извините.

Так почему же не изобразить Ожидание клиента в виде пула?
«Сделай первый шаг, и ты поймешь, что не все так страшно.»
-- L. A. Seneca --



Благодарю за ответы.

Водолей Согласен, условия примера требуют уточнения, внесения допущений.
Предположим: Стоек, как в реальном аэропорту, несколько. Пусть их будет необходимо и достаточно для обслуживания всех поступающий клиентов. Рейсы на которые требуется регистрация есть всегда. Стойки регистрации открыта всегда 24/7/365. Сотрудники всегда на рабочем месте. Так же не будет обращать внимания на освободившиеся (просто завершаем процесс).

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

Признаю, что сам запутался что мне именно требуется:
1.Циклический. Процесс выполнился, вернулся на Шаг 1.
либо
2.Множество экземпляров одновременно исполняемых процессов.

Предлагаю рассмотреть оба варианта. 

Thyestes
У Вас процесс не циклический.
Для вашего случая, необходимо, что бы поиск кандидатов был постоянным.
Как понять "Неудача" после найти кандидата? Процесс вернется на Шаг "Поиск кандидата?
Может ли быть процесс без завершения (этапа End)?



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

Не надо никаких вечных процессов, не надо никаких ожиданий клиента.

Появление клиента - это событие, запускающее процесс (т.е. стартовое).

Сколько появлений - столько экземпляров процесса.



2 Trigger
еще раз повторю, что BPMN не совсем моя тема. Но очевидно, что процессы - не ваша.
Ваши варианты (циклический, множество) могут соответствовать алгоритму программы (это парадигма, в которой, видимо, вы думаете).
С процессами дело обстоит несколько иначе. Не нужно описывать никаких множеств экземпляров процессов и т.п. ерунды. Процесс он на то и процесс, чтобы для любого количества экземпляров, которое только может встретиться в жизни, нарисовать ОДНУ схему (описание) процесса. Всё! Все остальные экземпляры должны будут в точности его повторять - в этом суть процессного подхода! Всё всегда одинаково! Нет затрат на варианты, так как все варианты учтены в процессе.

Общетеоретически, правда, можно посчитать, что персонал или стойка регистрации (не процесс!) находится в двух состояниях: ожидание клиента или регистрация клиента на рейс. Но с точки зрения процесса это несущественно. Это из-за использования всё той же программистской парадигмы... о которой нужно поскорее забыть при работе с процессами...

Поэтому присоединюсь к коллеге АБ насчет события запуска. Но не уверен, как это можно показать в BPMN (в ARIS могу пояснить, но не думаю, что они далеко друг от друга отстоят). Ну и, разумеется, считать число появлений и экземпляров совершенно не нужно, разве что для планирования числа стоек и количества обслуживающего персонала, но тогда придется кое-что еще посчитать.

Лью воду...



АБ Анатолий, благодарю за ответ.
Если быть ближе к реальной задачи, то процесс инициируется появлением/загрузкой определенного файла. Требуется обработать файл по определенному алгоритму, количество файлов изначально неизвестно. Как правильно изобразить данный процесс по BPMN? У меня первая задача "Загрузка файла" далее поиск необходимых сведений в файле.

Водолей С bpmn я сталкиваюсь впервые, пока он для очень интересен и запутан.

-----------------------------
upd! Нашел! Варианты начального события: По условию!

Спасибо, думаю тему можно закрывать.
p.s.Не могли бы также ответить по использованию подпроцессов http://www.uml2.ru/forum/index.php?topic=4614.0
« Последнее редактирование: 07 Февраля 2012, 01:58:36 от Trigger »



Если быть ближе к реальной задачи, то процесс инициируется появлением/загрузкой определенного файла. Требуется обработать файл по определенному алгоритму, количество файлов изначально неизвестно. Как правильно изобразить данный процесс по BPMN? У меня первая задача "Загрузка файла" далее поиск необходимых сведений в файле.

upd! Нашел! Варианты начального события: По условию!

Нет, ваш случай - это старт по приходу сообщения.



Спасибо Анатолий.
Всплывающие подсказки очень полезная вещь. Надо какое время, что бы сориентироваться в логике bpmn.
Что условие "получения файла" не условие, а сообщение, которое поступает от участника.



Спасибо Анатолий.
Всплывающие подсказки очень полезная вещь. Надо какое время, что бы сориентироваться в логике bpmn.
Что условие "получения файла" не условие, а сообщение, которое поступает от участника.

Русская локализация в Bizagi Modeler сделана кое как, поэтому использовать всплывающие подсказки для изучения BPMN не советую. Лучше уж пройдите онлайновый курс по BPMN на elearning.bizagi.com. (На английском языке, требуется регистрация, бесплатно.)




 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19