2010-09-03 56 views
112

मैं डेवलपर्स की एक टीम के लिए ज़िम्मेदार हूं जो हल्के वजन बीमा दावों के सिस्टम के विकास शुरू करने वाले हैं। सिस्टम में कई मैन्युअल कार्य और व्यावसायिक वर्कफ़्लो शामिल हैं और हम विंडोज वर्कफ़्लो (.NET 4.0) का उपयोग करने पर विचार कर रहे हैं।वर्कफ़्लो या वर्कफ़्लो के लिए नहीं?

व्यवसाय डोमेन का एक उदाहरण निम्नानुसार है: एक पॉलिसीधारक एक दावा दायर करने के लिए संपर्क केंद्र को कॉल करता है। यह "घटना" दो उप कार्यों को सक्रिय करती है जिन्हें मैन्युअल रूप से समानांतर में क्रियान्वित किया जाता है और इसे पूरा करने में लंबा समय लग सकता है;

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

सतह पर ऐसा लगता है कि वर्कफ़्लो वास्तव में सबसे अच्छी तकनीक पसंद है; हालांकि मुझे डब्ल्यूएफ 4.0 का उपयोग करने में कुछ चिंताएं हैं।

  1. कौशल सेट - औसत डेवलपर कौशल सेट को देखते हुए मुझे कई डेवलपर्स नहीं दिखते हैं जो वर्कफ़्लो को समझते हैं या जानते हैं।
  2. रखरखाव - डब्ल्यूएफ 4.0 परियोजनाओं के लिए समुदाय के भीतर थोड़ा सा समर्थन लगता है और यह कौशल सेट की कमी के साथ बनाए रखने के आसपास चिंताओं को बढ़ाता है।
  3. प्रवेश के लिए बैरियर - मुझे एहसास है कि विंडोज वर्कफ़्लो में एक सीधी सीखने की वक्र है और यह हमेशा लेने में आसान नहीं होता है।
  4. नया उत्पाद - जैसा कि वर्कफ़्लो पूरी तरह से .NET 4.0 के लिए पुनः लिखा गया है, मैं उत्पाद को पहली पीढ़ी के उत्पाद के रूप में देखता हूं और इसमें आवश्यक स्थिरता नहीं हो सकती है।
  5. प्रतिष्ठा - वर्कफ़्लो के व्यापक संस्करणों को अच्छी तरह से प्राप्त नहीं किया गया था, जिसे विकसित करना मुश्किल था और जिसके परिणामस्वरूप खराब व्यापार हुआ।

तो मेरे सवाल है हम का उपयोग करना चाहिए विंडोज कार्यप्रवाह (WF) इस स्थिति के लिए 4.0 या वहाँ एक वैकल्पिक प्रौद्योगिकी (अर्थात, Simple State Machine, आदि) या यहां तक ​​कि एक बेहतर कार्यप्रवाह इंजन का उपयोग करने के लिए है?

+9

कई अपवॉट्स और कोई जवाब नहीं ... ऐसा लगता है कि हम सभी एक ही नाव में हैं ...;) – CJM

+1

हेहे ... शायद उत्तर की कमी शुक्रवार-इटिस की वजह से है? – Kane

+2

डब्ल्यूएफ 4 पर बहुत से महान संसाधनों के लिए देखें http://endpoint.tv –

उत्तर

50

मैंने कई डब्ल्यूएफ 4 परियोजनाएं की हैं, इसलिए देखते हैं कि मैं अन्य उत्तरों में कोई उपयोगी जानकारी जोड़ सकता हूं या नहीं।

आपकी व्यावसायिक समस्या के विवरण से ऐसा लगता है कि डब्ल्यूएफ 4 एक अच्छा मैच है, इसलिए कोई समस्या नहीं है।

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

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

