چرا از WorkFlow در پروژههای نرم افزاری استفاده میشود ؟
زمانیکه در حال انجام یک پروژه نرم افزاری هستید که این پروژه دارای پیچیدگی خاصی از لحاظ فرآیند و قوانین کاری میباشد بهترین راه حل Workflow Engine یا BPMS Engine میباشد.
البته شایان ذکر میباشد که میان این دو Engine تفاوتهای بسیاری وجود دارد. شاید خیلی از برنامه نویسها از خود این سوال را بپرسند که تمام قوانین کاری و فرآیندهای یک سازمان را میتوان با کد نویسی انجام داد، چه نیازی به این Engineها برای مکانیزه کردن فرایندهای یک سازمان است؟
جواب این سوال را با یک مثال ساده آغاز میکنم :
فرض کنید یک فرآیند خیلی ساده داریم که کار آن دریافت اطلاعات از بانک اطلاعاتی و ارسال آن به مدیر بخش و دریافت تایید از طرف مدیر میباشد. این کار توسط دو کاربر انجام میشود که در سازمان نقش و سطح دسترسی مختلفی را دارا میباشند و به این نکته توجه کنید و آن اینکه فرض کنید زمانیکه نرم افزار شما در سازمانی در حال انجام کار میباشد به شما خبر داده میشود که کاربر x به مرخصی رفته و نقش آن به کسی دیگر سپرده شده است و این کار باید از طریق سیستم و با تایید مدیر انجام شود و یا سطح دسترسی افراد در سازمان عوض شود. این سادهترین فرآیندی است که در زمان انجام پروژه با آن رو به رو میشویم .
اگر این فرآیندهای ساده را بخواهیم با 100% کد نویسی انجام دهیم، تعداد خط کدها بسیار زیاد، زمان بر و انرژی زیادی از گروه گرفته میشود و مشکل به تعداد خط کد زیاد نیست، مشکل اصلی آن جایی است که برای پروژه بعدی قصد استفاده از این سیستم را داشته باشیم و نیاز به تغییر در بعضی از قسمتهای سیستم باشد در این قسمت است که بیشترین زمان و انرژی از گروه گرفته میشود ولی در صورت استفاده از Workflow میتوان در کمترین زمان و هزینه، پیچیدهترین Business Logicها را پیاده سازی کرد.
نکته دیگری که در مورد اینگونه Engineها باید گفته شود این است که در معماری SOA نقش فراوانی را دارا میباشند .