ड्रूल्स ट्यूटोरियल: ड्रूल्स रूल इंजन Archiटेकचर और उदाहरण

ड्रूल्स क्या है?

लार टपकना एक ओपन-सोर्स बिजनेस रूल्स मैनेजमेंट सॉफ्टवेयर (BRMS) है जो . में लिखा गया है Java जो उपयोगकर्ताओं को बिजनेस रूल इंजन, वेब ऑथरिंग, रूल्स मैनेजमेंट एप्लीकेशन और डिसीजन मॉडल और नोटेशन मॉडल के लिए रनटाइम सपोर्ट जैसी कई सुविधाएँ प्रदान करता है। यह रीट पैटर्न मैचिंग एल्गोरिदम की उन्नत कार्यान्वयन प्रणाली का उपयोग करता है।

ड्रूल्स को अपाचे लाइसेंस 2.0 के तहत जारी किया गया था और यह किसी भी JVM के साथ संगत है और मावेन सेंट्रल रिपॉजिटरी में भी उपलब्ध है।

ड्रूल्स टूल आपको व्यावसायिक प्रक्रियाओं में पाए जाने वाले तर्क और डेटा को अलग करने और उन पर तर्क करने में मदद करता है। यह फॉरवर्ड और बैकवर्ड चेनिंग इंफ़रेंस-आधारित ड्रूल्स रूल्स इंजन का समर्थन करता है।

ड्रोल्स को दो भागों में विभाजित किया गया है:

  • लेखन - इसमें नियम फ़ाइलों का विकास शामिल है।
  • क्रम - इसमें कार्यशील स्मृति का निर्माण और सक्रियण को संभालना शामिल है।

नियम क्या है?

नियम ज्ञान के भाग हैं जिन्हें अक्सर इस प्रकार व्यक्त किया जाता है, "जब विशिष्ट परिस्थितियां उत्पन्न हों, तो कुछ कार्य करें।"

किसी नियम का सबसे महत्वपूर्ण हिस्सा यह है कि कब भाग. एक बार कब भाग संतुष्ट है, फिर भाग चालू हो जाता है।

सिंटेक्स:

When
<Condition is true>
Then
<Take desired Action>

पैटर्न मिलान विधि

पैटर्न मिलान विधि आपको नए या पुराने तथ्यों की तुलना उत्पादन नियमों से करने में मदद करती है। यह इंफरेंस इंजन द्वारा पूरा किया जाता है।

Algorithms पैटर्न मिलान के लिए उपयोग किए जाने वाले हैं:

  • रीटे एल्गोरिदम
  • लीप्स एल्गोरिदम
  • रैखिक एल्गोरिथ्म
  • उपचार एल्गोरिथ्म

हालाँकि, ड्रूल्स द्वारा अधिकतर उपयोग किया जाने वाला एल्गोरिदम रीटे एल्गोरिदम है।

रीटे एल्गोरिदम

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

ड्रूल्स रूल इंजन

ड्रूल्स रूल इंजन ड्रूल्स सॉफ्टवेयर में एक्सपर्ट सिस्टम को लागू करने के लिए एक नियम-आधारित दृष्टिकोण है। नियम इंजन विशेषज्ञ प्रणाली प्रदान करता है जो ज्ञान-आधारित प्रणाली है जो आपको यह निर्णय लेने में मदद करती है कि क्या करना है और कैसे करना है। यह ज्ञान को ज्ञान आधार में इकट्ठा करता है जिसका उपयोग तर्क के लिए किया जा सकता है।

ड्रूल्स टूल्स सूट

अब इस ड्रूल्स रूल इंजन ट्यूटोरियल में, हम ड्रूल्स टूल सूट के बारे में जानेंगे। यहाँ पाँच प्रकार के टूल दिए गए हैं जो ड्रूल्स सूट के एक भाग के रूप में आते हैं:

  • ड्रूल्स गुवनोरयह ड्रूल्स नॉलेजबेस के लिए एक केंद्रीकृत भंडार है।
  • लार का प्रवाहयह वर्कफ़्लो और व्यावसायिक प्रक्रियाएँ प्रदान करता है।
  • ड्रूल्स फ्यूजन: जटिल घटना प्रसंस्करण के लिए उपयोग किया जाने वाला उपकरण
  • ड्रूल्स एक्सपर्ट या रूल्स इंजनतर्क करने के लिए एक उपयोगी उपकरण.
  • ड्रूल्स प्लानर: यह स्वचालित नियोजन प्रदान करता है, जिसमें एनपी-हार्ड नियोजन समस्याएं शामिल हैं।

