Характеристика
| Локальный объект
| Удаленный объект
|
Определение объекта
| Класс Java
| Интерфейс
|
Реализация объекта
| Класс Java
| Класс Java, который реализует удаленный интерфейс
|
Создание объекта
| Локальный вызов new
| На хосте (new)
|
Доступ
| Переменная-ссылка
| Переменная-ссылка, указывающая на реализацию стаба, замещающего удаленный интерфейс
|
Ссылки на объект
| Указывает на его расположение в памяти
| Указатель на стаб в локальной памяти
|
Активная ссылка
| Пока есть хотя бы 1 ссылка на объект (в одной JVM)
| Если к объекту производился доступ в течении определенного времени
|
Финализация объектов
| Перед утилизацией сборщиком мусора
| При удалении всех удаленных ссылок
|
Сборка мусора
| При удалении всех локальных ссылок
| При удалении всех удаленных ссылок и нет локальных
|
Архитектура RMI основана на разделении определения и реализации поведения.
Архитектура RMI включает несколько уровней.
Удаленные ссылки (скелеты)
|
Удаленные ссылки (скелеты)
|
Уровень заглушек (скелет) перехватывает вызовы методов при помощи переменной ссылки на интерфейс и переадресует их в удаленную службу RMI.
Уровень удаленных ссылок интерпретирует и управляет ссылками на удаленные объекты служб.
Транспортный уровень: все соединения, даже между JVM (Java Virtual Machine), на одном компьютере сочетаются через стек TCP/IP.
На вершине стека используется протокол JRMP (Java Remote Method Protocol). Модификация – RMI –IIOP.
Для именования объектов используется служба имен реестра RMI. На хосте программа сервера создает удаленную службу и локальный объект, ее реализующий. Этот объект экспортируется в RMI и сервер регистрирует объект в реестре, используя общедоступное имя. RMI создает службу прослушивания, ожидающую запросы от клиента.