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