2011-11-23 13 views
7

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

अग्रिम धन्यवाद।

उत्तर

4

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

0

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

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

स्लाइस परिभाषाओं को एक संकलक द्वारा एक विशेष कार्यान्वयन भाषा के लिए संकलित किया गया है उदाहरण के लिए सी ++ के लिए।

आप एक्सएमएल-आरपीसी का भी उपयोग कर सकते हैं। यह एक हल्का और उपयोग करने में आसान आरपीसी तंत्र है। आप इसे here प्राप्त कर सकते हैं।

2

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

आप आसानी से आरपीसी ढांचे के लिए अनुरोध-उत्तर पैटर्न का उपयोग कर सकते हैं, लेकिन जैसा कि आप guide पढ़ते हैं, तो आप पाएंगे कि अन्य पैटर्न अधिक उपयुक्त हैं।

मुझे ØMQ के शीर्ष पर बनाया गया RPC framework मिला, लेकिन चूंकि आप जाहिर तौर पर सी ++ का उपयोग कर रहे हैं, यह शायद आपकी मदद नहीं करेगा (सीखने के उद्देश्यों के अलावा)। this question भी देखें। यदि आप चाहें तो शायद आप आसानी से अपना खुद का रोल कर सकते हैं।

ØMQ का लाइसेंस "LGPLv3 +" है, जो मूल रूप से एक स्थिर लिंक अपवाद के साथ एलजीपीएल है। czmq MPLv2 पर जा रहा है, इसलिए अगर मैं जल्द ही ØMQ सूट का पालन करता हूं तो मुझे आश्चर्य नहीं होगा। ØMQ निर्माता से एक संदेश के मुताबिक, MPLv2 "LGPLv3 +" लाइसेंस के समान है, लेकिन उद्यम वकीलों के लिए अधिक स्वीकार्य है।

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

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