درگاه مبتنی بر رویداد (Event-based gateway) چیست
درگاه مبتنی بر رویداد (Event-based gateway) یکی از پرکاربردترین نمادهایی است که در BPMN وجود دارد و متاسفانه تاکنون اغلب به عنوان راه حلی برای رفع مشکلات رایج نادیده گرفته شده است. این درگاه نمادی ترکیبی است که ویژگیهای چند نماد BPMN را به ارث برده است.
اول از همه، دروازهی است که مانند درگاه Exclusive با نماد لوزی، برای جداسازی مسیرهای جریان توالی مورد استفاده قرار میگیرد. در داخل این شکل الماس، نماد رویداد میانی را خواهید دید که دو دایره خطی نازک است. در داخل شکل رویداد میانی، پنج ضلعی وجود دارد که نمادی برای چندین رویداد است. بنابراین وقتی همه اینها را کنار هم میگذاریم، درگاهی خواهیم داشت که با چندین رویداد میانی سرو کار خواهد داشت.
بیایید با نگاهی به الگوی استفاده از این درگاه شروع کنیم و سپس برخی از سناریوهای کسب وکاری بالقوه مورد استفاده از آن را بررسی نماییم.
هدف اصلی درگاه مبتنی بر رویداد (Event-based gateway) این است که نشان دهد شما باید تنها یکی از رویدادهای متصل به سمت راست را انتخاب نمایید. برای مثال، من پیامی برای همکارم ارسال میکنم و او با ایمیل یا تلفن پاسخ میدهد. پس نوع پیام برای پاسخ متفاوت است و برای پردازش آن به عمل دیگری نیاز دارد. من از قبل نمیدانم به کدام طریق قرار است پاسخ را دریافت کنم، بنابراین این رویدادی است که باید نسبت به آن واکنش نشان داده و بر اساس آن پردازش کنم.
رفتار درگاه انحصاری مبتنی بر رویداد به این صورت است که مانند درگاه انحصاری مبتنی برداده (هدف اصلی درگاه مبتنی بر رویداد (Exclusive gateway) این است که نشان دهد شما باید تنها یکی از رویدادهای متصل به سمت راست را انتخاب نمایید. برای مثال، من پیامی برای همکارم ارسال میکنم و او با ایمیل یا تلفن پاسخ میدهد. پس نوع پیام برای پاسخ متفاوت است و برای پردازش آن به عمل دیگری نیاز دارد. من از قبل نمیدانم به کدام طریق قرار است پاسخ را دریافت کنم، بنابراین این رویدادی است که باید نسبت به آن واکنش نشان داده و بر اساس آن پردازش کنم.
استفاده از این درگاه اجازه میدهد تنها یک مسیر انتخاب شود. با این تفاوت که درگاه مبتنی بر رویداد (Event-based gateway) ، بجای داده به رویداد واکنش نشان میدهد. پس در درگاههای داده محور، در زمان فعال شدن درگاه، شرایط مشخص است و پردازش مورد نیار برای تعیین مسیر بعدی زمان زیادی به طول نمیانجامد، ولی هنگام فعال شدن درگاه مبتنی بر رویداد شرایط مشخص نیست و باید منتظر رویداد باشیم تا مسیر بعدی انتخاب شود.
استفاده از درگاه مبتنی بر رویداد
یک قابلیت منحصر به فرد برای این درگاه وجود دارد و آن این است که میتواند در ابتدای یک فرآیند و بجای رویداد شروع مورد استفاده قرار گیرد. ممکن است با نمودارهای BPMN روبرو شوید که در آن علاوه بر یک رویداد شروع، درگاه مبتنی بر رویداد (Event-based gateway) نیز استفاده شده است. وقتی از درگاه مبتنی بر رویداد به عنوان یک رویداد شروع استفاده میکنید، تفسیر تحت اللفظی به این صورت است: فرآیند من زمانی شروع میشود که یکی از رویدادهای زیر را دریافت کنم. مشخصات BPMN در مورد استفاده از رویدادهای میانی بعد از درگاه مبتنی بر رویداد بسیار خاص است. اما اگر برای شما منطقیتر است، میتوانید به استفاده از رویدادهای میانی به عنوان رویدادهای شروع فکر کنید و درگاه نیز به عنوان مکانی برای انتخاب رویداد خواهد بود.
در صورتی که درگاه مبتنی بر رویداد به جای یک رویداد شروع استفاده شود، این درگاه بیان میکند که رویدادهایی وجود دارند که میتوانند باعث شروع فرآیند شوند. در صورتی که از آن به عنوان یک درگاه میانی استفاده شود، بیان میکند که فرآیند در حالت انتظار است و تنها پس از وقوع یکی از چندین رویداد ادامه مییابد.
چه از آن برای شروع یک فرآیند استفاده کنیم و چه برای مشخص کردن ادامه یک فرآیند، درگاه مبتنی بر رویداد با یک درگاه مبتنی بر داده همگرا میشود. این ممکن است عجیب به نظر برسد، اما درگاه همگرایی در یک نمودار BPMN بیان میکند که یک جریان همگامسازی وجود دارد. عملکردی مانند نماد ترافیک دارد که تنها یک مسیر برای ادامه نمودار مجاز خواهد بود. در مقابل، درگاه همگرایی موازی نشان میدهد که همه مسیرها برای ادامه مورد نیاز هستند و تا زمانی که همه مسیرها به درگاه نرسند، درگاه منتظر میماند.
از آنجا که طبق مشخصات BPMN، درگاه مبتنی بر رویداد فقط مجاز است که رویدادها را در سمت راست داشته باشد، ما نمیتوانیم از آن برای همگرایی استفاده کنیم. اما از آنجایی که ما فقط نیاز به بیان رفتار ادغام داریم، درگاه داده محور جایگزین مناسبی است.
بنبستها در درگاه مبتنی بر رویداد (Event-based gateway)
بن بست رویدادها معمولاً به این دلیل ایجاد میشود که فرض نمودهایم همیشه همه چیز طبق برنامه پیش میرود. واقعیت این است که در دنیای کسب وکار، فقط در ۳۵ درصد مواقع، همه چیز طبق برنامه پیش میرود و در ۶۵ درصد دیگر یا مسیرهای تداوم فرآیند یا پر هزینهتر هستند یا منجر به از دست رفتن فرصتهای کسب و کار میشوند. بیاید با هم ببنیم برای مدیریت بنبستها در درگاه مبتنی در استفاده از درگاه مبتنی بر رویداد (Event-based gateway) چه باید کرد؟
در سناریویی که من منتظر دوستم در رستوران هستم، عقل سلیم به من میگوید که باید فقط یک ساعت صبر کنم تا تصمیم بگیرم که او به ملاقات من نمیآید. برای سایر دوستان این ممکن است دو ساعت باشد زیرا ممکن است به طور منظم یک ساعت تاخیر داشته باشند. اما نکته اینجاست که من تا ابد صبر نمیکنم. بنابراین افزودن یک رویداد تایمر میانی به جریان فرآیند من میتواند روزی را که من یک بن بست ناشی از رویداد داشته باشم، نجات دهد.
اگر میخواهید در مورد بنبستهای درگاه مبتنی بر رویداد (Event-based gateway) بیشتر مراقب باشید، سعی کنید علتهای بیشتری برای شکست فرآیند در نظر بگیرید. برای مثال، همانطور که منتظر دوستم هستم، آژیر هشدار سونامیرا میشنوم. رستوران کنار ساحل است، بنابراین فکر نمیکنم باید بمانم و دوستم مرا ملاقات کنم، بلکه وقت آن رسیده است که به مناطق مرتفعتر حرکت کنم. در این مورد، من یک رویداد سیگنال را به فرآیند خود اضافه میکنم که به همه اخبارهایی که ممکن است برای من جالب باشد گوش میدهد.
مثالی از در Event-based gateway
حال بیایید همان الگوی استفاده از درگاه مبتنی بر رویداد (Event-based gateway) را برای یک مشکل تجاری رایج اعمال کنیم. فرض کنید که من سفارشی را برای تامین کننده خود ارسال میکنم. آیا با فرض اینکه تامین کننده پیام را دریافت کرده است، به طور نامحدود منتظر بمانم؟ از این گذشته، آنها در گذشته نسبتاً قابل اعتماد بودهاند، درست است؟ پس وقتی سفارش را دریافت نکنم چه اتفاقی میافتد؟ آیا باید ماهها بعد تا هنگامی که هیچ محصولی برای فروش ندارم منتظر بمانم، زیرا مواد اولیه برای تولید نداشتهام؟ شاید شما تصور میکردید که شخص دیگری متوجه این مشکل میشود و با سازنده فرآیند تماس میگیرد. اما چه زمانی تماس خواهند گرفت؟ به احتمال زیاد پس از کم شدن موجودی و خطر تعطیلی تولید خواهد بود.
به عبارت دیگر، ممکن است قبل از تشخیص مشکل، خیلی دیر شده باشد. بنابراین، در عوض، فرآیند خود را به گونهای مدلسازی میکنیم که شامل مواردی مانند تایمر باشد که زمان دریافت محصول را نظارت میکند. همچنین به فروشنده اجازه میدهیم اگر خطایی در پردازش سفارش وجود دارد، به شخصی در سازمان ما گزارش کند تا سفارشگذاری مجددا تکرار شود. و زمانی که آن را محقق کردیم می توانیم حتی فراتر رویم و از تامین کننده بخواهیم پیامهای قطعی سیستم خود را ارسال کند تا بدانیم چه زمانی می بایست سفارشگذاری خود را انجام دهیم.
امیدوارم این مطلب استفاده از درگاه مبتنی بر رویداد (Event-based gateway) را شفاف کرده باشد. امیدوارم اکنون بتوانید ببینید که اگرچه درگاه مبتنی بر رویداد از الگویی دشوار برای درک استفاده میکند، اما ارزش یادگیری را دارد و یکی از قدرتمندترین نمادها در BPMN است. فرآیندها خطی نیستند و همیشه مانند ساعت عمل نمیکنند. مدلسازی به سبک فلوچارت که همه چیز کاملاً متوالی باشد، ماهیت واقعی فرآیندهای تجاری را به تصویر نمیکشد. در دنیای واقعی، فرآیندها مبتنی بر رویداد هستند و در ۶۵ درصد مواقع فعالیت ها از برنامه بهینه پیروی نمیکنند. با استفاده از یک مدل فرآیند مبتنی بر رویداد، احتمال بیشتری وجود دارد که جزئیات ظریف و بخشهای ناکارآمدی را کشف کنید
برداشت از Process-Modeling.com