پردازش موازی (Parallel Processing)

پردازش موازی بخش مهمی از برنامه‌های فرآیند محور است. فعال‌کردن مسیرهای پردازش موازی برای بهینه‌سازی فرآیند باعث استفاده بهتر از منابع محاسباتی می‌شود و در سطوح مختلف BPMN پشتیبانی می‌شود. دروازه موازی (Parallel gateway) بدون چک کردن هیچ شرطی، چندین مسیر را فعال می نماید و نتیجه در بالاترین درجه از موازی‌سازی حاصل می گردد.

مزیت لایه ای که به پیاده‌سازی سرویس های قرارداد شده می پردازد این است که جریان توالی موازی‌ای را به صورت مستقل پردازش می نماید و در بهینه‌سازی زمان نقش مهمی را ایفا می‌کند. در این جا عملکرد کسب‌وکاری که منجر به خواندن داده‌های مشتری می شود و نیاز به جمع آوری اطلاعات از چندین سیستم دارد را به عنوان یک مثال در نظر می گیریم. این سیستم‌ها می‌توانند به طور هم‌زمان فراخوانی شوند و زمانی که پاسخ همه آن‌ها رسید، اطلاعات کامپایل شده برای کسب و کار مورد نظر فرستاده می شود.
دروازه جامع (Inclusive gateway) اجازه پردازش موازی را می‌دهد، اما شرایطی را بر روی جریان های خروجی اعمال می نماید. با این وجود، یک مسیر هوشمند برای استفاده از دروازه جامع برای مدلسازی شرایط در فرآیند معمولی وجود دارد، در واقع شما یک مسیر بدون شرطی را علاوه بر جریان های خروجی دارای شرط مشخص می نمایید. این مسیر همیشه فعال است و همراه با هریک از دیگر شرط‌هایی که اجرا شوند، انجام می گردد.

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

در برخی از سناریوها یک رویداد در طول فرآیند تکرار می‌شود، برای پیاده‌سازی این نوع سناریوها از زیرفرآیند به صورت موازی استفاده می‌شود. به طور مثال برای پیاده سازی یک فرآیند سفر، نیاز به رزرو بلیط، رزرو هتل، تاکسی و ... است؛ در هر یک از این مراحل نیاز به پرداخت پول از کارت اعتباری داریم، و با هربار پرداخت باید اطلاعات کارت اعتباری به روزرسانی شود، می‌توان سیستم را به صورت زیر در نظر گرفت:

به دلیل اینکه پیام جزئیات به روز رسانی اطلاعات کارت اعتباری در هر یک از سه مرحله گفته شده می‌تواند تغییر کند، می‌توان سه مرحله از کار را به عنوان یک مجموعه در نظر گرفت، یا بهتر است بگوییم به عنوان یک زیرفرآیند در نظر می‌گیریم.

با استفاده از زیر فرآیند یک حوزه برای هر رویداد معتبری تعریف می‌شود. در سناریو ما، این رویداد تنها می‌تواند در برخی از نقاط در طول پردازش سه وظیفه رزرو رخ دهد چون اگر در مرحله شارژ کارت اعتباری باشیم دیگر نیازی به رفتن به نقطه به روزرسانی اطلاعات کارت نداریم.
شکل زیر نمونه‌ای دیگر از پیاده‌سازی سناریوی عنوان شده است:


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

 

نویسنده: Volker Stiehl

منبع: کتاب Process-Driven Applications with BPMN - فصل 4

مترجم: پروین بختیاری

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

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

بیشتر بدانید

ارتباط با ما

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

  • BPMS@rayvarz.com

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