الفرق بين RPC و RMI

مؤلف: Laura McKinney
تاريخ الخلق: 1 أبريل 2021
تاريخ التحديث: 23 أبريل 2024
Anonim
شرح Remote Procedure Call RPC للشبكات وانظمة التشغيل الموزعة
فيديو: شرح Remote Procedure Call RPC للشبكات وانظمة التشغيل الموزعة

المحتوى


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

الفرق الرئيسي الآخر بين الاثنين هو أن المعلمات التي تم تمريرها إلى استدعاء الإجراءات البعيدة تتكون من هياكل البيانات العادية. من ناحية أخرى ، المعلمات تمريرها إلى طريقة عن بعد تتكون من شاء.

  1. رسم بياني للمقارنة
  2. تعريف
  3. الاختلافات الرئيسية
  4. خاتمة

رسم بياني للمقارنة

أساس للمقارنةRPCRMI
الدعمالبرمجة الإجرائية
البرمجة الشيئية
المعلماتيتم تمرير بنيات البيانات العادية إلى الإجراءات البعيدة.يتم تمرير الكائنات إلى أساليب بعيدة.
كفاءةأقل من RMIأكثر من RPC وبدعم من منهج البرمجة الحديثة (أي النماذج الموجهة للكائنات)
النفقات العامةأكثر
أقل نسبيا
في الداخل المعلمات إلزامية.نعمليس بالضرورة
توفير سهولة البرمجة
متوسط
منخفض


تعريف RPC

استدعاء الإجراء البعيد (RPC) هي ميزة لغة البرمجة وضعت للحوسبة الموزعة وعلى أساس دلالات الإجراء المحلي المكالمات. إنها أكثر أشكال الخدمة عن بُعد شيوعًا وتم تصميمها كوسيلة لاستخلاص آلية استدعاء الإجراء لاستخدامها بين الأنظمة المتصلة عبر شبكة. إنه مشابه لآلية IPC حيث يسمح نظام التشغيل للعمليات بإدارة البيانات المشتركة والتعامل مع بيئة حيث يتم تنفيذ عمليات مختلفة على أنظمة منفصلة وتتطلب بالضرورة اتصالًا يستند إلى.

دعونا نفهم كيف يتم تنفيذ RPC من خلال الخطوات المحددة:

  • تستدعي عملية العميل كعب الروتين الخاص بالعميل ، ويتم تعليق تنفيذه حتى تكتمل المكالمة.
  • ثم يتم ترجمة المعلمات إلى نموذج مستقل عن الجهاز من خلال تنظيم كعب روتين العميل. ثم يتم إعداد والتي تحتوي على تمثيل المعلمات.
  • للعثور على هوية الموقع ، يقوم العميل بتعقب التواصل مع خادم الاسم الذي يوجد به الإجراء البعيد.
  • باستخدام بروتوكول الحظر ، يقوم كعب الروتين العميل بالموقع الذي توجد به استدعاء الإجراء البعيد. هذه الخطوة وقف كعب الروتين العميل حتى يحصل على الرد.


  • يستقبل موقع الخادم المرسل من جانب العميل ويحوله إلى تنسيق خاص بالجهاز.
  • الآن ، يقوم كعب الروتين server بتنفيذ مكالمة على إجراء الخادم مع المعلمات ، ويتم إيقاف كعب الروتين بالخادم حتى يكتمل الإجراء.
  • يقوم إجراء الخادم بإرجاع النتائج التي تم إنشاؤها إلى كعب الخادم ، ويتم تحويل النتائج إلى تنسيق مستقل عن الآلة في كعب الخادم وإنشاء محتوى يحتوي على النتائج.
  • يتم إرسال النتيجة إلى كعب الروتين الخاص بالعميل والذي يتم تحويله مرة أخرى إلى تنسيق خاص بالآلة مناسب لرقعة العميل.
  • في آخر عميل ، يعيد كعب الروتين النتائج إلى عملية العميل.

تعريف RMI

استدعاء الأسلوب عن بُعد (RMI) يشبه RPC ولكنه مخصص للغة وخاصية java. يسمح لمؤشر الترابط باستدعاء الأسلوب على كائن بعيد. للحفاظ على الشفافية من جانب العميل والخادم ، يقوم بتنفيذ كائن بعيد باستخدام كعب الروتين والعظام. يتواجد كعب الروتين مع العميل وبالنسبة للكائن البعيد الذي يتصرف فيه كوكيل.

عندما يستدعي عميل طريقة عن بُعد ، يتم استدعاء كعب الروتين للأسلوب البعيد. يتحمل العميل المسؤولية عن إنشاء الطرود التي تحتوي على اسم الأسلوب والمعلمات التي تم تنظيمها ، كما أن الهيكل العظمي مسؤول عن استلام الطرد.

يقوم الهيكل العظمي بإلغاء تحديد المعلمات ويستدعي الطريقة المرغوبة على الخادم. ينظم الهيكل العظمي القيمة (أو الاستثناءات) المحددة مع الطرد ويحولها إلى كعب العميل. يقوم كعب الروتين بإعادة تجميع الطرود المرتجعة وإرسالها إلى العميل.

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

جافا يستخدم عملية اسمه التسلسل حيث يتم تمرير الكائنات كقيمة. يتم ترجمة الكائن البعيد عن طريق تمرير حسب القيمة. يمكنه أيضًا تمرير كائن بالرجوع إليه عبر تمرير مرجع بعيد إلى الكائن مع عنوان URL الخاص بفئة كعب الروتين. تمرير حسب المرجع يقيد كعب الروتين للكائن البعيد.

  1. يدعم RPC نماذج البرمجة الإجرائية وبالتالي يعتمد على C ، بينما يدعم RMI نماذج البرمجة الموجهة للكائنات ويستند إلى جافا.
  2. المعلمات التي تم تمريرها إلى الإجراءات البعيدة في RPC هي بنيات البيانات العادية. على العكس من ذلك ، ينقل RMI الكائنات كمعلمة إلى الأسلوب البعيد.
  3. يمكن اعتبار RPC كإصدار أقدم من RMI ، ويتم استخدامه في لغات البرمجة التي تدعم البرمجة الإجرائية ، ويمكنه فقط استخدام طريقة المرور حسب القيمة. على العكس من ذلك ، تم تصميم مرفق RMI استنادًا إلى نهج البرمجة الحديثة ، والذي يمكن أن يستخدم النجاح بالقيمة أو المرجع. ميزة أخرى من RMI هو أنه يمكن تغيير المعلمات مرت بالإشارة.
  4. ينشئ بروتوكول RPC حملات أكثر من RMI.
  5. يجب أن تكون المعلمات التي تم تمريرها في RPC "في خارج"وهذا يعني أن القيمة التي تم تمريرها إلى الإجراء وقيمة الإخراج يجب أن يكون لها نفس أنواع البيانات. في المقابل ، لا يوجد إكراه على اجتياز "في خارج"المعلمات في RMI.
  6. في RPC ، لا يمكن أن تكون المراجع مرجحة لأن العمليتين تحتويان على مساحة عنوان مميزة ، لكن من الممكن في حالة RMI.

خاتمة

يخدم كل من RPC و RMI الغرض نفسه ، لكنهما يستخدمان في اللغات التي تدعم نماذج البرمجة المختلفة ، وبالتالي لها ميزات مميزة.