powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Вопросы по спецификации BPMN
16 сообщений из 66, страница 3 из 3
Вопросы по спецификации BPMN
    #35286251
АБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmМожно использовать API ОС, можно надстройку над ним в форме какой-либо платформы. Да, причем жизнь постепенно меняется таким образом - раньше писали (ну или портировали) софт под определенную ОС/версию, а теперь все чаще (по крайней мере в новых проектах систем корпоративного масштаба) вопрос об ОС практически не стоит: выбирать надо между Java и .NET (ну и их версиями). Косвенно при этом правда выбор ОС присутствует (если .NET то понятно примерно какая будет ОС). Но если Java, то вопрос о выборе ОС снимается (или откладывается до начала эксплуатации). Дрейф в таком направлении понятен: у платформ по сравнению с ОС сервисы более высокоуровневые, стандартизованные, от аппаратуры зависимость еще меньше. Такая получается "ОС поверх ОС".
...
Рейтинг: 0 / 0
Вопросы по спецификации BPMN
    #35287072
VlP2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmitrygusevИ если честно, я не могу представить себе каким образом по одной ветке одновременно несколько токенов может проходить? Возможность такой конструкции (см. приложенный файл) - это один из моментов, который вроде бы действительно неясен из спецификации.
На мой взгляд, это скорее можно, чем нельзя. Впрочем, я не удивлюсь, если в более чем 300-страничной спецификации Вы найдете обоснование того, что это недопустимо.

dmitrygusevp.s. Видимо я зря привел пример с Java, с программированием этот номер здесь не прошел :) А зря... Вы привели слишком примитивный пример, попробуйте добавить параллельность. Ну хоть так: java-процесс запускается и разветвляется на два потока (thread), в которых выполняется один и тот же или разные методы. При этом у каждого свое завершение на своей строчке кода и в свой момент времени, но если не вызывать System.Exit(), процесс не закончится, пока не завершатся оба потока.

А насчет End Event продолжение следует...
...
Рейтинг: 0 / 0
Вопросы по спецификации BPMN
    #35287429
dmitrygusev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы привели слишком примитивный пример, попробуйте добавить параллельность. Ну хоть так: java-процесс запускается и разветвляется на два потока (thread), в которых выполняется один и тот же или разные методы. При этом у каждого свое завершение на своей строчке кода и в свой момент времени, но если не вызывать System.Exit(), процесс не закончится, пока не завершатся оба потока.
Ну это просто, например:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
import java.util.Random;

public class Main {

