वर्कफ़्लो इंजन का उपयोग कब करें?


41

मैंने प्रोग्रामर इंजन के कुछ प्रोग्रामर के रूप में अतीत में काम किया है, लेकिन कभी भी इस बात की स्पष्टता नहीं थी कि हमने पहली जगह में वर्क-फ्लो इंजनों को क्यों चुना। और प्रोग्रामर के रूप में मुझे पता है कि जब आप कोड लिख रहे हैं तो कुछ भी करने के लिए कम से कम 100 तरीके हैं लेकिन केवल कुछ ही तरीके सबसे अच्छे हैं!

मुझे अभी भी समझ नहीं आ रहा है कि कौन से उपयोग के मामले अच्छे डीआई सक्षम एप्लिकेशन को डिजाइन करने की तुलना में वर्कफ़्लो इंजन (या बल्कि उनकी अवधारणा) द्वारा हल किए जाते हैं। मैं डोमेन-तटस्थ उपयोग के मामलों की किसी भी सामान्य विशेषताओं की तलाश कर रहा हूं, जहां काम-प्रवाह इंजन सबसे अच्छे विकल्पों में से एक हैं।

तो मेरा सवाल यह है: एक आवश्यकता के सामान्य लक्षण क्या हैं जो एक अच्छे वर्कफ़्लो इंजन के लिए चयन करने और इसके चारों ओर कोडिंग के लिए एक संकेत के रूप में लिए जा सकते हैं?


1
"DI सक्षम अनुप्रयोग" क्या है?
१ .:

मैं निर्भरता इंजेक्शन पर बस गया, लेकिन यह कुछ भारी सोच लिया ...
jewewman

1
@JasonTrue ओह, तो आपने भी विंडोज वर्कफ़्लो फाउंडेशन का उपयोग किया है!
गाइल्स

@ गिल्स आप कैसे बता सकते हैं? : पी
जेसनट्र्यू

जवाबों:


22

एक वर्कफ़्लो इंजन तब उपयोगी होता है जब आपको शुरू से अंत तक जाने की आवश्यकता होती है लेकिन वहाँ पहुंचने के लिए कई अलग-अलग रास्ते / तर्क / नियम हैं।

उदाहरण के लिए, मान लें कि मैं एक कार्यक्रम लिखता हूं जो सामग्री प्रकाशित करता है। इसलिए, मेरे मामले में, प्रकाशन समीक्षा प्रक्रिया, कानूनी और फिर अंतिम अनुमोदन से गुजरता है। मैं अपनी प्रक्रिया तर्क और चरणों को लागू करने वाले कार्यक्रम को लिखता हूं। अब यह मेरे और मेरी कंपनी के लिए बहुत अच्छा है। इसलिए, मैं तय करता हूं कि दूसरों को मेरे कार्यक्रम का उपयोग करना चाहिए।

दुर्भाग्य से, हर कोई एक ही प्रक्रिया का उपयोग करके सामग्री प्रकाशित नहीं करता है, इसलिए प्रत्येक अलग-अलग मामले के लिए अलग-अलग प्रक्रियाएं लिखने के बजाय, हम एक कार्य प्रवाह प्रक्रिया को लागू करेंगे ताकि कार्यक्रम सभी को समायोजित करने के लिए लचीला हो। कोई फर्क नहीं पड़ता कि उन दो बिंदुओं के बीच कितने चरण या नियम या तर्क हैं परिणाम समान है।

इसलिए, यदि आपके पास ऐसी प्रक्रियाएं हैं जो शुरू से अंत तक परिवर्तनीय हैं, तो वर्कफ़्लो का उपयोग करें। यदि एक ही प्रक्रिया सभी द्वारा उपयोग की जा सकती है, तो आपको वर्कफ़्लो की आवश्यकता नहीं है।


लेकिन यह वास्तविक दुनिया से कैसे जुड़ता है? आप एक के अनुसार, "प्रक्रिया रिकॉर्ड" पर नज़र रखने के राज्य के साथ एक डेटाबेस के लिए होता है statechart उदाहरण के लिए, लेकिन फिर आप अभी भी यूजर इंटरफेस और सचेतक, संदेश आई / ओ से अधिक संदेश प्रणाली, ईटीएल नौकरी आदि कोड की जरूरत है और फिर यह सब डाल एक संचार केंद्र के केंद्र में है और इसे चलाते हैं। क्या "वर्कफ़्लो इंजन" स्टेटचेयर को स्थापित करने और "इसे चलाने" का एक फैंसी तरीका है?
डेविड टोनहोफर

@ डेविड - एक हद तक, हां।
जॉन रेन्नोर

19

