Какво е отдалечено извикване на метод в Java?



Тази статия за RMI в Java ще ви разкаже как да внедрите интерфейс за отдалечено извикване на метод в клиент и сървър, заедно с практически пример.

Извикване на отдалечен метод е начин, по който програмистът използва и неговата среда за развитие от разстояние. Всичко за това как обекти на различни компютри си взаимодействат в разпределена мрежа. В тази статия за отдалечено извикване на метод в Java ще ви кажа как да създадете RMI приложение в клиент и сървър.

По-долу са разгледани темите в тази статия:





Да започваме!

Какво е RMI в Java?

The RMI (Remote Method Invocation) е API, който предоставя механизъм за създаване на разпределено приложение в . RMI позволява на обект да извиква методи за обект, изпълняван в друг . Извикването на отдалечен метод осигурява отдалечена комуникация между приложенията, използвайки два обекта мъниче и скелет .



Разбиране на Стъб и скелет

Обектът за заглушаване на клиентската машина изгражда информационен блок и изпраща тази информация на сървъра. Блокът се състои от:

  • Идентификатор на отдалечения обект, който ще се използва
  • Име на метод, който трябва да бъде извикан
  • Параметри на отдалечената JVM

Stub and Skeleton - RMI в Java - EdurekaОбект на скелета

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



  • Той извиква желания метод за реалния обект, присъстващ на сървъра.

  • Той препраща параметрите, получени от обекта на заглушителя, към метода.

С това нека преминем още и вижте как да създадете RMI приложение

Стъпки за създаване на RMI приложение

По-долу стъпките ви помагат да създадете RMI приложение:

  1. Дефиниране на дистанционно интерфейс
  2. Внедряване на отдалечения интерфейс
  3. Създаване на Stub and Skeleton обекти от класа на внедряване, използващ RMIC (RMI complier)
  4. Стартирайте регистъра RMI
  5. Създайте и изпълнете сървърната приложна програма
  6. Създайте и изпълнете клиентската програма за приложения

Сега нека да влезем в подробностите на тези стъпки.

Стъпка 1: Дефиниране на отдалечен интерфейс

Първото нещо, което трябва да направим, е да създадем интерфейс . Това ще предостави описание на методите, които могат да бъдат извикани от отдалечени клиенти. Този интерфейс трябва да разшири дистанционния интерфейс, а прототипът на метода в интерфейса трябва да хвърли RemoteException.

// Създаване на интерфейс за търсене импортиране java.rmi. * Публичен интерфейс Търсене разширява Remote {// Деклариране на прототипа на метода публичен String Query (String search) хвърля RemoteException}

Стъпка 2: Внедряване на отдалечен интерфейс

Следващата стъпка е да внедрите отдалечения интерфейс. За да се приложи отдалечения интерфейс, класът трябва да се разшири до Клас UnicastRemoteObject на пакета java.rmi . Също така, по подразбиране строител трябва да се създаде, за да се хвърли java.rmi.RemoteException от неговия родителски конструктор.

// Java програма за внедряване на интерфейса за търсене импортиране java.rmi. * Импортиране на java.rmi.server. * Публичен клас SearchQuery разширява UnicastRemoteObject реализира Search {// Конструктор по подразбиране за изхвърляне на RemoteException от своя родителски конструктор SearchQuery () хвърля RemoteException {супер )} // Внедряване на заявката за публичен интерфейс на заявка String (търсене на низове) хвърля RemoteException {Резултат от низа, ако (search.equals ('Отражение в Java')) result = 'true' else result = 'false' return result}}

Стъпка 3: Създаване на обекти Stub и Skeleton от класа на изпълнение с помощта на rmic

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

как да сортирам масив c ++

СТЪПКА 4: Стартирайте RMIregistry
Трябва да стартирате услугата на системния регистър, като издадете командата в командния ред за стартиране на RMIregistry

СТЪПКА 5: Създайте и изпълнете сървърната приложна програма
Следващата стъпка е да създадете приложната програма на сървъра и да я изпълните в отделен команден ред.

  • Сървърната програма използва createRegistry метод на клас LocateRegistry за създаване на rmiregistry в JVM на сървъра с номер на порт, предаден като аргумент.

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

// програма за импортиране на сървърно приложение java.rmi. * импортиране на java.rmi.registry. * публичен клас SearchServer {публична статична невалидна основна (String args []) {try {// Създаване на обект от класа за реализация на интерфейса Търсене obj = new 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: Създайте и изпълнете програмата за клиентско приложение
Последната стъпка е да създадете програмата за клиентско приложение и да я изпълните в отделен команден ред. Методът за търсене на клас Naming се използва, за да се получи препратката към обекта Stub

Горната програма за клиент и сървър се изпълнява на една и съща машина и затова се използва localhost. За да осъществите достъп до отдалечения обект от друга машина, localhost трябва да бъде заменен с IP адреса, където се намира отдалеченият обект.

Така че това ни води до края на RMI през статия. Надявам се, че сте го намерили информативен и сте ви помогнали да разберете Основите.

Вижте от Edureka, доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят. Ние сме тук, за да ви помогнем във всяка стъпка по вашето пътуване, за да станете освен тези въпроси за интервю за Java, ние измислим учебна програма, предназначена за студенти и професионалисти, които искат да бъдат Java Разработчик. Курсът е създаден, за да ви даде начален старт в програмирането на Java и да ви обучи както за основни, така и за разширени Java концепции, заедно с различни Java рамки като Hibernate & Spring.

Имате въпрос към нас? Моля, споменете го в раздела за коментари на тази статия „RMI в Java“ и ние ще се свържем с вас възможно най-скоро.