ما هي إيجابيات وسلبيات خدمات الويب وRMI في بيئة جافا فقط؟

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

سؤال

عند تطوير التطبيقات الموزعة، كلها مكتوبة بلغة Java بواسطة نفس الشركة، هل ستختار Web Services أو RMI؟ما هي الإيجابيات والسلبيات من حيث الأداء، والاقتران السائب، وسهولة الاستخدام، ...؟هل سيختار أي شخص WS؟هل يمكنك بناء بنية موجهة نحو الخدمة باستخدام RMI؟

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

المحلول

سأحاول التفكير في الأمر بهذه الطريقة:

هل ستتجه نحو خدمات مستقلة تعمل تحت بعضها البعض، ويمكن الوصول إلى هذه الخدمات من خلال تطبيقات غير Java في وقت ما في المستقبل؟ثم انتقل لخدمات الويب.

هل تريد فقط نشر أجزاء من التطبيق (مع مراعاة المفرد) على عدة خوادم؟ثم انتقل إلى RMI ولن تضطر إلى مغادرة عالم Java حتى يعمل كل شيء معًا بشكل وثيق.

نصائح أخرى

سأختار WS.

  • من غير المرجح أن يكون WS/RMI هو عنق الزجاجة لديك.
  • لماذا نغلق الباب أمام تقنيات أخرى ممكنة في المستقبل؟
  • قد يواجه RMI مشكلة في حالة خروج إصدار الفئات على العميل/الخادم من المزامنة.

و...سأختار على الأرجح خدمات REST.

إذا لم تكن بحاجة إليه (التشغيل التفاعلي مع غير Java)، وربما لا تحتاج إليه، فسيكون RMI أفضل؛كود أقل، تكوين أقل، عرض نطاق ترددي أقل.

أحد الخيارات إذا كنت خائفًا من أنك ستحتاج إليه هو استخدام EJB3؛فهو يستخدم RMI، ومن السهل جدًا إعداده ونشره، ولكنه يسمح لك أيضًا بتحويل مكالماتك إلى خدمات ويب بسهولة إذا كنت في حاجة إليها.

مهما فعلت، افعل لا اصنع شيئًا خاصًا بك؛التمسك بالمعيار.

اختياراتي هي:

تسلسل جافا القياسي - الايجابيات:يقدم imho أقصى قدر من الأداء وسهل التنفيذ (أنا أستخدم Spring لكشف الواجهة المحلية كواجهة بعيدة)؛سلبيات :لا يعمل التسلسل بين إصدارات jvm المختلفة

التسلسل الثنائي (على سبيل المثال هسه من رصيف المراكب الصغيرة) - الايجابيات :نفس الأداء كما هو الحال مع تسلسل جافا ويعمل بين إصدارات JVM المختلفة

وس:فقط إذا كانت هناك حاجة إلى قابلية التشغيل البيني بين الأنظمة الأساسية المختلفة java + .net، وإلا فسيكون لها وزن كبير.

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

خدمات الويب غير فعالة، نعم، ولكن فقط من خلال الأجهزة الموجودة فيها.وبدلاً من ذلك، استخدم XML-over-HTTP العادي وخفيف الوزن، بدلاً من SOAP/WSDL كامل الدسم.

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