تشریح دروازه ها (Gateway) در BPMN

از دروازه‌ها برای کنترل چگونگی تعامل جریان‌های توالی استفاده می‌شود که به صورت همگرا یا واگرا به همراه یک فرآیند وجود دارند. به واقع اگر جریان نیازی به کنترل نداشته باشد، دیگر نیازی به دروازه نیست. اصطلاح "دروازه" نشان‌دهنده یک گلوگاه است که ممکن است اجازه عبور را بدهد یا مانع از عبور گردد؛ زمانی که جریان‌های توالی به دروازه می‌رسند، می‌توانند بر اساس مکانیسمی که دروازه به آن استناد نموده است، برای گذر از یک دروازه ورودی در کنار هم قرار بگیرند و یا برای عبور از یک دروازه خروجی به چند بخش تقسیم شوند. 

در ادامه این دروازه‌ها را به همراه نمونه‌ای برای هر یک از آن‌ها بیان می‌کنیم:

دروازه موازی (Parallel Gateway):

دروازه موازی که به آن دروازه "هم‌زمانی" نیز گفته می‌شود، ساده‌ترین نوع از دروازه‌های BPMN به شمار می‌رود که امکان ایجاد چندین انشعاب در یک فرآیند را ممکن می‌سازد. زمانی که در یک فرآیند از دروازه موازی استفاده شده باشد، کار در تمامی مسیرهایی که از دروازه موازی خارج‌شده‌اند، پخش خواهد شد.

به طور مثال زمانی که کاربر درخواستی را ثبت می‌کند و طبق سناریوی موجود این درخواست باید به صورت موازی به تأیید چند مدیر (در این نمونه سه مدیر) برسد می‌توان از این نوع دروازه استفاده نمود.

 

دروازه انحصاری (Exclusive Gateway):

دروازه انحصاری که دروازه XOR نیز نامیده می‌شود و یا از نظر فنی در اکثر موارد، دروازه مبتنی بر داده‌های منحصربه‌فرد نام‌گذاری شده است.

زمانی که از این دروازه در یک فرآیند استفاده می‌شود، حداقل یک شرط می‌بایست بررسی گردد، به عبارتی "شرط اول" چک می‌شود چنانچه برقرار بود مسیر 1 انتخاب می‌شود و شرط‌های دیگر چک نخواهند شد، در صورت برقرار نبودن شرط اول، به سراغ چک نمودن "شرط دوم" می‌رود و به همین ترتیب روال تا "شرط آخر" ادامه پیدا می‌کند و اگر شرط آخر هم برقرار نبود آن‌گاه به سراغ مسیر "پیش‌فرض می‌رود"، بنابراین تحت هر شرایطی "فقط و فقط" یک مسیر برای ادامه فرآیند انتخاب خواهد شد.

به طور مثال در یک فرآیند درخواست مرخصی روزانه، باید بر اساس تعداد روزهای مرخصی، تصمیم‌گیری شود که کار به کارتابل کدامیک از مدیران برود، برای این منظور می‌توان به صورت زیر از دروازه انحصاری استفاده نمود. همان طور که مشاهده می‌کنید چنانچه تعداد روزهای درخواست مرخصی روزانه بیشتر از 5 و یا کمتر از 10 روز باشد، درخواست می‌بایست به مدیر ارشد جهت بررسی برود و یا در صورتی که تعداد روزهای درخواست مرخصی روزانه بیشتر از 10 روز باشد، درخواست را مدیرعامل می‌بایست بررسی نماید و در صورتی که هیچ یک از شروط فوق برقرار نباشد به صورت پیش‌فرض برای مدیر مافوق ارسال می‌گردد.

 

دروازه جامع (Inclusive Gateway):

یکی از انواع دروازه‌های استاندارد BPMN، دروازه جامع است، دروازه جامع را می‌توان به عنوان ترکیبی خاص از دروازه‌های انحصاری و موازی در نظر گرفت. همانند دروازه انحصاری می‌توان بر روی تمامی شروط درگاه‌ها نظارت داشت و همانند دروازه موازی می‌تواند بیش از یک مسیر را طی کند؛ یعنی زمانی که در یک فرآیند قرار می‌گیرد تمامی شرط‌ها را چک می‌کند و بر اساس برقراری شروط می‌تواند یک و یا بیش از یک مسیر را انتخاب نماید و اگر هیچ یک از شرط‌ها برقرار نبود، مسیر پیش‌فرض برای ادامه در نظر گرفته می‌شود.

