मैं बिजनेस रूल्स इंजन का बहुत बड़ा प्रशंसक हूं, क्योंकि यह प्रोग्रामर के रूप में आपके जीवन को आसान बनाने में मदद कर सकता है। डेटा वेयरहाउस प्रोजेक्ट पर काम करते समय मैंने जो पहले अनुभव किए उनमें से एक था, पूरे पृष्ठों पर खींची गई जटिल CASE संरचनाओं वाले संग्रहीत कार्यविधियाँ खोजना। यह डिबग करने का एक बुरा सपना था, क्योंकि इस तरह की लंबी CASE संरचनाओं में लागू तर्क को समझना बहुत मुश्किल था, और यह निर्धारित करने के लिए कि आपके पास कोड के पेज 1 पर एक नियम के बीच ओवरलैपिंग है और पेज 5 से एक और। कुल मिलाकर, हमारे पास था 300 से अधिक ऐसे नियम कोड में एम्बेडेड हैं।
जब हम एक नई विकास आवश्यकता प्राप्त करते हैं, तो कुछ के लिए लेखांकन गंतव्य कहा जाता है, जिसमें 3000 से अधिक नियमों का इलाज शामिल था, मुझे पता था कि कुछ बदलना होगा। फिर मैं एक प्रोटोटाइप पर काम कर रहा हूं, जो बाद में अब एक कस्टम बिजनेस रूल इंजन बन गया है, जो सभी स्टैंडर्ड स्टैंडर्ड ऑपरेटरों को संभालने में सक्षम है। प्रारंभ में हम एक्सेल को एक संलेखन उपकरण के रूप में उपयोग कर रहे हैं और बाद में, हमने एक ASP.net एप्लिकेशन बनाया है जो व्यवसाय उपयोगकर्ताओं को कोड लिखने की आवश्यकता के बिना अपने स्वयं के व्यावसायिक नियमों को परिभाषित करने की अनुमति देगा। अब प्रणाली बहुत कम बग के साथ ठीक काम करती है, और इस लेखांकन गंतव्य की गणना के लिए 7000 से अधिक नियम हैं। मुझे नहीं लगता कि ऐसा परिदृश्य केवल हार्ड-कोडिंग द्वारा संभव हो सकता है।
फिर भी, ऐसे दृष्टिकोण की सीमाएँ हैं:
- आपके पास सक्षम व्यवसाय उपयोगकर्ता होने की आवश्यकता है जो कंपनी के व्यवसाय की उत्कृष्ट समझ रखते हैं।
- संपूर्ण हार्ड-कोडित शर्तों को निर्धारित करने के लिए, पूरे सिस्टम (हमारे मामले में एक डेटा वेयरहाउस) की खोज करने पर एक महत्वपूर्ण कार्यभार है, जो व्यापार नियम इंजन द्वारा नियंत्रित किए जाने वाले नियमों में अनुवाद करने के लिए समझ में आता है। हमें यह भी अच्छी तरह से ध्यान रखना है कि ये शुरुआती टेम्प्लेट व्यावसायिक उपयोगकर्ताओं द्वारा पूरी तरह से समझने योग्य हैं।
- आपको नियमों को लिखने के लिए उपयोग किए जाने वाले एप्लिकेशन की आवश्यकता होती है, जिसमें ओवरलैपिंग व्यावसायिक नियमों का पता लगाने के लिए एल्गोरिदम लागू किया जाता है। अन्यथा आप एक बड़ी गड़बड़ी को समाप्त करेंगे, जहां कोई भी परिणाम प्राप्त नहीं करता है। जब आपके पास कस्टम व्यवसाय नियम इंजन जैसे सामान्य घटक में एक बग होता है, तो यह डीबग करना और यह सुनिश्चित करने के लिए व्यापक परीक्षणों को शामिल करना बहुत मुश्किल हो सकता है कि जो चीजें पहले काम करती थीं, वे अब भी काम करती हैं।
इस विषय पर अधिक विवरण मुझे पोस्ट की गई पोस्ट पर मिल सकते हैं: http://dwhbp.com/post/2011/10/30/Implementing-a-Business-Rule-Engine.aspx
कुल मिलाकर, बिजनेस रूल इंजन का उपयोग करने का सबसे बड़ा लाभ यह है कि यह उपयोगकर्ताओं को बिजनेस नियम परिभाषाओं और संलेखन पर नियंत्रण वापस लेने की अनुमति देता है, बिना आईटी विभाग में जाने के लिए हर बार उन्हें कुछ संशोधित करने की आवश्यकता होती है। यह आईटी विकास टीमों पर काम का बोझ भी कम करता है, जो अब अधिक जोड़ा मूल्य के साथ सामान बनाने पर ध्यान केंद्रित कर सकता है।
चीयर्स,
निकोलाय