RPC چیست؟ – Remote Procedure Call – به زبان ساده

RPC چیست ؟
در طول مدتی که سرور در حال پردازش فراخوانی است، کلاینت مسدود میشود و تنها پس از پایان کار سرور و دریافت پاسخ به کار خود ادامه خواهد داد. در واقع، مشابه یک فراخوانی رویه محلی (Local Procedure Call)، فرایند RPC نیز عملیاتی همزمان است و برنامه درخواست کننده باید تا زمان بازگرداندن نتایج رویه راه دور، معلق بماند. اگرچه، استفاده از پردازههای کم حجم یا Threadهایی که فضای آدرس یکسانی را به اشتراک میگذارند، امکان اجرای چند RPC به طور همزمان را به وجود میآورد.

RPC مخفف چیست ؟
RPC مخفف «Remote Procedure Call» به معنی «فراخوانی رویه از راه دور» است. کلمه «Procedure» در علوم کامپیوتر به بخشی از یک برنامه گفته میشود که وظیفه مشخصی را انجام میدهد. در یک برنامه میتوان از رویهها به طور مکرر استفاده کرد.
به عملیات RPC ، «فراخوانی زیر روال» (Subroutine Call) و «فراخوانی تابع» (Function Call) هم گفته میشود. بنابراین، میتوان گفت که مفاهیم Subroutine ،Procedure و Function تقریباً مشابه یکدیگر هستند و به یک مفهوم اشاره دارند یعنی: «قطعه برنامهای که کار خاصی را انجام میدهد». بنابراین، در RPC یک قطعه برنامه که وظیفه مشخصی را انجام میدهد از یک محل راه دور فراخوانی و درخواست میشود.
چه زمانی از RPC استفاده میشود؟
حال در ادامه مقاله «RPC چیست» به شرح اجزای RPC پرداخته شده است.

اجزای RPC چه هستند؟
RPC Runtime چیست ؟
در طی یک فراخوانی RPC ، سیستمهای زمان اجرای سمت کلاینت و سمت سرور عملیات زیر را مدیریت میکنند:
- انقیاد (اتصال | Binding)
- برقراری ارتباطات از طریق یک پروتکل مناسب
- انتقال دادههای فراخوانی شده میان کلاینت و سرور
- مدیریت خطاهای ارتباطی
در ادامه این بخش از مقاله «RPC چیست» به این سوال پاسخ داده شده است که Stub چیست ؟
Stub چیست ؟
وظایف Stub سمت کلاینت
- در سمت کلاینت، Stub واسط میان فراخوانی رویه محلی کلاینت و سیستم زمان اجرا را مدیریت میکند.
- دادهها را بستهبندی یا آنها را میگشاید.
- پروتکل زمان اجرای RPC را فراخوانی میکند.
- در صوت تقاضا، برخی از گامهای اتصال را انجام میدهد.
وظایف Stub سمت سرور
در سمت سرور، Stub به طور مشابه، واسطی میان سیستم زمان اجرا و رویههای مدیریت محلی که توسط سرور اجرا شدهاند فراهم میکند. حال پس از معرفی Stub، در ادامه نوشته «RPC چیست» به این سوال پاسخ داده شده است که Binding در RPC چیست؟
Binding در RPC چیست ؟
کلاینت از کجا بداند باید کدام سرویس را فراخوانی کند و این سرویس کجاست؟ منعطفترین راهکار، استفاده از ارتباط پویا (Dynamic Binding) و یافتن سرور در زمان اجرا است. این کار وقتی انجام میشود که ابتدا درخواست RPC انجام شده باشد. اولین باری که Clinet Stub فراخوانی میشود، Clinet Stub با یک Name Server ارتباط برقرار میکند تا نشانی که سرور در آن قرار دارد را انتقال دهد.
Binding (اتصال | ارتباط) از دو بخش تشکیل شده است:
- نامگذاری: سروری که خدماتی برای ارائه دارد، یک واسط برای آن خدمات صادر میکند. صدور یک واسط، سرویس را در سیستم درج میکند تا کلاینتها بتوانند از آن استفاده کنند.
- تعیین موقعیت: کلاینت باید یک واسط صادر شده را پیش از آنکه ارتباط بتواند شروع شود، وارد کند.
حال پس از معرفی برخی از اجزای اساسی پروتکل Remote Procedure Call ، در ادامه مقاله «RPC چیست» به نحوه عملکرد RPC پرداخته و چگونگی کارکرد آن شرح داده شده است.
RPC چطور کار میکند؟
زمانی که یک فراخوانی رویه از راه دور (RPC) انجام میشود، محیطی که فراخوانی را انجام داده است (کلاینت) به حالت تعلیق در میآید. سپس، پارامترهای آن رویه یا روال از طریق شبکه به محیطی منتقل میشوند که رویه قرار است در آن اجرا شود (سرور).
در مرحله بعد، رویه در آن محیط (سرور) اجرا میشود. پس از اتمام رویه، نتایج (جوابها) به محیطی که فراخوانی را انجام داده بود (کلاینت) باز گرداننده میشوند و با دریافت نتایج، کلاینت درست مثل اینکه آن رویه در خود کلاینت انجام شده باشد به ادامه کار خود ادامه میدهد.

