در این مطلب تعریف گردش کار و اجزای آن ارائه شده است، در آینده نزدیک الگوهای کنترل جریان، تخصیص داده و منابع در گردش کار را ارائه خواهم نمود.
یک گردش کار یا یک مدل گردش کار ، توصیف یک فرآیند کسب و کار با جزئیات کافی است که بتواند مستقیماً توسط سیستم مدیریت گردش کار اجرا شود. یک مدل گردش کار از تعدادی وظیفه"Task" تشکیل شده است که به صورت یک گراف جهت دار به هم متصل می شوند.
به یک نمونه اجرایی از یک مدل گردش کار ، یک نمونه فرآیند "Process Instance" یا مورد"Case" گفته می شود. ممکن است چندین مورد(Case) وجود داشته باشد که در یک مدل گردش کار (workflow model) خاص به طور همزمان اجرا شود ، اما فرض بر این است که هر یک از اینها وجود مستقلی دارند و آنها معمولاً بدون مراجعه به یکدیگر اجرا می شوند.
یک وظیفه(task) مربوط به یک واحد کار(unit of work) است. چهار نوع وظیفه متمایز مشخص شده اند: اتمیک Atomic، بلوکی Block ، چند نمونه ای multi-instance و چند نمونه ای بلوکی multi-instance block. ما از اصطلاح عمومی اجزا (components) گردش کار برای اشاره به همه کارهایی که یک مدل گردش کار مشخص را تشکیل می دهند استفاده می کنیم.
- وظیفه اتمی "Atomic Task" وظیفه ای است که دارای یک تعریف ساده و خودشمول باشد (یعنی تعریفی که از نظر سایر وظایف گردش کار توصیف نشده است) و هنگام شروع فقط یک نمونه از آن اجرا می شود.
- وظیفه بلوکی "Blocked Task" یک عمل پیچیده است که اجرای آن با توجه به یک گردش کار فرعی توصیف می شود. هنگامی که یک کار بلوک شروع می شود ، آن کنترل را به اولین کار (ها) در گردش زیر کار مربوطه منتقل می کند. این گردش کار فرعی تکمیل می شود و در پایان ، کنترل را دوباره به کار بلوک منتقل می کند.
- یک وظیفه چند نمونه ای "multiple-instance task " وظیفه ای است که ممکن است چندین مورد اجرای مجزا بصورت همزمان در همان گردش کار داشته باشد. هر یک از این نمونه ها به طور مستقل اجرا می شوند. فقط وقتی تمام نمونه ها به اتمام می رسند ، وظیفه بعدی آغاز می شود.
- یک وظیفه بلوکی چند نمونه ای "multiple-instance block task " ترکیبی از دو سازه قبلی است و وظیفه ای را نشان می دهد که ممکن است دارای چندین نمونه اجرای مجزا باشد که هرکدام از آنها دارای ماهیت بلوکی هستند (به عنوان مثال دارای یک جریان کار فرعی مربوطه است).
جریان کنترل(Control Flow) بین وظایف (tasks) از طریق کانال کنترل رخ می دهد که با یک پیکان ثابت بین وظایف نشان داده می شود. هر فراخوانی وظیفه(task) که اجرا می شود ، یک مورد کار (Work Item) نامیده می شود.
معمولاً برای هر وظیفه (task) در یک مورد(case)، یک مورد کار(work item) آغاز می شود، اما در مورد یک کار چند نمونه(multiple-instance task) ، ممکن است چندین مورد کار(work item) وجود داشته باشد که هنگام شروع کار ایجاد می شوند. به همین ترتیب، در جایی که کاری(task) بخشی از یک حلقه را تشکیل می دهد، برای هر تکرار یک مورد کار(work item) مشخص ایجاد می شود.
(1) توزیع کار به منابع (Work Distribution to Resources)
از دیدگاه منابع ، نحوه اعلان موارد کار(Work Items) از اهمیت ویژه ای برخوردار است، که در آن مورد کار در نهایت به منابع خاصی برای اجرا، ابلاغ می شود. شکل زیر چرخه حیات یک مورد کار را به شکل نمودار انتقال وضعیت(Transition State Diagram)، از زمان ایجاد یک مورد کار تا تکمیل یا خرابی نهایی نشان می دهد.
در ابتدا یک مورد کار در حالت ایجاد شده به وجود می آید. این نشان می دهد که پیش شرط های لازم برای فعال سازی آن برآورده شده و قابلیت اجرا دارد. در این مرحله ، اما مورد کار به منبعی برای اجرا اختصاص نیافته است و تعدادی مسیر ممکن برای این موارد وجود دارد. هر لبه در این نمودار با S یا R با پیشوند مشخص می شود که نشان می دهد انتقال به ترتیب توسط سیستم گردش کار(Workflow System) یا منبع(Resource) آغاز شده است.
· the created state
حالت ایجاد شده معمولاً توسط سیستم گردش کار آغاز می شود. آنها بر فعالیت آگاهی بخشیدن به منابع از موارد کاری که نیاز به اجرا دارند ، متمرکز هستند. این ممکن است به یکی از سه روش مشخصی که توسط حالات بعدی مشخص می شوند ، رخ دهد.
· offered to a single resource state
یک مورد ممکن است به یک منبع واحد ارائه شود به این معناست که سیستم گردش کار دقیقاً یک منبع را در مورد در دسترس بودن یک مورد کار مطلع کند. این کار ممکن است با ارسال پیام به منبع یا افزودن مورد کار به لیست موارد کار موجود که منبع می تواند مشاهده کند ، انجام دهد. بطور طبیعی این مفهوم سیستم انتخاب یک منبع خاص است که مورد کار باید به آن اعلان شود. این ممکن است به طرق مختلف اتفاق بیفتد - مدل فرآیند ممکن است شامل دستورالعمل های خاصی در مورد هویت منبعی باشد که یک مورد کار خاص باید به آن هدایت شود یا ممکن است بر اساس الزامات عمومی تری مانند استفاده از کمترین مشغله ، ارزانترین یا مناسب ترین منبع واجد شرایط در هر یک از این شرایط ، نیاز به تعیین منابع مناسب و مناسب برای انجام کار موردی و سپس رتبه بندی آنها و انتخاب مناسب ترین مورد وجود دارد.
· offered to a multiple resource state
وضعیتی که مورد کار به چندین منبع ارائه می شود ، جایی است که سیستم منابع مختلفی را از وجود یک مورد کار مطلع می کند. در این حالت ، سیستم به تمام منابع مناسب مورد کار اطلاع می دهد. اما تلاش نمی کند تا مشخص کند که کدام یک از آنها باید این کار را انجام دهند.
· allocated to a single resource state
تخصیص یافته به یک حالت منبع واحد بیانگر یک مورد کاری است که یک منبع خاص متعهد به اجرای آن در برخی از زمان های آینده شده است. یک مورد کاری ممکن است به این حالت پیشرفت کند زیرا سیستم گردش کار به طور پیش فرض موارد کار تازه ایجاد شده را به یک منبع اختصاص می دهد
یا به این دلیل که منبعی داوطلب می شود یک مورد کاری را که ارائه شده است ، انجام دهد.
توجه داشته باشید که چرخه حیات مورد کار نشان داده شده در شکل 2 فرض می کند که یک مورد توسط یک منبع انجام می شود ، بنابراین حالتی وجود ندارد که با "تخصیص یافته به چندین منبع" مطابقت داشته باشد.
· حالات بعدی در مدل توزیع کار started است، که نشان می دهد منبعی شروع به اجرای مورد کار کرده است ، سپس suspended (به حالت تعلیق درآمده) است که نشان می دهد منبع برای توقف اجرای مورد کار برای یک دوره انتخاب شده است ، اما قصد دارد در آن کار را ادامه دهد اگر انجام نشد ، که مشخص می کند مورد کار نمی تواند تکمیل شود و منبع دیگر روی آن کار نمی کند و completed که یک مورد را مشخص می کند که با موفقیت تا پایان اجرا شده است.
منبع: www.workflowpatterns.com