ההבדל בין RPC ל- RMI

מְחַבֵּר: Laura McKinney
תאריך הבריאה: 1 אַפּרִיל 2021
תאריך עדכון: 13 מאי 2024
Anonim
פקודות DOS על מחשב מרוחק - WinRM
וִידֵאוֹ: פקודות DOS על מחשב מרוחק - WinRM

תוֹכֶן


RPC ו- RMI הם המנגנונים המאפשרים ללקוח להפעיל את הנוהל או השיטה מהשרת דרך יצירת קשר בין לקוח לשרת. ההבדל השכיח בין RPC ל- RMI הוא ש- RPC תומך רק תכנות פרוצדורלית ואילו RMI תומך תכנות מונחה עצמים.

הבדל עיקרי נוסף בין השניים הוא שהפרמטרים שהועברו לשיחת נהלים מרוחקים מורכבים מהם מבני נתונים רגילים. מצד שני, הפרמטרים שהועברו לשיטה מרוחקת מורכבים חפצים.

  1. טבלת השוואה
  2. הגדרה
  3. הבדלים עיקריים
  4. סיכום

טבלת השוואה

בסיס להשוואהRPCRMI
תומךתכנות פרוצדורלית
תכנות מונחה עצמים
פרמטריםמבני נתונים רגילים מועברים להליכים מרוחקים.אובייקטים מועברים לשיטות מרוחקות.
יעילותנמוך מ- RMIיותר מ- RPC ונתמך על ידי גישה תכנותית מודרנית (כלומר פרדיגמות מוכוונות עצמים)
תקורהיותר
פחות יחסית
פרמטרים חיצוניים הם חובה.כןלא בהכרח
מתן קלות תכנות
גבוה
נמוך


הגדרת RPC

שיחת נוהל מרחוק (RPC) היא תכונת שפת תכנות המיועדת למחשוב המבוזר ומבוססת על סמנטיקה של הליך מקומי שיחות. זוהי הצורות הנפוצות ביותר של שירות מרחוק ותוכננה כדרך להפשט את מנגנון שיחת הנוהל לשימוש בין מערכות המחוברות דרך רשת. זה דומה למנגנון IPC בו מערכת ההפעלה מאפשרת לתהליכים לנהל נתונים משותפים ולהתמודד עם סביבה בה תהליכים שונים מבוצעים במערכות נפרדות ובהכרח דורשות תקשורת מבוססת.

בואו נבין כיצד מיושם RPC באמצעות השלבים הנתונים:

  • תהליך הלקוח קורא לדאב הלקוח באמצעות פרמטרים, וביצועו מושעה עד לסיום השיחה.
  • הפרמטרים מתורגמים לאחר מכן לצורה עצמאית מכונה על ידי קביעת קבצים באמצעות זימון לקוחות. ואז מוכנים המכילים ייצוג של הפרמטרים.
  • כדי למצוא את זהות האתר הדקרת לקוח מתקשרת עם שרת השם בו קיים הליך מרוחק.
  • בעזרת פרוטוקול חסימת הלקוח עוקב את האתר אליו קיימת שיחת הליך מרחוק. שלב זה עוצר את הדק של הלקוח עד שהוא מקבל תשובה.


  • אתר השרת מקבל את השליחה מצד הלקוח וממיר אותו לפורמט ספציפי למכונה.
  • כעת מבצעת שרת שרת שיחה על הליך השרת יחד עם הפרמטרים, וסטאב השרתים מופסק עד שההליך יושלם.
  • הליך השרת מחזיר את התוצאות שנוצרו לדחף השרת, והתוצאות עוברות המרה לתבנית עצמאית מכונה בסטאב השרת וליצור תוסף המכיל את התוצאות.
  • התוצאה נשלחת לדחוף הלקוח שמומר בחזרה לפורמט ספציפי למכונה המתאים לדחף הלקוח.
  • בלקוח אחרון, stub מחזיר את התוצאות לתהליך הלקוח.

הגדרת RMI

הפעלת שיטה מרחוק (RMI) דומה ל- RPC אך הוא ספציפי לשפה ותכונה של ג'אווה. חוט מותר לקרוא לשיטה על אובייקט מרוחק. כדי לשמור על שקיפות מצד הלקוח והשרת, הוא מיישם אובייקט מרוחק באמצעות דודים ושלדים. הזקן נמצא אצל הלקוח ועבור האובייקט המרוחק הוא מתנהג כפרוקסי.

כאשר לקוח מתקשר לשיטה מרוחקת, נקרא הזקן לשיטה המרוחקת. האחריות היא על יצירת החדרת החבילה המכילה שם של שיטה ופרמטרים שהוגדרו, והשלד אחראי על קבלת החבילה.

השלד מבטל פרמטרים ומפעיל את השיטה הרצויה בשרת. השלד מבשר את הערך הנתון (או החריגים) עם החבילה ומעביר אותו לדלי הלקוח. הזרקוב מרכיב מחדש את חבילות ההחזרה ומעביר אותו ללקוח.

ב- Java הפרמטרים מועברים לשיטות ומוחזרים בצורה הפניה. זה עלול להיות בעייתי עבור שירות RMI מאחר שלא כל האובייקטים הם אולי שיטות מרוחקות. לכן, עליו לקבוע אילו ניתן לעבור כהפניה ומי לא יכול.

Java משתמשת בתהליך בשם הסדרה שם מועברים האובייקטים כערך. האובייקט המרוחק מקומי לפי ערך אחר. זה יכול גם להעביר אובייקט על ידי הפניה דרך העברת הפניה מרחוק לאובייקט יחד עם כתובת האתר של מחלקת הזיפים. העבר על ידי הפניה מגביל את הזבל עבור האובייקט המרוחק.

  1. RPC תומך בפרדיגמות תכנות פרוצדוראליות ולכן הוא מבוסס על C, ואילו RMI תומך בפרדיגמות תכנות מונחות עצמים ומבוססות על ג'אווה.
  2. הפרמטרים המועברים להליכים מרוחקים ב- RPC הם מבני הנתונים הרגילים. נהפוך הוא, RMI מעביר אובייקטים כפרמטר לשיטה המרוחקת.
  3. RPC יכול להיחשב כגרסה הישנה יותר של RMI, והוא משמש בשפות התכנות התומכות בתכנות פרוצדורלית, והוא יכול להשתמש רק בשיטת מעבר לפי ערך. לעומת זאת, מתקן RMI מיועד על בסיס גישת תכנות מודרנית, שעשויה להשתמש בביצוע ערך או הפניה. יתרון נוסף של RMI הוא שניתן לשנות את הפרמטרים שהועברו בהפניה.
  4. פרוטוקול RPC מייצר יותר תקורות מאשר RMI.
  5. הפרמטרים שהועברו ב- RPC חייבים להיות "בפנים בחוץ"מה שאומר שהערך המועבר לפרוצדורה וערך הפלט צריכים להיות בעלי אותם נתונים. לעומת זאת, אין כפיה לעבור "בפנים בחוץפרמטרים ב- RMI.
  6. ב- RPC לא יכול להיות שההפניות יתכן כיוון שלשני התהליכים יש מרחב הכתובות המובהק, אך זה אפשרי במקרה של RMI.

סיכום

גם RPC וגם RMI משמשים לאותה מטרה אך משמשים בשפות התומכות בפרדיגמות תכנות שונות, ולכן יש להן תכונות מובחנות.