در ادامه این بخش از مقاله «RPC چیست» با جزئیات بیشتری به نحوه عملکرد پروتکل RPC پرداخته و توالی رویدادها در آن بررسی شدهاند.
توالی رویدادها در RPC چگونه است؟
توالی رویدادها در یک فراخوانی رویه از راه دور در ادامه فهرست شده است:
- یک Client Stub (قطعه کدی که تبدیل پارامترهای ارجاع شده میان کلاینت و سرور را انجام میدهد) توسط کلاینت فراخوانی میشود. این فراخوانی یک فراخوانی رویه محلی است با پارامترهایی که به طور معمول در بالای پشته قرار داده شدهاند.
- Client Stub رویه را به صورت یک پیام بستهبندی میکند و یک فراخوانی سیستمی را برای ارسال پیام انجام میدهد. به بستهبندی پارامترهای رویه «Marshalling» گفته میشود.
- سیستم عامل محلی کلاینت پیام را از ماشین کلاینت به ماشین سرور راه دور ارسال میکند.
- پیام توسط سیستم عامل سرور به Server Stub ارجاع داده میشود.
- Server Stub بستهبندی پارامترها را از پیام باز میکند (Umarshalling).
- پس از پایان رویه در سرور، نتایج به Server Stub بازگردانده میشوند و Server Stub مقادیر بازگشتی را در قالب یک پیام بستهبندی میکند. سپس، Server Stub پیام را به لایه انتقال تحویل میدهد.
- لایه انتقال پیام دریافتی را به لایه انتقال کلاینت میفرستد و لایه انتقال کلاینت نیز پیام را به Client Stub تحویل میدهد.
- Client Stub بستهبندی پارامترهای بازگشتی را باز میکند و اجرا به فراخواننده (کلاینت) باز میگردد.
توالی رویدادها در فراخوانی رویه از راه دور در نمودار زیر نشان داده شده است:

در ادامه این بخش از مقاله «RPC چیست» به شرح برخی از خصوصیات RPC پرداخته شده است تا آشنایی بیشتری با نحوه عملکرد پروتکل Remote Procedure Call حاصل شود.
خصوصیتهای RPC چیست؟
در این بخش از مقاله «RPC چیست» خصوصیتهای پروتکل فراخوانی رویه راه دور فهرست شدهاند:
- رویه فراخوانی شده در یک پردازه دیگر قرار دارد که این پردازه احتمالاً در یک ماشین دیگر واقع شده است.
- این پردازه فضای آدرس را به اشتراک نمیگذارد.
- RPC در داخل محیط پردازه سرور اجرا میشود.
- RPC دسترسی به محیط فراخواننده رویه (کلاینت) را فراهم نمیکند.
در ادامه مقال «RPC چیست» به سایر مفاهیم و سوالات مهم پیرامون پروتکل Remote Procedure Call پرداخته شده است. پیش از آن، به معرفی مجموعه دورههای آموزشی دروس علوم و مهندسی کامپیوتر فرادرس با هدف آشنایی علاقهمندان با این دورهها پرداخته شده است.
سرویس RPC در ویندوز چیست؟
نام این سرویس، «RpcSs» است و در داخل پردازه میزبان سرویسهای اشتراکی یعنی «svchost.exe» اجرا میشود.

