Организация взаимодействия между устройствами сети является сложной задачей. Как известно, для решения сложных задач используется универсальный прием – декомпозиция, то есть разбиение одной задачи на несколько задач-модулей (рис. 2.1). Декомпозиция состоит в четком определении функций каждого модуля, а также порядка их взаимодействия (интерфейсов). В результате достигается логическое упрощение задачи, а, кроме того, появляется возможность модификации отдельных модулей без изменения остальной части системы.
При декомпозиции часто используют многоуровневый подход. Он заключается в следующем:
- все множество модулей, решающих частные задачи, разбивают на группы и упорядочивают по уровням, образующим иерархию ;
- в соответствии с принципом иерархии для каждого промежуточного уровня можно указать непосредственно примыкающие к нему соседние вышележащий и нижележащий уровни (рис. 2.2);
- группа модулей, составляющих каждый уровень, должна быть сформирована таким образом, чтобы все модули этой группы для выполнения своих задач обращались с запросами только к модулям соседнего нижележащего уровня;
- с другой стороны, результаты работы всех модулей, отнесенных к некоторому уровню, могут быть переданы только модулям соседнего вышележащего уровня.
Рис. 2.1. Пример декомпозиции задачи.
Рис. 2.2. Многоуровневый подход – создание иерархии задач.
Такая иерархическая декомпозиция задачи предполагает четкое определение функции каждого уровня и интерфейсов между уровнями. Интерфейс определяет набор функций, которые нижележащий уровень предоставляет вышележащему. В результате иерархической декомпозиции достигается относительная независимость уровней, а значит, возможность их автономной разработки и модификации.
Средства решения задачи организации сетевого взаимодействия, конечно, тоже могут быть представлены в виде иерархически организованного множества модулей. Например, модулям нижнего уровня можно поручить вопросы, связанные с надежной передачей информации между двумя соседними узлами, а модулям следующего, более высокого, уровня – транспортировку сообщений в пределах всей сети. Очевидно, что последняя задача – организация связи двух любых, не обязательно соседних, узлов – является более общей и поэтому ее можно решить посредством многократных обращений к нижележащему уровню.
Рис. 2.3. Декомпозиция задачи связывания произвольной пары узлов на более частные задачи связывания пар соседних узлов.
Так, связывание узлов А и Б (рис. 2.3) может быть сведено к последовательному связыванию пар промежуточных смежных узлов. Таким образом, модули вышележащего уровня при решении своих задач рассматривают средства нижележащего уровня как инструмент.
Дата: 2018-12-28, просмотров: 416.