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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

यह भी देखें

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