2008-10-15 6 views
18

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

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

उन परिस्थितियों के बारे में सुनना जहां एक नियम इंजन वास्तव में वरदान था (विशेष रूप से एक व्यापार वातावरण में) निश्चित रूप से सहायक होगा।

+6

मैं इस प्रश्न को ऑफ-विषय के रूप में बंद करने के लिए मतदान कर रहा हूं क्योंकि यह कहानियों का अनुरोध है, प्रोग्रामिंग प्रश्न नहीं। – durron597

उत्तर

13

मैंने दो अनुप्रयोगों को देखा है जो फेयर इसाक से ब्लेज़ रीट इंजन का उपयोग करते हैं।

एक आवेदन ने हजारों नियमों को एक ही ज्ञान आधार में फंसाया, भयानक स्मृति समस्याएं थीं, कुछ काले समझ गए हैं जो कुछ समझते हैं। मैं इसे सफलता नहीं कहूंगा, लेकिन यह उत्पादन में चल रहा है।

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

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

2

मेरा अनुभव सीमित है (i) अधिक नहीं है और (ii) prolog; लेकिन मैं सुरक्षित रूप से कह सकता हूं कि एक नियम इंजन प्रक्रियात्मक कोड की तुलना में प्रस्तावित अवधारणाओं को अधिक स्वच्छ करने में आपकी सहायता कर सकता है।

10

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

उदाहरण के लिए, यदि आपको कुछ राज्यों में एक कॉप रखना था, या कटौतीयोग्य और कोपे के कुछ संयोजनों की अनुमति नहीं थी, या तो उत्पाद के विचारों के कारण, या क्योंकि यह राज्य कानून के कारण अवैध था।

नियमों (त्रैमासिक) में निरंतर परिवर्तन के साथ-साथ कंपनी द्वारा संचालित राज्यों की संख्या यह एक विचित्र कोडिंग अभ्यास करेगी। सबसे महत्वपूर्ण बात यह है कि यह प्रोग्रामर की विशेषज्ञता में नहीं है। यह अतिरिक्त व्यर्थ संचार जोड़ता है जहां अंतिम उपयोगकर्ता प्रोग्रामर को लागू होने वाले नियम का वर्णन कर रहा है जो बीमा उद्योग विशेषज्ञ नहीं हैं।

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

किसी भी चीज़ के साथ, आमतौर पर कार्यान्वयन के बारे में, वास्तविक तकनीक नहीं।

0
थोड़ी देर मैं PEATE वितरित अभिकलन परियोजना जो बड़े पैमाने पर, उच्च मात्रा वातावरण में डेटा की गणना के लिए एक प्रणाली विकसित करने के लिए काम किया गया था के लिए

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

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

यह एक सरल नियम इंजन की तुलना में अधिक शामिल एक सा लगता है, लेकिन इस तरह के एक वास्तुकला feasibly रूप में अच्छी तरह एक नियम के इंजन के लिए आवेदन कर सकता है।

5

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

मेरे अनुभव में, व्यवसाय उपयोगकर्ता को नियम अपडेट करने की व्यावहारिकता किसी के लिए पतली नहीं है। यह आमतौर पर व्यवसाय नियम संपादक काम करने के लिए एक तकनीकी व्यक्ति लेता है।

3

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

3

मैं निश्चित रूप से है, लेकिन सार्वजनिक रूप से उनके बारे में बात नहीं कर सकता है, लेकिन इसकी संभावना तो आप इस वर्ष एक कई बार साथ बातचीत की है;)

2 शिविरों में यह देखें: तर्क प्रोग्रामर और व्यापार उपयोगकर्ताओं। विभिन्न उपकरण अलग-अलग सेट को लक्षित करते हैं, कुछ दोनों। व्यावसायिक उपयोगकर्ताओं के सफल मामलों ने केवल तभी काम किया जब यह तर्क का सबसेट था, और उनके पास परीक्षण के मामलों को परिभाषित करने और उन्हें चलाने का भी एक तरीका था (और वे तार्किक रूप से सोचने के लिए तैयार हैं)। तर्क प्रोग्रामर दुर्लभ हैं, लेकिन अक्सर गैर अनिवार्य प्रोग्रामिंग पृष्ठभूमि से आते हैं (वे भी ऐसे लोग हैं जो कार्यात्मक प्रोग्रामिंग सहज ज्ञान युक्त पाते हैं)।

दिन के अंत में दृश्य उपकरण के साथ भी ध्यान रखें, अगर आप कुछ करने के लिए कंप्यूटर कह रहे हैं तो यह अभी भी प्रोग्रामिंग है।

4

एक नियम इंजन घोषणात्मक बयान निष्पादित करने वाली किसी चीज़ से थोड़ा अधिक है। वे दो प्राथमिक फायदे (जो मैं देखता हूं) के साथ आते हैं:

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

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

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

एक नियम इंजन आपके उपकरण की छाती में एक और उपकरण है, जब सही तरीके से उपयोग किया जाता है, तो यह मूल्यवान हो सकता है।

2

नियमित रूप से बीमा कारोबार में नियम इंजन का उपयोग किया जाता है। मैंने सैकड़ों (600ish) नियमों के साथ सिस्टम पर काम किया है जो एक नियम इंजन में लागू किए गए थे। यह बहुत अच्छा काम किया।

2

क्या आपके पास क्रेडिट रेटिंग है? एक FICO स्कोर, शायद? यह एफ हवा I saac सीओ रबरेशन, ब्लेज़ नियम इंजन के डेवलपर्स।

3

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

- तो, ​​हाँ, कंपनियों के सैकड़ों बिल्कुल लाभ वे वादा किया गया मिल गया है

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

वास्तव में।

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