मुझे पता है कि आपने उपयोग के मामलों के लिए कहा है, लेकिन सभी संभावित उपयोग मामलों की कल्पना करने की तुलना में फायदे को सूचीबद्ध करना आसान है। बेशक आपके द्वारा तुलना की जा रही इंजन और भाषा पर निर्भर करता है, लेकिन सामान्य तौर पर:

  1. नियमों को कोड के बजाय डेटा के रूप में रखने का मतलब है कि आपको पुनर्संयोजन करने की आवश्यकता नहीं है, इसलिए आप जल्दी से बदलावों का परीक्षण कर सकते हैं, रन टाइम में बदलाव कर सकते हैं, आदि का एक बहुत फायदा नहीं है, यदि आपको पहली जगह में पुनर्मिलन नहीं करना है, हालांकि।

  2. उपयोगकर्ता नियमों को संपादित करने के लिए और अधिक उचित उम्मीद कर सकते हैं। वे संभावित रूप से उन लोगों के साथ अंतःक्रियात्मक तरीके से छेड़छाड़ कर सकते हैं जो प्रोग्रामर के लिए कोड लिखने के दौरान संभव नहीं हैं।

  3. नियमों को डेटा के रूप में रखने से उपकरण को डेटा को देखने और बदलने के लिए लिखा जा सकता है।

  4. नियमों को ध्यान में रखते हुए डेटा मेटा-प्रोग्रामिंग को अधिक आसानी से अनुमति देता है - आप डेटा का विश्लेषण करने और कुछ जटिल तरीके से अधिक सम्मिलित करने के लिए कोड लिख सकते हैं, जो कोड के लिए बहुत मुश्किल होगा।

इन सभी चीजों को कोड के साथ सीधे करना संभव है (जैसे - एक निश्चित प्रकार के सभी नियमों को खोजने के लिए एक सी # पार्सर लिखें और अधिक नियमों के लिए कोड उत्पन्न करें, इसे विधानसभा में गतिशील तरीके से सम्मिलित करें जो विधानसभा अनलोडिंग की अनुमति देता है, के लिए उपकरण लिखें उपयोगकर्ता आपके विज़ुअलाइज़र और संपादक का उपयोग करने के साथ-साथ ऐसा करने में सक्षम हो सकते हैं, लेकिन आपकी भाषा के आधार पर बहुत अधिक कठिन हो सकते हैं (लिस्प का उपयोग करने वाले प्रोग्रामर "प्रोग्रामिंग" के रूप में 1-4 आइटम का उल्लेख कर सकते हैं)।


5
इनमें से कोई भी वास्तव में किसी भी आकार के किसी भी जटिल परियोजना में एक फायदा नहीं है। आप अपने आप को किसी और के नियमों को "डिबगिंग" पाएंगे जो पर्याप्त परीक्षण या प्रलेखन के बिना उत्पादक वातावरण में फेंक दिए गए थे।
जेम्स एंडरसन

लिस्प संदर्भ के लिए +1 - कोड डेटा है, और इसके विपरीत।
माइकल एच।

2
@JamesAnderson: ग्राहक को छोड़कर अब अपने स्वयं के नियमों का निवारण करने के लिए अपने स्वयं के गैर-प्रोग्रामर (वर्कफ़्लो सलाहकार) का भुगतान कर सकते हैं, बिना सॉफ्टवेयर विक्रेता के साथ एक समर्थन मामला दर्ज किए बिना।
rwong

3

IMHO केवल उस मामले में जहां आपको इस तरह की चीजों का उपयोग करना चाहिए, जब इसे कम मूल्यवान उपयोगकर्ताओं द्वारा कॉन्फ़िगर किया जा सकता है। यदि आप उन्हें एक उपकरण देकर अपनी समस्या को हल कर सकते हैं तो किसी और चीज़ पर काम करने के लिए वापस जाना अधिक महत्वपूर्ण है तो एक का उपयोग करें।

यदि आपको अभी भी उनके लिए इसे स्थापित करने की आवश्यकता है, तो मुझे लगता है कि आप 10 अलग-अलग तरीकों से सोच सकते हैं कि एक उपकरण के साथ एक ही परिणाम प्राप्त करें जो आप परिचित हैं और समर्थन और अनुकूलित करना बहुत आसान होगा।


3

यह एक पुराने प्रश्न जैसा दिखता है, लेकिन जंगली में कई बार सतहों। मैं जॉन के जवाब से सहमत हूं । मैंने निम्न परिदृश्यों में वर्कफ़्लो इंजनों को अत्यधिक उत्पादक पाया है:

  1. एक अंतर्निहित व्यावसायिक प्रक्रिया है जिसे आप अपने सॉफ़्टवेयर के माध्यम से प्रतिनिधित्व / कार्यान्वित करने का प्रयास कर रहे हैं।
  2. एक एकल (शायद मिश्रित) व्यावसायिक इकाई है जो प्रक्रिया में सभी या कुछ चरणों में काम की है। जॉन ने जो उदाहरण दिया, उसमें यह संस्था या वर्कफ़्लो आइटम कंटेंट या एक लेख होगा। एक वर्कफ़्लो के दूसरे उदाहरण के रूप में बग ट्रैकिंग पर विचार करें, एक उपयोगकर्ता द्वारा की जाने वाली कार्रवाई के आधार पर विभिन्न राज्यों के बीच एक बग संक्रमण।
  3. अपनी प्रक्रियाओं को मॉडल करने के लिए वर्कफ़्लोज़ का उपयोग करें, केवल तभी जब आप व्यवसाय प्रक्रिया को बदलने की अपेक्षा करते हैं, परिवर्तन से मेरा मतलब उपयोगकर्ता कार्रवाई या संक्रमण के परिणामस्वरूप किए गए अनुक्रम या क्रिया से है।

यह देखने के लिए बहुत सावधान और आलोचनात्मक रहें कि क्या आपकी समस्या डोमेन / आवश्यकताओं की व्यावसायिक प्रक्रिया है, इसे किसी वर्कफ़्लो में "फिट" करने का प्रयास न करें।


मुझे इस जवाब के बारे में जो बात पसंद है, वह है "मॉडलिंग" के बारे में आपकी प्रक्रिया, यानी एक व्हाइटबोर्ड पर ड्राइंग। मुझे लगता है कि बहुत उदाहरण देकर स्पष्ट करना होगा कि क्या एक कार्यप्रवाह इंजन लागू होगा (ये उत्तर में दिए गए सुझावों के आधार पर)
thieben डेव

1

मेरे पास कुछ दिशानिर्देश हैं जिनका उपयोग मैं कार्य-प्रवाह इंजन के सुझाव के लिए करता हूं।

1) जब व्यापार विश्लेषकों की कोई कोडिंग पृष्ठभूमि नहीं है, लेकिन आरेख खींच सकते हैं।