	public static void main(String[] args) throws Exception {
		
		Runnable r = new Runnable() {
			public void run() {
				int n =  0 ;
				int limit = new Random().nextInt( 5 ) +  5 ;
				int delay = new Random().nextInt( 1000 );
				
				String name = Thread.currentThread().getName();
				System.out.println(name + " limit = " + limit);
				System.out.println(name + " delay = " + delay);
				
				do {
					try {
						System.out.println(name + "; n = " + n);
						
						Thread.sleep(delay);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
					
					if (new Random().nextDouble() >  0 . 9 )
					{
						System.out.println(name + " Terminate End Event");
						System.exit( 0 );
					}
					
					if (new Random().nextDouble() <  0 . 1 )
					{
						System.out.println(name + " Empty End Event");
						return;
					}
				} while (n++ < limit);
			}
		};
		
		Thread t1 = new Thread(r, "t1");
		Thread t2 = new Thread(r, "t2");
		
		t1.setDaemon(true);
		t2.setDaemon(true);
		
		t1.start();
		t2.start();
		
		//	Ждем пока процессы выполнятся
		
		t1.join();
		t2.join();
		
		return;
	}
	
}

Вот что на выходе:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
t1 limit =  7 
t1 delay =  839 
t1; n =  0 
t2 limit =  6 
t2 delay =  786 
t2; n =  0 
t2; n =  1 
t1 Empty End Event
t2; n =  2 
t2; n =  3 
t2 Terminate End Event

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
t1 limit =  9 
t1 delay =  394 
t1; n =  0 
t2 limit =  8 
t2 delay =  944 
t2; n =  0 
t1; n =  1 
t1; n =  2 
t2 Empty End Event
t1; n =  3 
t1; n =  4 
t1; n =  5 
t1; n =  6 
t1; n =  7 
t1; n =  8 
t1; n =  9 

Ну и т.д.

Позже нарисую BPMN, который будет делать тоже самое.
...
Рейтинг: 0 / 0
Вопросы по спецификации BPMN
    #35287658
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зря вы думаете, что потоки в программировании можно сопоставлять (и планировать) с бизнес-процессами в BPM.
Не тот уровень
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Вопросы по спецификации BPMN
    #35287754
dmitrygusev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123зря вы думаете, что потоки в программировании можно сопоставлять (и планировать) с бизнес-процессами в BPM.
Не тот уровень
Причем тут уровень? Процессы они и в африке процессы.

p.s.
И если уж на то пошло, то бизнес-процессы - они не в BPM, а в деятельности предприятия. Для BPM может быть и нужны высокоуровневые процессы, а для иллюстрации спецификации можно обойтись и этим уровнем.
...
Рейтинг: 0 / 0
Вопросы по спецификации BPMN
    #35287959
fedotxxl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята, ребята, харе спорить, помогите лучше с вопросами...

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

авторAn exclusive merge gateway is actually redundant, since if the sequence
flows into the gateway represent exclusive alternative paths, the uncontrolled flow (without
the gateway) means the same thing, and if the sequence flows in are not exclusive
alternatives, the exclusive gateway is illegal.

Как быть тогда в моей ситуации?

И ещё вопросик - что будет, если у меня есть задача, в неё приходит токен, задача запускается. Варианты:
1. Задача успевает исполниться, а потом в неё приходит другой токен
2. Задача не успевает исполниться и в неё приходит другой токен
...
Рейтинг: 0 / 0
Вопросы по спецификации BPMN
    #35287984
fedotxxl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По XOR гетвею снимаю вопрос - для этого используется Complex гетвей
...
Рейтинг: 0 / 0
Вопросы по спецификации BPMN
    #35288003
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedotxxl
1. Задача успевает исполниться, а потом в неё приходит другой токен
2. Задача не успевает исполниться и в неё приходит другой токен
2 аспекта - снизу и сверху.

снизу:
- если тип задачи поддерживает данную возможность (у программистов - многопотоковая), то возникнет подзадача. Если неподдерживается (у программистов - ОБЫЧНОЕ приложение), то пока не закончится задача, она даже не узнает что токен пришёл.

сверху:
- как нарисуешь картинки :)
...
Рейтинг: 0 / 0
Вопросы по спецификации BPMN
    #35288509
VlP2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fedotxxlВопрос по XOR объединяющему гетвею. Если у меня есть несколько параллельных потоков, то каким образом я могу дождаться одного, запустить следущую актвиность без опаски, что мои оставшиеся параллельные активности доберутся до запущенной. Я думал, что XOR объединяющий гетвей это делает - ждет одного токена и блокирует остальные. Но судя по всемя я ошибался... авторAn exclusive merge gateway is actually redundant, since if the sequence
flows into the gateway represent exclusive alternative paths, the uncontrolled flow (without
the gateway) means the same thing, and if the sequence flows in are not exclusive
alternatives, the exclusive gateway is illegal.
Этот вопрос тоже не решается спецификацией BPMN, остается уповать на здравый смысл и более опытных коллег. Цитату Вы привели из Брюса?

Вот здесь есть обзор wf-паттернов, с точки зрения реализуемости в BPMN:
On the Suitability of BPMN for Business Process Modelling . Ваша ситуация называется "WCP9 Дисриминатор". И реализация ее с помощью XOR-слияния не предлагается.

fedotxxlИ ещё вопросик - что будет, если у меня есть задача, в неё приходит токен, задача запускается. Варианты:
1. Задача успевает исполниться, а потом в неё приходит другой токен
2. Задача не успевает исполниться и в неё приходит другой токен
Из того, что токен уже "пришел" (сначала первый, потом второй), я заключаю, что вопрос "дискриминации" решен в пользу ее отсутствия, и токены входят в задачу независимо. А значит и исполняться задача будет для каждого токена совершенно независимо. И вообще, исполняться будет не задача , а экземпляр задачи , собственный для каждого токена.
BPMN1.0,стр.67Note – If the Task has multiple incoming Sequence Flow, then this is considered uncontrolled flow. This means that when a Token arrives from one of the Paths, the Task will be instantiated. It will not wait for the arrival of Tokens from the other paths. If another Token arrives from the same path or another path, then a separate instance of the Task will be created.
...
Рейтинг: 0 / 0
Вопросы по спецификации BPMN
    #35288641