ड्रूल्स में महत्वपूर्ण घटक

अब इस ड्रूल्स ट्यूटोरियल में, आइए ड्रूल्स के महत्वपूर्ण घटकों के बारे में जानें।

ड्रूल्स में प्रयुक्त आवश्यक शब्द इस प्रकार हैं:

  • तथ्य – तथ्य डेटा का प्रतिनिधित्व करते हैं जो नियमों के लिए इनपुट के रूप में कार्य करता है
  • मेमोरी कार्य करना - तथ्यों के साथ भंडारण, जहां उनका उपयोग पैटर्न मिलान के लिए किया जाता है। इसे संशोधित, सम्मिलित और हटाया जा सकता है।
  • ज्ञान सत्र - यह घटक नियम को सक्रिय करने के लिए आवश्यक सभी संसाधनों को रखता है। यहाँ, सभी तथ्यों को एकल सत्र में डाला जाता है, और फिर मिलान करने वाले नियमों को सक्रिय किया जाता है।
  • ज्ञानकोश - यह ड्रूल्स इकोसिस्टम में ज्ञान का प्रतिनिधित्व करता है। यह उन संसाधनों के निर्माण को संग्रहीत करता है जहाँ नियम पाए जाते हैं।
  • मॉड्यूल - यह एक ऐसा मॉड्यूल है जो कई ज्ञानकोषों को संग्रहीत करता है जो विभिन्न सत्रों को आयोजित कर सकते हैं

Archiड्रोल्स की टेक्चर

ड्रूल्स रूल इंजन Archiटेक्चर
ड्रूल्स रूल इंजन Archiटेक्चर

ड्रूल्स आर्किटेक्चर की कार्य प्रणाली इस प्रकार है:

चरण 1) नियमों को नियम आधार में लोड किया जाता है, जो हर समय उपलब्ध रहता है।

चरण 2) तथ्यों को कार्यशील स्मृति में स्थापित किया जाता है, जहां उन्हें संशोधित या वापस लिया जा सकता है।

चरण 3) उत्पादन नियमों के विरुद्ध नये या विद्यमान तथ्यों के मिलान की प्रक्रिया को पैटर्न मिलान कहा जाता है, जो नियम इंजन द्वारा किया जाता है।

चरण 4) एजेंडा आपको संघर्ष समाधान रणनीति की सहायता से परस्पर विरोधी नियमों के निष्पादन क्रम का प्रबंधन करने की अनुमति देता है।

ड्रूल की विशेषताएं

ड्रूल की महत्वपूर्ण विशेषताएं इस प्रकार हैं:

  • आपको एप्लीकेशन को गतिशील तर्क से अलग करने में मदद करता है
  • घोषणात्मक प्रोग्रामिंग
  • ज्ञान का केंद्रीकरण
  • गति और मापनीयता
  • तर्क को अनुप्रयोग से अलग करें
  • समझने योग्य नियम

ड्रूल्स प्लगइन्स को कैसे जोड़ें? Eclipse

अब इस ड्रूल्स ट्यूटोरियल में, आइए जानें कि ड्रूल्स प्लगइन को अपने ब्लॉग में कैसे जोड़ें। Eclipse.

चरण 1) jBPM एकीकरण के लिए “वितरण ज़िप” पर क्लिक करें
https://www.drools.org/download/download.html और jBPM एकीकरण के लिए “वितरण ज़िप” पर क्लिक करें। डाउनलोड हो जाने के बाद, इसे अपनी हार्ड ड्राइव पर निकालें।

ड्रूल्स प्लगइन्स को इसमें जोड़ें Eclipse

चरण 2) नया सॉफ्टवेयर स्थापित करें
In Eclipse, नया सॉफ़्टवेयर स्थापित करें का चयन करें.

ड्रूल्स प्लगइन्स को इसमें जोड़ें Eclipse

