- •6. Управление внутренними коммуникациями в ос
- •6.1. Общая характеристика коммуникаций
- •6.2. Концепции технологии «Клиент-Сервер»
- •6.3. Внутренние коммуникации между процессами
- •6.3.1. Неименованные каналы
- •6.3.2. Обмен сообщениями
- •6.3.3. Обмен данными через Clipboard
- •1. Подготовка данных для передачи в Clipboard;
- •1. Открытие Clipboard
- •2. Проверка наличия требуемого формата данных в Clipboard
- •3. Чтение данных из Clipboard
- •4. Закрытие Clipboard
- •6.3.4. Обмен данными по технологии dde
- •6.3.5. Обмен данными по технологии ole
- •Insert object
- •Раздел 6
6. Управление внутренними коммуникациями в ос
6.1. Общая характеристика коммуникаций
Излишне говорить о важности коммуникаций между различными компонентами вычислительных систем. Коммуникации являются важнейшим видом взаимодействия процессов. Отдельные аспекты этого взаимодействия мы уже рассматривали, когда знакомились с файлами, отображаемыми в память. В данном разделе рассмотрим вопросы коммуникаций более подробно.
Коммуникации между процессами можно разделить на два следующих варианта:
Внутренние коммуникации
Внешние коммуникации
Внутренние коммуникации - это коммуникации между процессами, выполняющимися на одном компьютере.
Внешние коммуникации - это коммуникации между процессами, выполняющимися на различных компьютерах.
Существует различия между способами организации коммуникаций этих двух видов. Однако и существует тенденция на некотором высоком логическом уровне не различать эти два вида коммуникаций.
Программист при создании приложения использует некоторый набор примитивов обмена данными между процессами, а среда сама подключает сетевые коммуникации, если процессы выполняются на разных компьютерах, или ограничивается внутренними коммуникациями, если процессы выполняются на одной машине.
Независимо от способа реализации коммуникаций, каждый партнер должен понимать другую сторону. Поэтому в коммуникациях, как ни в какой другой области, существует огромная потребность в стандартизации. Стандартизация способствует стыкуемости различных систем и тем самым сокращает усилия по их программированию.
В рамках стандартов создаются коммуникационные протоколы. Один из наиболее удачных вариантов системы коммуникационных протоколов разработала Международная организация стандартизации ISO (International Standards Organisation), создавшая стандартную многоуровневую модель коммуникаций - модель OSI (Open System Interconnection).
Эта модель используется в основном для сетей, но может быть использована и для построения протоколов внутренних коммуникаций, если рассматривать только три верхних уровня модели.
Эта модель имеет следующий вид.
------------------ ------------------
| Приложения | | Приложения |
------------------ ------------------
| Презентации | | Презентации |
------------------ ------------------
| Сеанса | | Cеанса |
------------------ ------------------
| Транспортный | | Транспортный |
------------------ ------------------
| Сетевой | | Сетевой |
------------------ ------------------
| Канальный | | Канальный |
------------------ ------------------
| Физический | | Физический |
------------------ ------------------
v ^
-------------------------------------------
Взаимодействие между парами уровней (верх-низ) описывается межуровневыми интерфейсами.
Взаимодействие между процессами на одном уровне описывается протоколами.
Если взаимодействующие приложения выполняются на разных машинах, то в работе участвуют все уровни модели. Если приложения выполняются на одной машине, то задействуются три верхних уровня модели.
Краткая характеристика уровней
Уровень приложения. Протоколы этого уровня уникальны для каждой программной системы и определяют характер и объем передаваемых данных.
Уровень презентации. Этот уровень отвечает за преобразование собственных данных приложений в форматы, подготавливаемые для обмена. И наоборот, принятые данные преобразует в вид, понятный приложению.
Уровень сеанса. Этот уровень обеспечивает синхронизацию коммуникаций в определенных точках выполнения приложений.
Транспортный уровень. Этот уровень обеспечивает надежную и последовательную передачу данных между узлами сети.
Сетевой уровень. Этот уровень обеспечивает маршрутизацию пакетов с данными и передачу отдельных пакетов.
Канальный уровень. Этот уровень обеспечивает помехоустойчивое кодирование данных.
Физический уровень. Этот уровень отвечает за характеристики сигналов в линиях связи.
Для каждого уровня создается свой протокол передачи данных. Основным в протоколе является формат пакета протокола данного уровня. С точки зрения поля данных различают жесткие и гибкие протоколы.
В жестком протоколе структура передаваемых данных известна и не меняется. Это обеспечивает высокую эффективность жесткого протокола.
Структура жесткого протокола имеет следующий вид:
-
Заголовок
Данные
Хвост
Заголовок в основном содержит адресную информацию, хвост - контрольную информацию.
В гибком протоколе формат данных не определен заранее. Гибкие протоколы легче адаптируются к изменяющимся требованиям.
Структура гибкого протокола имеет следующий приблизительный вид:
Заголовок |
Тип |
Данные |
Тип |
Данные |
Тип |
Данные |
Хвост |
Гибкие протоколы используются, как правило, на более высоких уровнях системы. Известны гибкие протоколы для уровня приложений.
Принципы взаимодействия уровней соответствуют тем принципам, которые мы рассматривали при знакомстве с уровнями операционной системы.
Важным принципом является принцип прозрачности уровней. Т.е. протокол каждого уровня не знает данных и не пользуется данными протоколов других уровней.
При переходе от уровня к уровню используется принцип вложенности протоколов. Т.е. поле данных протокола некоторого уровня - это весь протокол следующего уровня.
Например.
Далее мы будем знакомиться с протоколами, начиная с сетевого уровня и выше вплоть до уровня презентации.
Подчеркнем, что эту многоуровневую модель коммуникаций мы рассматриваем в рамках 8-го уровня многоуровневой модели операционной среды.
На всех уровнях, которые мы в дальнейшем собираемся изучать, используется терминологические особенности технологии КЛИЕНТ-СЕРВЕР, поэтому ниже рассмотрим элементы этой технологии.