التواصل بين العمليات بين تطبيق C++ وتطبيق Java في بيئة نظام التشغيل Windows

StackOverflow https://stackoverflow.com/questions/1209406

  •  06-07-2019
  •  | 
  •  

سؤال

لدينا تطبيق C++ على نظام التشغيل Windows يبدأ عملية جافا.يحتاج هذان التطبيقان إلى التواصل مع بعضهما البعض (عبر مقتطفات من ملف XML).

ما هي طريقة الاتصال بين العمليات التي ستختارها، ولماذا؟

الأساليب المطروحة على الطاولة بالنسبة لنا هي:ملف (ملفات) مشتركة وأنابيب ومآخذ توصيل (على الرغم من أنني أعتقد أن هذا يحتوي على بعض المخاوف الأمنية).أنا منفتح على طرق أخرى.

هل كانت مفيدة؟

المحلول

لست متأكدًا من سبب اعتقادك أن الاتصال المعتمد على مأخذ التوصيل سيكون له مخاوف أمنية (استخدم SSL).غالبًا ما يكون هذا نهجًا جيدًا للغاية كما هو ملحد اللغة, ، على افتراض أن لديك بروتوكول اتصال محدد جيدًا.قم بإلقاء نظرة على جوجل مخازن البروتوكول, على سبيل المثال - يقومون بإنشاء فئات وتدفقات Java المطلوبة.

من خلال خبرتي، فإن أنظمة الملفات (خاصة أنظمة ملفات الشبكة) ليست مناسبة تمامًا لمثل هذا الاتصال حيث أنه لا يتم ضبطها بالضرورة المراسلة (لقد رأيت مشكلات في التخزين المؤقت تؤدي إلى عدم التقاط الملفات بواسطة العملية المستهدفة على سبيل المثال).

خيار آخر هو أ المراسلة طبقة (AMQ أو Tibco على سبيل المثال) على الرغم من أن هذا من المحتمل أن يتضمن نفقات إدارية أكبر (بالإضافة إلى الخبرة) للإعداد.

أنا شخصياً سأختار نهج المقبس النقي بسبب مرونته وبساطته.ستكون في السيطرة الكاملة.

نصائح أخرى

ولقد استعملت أنابيب اسمه للتواصل بين C # و عبر منصة ج ++ التطبيق، وكان شيئا ولكن نتائج جيدة. باستثناء ذلك مآخذ هو بالتأكيد وسيلة للذهاب.

والمقابس هي لطيفة. أنها تعطيك القدرة على بسهولة جدا خلق طبقة اختبار الصندوق الأسود حول كل عنصر، وكذلك تشغيل كل مكون على آلة خاصة بها.

والأمن هو بالتأكيد مصدر قلق، ولكن هناك مجموعة جيدة من الخيارات اعتمادا على كم هو مهم. يمكنك استخدام SSL، المصافحة العرف، محمي بكلمة مرور تسجيل الدخول والجدران النارية للمساعدة في تأمين ذلك.

وتحرير: لا شيء أود أن أوصى، ولكن ليس هناك أيضا الذاكرة المشتركة باستخدام JNI. بس كنت أذكر ذلك لأنها ليست في القائمة الخاصة بك.

الجليد هو بارد جدا:)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top