קריאה לפרוצדורה מרחוק או RPC היא טכניקה רבת עוצמה לבניית יישומים מבוזרים מבוססי שרת לקוח. זה ידוע גם בתור שיחת פונקציה או שיחת תת שגרה. קריאה לפרוצדורה מרחוק היא כאשר תוכנית מחשב גורמת להליך להתבצע במרחב כתובות אחר, המקודד כקריאה לפרוצדורה מקומית, מבלי שהמתכנת ציין במפורש את הפרטים עבור האינטראקציה המרוחקת. המתכנת כותב בעצם את אותו קוד בין אם תת-השגרה מקומית לתוכנית המבצעת או מרחוק. זוהי צורה של אינטראקציה בין לקוח לשרת המיושמת באמצעות מערכת העברת הודעות בקשות-תגובה.
מודל ה-RPC מרמז שקיפות מיקום שנוהלי ההתקשרות זהים במידה רבה, בין אם מקומיים או מרוחקים. בדרך כלל, הן אינן זהות, כך שניתן להבחין בין שיחות מקומיות לשיחות מרחוק. שיחות מרחוק הן בדרך כלל איטיות ופחות אמינות בסדרי גודל מאשר שיחות מקומיות, ולכן חשוב להבחין ביניהן.
RPCs הם סוג של תקשורת בין-תהליכים (IPC), בכך שלתהליכים שונים יש מרחבי כתובות שונים. יש להם מרחבי כתובות וירטואליים נפרדים באותו מחשב מארח, למרות שמרחב הכתובות הפיזי זהה. אמנם אם הם נמצאים במארחים שונים, מרחב הכתובות הפיזי שונה.
כיצד לבצע שיחת נוהל מרחוק
הסביבה המתקשרת מושעית, פרמטרים של פרוצדורה מועברים על פני הרשת לסביבה שבה אמור ההליך לבצע, והפרוצדורה מבוצעת שם.
כאשר ההליך מסתיים ומניב את תוצאותיו, הוא מועבר חזרה לסביבת השיחות, שם הביצוע מתחדש כאילו הוא חוזר משיחת נוהל רגילה.
הערה: RPC מתאים במיוחד לאינטראקציה בין שרת-לקוח (למשל, שאילתה-תגובה) שבה זרימת השליטה מתחלפת בין המתקשר למתקשר. מבחינה קונספטואלית, הלקוח והשרת אינם פועלים בו-זמנית; במקום זאת, חוט ההוצאה להורג קופץ מהמתקשר אל הנקרא ואז שוב חזרה.
סוגי RPC
ישנם שלושה סוגים של קריאה להליך מרחוק (RPC) במערכת הפעלה, כגון:
1. Callback RPC
סוג זה של RPC מאפשר פרדיגמת P2P בין התהליכים המשתתפים. זה עוזר לתהליך להיות שירותי לקוח ושרת כאחד. Callback RPC כולל את הפונקציות הבאות, כגון:
שוויון אובייקט ג'אווה
- בעיות אפליקציות אינטראקטיביות מעובדות מרחוק.
- מציע שרת עם ניהול לקוחות.
- התקשרות חוזרת גורמת לתהליך הלקוח להמתין.
- נהל מבוי סתום להתקשרות חזרה.
- זה מאפשר פרדיגמת עמית לעמית בין תהליכים המשתתפים.
2. שידור RPC
Broadcast RPC הוא שידור בקשה של לקוח ברשת, מעובד על ידי כל השרתים בשיטה לעיבוד בקשה זו. לשידור RPC יש את הפונקציות הבאות, כגון:
- מאפשר לך לציין שיש לשדר את הודעת הבקשה של הלקוח.
- אתה יכול להצהיר על יציאות שידור.
- זה עוזר להפחית את העומס על הרשת הפיזית.
3. RPC במצב אצווה
RPC במצב אצווה עוזר לעמוד בתור, להפריד בקשות RPC, במאגר שידור, בצד הלקוח, ולאחר מכן לשלוח אותן ברשת באצווה אחת לשרת. ל-RPC במצב אצווה יש את הפונקציות הבאות, כגון:
- זה ממזער את התקורה הכרוכה בשליחת בקשה על ידי שליחתן דרך הרשת באצווה אחת לשרת.
- סוג זה של פרוטוקול RPC יעיל רק עבור אפליקציה הזקוקה לשיעורי שיחות נמוכים יותר.
- זה צריך פרוטוקול שידור אמין.
מה עושה RPC?
כאשר הצהרות תוכנית המשתמשות במסגרת RPC ממולאות לתוכנית ניתנת להפעלה, בקוד הקומפילציה נכלל בדל המייצג את קוד ההליך המרוחק.
כאשר התוכנית מופעלת והקריאה לפרוצדורה מונפקת, הסטאב מקבל את הבקשה ומעביר אותה לתוכנית זמן ריצה של לקוח במחשב המקומי. בפעם הראשונה שתת הלקוח מופעל, הוא יוצר קשר עם שרת שמות כדי לקבוע את כתובת התחבורה שבה השרת נמצא.
תוכנת זמן הריצה של הלקוח יודעת להתייחס למחשב וליישום השרת המרוחק ושולחת את ההודעה דרך הרשת המבקשת את ההליך המרוחק. באופן דומה, השרת כולל תוכנית זמן ריצה ו-stub שמתממשקים עם ההליך המרוחק עצמו, ופרוטוקולי בקשת תגובה מוחזרים באותו אופן.
תכונות של RPC
במערכת הפעלה, קריאה להליך מרחוק (RPC) כולל את התכונות הבאות, כגון:
לפזר עצים
- RPC מסתיר את המורכבות של תהליך העברת ההודעות מהמשתמש.
- RPC משתמש רק בשכבות ספציפיות של מודל OSI כמו שכבת התחבורה.
- לקוחות יכולים לתקשר עם השרת באמצעות שפות ברמה גבוהה יותר.
- RPC עובד היטב גם עם סביבות מקומיות וגם עם סביבות מרוחקות.
- התוכנית של RPC כתובה בקוד פשוט והיא מובנת בקלות על ידי המתכנת.
- מערכת ההפעלה יכולה להתמודד בקלות עם תהליכים וחוטים המעורבים ב-RPC.
- מערכת ההפעלה מסתירה מהמשתמש את ההפשטות של RPC.
איך עובד RPC?
כאשר מופעלת קריאת פרוצדורה מרחוק, הסביבה המתקשרת מושעית, פרמטרי הפרוצדורה מועברים על פני הרשת לסביבה שבה אמור ההליך לבצע, ולאחר מכן ההליך מבוצע בסביבה זו.
כאשר ההליך מסתיים, התוצאות מועברות חזרה לסביבת השיחות, שם הביצוע מתחדש כאילו הוא חוזר משיחת נוהל רגילה.
קריאה להליך מרחוק (RPC) פועלת בשלבים הבאים במערכת הפעלה:
שלב 1: זמן הריצה של הלקוח, הלקוח, וה-RPC פועלים במחשב הלקוח.
שלב 2: לקוח מתחיל תהליך של לקוח על ידי העברת פרמטרים בדרך הרגילה. האריזה של פרמטרי ההליך נקראת מסדר . ה-client stub מאחסן בתוך מרחב הכתובות של הלקוח עצמו, והוא גם מבקש מ-RPC Runtime המקומי לשלוח בחזרה לשרת.
שלב 3: בשלב זה, המשתמש יכול לגשת ל-RPC על ידי ביצוע שיחה מקומית רגילה. RPC Runtime מנהל את העברת ההודעות בין הרשת על פני לקוח ושרת, והוא גם מבצע את העבודה של שידור חוזר, אישור, ניתוב והצפנה.
שלב 4: לאחר השלמת הליך השרת, הוא חוזר ל-server stub, אשר אורז (מרשל) את ערכי ההחזרה להודעה. השרת שולח הודעה בחזרה לשכבת התחבורה.
שלב 5: בשלב זה, שכבת ההובלה שולחת בחזרה את הודעת התוצאה לשכבת ההובלה של הלקוח, אשר מחזירה הודעה ל-client stub.
שלב 6: בשלב זה, ה-client stub demarshall (מפרק) את פרמטרי ההחזרה בחבילה המתקבלת, ותהליך הביצוע חוזר אל המתקשר.
פקודת grep בלינוקס
בעיות של שיחת נוהל מרחוק (RPC)
במערכת הפעלה, קריאת פרוצדורה מרחוק או RPC התמודדו עם כמה בעיות שיש לטפל בהן, כגון:
1. זמן ריצה של RPC
מערכת זמן הריצה RPC היא ספרייה של שגרות ושירותים המטפלים בתקשורת הרשת העומדת בבסיס מנגנון ה-RPC. במהלך שיחת RPC, קוד מערכות זמן ריצה בצד הלקוח ובצד השרת מטפל בקישור, יוצר תקשורת על גבי פרוטוקול מתאים, מעביר נתוני שיחה בין הלקוח לשרת ומטפל בשגיאות תקשורת.
2. בדל
תפקידו של הסטאב הוא לספק שקיפות לקוד היישום שנכתב על ידי המתכנת.
3. כריכה
מפעילי java
איך הלקוח יודע למי להתקשר והיכן נמצא השירות?
הפתרון הגמיש ביותר הוא להשתמש בכריכה דינמית ולמצוא את השרת בזמן ריצה כאשר ה-RPC נעשה לראשונה. בפעם הראשונה שתת הלקוח מופעל, הוא יוצר קשר עם שרת שמות כדי לקבוע את כתובת התחבורה שבה השרת שוכן. הכריכה מורכבת משני חלקים:
4. הסמנטיקה הקוראת הקשורה ל-RPC
זה מסווג בעיקר לאפשרויות הבאות,
מאפייני RPC
להלן המאפיינים החיוניים של שיחת הליך מרחוק:
- ההליך שנקרא נמצא בתהליך אחר, שסביר להניח שיימצא במכונה אחרת.
- התהליכים אינם חולקים מרחב כתובות.
- פרמטרים מועברים רק על ידי ערכים.
- RPC מופעל בתוך הסביבה של תהליך השרת.
- הוא אינו מציע גישה לסביבת הליך ההתקשרות.
היתרונות של RPC
להלן כמה יתרונות או יתרונות של RPC, כגון:
- שיטת RPC עוזרת ללקוחות לתקשר עם שרתים על ידי שימוש קונבנציונלי בקריאות פרוצדורות בשפות ברמה גבוהה.
- שיטת ה-RPC מבוססת על קריאת הפרוצדורה המקומית, אך סביר להניח שההליך יתבצע בתהליך אחר ובדרך כלל במחשב אחר.
- RPC תומך במודלים מוכווני תהליכים וחוטים.
- RPC הופך את מנגנון העברת ההודעות הפנימי למוסתר מהמשתמש.
- המאמץ צריך לכתוב מחדש ולפתח מחדש את הקוד הוא מינימום.
- ניתן להשתמש בקריאות פרוצדורות מרחוק להפצה ולסביבה המקומית.
- הוא מחייב רבים משכבות הפרוטוקול לשיפור הביצועים.
- RPC מספק הפשטה. לדוגמה, אופי העברת ההודעות של התקשורת ברשת נשאר נסתר מהמשתמש.
- RPC מאפשר שימוש באפליקציות בסביבה מבוזרת שאינה רק בסביבה המקומית.
- עם קוד RPC, מאמצי הכתיבה מחדש והפיתוח מחדש ממוזערים.
- מודלים מוכווני תהליך ומוכווני חוט הנתמכים על ידי RPC.
החסרונות של RPC
להלן כמה חסרונות או חסרונות של שימוש ב-RPC, כגון:
- קריאת נוהל מרחוק מעבירה פרמטרים לפי ערכים בלבד וערכי מצביע, דבר שאינו מותר.
- זמן ההתקשרות (והחזרה) של הליך מרחוק (כלומר, תקורה) יכול להיות נמוך משמעותית מהליך מקומי.
- מנגנון זה פגיע מאוד לכשל מכיוון שהוא כרוך במערכת תקשורת, מכונה נוספת ותהליך נוסף.
- מושג RPC יכול להיות מיושם בדרכים שונות, וזה לא יכול להיות סטנדרטי.
- לא מציע גמישות כלשהי ב-RPC עבור ארכיטקטורת חומרה מכיוון שהיא מבוססת בעיקר על אינטראקציה.
- עלות התהליך גדלה בגלל קריאה להליך מרחוק.