message flow and pools in activiti Engine

+2 رأی
میانگین بازدید روزانه 0.09102 بازدید

درود 

برای یک فرایند و نمایش بهتر منطق و تفکیک حوزه های کاری نیاز به استفادده از  چندین 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 در یک فرایند(مانند شکل زیر) چه راه حلی وجود دارد ؟

سوال 2 سال قبل در تالار کامپیوتر و اینترنت توسط nirvana (99 امتیاز)
برچسب گذاری مجدد در 2 سال قبل توسط nirvana

1 جواب

0 رأی
 
بهترین جواب

در 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 ممکن است.

جواب 2 سال قبل توسط mofarn (1,422 امتیاز)
انتخاب شده در 2 سال قبل توسط nirvana

سوال های مشابه

0 رأی
1 جواب میانگین بازدید روزانه 0.0887 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.13144 بازدید
سوال 2 سال قبل در تالار برنامه نویسی توسط mmajlesi (5 امتیاز)
0 رأی
1 جواب میانگین بازدید روزانه 0.0774 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.0776 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.11104 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.1105 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.1110 بازدید
سوال 3 سال قبل در تالار برنامه نویسی توسط nirvana (99 امتیاز)
+1 رأی
1 جواب میانگین بازدید روزانه 0.11115 بازدید
+1 رأی
0 جواب میانگین بازدید روزانه 0.33333 بازدید
سوال 2 سال قبل در تالار برنامه نویسی توسط nirvana (99 امتیاز)
0 رأی
1 جواب میانگین بازدید روزانه 0.29187 بازدید
کانال تلگرام جواب یاب
...