Введение в RMI - удаленный вызов метода
RMI (Remote Method Invocation) - это API-интерфейс Java для управления удаленными объектами (например, объектом, созданным на другой виртуальной машине, возможно, на другой машине в сети) прозрачным способом, то есть так же, как если бы объект был находится в виртуальной машине (JVM) локальной машины.
Таким образом, сервер позволяет клиенту удаленно вызывать методы экземпляра объекта. Необходимы две виртуальные машины (одна для сервера, другая для клиента), и все взаимодействие осуществляется на Java .
RMI - это решение на основе Java, в отличие от стандартного CORBA от OMG (Object Management Group) для управления удаленными объектами любым языком. Corba гораздо сложнее в реализации, поэтому многие разработчики часто обращаются к RMI.
Структура уровня RMI
Соединения и передачи данных выполняются RMI в Java через TCP / IP с использованием собственного протокола (JRMP, Java Remote Method Protocol) на порту 1099.
Начиная с Java 2 версии 1.3, связь между клиентом и сервером осуществляется через RMI-IIOP (межорбитальный протокол Internet), протокол, стандартизированный OMG (Object Management Group) и используемый в CORBA.
Передача данных осуществляется через систему уровней, основанную на модели OSI, чтобы обеспечить взаимодействие между программами и версиями Java.
- Заглушка и скелет, соответственно расположенные на клиенте и сервере, обеспечивают преобразование связи, выполненной с удаленным объектом.
- Эталонный уровень ( RRL, удаленный эталонный уровень ) содержит систему локализации, чтобы предоставить объектам возможность получить ссылку на удаленный объект (используя пакет java.rmi.Naming ). Он обычно известен как реестр RMI, поскольку он ссылается на объекты.
- Транспортный уровень может прослушивать входящие вызовы и устанавливать соединения и передачу данных по сети через TCP ( пакеты java.net.Socket и java.net.SocketServer ).
Таким образом, клиент-серверное приложение на основе RMI реализовано в виде трех компонентов:
- Клиентское приложение, которое реализует заглушку.
- Сервер приложений, который реализует скелет.
- Посредник (реестр RMI).
Оригинальный документ опубликован на CommentcaMarche.net.