Что такое удаленный вызов метода в Java?



Эта статья о RMI в Java расскажет вам, как реализовать интерфейс вызова удаленных методов на клиенте и сервере, а также на практическом примере.

Вызов удаленного метода это способ, которым программист использует и его среда разработки удаленно. Все дело в том, как объекты на разных компьютерах взаимодействуют в распределенной сети. В этой статье об удаленном вызове методов в Java я расскажу вам, как создать приложение RMI для клиента и сервера.

в силу в Java

В этой статье рассматриваются следующие темы:





Давайте начнем!

Что такое RMI в Java?

В RMI (Remote Method Invocation) - это API, который предоставляет механизм для создания распределенного приложения в . RMI позволяет объекту вызывать методы для объекта, запущенного в другом . Вызов удаленного метода обеспечивает удаленную связь между приложениями с помощью двух объектов. заглушка и скелет .



Понимание заглушки и скелета

Объект-заглушка на клиентском компьютере создает информационный блок и отправляет эту информацию на сервер. Блок состоит из:

  • Идентификатор удаленного объекта, который будет использоваться
  • Имя метода, который необходимо вызвать
  • Параметры удаленной JVM

Заглушка и скелет - RMI на Java - EdurekaСкелетный объект

Скелетный объект передает запрос от объекта-заглушки удаленному объекту. Он выполняет следующие задачи:



  • Он вызывает нужный метод для реального объекта, присутствующего на сервере.

  • Он перенаправляет параметры, полученные от объекта-заглушки, в метод.

На этом давайте пойдем дальше и посмотрим, как создать приложение RMI.

Шаги по созданию приложения RMI

Следующие шаги помогут вам создать приложение RMI:

  1. Определение удаленного интерфейс
  2. Реализация удаленного интерфейса
  3. Создание заглушки и скелета объекты из класса реализации с использованием RMIC (компилятор RMI)
  4. Запустите реестр RMI
  5. Создание и выполнение серверной прикладной программы
  6. Создать и запустить клиентское приложение

Теперь давайте подробно рассмотрим эти шаги.

функция Фибоначчи c ++

Шаг 1. Определение удаленного интерфейса

Первое, что нам нужно сделать, это создать интерфейс . Это предоставит описание методов, которые могут быть вызваны удаленными клиентами. Этот интерфейс должен расширять удаленный интерфейс, а прототип метода в интерфейсе должен генерировать исключение RemoteException.

// Создание интерфейса поиска import java.rmi. * Public interface Search extends Remote {// Объявление прототипа метода public String Query (поиск строки) вызывает RemoteException}

Шаг 2: Внедрение удаленного интерфейса

Следующим шагом будет реализация удаленного интерфейса. Чтобы реализовать удаленный интерфейс, класс должен расширяться до UnicastRemoteObject класс пакета java.rmi . Также по умолчанию строитель необходимо создать, чтобы бросить java.rmi.RemoteException из родительского конструктора.

// Программа Java для реализации интерфейса поиска import java.rmi. * Import java.rmi.server. * Открытый класс SearchQuery extends UnicastRemoteObject реализует Search {// Конструктор по умолчанию для выдачи исключения RemoteException из родительского конструктора SearchQuery () выдает RemoteException {super ( )} // Реализация интерфейса запроса public String query (String search) выдает RemoteException {String result if (search.equals ('Reflection in Java')) result = 'true' else result = 'false' return result}}

Шаг 3. Создание объектов Stub и Skeleton из класса реализации с помощью rmic

Инструмент RMIC используется для вызова компилятора RMI, который создает объекты Stub и Skeleton. Его прототип - имя класса RMIC.

ШАГ 4: Запустите RMIregistry
Вам необходимо запустить службу реестра, введя в командной строке команду start RMIregistry

ШАГ 5: Создайте и запустите серверную прикладную программу
Следующим шагом является создание серверной прикладной программы и выполнение ее в отдельной командной строке.

Java-сканер получить следующий символ
  • Серверная программа использует createRegistry метод класса LocateRegistry для создания rmiregistry в серверной JVM с номером порта, переданным в качестве аргумента.

  • Метод rebind класса Naming используется для привязки удаленного объекта к новому имени.

// программа для серверного приложения import java.rmi. * import java.rmi.registry. * public class SearchServer {public static void main (String args []) {try {// Создаем объект класса реализации интерфейса Search obj = new SearchQuery () // rmiregistry внутри JVM сервера с // номером порта 1900 LocateRegistry.createRegistry (1900) & ltp style = 'text-align: justify' & gt // Привязывает удаленный объект по имени // edureka Naming.rebind ( 'rmi: // localhost: 1900' + '/ edureka', obj)} catch (Exception ae) {System.out.println (ae)}}}

Шаг 6. Создайте и запустите клиентское приложение.
Последний шаг - создать программу клиентского приложения и запустить ее в отдельной командной строке. Метод поиска класса Naming используется для получения ссылки на объект Stub.

Вышеупомянутые клиентская и серверная программа выполняется на одном компьютере, и поэтому используется localhost. Чтобы получить доступ к удаленному объекту с другой машины, localhost необходимо заменить на IP-адрес, на котором находится удаленный объект.

Итак, это подводит нас к концу RMI в статья. Я надеюсь, что вы нашли его информативным и помогли вам понять основы.

Проверьте от Edureka, надежной компании по онлайн-обучению с сетью из более чем 250 000 довольных учащихся по всему миру. Мы здесь, чтобы помочь вам на каждом этапе вашего пути, чтобы стать помимо этого java-интервью, мы предлагаем учебную программу, предназначенную для студентов и профессионалов, которые хотят быть Ява Разработчик. Курс разработан, чтобы дать вам хорошее начало в программировании на Java и обучить вас как основным, так и продвинутым концепциям Java, а также различным средам Java, таким как Hibernate и Spring.

Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев к статье «RMI в Java». и мы свяжемся с вами как можно скорее.