तो मेरी सलाह क्या है? किसी अज्ञात पर एक बड़ा जुआ न लें, और आपके लिए अप्रमाणित, प्रौद्योगिकी का टुकड़ा न लें। WF4 का उपयोग करके एप्लिकेशन का एक छोटा, गैर महत्वपूर्ण, टुकड़ा करें। इस तरह यदि यह काम करता है तो आप उस पर विस्तार कर सकते हैं लेकिन यदि यह विफल हो जाता है तो आप इसे बाहर निकाल सकते हैं और इसे अधिक पारंपरिक .NET कोड से बदल सकते हैं। इस तरह आपको दूसरे हाथ की जानकारी पर निर्णय लेने के बजाय डब्ल्यूएफ 4 के साथ वास्तविक अनुभव मिलता है और आप प्रक्रिया में एक नई और शक्तिशाली तकनीक सीखते हैं। यदि संभव हो तो डब्ल्यूएफ 4 पर एक कोर्स लें क्योंकि इससे आपको गति तक पहुंचने में काफी समय लगेगा (लापरवाही सेल्फ प्लग here)।

सरल राज्य मशीन के बारे में। मैंने इसका इस्तेमाल नहीं किया है, लेकिन मैं इस प्रभाव के तहत था कि यह छोटी दौड़, स्मृति में, राज्य मशीनों के लिए था। डब्ल्यूएफ 4 के मुख्य लाभों में से एक लंबे समय तक चलने वाले पहलू हैं।

+1

मैं मानता हूं, डब्ल्यूएफ 4 पूरी तरह से मेरे दिमाग पिघल गया। मुझे उस समय इसका उपयोग करने के लिए निर्णय (मेरा नहीं) पर पछतावा है और हमें .NET 4.5 के लिए इंतजार करना चाहिए था। यदि आप वर्कफ़्लो और बग्स में कोई त्रुटि उत्पन्न करते हैं, तो WF डिज़ाइन में बग को संबोधित करने के बाद, आप आसानी से लंबे समय तक चलने वाले वर्कफ़्लो तक आसानी से सहसंबंध नहीं कर सकते हैं। आपको अनिवार्य रूप से फिर से शुरू करना होगा। 3.5 में डायनेमिक अपडेट्स थे, हालांकि उन्होंने इसे 4.0 में से छोड़ दिया था। 4.5 में साइड वर्जनिंग द्वारा डायनामिक अपडेट और साइड मेरे अनुभव में विंडोज डब्ल्यूएफ समाधान की सफलता के लिए सर्वोपरि हैं। हालांकि तस्वीर का यह केवल एक छोटा सा हिस्सा है। –

17

मैं इस दुविधा में कई बार आया हूं और मैंने वर्क फ्लो नींव का उपयोग नहीं करना चुना है। कुछ विचार (आपके समान)

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

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

8

मैंने डब्ल्यूएफ 3.5 में तीन परियोजनाएं कीं और मुझे कहना है कि यह आसान नहीं है। यह आपको पूरे नए तरीके से सोचने के लिए मजबूर करता है, खासकर जब दृढ़ता का उपयोग किया जाता है। उस एप्लिकेशन को अपडेट करना जिसमें सैकड़ों अपूर्ण निरंतर वर्कफ़्लो शामिल हैं चुनौतीपूर्ण है। Serialization में एकल तोड़ने परिवर्तन उन सभी को दुर्घटनाग्रस्त कर देता है। नए और पुराने चल रहे वर्कफ़्लो का समर्थन करने के लिए एक ही लाइब्रेरी के कई संस्करणों को पेश करना आम है। यह चुनौतीपूर्ण था।

मैंने अभी तक डब्ल्यूएफ 4.0 का प्रयास नहीं किया है, लेकिन बिज़टॉक और डब्ल्यूएफ 3.5 के अनुभव के आधार पर मुझे लगता है कि यह समान होगा।

वैसे भी आप जो सबसे अच्छा दृष्टिकोण ले सकते हैं वह प्रूफ-ऑफ-कॉन्सेप्ट करना है। अपनी आवश्यकता से एकल डब्ल्यूएफ लें और इसे डब्ल्यूएफ 4.0 में लागू करने का प्रयास करें। आप इसके साथ कुछ समय बिताएंगे लेकिन आप साबित करेंगे कि क्या आप डब्ल्यूएफ 4.0 में ऐसा करने में सक्षम हैं और यदि कोई दृश्य लाभ है।

