7

ग्रीटिंग्स!वेब अनुप्रयोग में डायनामिक बिजनेस नियम

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

  1. विंडोज वर्कफ़्लो: गतिशील वर्कफ़्लो बनाना और उन्हें डेटाबेस में सहेजना।
  2. प्रतिबिंब: एक व्यापार नियम इंटरफ़ेस बनाना और कस्टम क्लाइंट असेंबली लोड करने के लिए प्रतिबिंब का उपयोग करना।
  3. एक वास्तविक व्यापार नियम इंजन
  4. संरचना मानचित्र जैसे आईओसी कंटेनर को कार्यान्वित करना। [zaff: जोड़ा 6/4]

क्या आपने कभी इस तरह कुछ भी लागू किया है? यदि हां, तो आपका अनुभव क्या है? और अंत में एक और समाधान है जिसे मुझे खोजना चाहिए?

आपकी मदद के लिए धन्यवाद !!

उत्तर

2

मैं दृष्टिकोण तुम उल्लेख के सबसे लागू किया है। उत्तर विभिन्न कारकों पर निर्भर हो सकता है।

क्या ग्राहक भूमिका व्यवसाय नियमों (जैसे व्यवसाय विश्लेषक, डेवलपर, पावर उपयोगकर्ता इत्यादि) में परिवर्तन कर रही है? व्यापार विश्लेषकों के लिए अर्थपूर्ण समर्थन के लिए एक डीबी में बाहरी नियमों और उपयोग करने योग्य यूआई के साथ एक नियम इंजन की आवश्यकता हो सकती है।डेवलपर्स के लिए अर्थपूर्ण समर्थन एमईएफ (http://www.codeplex.com/MEF) जैसे कुछ का लाभ उठाने जितना आसान हो सकता है।

आप यह भी कारक कर सकते हैं कि व्यवसाय नियमों को कितनी बार बदलना होगा और किस प्रकार की संबंधित परिचालन आवश्यकताएं लागू हो सकती हैं (जैसे होस्ट प्रक्रिया चलनी चाहिए, ऐप डोमेन अनलोडिंग ठीक है, आदि)। एक अच्छे चयन के लिए संभावना बनाम संभावित भविष्य की जरूरतों के बारे में कुछ सावधान विचार की आवश्यकता हो सकती है।

2

आप this जैसे डेटा संचालित व्यवसाय नियम कर सकते हैं। निर्णय पेड़ भी जाने का एक अच्छा तरीका हो सकता है।

आप व्यावसायिक नियमों को लागू करने के तरीके के रूप में पहलू उन्मुख प्रोग्रामिंग के बारे में भी सोच सकते हैं।

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

1

यह सबसे अच्छा तरीका नहीं हो सकता है, लेकिन मेरी कंपनी ने सफलता के साथ कई मामलों में अपना # 2 विकल्प लागू किया है।

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

मैं डेटाबेस में कोड से संबंधित चीजों को डालने का एक बड़ा प्रशंसक नहीं हूं, लेकिन यह वास्तव में ठीक काम करता है और इस मामले में बहुत जटिल नहीं है।

0

मुझे डब्ल्यूएफ पसंद है, लेकिन अगर आपने इसे देखा है और फैसला किया है कि आप कुछ अलग चाहते हैं, तो आपको K2 पर देखना चाहिए। इसके अलावा, BizTalk में बीआरई समर्थन है।

0

मैंने निम्नलिखित ओपन सोर्स .NET Business Rule Engine NxBRE के आधार पर एक गतिशील नियम इंजन बनाया है। मैंने फ़्लो इंजन का उपयोग अपने गतिशील नियम इंजन के लिए प्राथमिक उदाहरण के रूप में किया था।

मैं अपने प्रश्न में वर्णित एक ही वास्तुकला का इस्तेमाल किया।

1

मैं 1 और 3

का एक संयोजन का सुझाव लेकिन एक डेटाबेस में कार्यप्रवाह स्टोर नहीं करते, स्टोर यह एक निर्णय पेड़ या नियम प्रवाह है (जैसा कि हम उन्हें कहते हैं)।

कार्यप्रवाह बदलने के लिए एक विशेष, ग्राहक को समायोजित, या उनकी प्रोफ़ाइल पर संघ बनाना करने के लिए एक सरल कार्य है जब आप एक दृश्य, कार्रवाई पर ही आधारित उपकरण है, Visual Rules रूप में इस तरह है। कोड को समायोजित किए बिना, आपके व्यवसाय विश्लेषक या समर्थन व्यक्ति को उस परिवर्तन को करने के लिए भी बहुत लाभ होता है।

इसके अलावा इनमें से कोई भी आवश्यकता जटिल एआई टूल्स जैसे कि आरईटीई और इनफ्रेंसिंग-अनुक्रमिक तर्क के लिए सबसे अच्छी है।

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