Work Flow Pattern - قسمت اول

در سال 1999 ساخت استانداردهای الگو گردش کار (Work Flow Pattern)  به صورت مشترک توسط دانشگاه فناوری آیندهوون (با مدیریت پروفسور  Wil van der Aalst) و دانشگاه فناوری کوئیزلند (با مدیریت پروفسور Arthur ter Hofstede) آغاز شد. هدف از ساخت این استاندارد، مهیا نمودن تعاریف قابل درک برای تکنولوژی فرآیند می باشد. تحقیقات به طور ویژه، مباحث گوناگون درگیر با تکنولوژی فرآیند را مورد بررسی قرار می دهند، که می توان به مباحثی نظیر رسیدگی به استثنائات، منابع و داده های مربوط به فرایندها و همچنین جریان کنترل اشاره نمود که پشتیبانی آنها برای هر زبان گردش کار یا زبان مدل سازی فرآیند کسب و کار اجباری می باشد. نتایج این استاندارد می تواند برای بررسی شایستگی زبان های فرآیندی و  سیستم های گردش کار بر روی پروژه های مختلف کمک نماید. این الگوها ارزیابی نسبی  بر روی نقاط قوت و ضعف شیوه های مختلف تعریف فرآیندها، پیاده سازی نیازمندی های اصلی فرایندهای کسب و کار و همچنین زبان و ابزار های توسعه برای توسعه دهندگان این صنعت را انجام می دهد. در ادامه به بررسی اولین دسته این الگوها خواهم پرداخت و  تشریح باقی دسته ها را در مطالب بعدی انجام خواهیم داد.(در اینجا تنها به معرفی اجمالی این الگوها پرداخته شده است).

 

Control-Flow Patterns
اولین دسته از Work Flow Pattern ها مجموعه ای از 20 الگو متفاوت است که کنترل روند اجرای یک سیستم گردش کار را تشریح می کنند. به این دسته الگو جریان کنترلی (Control Flow Pattern) می گویند. بعد از ساخته شدن این الگو ها، آنها به صورت گسترده ای در طراحی و توسعه سیستم‌های گردش کار در بخش های مختلف سازمان ها و محیط های دانشگاهی مورد استفاده قرار گرفته اند. در ادامه  شرح کوتاهی از زیر مجموعه های این الگوها مورد بررسی قرار می گیرند. علاوه بر این 20 الگو، 23 الگوی جدید مناسب نیز به این الگوها اضافه شده‌اند که در ادامه این الگوها به صورت دسته بندی شده معرفی خواهند شد.

Basic Control Flow Patterns (الگوهای اولیه کنترل جریان کار)
این دسته از الگوها جنبه های متفاوت از کنترل فرآیند را مدنظر قرار داده اند. و تعریف این مفاهیم را بر عهده دارند و هدف ابتدایی آنها پیوستگی مدیریت جریان کار می باشد. لیست الگوهای این دسته در زیر ارائه شده اند، لازم به ذکر است که تمامی این 5 الگو جزء 20 الگوی اولیه بوده اند.

1- Sequence (ترتیب و توالی)

      

 

2- Parallel Split (تقسیم موازی)

      

 

3- Synchronization (همگام سازی)

      

 

4- Exclusive Choice (انتخاب انحصاری)

      

 

5- Simple Merge (ادغام ساده)

      

 

Advanced Branching and Synchronization Patterns (الگوهای همزمانی و منشعب پیشرفته)
در اینجا ما یک سری از الگوهایی که پیچیدگی های بیشتری از مفاهیم انشعاب و الحاق را دارا هستند، تشریح می کنیم. این الگوها در مدیریت فرآیندهای کسب و کار بسیار مورد استفاده قرار می گیرند. اگرچه این الگوها در اغلب سیستم ها حتی به منظور انجام کارهای معمولی هم پشتیبانی نمی شوند، اما آنها  قادر به پاسخ گویی به بسیاری از نیازهای تخصصی در فرآیندهای تجاری هستند. 4 الگو از این نوع، جزء 20 الگوی اولیه بوده اند که این الگوها عبارتند از:

  • Multi-Choice (چند انتخابی)
  • Synchronizing Merge (ادغام همگام)
  • Multi-Merge (ادغام چندگانه)
  • Discriminator (تفکیک کننده)

 

