أساسيات تنفيذ بروتوكول RPC في شبكات الحاسوب RPC Implementation

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


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

ما هو بروتوكول RPC

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

  • “RPC” هي اختصار لـ “remote procedure call”.

أساسيات تنفيذ بروتوكول RPC

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

  • تسلسل الاتصال المطلوب لاستخدام برنامج الاتصالات الأساسي.

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

تطبيقات تنفيذ RPC

  • تستخدم خدمة الدليل النشط في “Windows” هذا البروتوكول.
  • تستخدم معظم محطات “MMC” أيضاً هذا البروتوكول.
  • تستند العديد من مكونات “DCOM” إلى “RPC”.
  • بعض الأدوات المساعدة مثل “Windows Computer Management” و”محرر التسجيل”.

ملاحظة: “DCOM” هي اختصار لـ “Distributed Component Object Model” و”MMC” هي اختصار لـ “Microsoft Management Console”.

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

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

ملاحظة:“LAN” هي اختصار لـ “Local Area Network” و”WAN” هي اختصار لـ “Wide Area Network”.

خصائص تنفيذ بروتوكول RPC

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

ما هي مزايا تنفيذ RPC

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

ما هي عيوب تنفيذ 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


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