Spec-Zone .ru
спецификации, руководства, описания, API
След: RMI
Краткий обзор Приложений RMI
Домашняя страница > RMI

Краткий обзор Приложений RMI

Приложения RMI часто включают две отдельных программы, сервер и клиент. Типичная программа сервера создает некоторые удаленные объекты, делает ссылки на эти доступные объекты, и ожидает клиентов, чтобы вызвать методы на эти объекты. Типичная клиентская программа получает удаленную ссылку на одного или более удаленные объекты на сервере и затем вызывает методы на них. RMI обеспечивает механизм, которым сервер и клиент передают и передают информацию назад и вперед. Такое приложение иногда упоминается как распределенное объектное приложение.

Распределенные объектные приложения должны сделать следующее:

Следующая иллюстрация изображает RMI распределенное приложение, которое использует реестр RMI, чтобы получить ссылку на удаленный объект. Сервер вызывает реестр, чтобы связать (или связать) имя с удаленным объектом. Клиент ищет удаленный объект его именем в реестре сервера и затем вызывает метод на это. Иллюстрация также показывает, что система RMI использует существующий веб-сервер, чтобы загрузить определения class, от сервера до клиента и от клиента к серверу, для объектов при необходимости.

система RMI, используя существующий веб-сервер, связывается от подачи до клиента и от клиента к серверу

Преимущества Динамической Загрузки Кода

Одна из центральных и уникальных функций RMI является своей возможностью загрузить определение class объекта, если class не определяется в виртуальной машине Java получателя. Все типы и поведение объекта, ранее доступного только в единственной виртуальной машине Java, могут быть переданы другому, возможно отдалить, виртуальная машина Java. Объекты передач RMI их фактическими классами, таким образом, поведение объектов не изменяется, когда они отправляются другой виртуальной машине Java. Эта возможность позволяет новым типам и поведениям быть введенными в удаленную виртуальную машину Java, таким образом динамически расширяя поведение приложения. Вычислить пример механизма в этом следе использует эту возможность представить новое поведение распределенной программе.

Удаленные Интерфейсы, Объекты, и Методы

Как любое другое приложение Java, распределенное приложение, созданное при использовании Java, RMI составляется из интерфейсов и классов. Интерфейсы объявляют методы. Классы реализуют методы, объявленные в интерфейсах и, возможно, объявляют дополнительные методы также. В распределенном приложении некоторые реализации могли бы находиться в некоторых виртуальных машинах Java, но не других. Объекты с методами, которые могут быть вызваны через виртуальные машины Java, вызывают удаленными объектами.

Объект становится удаленным, реализовывая удаленный интерфейс, у которого есть следующие характеристики:

RMI обрабатывает удаленный объект по-другому от неудаленного объекта, когда объект передают с одной виртуальной машины Java на другую виртуальную машину Java. Вместо того, чтобы делать копию объекта реализации в виртуальной машине Java получения, RMI передает удаленный тупик для удаленного объекта. Тупиковые действия как локальный представитель, или прокси, для удаленного объекта и в основном, клиенту, удаленной ссылке. Клиент вызывает метод на локальный тупик, который ответственен за выполнение вызова метода на удаленном объекте.

Тупик для удаленного объекта реализует тот же самый набор удаленных интерфейсов, которые реализует удаленный объект. Это свойство позволяет тупику быть брошенным к любому из интерфейсов, которые реализует удаленный объект. Однако, только те методы, определенные в удаленном интерфейсе, доступны, чтобы быть вызванными от виртуальной машины Java получения.

Создавание Распределенных Приложений при использовании RMI

Используя RMI, чтобы разработать распределенное приложение включает эти общие шаги:

  1. Разработка и реализация компонентов Вашего распределенного приложения.
  2. Компиляция источников.
  3. Создание доступной сети классов.
  4. Запуск приложения.

Разработка и Реализация Компонентов приложения

Во-первых, определите свою архитектуру приложения, включая которую компоненты являются локальными объектами и какие компоненты удаленно доступны. Этот шаг включает:

Компиляция Источников

Как с любой программой Java, Вы используете javac компилятор, чтобы скомпилировать исходные файлы. Исходные файлы содержат объявления удаленных интерфейсов, их реализаций, любых других классов сервера, и клиентских классов.


Отметьте: С версиями до Платформы Java, Standard Edition 5.0, дополнительный шаг был обязан создавать тупиковые классы, при использовании rmic компилятор. Однако, этот шаг больше не необходим.

Создание Доступной Сети Классов

В этом шаге Вы делаете определенную сеть определений class доступной, такую как определения для удаленных интерфейсов и их связанных типов, и определения для классов, которые должны быть загружены на клиенты или серверы. Определения классов обычно делаются сетью, доступной через веб-сервер.

Запуск Приложения

Запуск приложения включает выполнение реестра удаленного объекта RMI, сервера, и клиента.

Остальная часть этого раздела идет через шаги, используемые, чтобы создать вычислить механизм.

Создание Обобщения Вычисляет Механизм

Этот след сосредотачивается на простом, все же мощное, распределенное приложение, названное вычислить механизмом. Вычислить механизм является удаленным объектом на сервере, который берет задачи от клиентов, выполняет задачи, и возвращает любые результаты. Задачи выполняются на машине, куда сервер работает. Этот тип распределенного приложения может позволить многим клиентским машинам использовать особенно мощную машину или машину, которая специализировала аппаратные средства.

Новый аспект вычислить механизма - то, что задачи, которые он выполняет, не должны быть определены, когда вычислить механизм пишется или запускается. Новые виды задач могут быть созданы в любое время и затем даны вычислить механизму, который будет выполнен. Единственное требование задачи - то, что ее class реализует определенный интерфейс. Код должен был выполнить задачу, может быть загружен системой RMI на вычислить механизм. Затем, вычислить механизм выполняет задачу, используя ресурсы на машине, на которой работает вычислить механизм.

Возможность выполнить произвольные задачи включается динамическим характером платформы Java, которая расширяется на сеть RMI. RMI динамически загружает код задачи в виртуальную машину Java вычислить механизма и выполняет задачу без предварительных знаний class, который реализует задачу. Такое приложение, у которого есть возможность загрузить код динамически, часто вызывают основанным на поведении приложением. Такие приложения обычно требуют полных поддерживающих агент инфраструктур. С RMI такие приложения являются частью основных механизмов для распределенных вычислений на платформе Java.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Оглавление
Следующая страница: Запись Сервера RMI