به طور مثال زمانی که کاربر درخواستی را ثبت می‌کند و مطابق شکل زیر، ممکن است شرط 1 به تنهایی برقرار باشد که منجر به ارسال درخواست به مدیر 1 می‌گردد و یا شرط 2 به تنهایی برقرار باشد که منجر به ارسال درخواست به مدیر 2 می‌گردد یا هر دو شرط 1 و 2 همزمان برقرار باشند که درخواست همزمان هم به مدیر 1 و هم به مدیر 2 ارسال می‌گردد اما در صورتی که هیچ یک از حالت‌های فوق رخ ندهد، درخواست در مسیر پیش‌فرض قرار می‌گیرد.

 

دروازه مبتنی بر رویداد (Event Based Gateway):

این حالت به نوعی همانند دروازه انحصاری (Exclusive) عمل می‌نماید اما با این تفاوت که به جای قرارگیری شروط بر روی مسیرها از رویدادهای مختلف استفاده می‌شود و این رویدادها برای طی شدن مسیر مناسب منتظر فراخوانی می‌مانند و اولین رویدادی که صدا زده می‌شود تنها مسیر انتخابی این دروازه می‌شود و مسیرهای دیگر طی نمی‌شوند.

در استفاده از دروازه مبتنی بر رویداد باید به نکات زیر توجه داشت:

  • یک دروازه مبتنی بر فرآیند باید دو و یا بیش از دو جریان خروجی داشته باشد.
  • یک دروازه مبتنی بر فرآیند ممکن است فقط به اجزایی از نوع Intermediate Catch Event متصل شده باشد. 
  • یک Intermediate Catch Event متصل شده به یک دروازه مبتنی بر فرآیند باید یک جریان تک رشته‌ای ورودی داشته باشد. 

به طور مثال زمانی که کاربر درخواستی را ثبت می‌کند و مطابق شکل زیر، در دروازه مبتنی بر رویداد قرار می‌گیرد یا بعد از گذشت زمان 10 دقیقه (در این فاصله زمانی رویداد مسیر پایینی فراخوانی نشده است) در مسیر بالایی قرار می‌گیرد و یا پیش از 10 دقیقه، رویداد مسیر پایینی فراخوانی می‌شود. دقت شود که تنها یکی از مسیرها می‌تواند طی شود.

 

دروازه مبتنی بر رویداد موازی (Parallel Event Based Gateway):

این دروازه همانند  Event Based Gateway می‌باشد اما با این تفاوت که تنها یک مسیر طی نمی‌شود، بلکه تمامی مسیرها به محض فراخوانی رویدادشان طی خواهند شد.

به طور مثال زمانی که کاربر درخواستی را ثبت می‌کند و مطابق شکل زیر، در دروازه مبتنی بر رویداد موازی قرار می‌گیرد این امکان وجود دارد که پس از گذشت 10 دقیقه، در خواست در مسیر بالایی قرار بگیرد و همزمان با آن مسیرهای میانی و پایینی نیز طی شوند؛ به عبارتی محدودیتی در تعداد مسیرهای طی شده وجود ندارد و حداقل یک مسیر طی می‌شود.

 

Complex Gateway:

از این دروازه زمانی استفاده می‌شود که حالت پیش‌فرضی برای ادامه مسیر وجود ندارد و طراح می‌بایست این حالت را پیاده‌سازی نماید. به طور مثال زمانی که قرار است بر اساس کاربرهای مختلف شرایطی چک گردد که مسیرهای مختلفی طی شود، بایستی از این دروازه استفاده نمود. به علاوه این دروازه می‌تواند ترکیبی از دروازه‌های فوق را سبب گردد.


منابع: کتاب Process-Driven Applications with BPMN- نویسنده Volker Stiehl

docs.camunda.org/Gateways

ترجمه و گردآوری: پروین بختیاری


 

درباره رایورز

شرکت مهندسی نرم‌افزار رایورز در اوایل سال 1368 توسط جمعی‌از فعالین حرفه نرم‌افزار تأسیس گردید...

بیشتر بدانید

ارتباط با ما

  • تهران، خيابان ولی عصر، نرسيده به توانير، خيابان احتشام، شماره 5
  • 89326000

  • BPMS@rayvarz.com

خبرنامه پایگاه دانش BPM