در ادامه شرح چیستی سرویس RPC در مقاله «RPC چیست» ، هدف از وجود این سرویس در ویندوز شرح داه شده است.
هدف از RPC مایکروسافت چیست؟
فراخوانی رویه راه دور (RPC) مایکروسافت فناوری قدرتمندی را برای ایجاد برنامههای کلاینت-سروری توزیعیافته فراهم میکند. Stubها و کتابخانههای زمان اجرای RPC اکثر پردازههای مربوط به پروتکلهای شبکه و ارتباطات را مدیریت میکنند. این باعث میشود که توسعهدهندگان به جای تمرکز بر جزئیات شبکه، بر جزئیات اپلیکیشن خود تمرکز داشته باشند.
حال باید به کاربرد RPC در ویندوز پرداخته شود. این کار در ادامه مقاله «RPC چیست» انجام شده است.
کاربرد Remote Procedure Call در ویندوز چیست؟
مخاطب توسعهدهنده RPC در ویندوز چه کسانی هستند؟
آیا میتوان سرویس RPC را در ویندوز سرور غیر فعال کرد؟
سرویس RPC در ویندوز بسیار مهم است و هرگز نباید غیر فعال یا متوقف شود. و در صورتی که سرویسهای وابسته به سرویس RPC برای اجرای روان با اجرای دستور «SC ENUMDEPEND» فهرست شوند، مشخص خواهد شد که بیش از ۱۰۰ سرویس در ویندوز سرور ۲۰۱۹ به سرویس RpcSs نیازمند و وابسته هستند.

کاربردهای RPC چیست ؟
بسیاری از سرویسهای ویندوز و سایر سرویسها و پروتکلها از RPC استفاده میکنند یا از روش عملکرد RPC در آنها الهام گرفته شده است. در این بخش، برخی از پیادهسازیهای مشابه و مبتنی بر پروتکل RPC فهرست شدهاند:
- فراخوانی روش راه دور جاوا (Java RMI) قابلیتهایی مشابه متدهای استاندارد RPC یونیکس فراهم میکند.
- زبان برنامه نویسی GO بسته RPC را برای پیادهسازی فراخوانی روال از راه دور با پشتیبانی از فراخوانیهای ناهمگون فراهم کرده است.
- روبی توزیعی یا Distributed Ruby به برنامههای نوشته شده به زبان Ruby امکان میدهد تا با یکدیگر در یک ماشین یکسان یا از طریق شبکه ارتباط برقرار کنند.
- سیستم فایل شبکه (NFS) یکی از استفاده کنندگان برجسته پروتکل RPC به شمار میرود.
- JSON-RPC یک پروتکل RPC است که از پیامهای کدگذاری شده با JSON استفاده میکند.
- XML-RPC نیز یک پروتکل RPC است که از XML برای کدگذاری فراخوانیهایش و از HTTP به عنوان یک ساز و کار انتقال بهره میبرد.
- SOAP جایگزینی برای XML-RPC است و به مانند آن از XML برای کدگذاری فراخوانهای مبتنی بر HTTP استفاده میکند.
- WAMP پروتکل RPC و Publish-Subscribe را در قالب یک پروتکل واحد و غیر وابسته به انتقال ادغام میکند.
- جعبه ابزار وب Google یا همان Google Web Toolkit از RPC ناهمگون برای ارتباط با خدمات سرور استفاده میکند.
- Microsoft .NET Remoting امکانات RPC را برای سیستمهای توزیعی پیادهسازی شده روی پلتفرم ویندوز ارائه میدهد. البته، اخیراً Microsoft .NET Remoting با WCF جایگزین شده است.
- DCOM مایکروسافت از MSRPC استفاده میکند که مبتنی بر DCE/RPC است.
- محیط محاسبات توزیعیافته بنیاد نرمافزار باز DCE/RPC که توسط مایکروسافت پیادهسازی شده است نیز از RPC استفاده میکند.
حال در ادامه مقاله «RPC چیست» به شرح ویژگیهای RPC پرداخته شده است.
ویژگیهای RPC چیست ؟
در این بخش از مقاله «RPC چیست» به طور خلاصه به ویژگیهای مهم RPC اشاره شده است. این ویژگیها عبارتند از:
- سینتکس فراخوانی RPC ساده و روان است.
- RPC مفاهیم شناخته شدهای را ارائه میدهد.
- RPC واسطی کاملاً مشخص و تعریف شده ارائه میدهد.
- RPC میتواند میان پردازههای یک ماشین یا چند ماشین ارتباط ایجاد کند.
در ادامه بخش ویژگیهای RPC در مقاله «RPC چیست» به توصیف مفایم فراخوانی در Remote Procedure Call پرداخته شده است.
مفاهیم فراخوانی در RPC چه هستند؟
در RPC انتخابهای فراخوانی در موارد زیر دستهبندی میشوند:
- سعی مجدد ارسال پیام درخواست: تلاش مجدد ارسال یک پیام درخواست زمانی انجام میشود که سرور دچار مشکل شده باشد یا دریافت کننده پیام را دریافت نکرده باشد.
- تصفیه تکراری: برای حذف درخواستهای تکراری سرور استفاده میشود.
- انتقال مجدد نتایج: برای ارسال مجدد پیامها بدون اجرای مجدد عملیات در سمت سرور انجام میشود.

