Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Судаков / Лекции / lec5_rpc.ppt
Скачиваний:
37
Добавлен:
20.03.2015
Размер:
242.69 Кб
Скачать

Разработка RPC программ

Для разработки распределенных программ достаточно знать только интерфейсы (типы аргументов и возвращаемые значения)

Можно ввести специальный язык описания интерфейсов (rpcgen -> C/C++)

Возможности программ можно наращивать постепенно добавляя новые удаленные процедуры на разных серверах

Язык описания интерфейсов (rpcgen)

program MYPROG { version MYVER {

int MYPROC (string) = 1;

}= 1;

}= 0x2000000;

Все интерфейсы взаимодействия создаются автоматически

На сервере пользователь должен определить функцию int* myproc_1 (char**) {…}

На клиенте вызов выполняется char* str = “Привет!”; CLIENT* cl=clnt_create(…); res = myproc_1(&str, cl)

Другие недостатки SUN RPC

Нет прозрачности расположения

Нужно явно указывать, где находится сервер

Нет простой системы имен для нахождения серверов по их функциям

Только процедурная ориентированность

Не рассчитано на объектно-ориентрованные программы (нет наследования, полиморфизма)

Единственный стандартный сервер – portmap

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

Слабая система безопасности

CORBA – common object relations broker architecture

Объектно-ориентированный подход

Объект

структура данных (свойств)

имеет уникальное имя

определены операции (методы), которые с этим (для этого) объекта можно выполнять

Инкапсуляция – вся сложность объекта скрыта от внешнего мира, внешнему миру доступны только имя и интерфейсы (методы)

Классификация – объекты с одинаковой структурой и методами принадлежат к одному классу

Наследование – усложнение классов путем добавления новых свойств и методов

Полиморфизм – в зависимости от контекста методы с одинаковыми именами могут выполнять разные действия

Распределенные объектные системы

Объекты существуют в разных программах или даже на разных машинах

Объект из одной программы может вызывать методы объекта, который существует в другой программе

Машина 2

Обект remote Машина 1

Вызов функции

сеть

Выполнение функции

Remote.proc(int a, char* b)

 

 

Remote.proc(int a, char* b)

CORBA

Стандарт для разработки распределенных объектно-ориентированных программ

Независим от аппаратной и программной платформы

Разработано Object Management Group (OMG) http://www.omg.org

CORBA 1.0, 2.0, 3.0

Преимущества

Стандарт

Рассчитан на гетерогенность

Совместим со многими языками программирования

Обеспечивается безопасность и надежность

Прозрачность расположения, конкуренции, параллелизма, миграции

Объектно-ориентирован

Параллелизм на уровне объектов

Реализации

MICO http://www.mico.org/

DCOM http://www.microsoft.com

Orbacus

OmniORB

TAO (The ACE ORB)

ORBit

Структура

 

 

Серверный

 

Клиентский

 

Серверный

Клиентский

 

 

 

объект

 

объект

 

объект

 

объект

 

 

 

 

 

 

 

ORB – object relations broker middleware

Служба

 

Маклерская

 

Служба

 

Стандартные

 

Стандартные

имен

 

служба

 

блокировок

 

интерфейсы

 

реализации

 

 

 

 

 

 

 

 

 

Соседние файлы в папке Лекции