RMI использует стандартный механизм (используемый в системах RPC) для того, чтобы связаться с удаленными объектами: тупики и скелеты. Тупик для удаленного объекта действует как локальный представитель клиента или прокси для удаленного объекта. Вызывающая сторона вызывает метод на локальный тупик, который ответственен за выполнение вызова метода на удаленном объекте. В RMI тупик для удаленного объекта реализует тот же самый набор удаленных интерфейсов, которые реализует удаленный объект.
Когда метод тупика вызывается, он делает следующее:
инициирует соединение с удаленной JVM, содержащей удаленный объект,
упорядочивает (записи и передачи) параметры к удаленной JVM,
ожидает результата вызова метода,
неупорядочивает (читает) возвращаемое значение или исключение, возвращенное, и
возвращает значение вызывающей стороне.
Тупик скрывает сериализацию параметров и передачи на сетевом уровне, чтобы представить простой механизм вызова вызывающей стороне.
В удаленной JVM у каждого удаленного объекта может быть соответствующий скелет (в Java 2 среды только для платформы, скелеты не требуются). Скелет ответственен за диспетчеризацию звонка в фактическую реализацию удаленного объекта. Когда скелет получает входящий вызов метода, он делает следующее:
неупорядочивает (читает) параметры для удаленного метода,
вызывает метод на фактическую реализацию удаленного объекта, и
упорядочивает (записи и передачи) результат (возвращаемое значение или исключение) к вызывающей стороне.
В Java 2 SDK, Standard Edition, v1.2 дополнительный тупиковый протокол были представлены, который избавляет от необходимости скелеты в Java 2 среды только для платформы. Вместо этого универсальный код используется, чтобы выполнить режимы работы, выполняемые скелетами в JDK1.1. Тупики и скелеты сгенерированы rmic компилятор.
СОДЕРЖАНИЕ | ПРЕДЫДУЩИЙ | NEXT Copyright 1997, 2010, Oracle и/или его филиалы. Все права защищены.