ما هو بروتوكول استدعاء الإجراء عن بعد في شبكات الحاسوب RPC

اقرأ في هذا المقال


لدى العميل رسالة طلب يترجمها “RPC” ويرسلها إلى الخادم وقد يكون هذا الطلب إجراءً أو استدعاءً لوظيفة إلى خادم بعيد، وعندما يتلقى الخادم الطلب فإنّه يرسل الاستجابة المطلوبة مرة أخرى إلى العميل، كما يتم حظر العميل أثناء معالجة الخادم للمكالمة واستئناف التنفيذ فقط بعد انتهاء الخادم.

ما هو بروتوكول استدعاء الإجراء عن بعد RPC

بروتوكول استدعاء الإجراء عن بعد “RPC”: هو تقنية اتصال بين العمليات تُستخدم للتطبيقات المستندة إلى خادم العميل ويُعرف أيضًا باسم استدعاء روتين فرعي أو استدعاء وظيفة.

  • “RPC” هي اختصار لـ “Remote Procedure Call”.

أحداث الاستدعاء في بروتوكول RPC

  • يتم استدعاء طلب العميل من قبل العميل.
  • يقوم طلب العميل بإجراء مكالمة نظام لإرسال الرسالة إلى الخادم ويضع المعلمات في الرسالة.
  • يتم إرسال الرسالة من العميل إلى الخادم بواسطة نظام تشغيل العميل.
  • يتم تمرير الرسالة إلى طلب الخادم بواسطة نظام تشغيل الخادم.
  • تتم إزالة المعلمات من الرسالة بواسطة طلب الخادم.
  • بعد ذلك يتم استدعاء إجراء الخادم بواسطة طلب الخادم.

كيفية إجراء اتصال عن بعد في RPC

بُعد استدعاء الإجراء البعيد “RPC” هو بروتوكول يوفر نموذج الاتصالات عالي المستوى المستخدم في نظام التشغيل، ويفترض “RPC” وجود بروتوكول نقل منخفض المستوى مثل بروتوكول التحكم في الإرسال / بروتوكول الإنترنت “TCP / IP” أو بروتوكول مخطط بيانات المستخدم “UDP“، لنقل بيانات الرسالة بين برامج الاتصال ويقوم “RPC” بتنفيذ نظام اتصالات منطقي من عميل إلى خادم مصمم خصيصاً لدعم تطبيقات الشبكة.

كما يتم إنشاء بروتوكول “RPC” على رأس بروتوكول تمثيل البيانات الخارجية “XDR” والذي يوحد تمثيل البيانات في الاتصالات عن بُعد ويحول “XDR” معلمات ونتائج كل خدمة “RPC” متوفرة، كما يتيح بروتوكول “RPC” للمستخدمين العمل مع العمليات البعيدة كما لو كانت الإجراءات محلية، حيث يتم تعريف استدعاءات الإجراء البعيد من خلال الإجراءات المضمنة في بروتوكول “RPC”.

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

أمّا الخادم هو جهاز كمبيوتر يوفر الخدمات والموارد ويقوم بتنفيذ خدمات الشبكة، حيث أنّ كل خدمة شبكة عبارة عن مجموعة من البرامج البعيدة، كما يقوم برنامج بعيد بتنفيذ الإجراءات عن بعد ويتم توثيق الإجراءات ومعاييرها والنتائج في بروتوكول البرنامج المحدد.

يوفر “RPC” عملية مصادقة تحدد الخادم والعميل لبعضهما البعض، كما يتضمن “RPC” فتحة لمعلمات المصادقة في كل استدعاء إجراء بعيد بحيث يمكن للمتصل تعريف نفسه للخادم، حيث تقوم حزمة العميل بإنشاء وإرجاع معلمات المصادقة ويدعم “RPC” أنواعاً مختلفة من المصادقة مثل أنظمة “UNIX” ومعيار تشفير البيانات “DES”.

في “RPC” يتيح كل خادم برنامجاً يمثل مجموعة من إجراءات الخدمة عن بُعد، كما تحدد مجموعة عنوان المضيف ورقم البرنامج ورقم الإجراء إجراء خدمة واحدة عن بُعد، وفي نموذج “RPC” يقوم العميل بإجراء استدعاء لإجراء لإرسال حزمة بيانات إلى الخادم وعندما تصل الحزمة يستدعي الخادم روتين إرسال، كما أنّه ينفذ أي خدمة مطلوبة ويرسل رداً مرة أخرى إلى العميل ثم يعود استدعاء الإجراء إلى العميل.

تُستخدم واجهة “RPC” بشكل عام للتواصل بين العمليات على محطات عمل مختلفة في الشبكة، ومع ذلك يعمل “RPC” أيضاً للتواصل بين العمليات المختلفة على نفس محطة العمل، كما يقوم برنامج “Port Mapper” بتعيين برنامج “RPC” وأرقام الإصدار إلى رقم منفذ خاص بالنقل، ويتيح برنامج “Port Mapper” الربط الديناميكي للبرامج البعيدة.

