व्यवसाय नियम इंजन: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(7 intermediate revisions by 4 users not shown)
Line 1: Line 1:
व्यवसाय नियम इंजन एक सॉफ्टवेयर सिस्टम है जो रनटाइम उत्पादन वातावरण में एक या अधिक बिजनेस नियमों को निष्पादित करता है। नियम कानूनी विनियमन से आ सकते हैं ("किसी कर्मचारी को किसी भी कारण से या बिना किसी कारण के हटाया जा सकता है लेकिन किसी अवैध कारण से नहीं"),कंपनी की नीति ("सभी ग्राहक जो एक समय में $100 से अधिक खर्च करते हैं उन्हें 10% की छूट मिलेगी"), या अन्य स्रोत। एक व्यावसायिक नियम प्रणाली इन कंपनी नीतियों और अन्य परिचालन निर्णयों को एप्लिकेशन कोड से अलग से परिभाषित, परीक्षण, निष्पादित और बनाए रखने में सक्षम बनाती है।
'''व्यवसाय नियम इंजन''' एक सॉफ्टवेयर सिस्टम है जो रनटाइम उत्पादन वातावरण में एक या अधिक व्यवसाय नियमों को निष्पादित करता है। नियम कानूनी विनियमन से आ सकते हैं ("किसी कर्मचारी को किसी भी कारण से या बिना किसी कारण के हटाया जा सकता है लेकिन किसी अवैध कारण से नहीं"),कंपनी की नीति ("सभी ग्राहक जो एक समय में 100 डॉलर से अधिक खर्च करते हैं उन्हें 10% की छूट मिलेगी"), या अन्य स्रोत। एक व्यावसायिक नियम प्रणाली इन कंपनी नीतियों और अन्य परिचालन निर्णयों को एप्लिकेशन कोड से अलग से परिभाषित, परीक्षण, निष्पादित और बनाए रखने में सक्षम बनाती है।


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


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


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


==इतिहास==
==इतिहास==


