الاستدعاء عن بعد والبرمجيات الوسيطة
يتيح الاستدعاء عن بعد للبرنامج استدعاء إجراء أو دالة على جهاز آخر كما لو كانت محلية، والبرمجيات الوسيطة هي طبقة البرمجيات التي توفر هذا التجريد وما يتصل به عبر الشبكة.
Definition
الاستدعاء عن بعد هو تجريد للاتصال يقوم فيه العميل باستدعاء عملية على عملية بعيدة باستخدام واجهة استدعاء إجراء محلي، مع قيام البرمجيات الوسيطة الأساسية بمعالجة تجميع الوسائط، والنقل، والإبلاغ عن الأعطال.
Scope
يغطي هذا الموضوع استدعاء الإجراء عن بعد (RPC) واستدعاء الدالة عن بعد، وتجميع الوسائط (marshalling)، والربط والتسمية، ودلالات الاستدعاء (مرة واحدة على الأكثر، مرة واحدة على الأقل، مرة واحدة بالضبط)، وطبقات البرمجيات الوسيطة — وسطاء الكائنات، والبرمجيات الوسيطة الموجهة بالرسائل، وأطر عمل RPC الحديثة — التي تنفذها. كما يغطي الحدود المعروفة للشفافية: الطرق التي تختلف بها الاستدعاءات عن بعد حتمًا عن الاستدعاءات المحلية.
Core questions
- كيف يمكن تقديم تفاعل شبكي بسهولة استدعاء إجراء محلي؟
- ما هي دلالات الاستدعاء التي يمكن تحقيقها في وجود فقدان الرسائل وتعطل العمليات؟
- أين ينهار تجريد شفافية الموقع بالضرورة؟
Key theories
- استدعاء الإجراء عن بعد
- يقوم تجريد RPC بتغليف التفاعل عن بعد كاستدعاء يبدو محليًا، مع قيام الكعب (stubs) الخاص بالعميل والخادم بتجميع وفك تجميع الوسائط؛ ويتطلب تحقيق دلالات مرة واحدة على الأكثر معالجة دقيقة لإعادة الإرسال واكتشاف التكرار.
- طبقات البرمجيات الوسيطة
- توجد البرمجيات الوسيطة بين نظام التشغيل والتطبيق لتوفير خدمات التسمية والتجميع والاستدعاء، وتتراوح من وسطاء طلبات الكائنات إلى الأنظمة الموجهة بالرسائل وأنظمة النشر والاشتراك.
- حدود شفافية التوزيع
- تعني زمن الوصول، والفشل الجزئي، والتزامن، والوصول إلى الذاكرة أنه لا يمكن جعل الكائنات البعيدة غير قابلة للتمييز تمامًا عن الكائنات المحلية، لذا فإن التصميمات التي تتجاهل هذه الاختلافات تميل إلى الفشل تحت الحمل أو التقسيم.
Clinical relevance
تُعد RPC والبرمجيات الوسيطة النسيج الضام للبرمجيات الموزعة الحديثة: فبنى الخدمات المصغرة، وشبكات الخدمات، وواجهات برمجة تطبيقات السحابة كلها مبنية على أطر عمل الاستدعاء عن بعد، ويجب على مصمميها التفكير بوضوح في دلالات الاستدعاء والفشل الجزئي.
History
أرست ورقة بيريل ونيلسون عام 1984 RPC كتجريد عملي؛ جلبت التسعينيات برمجيات وسيطة موجهة بالكائنات مثل CORBA و Java RMI، وقد خفف من حدتها تحذير والدو وزملاؤه المؤثر حول حدود الشفافية؛ وتواصل الأطر الحديثة هذا النسب مع RPC خفيف الوزن والقائم على المخططات عبر الويب.
Debates
- هل يجب أن تبدو الاستدعاءات عن بعد تمامًا مثل الاستدعاءات المحلية؟
- تبسط شفافية الموقع الكاملة البرمجة ولكنها تخفي زمن الوصول والفشل الجزئي، مما يؤدي إلى أنظمة هشة؛ وجهة النظر المعارضة، التي صاغها والدو وزملاؤه، ترى أنه يجب الكشف عن التوزيع حتى يتمكن المطورون من التعامل مع الفشل بشكل صريح.
Key figures
- Andrew Birrell
- Bruce Nelson
- Jim Waldo
- Andrew S. Tanenbaum
Related topics
Seminal works
- birrell1984
- waldo1994
Frequently asked questions
- ماذا تعني دلالات الاستدعاء مرة واحدة على الأكثر؟
- تضمن أن العملية البعيدة يتم تنفيذها إما صفر أو مرة واحدة، ولا تزيد أبدًا، حتى لو تم إعادة إرسال الطلب. هذا هو الهدف العملي الشائع لأن تنفيذ مرة واحدة بالضبط أصعب بكثير ضمانه في ظل الأعطال.