نقش IDL در RPC چیست؟
روال پیام RPC چیست؟
زمانی که گزارههای برنامه که از چارچوب RPC استفاده میکنند به یک برنامه اجرایی کامپایل میشوند، یک Stub در کدهای کامپایل شده وجود دارد که به عنوان نماینده کدهای RPC عمل میکند. Stub قطعه کدی است که تبدیل پارامترهای ارجاع شده میان کلاینت و سرور را انجام میدهد. زمانی که برنامه اجرا و فراخوانی رویه RPC صادر میشود، Stub درخواست را دریافت میکند و آن را به یک برنامه زمان اجرا (Runtime) در کامپیوتر راه دور هدایت میکند.
مدلهای RPC و روشهای جایگزین برای ارتباط کلاینت-سروری
مدلهای RPC و پیادهسازیهای محاسبات توزیعیافته بسیاری وجود دارند. یک مدل و پیادهسازی رایج، محیط محاسبات توزیعیافته (DCE) بنیاد نرمافزار آزاد (OSF) است. موسسه مهندسان برق و الکترونیک (IEEE)، پروتکل RPC را در مشخصههای ISO فراخوانی رویه راه دور خود تعریف کرده است.
انواع RPC چیست ؟
سه نوع اصلی RPC شامل RPC فراخوانی مجدد (Callback RPC)، RPC داده پراکنی (Broadcast RPC) و RPC حالت مرحلهای یا حالت دستهای (Batch-mode RPC) است. در ادامه هر یک از این انواع RPC به طور خلاصه شرح داده شدهاند.
Callback RPC چیست؟
این نوع از RPC یک الگوی نقطه به نقطه (P2P) را میان پردازههای شرکت کننده امکانپذیر میسازد. RPC فراخوانی مجدد یا همان Callback RPC به یک پردازه کمک میکند تا هم به عنوان خدمات کلاینت و هم به عنوان خدمات سرور استفاده شود. خصوصیات و کاربردهای Callback RPC به شرح زیرند:
- مسائلی با کاربرد کنش و واکنش (تعاملی) که به صورت راه دور پردازش میشوند.
- Callback RPC سرورهایی با کنترل کلاینت ارائه میدهد.
- فراخوانی مجدد (Callback) پردازه کلاینت را وادار به انتظار میکند.
- مدیریت بنبستهای فراخوانی مجدد
- Callback RPC تسهیلات یک الگوی نقطه به نقطه را میان پردازههای شرکت کننده فراهم میکند.

