فراخوانی رویه‌ای دوردست: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
جزبدون خلاصۀ ویرایش
خط ۳:
== فرستادن پیغام ==
آر پی سی، یک پروتکل درخواست- پاسخ است. یک RPC، به وسیله کلاینت شروع می شود، که یک پیغام درخواست را به یک سرور دوردست شناخته شده می فرستد، تا یک رویه ی خاص را با پارامترهای داده شده اجرا کند. سرور دوردست پاسخی را به کلاینت می فرستد و نرم افزار، پروسه ی خودش را ادامه می دهد. زمانیکه سرور در حال پردازش فراخوان است، کلاینت مسدود می شود (یعنی منتظر می ماند تا سرور پردازش را به پایان برساند)، سپس اجرا را از سر می‌گیرد. اگر کلاینت یک درخواست ناهمگام به سرور بفرستد، نظیر XMLHttpRequest، آنگاه کلاینت مسدود نمی شود. تفاوت ها و ریزه کاری های مختلف زیادی در پیاده سازی های مختلف وجود دارد، که منجر به طیفی از پروتکل های RPC ناسازگار مختلف می شود. یک تفاوت مهم بین فراخوانی های رویه ای دوردست و فراخوانی های محلی، این است که فراخوانی های دوردست، به دلیل مشکلات شبکه ای غیر قابل پیش بینی، می توانند دچار شکست شوند. همچنین، فراخواننده، به طور کلی، باید بدون اینکه بداند که آیا رویه ی دوردست واقعاً فراخوان شده است یا خیر، چنین شکست هایی را حل و فصل کند. رویه های بی اثر (به انگلیسی: idempotent) (یعنی رویه هایی که اگر بیش از یکبار فراخوان شوند، تاثیر اضافه نخواهند داشت)، به راحتی مدیریت می شوند، اما این دشواری هنوز وجود دارد که کدی که رویه ی دوردست را فراخوانی می کند معمولاً محدود به زیر سیستم های سطح- پایینی می‌شود که به دقت نوشته شده اند.
== توالی وقایع ==
۱. کلاینت، قالب(به انگلیسی: stub) کلاینت را فراخوانی می کند. این فراخوانی، یک فراخوانی رویه ای محلی است که دارای پارامترهایی است که به شیوه نرمال در داخل پشته قرار می گیرند.<br>
۲. قالب کلاینت، پارامترها را در داخل یک پیغام بسته بندی می ‌کند و یک فراخوانی سیستم انجام می دهد تا پیغام را بفرستد. بسته بندی پارامترها مارشالینگ(به انگلیسی: marshaling) نام دارد.<br>
۳. سیستم عامل محلی کلاینت، پیغام را از ماشین کلاینت به ماشین سرور می فرستد.<br>
۴. سیستم عامل محلی در ماشین سرور، پاکت های ورودی را به قالب سرور منتقل می‌کند.<br>
۵. قالب سرور، پارامترها را از پیغام، از حالت بسته‌بندی خارج می کند. خارج کردن پارامترها از بسته بندی unmarshalling نام دارد.<br>
۶. سرانجام اینکه، قالب سرور، رویه ی سرور را فراخوانی می کند. پاسخ مورد نظر مراحل مشابهی را در جهت عکس، طی می کند.
 
== منبع ==