- •Общие принципы взаимодействия программных средств.
- •План
- •Взаимодействие программ
- •Проблема взаимодействия
- •Примеры
- •Разный порядок байтов
- •Протоколы
- •Основная идея
- •Основной подход к реализации протоколов
- •Модель OSI
- •Инкапсуляция
- •Сериализация/десериализа
- •Сериализация бинарного дерева
- •Преимущества и недостатки
- •Выводы
- •Протоколы разных уровней
- •Информация по стандартам и протоколам
- •Физический уровень
- •Канальный уровень
- •Сетевой уровень
- •Транспортный уровень
- •Протокол TCP
- •Сессионный уровень
- •Уровень представления данных
- •Уровень прикладных программ
- •Распределенне информационные системы
- •Основные подходы к разработке
- •Основные подходы к построению распределенных
- •Типы распределенных приложений
- •Одноярусные (one tier)
- •Двухярусные (two tier)
- •Трехярусные (three tier, middleware)
- •Многоярусные (many tier)
- •Клиент-сервер (терминальный доступ)
- •Серверы на обычной машине
- •Запуск удаленных программ и перенаправление ввода- вывода
- •Преимущества и недостатки
- •Схема работы
- •SSH сервер
- •SSH клиент
- •Аутентификация и авторизация
- •SSH авторизация
- •Ключи
- •Авторизация ключа
- •Запуск команд на удаленной машине
- •Запуск виртуальных машин
- •RSH – remote shell
- •Особенности rsh
- •Доступ по rsh без пароля
Общие принципы взаимодействия программных средств.
Протоколы
Судаков А.А.
“Параллельные и распределенные вычисления” Лекция 4
План
Взаимодействие программ для распределенных и параллельных вычислений
Протоколы
Работа с удаленными ресурсами
Особенности технологий для распределенных вычислений
Взаимодействие программ
На одной машине - совместно используемые ресурсы (память, файлы)
На разных машинах - обмен сообщениями
Проблема взаимодействия
Разные программы могут хранить данные в разном формате
Разные компиляторы могут генерировать структуры данных в разных форматах
Разные аппаратные платформы могут иметь разный формат представления данных
Разные средства взаимодействия могут передавать данные по-своему
Примеры
Формат даты в одной программе YY-MM- DD
Формат даты в другой программе DD-MM- YY
Если одна программа запишет 02-02-12
То в другой программе вместо 12 февраля 2002 года будет 2 февраля 2012 года
Разный порядок байтов
|
Int |
|
байт4 байт3 байт2 |
байт1 |
|||
|
|
|
|
|
|
||
|
|
|
|
|
|
||
|
|
старший |
|
младший |
|||
|
Intel представляет как |
|
байт1 байт2 байт3 |
байт4 |
|||
|
|
|
|
|
|
||
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
HP представляет как |
байт4 байт3 байт2 байт1 |
|||
|
|
|
|
|
Если на Intel сохранить число 1, то на HP прочитается как 16 миллионов
Протоколы
Протокол – набор формальных правил, которые определяют, каким образом программы и устройства должны взаимодействовать между собой
Протоколы взаимодействия между программами по сети
Протоколы взаимодействия между программами с общей памятью
Протоколы передачи информации по физическим линиям
Основная идея
Вопрос: Как просто сделать, чтобы две разные программы могли в взаимодействовать между собой?
Ответ: Добавить новый программный уровень, который скрывает детали взаимодействия. Тогда программы должны уметь только взаимодействовать с этим уровнем
программа1 |
|
программа2 |
|
|
|
|
|
Уровень взаимодействия, который скрывает от программ всю сложность
Основной подход к реализации протоколов
Инкапсуляция – информация одного протокола становится данными другого протокола
Сериализация – сложные структуры данных представляются в виде потока байтов
Модель OSI
Машина 1
Прикладных программ
Представления данных
Сеансовый
Транспортный
сетевой
Канальный
физический
Машина 2
Прикладных программ
Представления данных
Сеансовый
Транспортный
сетевой
Канальный
физический