Broadcast RPC چیست؟
Broadcast RPC یک درخواست کاربر است که در شبکه پراکنده (Broadcast) میشود. این درخواست توسط همه سرورهایی پردازش میشود که متد پردازش آن درخواست را در اختیار دارند.
خصوصیات Broadcast RPC به شرح زیرند:
- به کاربر امکان میدهد که تعیین کند پیام درخواست کلاینت باید پراکنده (Broadcast) شود.
- میتوان پورتهای داده پراکنی (Broadcast Port) تعریف کرد.
- Broadcast RPC به کاهش فشار روی شبکه فیزیکی کمک میکند.
Batch-mode RPC چیست؟
خصوصیات Batch-mode RPC به شرح زیرند:
- Batch-mode RPC سرباری را که در ارسال یک درخواست وجود دارد به حداقل میرساند. زیرا درخواستها به صورت گروهی به سرور ارسال میشوند.
- این نوع از پروتکل RPC تنها برای کاربردی مناسب است که نیاز به نرخ فراخوانی کمتری داشته باشد.
- Batch-mode RPC به یک پروتکل انتقال پایا (Reliable) نیاز دارد.
در برخی منابع دیگر انواع RPC در پنج دسته به صورت زیر شرح داده شدهاند:
- روش عملیات عادی که در آن کلاینت فراخوانی RPC را انجام میدهد و تا زمان دریافت پاسخ فعالیت خود را متوقف میکند.
- نوعی که در آن کلاینت فراخوانی RPC را انجام و به پردازش خود ادامه میدهد. در این حالت، سرور پاسخی ارسال نمیکند.
- در نوع دیگر RPC، تسهیلاتی برای ارسال چندین فراخوانی بدون انسداد به صورت گروهی فراهم میشود.
- در نوع چهارم RPC، کلاینتهای RPC دارای امکان داده پراکنی (Broadcast) هستند. آنها میتوانند پیامهایی را به سرورهای متعدد ارسال و سپس تمام پاسخهای نتیجه را دریافت کنند.
- در یکی دیگر از انواع RPC ، کلاینت یک فراخوانی بدون انسداد کلاینت-سروری انجام میدهد؛ سرور کامل شدن فراخوانی را به وسیله فراخوانی یک رویه مرتبط با کلاینت اعلام میکند.
حال پس از شرح انواع RPC، در ادامه مقاله «RPC چیست» به بیان مزایای Remote Procedure Call پرداخته شده است.
مزایای RPC چیست؟
برخی از مزایای RPC در این بخش از مقاله «RPC چیست» فهرست شدهاند:
- RPC به کلاینتها برای ارتباط با سرور از طریق استفاده سنتی از RPC در زبانهای سطح بالا کمک میکند.
- از RPC میتوان در یک محیط توزیعیافته و همچنین محیط محلی استفاده کرد.
- RPC از مدلهای مبتنی بر پردازده (Process) و مدلهای مبتنی بر Thread (نخ) پشتیبانی میکند.
- ساز و کار انتقال پیام در RPC از دید کاربر پنهان و نوعی انتزاع فراهم میشود.
- زحمت بازنویسی و توسعه مجدد کدها در فراخوانیهای رویه از راه دور RPC بسیار کم است.
- میتوان از فراخوانیهای رویه از راه دور RPC هم در محیطهای توزیع یافته و هم در محیطهای محلی استفاده کرد.
- بسیاری از لایههای پروتکل برای بهبود عملکرد و کارایی توسط RPC حذف شدهاند.
در ادامه مقاله «RCP چیست» به شرح کاستیها و نقاط ضعف Remote Procedure Call پرداخته شده است.
معایب RPC چیست؟
برخی از معایب و نقاط ضعف RPC در ادامه فهرست شدهاند:
- کلاینت و سرور از محیطهای اجرایی متفاوتی برای روالهای مربوطه استفاده میکنند و همچنین مصرف منابع (مثلاً فایلها) در RPC پیچیدهتر است. در نتیجه، سیستمهای مبتنی بر پروتکل RPC چندان برای انتقال مقادیر حجیم داده مناسب نیستند.
- RPC در برابر خرابی بسیار آسیبپذیر است. زیرا یک سیستم ارتباطی، یک ماشین دیگر و یک پردازه دیگر در RPC دخیل هستند.
- فراخوانی رویه از راه دور RPC مفهومی است که میتوان آن را به روشهای مختلفی پیادهسازی کرد. یعنی RPC یک استاندارد به حساب نمیآید.
- RPC تنها مبتنی بر کنش و واکنش است و به همین دلیل، وقتی بحث معماری سختافزاری به میان میآید، RPC هیچ گونه انعطافپذیری از خود بروز نمیدهد.
- RPC باعث افزایش هزینهها میشود.
حال، با توجه به اهمیت روزافزون امنیت در ارتباطات راه دور (شبکه)، لازم است ادامه مقاله «RPCچیست» به خطرات امنیتی Remote Procedure Call اختصاص داده شود.