در این بازبینی، مورد اول (چند انتخابی) و مورد سوم (ادغام چندگانه) با همان مفاهیم قبلی حفظ شده اند، هر چند مفاهیم عملیاتی بیشتری به اسناد رسمی آن‌ها اضافه شده است. اما برای الگوهای دیگر، هر کدام از آن ها تبدیل به چندین الگوی مستقل شده اند. به عنوان مثال الگوی اولیه ادغام همگام  تبدیل به سه الگوی اصلی با نام های زیر شده است:

  • Structured Synchronizing Merge (ادغام همگام ساختاریافته)
  • General Synchronizing Merge (ادغام همگام عمومی)
  • Acyclic Synchronizing Merge (ادغام همگام غیر مدور)

 

به همین ترتیب الگوی اولیه مورد چهارم (تفکیک کننده)  تبدیل به 6 الگوی مجزا شده است که عبارتند از :

  • Structured Discriminator (تفکیک کننده ساختار یافته)
  • Blocking Discriminator (تفکیک کننده دارای مانع)
  • Cancelling Discriminator (تفکیک کننده دارای لغو)
  • Structured Partial Join (پیوند جزئی ساختار یافته)
  • Blocking Partial Join (پیوند جزئی دارای مانع)
  • Cancelling Partial Join (پیوند جزئی دارای لغو)

 

 یکی دیگر از الگوهای اضافه شده Generalized AND-Join (پیوند AND تعمیم یافته) نام دارد که از AND-join در فرآیندهای همزمانی بسیار انعطاف پذیرتر و مفیدتر می باشد.
لیست این دسته از الگوها به شرح زیر می باشند:

۱- Multi-Choice (چند انتخابی)
۲- Structured Synchronizing Merge (ادغام همگام ساختاریافته)
۳- Multi-Merge (ادغام چندگانه)
۴- Structured Discriminator (تفکیک کننده ساختار یافته)
۵- Blocking Discriminator (تفکیک کننده دارای مانع)
۶- Cancelling Discriminator (تفکیک کننده دارای لغو)
۷- Structured Partial Join (پیوند جزئی ساختار یافته)
۸- Blocking Partial Join (پیوند جزئی دارای مانع)
۹- Cancelling Partial Join (پیوند جزئی دارای لغو)
۱۰- Generalized AND-Join (پیوند AND تعمیم یافته)
۱۱- Local Synchronizing Merge (ادغام همزمانی به صورت محلی)
۱۲- General Synchronizing Merge (ادغام همزمانی به صورت عمومی)
۱۳- Thread Merge (ادغام نخ ها)
۱۴- Thread Split (تقسیم نخ ها)

 

Multiple Instance Patterns (الگوهای چندین نمونه ای)
الگوهای نمونه‌های چندتایی وضعیت هائی که در نمونه های متفاوت یک فعالیت، در فرآیندهای متفاوت در حال اجرا وجود دارند و نیزمرتبط با همان نمونه هستند را تشریح می کند. نمونه های مختلف می توانند در سه وضعیت بوجود بیایند :

  1. یک فعالیت هنگام آغاز کار می تواند چندین نمونه از خود را بسازد(ما این شکل از فعالیت را فعالیت های چند نمونه ای می گوئیم)
  2. فعالیتی که در هنگام آغاز، یک نمونه می سازد و در نتیجه توسط چندین فراخواننده مستقل چندین نمونه از آن ساخته می شود
  3. دو یا چند فعالیت در یک فرآیند، در تعریف پیاده سازی مشترک باشند. به عبارتی دو یا چند فعالیت هنگام فراخوانی شدن و در هنگام اجرای آن پیاده سازی مشترک ساخته می شوند.

 

