موصى به, 2021

اختيار المحرر

الفرق بين RPC و RMI

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

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

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

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

تعريف RPC

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

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

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

تعريف RMI

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

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

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

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

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

الاختلافات الرئيسية بين RPC و RMI

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

استنتاج

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

Top