از اولین باری که اسم Windows Workflow را شنیدم فکر میکردم قرار است از این تکنولوژی برای راحتتر کردن پیادهسازی Workflowهای معمول سازمانها استفاده شود. حتی در شرکت قبلی این نقشه را داشتم که از WF برای پیادهسازی Workflow در شرکت مشتری استفاده کنم. اما زهی خیال باطل. چون به تازگی به خاطر نیازی که در Team Build 2010 به Workflow پیدا کردم متوجه شدم WF برای آن کار مناسب نبوده است. برای درک بهتر موضوع میتوان Workflowها را به دو نوع اداری و برنامهای تقسیم کرد:
Workflow اداری: منظور روش انجام کار در ادارات و سازمانهاست. وقتی که شما به یک اداره رفته و درخواستی را به کارمند «الف» ارائه میدهید یک Workflow را شروع کردهاید. این درخواست مثلاً میتواند به کارمند «ب» رفته و همین طور در آن اداره در اثر شرایط و ترتیب معین بین افراد مختلف گردش کرده تا نهایتاً به یک حالت خاص برسد. خیلی از نرمافزارهای معمول اداری چنین امکانی را پیادهسازی کرده و به کاربر اجازه میدهند Workflow دلخواه خودش را تعریف و در سیستم استفاده کند. این نرمافزارها معمولاً از هیچ فناوری خیلی خاصی به جز امکانات معمول platform توسعه نرمافزار استفاده نمیکنند.
WorkFlow برنامهای: Workflow را در سطح یک نرمافزار تشریح میکند. به عنوان یک مثال خیلی ساده، فرض کنید بخشی از یک نرمافزار شامل استخراج رکورد خاصی از اطلاعات، تصمیم گیری بر اساس اطلاعات موجود در آن رکورد، ارسال ایمیل، نمایش پیغام و بعضی کارهای دیگر بر اساس آن تصمیمگیری باشد. روال توضیح داده شده در اینجا را میتوان به صورت یک Workflow چند بخشی بیان کرد.
Windows Workflow Foundation یا WF برای پشتیبانی از Workflow برنامهای ایجاد شده است. WF کمک میکند که هر کدام از تکههای خیلی بزرگ نرمافزار به یک Activity تبدیل شود. این تکهها بعداً در قالب یک Workflow با هم ارتباط پیدا میکنند. نهایتاً این Workflow در جایی host شده و توسط WF Runtime شروع به اجرا میکند. WF مدعیست به برنامهنویسان امکان میدهد تا بخشها مختلف Workflow به طور موازی و در کامپیوترهای مختلف به اجرا درآورند. در واقع شعار WF نوشتن برنامههای بزرگی است که به راحتی برنامههای کوچک قابل توسعه و نگهداری هستند.
اما چرا نمیتوان یک Workflow اداری را با کمک WF پیاده سازی کرد؟ چون به نظز من یک Workflow اداری اولاً تشکیل شده از قطعاتی از اطلاعات نه قطعاتی از نرمافزار، ثانیاً نباید از کاربر اداری توقع داشت برای تعریف Workflow از ویژوال استودیو و XAML استفاده کند، ثالثاً استفاده از WF نیاز به Build مجدد نرمافزار دارد که این امکان در محیط کاربر اداری فراهم نیست، رابعاً WF ابزار بیش از حد بزرگی برای انجام این کار است. انجام این کار با WF مثل این است که برای بلند کردن یک دوچرخه معمولی از یک جرثقیل چند ده تنی استفاده شود.
Comments
نه به شکل ۱۰۰ درصد اما با این نوشته شما مخالفم
با اینکه تعریفتاناز WF صحیح بود اما به نظر من در نتیجه گیری اشتباه کردید. بطور کلی wf برای گردش کاری برنامه هست اما فراموش نکنید که خود برنامه گردش کاری هم یک برنامه است و بعضا آن قدر بزرگ است که لازم می شود برای پیاده سازی مفاهیم آن چیزی مثل WF ایجاد شود. گرچهاستفاده اصلی آن همان است که شما گفتید اما یک برنامه گردش کاری حرفه ای برنامه کوچکی نیست.
سناریو های زیر رادر نظر بگیرید
یک سیستم انبارداری که کاربر در آن انبار تعریف می کند سالی چند بار شمارش انبار دارد و می تواند بین این شمارش ها اعمال مختلفی انجام دهد که هر یک درواقع یک sequence از دربرنامه ماست.
با این سناریو حتی با چند دستور ساده می توان کل گردش کاری را کنترل کرد و اصلا نیازی به استفاده از wf ندید گرچه مشخصا استفاده از wf بازدهی را بالا خواهد برد
سناریو دو
سازمانی مثل شرکت نفت و یا شرکت های چند ملیتی را در نظر بگیرید و یا حتی سازمان های بالای ۱۵ هزار کارمند. برای پیاده سازی یک گردش کاری ساده در چنین سازمانهایی عملا با چند دستور ساده نمی توان گردش کرای را کنترل کرد چراکه معماری و کد نویسی به حد زیادی پیچیده می شود و دلیل پیاده سازی wf هم ساده سازی همین عملیات است چرا که اگر هر بخش به شکل یک activity دیده نشود عملا سیستم از ادامه کار باز خواهد ماند
نظر شما چیست
استفاده از این مفاهیم در شیرپوینت معنی پیدا میکند. الگو سازی گردش کار های اداری – حتی در ادارات بی در و پیکر خودمان – یک صورت مسئله معمولی در میان توسعه دهنده های شیرپوینت است. اگر به این مباحث علاقمندید، پیشنهاد میکنم پیاده سازی یک گردش کار ساده در شیرپوینت را تست کنید
ناصر:
باید اذعان کنم ور رفتن با WF برای من گیج کننده است و خیلی دوست دارم بیشتر اونو بفهمم. با این وجود یک موضوع وجود دارد آن هم که ما معمولاً برنامههای آنچنان بزرگی که در سطح یک وزارت خانه به طور یکپارچه اجرا شود نمینویسیم. البته فکر میکنم چنین برنامههایی کلا در ایران وجود هم نداشته باشند.
حسین: آیا شیرپوینت از همین تکنولوژی Windows Workflow Foundation استفاده میکند؟ منبع مناسبی برای این موضوع سراغ داری؟ آخه بدم نمیاد ی امتحانی بکنم.
"چون به نظز من یک Workflow اداری اولاً تشکیل شده از قطعاتی از اطلاعات نه قطعاتی از نرمافزار"
workflow از قطعاتی از اطلاعات تشکیل نشده و یک روند رو نشون میده. در این روند اطلاعات هم وجود دارند ولی باز هم دلیل نمشیه که بخوایم اون رو چیز جدایی بدونیم.
"ثانیاً نباید از کاربر اداری توقع داشت برای تعریف Workflow از ویژوال استودیو و XAML استفاده کند"
شما میتونید از این designer در نرم افزارهای خودتون استفاده کنید. در مورد Workflow Designer Re-Hosting تحقیق کنید.
"ثالثاً استفاده از WF نیاز به Build مجدد نرمافزار دارد که این امکان در محیط کاربر اداری فراهم نیست"
الزاما نیازی به این کار نیست و میشه Workflow ها رو در حین اجرا هم لود کرد.
"رابعاً WF ابزار بیش از حد بزرگی برای انجام این کار است. انجام این کار با WF مثل این است که برای بلند کردن یک دوچرخه معمولی از یک جرثقیل چند ده تنی استفاده شود."
این که مثلا SQLServer ابزار بزرگی هست، دلیل نمیشه برای کار کوچکی مثل دفترچه تلفن ازش استفاده نکنیم!
منبع خوب زیاده. یکیش این: http://msdn.microsoft.com/en-us/library/ms414613.aspx
با این کلمات کلیدی سرچ کنی، نتیجه های جالبی میبینی :
SharePoint Workflow Development
مقاله و نظرات بسيار خوبي بود. با توجه به اينکه آخرين سابقه برنامه نويسي من روي دات نت فريمورک 2 بود، خون اين بچه هاي برنامه نويس شرکت را به شيشه کرده بودم که بايد از اين امکانات با جاي ورک فلو انجين طراحي شده خود شرکت استفاده کنند که حالا موضوع را کامل درک کردم . اما براي ورک فلو سازماني مي تواند از ورک فلو انجين اوراکل و يا موارد مشابه بسياري استفاده کرد.
مهدی، حسین: از راهنماییها واقعاً ممنونم. مطمئناً دفعه بعدی که سراغ WF برم حتما راجع به این موضوعات هم تحقیق خواهم کرد.
در صورت تمایل به مستند سازی فرآیند های سازمانی پیشنهاد می کنم سه پست اول این سایت را از دست ندهید :
http://esmram.com
در مورد مستند نمودن نمودار گردش کار در نرم افزار بهتر است نسبت به نوع پروژه، از نظر موضوع و اندازه تصمیم گیری کنید. یکپارچگی WF با محیط vs.net می تواند دلیل خوبی برای استفاده از آن برای مستند نمودن نمودار گردش کار نرم افزار باشد.
[url=http://buycialispremiumpharmacy.com/#ndoiy]buy cheap cialis[/url] – buy cheap cialis , http://buycialispremiumpharmacy.com/#vjzrf buy cialis online
[url=http://buyviagrapremiumpharmacy.com/#imlbg]buy viagra online[/url] – buy viagra online , http://buyviagrapremiumpharmacy.com/#hawwm buy viagra
[url=http://viagraboutiqueone.com/#zlgpu]cheap viagra[/url] – viagra 50 mg , http://viagraboutiqueone.com/#tqkrs viagra 100 mg
[url=http://buyonlineaccutanenow.com/#gzqtl]cheap generic accutane[/url] – generic accutane , http://buyonlineaccutanenow.com/#ctfxz buy accutane online
سلام بر همه دوستان
ما قصد داریم یک ورک فلو بنویسیم
اگر داکیومتی یا نموداری دارید که کمک کنه لطفا برای ما ارسال نماید
Gheilton@yahoo.com