2008-08-21 12 views
13

मैं थोड़ी देर के लिए डब्ल्यूडब्ल्यूएफ का उपयोग कर एक आंतरिक कॉल सेंटर आवेदन (ASP.NET), के हिस्से के रूप और जब तक सीखने यह कैसे समझ एक राज्य मशीन आधारित कार्यप्रवाह प्रणाली में एक अच्छा व्यवहार था काम करते हैं, मैं निश्चित रूप से कर रहा हूँ चाहिए डब्ल्यूडब्ल्यूएफ के साथ प्यार में नहीं। मेरी राय में यह है:विंडोज वर्कफ़्लो फाउंडेशन के विकल्प?

  1. अत्यधिक जटिल, विशेष रूप से किए गए वेब ऐप्लिकेशन के भीतर उपयोग (जो भी क्रम सामान पिरोया)
  2. अपरिपक्व (कभी उस भयानक डिजाइनर के साथ काम किया?)
  3. अपने मौजूदा सुविधा सेट में खून की कमी के लिए

क्या किसी के पास बेहतर .NET आधारित वर्कफ़्लो ढांचे के लिए कोई सुझाव है? विशेष रूप से, मैं निम्नलिखित विशेषताएं रहा हूँ:

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

वास्तव में मुझे बस इतना ही चाहिए। मुझे किसी भी गतिविधि को "ड्रैग और ड्रॉप" करने या प्रवाह को दृष्टि से डिजाइन करने में सक्षम होने की आवश्यकता नहीं है। एक बार एक विशेष कार्रवाई ट्रिगर होने के बाद मैं वास्तव में वास्तविक कोड लिखने में सहज हूं।

उत्तर

13

आप Simple State Machine की कोशिश कर सकते। आपको स्वयं पहुंच नियंत्रण और पृष्ठभूमि टाइमर को लागू करना होगा, लेकिन यह एक बड़ा सौदा नहीं होना चाहिए। डब्ल्यूएफ के साथ निराशा से एसएसएम भी बनाया गया था। There are some other state machine implementations on Codeplex भी। यदि उनमें से कोई फिट नहीं है तो वह बॉक्स से बाहर बिल खाता है, वे खुले स्रोत हैं और आपको पर्याप्त करीब मिलना चाहिए।

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

+2

सरल राज्य मशीन चालाक है। यदि इसका मॉडल फिट बैठता है लेकिन आप बू के मुकाबले सी # में काम करना चाहते हैं, तो आप स्टेटलेस (http://stateless.googlecode.com) –

+0

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

0

BizTalk सर्वर पर विचार करने का विकल्प है?

4

मैं Drools.Net से दूर रहने के बाद से यह पिछले SVN प्रतिबद्ध है सितंबर 2007 में था अच्छा लग रहा है, लेकिन यह अपनी परियोजना जब की इतनी बड़ी पुस्तकालय हिस्सा बनाने के लिए थोड़ा बहुत जोखिम भरा लगता है आप जानते हैं कि अब कोई ध्यान नहीं मिलता है।

0

कोशिश WF4.5। इसे .NET4.0 के बाद पूरी तरह से फिर से डिजाइन किया गया था।

1

Workflow Engine पर एक नज़र डालें। यह .NET और जावा समाधानों के लिए एक हल्के वर्कफ़्लो ढांचे है। इसमें एक HTML5 दृश्य डिजाइनर, संस्करण नियंत्रण, एक सभ्य यूआई है और डेटाबेस की एक विस्तृत श्रृंखला का समर्थन करता है।

0

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

टास्क केंद्रित

ये इंजन (उदा JBoss BPM - jbpm) एक अच्छी तरह से परिभाषित प्रक्रिया मॉडल के आधार पर एक इनपुट डेटा की प्रक्रिया करने के लिए डिजाइन किए हैं। मॉडल में प्रत्येक कार्य कोड के एक टुकड़े पर नियंत्रण देता है - या तो एक मानक या एक व्यक्तिगत कार्यान्वयन। प्रक्रिया समाप्त होती है जब प्रक्रिया-टोकन प्रक्रिया मॉडल (एंड-इवेंट) के अंत तक पहुंच जाता है। इस प्रकार की प्रसंस्करण मिलीसेकंड लेती है। इंजन को बैच नौकरियों या एक जटिल प्रक्रिया उन्मुख प्रवाह के साथ डेटा प्रोसेसिंग के लिए इस्तेमाल किया जा सकता है।

घटना-संचालित

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

आप इंजन here इंजनों की एक सूची पा सकते हैं।