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


90

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

प्रशन:

  • हल करने के लिए वर्कफ़्लो इंजन का उपयोग करने में आपको किन समस्याओं का सामना करना पड़ा है?
  • आपने किन पुस्तकालयों / चौखटों का उपयोग किया?
  • सिस्टम सरीसृप जैसी सरल स्टेट मशीन / टास्क मैनेजमेंट कब हुई?
  • बोनस: आपने टास्क मैनेजमेंट और वर्कफ़्लो इंजन के बीच अंतर कैसे किया ?

मैं पहले हाथ के अनुभवों की तलाश में हूं।

मैंने जिन कुछ संसाधनों की जाँच की है:

जवाबों:


61

मैं भी पक्षपाती हूं, क्योंकि मैं स्टोनपाथ का मुख्य लेखक हूं

मैंने यूएस स्टेट डिपार्टमेंट, जिनेवा सेंटर फ़ॉर ह्यूमेनिटेरियन डेमिनेशन, कई फॉर्च्यून 500 क्लाइंट्स और हाल ही में वाशिंगटन डीसी पब्लिक स्कूल सिस्टम के लिए वर्कफ़्लो एप्लिकेशन विकसित किए हैं। हर बार जब मैंने एक 'वर्कफ़्लो इंजन' देखा है जो व्यावसायिक प्रक्रियाओं के लिए एक मास्टर संदर्भ होने की कोशिश करता है, तो मैंने एक संगठन को टूल के आसपास काम करने के लिए खुद से लड़ते देखा है। यह इस तथ्य के कारण हो सकता है कि ये समाधान हमेशा विक्रेता / उत्पाद से प्रेरित रहे हैं, और फिर 'सलाहकार' की एक सामरिक टीम के साथ लगातार ऐप को खिला रहे हैं ... लेकिन इस वजह से, मैं सुनते ही नकारात्मक प्रतिक्रिया करता हूं। प्रक्रिया-आधारित उपकरणों का लाभ जो 'एक स्थान पर वर्कफ़्लो की परिभाषाओं को केंद्रीकृत करने और उन्हें दोहराने योग्य बनाने' का वादा करता है।

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

मुझे राज्य-आधारित वर्कफ़्लो के मुख्य आकर्षण का वर्णन करने दें। संक्षेप में, बंधक ऋण या पासपोर्ट नवीनीकरण जैसी किसी चीज़ के प्रसंस्करण के आसपास घूमने वाले वर्कफ़्लो की कल्पना करें। जैसे ही दस्तावेज़ 'कार्यालय के आसपास' चलता है, यह एक राज्य से दूसरे राज्य की यात्रा करता है। कल्पना करें कि क्या आप दस्तावेज़ के लिए ज़िम्मेदार हैं, और आपके बॉस ने आपसे स्टेटस अपडेट के लिए हर कुछ घंटों में सवाल पूछा, और एक संक्षिप्त उत्तर चाहते थे ... आप "डेटा प्रविष्टि में है" जैसी बातें कहेंगे ... "हम जाँच रहे हैं आवेदक की साख अब "..." हम गुणवत्ता की समीक्षा की प्रतीक्षा कर रहे हैं "..." हम कर रहे हैं "... और इसी तरह। ये राज्य-आधारित वर्कफ़्लो में स्थितियाँ हैं। हम संक्रमण के माध्यम से एक राज्य से दूसरे राज्य में जाते हैं - जैसे "स्वीकृत", "लागू करें", किकबैक "," इनकार ", और इसी तरह ये क्रिया क्रियाओं के रूप में होते हैं।

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

खरगोश का छेद इससे कहीं अधिक गहरा हो सकता है, और मैंने इसके बारे में एक लेख लिखा था, जो कि प्रोगामेटिक प्रोग्रामर की पत्रिका प्रागपब के अंक # 4 के लिए था। उस लेख के अद्यतन पीडीएफ के लिए ऊपर दिए गए रील लिंक को देखें।

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


2
बहुत बढ़िया! बहुत ज्यादा लग रहा है जैसे खंड और स्टेट / टास्क इंजन जैसे वर्कफ़्लो इंजन के बीच सूक्ष्म अंतर के बारे में अधिक जानने के लिए, क्योंकि पहले इसके माध्यम से नहीं होने के कारण, यह देखना मुश्किल है कि इसके साथ क्या शुरू करना है। मैंने सब कुछ पढ़ा है जो मुझे पत्थरबाज और खंडहर और बीपीएम और वर्कफ़्लोज़ पर एक लाख अन्य श्वेत पत्र के बारे में मिल सकता है, इसलिए इस तरह के कुछ "पहले हाथ का अनुभव" जैसा ज्ञान वास्तव में शुरू होने वाले वक्र को कम कर देगा। एक बार फिर धन्यवाद।
लांस पोलार्ड

