2009-07-30 9 views
6

हमारे पास विंडोज़ पर एक सी ++ एप्लिकेशन है जो जावा प्रक्रिया शुरू करता है। इन दो ऐप्स को एक दूसरे के साथ संवाद करने की आवश्यकता है (एक्सएमएल के स्निपेट के माध्यम से)।विंडोज ओएस पर्यावरण में सी ++ ऐप और जावा ऐप के बीच इंटरप्रोसेस संचार

आप किस इंटरप्रोसेस संचार विधि का चयन करेंगे, और क्यों?

हमारे लिए टेबल पर तरीके हैं: एक साझा फ़ाइल (ओं), पाइप और सॉकेट (हालांकि मुझे लगता है कि इसमें कुछ सुरक्षा चिंताएं हैं)। मैं अन्य तरीकों के लिए खुला हूं।

उत्तर

9

मुझे यकीन नहीं है कि आपको लगता है कि सॉकेट-आधारित संचार में सुरक्षा चिंताओं (एसएसएल का उपयोग) क्यों होगा। यह अक्सर एक बहुत अच्छा दृष्टिकोण है क्योंकि भाषा अज्ञेय है, यह मानते हुए कि आपके पास एक अच्छी तरह से परिभाषित संचार प्रोटोकॉल है। Google के protocol buffers पर एक नज़र डालें, उदाहरण के लिए - वे आवश्यक जावा कक्षाएं और स्ट्रीम उत्पन्न करते हैं।

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

एक अन्य विकल्प मैसेजिंग परत (AMQ या TIBCO उदाहरण के लिए) इस हालांकि संभावना अधिक से अधिक व्यवस्थापक ओवरहेड (प्लस विशेषज्ञता) स्थापित करने के लिए शामिल होगी है।

व्यक्तिगत रूप से मैं इसकी लचीलापन और सादगी के कारण शुद्ध-सॉकेट दृष्टिकोण का चयन करूंगा। आप पूर्ण नियंत्रण पर होंगे।

+0

आपका पॉइंट सॉकेट और सुरक्षा के बारे में लिया जाता है। धन्यवाद। +1 –

3

मैं सी # और एक पार मंच C++ अनुप्रयोग के बीच संचार के लिए नामित पाइप का इस्तेमाल किया और लेकिन अच्छे परिणाम कुछ भी नहीं मिला है। उस सॉकेट को छोड़कर निश्चित रूप से जाने का तरीका है।

2

सॉकेट अच्छे हैं। वे आपको प्रत्येक घटक के चारों ओर एक ब्लैकबॉक्स परीक्षण परत को आसानी से बनाने की क्षमता देते हैं, साथ ही प्रत्येक घटक को अपनी मशीन पर चलाते हैं।

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

संपादित करें: कुछ ऐसा नहीं जो मैं अनुशंसा करता हूं, लेकिन जेएनआई का उपयोग करके साझा स्मृति भी है। बस सोचा कि मैं इसका जिक्र करूँगा क्योंकि यह आपकी सूची में नहीं है।

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