- •Общие принципы взаимодействия программных средств.
- •План
- •Взаимодействие программ
- •Проблема взаимодействия
- •Примеры
- •Разный порядок байтов
- •Протоколы
- •Основная идея
- •Основной подход к реализации протоколов
- •Модель OSI
- •Инкапсуляция
- •Сериализация/десериализа
- •Сериализация бинарного дерева
- •Преимущества и недостатки
- •Выводы
- •Протоколы разных уровней
- •Информация по стандартам и протоколам
- •Физический уровень
- •Канальный уровень
- •Сетевой уровень
- •Транспортный уровень
- •Протокол TCP
- •Сессионный уровень
- •Уровень представления данных
- •Уровень прикладных программ
- •Распределенне информационные системы
- •Основные подходы к разработке
- •Основные подходы к построению распределенных
- •Типы распределенных приложений
- •Одноярусные (one tier)
- •Двухярусные (two tier)
- •Трехярусные (three tier, middleware)
- •Многоярусные (many tier)
- •Клиент-сервер (терминальный доступ)
- •Серверы на обычной машине
- •Запуск удаленных программ и перенаправление ввода- вывода
- •Преимущества и недостатки
- •Схема работы
- •SSH сервер
- •SSH клиент
- •Аутентификация и авторизация
- •SSH авторизация
- •Ключи
- •Авторизация ключа
- •Запуск команд на удаленной машине
- •Запуск виртуальных машин
- •RSH – remote shell
- •Особенности rsh
- •Доступ по rsh без пароля
Инкапсуляция
Машина 1 |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
данные |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
данные |
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
данные |
|
6 |
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
данные |
|
6 |
|
5 |
4 |
|
|
|
|
|
|
|
|
|
|
|||
|
данные |
|
6 |
|
5 |
4 |
3 |
|
|
|
|
|
|
|
|
|
|||
|
данные |
|
6 |
|
5 |
4 |
3 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
данные |
|
6 |
|
5 |
4 |
3 |
2 |
1 |
|
|
|
|
|
|
|
|
|
|
Машина 2 |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
данные |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
данные |
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
данные |
|
6 |
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
данные |
|
6 |
|
5 |
4 |
|
|
|
|
|
|
|
|
|
|
|||
|
данные |
|
6 |
|
5 |
4 |
3 |
|
|
|
|
|
|
|
|
|
|||
|
данные |
|
6 |
|
5 |
4 |
3 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
данные |
|
6 |
|
5 |
4 |
3 |
2 |
1 |
|
|
|
|
|
|
|
|
|
|
Сериализация/десериализа
ция
Сериализация (marshalling) - Представление сложной структуры данных в виде потока байтов
Десериализация (unmarshalling) –
Восстановление сложной структуры данных из потока байтов
Синоним – упаковка/распаковка
Сериализация бинарного дерева
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
7 |
6 |
3 |
|
5 |
|
|
4 |
|
2 |
|
1 |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Поток данных |
|
|
|
|
|
||||||||||
Структура данных |
|
|
|
|
|
|
Преимущества и недостатки
Преимущество – применение стандартных протоколов позволяет упростить проблему взаимодействия для конечных программ
Недостаток – большое количество инкапсуляций приводит к снижению эффективности коммуникации: передается большое количество «лишних данных»
Выводы
Любую проблему взаимодействия можно решить добавлением нового уровня взаимодействия
Любую проблему эффективности можно решить удалением уровней взаимодействия
Протоколы разных уровней
Прикладной ssh, rsh
Представления mpi, pvm, http, xmtp
Сеансовый RPC, CORBA, LDAP, NIS, Netbios
Протоколы транспортного уровня TCP, UDP
Протоколы сетевого уровня IP
Протоколы канального уровня Ethernet, Myrinet, SCI
Протоколы физического уровня: передача по оптоволокну, по медным проводам
Информация по стандартам и протоколам
Internet протоколы RFC (request for comments) http://www.faqs.org/rfcs
Message passing interface (MPI) http://www-unix.mcs.anl.gov/mpi/
XML-RPC http://www.xmlrpc.com/
PVM http://www.netlib.org/pvm3/
CORBA http://www.corba.org/
Myrinet http://www.myri.com/
IEEE http://standards.ieee.org/
Физический уровень
Средства передедачи информации на уровне устройств
Передатчики, приемники, кабели, усилители, повторители, конверторы
Для параллельных вычислений чаще всего используются скоростные линии на медном проводе и оптоволокне
Ethernet, Myrinet, Infiniband - витая пара, коаксиальный кабель, оптоволокно
SCI – шлейф медных проводов
Канальный уровень
Логическая переадресация от одного физического устройства к другому
Заголовок содержит MAC адреса – логический адрес устройства источника и приемника
Протоколы
Ethernet
Myrinet
Infiniband
SCI
Сетевой уровень
Передача от одной машины к другой в пределах логических сетей, маршрутизация
Internet протокол (IP), SCI
Пример заголовка – IP адрес источника, IP адрес приемника
Конфигурируется администратором или автоматически