VlP2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АБ VlP2008а какие задачи Вы имеете в виду? Если рисовать BPMN-модели, чтобы обсуждать, утверждать и вешать на стену, то скорее всего BPMN вообще не нужен, есть и более простые "нотации". А если задача заключается в разработке графической модели исполняемого процесса, тогда Вы ну никак не обойдетесь без "нюансов". Я имел в виду разработку модели исполняемого процесса. А замечание мое сводится к тому, что среди нюансов, без которых не обойтись в практической деятельности, будет больше нюансов реализации конкретной BPMS, чем нюансов стандарта BPMN. Но ведь "нюансы реализации конкретной BPMS" можно вынести на диаграмму разве что в виде комментариев. А если все нюансы скрывать, то легко дойти до диаграммы из единственной активности "Выполнить процесс". Полагаю, что это противоречит основной цели БПМН: BPMN1.0,стр.1The primary goal of BPMN is to provide a notation that is readily understandable by all business users, from the business analysts that create the initial drafts of the processes, to the technical developers responsible for implementing the technology that will perform those processes, and finally, to the business people who will manage and monitor those processes. Thus, BPMN creates a standardized bridge for the gap between the business process design and process implementation.
Все бизнес-аспекты должны быть отражены на диаграмме, а нюансы реализации конкретной BPMS - нет. Параллельность (асинхронность) выполнения каких-то задач - аспект, вполне понятный с точки зрения бизнеса. Возможность завершения одной из параллельных задач - тоже. Если в том же процессе еще не выполнена другая параллельная задача, понятно, что процесс еще не заканчивается. Однако, и ситуация, когда при определенных условиях нужно прервать все незаконченные задачи процесса и завершить его принудительно - тоже вполне реальна.
...
Рейтинг: 0 / 0
Вопросы по спецификации BPMN
    #35288970
АБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VlP2008Но ведь "нюансы реализации конкретной BPMS" можно вынести на диаграмму разве что в виде комментариев. А если все нюансы скрывать, то легко дойти до диаграммы из единственной активности "Выполнить процесс". Полагаю, что это противоречит основной цели БПМН: BPMN1.0,стр.1The primary goal of BPMN is to provide a notation that is readily understandable by all business users, from the business analysts that create the initial drafts of the processes, to the technical developers responsible for implementing the technology that will perform those processes, and finally, to the business people who will manage and monitor those processes. Thus, BPMN creates a standardized bridge for the gap between the business process design and process implementation.
Все бизнес-аспекты должны быть отражены на диаграмме, а нюансы реализации конкретной BPMS - нет. Параллельность (асинхронность) выполнения каких-то задач - аспект, вполне понятный с точки зрения бизнеса. Возможность завершения одной из параллельных задач - тоже. Если в том же процессе еще не выполнена другая параллельная задача, понятно, что процесс еще не заканчивается. Однако, и ситуация, когда при определенных условиях нужно прервать все незаконченные задачи процесса и завершить его принудительно - тоже вполне реальна. Извините, я Вас не понимаю. Мы говорим о процессе, который будет рисоваться или исполняться? Если второе, то вы будете рисовать его в конкретной BPMS, и пользоваться при этом не абстрактно-стандартным BPMN, а тем, что называется BPMN в данной конкретной системе. Т.е. диалектом, в котором будут свои собственные нестандартные расширения, ограничения и нюансы. Практически все производители говорят, что поддерживают BPMN, но вы бы видели тот "BPMN"!

Никакого противоречия целям BPMN тут нет - пусть это будет диалект, не на 100% стандартный, но он вполне может быть общим языком для людей бизнеса, аналитиков и айтишников. Избежать "нюансов конкретной BPMS" можно только если вы собираетесь только рисовать. Но это не BPM, по определению.
...
Рейтинг: 0 / 0
Вопросы по спецификации BPMN
    #35289077
