2010-01-30 14 views
98

जावा नियम इंजन JESS और Drools को अपनाने के लिए पेशेवर और विपक्ष क्या हैं? क्या कोई अन्य खिलाड़ी हैं?जावा नियम इंजन के पेशेवरों और विपक्ष

मैं समझता हूं कि ड्रोल ओपन सोर्स है और जेईएस नहीं है, लेकिन वे आपके कोड के साथ उपयोग, प्रदर्शन, एकीकरण के स्तर जैसे अन्य क्षेत्रों में तुलना कैसे करते हैं?

उत्तर

13

हम अपने आवेदन सर्वर के साथ उपयोग के लिए नियमों का मूल्यांकन कर रहे हैं। हम OpenRules पर आ गए हैं, जो जावा के साथ एकीकृत करना आसान है, और जहां तक ​​हमारे परीक्षण दिखाए गए हैं, तेज़ी से पर्याप्त है। दूसरों के ऊपर ओपनर्यूल का मुख्य लाभ नियमों को संशोधित और संभालने का तरीका है। यह सब एक्सेल टेबल में होता है, जो गैर-प्रोग्रामर के लिए सबसे आसान तरीका है। सभी शामिल थे, यहां तक ​​कि गैर-तकनीकी लोग, सब कुछ पूरी तरह से समझ गए :-)

हमारे पास भी डोलॉल्स एकीकृत हैं, लेकिन नियमों को समझने के लिए और अधिक जटिल हैं क्योंकि यह एक और प्रोग्रामेटिक दृष्टिकोण है। यही कारण है कि हम - सबसे अधिक संभावना - OpenRules के लिए चिपके रहेंगे।

+14

Drools निम्नलिखित में अधिक जानकारी के लो। – retronym

118

जावा नियम इंजन जेईएस और डोलॉल्स को अपनाने के लिए पेशेवर और विपक्ष क्या हैं?

यदि आप एप्लिकेशन तर्क से व्यवसाय नियमों को अलग करने की आवश्यकता है तो नियम इंजन का उपयोग करें।

if (product.quantity > 100 && product.quantity < 500) { 
    product.discount = 2; 
} else if (product.quantity >= 500 && product.quantity < 2000) { 
    product.discount = 5; 
} else if (product.quantity >= 2000) { 
    product.discount = 10; 
} 

एक नियम इंजन कोड कि तरह लग रहा है के साथ ऊपर की जगह:

उदाहरण के लिए, एक विशिष्ट स्टोर के सामने प्रणाली कोड शामिल हो सकता है छूट की गणना करने के: Does Your Project Need a Rule Engine लेख एक अच्छा उदाहरण है इस:

ruleEngine.applyRules(product); 

आप अप करने के लिए घ के लिए ecide कि क्या गैर तकनीकी लोगों के हाथों में एक नियम के व्यवस्थापक कंसोल डाल एक अच्छी बात है या नहीं Should I use a Rules Engine?, Why use a Rule Engine?, Some Guidelines For Deciding Whether To Use A Rules Engine में और Google पर

अधिक जानकारी :)।

क्या कोई अन्य खिलाड़ी हैं?

अन्य खिलाड़ियों में जेआरयूल्स, कॉर्टिकॉन (जेआरयूएल सबसे प्रसिद्ध आईएमओ है - जिसका मतलब सबसे अच्छा नहीं है)।

वे अपने कोड के साथ उपयोग, प्रदर्शन, एकीकरण के स्तर जैसे अन्य क्षेत्रों में तुलना कैसे करते हैं?

आपको ठीक से नहीं बता सकता है, मेरे पास केवल डॉरोल्स के साथ थोड़ा (सकारात्मक) अनुभव है। लेकिन आपको ब्लॉग पोस्ट से कुछ प्रतिक्रिया मिलेगी जैसे JBoss Drools vs ILog JRules - an anecdotal story (इसे पढ़ना सुनिश्चित करें) या Working with Drools from a JRules perspective। मुझे यकीन है कि आप Google पर उनमें से अधिक पा सकते हैं (लेकिन मैं ड्रॉल्स को आज़मा दूंगा)।