यदि आप डब्ल्यूएफ 4.0 का उपयोग करने का निर्णय लेते हैं तो मैं जोर देता हूं कि आप विंडोज ऐपफैब्रिक में डब्ल्यूसीएफ सेवा के रूप में डब्ल्यूएफ चलाने की संभावना की जांच करें। AppFabric WFs होस्ट करने के लिए बॉक्स कार्यक्षमता में से कुछ प्रदान करता है।

+4

जब मैं अपने ऐप में राज्य इंजन के लिए डब्ल्यूएफ का उपयोग करने पर विचार कर रहा था, दृढ़ता की समस्या हमेशा परेशान थी। प्रत्येक खुले मामले के लिए serializabled डब्ल्यूएफ का विचार संस्करण सहित विभिन्न कारणों के लिए भयानक था। तो मेरी रूपरेखा यह थी कि जब भी ट्रिगर होता है, तो व्यवसाय इकाई को उठाएं, ताजा वर्कफ़्लो बनाएं और उस वर्कफ़्लो को इकाई संलग्न करें और फिर वर्कफ़्लो डिज़ाइन की गई मशीन मशीन के आधार पर काम करेगा। एक बार पूरा हो जाने के बाद, वर्कफ़्लो फेंक दें और गंदा व्यापार इकाई को वापस डेटाबेस में सहेज लें।लेकिन निश्चित रूप से, अंत में, मैंने डब्ल्यूएफ का उपयोग न करने का फैसला किया। – VinayC

+2

मैं पूरी तरह से संस्करण के बारे में भूल गया - यह अकेले इसका उपयोग करने के लिए पर्याप्त कारण नहीं हो सकता है। – Kane

+3

@ केन, यह जरूरी नहीं है कि यह सच है। आप हमेशा अपने राज्य को बाहरी कर सकते हैं। तो "वर्कफ़्लो को deserializing और फिर इसे फिर से शुरू करने" के बजाय, आप वर्कफ़्लो उदाहरण बनायेंगे, बाहरी स्थिति को जोड़कर और फिर वर्कफ़्लो चला रहे हैं। यह serialize और संस्करण वर्कफ़्लो की आवश्यकता को खत्म कर सकते हैं। – VinayC

14

हम पिछले कुछ महीनों में डब्ल्यूएफ 4.0 का उपयोग कर रहे हैं। मुझे कहना है कि वर्कफ़्लो तरीका सोचना चुनौतीपूर्ण है। हालांकि, मैं आपको बता सकता हूं कि यह इसके लायक है। जब हमने शुरू किया हम बहुत कम जानते थे। हमने डब्ल्यूएफ 4 के लिए एक शुरुआती और पेशेवर पुस्तक खरीदी है।0 जिसने मदद की। मैंने, स्वयं, कई वीडियो ऑनलाइन देखे और डब्ल्यूएफ 4.0 के बारे में अपनी ब्रेकिंग न्यूज के लिए पीडीसी 200 9 का पालन किया और यह पिछले कुछ हद तक चूसने वाले संस्करणों से अलग कैसे है। एक प्रमुख बात यह है कि हमें समाधान का प्रस्ताव देना था जिस तरह से हम कुछ कस्टम प्रकारों और गतिविधियों के बीच पैरामीटर को पारित करने के लिए हमारी कस्टम गतिविधियों को बाध्य किए बिना वर्कफ़्लो में इन/हमारे तर्कों से निपट सकते हैं। मैं इसके लिए एक अच्छा समाधान लेकर आया हूं, और वर्कफ़्लो अनुभव जो हमने अभी तक किया है वह बिल्कुल बुरा नहीं है। दरअसल, हमारे पास वर्कफ़्लो-गहन अनुप्रयोग है जो बड़ा और बड़ा हो रहा है और मैं वास्तव में इसे किसी अन्य वातावरण में हल करने की कल्पना नहीं कर सकता। मुझे उस दृश्य प्रभाव से प्यार है जो यह है: यह मुझे/अन्य इत्यादि के विवरणों से दूर रखता है और व्यापार नियमों को इस तरह से स्पष्ट करता है जो आपको कोड की रेखाओं में गोता लगाने के लिए मजबूर नहीं करता है कि क्या हो रहा है या क्या हो रहा है या कुछ बग कैसे ठीक करें। वैसे, जिस परियोजना पर हमने काम किया है वह आपके जैसा वर्णन है और यह एक मध्यम आकार की परियोजना है। आप मेरे शब्दों से बता सकते हैं कि मुझे यह पसंद है और मैं इसकी अनुशंसा करता हूं हालांकि कुछ जोखिम शामिल हैं क्योंकि यह एक नई तकनीक है और आपको कुछ नवीन विचारों के साथ आना होगा।

