
- •Общие принципы взаимодействия программных средств.
- •План
- •Взаимодействие программ
- •Проблема взаимодействия
- •Примеры
- •Разный порядок байтов
- •Протоколы
- •Основная идея
- •Основной подход к реализации протоколов
- •Модель OSI
- •Инкапсуляция
- •Сериализация/десериализа
- •Сериализация бинарного дерева
- •Преимущества и недостатки
- •Выводы
- •Протоколы разных уровней
- •Информация по стандартам и протоколам
- •Физический уровень
- •Канальный уровень
- •Сетевой уровень
- •Транспортный уровень
- •Протокол TCP
- •Сессионный уровень
- •Уровень представления данных
- •Уровень прикладных программ
- •Распределенне информационные системы
- •Основные подходы к разработке
- •Основные подходы к построению распределенных
- •Типы распределенных приложений
- •Одноярусные (one tier)
- •Двухярусные (two tier)
- •Трехярусные (three tier, middleware)
- •Многоярусные (many tier)
- •Клиент-сервер (терминальный доступ)
- •Серверы на обычной машине
- •Запуск удаленных программ и перенаправление ввода- вывода
- •Преимущества и недостатки
- •Схема работы
- •SSH сервер
- •SSH клиент
- •Аутентификация и авторизация
- •SSH авторизация
- •Ключи
- •Авторизация ключа
- •Запуск команд на удаленной машине
- •Запуск виртуальных машин
- •RSH – remote shell
- •Особенности rsh
- •Доступ по rsh без пароля

Транспортный уровень
Доставка информации от одной программы на одной машине до другой программы на другой машине
В заголовок добавляется порт источника и порт приемника
Примеры
UDP (RFC 768) негарантированная доставка дейтаграмм
TCP (RFC 761 ) гарантированная доставка по виртуальным каналам
Обмен через общую память

Протокол TCP
Клиент – серверная модель
Один процесс (сервер) «слушает» на приходящие соединения
Множество процессов (клиентов) инициируют «соединение» с сервером
Каждое соединение – виртуальный канал гарантирует доставку сообщений в потоке

Сессионный уровень
Создание прозрачных для пользователя виртуальный сеансов поверх транспортных протоколов
RPC – вызов удаленных процедур
X Window – протокол удаленной графической консоли
Сетевые файловые системы
Распределенные системы имен (NIS, LDAP)
GRID middleware
Фактически функционирование распределенных операционных систем и их компонент

Уровень представления данных
Сериализация/десериализация
xml, html
Шифрование/дешифрование
Openssl
Сжатие/разархивация
gzip

Уровень прикладных программ
Каждое распределенное или параллельное приложение может иметь свой протокол обмена данными
Стандартные протоколы
Удаленный обработчик команд rsh, ssh
Удаленный терминал telnet, rlogin, slogin

Распределенне информационные системы
Представление |
Потребители (клиенты) |
||
|
|
||
Логика работы |
|
|
|
Представление информации |
|||
Доступные ресурсы |
|||
|
|
||
|
|
||
|
|
|
|
|
Логика выполнения |
|
|
|
|
|
ресурсы

Основные подходы к разработке
Сверху вниз
Исходя из того, что нужно клиенту
выбирается представление информации,
определяется логика
выбираются необходимые ресурсы
Снизу вверх
Исходя из того, какие есть ресурсы
Выбираем логику работы
Исходя из нужд клиента представляем информацию

Основные подходы к построению распределенных
платформКлиент-сервер
Клиент непосредственно взаимодействует с сервером
Для каждого клиента свой тип сервера
Параллелизм на уровне приложений
Промежуточное программное обеспечение (middleware, программное обеспечение среднего уровня)
Клиент взаимодействует с промежуточным программным обеспечением на своей машине, которое «знает» о серверах
Параллелизм на уровне приложений, процедур, объектов
Сервер приложений
Один тип клиентов и один тип серверов (WWW)
Сервер взаимодействуют с промежуточным программным обеспечением, которое работает с необходимыми ресурсами

Типы распределенных приложений
Одноярусные (one tier)
Мейнфрейм-терминал
Двухярусные (two tier)
СУБД – интерфейс, X Window, терминал- сервер
Трехярусные (three tier)
Вызовы удаленных процедур
Многоярусные (many tier)
Сервер приложений, WWW технология

Одноярусные (one tier)
Сервер – «умный» - всю логику работы и представление информации выполняет сервер
Клиент – «тупой» - только принимает информацию, которую передает сервер
Особенности
Клиент непосредственно взаимодействует с сервером
Для каждого клиента свой тип сервера
Параллелизм на уровне приложений
Преимущества
Просто создавать, настраивать и контролировать
Эффективное совместное использование ресурсов
Недостатки
Не используются возможности клиента
Большая нагрузка на сервер
Нельзя построить очень большую систему – сервер узкое место в плане
надежности