VlP2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmitrygusev VlP2008Вы привели слишком примитивный пример, попробуйте добавить параллельность. Ну хоть так: java-процесс запускается и разветвляется на два потока (thread), в которых выполняется один и тот же или разные методы. При этом у каждого свое завершение на своей строчке кода и в свой момент времени, но если не вызывать System.Exit(), процесс не закончится, пока не завершатся оба потока.
Ну это просто, например...
Ну так если закомментировать вызов System.exit(0), каждый поток закончится абсолютно самостоятельно (у каждого потока свой "конец"), но процесс завершится только после того, как закончатся оба, а точнее, все трое - родитель и два дочерних потока.

Кстати, кроме None End Event и Terminate есть еще куча других End Event, которые также как none происходят по каждому входящему токену, но не посто молчат, а еще и, например, передают сообщение, генерируют ошибку, требуют компенсации и т.п. Вопрос: когда на одной из параллельных веток End Event требует отправить сообщение, а на другой - None End Event, но она еще не закончилась, будет сообщение отправлено сразу по завершению 1-й ветки или оно будет отложено до завершения процесса? Я думаю, будет отправлено сразу. Но процесс еще не закончился. А когда закончится 2-я ветка, завершится процесс и управление наконец перейдет к родителю - процессу или системе.

Аналогия с данным java-примером такая: два дочерних потока вместе составляют процесс с двумя параллельными ветками. Родитель ждет, пока закончатся оба (t1.join();t2.join();), но каждый из двух парллельных потоков "процесса" завершается самостоятельно и по времени и по смыслу (действию).
...
Рейтинг: 0 / 0
Вопросы по спецификации BPMN
    #35289223
VlP2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АБ VlP2008Но ведь "нюансы реализации конкретной BPMS" можно вынести на диаграмму разве что в виде комментариев. А если все нюансы скрывать, то легко дойти до диаграммы из единственной активности "Выполнить процесс". Полагаю, что это противоречит основной цели БПМН: BPMN1.0,стр.1The primary goal of BPMN is to provide a notation that is readily understandable by all business users, from the business analysts that create the initial drafts of the processes, to the technical developers responsible for implementing the technology that will perform those processes, and finally, to the business people who will manage and monitor those processes. Thus, BPMN creates a standardized bridge for the gap between the business process design and process implementation.
Все бизнес-аспекты должны быть отражены на диаграмме, а нюансы реализации конкретной BPMS - нет. Параллельность (асинхронность) выполнения каких-то задач - аспект, вполне понятный с точки зрения бизнеса. Возможность завершения одной из параллельных задач - тоже. Если в том же процессе еще не выполнена другая параллельная задача, понятно, что процесс еще не заканчивается. Однако, и ситуация, когда при определенных условиях нужно прервать все незаконченные задачи процесса и завершить его принудительно - тоже вполне реальна. Извините, я Вас не понимаю. Мы говорим о процессе, который будет рисоваться или исполняться? Если второе, то вы будете рисовать его в конкретной BPMS, и пользоваться при этом не абстрактно-стандартным BPMN, а тем, что называется BPMN в данной конкретной системе. Т.е. диалектом, в котором будут свои собственные нестандартные расширения, ограничения и нюансы. Практически все производители говорят, что поддерживают BPMN, но вы бы видели тот "BPMN"!

