
- •Вызовы удаленных процедур
- •План
- •Для чего нужно?
- •Промежуточное программное обеспечение
- •RPC middleware
- •Преимущества
- •Где используются?
- •Какие существуют реализации?
- •Основные определения
- •Схема запроса
- •Вызов удаленной процедуры
- •Выполнение процедуры
- •Синхронное и асинхронное
- •Синхронное выполнение
- •Асинхронное выполнение
- •Обратный вызов
- •Авторизация
- •RPC на реальных машинах
- •Разработка RPC программ
- •Язык описания интерфейсов (rpcgen)
- •Другие недостатки SUN RPC
- •CORBA – common object relations broker architecture
- •Объектно-ориентированный подход
- •Распределенные объектные системы
- •CORBA
- •Преимущества
- •Реализации
- •Структура
- •ORB – object relations broker
- •Взаимодействие между
- •Прокси и адаптор
- •Взаимодействие между объектами
- •Объектная ссылка (IOR)
- •Взаимодействие между объектами
- •Службы
- •Поиск объектов
- •Служба имен
- •Поиск в службе имен
- •Хранилища реализаций и интерфейсов
- •CORBA
- •DCOM
- •Компонентная модель
- •Пример запуска CORBA объекта
- •Язык описания интерфейса
- •Особенности
- •Примеры
- •Вопросы ?

ORB – object relations broker
Выполняет все функции взаимодействия между объектами
Скрывает детали передачи данных (сетевое программирование, сериализация, вызовы удаленных процедур )
Выполняет поиск объектов

Взаимодействие между
|
объектами |
|
Сервер (ia64, UNIX, C++) |
||||||||||||||
|
Клиент (x86, Windows, Java) |
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Серверный объект |
|
||||||
|
Клиентский объект |
|
|
||||||||||||||
|
|
|
|
Выполняет метод, |
|
||||||||||||
|
вызывает метод |
|
|
|
|
||||||||||||
|
|
|
|
вызванный клиентом |
|
||||||||||||
|
серверного объекта |
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Прокси (дескриптор) |
|
Адаптор серверного объекта |
||||||||||||||
|
серверного объекта |
|
|
|
|
|
|
|
|
|
|
||||||
|
Inernet Inter-ORB protocol |
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
(IIOP) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ORB |
|
|
||||
|
|
ORB |
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
СТАНДАРТИЗИРОВАНО И НЕ ЗАСИСИТ ОТ АППАРАТНЫХ И ПРГРАММНЫХ ПЛАТФОРМ

Прокси и адаптор
Прокси – интерфейс к удаленному объекту, который создается на локальной машине
Адаптор – адаптирует особенности реализации серверного объекта к стандарту
Клиент и сервер взаимодействуют через прокси и адапторы
Прокси и адаптеры выполняют сериализацию и десериализацию, вызовы удаленных процедур, обработку ошибок – скрывают сложности протокола

Взаимодействие между объектами
(клиент)Клиент – обращение к удаленному объекту
Инициализация брокера (ORB)
Получение IOR
– Interoparable object reference (дескриптор, объектная ссылка, прокси) удаленного объекта
Обращение к ORB для поиска объекта по какой-либо информации
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Обращение к ORB для |
|
|
|
|
|
|
|
|
|
||||
|
Приведение IOR к типу удаленного объекта |
|
|
||||||||
|
|
|
|
|
активизации |
|
|||||
|
|
|
|
|
|
||||||
|
(создание локального представителя) |
|
|
|
|
удаленного объекта |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Обращение к ORB для |
|
||||
|
|
|
|
|
|
|
|||||
|
Вызов метода удаленного |
|
|
|
|
||||||
|
|
|
|
передачи аргументов |
|
||||||
|
объекта через локальный прокси |
|
|
|
|
||||||
|
|
|
|
удаленному объект |
|
||||||
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ORB возвращает результат |
|
||||
|
Получение результата |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Объектная ссылка (IOR)
Содержит следующую информацию
местоположение объекта
сетевое имя машины
номер порта транспортного протокола
Ключ объекта (значение, которое однозначно дает возможность «воссоздать» интерфейс удаленного объекта)
Дополнительная информация
Авторизация

Взаимодействие между объектами
(сервер)Сервер – ожидание и выполнение вызовов
Инициализация брокера (ORB)
Создание POA - Portable
object adaptor (Транслятор Обращение к ORB особенностей реализации
объекта в стандартный протокол обмена данными)
Регистрация объекта в |
|
|
|
|
|
|
|
Обращение к ORB |
|
распределенной системе |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Выполнение вызовов клиентов Обращение к ORB

Службы
Служба имен – нахождение серверных объектов по именам (преобразование имени объекта в объектную ссылку)
Маклерская служба – нахождение серверных объектов по описаниям и интерфейсам (объектная ссылка возвращается в соответствии с возможностями объектов)

Поиск объектов
Прямая передача объектной ссылки
Серверный объект публикует свою объектную ссылку (www, ftp, NFS)
Клиент должен «знать» как ее получить
Поиск в службе имен
Серверный объект регистрируется в службе имен (объектной ссылке взаимнооднозначно соответствует имя)
Клиент запрашивает службу имен для получения объектной ссылки по имени
Поиск по экспортируемым интерфейсам
Серверный объект «рекламирует» свои возможности в маклерской службе (объектной ссылке соответствуют несколько интерфейсов)
Клиент получает объектную ссылку в соответствии с необходимым интерфейсом

Служба имен
Хранятся пары имя-значение
Иерархическая
структура

Поиск в службе имен
Получаем ссылку на имя группы
Последовательно получаем ссылки на элементы более низкого уровня