ما هو استدعاء الطريقة عن بعد في جافا؟



ستخبرك هذه المقالة حول RMI في Java بكيفية تنفيذ واجهة استدعاء الطريقة البعيدة عبر العميل والخادم مع مثال عملي.

دعاء الأسلوب البعيد هي طريقة يستخدمها المبرمج وبيئة تطويرها عن بعد. كل شيء عن كيف شاء على أجهزة كمبيوتر مختلفة تتفاعل في شبكة موزعة. في هذه المقالة حول استدعاء الأسلوب البعيد في Java ، سأخبرك بكيفية إنشاء تطبيق RMI عبر العميل والخادم.

يتم تناول الموضوعات أدناه في هذه المقالة:





هيا بنا نبدأ!

ما هو RMI في Java؟

ال جمهورية جزر مارشال (Remote Method Invitation) هي واجهة برمجة تطبيقات توفر آلية لإنشاء تطبيق موزع بتنسيق . يسمح RMI للكائن باستدعاء طرق على كائن يعمل في كائن آخر . يوفر استدعاء الأسلوب البعيد الاتصال عن بعد بين التطبيقات باستخدام كائنين كعب و هيكل عظمي .



فهم كعب والهيكل العظمي

يقوم كائن كعب الروتين على جهاز العميل بإنشاء كتلة معلومات وإرسال هذه المعلومات إلى الخادم. تتكون الكتلة من:

  • معرّف الكائن البعيد الذي سيتم استخدامه
  • اسم الأسلوب الذي سيتم استدعاؤه
  • معلمات JVM البعيد

Stub and Skeleton - RMI في Java - Edurekaكائن الهيكل العظمي

يقوم كائن الهيكل بتمرير الطلب من كائن كعب الروتين إلى الكائن البعيد. يقوم بالمهام التالية:



  • يستدعي الطريقة المطلوبة على الكائن الحقيقي الموجود على الخادم.

  • يقوم بإعادة توجيه المعلمات المستلمة من كائن كعب الروتين إلى الطريقة.

باستخدام هذا ، دعنا نتحرك أكثر ونرى كيفية إنشاء تطبيق RMI

تجاوز مقابل التحميل الزائد c ++

خطوات إنشاء تطبيق 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. * import java.rmi.server. * يمدد SearchQuery فئة عامة تطبيق UnicastRemoteObject Search {// المُنشئ الافتراضي لرمي RemoteException من المُنشئ الأصل SearchQuery () يطرح RemoteException {super ( )} // تنفيذ استعلام السلسلة العام لواجهة الاستعلام (بحث سلسلة) يطرح RemoteException {String result if (search.equals ('Reflection in Java')) نتيجة = 'true' else result = 'false' return result}}

الخطوة 3: إنشاء كائنات Stub و Skeleton من فئة التنفيذ باستخدام rmic

تُستخدم أداة RMIC لاستدعاء برنامج التحويل البرمجي RMI الذي يقوم بإنشاء كائنات Stub و Skeleton. نموذجها الأولي هو اسم فئة RMIC.

الخطوة 4: ابدأ تسجيل RMI
تحتاج إلى بدء خدمة التسجيل عن طريق إصدار الأمر في موجه الأوامر ، ابدأ تسجيل RMI

الخطوة 5: إنشاء برنامج تطبيق الخادم وتنفيذه
تتمثل الخطوة التالية في إنشاء برنامج تطبيق الخادم وتنفيذه في موجه أوامر منفصل.

  • يستخدم برنامج الخادم الامتداد إنشاء السجل طريقة فئة LocateRegistry لإنشاء rmiregistry داخل خادم JVM مع تمرير رقم المنفذ كوسيطة.

  • يتم استخدام طريقة rebind لفئة التسمية لربط الكائن البعيد بالاسم الجديد.

// برنامج لتطبيق الخادم import java.rmi. * import java.rmi.registry. * public class SearchServer {public static void main (String args []) {try {// Create an object of the interface application class Search obj = جديد SearchQuery () // rmiregistry داخل الخادم JVM مع // رقم المنفذ 1900 LocateRegistry.createRegistry (1900) & ltp style = 'text-align: justify' & gt // يربط الكائن البعيد بالاسم // edureka Naming.rebind ( 'rmi: // localhost: 1900' + '/ edureka'، obj)} catch (استثناء ae) {System.out.println (ae)}}}

الخطوة 6: إنشاء برنامج تطبيق العميل وتنفيذه
الخطوة الأخيرة هي إنشاء برنامج Client Application وتنفيذه في موجه أوامر منفصل. يتم استخدام طريقة البحث لفئة التسمية للحصول على مرجع كائن Stub

يتم تنفيذ برنامج العميل والخادم أعلاه على نفس الجهاز وهذا هو سبب استخدام المضيف المحلي. من أجل الوصول إلى الكائن البعيد من جهاز آخر ، يجب استبدال المضيف المحلي بعنوان IP حيث يوجد الكائن البعيد.

هذا يقودنا إلى نهاية RMI في مقالة - سلعة. أتمنى أن تكون قد وجدتها مفيدة وساعدتك في فهم الأساسيات.

تفحص ال من Edureka ، شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250.000 متعلم راضٍ منتشرين في جميع أنحاء العالم نحن هنا لمساعدتك في كل خطوة في رحلتك ، لكي تصبح بجانب أسئلة المقابلة في جافا هذه ، توصلنا إلى منهج مصمم للطلاب والمهنيين الذين يريدون أن يكونوا جافا مطور. تم تصميم الدورة التدريبية لمنحك السبق في برمجة Java وتدريبك على مفاهيم Java الأساسية والمتقدمة جنبًا إلى جنب مع العديد من أطر Java مثل Hibernate & Spring.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات بمقال 'RMI in Java' وسنعاود الاتصال بك في أقرب وقت ممكن.