Presentation is loading. Please wait.

Presentation is loading. Please wait.

Remote Procedure Call (invocation) RPC

Similar presentations


Presentation on theme: "Remote Procedure Call (invocation) RPC"— Presentation transcript:

1 Remote Procedure Call (invocation) RPC

2 فراخوانی روال راه دور بسیاری از سیستم‌ها براساس تبادل پیام. سال 1984 توسط بیرل و نلسون: برنامه‌ها بتوانند فراخوانی روال‌های ماشین‌های دیگر. مشکلات: فضاهای آدرس متفاوت در ماشین‌های مختلف. تبادل پارامترها و مقادیر بازگشتی (خصوصا در تفاوت ماشین‌ها). خرابی ماشین‌ها.

3 فراخوانی روال راه دور ایده اصلی: فراخوانی کننده بی‌اطلاع از اجرای روال در ماشین دیگری (مشابه محلی). ایجاد مشتری مجازی (Cleint Stub) در مشتری . فراخوانی مشتری مجازی مشابه مشتری اصلی هست. ایجاد سرور مجازی (Server Stub) در سمت سرور. سیستم‌عامل سرور، پیام را به سرور مجازی میدهد.

4 client process server process
Request Reply service client stub server stub procedure client process server process program

5 گرفتن پارامترهای فراخوانی.
وظایف مشتری مجازی: گرفتن پارامترهای فراخوانی. بسته بندی پارامترها و شناسه روال به صورت پیام. ارسال به سرور. گرفتن پیام(نتیجه) از سرور، استخراج نتایج و تحویل به مشتری. وظایف سرور مجازی: دریافت پیام از مشتری. شناسایی روال و فراخوانی آن با پارامترها. دریافت نتیجه از سرور و بسته بندی نتیجه در پیام و ارسال به مشتری.

6

7 فراخوانی روال راه دور (سنکرون)

8 فراخوانی روال راه دور (آسنکرون)

9 مشخصات پارامترها توافق بر روی ساختمان داده ساده (صحیح، کاراکتر و اعشاری). توافق بر روی ترتیب بایت‌ها. توافق بر روی فرمت پیام. توافق بر روی نحوه تبادل پیام (TCP , … ). پیاده سازی واسط (Interface): مجموعه ای از روال‌ها که بوسیله مشتری فراخوانی و به وسیله سرور اجرا. واسط با زبان برنامه نویسی مشتری و سرور یا زبان دیگر. زبان تعریف واسط (Interface Description Language = IDL) تقریبا تمامی سیستم‌های RPC یک IDL را نیز ارائه می‌کنند.


Download ppt "Remote Procedure Call (invocation) RPC"

Similar presentations


Ads by Google