+2 امتیاز
قبل در کامپیوتر و اینترنت توسط (89 امتیاز)
برچسب گذاری دوباره قبل توسط

درود 

برای یک فرایند و نمایش بهتر منطق و تفکیک حوزه های کاری نیاز به استفادده از  چندین pool  داریم برای ارتباط بین این pool ها نیاز به message flow هست که یک نمونه ساده و البته اشتباه از منظر طراحی آن به شکل زیر است.

1. با توجه به اینکه در activiti  هر pool  را یک process در نظر می گیرد آیا امکان دارد poolی بدون شروع و پایان باشد ؟

2. من message flow در نوتیشنها ندیدم و استفاده از sequence flow خطا می دهد. آیا راه حلی دارد ؟

3. در صورت استفاده از intermediate throw eventها،intermediate catch event ها، چگونه  با آنها match میشوند ؟ intermediate  event برای message وجود دارد؟

4. در کل برای استفاده از چند pool در یک فرایند(مانند شکل زیر) چه راه حلی وجود دارد ؟

1 پاسخ

0 امتیاز
قبل توسط (1.4هزار امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

در BPMN 2.0 هر pool یک فرآیند مجزا را نشان می‌دهد. برای تفکیک حوزه‌های کاری در یک فرآیند بهتر است از چند lane در یک pool استفاده کرد.

  • ارتباط بین poolها تنها با message flow انجام می‌شود. به عبارت دیگر، عبور یک sequence flow از مرز pool مجاز نیست (در حالی که در laneها مجاز است).
  • اکتیویتی نیز هر pool را یک فرآیند مجزا می‌بیند و توصیه می‌کند که در هر مدل فرآیند تنها یک pool باشد (البته جلوگیری هم نمی‌کند).
    • به همین دلیل دقت کنید که هر pool دو فیلد name و process identifier دارد که در هنگام deploy مدل فرآیند، نام و شناسه «تعریف فرآیند» ایجادشده خواهند بود.
  • اکتیویتی از message flow پشتیبانی نمی‌کند.
  • نکته: در BPMN 2.0 با Messge Throwing Event و Send Task می‌توان یک message flow ایجاد (یک message پرتاب) کرد. با Message Receiving Event و Receive Task می‌توان message ها را دریافت کرد.
    • فرض اکتیویتی این بوده که Messge Event از خارج از Process Engine وارد فرآیند می‌شود. مثلا اپلیکیشن دیگر آن را با JMS یا REST برای اکتیویتی می‌فرستد و اکتیویتی آن را به فرآیند مورد نظر می‌رساند. احتمالا به همین دلیل است که Message Throwing Event و Send Task بین مولفه‎های اکتیویتی نیستند، ولی Message Catching Event و Receive Task هستند.

برای ارتباط بین دو فرآیند می‌توانید از Signal Event استفاده کنید که اکتیویتی هم از Signal Intermediate Throwing Event پشتیبانی می‌کند و هم از Signal Intermediate Catching Event و هم از Signal Start Event. بنابراین به نظرم پیاده‌سازی نمودار دوم شما با Signal Event ممکن است.

سوالات مشابه

0 امتیاز
1 پاسخ 309 بازدید
+1 امتیاز
1 پاسخ 410 بازدید
0 امتیاز
1 پاسخ 225 بازدید
0 امتیاز
1 پاسخ 314 بازدید
0 امتیاز
1 پاسخ 378 بازدید
+1 امتیاز
1 پاسخ 407 بازدید
+1 امتیاز
1 پاسخ 303 بازدید
+1 امتیاز
1 پاسخ 496 بازدید
+1 امتیاز
0 پاسخ 995 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط nirvana (89 امتیاز)
0 امتیاز
1 پاسخ 1.1هزار بازدید
...