برای تحت پوش قرار دادن مفاهیم عملیاتی الگوی چند نمونه ای سه الگوی جدید به نام های زیر ایجاد شده اند:

  • (Static Partial Join for Multiple Instances (WCP34 (پیوند جزئی که به صورت ایستا است و برای چندین نمونه به کار می رود)
  • (the Cancelling Static Partial Join for Multiple Instances (WCP35 (پیوند جزئی دارای لغو که ایستا است و برای چند نمونه به کار می رود)
  • the Dynamic Partial Join for Multiple Instances (پیوند جزئی که به صورت پویا است و برای چند نمونه به کار می رود)

 

لیست این دسته از الگوها به شرح زیر می باشد:

1- Multiple Instances without Synchronization (چندین نمونه بدون همزمانی)
2- Multiple Instances with a Priori Design-Time Knowledge (چندین نمونه به همراه دانش پیشین در زمان طراحی)
3- Multiple Instances with a Priori Run-Time Knowledge (چندین نمونه به همراه دانش پیشین در زمان اجرا)
4- Multiple Instances without a Priori Run-Time Knowledge (چندین نمونه بدون دانش پیشین در زمان اجرا)
5- Static Partial Join for Multiple Instances (پیوند جزئی که به صورت ایستا است وبرای چندین نمونه به کار می رود)
6- Cancelling Partial Join for Multiple Instances (پیوند جزئی که دارای لغو است و برای چند نمونه به کار می رود)
7- Dynamic Partial Join for Multiple Instances ( پیوند جزئی که به صورت پویا است وبرای چندین نمونه به کار می رود)

 

State-based Patterns ( الگوهای  وضعیت گرا)
الگوهای وضعیت گرا  آسان ترین روش برای انجام امور، در زبان فرآیند را به کمک مفهوم هر حالت معرفی می نماید. الگوهای اولیه سه الگو بوده اند. Deferred Choice (تصمیم انتخاب انشعاب اصلی که برای برقراری ارتباط با محیط بر عهده این الگو می باشد.)، Interleaved Parallel Routing (جایی که دو یا چند فعالیت زنجیره ای وجود دارند و باید در هر زمان داده شده یک نمونه فعالیت اجرا شود) و الگوی Milestone که یک فعالیت را در زمانی فعال و اجرا می کند که فرآیند در یک وضعیت خاص تعریف شده ای باشد. همچنین دو الگوی Critical Section و Interleaved Routing در تحقیقات بعدی به این الگوها اضافه شدند.

 

Cancellation and Force Completion Patterns (الگوهای لغو و اتمام اجباری)
در هنگام اجرای یک نمونه فرآیند خطاهای گوناگونی ممکن است اتفاق بیفتد و لذا اجرای این نمونه ها یا باید لغو شوند و یا باید بالاجبار به پایان برسند. برای این کار 5 الگوی زیر تعریف شده اند:

1-  Cancel Task (لغو وظیفه)
2-  Cancel Case (لغو مورد)
3- Cancel Region (لغو ناحیه ای)
4-  Cancel Multiple Instance Activity (لغو فعالیت‌های چندین نمونه)
5-  Complete Multiple Instance Activity (تکمیل فعالیت‌های چندین نمونه)

 

Iteration Patterns (الگوهای تکرار شونده)
الگوهای تکرار شونده به بررسی رفتارهای تکرار در فرآیند می پردازند این الگوها شامل موارد زیر است: 

  • Arbitrary Cycles (چرخه دلخواه)
  • Structured Loop (حلقه ساختاریافته)
  • Recursion (بازگشت)

 

Termination Patterns (الگوهای پایان دهنده)
این الگوها بررسی می‌کنند که چگونه یک نمونه فرآیند به صورت صحیح کامل شده است. این الگوها دو مورد هستند:

1- Implicit Termination (خاتمه ضمنی)
2- Explicit Termination (خاتمه صریح)

 

Trigger Patterns (الگوهای راه انداز)
الگوهای زیر تشریح می کند که چگونه یک سیگنال خارجی می تواند باعث شروع یک فرآیند و یا تغییر وضعیت یک فعالیت شود. این الگوها نیز دو مورد هستند:

1- Transient Trigger 
2- Persistent Trigger

در بخش های بعدی همین مطلب به تشریح دیگر الگو ها خواهیم پرداخت.


منابع: Workflow-Patterns

Bizagi - Detailed Workflow Patterns Description

ترجمه و گردآوری: علی سیفائی


 

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

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

بیشتر بدانید

ارتباط با ما

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

  • BPMS@rayvarz.com

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