31

मैं पक्षपाती हूं, मैं बर्बाद होने के लेखकों में से एक हूं

संस्करण 1) राज्य मशीन एक संसाधन (दस्तावेज़, आदेश, चालान, पुस्तक, फर्नीचर का टुकड़ा) से जुड़ी है।

वेरिएंट 2) वर्चुअल मशीन से जुड़ी स्टेट मशीन जिसे टास्क कहा जाता है

संस्करण 3) वर्कफ़्लो इंजन वर्कफ़्लो परिभाषाओं की व्याख्या करता है

अब आपके प्रश्न का टैग "BPM" है जिसे हम "बिजनेस प्रोसेस प्रबंधन" में विस्तारित कर सकते हैं। प्रत्येक प्रकार में किस तरह का प्रबंधन होता है?

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

संस्करण 2 में, वर्कफ़ोर्स को संसाधन के चारों ओर केंद्रित किया जा सकता है और उस संसाधन के चारों ओर राज्य मशीन द्वारा प्रस्तुत किया जा सकता है।

संस्करण 3 में, वर्कफ़्लो परिभाषा (या व्यावसायिक प्रक्रिया परिभाषा) नामक एक संसाधन की व्याख्या करके वर्कफ़्लो को लागू किया जाता है।

क्या होता है जब व्यापार प्रक्रिया बदल जाती है? क्या यह एक वर्कफ़्लो इंजन होने के लायक है जहां व्यावसायिक प्रक्रियाएं प्रबंधनीय संसाधन हैं?

अधिकांश राज्य मशीन पुस्तकालयों में 1 सेट राज्य + संक्रमण हैं। वर्कफ़्लो इंजन हैं, उनमें से अधिकांश, वर्कफ़्लो परिभाषा व्याख्याकार हैं और वे कई अलग-अलग वर्कफ़्लो को एक साथ चलाने की अनुमति देते हैं।

वर्कफ़्लो को बदलने की लागत क्या होगी?

वेरिएंट परस्पर अनन्य नहीं हैं। मैंने कई उदाहरण देखे हैं जहां एक वर्कफ़्लो इंजन कई संसाधनों की स्थिति को बदलता है उनमें से कुछ को राज्य मशीनों द्वारा संरक्षित किया जाता है।

मैं मानव कार्यों के लिए भी वेरिएंट 3 + 2 का बहुत उपयोग करता हूं: वर्कफ़्लो इंजन, कुछ बिंदुओं पर जब एक प्रक्रिया उदाहरण को चलाती है, तो एक कार्य (वर्किटेम) एक मानव प्रतिभागी को सौंपता है (संसाधन कार्य बनाया जाता है और राज्य में 'तैयार' रखा जाता है) ।

आप अकेले वेरिएंट 2 (कार्य प्रबंधक संस्करण) के साथ एक लंबा रास्ता तय कर सकते हैं।

हम वेरिएंट 0 का भी उल्लेख कर सकते हैं), जहां कोई राज्य मशीन नहीं है, कोई वर्कफ़्लो इंजन नहीं है, और व्यापार प्रक्रिया (एस) बिखरे हुए हैं और / या हार्डकोड में आवेदन किया गया है।

आप कई प्रश्न पूछ सकते हैं, लेकिन यदि आप उत्तरों को पढ़ने के लिए समय नहीं निकालते हैं और समय निकालकर प्रयोग करने की कोशिश नहीं करते हैं, तो आप बहुत दूर नहीं जाएंगे, और कभी भी किसी भी तरह के स्वभाव का अधिग्रहण नहीं करेंगे। यह या वह उपकरण।


इस उत्तर के लिए आपका बहुत-बहुत धन्यवाद, यह बहुत कुछ साफ कर रहा है। कोड के साथ खेलने के लिए औपचारिक वर्कफ़्लो मॉडलिंग का एक सभ्य समझ पाने के लिए नवागंतुक के लिए पर्याप्त अंतर नहीं हैं; यह लगता है कि 90 के दशक के अंत से सभी जावा व्हाइटपेपर हैं। आप और डेविड पत्थरबाजों से उस बाधा को तोड़ना शुरू कर रहे हैं। एक दिन यह रेल सीखने जितना आसान हो सकता है। मैं कुछ दिनों में टास्क-मैनेजर वेरिएंट के साथ खेलना शुरू करने जा रहा हूं। धन्यवाद।
लांस पोलार्ड

लिंक मृत प्रतीत होता है?
रोजरपैक

परियोजना अब मर चुकी है
जेसन बाबूआ

4

पिछले प्रोजेक्ट पर मैं काम कर रहा था, मैंने हील्हेयर इंडस्ट्री में गवर्नमेंट फॉर्म के सेट में कुछ वर्कफ़्लो टाइप नियम जोड़े।

