अदिश मापदंडों के लिए गणना इंजन रहे हैं, और वहाँ तालिकाओं के लिए उच्च स्तर की गणना इंजन हैं, आम तौर पर वित्तीय नियोजन, शुल्क और कमीशन गणना, नेटवर्क और अनुबंध गणना जैसे अनुप्रयोगों के लिए उपयोग किया जाता है ...
मुझे इसे जल्द ही समझाएं। स्केलर्स के लिए निम्नलिखित सूत्रों पर विचार करें:
1) z = f1(x,y)
2) p = f2(z,n)
3) q = f3(x,p)
...
और इसी तरह। ऐसे कार्यों और निर्भरता पेड़ों को कॉन्फ़िगर करने के लिए स्केलर पैरामीटर के साथ एक गणना इंजन की आवश्यकता होती है। मैं (भी) एक अच्छा प्रारंभिक बिंदु के रूप में सी # में लिखा इस तरह के एक गणना के इंजन के लिए नीचे दिए गए लिंक की सिफारिश करेंगे: http://www.codeproject.com/Articles/246374/A-Calculation-Engine-for-NET
के रूप में उल्लेख किया है, वहाँ भी कर रहे हैं तालिका कार्यों कि पैरामीटर के रूप में टेबल लेने के साथ गणना इंजन। मुख्य सिद्धांत है लेकिन वही:
1) (T4, T5) = TableFunction1(T1, T2, T3)
2) (T7, T8) = TableFunction2(T2, T4)
...
और इसी तरह। ध्यान दें कि ऊपर दिखाए गए अनुसार एक टेबल फ़ंक्शन आउटपुट के रूप में एकाधिक तालिकाओं को वापस कर सकता है।
वहाँ दो महत्वपूर्ण मुद्दों यहाँ मनाया जा रहे हैं:
क) टेबल T7 और T8 के मूल्यों टेबल टी 2 और टी -4 पर निर्भर हैं। इसलिए, तालिका T7 और T8 को केवल "TableFunction2" फ़ंक्शन निष्पादित करके अद्यतन किया जाना चाहिए यदि इनपुट पैरामीटर T2 या T4 में से कोई एक में कोई परिवर्तन हो।
इसी तरह, टी 4 को केवल तभी अपडेट किया जाना चाहिए जब टी 1, टी 2 या टी 3 अपडेट किया गया हो; निर्भरता पेड़!
बी) गणना प्रक्रिया से डेटाबेस का पृथक्करण: गणना इंजन किसी निश्चित डेटा संरचना या डेटाबेस स्कीमा से स्वतंत्र होना चाहिए ताकि इसे किसी भी डेटाबेस और डेटा संरचना के साथ एकीकृत किया जा सके।
तुम मेरे संबंधित लेख पा सकते हैं, जहां इन सिद्धांतों पर समझाया गया है:
एक नियम आधारित गणना फ्रेमवर्क के तार्किक वास्तुकला http://finaquant.com/logical-architecture-of-a-rule-based-calculation-framework/1053
अब, टेबल के साथ एक गणना के इंजन के लिए एक सी #/नेट पुस्तकालय। क्योंकि इन सिद्धांतों के आधार पर इनपुट और आउटपुट पैरामीटर विकसित किए जा रहे हैं।
मॉडरेटर को ध्यान दें: यदि उपरोक्त पदोन्नति के रूप में गिना जाता है तो कृपया उपरोक्त लिंक हटाएं।
विंडोज वर्कफ़्लो फाउंडेशन के तहत "नियम इंजन" देखें। –
मुझे नहीं पता कि यह पहले से मौजूद है या नहीं, लेकिन यह किसी भी तरह से लागू करने के लिए एक अच्छा विचार की तरह दिखता है, आपको केवल 'इनोटिफाईप्रॉपर्टी चेंजिंग की आवश्यकता है और डिप्लेसीज को जोड़ने के लिए अभिव्यक्ति वृक्ष को विघटित करने की आवश्यकता है। – Guillaume86