همان طور که در مقاله رویدادهای آغازین و رویدادهای پایانی اشاره شد رویدادهای میانی پس از شروع یک فرایند کسب و کار و قبل از آن اتفاق می افتند. رویدادهای میانی هم می توانند ماهیت دریافتی داشته باشند و هم ماهیت رها سازی داشته باشند البته نه به صورت همزمان. ماهیت دریافتی یعنی فرایند منتظر می ماند تا رویداد اتفاق بیفتد و ماهیت رهاسازی یعنی فرایند رویداد را به خارج از خود هدایت می کند و با جریان توالی به خروجی ادامه می دهد. رویدادهای میانی یا Intermediate Events می توانند از طریق فلش های ورودی و خروجی جریان توالی به سایر گره های مدل فرایند وصل شوند مانند فعالیت ها.
انواع رویدادهای میانی
انواع رویدادهای میانی عبارتند از:
• رویدادهای میانی زمان سنج (Intermediate Timer Events)
• رویدادهای میانی مرزی (Boundary Events)
• رویدادهای میانی خطای مرزی (Interrupting Boundary Error Events)
• رویدادهای میانی اشاره کننده (Intermediate Signal Evnets)
رویدادهای میانی زمان سنج :
برای درک بهتر رویدادهای میانی زمان سنج بهتر است به سناریوی سفارش محصول برگردیم. اگر سفارش روز جمعه آخر هفته ثبت شود، بررسی موجودی انبار تا روز دوشنبه به تاخیر خواهد افتاد زیرا موجودی انبار هر یکشنبه به روز رسانی می شود. پس در اینجا یک محدودیت برای مدل فرایندی وجود دارد که بایستی به آن توجه کرد. از این رو در این جا قصد داریم شما را با رویدادهای میانی زمان سنج آشنا کنیم.
رویدادهای میانی رویدادهای میانی زمان سنج از نوع دریافتی هستند و فقط به صورت مکانیزم تاخیری عمل می کند که این کار را با سه روش می توان انجام داد:
• مشخص کردن تاریخ و زمان خاص به عنوان مثال 16 دسامبر سال 2013 میلادی
• مشخص کردن یک محدوده زمانی تکرار شونده مانند هر پنجشنبه ساعت 10 صبح
• تعریف مدت زمان مانند یک هفته
در این مدل فرایندی باید تصمیم گرفت که آیا زمان سفارش بین روز جمعه و یکشنبه است یا نه. اگر محصول آخر هفته سفارش داده شده باشد شاخه بالایی درگاه باید انجام شود که هیچ فعالیتی صورت نمی گیرد و فقط یک رویداد زمان سنج وجود دارد. لازم به ذکر است که رویدادهای میانی زمان سنج هیچ کار خاصی را انجام نمی دهند و فرایند فقط صبر می کند تا رویداد اتفاق بیفتد. پس به عنوان مثال در بعد از ظهر روز جمعه سفارش ثبت می شود و نمونه فرایند در نیمه شب روز شنبه انجام می شود و فرایند ادامه پیدا می کند یعنی می توان موجودی انبار را بررسی کرد بنابراین لازم نیست که رویدادهای میانی زمان سنج در طول جریان توالی فرایند قرار بگیرند می توانند به جای آنها رویدادهای میانی مرزی باشند.
رویدادهای میانی مرزی
رویدادهای میانی مرزی، رویدادهایی هستند که در مرز یک فعالیت قرار می گیرند. رویدادهای مرزی همیشه از نوع دریافتی هستند و وقوع رویداد وقتی صورت می گیرد که فعالیت در حال اجرا می باشد. رویدادهای آغازین و رویدادهای پایانی (Start Events and End Events)
به عنوان مثال در شکل فوق فعالیت B یک رویداد مرزی دارد و زمانی اتفاق می افتد که فعالیت B در حال اجرا باشد. اگر این رویداد مرزی قبل از فعالیت B شروع شود و یا بعد از B تمام شده باشد، رویداد مرزی معنای خاصی پیدا نمی کند و دیگر مهم نیست.
دو نوع رویداد مرزی وجود دارد و انواع رویدادهای میانی مرزی عبارتند از:
• رویدادهای مرزی متوقف کننده (Interrupting boundary events): این رویداد مرزی در روند فعالیت مداخله می کند. به عنوان مثال وقتی این رویداد مرزی اتفاق بیفتد فعالیت B متوقف می شود و دچار تداخل می شود و تا انتهای فرایند ادامه پیدا نمی کند.
• رویدادهای مرزی غیر متوقف کننده (Non-Interrupting boundary events): این رویدادهای مرزی برخلاف رویدادهای مرزی متوقف کننده هستند یعنی فعالیت B به صورت عادی به فعالیت خود ادامه می دهد و فعالیت C نیز آماده اجرا می شود.
رویدادهای میانی خطای مرزی متوقف کننده (Interrupting Boundary Error Events) :
حال قصد داریم سناریوی سفارش محصول را توسعه دهیم. اگر محصول در انبار نباشد و خطایی در تولید محصول رخ داده باشد، سفارش لغو می شود و مواد تامین شده نیز باید دفع شود. در این صورت فرایند به صورت غیر موفقیت آمیز خاتمه پیدا می کند. حال قصد داریم این پیش نیاز فرایند کسب و کار را با عنوان رویدادهای میانی خطای مرزی متوقف کننده در شکل زیر نشان دهیم.
در شکل فوق اگر رویداد خطا رخ دهد، فعالیت های مربوط به تولید محصول اجرا می شوند و ادامه پیدا می کند. معمولا فعالیت هایی که برای رسیدگی به موقعیت خطا هستند، پس از رویداد خطا مرزی شروع می شوند. حال ممکن است برایتان سوال پیش آید که چه تفاوت هایی بین رویدادهای میانی خطای مرزی و تصمیم جدا کننده XOR وجود دارد؟ برای درک پاسخ این سوال بهتر است به مثال زیر توجه کنید:
شکل فوق را می توان به صورت شکل زیر با تصمیم جدا کننده XOR نشان داد.
اما لازم است بدانید که تفاوت های زیادی بین دو شکل فوق وجود دارد. از نظر مدل سازی، رفتار اجرایی هر دو شکل بالا متفاوت می باشد زیرا در شکل اول از رویداد مرزی استفاده شده است و وقتی که رویداد خطای مرزی اتفاق می افتد فعالیت B لغو می شود ولی در شکل دوم، فعالیت B به صورت کامل و عادی خاتمه پیدا می کند و سپس تصمیم می گیرد که فعالیت C اجرا شود و یا D. یعنی در این شکل بسته به شرایط تصمیم گرفته می شود ولی در شکل اول تصمیم بر اساس یک رویداد خطا گرفته می شود. بنابراین جریان فعالیت های شکل اول به ترتیب A، B و D می باشد ولی جریان اجرای فعالیت های شکل دوم به ترتیب A و B و سپس تصمیم می گیرد که بعد C اجرا شود و یا D. اما از نظر معناشناسی اجرایی تفاوت هایی بین دو شکل وجود دارد، چون در شکل دوم، فعالیت درگاه XOR که همان فعالیت B است، کامل می شود ولی در مورد رویداد مرزی این طور نیست. از نظر مدل سازی واضح است که یک خطا به جای یک تصمیم عادی در طول فرایند اتفاق افتاده است.
در شکل زیر نیز وضعیت به صورت نادرستی توسط خطای مرزی مدل سازی شده است چون خطا در طول تولید محصول به وجود می آید که دیگر لازم نیست تولید محصول ادامه پیدا کند و از این رو سفارش باید لغو شود. ولی اگر خطا اتفاق نیفتد تولید محصول ادامه پیدا می کند و به خوبی محصول تولید می شود. از این رو نمی توان هر معناشناسی را با جدا کننده XOR نشان داد.
رویدادهای میانی مرزی غیر متوقف کننده (Non-Interrupting boundary events) :
فعالیت در رویدادهای میانی غیر متوقف کننده به صورت عادی ادامه پیدا می کند، در حالی که یک واکنش نسبت به یک رویداد نشان می دهد. نماد رویداد مرزی متوقف کننده به صورت و نماد رویداد مرزی غیر متوقف کننده به صورت می باشد. شکل زیر یک مثال مرتبط با سناریوی سفارش محصول می باشد. فرد تولید کننده محصول قصد دارد به مشتری اطلاع دهد که تولید محصول بیش از حد انتظار زمان می برد اما در تولید محصول تداخلی ایجاد نمی شود.
از این رو با رویداد زمان سنج می توان مشخص کرد که مشتری چه چیزی را انتظار دارد. اگر تولید محصول قبل از وقوع زمان سنج یا در همان زمان تعریف شده رخ دهد، در آن لحظه زمان سنج هیچ تاثیری بر روی روند تولید محصول نمی گذارد. مثلا اگر زمان سنج برای دو روز زمان بندی شده باشد ولی محصول در یک روز تولید می شود، در آن لحظه زمان سنج هیچ تاثیری بر روی روند تولید محصول نمی گذارد. حال ممکن است سوال پیش آید که آیا رویداد مرزی غیر متوقف کننده را می توان با استفاده از جدا کننده AND مدل سازی کرد؟ در این مورد نیز تفاوت هایی بین رویداد مرزی غیر متوقف کننده و جدا کننده AND وجود دارد.
اولین تفاوت بین رویداد مرزی غیر متوقف کننده و جدا کننده AND ؛ این است که در شکل اول فعالیت C اجرا نمی شود پس نمی توان آن را با استفاده از جدا کننده AND مدل سازی کرد زیرا فعالیت B فعال باشد و رویداد مرزی اتفاق نیفتد فعالیت C لازم نیست اجرا شود. همچنین از نظر مدل سازی مشخص نیست که اگر رویداد مرزی اتفاق بیفتد، فعالیت های بیشتری اجرا می شود یا خیر.
به طور کلی تفاوت رویدادهای میانی مرز غیر متوقف کننده با جدا کننده AND به شرح زیر می باشد:
• فعالیت ها توسط جداکننده AND به صورت دنباله دار اجرا می شوند اما در رویدادهای مرزی به این صورت نیست.
• در جداکننده AND در زمان ادغام جریان ها باید محتاط بود چون رویداد ممکن است چند بار اتفاق بیفتد. پس رویداد مرزی می تواند چندین بار اتفاق بیفتد پس بسته به تعداد وقع رویداد می توان چندین اطلاع رسانی را به مشتری ارسال کرد که محصول با تاخیر تولید می شود.
رویدادهای میانی اشاره کننده :
رویدادهای میانی اشاره کننده دارای ویژگی های خاصی هستند که این ویژگی ها مقیاس رویدادهای میانی اشاره کننده می باشند. مقیاس رویدادهای میانی اشاره کننده، تنها یک فرایند و محیط آن نیست بلکه آن ها می توانند برای ارتباط وقوع رویدادها در بین چندین فرایند کسب و کار استفاده شوند که باعث تمایز آنها نسبت به سایر رویدادهای میانی می شود. در سایر رویدادهای میانی، مقیاس خود فرایند کسب و کار می باشد و از رویداد اشاره کننده می توان استفاده کرد تا بتوان به مقیاس بزرگتری دست یافت. همچنین این رویداد روی سایر فرایندهای کسب و کار تاثیر می گذارد.
در شکل فوق رویداد فوق یک رویداد رهاسازی می باشد. یعنی پس از این که فعالیت A اجرا می شود یک علامت ارسال می شود، سپس فعالیت B اجرا می شود. این اطلاع رسانی می تواند توسط چندین فرایند کسب و کار دیگر دریافت شود. یک سیگنال BPMN شبیه به علامت آتشی است که به هوا شلیک می شود و برای تمام افرادی که قصد دریافت آن را دارند، قابل مشاهده است. پس رویدادها را بین فرایندهای کسب و کار مختلف اعلام می کند. شکل زیر یک مثال از رویدادهای میانی اشاره کننده است که اگر محصول در دسترس نباشد، رویداد اشاره کننده ممکن است برای آگاهی فرایند دیگر و دوباره پر کردن موجودی انبار استفاده شود. رویدادهای آغازین و رویدادهای پایانی (Start Events and End Events)
اگر پر کردن موجودی انبار در نقطه رویدادهای اشاره کننده شروع شده باشد، می تواند رویداد آغازین فرایند دیگر باشد و وقتی که این رویداد اتفاق بیفتد فرایند دیگری اجرا می شود.
شکل زیر یک پوستر خوب از BPMN می باشد که توسط شرکت BPMN در برلین آلمان تولید شده است. این تصویر را می توانید در آدرس http://bpmb.de/index.php/BPMNPoster مشاهده کنید.
بدون دیدگاه