- •Общие принципы взаимодействия программных средств.
- •План
- •Взаимодействие программ
- •Проблема взаимодействия
- •Примеры
- •Разный порядок байтов
- •Протоколы
- •Основная идея
- •Основной подход к реализации протоколов
- •Модель OSI
- •Инкапсуляция
- •Сериализация/десериализа
- •Сериализация бинарного дерева
- •Преимущества и недостатки
- •Выводы
- •Протоколы разных уровней
- •Информация по стандартам и протоколам
- •Физический уровень
- •Канальный уровень
- •Сетевой уровень
- •Транспортный уровень
- •Протокол TCP
- •Сессионный уровень
- •Уровень представления данных
- •Уровень прикладных программ
- •Распределенне информационные системы
- •Основные подходы к разработке
- •Основные подходы к построению распределенных
- •Типы распределенных приложений
- •Одноярусные (one tier)
- •Двухярусные (two tier)
- •Трехярусные (three tier, middleware)
- •Многоярусные (many tier)
- •Клиент-сервер (терминальный доступ)
- •Серверы на обычной машине
- •Запуск удаленных программ и перенаправление ввода- вывода
- •Преимущества и недостатки
- •Схема работы
- •SSH сервер
- •SSH клиент
- •Аутентификация и авторизация
- •SSH авторизация
- •Ключи
- •Авторизация ключа
- •Запуск команд на удаленной машине
- •Запуск виртуальных машин
- •RSH – remote shell
- •Особенности rsh
- •Доступ по rsh без пароля
Двухярусные (two tier)
Сервер – «мощный» - выполняет всю логику и часть отображения
Клиент – «красивый» - выполняет большую часть работы по представлению информации
Особенности
Клиент непосредственно взаимодействует с сервером
Для каждого клиента свой тип сервера
Параллелизм на уровне приложений
Преимущества
Те же, что и one tier
Сервер не занимается лишней работой по представлению информации и может работать более эффективно
Недостатки
Нельзя построить очень большую систему – сервер узкое место в плане
надежности
Усложняется программное обеспечение, необходимо стандартизировать API (Application Rrogramming Interface)
Трехярусные (three tier, middleware)
Клиенты и сервера взаимодействуют через промежуточный «слой программного обеспечения»
Особенности
Клиент взаимодействует с промежуточным программным обеспечением на своей машине, которое «знает» о серверах
Параллелизм на уровне приложений, процедур, объектов
Преимущества
Децентрализация
Обеспечение надежности, балансировки нагрузки, производительности
Теоретически нет ограничений на выполняемые функции, масштабируемость, размеры системы
Недостатки
Сложное программное обеспечение
Необходимость введения нового уровня может привести к большим затратам на взаимодействие
Возможность существования несовместимых реализаций
Многоярусные (many tier)
Один тип клиентов и один тип серверов (WWW, сервер приложений)
Особенности
Сервер взаимодействуют с промежуточным программным обеспечением, которое работает с необходимыми ресурсами
Преимущества
Решается проблема стандартизации системы – общий протокол взаимодействия многих клиентов с сервером
Недостатки
Сложность
Клиент-сервер (терминальный доступ)
Серверу назначается стандартный порт транстпортного протокола (TCP, UDP)
Клиент соединяется с хост-машиной сервера указывая сетевой адрес и порт транспортного протокола
Устанавливается сеанс и начинается обмен данными
Серверы на обычной машине
Интернет службы
Запуск удаленных программ и перенаправление ввода- вывода
Пользователь
Программа на удаленной машине
сеть
Перенаправление Ввода-вывода по сети
Преимущества и недостатки
Преимущества
Возможность использования для распределенных вычислений самых обычных программ
Параллелизм на уровне приложений (конвейер, SIMD, MIMD)
Простота и надежность
Недостатки
Есть возможность работы только в пространстве пользователя
Необходимость разработки протокола прикладного уровня для взаимодействия программ
Запуск программы сравнительно медленная операция
SSH
SSH – secure shell
Терминальный доступ
Запуск программ на удаленных машинах
Шифрование с открытым ключом
Авторизация
Передача файлов
Переадресация соединений
Схема работы
|
|
|
Выполнение |
|
|
|
|
команды |
|
пользователь |
Машина 1 |
|||
|
|
|||
|
Машина 2 |
|||
|
|
|
Ssh клиент |
|
|
|
|
|
|
|
|
|
Ssh сервер |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Представление (шифрование, |
|
|
|
|
|
|
|
|||||||
|
|
Представление |
|
|||||||||||
компрессия) |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Сеансы (команды, |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
Сеансы |
|
|
|
|||
Файлы, перенаправление ) |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|||
Транспорт (TCP |
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
Транспорт |
|
|
|
|||||||
гарантированная доставка ) |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|||||||||||
Сеть и физические линии |
|
|
Сеть и физические линии |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SSH сервер
Клиент-серверная платформа
Сервер sshd работает на тех машинах, к которым необходимо осуществлять доступ
Используется TCP/IP, TCP порт 22
Сервер
слушает необходимый порт
Принимает соединение
Аутентифицирует и авторизует пользователя
Запускает команды пользователя
К одному серверу может присоединяться множество клиентов