يعد استدعاء الإجراء عن بعد أو RPC تقنية قوية لإنشاء تطبيقات موزعة تعتمد على خادم العميل. يُعرف أيضًا باسم استدعاء دالة أو استدعاء روتين فرعي. يتم استدعاء الإجراء عن بعد عندما يتسبب برنامج كمبيوتر في تنفيذ إجراء ما في مساحة عنوان مختلفة، يتم ترميزه على أنه استدعاء إجراء محلي، دون أن يذكر المبرمج صراحةً تفاصيل التفاعل عن بعد. يكتب المبرمج بشكل أساسي نفس الكود سواء كان الروتين الفرعي محليًا للبرنامج المنفذ أو بعيدًا. هذا شكل من أشكال التفاعل بين العميل والخادم ويتم تنفيذه عبر نظام تمرير رسائل الطلب والاستجابة.
يتضمن نموذج RPC شفافية الموقع أن إجراءات الاتصال هي نفسها إلى حد كبير، سواء كانت محلية أو بعيدة. وهي عادة ليست متطابقة، بحيث يمكن تمييز المكالمات المحلية عن المكالمات البعيدة. عادة ما تكون المكالمات عن بعد أبطأ وأقل موثوقية من المكالمات المحلية، لذا فإن التمييز بينها أمر مهم.
تعد RPCs أحد أشكال الاتصال بين العمليات (IPC)، حيث تحتوي العمليات المختلفة على مساحات عناوين مختلفة. لديهم مساحات عناوين افتراضية مميزة على نفس الجهاز المضيف، على الرغم من أن مساحة العنوان الفعلية هي نفسها. بينما إذا كانوا على مضيفين مختلفين، فإن مساحة العنوان الفعلي تكون مختلفة.
كيفية إجراء مكالمة إجراء عن بعد
يتم تعليق بيئة الاستدعاء، ويتم نقل معلمات الإجراء عبر الشبكة إلى البيئة التي سيتم تنفيذ الإجراء فيها، ويتم تنفيذ الإجراء هناك.
عندما ينتهي الإجراء وينتج نتائجه، يتم نقله مرة أخرى إلى بيئة الاستدعاء، حيث يتم استئناف التنفيذ كما لو كان عائداً من استدعاء إجراء عادي.
ملاحظة: يعتبر RPC مناسبًا بشكل خاص للتفاعل بين العميل والخادم (على سبيل المثال، الاستجابة للاستعلام) حيث يتناوب تدفق التحكم بين المتصل والمستدعي. من الناحية النظرية، لا يتم تنفيذ العميل والخادم في وقت واحد؛ وبدلاً من ذلك، ينتقل خيط التنفيذ من المتصل إلى المستدعي ثم يعود مرة أخرى.
أنواع RPC
هناك ثلاثة أنواع من استدعاء الإجراء عن بعد (RPC) في نظام التشغيل، مثل:
1. رد الاتصال RPC
يتيح هذا النوع من RPC نموذج P2P بين العمليات المشاركة. يساعد العملية على أن تكون خدمات العميل والخادم. يحتوي Callback RPC على الوظائف التالية، مثل:
يساوي CPP
- مشاكل التطبيق التفاعلي التي تتم معالجتها عن بعد.
- يقدم الخادم مع التعامل مع العملاء.
- رد الاتصال يجعل عملية العميل تنتظر.
- إدارة حالات الجمود في رد الاتصال.
- فهو يسهل نموذج نظير إلى نظير بين العمليات المشاركة.
2. بث RPC
بث RPC هو طلب العميل الذي يتم بثه على الشبكة، وتتم معالجته بواسطة جميع الخوادم مع طريقة معالجة هذا الطلب. يحتوي بث RPC على الوظائف التالية، مثل:
- يسمح لك بتحديد بث رسالة طلب العميل.
- يمكنك إعلان منافذ البث.
- فهو يساعد على تقليل الحمل على الشبكة الفعلية.
3. RPC في الوضع الدفعي
يساعد RPC في الوضع الدفعي على وضع طلبات RPC في قائمة الانتظار، وفصلها، في مخزن مؤقت للإرسال، من جانب العميل، ثم إرسالها على الشبكة دفعة واحدة إلى الخادم. يحتوي RPC في الوضع الدفعي على الوظائف التالية، مثل:
tostring java
- فهو يقلل من الحمل الذي ينطوي عليه إرسال الطلب عن طريق إرساله عبر الشبكة دفعة واحدة إلى الخادم.
- يعتبر هذا النوع من بروتوكول RPC فعالاً فقط للتطبيق الذي يحتاج إلى أسعار مكالمات أقل.
- فهو يحتاج إلى بروتوكول نقل موثوق.
ماذا يفعل RPC؟
عندما يتم تجميع بيانات البرنامج التي تستخدم إطار عمل RPC في برنامج قابل للتنفيذ، يتم تضمين كعب الروتين في التعليمات البرمجية المترجمة التي تمثل رمز الإجراء البعيد.
عند تشغيل البرنامج وإصدار استدعاء الإجراء، يتلقى كعب الروتين الطلب ويعيد توجيهه إلى برنامج وقت تشغيل العميل في الكمبيوتر المحلي. في المرة الأولى التي يتم فيها استدعاء كعب روتين العميل، فإنه يتصل بخادم الأسماء لتحديد عنوان النقل حيث يوجد الخادم.
يعرف برنامج وقت تشغيل العميل كيفية التعامل مع الكمبيوتر البعيد وتطبيق الخادم ويرسل الرسالة عبر الشبكة التي تطلب الإجراء عن بعد. وبالمثل، يشتمل الخادم على برنامج وقت التشغيل وقاعدة البيانات التي تتفاعل مع الإجراء البعيد نفسه، ويتم إرجاع بروتوكولات طلب الاستجابة بنفس الطريقة.
مميزات RPC
في نظام التشغيل، يتمتع استدعاء الإجراء عن بعد (RPC) بالميزات التالية، مثل:
- يخفي RPC تعقيد عملية تمرير الرسائل من المستخدم.
- يستخدم RPC فقط طبقات محددة من نموذج OSI مثل طبقة النقل.
- يمكن للعملاء التواصل مع الخادم باستخدام لغات ذات مستوى أعلى.
- يعمل RPC بشكل جيد مع كل من البيئات المحلية والبيئات البعيدة.
- برنامج RPC مكتوب برمز بسيط ويسهل على المبرمج فهمه.
- يمكن لنظام التشغيل التعامل مع العمليات والخيوط المشاركة في RPC بسهولة.
- يخفي نظام التشغيل تجريدات RPC عن المستخدم.
كيف يعمل RPC؟
عند استدعاء إجراء عن بعد، يتم تعليق بيئة الاستدعاء مؤقتًا، ويتم نقل معلمات الإجراء عبر الشبكة إلى البيئة التي سيتم تنفيذ الإجراء فيها، ثم يتم تنفيذ الإجراء في تلك البيئة.
عند انتهاء الإجراء، يتم نقل النتائج مرة أخرى إلى بيئة الاستدعاء، حيث يتم استئناف التنفيذ كما لو كان عائداً من استدعاء إجراء عادي.
يعمل استدعاء الإجراء عن بعد (RPC) في الخطوات التالية في نظام التشغيل:
يونكس إنشاء الدليل
الخطوة 1: يتم تنفيذ وقت تشغيل العميل وكعب روتين العميل وRPC على جهاز العميل.
الخطوة 2: يبدأ العميل عملية كعب روتين العميل عن طريق تمرير المعلمات بالطريقة المعتادة. يتم استدعاء تعبئة معلمات الإجراء تنظيم . يخزن كعب روتين العميل داخل مساحة العنوان الخاصة بالعميل، ويطلب أيضًا من وقت تشغيل RPC المحلي إرساله مرة أخرى إلى كعب روتين الخادم.
الخطوه 3: في هذه المرحلة، يمكن للمستخدم الوصول إلى RPC عن طريق إجراء مكالمة إجرائية محلية منتظمة. يدير RPC Runtime نقل الرسائل بين الشبكة عبر العميل والخادم، كما يقوم أيضًا بمهمة إعادة الإرسال والإقرار والتوجيه والتشفير.
الخطوة 4: بعد إكمال إجراء الخادم، يعود إلى كعب الخادم، الذي يحزم (ينظم) القيم المرجعة في رسالة. يقوم كعب الخادم بعد ذلك بإرسال رسالة مرة أخرى إلى طبقة النقل.
الخطوة 5: في هذه الخطوة، تقوم طبقة النقل بإرسال الرسالة الناتجة إلى طبقة نقل العميل، والتي تقوم بإرجاع رسالة إلى كعب روتين العميل.
الخطوة 6: في هذه المرحلة، يقوم كعب روتين العميل بفك (فك) معلمات الإرجاع في الحزمة الناتجة، وتعود عملية التنفيذ إلى المتصل.
مشكلات استدعاء الإجراء عن بعد (RPC)
في نظام التشغيل، واجه استدعاء الإجراء عن بعد أو RPC بعض المشكلات التي يجب معالجتها، مثل:
1. وقت تشغيل RPC
نظام وقت تشغيل RPC عبارة عن مكتبة من الإجراءات والخدمات التي تتعامل مع اتصالات الشبكة التي تشكل أساس آلية RPC. في سياق استدعاء RPC، تتعامل أنظمة وقت التشغيل من جانب العميل والخادم مع الارتباط، وتأسيس اتصالات عبر بروتوكول مناسب، وتمرير بيانات الاتصال بين العميل والخادم، والتعامل مع أخطاء الاتصالات.
2. كعب
تتمثل وظيفة كعب الروتين في توفير الشفافية لرمز التطبيق المكتوب بواسطة المبرمج.
3. ملزمة
شار + إنت في جافا
كيف يعرف العميل بمن يتصل وأين توجد الخدمة؟
الحل الأكثر مرونة هو استخدام الربط الديناميكي والعثور على الخادم في وقت التشغيل عند إنشاء RPC لأول مرة. في المرة الأولى التي يتم فيها استدعاء كعب روتين العميل، فإنه يتصل بخادم الأسماء لتحديد عنوان النقل الذي يتواجد عليه الخادم. يتكون الربط من جزأين:
4. دلالات الاستدعاء المرتبطة بـ RPC
يتم تصنيفها بشكل أساسي إلى الاختيارات التالية،
خصائص RPC
فيما يلي الخصائص الأساسية لاستدعاء الإجراء عن بعد:
- الإجراء المطلوب موجود في عملية أخرى، ومن المحتمل أن يكون موجودًا في جهاز آخر.
- لا تشترك العمليات في مساحة العنوان.
- يتم تمرير المعلمات فقط من خلال القيم.
- يتم تنفيذ RPC داخل بيئة عملية الخادم.
- لا يوفر إمكانية الوصول إلى بيئة إجراء الاستدعاء.
مزايا RPC
فيما يلي بعض مزايا أو فوائد RPC، مثل:
- تساعد طريقة RPC العملاء على التواصل مع الخوادم من خلال الاستخدام التقليدي لاستدعاءات الإجراءات باللغات عالية المستوى.
- تم تصميم أسلوب RPC على أساس استدعاء الإجراء المحلي، ولكن من المرجح أن يتم تنفيذ الإجراء في عملية مختلفة وعادةً ما يكون ذلك على جهاز كمبيوتر مختلف.
- يدعم RPC النماذج العملية والموجهة نحو الخيط.
- RPC يجعل آلية تمرير الرسائل الداخلية مخفية عن المستخدم.
- الجهد الذي يحتاج إلى إعادة كتابة الكود وإعادة تطويره هو الحد الأدنى.
- يمكن استخدام استدعاءات الإجراءات عن بعد للتوزيع والبيئة المحلية.
- يرتكب العديد من طبقات البروتوكول لتحسين الأداء.
- يوفر RPC التجريد. على سبيل المثال، تظل طبيعة تمرير الرسائل الخاصة باتصالات الشبكة مخفية عن المستخدم.
- يسمح RPC باستخدام التطبيقات في بيئة موزعة ليست فقط في البيئة المحلية.
- باستخدام رمز RPC، يتم تقليل جهود إعادة الكتابة وإعادة التطوير.
- النماذج الموجهة نحو العملية والموجهة نحو الخيط والتي يدعمها RPC.
عيوب RPC
فيما يلي بعض العيوب أو العيوب في استخدام RPC، مثل:
- يقوم استدعاء الإجراء البعيد بتمرير المعلمات حسب القيم وقيم المؤشر فقط، وهو أمر غير مسموح به.
- يمكن أن يكون وقت استدعاء (وإرجاع) الإجراء عن بعد (أي النفقات العامة) أقل بكثير من الإجراء المحلي.
- هذه الآلية معرضة بشدة للفشل لأنها تنطوي على نظام اتصالات وجهاز آخر وعملية أخرى.
- يمكن تنفيذ مفهوم RPC بطرق مختلفة، وهو أمر غير قياسي.
- لا تقدم أي مرونة في RPC لهندسة الأجهزة لأنها تعتمد في الغالب على التفاعل.
- يتم زيادة تكلفة العملية بسبب استدعاء الإجراء البعيد.