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

RPC לעומת RMI

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

-> ->

מהו RPC?

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

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

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

-> ->

מהו RMI?

RMI, המייצג את Remote Invocation, הוא ממשק API (Application Programming Interface) המיישם את RPC בג'אווה כדי לתמוך בטבע מונחה עצמים. זה מאפשר קריאה של שיטות ג 'אווה על מחשב אחר Java Virtual המתגוררים באותו מחשב או אחד מרוחק. המגבלה של RMI היא שרק ג 'אווה שיטות ניתן להפעיל, אבל זה מגיע עם היתרון כי אובייקטים ניתן להעביר כמו ארגומנטים וערכים לחזור. כאשר הביצועים נחשב RMI הוא איטי יותר מאשר RPC עקב מעורבות של bytecode על מכונת Java Virtual, אבל RMI הוא מאוד מתכנת ידידותי, וזה מאוד קל לשימוש.

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

מה ההבדל בין RPC ו- RMI?

RPC הוא נייטרלי בשפה בעוד ש- RMI מוגבל ל- Java.

RPC הוא פרוצדורלי כמו ב- C, אבל RMI הוא מונחה עצמים.

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

RMI קל לתכנת את RPC.

RMI הוא איטי יותר מאשר RPC מאז RMI כרוך בביצוע של jtava bytecode.

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

סיכום:

RPC לעומת RMI

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

תמונות באדיבות:

  1. סינכרוני לעומת RPC אסינכרוני על ידי CAPS entreprise (CC BY-SA 3. 0)