Никакого противоречия целям BPMN тут нет - пусть это будет диалект, не на 100% стандартный, но он вполне может быть общим языком для людей бизнеса, аналитиков и айтишников. Избежать "нюансов конкретной BPMS" можно только если вы собираетесь только рисовать. Но это не BPM, по определению.
Только рисование меня не интересует. Я хочу исполнять нарисованное. Но и рисовать и исполнять хотелось бы как можно ближе к стндарту. По крайней мере, при наличии отступлений от стандарта они должны быть зафиксированы с указанием оснований. Без понимания самого стандарта это невозможно. К сожалению, он сам допускает разное понимание/толкование по многим моментам. Но по вопросам, описанным однозначно, изменения допустимы только в пределах, указанных в самом стандарте - на той же 1-й и еще 2-й страницах спецификции. Там однозначно указно, что ДОЛЖНО соблюдаться, если объявляется соответствие стандарту, а что можно расширять по своему усмотрению. Исходя из этого, вопрос топика никак нельзя отнести к области расширений, а значит и к реализации конкретной BPMS. Но неясные аспекты по этому вопросу в стандарте есть. Поэтому правильнее сначала хотя бы попытаться уточнить смысл стандарта по конкретному вопросу, и только потом отдавать его на откуп конкретной реализации.
...
Рейтинг: 0 / 0
Вопросы по спецификации BPMN
    #35289305
АБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VlP2008рисовать и исполнять хотелось бы как можно ближе к стндарту Боюсь, это идеализм. При выборе BPMS приходится учитывать множество факторов, и точность следования стандартам среди них конечно присутствует, но врядли вес этого фактора превысит в итоге 5%. Главными факторами обычно являются цена, платформа, присутствие вендора. (Форрестер периодически выпускает таблички сравнения, с весами, баллами, комментариями к этим баллам и итоговыми суммами.) Так что когда начнете заниматься чем-то реальным, а не академическим, придется Вам разбираться уже в основном не со стандартом, а с диалектом.
...
Рейтинг: 0 / 0
Вопросы по спецификации BPMN
    #35289556
VlP2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АБ VlP2008рисовать и исполнять хотелось бы как можно ближе к стндарту Боюсь, это идеализм. При выборе BPMS приходится учитывать множество факторов, и точность следования стандартам среди них конечно присутствует, но врядли вес этого фактора превысит в итоге 5%. Главными факторами обычно являются цена, платформа, присутствие вендора. (Форрестер периодически выпускает таблички сравнения, с весами, баллами, комментариями к этим баллам и итоговыми суммами.) Да, это в точку, идеализм я за собой замечал. Но влияние точности следования стандарту на продажи, по-моему, реально еще меньше, чем 5%. Может как-то еще влияет сам факт соответствия (или заявление производителя о нем), но степень соответствия - 60% или 80% - вряд ли. Кто из покупателей "найдет 6 или 8 отличий" от 300-страничной спецификации?
Лично я продажами не занимаюсь, мое дело - сделать продукт лучше не только с точки зрения продаваемости. Мы (это я от имени своей компании) со своими заказчиками строим многолетние отношения, которые обычно с продажи только начинаются. А дальше приходится и внедрять, и учить, и дорабатывать и т.п. Объем доработок собственными силами хотелось бы минимизировать, переложив на заказчика как можно большую часть изменений бизнес-логики, но это возможно, только если будет достигнут оптимальный компромисс между простотой использования инструмента, с одной стороны, и богатством его возможностей - с другой. Достижение этого компромисса - сложная задача, в одиночку посильная только для гения. Но решить ее коллективными усилиями надежда есть. И если коллектив опытных специалистов уже много лет над этим работал, что выразилось в публикации стандарта, то почему же нам не воспользоваться результатами?

АБТак что когда начнете заниматься чем-то реальным, а не академическим, придется Вам разбираться уже в основном не со стандартом, а с диалектом. А мы уже давно начали. Правда конкретными объемами продаж пока похвастаться не могу, мы только выпускаем на рынок 1-ю версию продукта (workflow-подсистему в рамках давно существующей СЭД).
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Вопросы по спецификации BPMN
    #38851095
Фотография Герой дня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedotxxliscrafm
По спецификации и нефига не понятно, чем отличается обычный None End Event от Terminate End Event. Что должно в себя включать "завершение" процесса / подпроцесса? Предположим, что у меня ещё есть активности, которые исполняются. Что произойдет, если процесс дойдет до None End Event'a / Terminate End Event'a?

отличаются тем, что при возникновении Terminate End Event завершается процесс, а при None End Event только один из потоков, который достиг этой точки.. сам процесс будет завершен, когда все потоки достигнут эту None End Event или другие None End Event точки
...
Рейтинг: 0 / 0
16 сообщений из 66, страница 3 из 3
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Вопросы по спецификации BPMN
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]