درک خطرات امنیتی Remote Procedure Call
خوشبختانه، قابلیتهای پالایش پیشرفته لایه کاربرد در سرور ISA سال ۲۰۰۴، سازمانها را قادر ساخت تا امکان مدیریت ارتباطات RPC خود را در اختیار داشته باشند. این قابلیتها به سازمانها امکان میدهند تا تبادل RCP را به گونهای محدود کنند که تنها با انواع خاصی مطابقت داشته باشند. این کار باعث میشود سازمانها بتوانند تهدیدهای کلی موجود در خدمات را به میزان زیادی کاهش دهند. این نوع قابلیتها، ISA را به d; محصول Gateway عالی بدل کرده است. چرا که این قابلیتها نه تنها برای مراقبت از شبکهها در برابر ترافیک خارجی استفاده میشوند، بلکه در برابر بهرهبرداریهای RPC داخلی و ویروسها نیز مقاوم هستند.
بررسی عملکرد امنیتی تبادل RPC
به طور خلاصه، RPC از طریق انتشار یک پورت نگاشت نقطه انتهایی (پورت ۱۳۵) روی سرور اجرا کننده سرویسهای RPC کار میکند. پورت ۱۳۵ مسئولیت هدایت کلاینتها را به پورتهایی با محدوده بالا برای سرویسها بر عهده دارد. این پورتهای محدوده بالا به صورت پویا تخصیص داده میشوند. این پورتها میتوانند بسته به یک تخصیص تصادفی توسط سرویس نگاشت نقطه نهایی RPC، هر یک از پورتهای TCP/IP در محدوده ۱۰۲۴ تا ۶۵۵۳۶ باشند. این حقیقت که پورتهای بسیاری باید برای امکان استفاده از RPC باز نگه داشته شوند، یکی از دلایلی است که این پروتکل سابقه خوبی در حوزه زمینه امنیت ندارد.
یکی دیگر از مشکلات امنیتی در خصوص نحوه عملکرد RPC این است که اطلاعات بسیاری را در مورد سرویسهای اجرا شده روی یک سرور خاص افشا میکند. کاوش و تفحص پورت پیشفرض نگاشت نقطه نهایی RPC برای به دست آوردن اطلاعات حساس راجع به واسطهای RPC در دسترس چندان زمان نمیبرد. به این ترتیب، لزوم وجود راهکاری برای فراهم کردن دسترسی امن به RPC وجود داشت که منجر به ایجاد قابلیتهای تصفیه RPC در سرور ISA شد. حال در ادامه مقاله «RPC چیست» به برخی سوالات رایج پیرامون پروتکل Remote Procedure Call پرداخته شده است.
خطای RPC Call Fail چیست ؟
خطای «The remote procedure call failed and did not execute» نشان دهنده بروز مشکل در پروتکل RPC است. RPC مدیریت کننده سرویس سرورهای COM و DCOM است.
RPC عملیاتی نظیر درخواستهای فعالسازی شی، راهکارهای صدور شی و جمعآوری زباله توزیعی را برای سرورهای COM و DCOM انجام میدهد. در صورتی که این سرویس متوقف یا غیر فعال شود، برنامههایی که از COM یا DCOM استفاده میکنند، به درستی کار نخواهند کرد.

به شدت توصیه میشود که سرویس RPC همیشه در حال اجرا باشد. در صورتی که خطای خرابی و عدم اجرای RPC دریافت شود، ممکن است نیاز باشد سرویس Remote Procedure Call غیر فعال و مجدداً فعال شود. یکی دیگر از دلایل بروز این خطا میتواند فایلهای خراب یا آسیبدیده در سیستم باشد. در چنین موردی، نیاز به اجرای «System File Checker» وجود خواهد داشت.
راهکارهای رفع خطای RPC Call Fail چه هستند؟
در این بخش از مقاله «RPC چیست»، راههای رفع خطای RPC Call Fail فهرست و به اختصار شرح داده شدهاند:
- بررسی سرویس Remote Procedure Call: با نوشتن عبارت «Service» در قسمت جستجوی ویندوز میتوان به این صفحه مراجعه و سرویس RPC را در فهرست سرویسهای ویندوز پیدا کرد. با غیرفعال کردن و فعالسازی مجدد آن، ممکن است خطای RPC Call Fail برطرف شود.
- اجرای عیبیاب ویندوز: اجرای برنامه خطایاب ویندوز نیز میتواند به رفع این خطا کمک کند. برای دسترسی به این برنامه نیز میتوان عبارت «Windows Troubleshooter» را در قسمت Search ویندوز جستجو و آن را اجرا کرد.
- بررسی سیستم فایل: System File Checker یا SFC ابزاری در ویندوز است که امکان بررسی مشکل در فایلهای سیستمی ویندوز و بازیابی آنها را فراهم میکند. برای اجرای SFC باید به عنوان Admin وارد خط فرمان ویندوز شد و دستور «sfc /scannow» را وارد کرد.
- ویروسیابی سیسستم: با اجرای یک اسکن کامل سیستم باید بررسی کرد که آیا بدافزاری روی سیستم وجود دارد یا خیر. برای این کار میتوان از آنتی ویروس ویندوز به نام Windows Defender استفاده کرد.
- بهروزرسانی ویندوز: ممکن است با بهروزرسانی ویندوز نیز خطای RPC Call Fail برطرف شود.
XML-RPC چیست ؟
JSON RPC چیست ؟
JSON-RPC نوعی پروتکل فراخوانی روال از راه دور است که در قالب JSON کدگذاری میشود. JSON RPC از این بابت مشابه XML-RPC است که از انواع داده و دستورات کمی استفاده میکند. JSON-RPC امکان اعلانها (دادههای ارسالی به سرور که نیازمند پاسخ نیستند) را فراهم میکند.
همچنین امکان ارسال چند فراخوانی به سرور که ممکن است به صورت ناهمگون پاسخ داده شوند نیز وجود دارد. عملکرد JSON-RPC با ارسال یک درخواست به سروری آغاز میشود که این پروتکل را پیادهسازی میکند.

