بروتوكول استدعاء الإجراء البعيد (RPC) في النظام الموزع
⚡ ملخص ذكي
يُعد استدعاء الإجراء عن بعد (RPC) بروتوكول اتصال بين العمليات يسمح للبرنامج بتنفيذ إجراء في مساحة عنوان أو جهاز آخر، مع إخفاء تفاصيل الشبكة خلف استدعاء دالة محلية عادية في أنظمة العميل والخادم الموزعة.

ما هو RPC؟
استدعاء الإجراء البعيد (ريك) هو اتصال interprocess تقنية تُستخدم في تطبيقات العميل والخادم. الاختصار RPC هو اختصار لـ Remote Procedure Call (استدعاء الإجراء عن بُعد). تُستخدم آليات RPC عندما يتسبب برنامج حاسوبي في تنفيذ إجراء أو روتين فرعي في مساحة عنوان مختلفة، مُبرمجة كاستدعاء إجراء عادي دون أن يُحدد المبرمج تفاصيل التفاعل عن بُعد بشكل صريح.
كما يقوم هذا الإجراء بإدارة بروتوكولات النقل منخفضة المستوى، مثل UDP و TCP/IP، لنقل بيانات الرسائل بين البرامج.
أنواع RPC
ثلاثة أنواع من RPC هي:
- رد الاتصال RPC
- بث RPC
- RPC في الوضع الدفعي
رد الاتصال RPC
يُمكّن هذا النوع من بروتوكول استدعاء الإجراءات عن بُعد (RPC) من إنشاء نموذج اتصال مباشر بين العمليات المشاركة، مما يسمح للعملية بالعمل كعميل وخادم في آن واحد.
وظائف رد الاتصال RPC:
- يعالج مشاكل التطبيقات التفاعلية التي تتم معالجتها عن بُعد.
- يزود الخادم بمعرف العميل.
- يؤدي استدعاء الدالة إلى انتظار عملية العميل.
- يدير حالات الجمود الناتجة عن استدعاءات الدوال.
- فهو يسهل نموذج التفاعل بين الأقران بين العمليات المشاركة.
بث RPC
يُعد طلب RPC للبث طلبًا من العميل يتم بثه على الشبكة ومعالجته بواسطة جميع الخوادم التي لديها طريقة لمعالجة هذا الطلب.
وظائف البث RPC:
- يسمح لك بتحديد أنه يجب بث رسالة طلب العميل.
- يمكنك إعلان منافذ البث.
- يساعد ذلك على تقليل الحمل على الشبكة المادية.
RPC في الوضع الدفعي
يساعد وضع RPC الدفعي في وضع طلبات RPC المنفصلة في مخزن مؤقت للإرسال على جانب العميل، ثم إرسالها عبر الشبكة في دفعة واحدة إلى الخادم.
وظائف وضع الدفعات في RPC:
- يقلل ذلك من العبء الإضافي المتضمن في إرسال الطلب، حيث يرسل الطلبات عبر الشبكة في دفعة واحدة إلى الخادم.
- هذا النوع من بروتوكول RPC فعال فقط للتطبيقات التي تحتاج إلى معدلات استدعاء منخفضة.
- يحتاج إلى بروتوكول نقل موثوق.
RPC Architecture
يشتمل هندسة RPC على خمسة مكونات أساسية للبرنامج:
- العميل
- كعب العميل
- وقت تشغيل RPC
- كعب الخادم
- المخدم
RPC Architecture
كيف يعمل RPC؟
تتم الخطوات التالية خلال عملية RPC:
الخطوة 1) يتم تنفيذ العميل، وواجهة العميل، ونسخة واحدة من وقت تشغيل RPC على جهاز العميل.
الخطوة 2) يبدأ العميل عملية وسيطة (stubl) بتمرير المعاملات بالطريقة المعتادة. تُخزَّن هذه العملية الوسيطة ضمن مساحة عنوان العميل نفسه. كما يطلب العميل من بيئة تشغيل RPC المحلية إرسال الطلب إلى عملية وسيطة الخادم (server stub).
الخطوة 3) في هذه المرحلة، يصل المستخدم إلى RPC عن طريق إجراء استدعاء إجراء محلي عادي. يتولى وقت تشغيل RPC إدارة نقل الرسائل بين العميل والخادم عبر الشبكة. كما يقوم أيضًا بمهام إعادة الإرسال، والتأكيد، والتوجيه، والتشفير.
الخطوة 4) بعد إتمام إجراء الخادم، يعود التنفيذ إلى وحدة الخادم الفرعية، التي تقوم بتجميع (تنسيق) القيم المُعادة في رسالة. ثم تُرسل وحدة الخادم الفرعية الرسالة مرة أخرى إلى طبقة النقل.
الخطوة 5) في هذه الخطوة، تقوم طبقة النقل بإرسال رسالة النتيجة مرة أخرى إلى طبقة نقل العميل، والتي بدورها تعيد الرسالة إلى العميل.
الخطوة 6) في هذه المرحلة، يقوم برنامج العميل بفك تشفير (فك تغليف) معلمات الإرجاع في الحزمة الناتجة، ويعود التنفيذ إلى المتصل.
خصائص RPC
فيما يلي الخصائص الأساسية لـ RPC:
- الإجراء المطلوب موجود في عملية أخرى، والتي من المحتمل أن تكون موجودة على جهاز آخر.
- لا تشترك العمليات في مساحة العنوان.
- يتم تمرير المعلمات فقط من خلال القيم.
- يتم تنفيذ RPC داخل بيئة عملية الخادم.
- لا يوفر الوصول إلى بيئة إجراء الاستدعاء.
مميزات RPC
فيما يلي الميزات المهمة لـ RPC:
- صيغة استدعاء بسيطة.
- يقدم دلالات معروفة.
- يوفر واجهة محددة جيدًا.
- يمكنه التواصل بين العمليات على نفس الجهاز أو على أجهزة مختلفة.
مزايا RPC
فيما يلي مزايا وفوائد RPC:
- تساعد تقنية RPC العملاء على التواصل مع الخوادم من خلال الاستخدام التقليدي لاستدعاءات الإجراءات في لغات البرمجة عالية المستوى.
- يتم تصميم RPC على غرار استدعاء الإجراء المحلي، ولكن من المرجح أن يتم تنفيذ الإجراء المستدعى في عملية مختلفة وعادة ما يكون على جهاز كمبيوتر مختلف.
- يدعم RPC النماذج الموجهة نحو العمليات والنماذج الموجهة نحو الخيوط.
- يجعل RPC آلية تمرير الرسائل الداخلية مخفية عن المستخدم.
- يرتكب العديد من طبقات البروتوكول لتحسين الأداء.
- يوفر RPC خاصية منع التسربtracعلى سبيل المثال، تظل طبيعة تبادل الرسائل في الاتصالات الشبكية مخفية عن المستخدم.
- يمكن استخدام RPC في كل من البيئات الموزعة والمحلية.
- الجهد المطلوب لإعادة كتابة وتطوير الكود ضئيل للغاية.
عيوب RPC
فيما يلي سلبيات/عيوب استخدام RPC:
- يتم تمرير المعلمات عن طريق القيم فقط في استدعاء الإجراء البعيد؛ قيم المؤشر (المرجع) غير مسموح بها.
- وقت استدعاء الإجراء عن بعد (والعودة) - أي التكلفة الإضافية - أعلى بكثير من وقت استدعاء الإجراء المحلي.
- هذه الآلية معرضة بشدة للفشل، لأنها تتضمن نظام اتصال، وآلة أخرى، وعملية أخرى.
- يمكن تطبيق مفهوم RPC بطرق مختلفة، لذلك لا يوجد معيار واحد.
- لا يوفر مرونة في بنية الأجهزة، لأنه يعتمد في الغالب على التفاعل.
- تزداد تكلفة العملية بسبب استدعاء الإجراء عن بعد.