मेरी 2 सेंट ...

+2

मुझे गतिविधियों के बीच पैरामीटर को पारित करने के लिए आपके समाधान के बारे में सुनने में रुचि होगी। मैं डब्ल्यूएफ के साथ चालू और बंद कर रहा हूं और यह एक ऐसा क्षेत्र है जो मेरे लिए थोड़ा सा बादल दिखता है, लेकिन यह मेरी समझ की कमी हो सकता है। –

+0

मुझे लगता है कि यह एक ऐसा स्थान है जहां उन्हें और अधिक काम करने की आवश्यकता है। किसी भी मामले में, हम एक बड़े "वैश्विक हैशटेबल" भंडार का उपयोग करते हैं जहां हम टाइप किए गए चर जोड़ते हैं। इन चर के लिए नामकरण सम्मेलन में उनके प्रकार, नाम और उनकी मूल गतिविधि दोनों शामिल हैं। यह वास्तव में हमारे कार्यान्वयन में हमारी मदद की। मुझे एहसास है कि ऐसा करने के बेहतर तरीके हो सकते हैं, लेकिन यह वास्तव में अच्छी तरह से काम करता है और जब आप वर्कफ़्लो डिज़ाइन करते हैं तो आप इसे विभिन्न तरीकों से उपयोग कर सकते हैं। उदाहरण के लिए, GerCustomer गतिविधि में कुछ इनपुट तर्क और 2 तर्क हो सकते हैं: GetCustomer.str_customerID और GetCustomer.int_premium। उम्मीद है कि यह मदद करता है .. – Derar

5

आदेश किसी भी जटिलता है कि भूमिकाओं और "उप-कार्य" शामिल है की एक बीमा दावा प्रणाली ऐसा करने के लिए आप वास्तव में एक बीपीएम समाधान की जरूरत है, बस कार्यप्रवाह नहीं। वर्कफ़्लो फाउंडेशन 4.0 धीमा है लेकिन यह वास्तव में बीपीएम उत्पाद की कार्यक्षमताओं के करीब नहीं आता है।

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

+0

कस्टम गतिविधियों के साथ डब्ल्यूएफ 4.0 का उपयोग करने के बारे में क्या? –

+3

मैं सम्मान से असहमत हूं। K2 WF को कार्यक्षमता की एक परत (जैसे प्राधिकरण, लॉकिंग और रिपोर्टिंग) जोड़ता है, लेकिन एक अनुभवी टीम उन सुविधाओं को विकसित कर सकती है। डब्ल्यूएफ 4 टेबल पर बहुत कुछ लाता है। बीपीएम समाधान महंगा और "enterprisey" होते हैं। – TrueWill

8

मुझे लगता है कि इस तरह की समस्या के लिए प्रौद्योगिकी विकल्प के रूप में डब्ल्यूएफ 4 में वर्कफ़्लो के बारे में बात करने के लिए आज वास्तव में यह समझ में नहीं आता है। ऊपर वास्तव में लाडस्लाव मृका द्वारा वर्णित अनुसार, क्या उपयुक्त है, डब्ल्यूसीएफ डब्ल्यूएफ सेवाएं ऐपफैब्रिक में होस्ट की गई हैं।

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

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

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

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

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

3

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

2

मैं ऐसी स्थिति में हूं जहां मुझे 4.0 का उपयोग करना है क्योंकि .NET 4.5 हमारे प्रोड पर्यावरण में अभी तक उपयोग के लिए मान्यता प्राप्त नहीं है। मुझे आम तौर पर बड़ी दर्द की समझ थी कि आम तौर पर हमारे व्यापार की ज़रूरत के अनुरूप लंबे समय तक चलने वाले वर्कफ़्लो कैसे प्राप्त करें, लेकिन आखिरकार एक सुरुचिपूर्ण समाधान मिला। यह ऐसा कुछ नहीं है जो बाद में आने वाले किसी भी व्यक्ति को आसानी से उठा सकता है क्योंकि इसके बारे में सोचने के लिए बहुत कुछ है, लेकिन मैं वर्कफ़्लो राज्यों के प्रबंधन के लिए एक उपकरण के रूप में डब्ल्यूएफ में विश्वास करता हूं।

