
הפעלת פרוצדורות מרוחקות (באנגלית:Remote Procedure Call אוRPC) היא טכנולוגיה לתקשורת ביןיישומים המאפשרת לתוכנית מחשב להפעילפרוצדורה במרחב כתובות אחר (בדרך כלל במחשב אחר) באופן שקוף, כלומר ללא צורך ביישום פרטני של פרוטוקול התקשורת. באמצעותRPCמפתח התוכנה יכול לכתוב את אותו הקוד בין אם הוא רץ מקומית על המחשב המריץ אותו או על מחשב מרוחק ברשת.
באמצעות RPC ניתן לממש תקשורתשרת לקוח, כך שהלקוח מפעיל על השרת את הפונקציה הרצויה תוך העברת הפרמטרים הנדרשים וממתין ממנו לקבלת התשובה, שבמרבית הפעמים עד לקבלתה הלקוח לא יכול להמשיך בפעולתו.
הבדל משמעותי בין הרצת הפונקציה מקומית לבין הרצתה באופן מרוחק הוא היכולת להבין את תוצאת פעולתה במידה של תקלה ברשת. אם הפונקציה נכשלה בהרצתה מרחוק, המחשב המקומי לא יכול לדעת האם היא בוצעה או לא. אם הפונקציהאידמפוטנטית (כלומר שהרצתה יותר מפעם אחת לא משנה דבר במערכת) אזי הבעיה פתורה שכן ניתן להריצה שוב ושוב עד להצלחה ודאית. אולם אם הפונקציה אינה כזו, יש להתייחס למשמעות הכישלון בהרצתה ולהגיב בהתאם, במיוחד אם מדובר במערכות עדינות.
הרעיון שעומד בבסיס RPC הוזכר כבר בשנת1976 ב-RFC מס' 707.[1]
בשנת1981 חברתזירוקס פארק הייתה הראשונה שמימשה את הרעיון תחת השם "Courier". המימוש הנפוץ הראשון של הרעיון במסגרתמערכת ההפעלהUnix היה בשנת1984 על ידי חברתסאן מיקרוסיסטמס תחת השם "ONC RPC", ושימש כתשתית ל-Network File System, ה-NFS, פרוטוקול המאפשר שיתוףקבצים ברשת. הפרוטוקול נמצא עד היום בשימוש נרחב במערכות הפעלה מבוססות Unix.
מימוש נוסף ל-RPC על גבי Unix היה שלאפולו מחשבים, שמימשה באמצעותו את ה-"Network Computing System", ששימש בהמשך כיסוד למערכת RPC נוספת של ה-OSF שנקראהDCE/RPC. כעשור לאחר מכן, במהלךשנות ה-90, חברתמיקרוסופט הרחיבה את DCE/RPC ויצרה מימוש עצמאי נוסף למנגנון RPC, שנקראMSRPC (קיצור של Microsoft RPC). מעל ה-MSRPC מומשDCOM שבמשך שנים היה ה-API שמערכת ההפעלהחלונות סיפקה לתקשורת בין תהליכים.
באותה התקופה הציגו גם חברתזירוקס פארק אתILU, ו-Object Management Group אתCORBA – מימושים נוספים ל-RPC המאפשריםירושה.
הפרוטוקליםDCOM שלחלונות, פרוטוקולRMI שלJAVA,gRPC שלגוגל ופרוטוקולSOAP באינטרנט-WWW הם דוגמאות לשימושים כאלו. כדי לאפשר לשרת אחד לשרת לקוחות המשתמשים בפרוטוקולים שונים, הוצעו מספר מערכות סטנדרטיות היודעות לבצע זאת, רובן משתמש בקובץIDL (קיצור של interface description language) כדי לאפשר למערכות השונות לפנות ל-RPC בפורמט הנכון. קובץ ה-IDL משולב בקוד של הלקוח והשרת באמצעות כלים מיוחדים המבצעים זאת, הנפוץ מביניהם הוא RPCGEN.
פרוטוקול ה RPC מהווה אתגר לאבטחת מידע מכיוון שיש צורך לבצע פעולות בין מערכות המוגנות על ידי מערכת סינון כגוןFirewall. האתגר נובע מכך ש RPC מבצע Session ראשוני בפורט 135 אך המשך העבודה מתבצע בפורט גבוה (1024-65535) הנקבע דינמית בין השרת ללקוח ולכן נדרשת פתיחה של כל טווח הפורטים הקבועים דבר שכמובן הופך את סינון הפרוטוקלים ללא אפקטיבי.
| סיווגפרוטוקולים על פימודל ה־OSI | ||
|---|---|---|
| שכבת היישום | HTTP •SMTP •FTP •RTP •IRC •SNMP •SIP •DNS •DHCP | |
| שכבת הייצוג | MIME •ASCII •Unicode •TLS | |
| שכבת השיחה | ASP •PPTP •SSH •NFS •RPC •SOCKS | |
| שכבת התעבורה | TCP •UDP •SCTP •DCCP | |
| שכבת הרשת | IP (IPv4 •IPv6) •ICMP •IPX •ניתוב | |
| שכבת הקו | אתרנט •Token ring •FDDI | |
| השכבה הפיזית | E1 •10Base-T •RS-232 •DSL •SONET | |
| פרוטוקולים במודל TCP/IP | ||
|---|---|---|
| שכבת יישום | HTTP •SMTP •FTP •DNS •DHCP •SSH •RTP •RTSP •IRC •SNMP •SIP •IMAP4 •MIME •Telnet •RPC •SOAP •LDAP | |
| שכבת תעבורה | TCP •UDP •SCTP •DCCP | |
| שכבת רשת | IP •IPv4 •IPv6 •ICMP •IPX •IGMP | |
| שכבת קשר | אתרנט •10BASE-T •802.11 WiFi •Token ring •FDDI •ARP | |