Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции1_4.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
816 Кб
Скачать
☆

Ожидание ответа от нескольких серверов.

Вариант А – клиент реализует некий удаленный интерфейс, содержащий метод уведомление о результате, сервер по завершению вычислений вызывает этот метод

Вариант Б – вызов метода сервера происходит в отдельном потоке.

Использование общего реестра

Запускается с помощью RMIRegistry из дистрибутива java

Необходимо удалить создание реестра из кода сервера

String name = “rmi://localhost/compare”;

Tyr

{

locateRegistry.CreateRegistry(Registy.REGISTY_PORT);

Compare engine = new ComputeEngine();

Naming.ribbon()

Распределенные вычисления

RPC – Remote Procedure Call – Технология, позволяющая программам вызывать процедуры в другом адресном пространстве (как правило, на удаленных компьютерах)

Начало

1976 – идея RPC описана в RFC 707 (A high-Level Framework for Network-Based Resource Sharing)

1981 – Xerox создает реализацию и используют RPC.

Популярные реализации

Sun RPC (ONC RPC)

DCE/RPC

MSRPC

Иногда, когда говорят RPC, подразумевают не технологию, а одну из реализаций.

Взаимодействие в RPC

Передача параметров

Потом возвращается результат,

Заглушка извлекает результат и представляет клиенту.

Асинхронные вызовы

Java Remote Method Invocation

RMI

Интерфейс вызова удаленны методов

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

Характеристики RMI

  1. Доступ к удаленным объектам

  2. Только дл взаимодействия Java-Java

  3. Высокоуровневый API

  4. Прозрачность

  5. Легковесность.

Взамодействие Client-Server

Слои RMI

Удаленные объекты

  • Находятся на сервере

  • Вызов методов удаленных объектов аналогичен вызову методов локальных объектов.

Вызов удаленных методов

  1. Для вызова удаленных методов необходимо иметь ссылку на удаленный объект

  2. Ссылка может быть получена посредством сервиса именований, как параметр или возвращаемый результат.

Клиентская заглушка (Stub)

  1. Находится на клиенте

  2. Является заместителем удаленного объекта

  3. Обеспечивает маршалинг параметров и передачу запросов и параметров Skeleton`у.

Серверная заглушка (Skeleton)

  • Находится на сервере

  • Принимает запросы от клиентской заглушки

  • Обеспечивает вызов методов удаленного объекта

  • Доставляет ответ клиентской заглушке.

Асинхронные вызовы не поддерживаются в RMI.

Stub – реализует тот же интерфейс, что и удаленный объект.

1. сервер создает удаленный объект

2. Сервер регистрирует удаленный объект

3. Клиент запрашивает объект из реестра

4. Реестр возвращает удаленную ссылку (при этом создается клиентская заглушка)

5. Клиент вызывает метод заглушки (Stub)

6. Stub отправляет запрос Skeleton

7. Skeleton вызывает метод удаленного объекта

Передача параметров

    1. Простые типы

      1. Передаются по значению

    2. Удаленные объекты

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

  1. Локальные объекты

      1. Передаются по значению

      2. Используется сериализация.

Java Сериализация (Serialization)

Сохраняет состояние определенного объекта

Преобразует объект в последовательность байт

Записывает ее в поток

Получает данные из потока

Создает новый объект с указанным состоянием (на основании полученных данных)

Java.io.serializable

Объекты реализующие указанный интерфейс отмечается как сериализуемые

Сереализуемыми являются все подклассы объекта реализующего данный интерфейс.

Не сериализуемые объекты

Любой объект не реализующий Serializable интерфейс

Объекты, приводящие к рискам в безопасности, например FileInputStream.

Объекты с привязкой к конкретной VM например Thread

Объекты, содержащие на сериализуемые объекты.

Лекция 4

Распределенные системы CORBA

CORBA(Common Object Request Broker Architecture) (Обобщенная архитектура брокера объектных запросов) – технология построения распределенных объектных приложений, разработана группой по управлению объектами (OMG) для стандартизации услуг, которые брокеры объектных запросов (ORB) должны предоставлять пользователям.

Глобальная архитектура CORBA

Брокер объектных запросов

Система времени использования, отвечающая за базовые функции связи между клиентом и сервером. Обеспечивает маршрутизацию запросов и ответов, обработку объектных ссылок и поиск доступных сервисов.

Глобальная архитектура CORBA

Application objects – прикладные объекты. Являются частью приложений.

Vertical facilities – службы предназначенные для конкретнрых предметыных областей (средства обоработки изображений, финаносвых коммуникаций, информатизации в газовой и нефтяной промышленности)

Horizontal facilities – высокоуровневые службы общего назначения (управление задачами, пользовательский интерфейс, управление системой, …)

Common object services – являются основными системными сервисами, используемые разработчиками для создания приложений.

Dynamic Invocation Interface (DII)

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

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

Сервисы CORBA

SERVICE

DESCRIPTION

Collection

Группированеи объектов в списки очереди, множества и т.д.

Query

Декларирование запросов к наборам объеков

Concuerrency

Обеспечивание параллельного дуспупа….

………………………

……………………

Portable Object Adapter (POA)

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

Отображение инденитификаторов CORBA на серванты

События (Push model)

События (Pull Model)