अंतिम उपयोगकर्ता द्वारा प्रपत्र भरने की आवश्यकता है, और कुछ उत्तरों के आधार पर अन्य प्रपत्रों को बाद की तारीख में भरा जाना था। ऐसे बाहरी कार्यक्रम भी थे जो शेड्यूल किए गए फ़ॉर्म को रद्द कर देंगे या नए शेड्यूल करेंगे।

नमूना प्रवाह:

रोगी भर्ती -> अनुसूची प्रारंभिक मूल्यांकन FOrm -> अनुसूची त्रैमासिक समीक्षा प्रपत्र -> रोगी निधन -> रद्द समीक्षा -> अनुसूची निर्वहन मूल्यांकन प्रपत्र

कई अन्य नियम रोगी की आयु, जहां उन्हें भर्ती किया जा रहा था, आदि चीजों पर आधारित थे।

यह एक ASP.NET ऐप था, नियम मूल रूप से डेटाबेस में एक तालिका थी। मैंने स्क्रिप्टिंग को जोड़ा, इसलिए एक स्क्रिप्ट फॉर्म पूरा करने के लिए चलेगी ताकि यह निर्धारित किया जा सके कि आगे क्या करना है। यह एक भयानक डिजाइन था, और एक उचित वर्कफ़्लो इंजन के लिए एकदम सही था।


3

मैं लेखकों में से एक हूं उबेर में विकसित ताल वर्कफ़्लो इंजन । ताल और मौजूदा वर्कफ़्लो इंजन के बहुमत के बीच का अंतर यह है कि यह डेवलपर केंद्रित है और बेहद लचीला और स्केलेबल है (प्रति सेकंड हजारों अपडेट और अरबों ओपन वर्कफ़्लोज़ तक)। वर्कफ़्लोज़ को ऑब्जेक्ट ओरिएंटेड प्रोग्राम्स के रूप में लिखा जाता है और इंजन यह सुनिश्चित करता है कि वर्कफ़्लो ऑब्जेक्ट्स की स्थिति जिसमें थ्रेड स्टैक और लोकल वेरिएबल्स शामिल हैं, होस्ट फेल्योर के मामले में पूरी तरह से संरक्षित हैं।

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

  • वितरित CRON नौकरियां
  • एमएल / डेटा पाइपलाइनों का प्रबंधन करना
  • व्यावसायिक घटनाओं पर प्रतिक्रिया। उदाहरण के लिए उबेर में यात्रा कार्यक्रम। वर्कफ़्लो प्राप्त की गई घटनाओं के आधार पर स्थिति को जमा कर सकता है और आवश्यक होने पर गतिविधियों को निष्पादित कर सकता है।
  • मेसोस / कुबेरनेट्स के लिए सेवाएं तैनाती
  • CI पाइपलाइन कार्यान्वयन
  • अनुरोध प्राप्त होने पर यह सुनिश्चित करना कि एकाधिक सेवा कॉल पूर्ण होती हैं। जिसमें सागा पैटर्न कार्यान्वयन शामिल है
  • मानव कार्यकर्ता कार्यों का प्रबंधन (अमेज़न एमटर्क के समान )
  • मीडिया प्रसंस्करण
  • ग्राहक सहायता टिकट रूटिंग
  • आदेश प्रसंस्करण
  • ChaosMonkey के समान परीक्षण सेवा

और बहुत सारे

उपयोग के मामलों का दूसरा सेट ताल पर चलने के लिए मौजूदा वर्कफ़्लो इंजन को पोर्ट करने पर आधारित है। व्यावहारिक रूप से किसी भी मौजूदा इंजन वर्कफ़्लो विनिर्देशन भाषा को ताल पर चलाने के लिए पोर्ट किया जा सकता है। कई आंतरिक Uber सिस्टम हैं जिन्हें पोर्ट किया गया था। इस तरह एक एकल बैकएंड सेवा कई डोमेन विशिष्ट वर्कफ़्लो सिस्टम को पावर कर सकती है।

आपने किन पुस्तकालयों / चौखटों का उपयोग किया?

ताल एक स्व निहित सेवा है जिसे गो और जावा क्लाइंट साइड लाइब्रेरी के साथ लिखा जाता है। केवल बाहरी निर्भरता भंडारण है। कैसंड्रा और SQL डेटाबेस समर्थित हैं।

ताल भी अतुल्यकालिक क्रॉस क्षेत्र (AWS शब्दावली का उपयोग करके) प्रतिकृति का समर्थन करते हैं।

सिस्टम सरीसृप जैसी सरल स्टेट मशीन / टास्क मैनेजमेंट कब हुई?

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



2