आधुनिक कार्य प्रवाह इंजन व्यावसायिक प्रक्रिया मॉडलिंग संकेतन, या SharePoint और इसी तरह की प्रणालियों में उपलब्ध कम सक्षम संस्करणों का उपयोग करते हैं। ये तकनीकी रूप से सक्षम हैं, फिर भी टीम के सदस्यों को कोडिंग-चुनौती देने के लिए कई कार्य प्रवाह को डिजाइन और विकसित करने के लिए।

2) जब आपको काम की प्रगति की निगरानी करने की आवश्यकता होती है, तो कंप्यूटर-नियंत्रित प्रक्रियाओं और मानव-नियंत्रित प्रक्रियाओं के बीच आगे और पीछे फ्लिप करें।

मॉनिटरिंग और सेल्फ-रेफरेंस आधुनिक वर्क फ्लो इंजन की पहचान हैं।


-2

एचआर व्यावसायिक दृष्टिकोण से, काम प्रवाह इंजन बहुत महत्वपूर्ण हैं।

  1. वे एक संरचित प्रक्रिया प्रदान करते हैं, भले ही वह हर बार समान हो।
  2. वे पारदर्शिता प्रदान करते हैं

    • परिवर्तन का अनुरोध किसने किया,
    • जब यह अनुरोध किया गया था,
    • किसने मंजूरी दी आदि।

    यह पारदर्शिता प्रक्रिया को चलाने में मदद करती है और स्वामित्व को बढ़ावा देती है।

रूपों को एकीकृत और बुद्धिमान मानते हुए, व्यापारिक तर्क का समर्थन करते हुए, यह समयरेखा, प्रसंस्करण दक्षता और डेटा गुणवत्ता पर एक नाटकीय प्रभाव डालता है। सुरक्षा भी एक विचार है और एक सुरक्षित प्रणाली में संवेदनशील जानकारी होने पर हस्ताक्षर किए जाने की प्रतीक्षा में चारों ओर कागज के रूप में रखना बेहतर होता है। यह बहुत अधिक मोबाइल भी है। हाल ही में लागू होने के बाद, एक प्रबंधक ने मुझे बताया कि इसने उन्हें हस्ताक्षर करने के लिए पोस्ट की जाने वाली चीजों को प्राप्त करने में बहुत परेशानी से बचाया क्योंकि उन्होंने बहुत यात्रा की।

एचआर की ओर से: लंबे समय तक रहने वाले वर्कफ़्लो !!!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.