Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СИТ - 18 вопросов.docx
Скачиваний:
8
Добавлен:
08.11.2019
Размер:
103.77 Кб
Скачать

21. Разработка rmi-приложений. Примеры. Соглашения о передаче данных.

Определим удаленный интерфейс:Он расширяет java.rmi.Remote и объявляет набор удаленных методов. Каждый удаленный метод должен выбрасывать java.rmi.RemoteException (или его суперкласс).

Реализуем сервер. Класс сервера в данном контексте – это класс, который имеет метод main(), который создает экземпляр реализации удаленного объекта, экспортирует удаленный объект, а затем привязывает этот экземпляр имени в Java RMI регистраторе. Далее создаем и экспортируем удаленный объект. Регистрируем удаленный объект в RMI-регистраторе под именем.

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

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

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

Статический метод LocateRegistry.getRegistry(), который не принимает никаких аргументов, возвращает стаб, который реализует удаленный интерфейс java.rmi.registry.Registry и отправляет вызовы на регистратор на хост сервера по порту по умолчанию 1099. При этом регистратор должен быть запущен. Метод bind() затем вызывает стаб регистратора для связи стаба удаленного объекта с именем «Hello» в регистраторе.

Реализация клиента.Клиентская программа получает стаб для регистратора на серверной машине, ищет стаб удаленного объекта по имени в регистраторе, затем вызывает метод sayHello() на удаленном объекте, используя этот стаб.Получаем стаб регистратора с хоста, определенного в кома ндной строке и

получаем стаб удаленного объекта от регистратора сервера.

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

22. Corba, назначение, терминология. Oma. Модель cobra

CORBA – наиболее развитая объектная технология распределенного программирования. CORBA позволяет создавать распределенные в пространстве Сети компоненты, кот-е м.б. написаны на разл-х ЯП), работать на разл-х ОС, просто определяя интерфейсы друг друга и удаленно вызывая открытые методы объектов, из которых состоят компоненты.

CORBA состоит из следующих компонентов:

  • Брокер объектных запросов (Object Request Broker), который дает возможность объектам прозрачно создавать запросы и получать ответы в распределенной среде..

  • Сервисы объектов (Object Services), коллекция сервисов (интерфейсы и объекты), которые поддерживают основные функции для использования и реализации объектов. Сервисы необходимы для построения любого распределенного приложения и независимы от доменов приложения.

  • Общие средства (Common Facilities), коллекция сервисов, которую могут использовать многие приложения, но которые не являются такими фундаментальными, как сервисы объектов.

  • Объекты приложения (Application Object), которые являются продуктами одной группы разработчиков, которая контролирует свои интерфейсы.

CORBA включает в себя простой язык описания интерфейсов объектов - IDL (Interface Definition Language), что позволяет отделять описания интерфейсов от их реализации и обертывать в CORBA существующие приложения. Также следует сказать, что любой компонент может быть как клиентом, так и сервером одновременно. Вообще, чтобы вызывать методы удаленного объекта, нужно иметь как минимум описание его на IDL и так называемую объектную ссылку на него.

Практически, для создания распределенных компонентов при программировании в CORBA выполняются обычно как минимум следующие шаги:

1. Проектируются распределенные компоненты

2. Описываются интерфейсы открытых объектов этих компонентов на языке IDL

3. Создаются реализации компонентов (объекты и их клиенты)

4. Тестирование компонентов в распределенной среде

5.Распределяются компоненты по нужным точкам в Сети

Архитектура управления объектами.(OMA)

OMA состоит из четырех частей:

• фундаментальный компонент, называемый Брокер Объектных Запросов (Object Request Broker),

• дополнительные сервисы, используемые разработчиками для управления распределенными объектами;

• общие сервисы, используемые многими различными приложениями, и

• распределенные приложения как таковые.

ORB - аббревиатура от “Брокер Объектных Запросов”, предусматривает фундаментальные и основные действия с распределенными объектами и с управлением ими. Стандартом, который был принят для реализации этих целей, явился CORBA (Единая архитектура программы-брокера объектных запросов).

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

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

Приложения, составленные из таких “строительных блоков” являются объектными приложениями.

ОМА определяет, является ли данная модель классической объектной моделью. Классической является модель, в которой все методы включены в класс. Она является контрастом по отношению к ряду других объектных моделей (таких как обобщенная объектная модель), в которой методы не указывают на классы. В CORBA все объекты определяются по интерфейсам, причем нет необходимости знать ограничения реализации, разумеется, если данные объекты обеспечивают объявленные сервисы.

Объектная модель CORBA определяет взаимодействие между клиентами и серверами. Клиенты — это приложения, которые запрашивают сервисы, предоставляемые серверами. Объекты-серверы содержат набор сервисов, разделяемых между многими клиентами. Операция указывает запрашиваемый сервис. Интерфейсы объектов описывают множество операций, которые могут быть вызваны клиентами определенного объекта. Реализации объектов — это приложения, исполняющие сервисы, запрашиваемые клиентами.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]