+0

आपका उत्तर अच्छा दिखता है। क्या आप कृपया मुझे बता सकते हैं कि डोलोल और जहां जेस का उपयोग करना है? असल में, मैं उत्तर से अधिक संबंधित diff की उम्मीद कर रहा हूँ। बी/डब्ल्यू डोलोल और जेस। – Tony

+7

वाह, @ पास्कल, वह उत्पाद मात्रा/छूट उदाहरण वास्तविक डब्ल्यूटीएफ है। कहें मात्रा 5,000 है। पहला आईएफ सच साबित होता है, ईएलएसई आईएफ का मूल्यांकन कभी नहीं किया जाता है। नियम इंजन में उस प्रकार का व्यावसायिक तर्क डालने से कुछ भी मदद नहीं मिल रही है, हालांकि यह बग को ढूंढना अधिक कठिन हो सकता है। – DOK

+0

अपनी रक्षा में वह उदाहरण उस पहले लेख से था। इतना यकीन नहीं है कि कोई और अब कितना विश्वसनीय है ... :) – Jeb

2

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

+6

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

3

बस यह जोड़कर कि बहुत से लोग किसी भी अनुप्रयोग में कुछ विशेषताओं को सक्षम या अक्षम करने के लिए कुछ शर्तों को पूरा करने के लिए मिले हैं, यह प्रबंधित करने के लिए कुछ और ढूंढ रहे हैं।

मैं एक ही पैटर्न अधिक से अधिक हर जगह मैं गया-को लागू फिर से थक बढ़ी, तो मैं के लिए यह

मैं सिर्फ यह Maven-ized और के बाद से वहाँ कोई कर दिया गया है Roolie http://sourceforge.net/projects/roolie/

नामक एक ओएसएस परियोजना बनाने का फैसला किया जब 2010 को रिलीज़ किया गया था तब से बग्स की सूचना मिली, मैंने इसे v 1.0 में अपग्रेड किया, जिसमें मैवेन सेंट्रल (जिसे मैं करने की प्रक्रिया में हूं) में होस्ट करने के लिए आवश्यक कुछ भी नहीं।

मूल रूप से जेएसआर -94 ज्यादातर चीजों के लिए अधिक है, और वर्तमान पेशकश के साथ एक विशाल सीखने की वक्र और ऊपरी भाग है। यह ठीक है अगर आप यही चाहते हैं। लेकिन अगर आप अपने राज्य परीक्षणों को बनाए रखने के लिए जावा में लिखे गए सरल नियमों को श्रृंखलाबद्ध करना चाहते हैं, तो रूली इसे करने का एक तेज़ तरीका है। कोई निर्भरता नहीं और कोई सीखने की अवस्था नहीं है।

+1

रूली का कहना है कि यह एमआईटी SourceForge पर लाइसेंस प्राप्त है, लेकिन कोड LGPLv3 की रिपोर्ट करता है। इसका अनिवार्य रूप से इसका मतलब किसी भी व्यावसायिक उत्पाद (और कुछ ओपन सोर्स उत्पादों में भी) में इसका उपयोग करने के लिए संदिग्ध है। Http://nmav.gnutls.org/2013/03/the-perils-of-lgplv3.html देखें। – ingyhere

6

हमारे साथ समान प्रश्न था, हम अंततः Drools, एक drools का उपयोग करना चाहिए उठाया यदि आप निम्न है:

  • व्यापार तर्क जो आपको लगता है कई से भरा हो रही है अगर परिदृश्यों की विविधता की वजह से स्थिति
  • आप जटिलता में वृद्धि की बढ़ती मांग
  • व्यापार तर्क परिवर्तन लगातार होगा होगा (1 - 2 बार एक साल भी लगातार हो जाएगा)
  • आपके सर्वर का है स्मृति के लिए पर्याप्त रूप में यह एक स्मृति भूख उपकरण है , यह प्रावधान स्मृति

की कीमत पर प्रदर्शन भी Excel में संपादित नियमों का समर्थन करता है, और एक वेब इंटरफेस के माध्यम URL

संबंधित मुद्दे