- •Вызовы удаленных процедур
- •План
- •Для чего нужно?
- •Промежуточное программное обеспечение
- •RPC middleware
- •Преимущества
- •Где используются?
- •Какие существуют реализации?
- •Основные определения
- •Схема запроса
- •Вызов удаленной процедуры
- •Выполнение процедуры
- •Синхронное и асинхронное
- •Синхронное выполнение
- •Асинхронное выполнение
- •Обратный вызов
- •Авторизация
- •RPC на реальных машинах
- •Разработка RPC программ
- •Язык описания интерфейсов (rpcgen)
- •Другие недостатки SUN RPC
- •CORBA – common object relations broker architecture
- •Объектно-ориентированный подход
- •Распределенные объектные системы
- •CORBA
- •Преимущества
- •Реализации
- •Структура
- •ORB – object relations broker
- •Взаимодействие между
- •Прокси и адаптор
- •Взаимодействие между объектами
- •Объектная ссылка (IOR)
- •Взаимодействие между объектами
- •Службы
- •Поиск объектов
- •Служба имен
- •Поиск в службе имен
- •Хранилища реализаций и интерфейсов
- •CORBA
- •DCOM
- •Компонентная модель
- •Пример запуска CORBA объекта
- •Язык описания интерфейса
- •Особенности
- •Примеры
- •Вопросы ?
Вызовы удаленных процедур
Судаков А.А.
“Параллельные и распределенные вычисления” Лекция 5
План
Что такое RPC?
SUN RPC
XML RPC
Распределенные объектные системы (CORBA, COM)
RPC
Вызов удаленных процедур – программный интерфейс, который позволяет вызывать подпрограммы на удаленных машинах в сети
|
|
|
Машина 2 |
||
Машина 1 |
|||||
|
|
|
|||
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Вызов функции |
сеть |
Выполнение функции |
proc(int a, char* b) |
|
proc(int a, char* b) |
Для чего нужно?
Не всегда есть возможность запускать программу на другой машине
Работа в режиме ядра
Запуск программы может оказаться очень медленной операцией
Синхронизация содержимого файла
Необходим стандартный подход для создания распределенных приложений
Независимо созданные программы должны работать друг с другом
Промежуточное программное обеспечение
RPC использует middleware для того, чтобы скрыть детали реализации от пользователя
Машина 1 |
Машина 2 |
Машина 3 |
Программа-клиент Программа-клиент Программа-клиент
|
|
|
|
|
|
|
|
middleware |
|
||
|
middleware |
|
middleware |
||||||||
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
сервер |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
сервер |
|
|
|
сервер |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RPC middleware
RPC middleware является надстройкой над клиент- серверной платформой
Программа, которая вызывает удаленную функцию является клиентом
Сервера, которые выполняют функции работают прозрачно для клиентов
Существуют вспомогательные сервера
Преимущества
Преимущества
Упрощение интерфейса и разработки
Стандартизация
Параллелизм на уровне процедур
Недостатки
Сложность программного обеспечения
Где используются?
Основной механизм для создания распределенных операционных систем
Основной механизм для создания распределенных файловых систем
Часто используется для прикладных распределенных программ
Какие существуют реализации?
SUN RPC
XML RPC
Microsoft RPC
SUN RPC
Начало 1980-х годов Open Network Computing (ONC) фирмы SUN ( http://www.ietf.org/html.charters/oncrpc-charte
r.html
)
Создание распределенного программного обеспечения
Протоколы
Библиотеки, вспомогательные утилиты и инструменты