در چنین موردی، کلاینت معمولاً نرمافزاری است که قصد فراخوانی یک متد واحد را از سیستم راه دور دارد. میتوان چند پارامتر ورودی را به عنوان یک آرایه یا شی به متد راه دور منتقل کرد. در حالی که خود متد هم میتواند چند داده خروجی را بازگرداند (البته این به نسخه پیادهسازی شده بستگی دارد). تمام انواع انتقالی اشیاء واحد هستند که با استفاده از JSON مرتبسازی (Serialize) شدهاند. یک درخواست فراخوانی به یک متد مشخص به حساب میآید که توسط یک سیستم راه دور فراهم شده است. یک در خواست در JSON RPC میتواند شامل سه عضو زیر باشد:
- method - یک رشته با نام متدی که فراخوانده میشود. نامهای متدی که با RPC شروع میشوند برای متدهای داخلی RPC رزرو شدهاند.
- params - یک شی یا آرایهای از مقادیر است که به عنوان پارامتر به متد تعریف شده فراخوانی خواهد شد. این عضو ممکن است حذف شود.
- id - یک عدد رشتهای و غیر کسری است که برای تطبیق پاسخ با درخواستی که به آن پاسخ داده میشود. در صورتی که نیازی به بازگرداندن پاسخ وجود نداشته باشد، این عضو نیز حذف میشود و استفاده نخواهد شد.
دریافت کننده درخواست باید با یک بازخورد معتبر به تمام درخواستهای دریافتی پاسخ دهد. یک فراخوانی پاسخ شامل اعضای زیر هستند:
- result - دادهای است که توسط متد فراخوانی شده باز گردانده میشود. این عنصر به عنوان یک شی JSON-stat قالببندی شده است. در صورتی که در حین فراخوانی متد خطایی رخ دهد، احتمالاً این عضو وجود نداشته است.
- error - یک شی خطا است در صورتی که خطایی در فراخوانی متد رخ بدهد. در غیر این صورت، چنین عضوی نباید وجود داشته باشد. این شی باید شامل شمارههای اعضا (عدد صحیح) و پیام (رشته) باشد. یک عضو داده اختیاری میتواند حاوی دادههای خاص سرور دیگری نیز باشد.
- id - شناسه درخواستی که پاسخ به آن انجام میشود.
پلاگین RPC چیست؟
پلاگینهای RPC یا همان افزونههای RPC ، امکان استقرار سرویسهای دلخواه SOAP یا XML-RPC را فراهم میکنند. پلاگین RPC مسئولیت فراهم کردن REST API برای ارسال درخواست RPC از اپلیکیشنهای سمت سرور به دستگاهها و قرار دادن درخواست RPC در دستگاهها از طریق یکی از پروتکلهای در دسترس را بر عهده دارد. به طور پیشفرض، این افزونه در سطح سیستم توسط یک مدیر سیستم پیکربندی میشود.
میتوان نمونه خود از افزونه را در سطح کاربر پیکربندی کرد. کاربران حرفهای یا توسعهدهندگان پلتفرم میتوان کارکردهای پلاگین RPC را شخصیسازی کنند. به این ترتیب، با پاسخ به سوالات رایج پیرامون پروتکل RPC ، پیش از جمعبندی و پایان یافتن این مقاله، برخی فیلمهای آموزشی مرتبط با Remote Procedure Call در سایت فرادرس معرفی شدهاند.
فیلم های آموزش علوم کامپیوتر فرادرس
در این بخش انتهایی از مقاله «RPC چیست» برخی از دورههای آموزش ویدیویی فرادرس که به طور مستقیم یا غیر مستقیم با Remote Procedure Call در ارتباط هستند، معرفی شدهاند. در ادامه، فیلم اموزش شبکههای کامپیوتری معرفی شده است.
فیلم آموزش شبکه های کامپیوتری
بحث RPC معمولاً در درس شبکههای کامپیوتری ۲ مطرح میشود که درس شبکههای کامپیوتری پیشنیازی برای آن به حساب میآید. طول مدت دوره آموزشی شبکه های کامپیوتری ۱ بیش از ۱۹ ساعت و مدرس آن مهندس علیرضا سبحانی است. این دوره آموزشی برای دانشجویان کامپیوتر در مقطع کارشناسی جهت مطالعه و آموزش درس شبکههای کامپیوتری مناسب است. همچنین، این دوره آموزشی میتواند نقطه شروع مناسبی باشد برای کلیه علاقهمندان و افرادی که قصد شروع فعالیت حرفهای در حوزه شبکههای کامپیوتری را دارند. از جمله سرفصلهای این دوره آموزشی میتوان به مقدمات و مباحث کلی مرتبط با شبکههای کامپیوتری، لایههای شبکه و سایر موارد اشاره کرد.
- برای دیدن فیلم آموزش شبکه های کامپیوتری ۱ + اینجا کلیک کنید.
فیلم آموزش سیستم های عامل
RPC در بحث سیستم عامل مطرح میشود و یکی از سرویسهای ویندوز به حساب میآید. بنابراین لازم است آشنایی با حوزه سیستمهای عامل وجود داشته باشد. تمامی سرفصلها و مباحث درس سیستمهای عامل در دوره آموزش سیستمهای عامل از مجموعه دورههای دروس علوم و مهندسی کامپیوتر در سایت فرادرس پوشش داده شده است. طول مدت دوره سیستمهای عامل ۱۱ ساعت و مدرس آن دکتر فرشید شیرافکن است. این دوره آموزشی از هفت درس تشکیل شده است. برخی از سرفصلهای این دوره مفاهیم اولیه سیستم عامل، فرایند–نخ، زمانبندی پردازنده، بنبست، همروندی، مدیریت حافظه، مدیریت دیسک و سایر موارد را شامل میشود.
- برای دیدن فیلم آموزش سیستم های عامل + اینجا کلیک کنید.
فیلم آموزش نرم افزار مجازی سازی VMware Workstation
VMware یکی از برنامههای ماشین مجازی رایج و پراستفاده در ویندوز محسوب میشود که میتوان از آن برای دسترسی راه دور نیز استفاده کرد. بدین سبب، دوره آموزش نرمافزار مجازیسازی VMware Workstation در این بخش از مقاله «RPC چیست» معرفی شده است. طول مدت این دوره پنج ساعت و ۲۲ دقیقه و مدرس آن مهندس سودابه آقابراری است. از جمله سرفصلهای این دوره میتوان به معرفی مجازی سازی و بررسی تاریخچه آن، معرفی محصولات مجازی سازی کمپانی VMware، نصب، پیکربندی و مدیریت VMware Workstation Pro، پیکربندی پیشرفته ماشین های مجازی و سایر موارد اشاره کرد.
- برای دیدن فیلم آموزش نرم افزار مجازی سازی VMware Workstation + اینجا کلیک کنید.
جمعبندی
در این مقاله به این سوال پاسخ داده شده که RPC چیست و بیان شد که Remote Procedure Call یا فراخوانی روال از راه دور قاعدهای است که درخواست کننده سرویس میتواند به واسطه آن با ارائه دهنده خدمت ارتباط برقرار کرده و خدمت لازم را دریافت کند.
با استفاده از RPC برنامهنویس دغدغه توجه به جزئیات شبکه و کدنویسی برای استفاده از خدمات راه دور را نخواهد داشت. در این مقاله علاوه بر شرح چیستی RPC، به کلیه موارد، مفاهیم و سوالات رایج پیرامون RPC پاسخ داده شد.
مطالب مجله فرادرس را در جستجوی گوگل سریعتر ببینید

















با سلام. من می ترسم کسی از راه دور سیستم من را هک کند؛ آیا اگر
Remote Procedure Call (RPC) را غیر فعال کنم، مشکلی به وجود نمی آید؟ یک بار می خواستم این کار را انجام بدهم اما دکمه های تأییدی (اوکی و اپلای) غیر فعال بودند.
با سلام
ضمن تشکر، من مترجم هستم و از مقاله شما در ارتباط با RPC استفاده کردم، ممکن است بفرمایید عدد ۲ در این عبارت به چه معنی است:
remote procedure 2 call (RPC) system
جمله اصلی این است:
A remote procedure 2 call (RPC) system called gRPC was created as an open source project by Google
سلام من میخوام از درایو d به داریو c بدم میگه RPCوجود ندارد میشه راهنمایی کنین ممنون