चरण 3) ऐड बटन पर क्लिक करें
सॉफ़्टवेयर जोड़ने के लिए Add बटन पर क्लिक करें।

ड्रूल्स प्लगइन्स को इसमें जोड़ें Eclipse

चरण 4) फ़ोल्डर ब्राउज़ करें
अगली स्क्रीन में, लोकल पर क्लिक करें और “org.drools.updatesite/” फ़ोल्डर चुनें, फिर ओके पर क्लिक करें।

ड्रूल्स प्लगइन्स को इसमें जोड़ें Eclipse

चरण 5) अगले बटन पर क्लिक करें
इंस्टॉल रिमेडिएशन पृष्ठ पर, अगला बटन पर क्लिक करें।

ड्रूल्स प्लगइन्स को इसमें जोड़ें Eclipse

चरण 6) लाइसेंस अनुबंध स्वीकार करें
लाइसेंस समझौते को स्वीकार करें और अगला क्लिक करें।

ड्रूल्स प्लगइन्स को इसमें जोड़ें Eclipse

चरण 7) रीबूट करें Eclipse
सॉफ्टवेयर डाउनलोड हो जाएगा, और आपसे एक्लिप्स को रीबूट करने के लिए कहा जाएगा।

चरण 8) स्थापना प्रक्रिया पूर्ण
In Windows > प्राथमिकताएं मेनू पर जाने पर, आपको ड्रूल्स विकल्प दिखाई देगा जो यह दर्शाता है कि यह इंस्टॉल हो गया है।

ड्रूल्स प्लगइन्स को इसमें जोड़ें Eclipse

ड्रूल्स प्रोग्राम हैलो वर्ल्ड उदाहरण

नीचे Hello World प्रोग्राम के लिए Drools का उदाहरण दिया गया है:

package com.sample
import com.sample.DroolsTest.Message;
rule "Hello World"
 when
	m : Message( status ** Message.Hello, myMessage : message )
  then
System.out.println( myMessage );
m.setMessage( "Goodbye cruel world" );
m.setStatus( Message.GOODBYE ); 
update( m );
end
 rule "GoodBye"

when
	Message( status ** Message.GOODBYE, myMessage : message )
then
System.out.println( myMessage );
end

बैकवर्ड बनाम फॉरवर्ड चेनिंग क्या है?

फॉरवर्ड-चेनिंग इंजन तथ्यों की जांच करता है और एक विशिष्ट निष्कर्ष निकालता है।

आइए चिकित्सा निदान प्रणाली के एक परिदृश्य पर विचार करें। यदि रोगी के लक्षणों को कार्यशील स्मृति में तथ्यों के रूप में रखा जाए, तो उसे बीमारी का निदान करना आसान है।

पिछड़ा बनाम आगे की चेनिंग

फॉरवर्ड-चेनिंग इंजन

बैकवर्ड चेनिंग इंजन का लक्ष्य निर्धारित होता है, और इंजन उसे पूरा करने का प्रयास करता है।

चिकित्सा निदान के उसी परिदृश्य पर विचार करें। मान लें कि किसी निश्चित बीमारी की महामारी फैल गई है। यह AI मान सकता है कि किसी व्यक्ति को वह बीमारी है और उपलब्ध जानकारी के आधार पर यह निर्धारित करने का प्रयास करता है कि उसका निदान सही है या नहीं।

पिछड़ा बनाम आगे की चेनिंग

बैकवर्ड-चेनिंग इंजन

ड्रूल्स रूल इंजन का उपयोग क्यों करें?

ड्रूल्स नियम इंजन का उपयोग करने के प्रमुख कारण यहां दिए गए हैं:

  • डेवलपर्स के लिए नियमों को समझना आसान है और व्यापार विश्लेषकों.
  • नियमों का पालन आसानी से किया जा सकता है।
  • नियम इंजन एक रेटे एल्गोरिथ्म का उपयोग करता है जो बताता है कि इंजन का प्रदर्शन कभी भी नियमों की संख्या पर निर्भर नहीं करता है।
  • एप्लिकेशन को बंद किए बिना नियमों को संशोधित और लागू किया जा सकता है।
  • तुलनात्मक रूप से स्थैतिक कोडबेस से व्यावसायिक तर्क को बाह्यीकृत करता है।
  • नियमों को कम जटिल प्रारूपों में विकसित किया जाता है ताकि व्यवसाय विश्लेषक नियमों के समूह को आसानी से पढ़ और सत्यापित कर सके।
  • नियम आपको ज्ञान का एक भण्डार बनाने की अनुमति देते हैं जो निष्पादन योग्य होता है।
  • उपकरण जैसे Eclipse नियमों का प्रबंधन करने, त्वरित प्रतिक्रिया प्राप्त करने, प्रमाणीकरण और सामग्री समर्थन में आपकी सहायता करता है।

