מהי קריאה לשיטה מרחוק בג'אווה?



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

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

הנושאים הבאים מכוסים במאמר זה:





בואו נתחיל!

מה זה RMI בג'אווה?

ה RMI (Remote Method Invocation) הוא ממשק API המספק מנגנון ליצירת יישום מבוזר . ה- RMI מאפשר לאובייקט להפעיל שיטות על אובייקט שרץ באחר . הפעלת השיטה מרחוק מספקת תקשורת מרחוק בין היישומים באמצעות שני אובייקטים בָּדָל ו שֶׁלֶד .



הבנת בדל ושלד

אובייקט ה- stub במחשב הלקוח בונה חסימת מידע ושולח מידע זה לשרת. הבלוק מורכב מ:

  • מזהה של האובייקט המרוחק שישמש
  • שם השיטה שיש להפעיל
  • פרמטרים ל- JVM המרוחק

סלע ושלד - RMI בגחפץ שלד

אובייקט השלד מעביר את הבקשה מאובייקט הדל לאובייקט המרוחק. הוא מבצע את המשימות הבאות:



בעזרת זה, בואו להתקדם ולראות כיצד ליצור יישום RMI

שלבים ליצירת יישום RMI

הצעדים הבאים עוזרים לך ליצור יישום RMI:

  1. הגדרת שלט מִמְשָׁק
  2. הטמעת הממשק המרוחק
  3. יצירת גבעול ושלד חפצים ממעמד ההטמעה באמצעות RMIC (תואם RMI)
  4. הפעל את רישום ה- RMI
  5. צור והפעל את תוכנית יישומי השרת
  6. צור והפעל את תוכנית יישום הלקוח

עכשיו, בואו ניכנס לפרטי השלבים האלה.

שלב 1: הגדרת ממשק מרוחק

הדבר הראשון שעלינו לעשות הוא ליצור מִמְשָׁק . זה יספק תיאור של השיטות שניתן להפעיל על ידי לקוחות מרוחקים. ממשק זה אמור להרחיב את הממשק המרוחק ואב טיפוס השיטה בתוך הממשק אמור לזרוק את ה- RemoteException.

// יצירת ממשק חיפוש ייבוא ​​java.rmi. * ממשק ציבורי חיפוש מרחיב מרחוק {// הכרזה על שיטת אב-טיפוס ציבורית שאילתת מחרוזות (חיפוש מחרוזות) זורקת RemoteException}

שלב 2: יישום ממשק מרוחק

השלב הבא הוא הטמעת הממשק המרוחק. על מנת ליישם את הממשק המרוחק, המחלקה צריכה להתרחב אל ה- UnicastRemoteObject מחלקה של java.rmi . כמו כן, ברירת מחדל בּוֹנֶה צריך ליצור כדי לזרוק את java.rmi.RemoteException מהקונסטרוקטור ההורי שלה.

// תוכנית Java ליישום ממשק החיפוש ייבוא ​​java.rmi. * ייבוא ​​java.rmi.server. * מחלקה ציבורית SearchQuery מרחיב את UnicastRemoteObject מיישם את החיפוש {// בונה ברירת המחדל לזרוק את RemoteException מבונה האב שלו SearchQuery () זורק את RemoteException {super ( )} // יישום ממשק השאילתה ציבורי שאילתת מחרוזות (חיפוש מחרוזת) זורקת RemoteException {מחרוזת תוצאה אם ​​(search.equals ('השתקפות ב- Java')) תוצאה = 'נכון' אחר תוצאה = 'שקר' תוצאת החזרה}}

שלב 3: יצירת אובייקטים של שלד ושלד ממחלקת ההטמעה באמצעות rmic

הכלי RMIC משמש להפעלת מהדר ה- RMI היוצר את אובייקטים Stub ו- Skeleton. האב-טיפוס שלו הוא שם כיתת RMIC.

שלב 4: התחל את ה- RMIregistry
עליך להפעיל את שירות הרישום על ידי הנפקת הפקודה בשורת הפקודה, הפעל את RMIregistry

שלב 5: צור והפעל את תוכנית יישומי השרת
השלב הבא הוא ליצור את תוכנית יישומי השרת ולבצע אותה בשורת פקודה נפרדת.

כיצד להגדיר מסלול Java בחלונות - -
  • תוכנית השרת משתמשת ב- createRegistry שיטה של ​​מחלקת LocateRegistry ליצירת רמגיסטיקה בתוך JVM השרת עם מספר היציאה שהועבר כארגומנט.

  • שיטת ה- rebind של Naming class משמשת לקישור האובייקט המרוחק לשם החדש.

// תוכנית לייבוא ​​שרת ייבוא ​​java.rmi. * ייבוא ​​java.rmi.registry. * מחלקה ציבורית SearchServer {ציבורי ריק ריק סטטי (מחרוזת טוענת []) {נסה {// צור אובייקט של מחלקת הטמעת הממשק בכיתה חיפוש obj = חיפוש חדש () // rmiregistry בתוך השרת JVM עם // יציאת 1900 LocateRegistry.createRegistry (1900) & ltp style = 'text-align: justify' & gt // קושר את האובייקט המרוחק בשם // edureka Naming.rebind ( 'rmi: // localhost: 1900' + '/ edureka', obj)} לתפוס (Exception ae) {System.out.println (ae)}}}

שלב 6: צור והפעל את תוכנית יישום הלקוח
השלב האחרון הוא ליצור את תוכנית יישום הלקוח ולבצע אותה בשורת פקודה נפרדת. שיטת החיפוש של מחלקת Naming משמשת לקבלת התייחסות לאובייקט Stub

תוכנית הלקוח והשרת לעיל מבוצעת על אותה מכונה ולכן משתמשים ב- localhost. על מנת לגשת לאובייקט המרוחק ממכונה אחרת, יש להחליף את localhost בכתובת ה- IP שבה נמצא האובייקט המרוחק.

אז זה מביא אותנו לסוף ה- RMI ב מאמר. אני מקווה שמצאת את זה אינפורמטיבי ועזרת לך להבין את היסודות.

בדוק את מאת אדוריקה, חברת למידה מקוונת מהימנה עם רשת של יותר מ -250,000 לומדים מרוצים הפזורים ברחבי העולם. אנו כאן כדי לעזור לך בכל שלב בדרכך, ולהיות מלבד שאלות ראיונות אלה ב- Java, אנו מגישים תוכנית לימודים המיועדת לסטודנטים ואנשי מקצוע שרוצים להיות ג'אווה מפתח. הקורס נועד לתת לך יתרון בתכנות ג'אווה ולהכשיר אותך למושגי ג'אווה מרכזיים ומתקדמים יחד עם מסגרות ג'אווה שונות כמו Hibernate & Spring.

יש לך שאלה עבורנו? אנא הזכיר זאת במדור ההערות במאמר זה 'RMI ב- Java' ונחזור אליך בהקדם האפשרי.