एक बड़ी बात मैं WF 4.0 के साथ इस मुद्दे लेने हालांकि मौरिस की टिप्पणी है:

बुनियादी कभी नहीं है एक मौजूदा कार्यप्रवाह बदलने के लिए, हमेशा एक नया एक

बनाने बहुत बढ़िया अगर आप सिर्फ एक नया संस्करण चाहते हैं, लेकिन क्या होगा यदि आपके पास 50,000 लगातार वर्कफ़्लोज़ हों और किसी बिंदु पर एहसास हो कि वर्कफ़्लो में कोई बग है? आपको xamlx को अपडेट करने में सक्षम होना चाहिए और अभी भी मौजूदा उदाहरणों के साथ जोड़ा जाना चाहिए। मैंने SQL सर्वर इंस्टेंस तालिका में विभिन्न मेटाडाटा कॉलम को अनजिप करने का प्रयास किया है जो किसी भी भाग्य के बिना वर्कफ़्लो परिभाषा को उदाहरण से जोड़ता है।

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

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

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

मैं वास्तव में समझ नहीं पा रहा हूं कि डब्ल्यूएफ देव टीम के प्रमुखों के माध्यम से क्या एक प्रणाली जारी करने के लिए जा रहा था जहां बॉक्स से बाहर आप आसानी से बग ठीक नहीं कर सकते। उन्हें नए xamlx को एक उदाहरण को दोबारा बाध्य करने के लिए एक तकनीक विकसित करनी चाहिए थी।

2

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

समस्या यह है कि हमारे पास सिस्टम सेटअप/रखरखाव और लाइसेंस लागतों के लिए बहुत सारे संसाधन नहीं हैं जब तक कि यह हमारे व्यापार के लिए काफी महत्वपूर्ण न हो। Azure/विंडो वर्कफ़्लो सिर्फ प्रश्न से बाहर था। हमने वहां मौजूद कुछ बड़े बीपीएम सूटों की भी कोशिश की, और अधिक मुद्दों में भाग गए: वे आपको काफी नंगे-दृश्य दृश्य प्रोग्रामिंग अनुभव प्रदान करते हैं। प्रोग्रामिंग सिर्फ दृश्य वातावरण में पूरी तरह से नहीं किया जा सकता है। आप list of non-BPM software देख सकते हैं जो वास्तव में हमें रूचि देता है। Decisions.com और आईएफटीटीटी जैसे उपकरण साफ हैं। असल में निर्णय आपके लिए उपयुक्त हो सकते हैं क्योंकि यह माइक्रोसॉफ्ट उत्पादों के साथ एकीकृत करता है क्योंकि मैं इसे समझता हूं।

कहानी का अंत यह है कि हमने अपने स्वयं के सॉफ्टवेयर को उद्यमी साहस के रूप में और आंतरिक उपयोग के लिए लुढ़काया। वर्कफ़्लो को किसी भी एपीआई के साथ-साथ मानव प्रक्रियाओं को सीधे रूपों के साथ लिखा और एकीकृत किया जा सकता है। उदाहरण के लिए हम नए डेवलपर्स को ऑनबोर्डिंग के लिए वर्कफ़्लो एकीकृत कर रहे हैं जो अन्य सॉफ़्टवेयर को खींच/अपडेट करते हैं। यह वर्कफ़्लो परिदृश्यों में काफी हरा लेकिन बेहद शक्तिशाली है। आप यहां Nebri चेकआउट कर सकते हैं। चूंकि नियम-आधारित दृष्टिकोण घटनाओं पर आग लगते हैं, इसलिए आर्किटेक्चर काफी अलग है। यह आपके द्वारा लिखे गए कोड की मात्रा को कम करता है, और एक गति व्यापार बंद है। लेकिन यह पाइथन आपके निपटारे पर आसानी से complex-event-processing जैसी चीज़ों को संभाल सकता है।

संबंधित मुद्दे