मैं इमीक्स-वर्कफ़्लो के लेखकों में से एक हूं । Imixs-Workflow BPMN 2.0 पर आधारित एक खुला स्रोत वर्कफ़्लो इंजन है और पूरी तरह से जावा ईई प्रौद्योगिकी स्टैक में एकीकृत है।
मैं 10 से अधिक वर्षों से अपने आप वर्कफ़्लो इंजन विकसित करता हूँ। मैं संक्षेप में आपके सवाल का जवाब देने की कोशिश करूंगा:

> क्या समस्याओं आप हल करने के लिए कार्यप्रवाह इंजन का उपयोग किया है?

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

  • एक अधिसूचना भेजना
  • खुले कार्यों को देखें
  • एक व्यक्ति को एक कार्य सौंपा
  • वर्तमान कार्य का वर्णन करना

इस फ़ंक्शन सूची से आप देख सकते हैं कि मैं मानव-केंद्रित वर्कफ़्लो के बारे में बात कर रहा हूं। संक्षेप में: एक मानव-केंद्रित वर्कफ़्लो इंजन सवालों के जवाब देता है: कौन एक कार्य के लिए जिम्मेदार है और किसे आगे सूचित करने की आवश्यकता है? और ये व्यावसायिक आवश्यकताओं में विशिष्ट प्रश्न हैं।

> आपने किन पुस्तकालयों / चौखटों का इस्तेमाल किया?

5 साल पहले हमने BPMN 2.0 पर ध्यान केंद्रित करते हुए Imixs-Workflow इंजन को फिर से लागू करना शुरू किया । BPMN प्रक्रिया मॉडलिंग के लिए सामान्य मानक है। और मेरे लिए आश्चर्य की बात यह थी कि हम अचानक अत्यधिक जटिल व्यावसायिक प्रक्रियाओं का वर्णन करने में सक्षम थे जिन्हें कल्पना और निष्पादित किया जा सकता था। मैं मॉडलिंग प्रक्रियाओं के लिए सभी को BPMN का उपयोग करने की सलाह देता हूं।

> सिस्टम सरीसृप जैसी सरल स्टेट मशीन / टास्क मैनेजमेंट कब किया गया?

यदि आप किसी व्यावसायिक वस्तु की स्थिति को ट्रैक करना चाहते हैं तो एक साधारण राज्य मशीन पर्याप्त है। यह वह स्थिति है जब आप अपने ऑब्जेक्ट मॉडल में 'स्टेटस' विशेषता को शुरू करना शुरू करते हैं। लेकिन अगर आपको जिम्मेदारियों, लॉगिंग और प्रवाह नियंत्रण के साथ व्यावसायिक प्रक्रियाओं की आवश्यकता होती है, तो एक राज्य मशीन अब पर्याप्त नहीं है।

> बोनस: आपने टास्क मैनेजमेंट और वर्कफ़्लो इंजन के बीच अंतर कैसे किया?

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


1

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


1

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

एक समय में चलने वाली हजारों प्रक्रियाएं हो सकती हैं और कुल मिलाकर दसियों या प्रति दिन कम सैकड़ों प्रक्रियाएं हो सकती हैं।

विभिन्न प्रक्रिया परिभाषाओं का गुच्छा था, लेकिन यह आवश्यक नहीं था कि सिस्टम का कोई ऑपरेटर कस्टम वर्कफ़्लो बना सके। तो बीपीएम इंजन के लिए प्राथमिक उपयोग का मामला खुद को मजबूत, स्केलेबल और प्रत्येक प्रक्रिया प्रवाह की निगरानी की अनुमति देना था।

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

मुख्य चुनौतियां कार्य निष्पादन प्राथमिकताकरण, डीबी लॉकिंग, निष्पादन बीपीएम के विषय में कुछ नाम रखने के लिए किया गया था। इसलिए हमें इनकी कस्टम हैंडलिंग को विकसित करना था, उदाहरण के लिए:

  • बीपीएम में उन मामलों के लिए पुनर्प्रयास से निपटना जब किसी नोड के पास दिए गए कार्य के लिए कोई स्वतंत्र कार्यकर्ता नहीं था, या जब नोड बिल्कुल भी नहीं चल रहा था।
  • एक ही प्रक्रिया में समानांतर स्थानांतरण कार्यों का निष्पादन और परिणामों का सिंक्रनाइज़ेशन (सफलता / विफलता)।

मुझे नहीं पता कि BPMN के अन्य इंजन इस तरह के परिदृश्य के लिए अधिक उपयुक्त होंगे क्योंकि BPMN ज्यादातर उपयोगकर्ता के इंटरैक्शन से जुड़े लंबे समय तक चलने वाले व्यावसायिक कार्यों के लिए है जहां प्रदर्शन संभवतः वैसा ही मुद्दा नहीं है जैसा कि हमारे मामले में था।

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