[[कंप्यूटर की दुनिया]] के एक लेख में 1990 के दशक की शुरुआत और [[पेगासिस्टम्स]], फेयर आइजैक कॉर्प, आईएलओजी जैसे उत्पादों के नियम इंजनों का पता लगाया गया है।<ref>
कंप्यूटरवर्ल्ड के लेख में 1990 के दशक की प्रारम्भ में नियम इंजनों और [[पेगासिस्टम्स]], फेयर आइजैक कॉर्प, आईएलओजी<ref>
{{cite journal
{{cite journal
| title                = Do you know where all of your company's business rules are?
| title                = Do you know where all of your company's business rules are?
Line 24: Line 24:
| quote                = Rules engines have been around since the early 1990s when companies such as Pegasystems Inc. in Cambridge, Mass., Fair Isaac Corp. in Minneapolis and ILOG in Mountain View, Calif., sold them. They were typically used in rules-heavy industries such as finance and insurance. Over the past few years, however, many vendors have entered the market, and more companies are looking at rules engines as a way to gain greater flexibility in business operations.
| quote                = Rules engines have been around since the early 1990s when companies such as Pegasystems Inc. in Cambridge, Mass., Fair Isaac Corp. in Minneapolis and ILOG in Mountain View, Calif., sold them. They were typically used in rules-heavy industries such as finance and insurance. Over the past few years, however, many vendors have entered the market, and more companies are looking at rules engines as a way to gain greater flexibility in business operations.
}}
}}
</ref> और eMerge<ref>{{Cite web |title=eMerge नियम-आधारित सॉफ़्टवेयर विकास प्लेटफ़ॉर्म|url=https://sapiens.com/products/emerge-development-platform/}}</ref> [[सेपियंस इंटरनेशनल कॉर्पोरेशन]] से।
</ref> और सेपियंस के ईमर्ज <ref>{{Cite web |title=eMerge नियम-आधारित सॉफ़्टवेयर विकास प्लेटफ़ॉर्म|url=https://sapiens.com/products/emerge-development-platform/}}</ref> जैसे उत्पादों का पता लगाया गया है।


==डिज़ाइन रणनीतियाँ==
==डिज़ाइन रणनीतियाँ==
कई संगठनों के नियम प्रयास पारंपरिक नियम डिजाइन के साथ आम तौर पर [[ कार्यप्रवाह ]] डिज़ाइन माने जाने वाले पहलुओं को जोड़ते हैं। दोनों दृष्टिकोणों को अलग करने में विफलता से व्यावसायिक नियमों और वर्कफ़्लो दोनों का पुन: उपयोग और नियंत्रण करने की क्षमता में समस्याएं पैदा हो सकती हैं। इस दुविधा से बचने वाले डिज़ाइन दृष्टिकोण व्यवसाय नियमों और वर्कफ़्लो की भूमिका को निम्नानुसार अलग करते हैं:<ref>Is Your Rules Engine Event-Driven? Retrieved from http://www.sapiens-tech.com/iDuneDownload.dll?GetFile?AppId=225&FileID=216581&Anchor=&ext=.pdf {{Webarchive|url=https://web.archive.org/web/20180930065033/http://www.sapiens-tech.com/iDuneDownload.dll?GetFile%3FAppId=225&FileID=216581&Anchor=&ext=.pdf |date=2018-09-30 }}.</ref>
कई संगठनों के नियम प्रयास उन पहलुओं को जोड़ते हैं जिन्हें सामान्यतः वर्कफ़्लो डिज़ाइन के साथ पारंपरिक नियम डिज़ाइन माना जाता है। दोनों दृष्टिकोणों को अलग करने में विफलता के कारण व्यावसायिक नियमों और वर्कफ़्लो दोनों का पुन: उपयोग और नियंत्रण करने की क्षमता में समस्याएँ हो सकती हैं। इस दुविधा से बचने वाले डिज़ाइन दृष्टिकोण व्यवसाय नियमों और वर्कफ़्लो की भूमिका को इस प्रकार अलग करते हैं:<ref>Is Your Rules Engine Event-Driven? Retrieved from http://www.sapiens-tech.com/iDuneDownload.dll?GetFile?AppId=225&FileID=216581&Anchor=&ext=.pdf {{Webarchive|url=https://web.archive.org/web/20180930065033/http://www.sapiens-tech.com/iDuneDownload.dll?GetFile%3FAppId=225&FileID=216581&Anchor=&ext=.pdf |date=2018-09-30 }}.</ref>
 
* व्यावसायिक नियम ज्ञान उत्पन्न करते हैं;
* व्यावसायिक नियम ज्ञान उत्पन्न करते हैं;
* वर्कफ़्लो व्यावसायिक कार्य करते हैं.
* वर्कफ़्लो व्यावसायिक कार्य निष्पादित करते हैं


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


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


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


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


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


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


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


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


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


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


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


ऐसी कुछ परिस्थितियाँ हैं जहाँ [[फजी लॉजिक]] आधारित अनुमान अधिक उपयुक्त हो सकता है, जहाँ नियम प्रसंस्करण में बूलियन नियमों के बजाय अनुमान का उपयोग किया जाता है। उदाहरणों में ग्राहक वर्गीकरण, गुम डेटा अनुमान, ग्राहक मूल्य गणना आदि शामिल हो सकते हैं। DARL भाषा<ref>{{Cite web |url=https://darl.ai/home/darl |title=DARL भाषा|access-date=2018-09-01 |archive-date=2018-09-01 |archive-url=https://web.archive.org/web/20180901215801/https://darl.ai/home/darl |url-status=dead }}</ref> और संबंधित अनुमान इंजन और संपादक इस दृष्टिकोण का एक उदाहरण है।
एक अन्य प्रकार का नियम इंजन रीज़निंग रन के दौरान कई बार बैक- और फ़ॉरवर्ड-चेनिंग के बीच स्वचालित रूप से स्विच करता है, उदाहरण के लिए। इंटरनेट व्यवसाय लॉजिक प्रणाली, जिसे वेब पर सर्च करके पाया जा सकता है।
 
नियमों के चौथे वर्ग के इंजन को नियतिवादी इंजन कहा जा सकता है। ये नियम इंजन फ़ॉर्वर्ड चेनिंग और बैकवर्ड चेनिंग दोनों को छोड़ सकते हैं, और इसके बजाय नीति का बेहतर वर्णन करने के लिए डोमेन-विशिष्ट भाषा दृष्टिकोण का उपयोग कर सकते हैं। इस दृष्टिकोण को लागू करना और बनाए रखना प्रायः आसान होता है, और फॉरवर्ड या बैकवर्ड चेनिंग सिस्टम पर प्रदर्शन लाभ प्रदान करता है।
 
ऐसी कुछ परिस्थितियां हैं जहां फ़ज़ी लॉजिक आधारित अनुमान अधिक उपयुक्त हो सकता है, जहां बूलियन नियमों के बजाय नियम प्रसंस्करण में अनुमान का उपयोग किया जाता है। उदाहरणों में ग्राहक वर्गीकरण, अप्राप्त डेटा अनुमान, ग्राहक मूल्य गणना आदि सम्मिलित हो सकते हैं। DARL भाषा <ref>{{Cite web |url=https://darl.ai/home/darl |title=DARL भाषा|access-date=2018-09-01 |archive-date=2018-09-01 |archive-url=https://web.archive.org/web/20180901215801/https://darl.ai/home/darl |url-status=dead }}</ref> और संबंधित अनुमान इंजन और संपादक इस दृष्टिकोण का एक उदाहरण हैं।


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


== यह भी देखें ==
== यह भी देखें ==
Line 88: Line 89:
==बाहरी संबंध==
==बाहरी संबंध==
*[https://web.archive.org/web/20081208082720/http://herzberg.ca.sandia.gov/guidelines.shtml Guidelines for deciding whether to use a rules engine?]
*[https://web.archive.org/web/20081208082720/http://herzberg.ca.sandia.gov/guidelines.shtml Guidelines for deciding whether to use a rules engine?]
[[Category: नियम इंजन]] [[Category: निर्णय समर्थन प्रणाली]] [[Category: विशेषज्ञ प्रणालियां]]


[[Category: Machine Translated Page]]
[[Category:Created On 27/07/2023]]
[[Category:Created On 27/07/2023]]
[[Category:Machine Translated Page]]
[[Category:Pages with script errors]]
[[Category:Templates Vigyan Ready]]
[[Category:Webarchive template wayback links]]
[[Category:नियम इंजन]]
[[Category:निर्णय समर्थन प्रणाली]]
[[Category:विशेषज्ञ प्रणालियां]]

Latest revision as of 10:48, 22 August 2023

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

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

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

आईटी उपयोग

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

इतिहास

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

डिज़ाइन रणनीतियाँ

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

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

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

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

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

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

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

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

नियम इंजन के प्रकार

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

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

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

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

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

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

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

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

अभिगम नियंत्रण/प्राधिकरण के लिए नियम इंजन

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

यह भी देखें

संदर्भ

  1. "Do you know where all of your company's business rules are?". Computerworld. IDG Enterprise (published 2005-05-23). 39 (21): 25. 23 May 2005. ISSN 0010-4841. Retrieved 2014-02-02. Rules engines have been around since the early 1990s when companies such as Pegasystems Inc. in Cambridge, Mass., Fair Isaac Corp. in Minneapolis and ILOG in Mountain View, Calif., sold them. They were typically used in rules-heavy industries such as finance and insurance. Over the past few years, however, many vendors have entered the market, and more companies are looking at rules engines as a way to gain greater flexibility in business operations.
  2. "eMerge नियम-आधारित सॉफ़्टवेयर विकास प्लेटफ़ॉर्म".
  3. Is Your Rules Engine Event-Driven? Retrieved from http://www.sapiens-tech.com/iDuneDownload.dll?GetFile?AppId=225&FileID=216581&Anchor=&ext=.pdf Archived 2018-09-30 at the Wayback Machine.
  4. "DARL भाषा". Archived from the original on 2018-09-01. Retrieved 2018-09-01.


ग्रन्थसूची


बाहरी संबंध