व्यवसाय नियम इंजन

व्यवसाय नियम इंजन एक सॉफ्टवेयर सिस्टम है जो रनटाइम उत्पादन वातावरण में एक या अधिक व्यवसाय नियमों को निष्पादित करता है। नियम कानूनी विनियमन से आ सकते हैं ("किसी कर्मचारी को किसी भी कारण से या बिना किसी कारण के हटाया जा सकता है लेकिन किसी अवैध कारण से नहीं"),कंपनी की नीति ("सभी ग्राहक जो एक समय में 100 डॉलर से अधिक खर्च करते हैं उन्हें 10% की छूट मिलेगी"), या अन्य स्रोत। एक व्यावसायिक नियम प्रणाली इन कंपनी नीतियों और अन्य परिचालन निर्णयों को एप्लिकेशन कोड से अलग से परिभाषित, परीक्षण, निष्पादित और बनाए रखने में सक्षम बनाती है।

नियम इंजन सामान्यतः नियमों, तथ्यों, प्राथमिकता (स्कोर), पारस्परिक बहिष्करण, पूर्व शर्त और अन्य कार्यों का समर्थन करते हैं।

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

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

इतिहास
कंप्यूटरवर्ल्ड के लेख में 1990 के दशक की प्रारम्भ में नियम इंजनों और पेगासिस्टम्स, फेयर आइजैक कॉर्प, आईएलओजी और सेपियंस के ईमर्ज जैसे उत्पादों का पता लगाया गया है।

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


 * व्यावसायिक नियम ज्ञान उत्पन्न करते हैं;
 * वर्कफ़्लो व्यावसायिक कार्य निष्पादित करते हैं

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

यह अलगाव महत्वपूर्ण है क्योंकि एक ही व्यावसायिक निर्णय (बंधक अंडरराइटिंग मानदंडों को पूरा करता है) या व्यावसायिक घटना (राउटर अतिभारित है) पर कई अलग-अलग वर्कफ़्लो द्वारा प्रतिक्रिया की जा सकती है। नियम-संचालित ज्ञान सृजन के जवाब में किए गए कार्य को नियम में सम्मिलित करने से किसी संगठन में व्यावसायिक नियमों का पुन: उपयोग करने की क्षमता बहुत कम हो जाती है क्योंकि यह उन्हें कार्य-प्रवाह विशिष्ट बनाता है।

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

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

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

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

नियम इंजन के प्रकार
विभिन्न प्रकार के नियम इंजन उपस्थित हैं। ये प्रकार (सामान्यतः) इस बात में भिन्न होते हैं कि नियमों को निष्पादन के लिए कैसे निर्धारित किया जाता है।

व्यवसायों द्वारा उपयोग किए जाने वाले अधिकांश नियम इंजन फॉरवर्ड चेनिंग होते हैं, जिन्हें आगे दो वर्गों में विभाजित किया जा सकता है:


 * प्रथम वर्ग तथाकथित उत्पादन/अनुमान नियमों की प्रक्रिया करता है। इस प्रकार के नियमों का उपयोग IF कंडीशन THEN क्रिया प्रकार के व्यवहारों को दर्शाने के लिए किया जाता है। उदाहरण के लिए, ऐसा नियम इस सवाल का जवाब दे सकता है: "क्या इस ग्राहक को बंधक की अनुमति दी जानी चाहिए?" ग्राहक-ए-बंधक की अनुमति दें" फॉर्म के नियमों को क्रियान्वित करके"अगर कुछ शर्त है तो।
 * अन्य प्रकार का नियम इंजन तथाकथित प्रतिक्रिया/घटना स्थिति क्रिया नियमों को संसाधित करता है। प्रतिक्रियाशील नियम इंजन आने वाली घटनाओं का पता लगाते हैं और उन पर प्रतिक्रिया करते हैं और घटना पैटर्न की प्रक्रिया करते हैं। उदाहरण के लिए, एक प्रतिक्रियाशील नियम इंजन का उपयोग किसी प्रबंधक को सचेत करने के लिए किया जा सकता है जब कुछ आइटम स्टॉक से बाहर हो जाते हैं।

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

इसके अतिरिक्त, कुछ नियम इंजन बैकवर्ड चैनिंग का समर्थन करते हैं। इस स्थिति में नियम इंजन किसी विशेष लक्ष्य को पूरा करने के लिए तथ्यों को हल करना चाहता है। इसे प्रायः लक्ष्य-प्रेरित कहा जाता है क्योंकि यह उपस्थित जानकारी के आधार पर यह निर्धारित करने की कोशिश करता है कि क्या कुछ उपस्थित है।

एक अन्य प्रकार का नियम इंजन रीज़निंग रन के दौरान कई बार बैक- और फ़ॉरवर्ड-चेनिंग के बीच स्वचालित रूप से स्विच करता है, उदाहरण के लिए। इंटरनेट व्यवसाय लॉजिक प्रणाली, जिसे वेब पर सर्च करके पाया जा सकता है।

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

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

अभिगम नियंत्रण/प्राधिकरण के लिए नियम इंजन
नियम इंजनों के लिए एक सामान्य उपयोग का मामला अनुप्रयोगों के लिए मानकीकृत पहुंच नियंत्रण है। OASIS XACML (एक्स्टेंसिबल एक्सेस कंट्रोल मार्कअप लैंग्वेज) नामक एक्सेस कंट्रोल के लिए समर्पित नियम इंजन आर्किटेक्चर और मानक को परिभाषित करता है। XACML नियम इंजन और व्यवसाय नियम इंजन के बीच एक महत्वपूर्ण अंतर यह तथ्य है कि XACML नियम इंजन स्टेटलेस है और किसी भी डेटा की स्थिति को नहीं बदल सकता है।  XACML नियम इंजन, जिसे नीति निर्णय बिंदु (पीडीपी) कहा जाता है, द्विआधारी हां/नहीं प्रश्न की अपेक्षा करता है जैसे "क्या ऐलिस डॉक्यूमेंट D देख सकता है?" और अनुमति देना/अस्वीकार करना निर्णय लौटाता है।

यह भी देखें

 * व्यापार नियम
 * उत्पादन प्रणाली (कंप्यूटर विज्ञान)
 * अनुमान इंजन
 * पुन: एल्गोरिथ्म
 * रिपल-डाउन नियम
 * व्यापार नियम प्रबंधन प्रणाली
 * शब्दार्थ तर्ककर्ता
 * वर्कफ़्लो इंजन
 * व्यवसाय प्रक्रिया निष्पादन भाषा (बीपीईएल)
 * बीपीईएल इंजनों की सूची
 * बीपीएमएन 2.0 इंजनों की सूची

ग्रन्थसूची

 * Taylor, James; Raden, Neil (2007). Smart (Enough) Systems.  Prentice Hall.  ISBN 0-13-234796-2.
 * David Linthicum (2007-02-14). "Rules Engines and SOA". InfoWorld, 2007-02-14. Retrieved on 2009-09-23 from http://www.infoworld.com/d/architecture/rules-engines-and-soa-158.

बाहरी संबंध

 * Guidelines for deciding whether to use a rules engine?