नियम इंजन के नुकसान

नियम इंजन का उपयोग करने के नुकसान/नुकसान इस प्रकार हैं:

  • प्रोग्रामिंग की इस पद्धति को जानने के लिए डेवलपर्स को बहुत अधिक सीखने के प्रयास की आवश्यकता होती है
  • नियम इंजन समस्याओं के निवारण के लिए सुरक्षित तरीका नहीं है।
  • अधिक मेमोरी का उपभोग करने के लिए नियम इंजन की कार्यप्रणाली को समझने की आवश्यकता है
  • जटिल शाखाओं के लिए नियमों का एक विस्तृत सेट है।

नियम समय के साथ बदल सकते हैं और कोड परिवर्तनों के साथ प्रभावी हो जाएंगे

सारांश

  • JBoss Drools एक बिजनेस लॉजिक इंटीग्रेशन प्लेटफॉर्म (BLiP) है
  • ड्रूल टूल के प्रकार हैं: 1) ड्रूल्स गुवनर 2) ड्रूल्स फ्लो 3) ड्रूल्स फ्यूजन 4) ड्रूल्स एक्सपर्ट 5) ड्रूल्स, प्लानर।
  • ड्रूल आपको एप्लिकेशन को गतिशील तर्क से अलग करने में मदद करता है।
  • तथ्य में डेटा को दर्शाया गया है जो नियमों के लिए इनपुट के रूप में कार्य करता है।
  • वर्किंग मेमोरी तथ्यों के साथ एक भंडारण है, जहां उनका उपयोग पैटर्न मिलान के लिए किया जाता है। इसे संशोधित, सम्मिलित और हटाया जा सकता है।
  • ज्ञान आधार एक घटक है जो नियम को क्रियान्वित करने के लिए आवश्यक सभी संसाधनों को धारण करता है।
  • ज्ञान सत्र ड्रूल्स पारिस्थितिकी तंत्र में ज्ञान का प्रतिनिधित्व करता है।
  • ज्ञान आधार ड्रूल्स पारिस्थितिकी तंत्र में ज्ञान का प्रतिनिधित्व करता है।
  • मॉड्यूल कई ज्ञानकोषों को संग्रहीत करता है, जो विभिन्न सत्रों को आयोजित कर सकते हैं।
  • नियम ज्ञान के भाग हैं जिन्हें अक्सर इस प्रकार व्यक्त किया जाता है, "जब विशिष्ट परिस्थितियां उत्पन्न हों, तो कुछ कार्य करें।"
  • ड्रूल्स एक नियम इंजन है जो विशेषज्ञ प्रणाली को लागू करने के लिए नियम-आधारित दृष्टिकोण का उपयोग करता है।
  • फॉरवर्ड-चेनिंग इंजन तथ्यों की जांच करता है और एक विशिष्ट निष्कर्ष निकालता है।
  • बैकवर्ड चेनिंग इंजन का लक्ष्य निर्धारित होता है, और इंजन उसे पूरा करने का प्रयास करता है।
  • रीटे एल्गोरिदम एक उपयोगी पैटर्न मिलान एल्गोरिदम है जो आपको उत्पादन नियम प्रणालियों को लागू करने की अनुमति देता है।
  • डेवलपर्स और व्यवसाय विश्लेषकों के लिए नियमों को समझना आसान है।
  • ड्रूल जैसे नियम इंजन का उपयोग करने का मुख्य दोष यह है कि प्रोग्रामिंग की इस पद्धति को जानने के लिए डेवलपर्स को बहुत अधिक सीखने के प्रयास की आवश्यकता होती है।