Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lektsii_2014rusRKSZ.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
8 Мб
Скачать
☆

5.2 Организация связи с использованием удаленных объектов

Объектно-ориентированная технология в настоящее время широко приме- няется при разработке приложений, в том числе и распределенных.

Одним из наиболее важных свойств объекта является то, что он скрывает особенности ре- ализации, предоставляя для взаимодействия строго описанный интерфейс.

Это позволяет заменять или изменять объекты, оставляя интерфейс неизменным.

Развитие клиент-серверной архитектуры в начале 1990-х годов привело к формированию объектно-ориентированной концепции распределенных систем, ориентированной на инкапсуляцию механизма распределенных взаимодей- ствий и уменьшение сложности разработки распределенных приложений по- средством методов объектно-ориентированной разработки и удаленных вызовов методов объектов.

Основными достоинствами данного подхода стали:

простота разработки распределенных приложений по сравнению с класси- ческим клиент/серверным подходом;

возможность разработки приложений для гетерогенных вычислительных сред (обеспечивалась применением виртуальных машин, например, Java, и независимым описанием интерфейсов взаимодействующих компонентов);

возможность отделения интерфейса удаленного объекта от его непосред- ственной реализации. Удаленный объект представляет собой некоторые данные, совокупность которых определяет его состояние. Это состояние можно изменять путем вы- зова его методов.

Если возможен прямой доступ к данным удаленного объекта, это происходит посредством неявного удаленного вызова, необходимого для передачи значения поля данных объекта между процессами.

Методы и поля объекта, которые могут использоваться через удаленные вызовы, доступны че- рез некоторый внешний интерфейс класса объекта.

В момент, когда клиент начинает использовать удаленный объект, на сто- роне клиента создается клиентская заглушка, называемая посредником (англ. proxy).

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

Сериализация – это перевод состояния объекта в последовательность битов (чаще всего, бинарный или XML-файл), после чего его копия может быть передана в другой процесс.

Обратный процесс – десериализация – это восста- новление состояния объекта из принятой последовательности битов. Вызывающий процесс использует методы посредника, который сериализу- ет их параметры для передачи по сети, и передает их по сети серверу.

Промежуточная среда на стороне сервера десериализует параметры и передает их за- глушке на стороне сервера, которую называют каркасом (skeleton) или, как и в удаленном вызове процедур, заглушкой.

Каркас связывается с некоторым эк- земпляром удаленного объекта. Это может быть как вновь созданный, так и существующий экземпляр объекта, в зависимости от применяемой модели ис- пользования удаленных объектов, которые будут рассмотрены ниже.

При использовании удаленных объектов проблемными являются вопросы о времени их жизни:

в какой момент времени создается экземпляр удаленного объекта; в течение какого промежутка времени он существует. Для описания жизненного цикла в системах с удаленными объектами ис- пользуются два дополнительных понятия:

активация объекта: процесс перевода созданного объекта в состояние об- служивания удаленного вызова, то есть связывания его с каркасом и по- средником.

деактивация объекта: процесс перевода объекта в неиспользуемое состоя- ние.

Технология Java RMI (Remote Method Invocation – вызов удаленных мето- дов) позволяет обеспечить прозрачный доступ к методам удаленных объектов, обеспечивая доставку параметров вызываемого метода, сообщение объекту о необходимости выполнения метода и передачу возвращаемого значения клиен- ту обратно.

Распределенное приложение, разработанное на базе технологии Java RMI, состоит из двух отдельных программ: клиента и сервера.

Серверное приложе- ние создает удаленный объект, публикует ссылки на него и ожидает, когда кли- енты произведут вызов метода данного удаленного объекта.

Приложение- клиент получает с сервера ссылку на удаленный объект на сервере, после чего может вызывать его методы.

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

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

К недостаткам данного подхода можно отнести:

строгую ограниченность данной технологии платформой Java;

необходимость обработки соединений между распределенными компонен- тами приложения ограничивает масштабируемость используемого подхо- да.