لكتابة تطبيقات الشبكة باستخدام “RPC” ويحتاج المبرمجون إلى معرفة عملية بنظرية الشبكة، أمّا بالنسبة لمعظم التطبيقات يكون فهم آليات استدعاء الإجراء عن بُعد المخفية عادةً بواسطة مترجم بروتوكول الأمر “rpcgen” مفيداً أيضاً، ومع ذلك فإنّ استخدام الأمر “rpcgen” يتجنب الحاجة إلى فهم تفاصيل “RPC”.

  • “DES” هي اختصار لـ “Data Encryption Standard”.
  • “XDR” هي اختصار لـ “Extended detection and response”.
  • “UDP” هي اختصار لـ “user datagram protocol”.
  • “TCP / IP” هي اختصار لـ “Transmission Control Protocol/Internet Protocol”.

كيفية عمل بروتوكول RPC

يعتبر “RPC” مماثلاً لاستدعاء دالة مثل استدعاء دالة وعندما يتم إجراء “RPC” يتم تمرير وسيطات الاستدعاء إلى الإجراء البعيد وينتظر المتصل استجابة ليتم إرجاعها من الإجراء البعيد، فمثلاً في تدفق النشاط الذي يحدث أثناء استدعاء “RPC” بين نظامين متصلين بالشبكة يقوم العميل بإجراء استدعاء إجراء يرسل طلباً إلى الخادم وينتظر.

كما تم حظر معالجة الموضوع حتى يتم تلقي رد أو انتهاء مهلته وعند وصول الطلب يستدعي الخادم إجراء إرسال يؤدي الخدمة المطلوبة ويرسل الرد إلى العميل، وبعد انتهاء استدعاء “RPC” يبقى برنامج العميل ويساند “RPC” بشكل خاص تطبيقات الشبكة.

يتم تحديد الإجراء عن بعد بشكل فريد من خلال الثلاثي وهي رقم البرنامج ورقم الإصدار ورقم الإجراء وكما يحدد رقم البرنامج مجموعة من الإجراءات البعيدة ذات الصلة، ولكل منها رقم عمل فريد وقد يتكون البرنامج من إصدار واحد أو أكثر، كما يتكون كل إصدار من مجموعة من الإجراءات المتاحة ليتم استدعاؤها عن بُعد، وتتيح أرقام الإصدارات إتاحة إصدارات متعددة من بروتوكول “RPC” في وقت واحد ويحتوي كل إصدار على عدد من الإجراءات التي يمكن استدعاؤها عن بعد وكل إجراء له رقم إجراء.

تطوير تطبيقات RPC

البحث عن عميل أو خادم في قاعدة بيانات شخصية على جهاز بعيد، وبافتراض أنّه لا يستطيع الوصول إلى قاعدة البيانات من الجهاز المحلي عبر “NFS”، فإنّه يتم استخدام “UNIX” لتشغيل قذيفة بعيدة وتنفيذ الأمر بهذه الطريقة، وهناك بعض المشاكل مع هذه الطريقة:

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

ولكنّ بديل “RPC” هو إنشاء خادماً على الجهاز البعيد يمكنه الرد على الاستعلامات واسترجاع المعلومات عن طريق استدعاء استعلام سيكون أسرع من الطريقة السابقة، ولتطوير تطبيق “RPC” يلزم اتباع الخطوات التالية:

  • حدد بروتوكول الاتصال بخادم العميل.
  • تطوير برنامج العميل.
  • تطوير برنامج الخادم.

ملاحظة:“NFS” هي اختصار لـ “Network File System”.

مزايا استدعاء الإجراءات عن بعد RPC

  • استدعاءات الإجراءات عن بُعد تدعم النماذج الموجهة نحو العملية والموجهة نحو الخيط.
  • يتم إخفاء آلية تمرير الرسائل الداخلية لـ “RPC” عن المستخدم.
  • الحد الأدنى من الجهد المبذول لإعادة كتابة الكود وإعادة تطويره في استدعاءات الإجراءات عن بُعد.
  • يمكن استخدام استدعاءات الإجراءات عن بُعد في البيئة الموزعة بالإضافة إلى البيئة المحلية.
  • تم حذف العديد من طبقات البروتوكول بواسطة “RPC” لتحسين الأداء.

عيوب استدعاء إجراء عن بعد RPC

  • استدعاء الإجراء البعيد هو مفهوم يمكن تنفيذه بطرق مختلفة، وإنّه ليس معيار.
  • لا توجد مرونة في “RPC” لهندسة الأجهزة. انها فقط تعتمد على التفاعل.
  • هناك زيادة في التكاليف بسبب استدعاء الإجراء عن بعد.

المصدر: COMPUTER NETWORKING / James F. Kurose & Keith W. RossComputer Networks - The Swiss BayCOMPUTER NETWORKS LECTURE NOTES / B.TECH III YEAR – II SEM (R15)An Introduction to Computer Networks / Peter L Dordal


شارك المقالة: