Декомпозиция задачи сетевого взаимодействия
Организация взаимодействия между устройствами сети является сложной задачей. Как известно, для решения сложных задач используется универсальный прием — декомпозиция, то есть разбиение одной задачи на несколько задач-модулей (рис. 11.1). Декомпозиция состоит в четком определении функций каждого модуля, а также порядка их взаимодействия (интерфейсов). В результате достигается логическое упрощение задачи, а, кроме того, появляется возможность модификации отдельных модулей без изменения остальной части системы.
Рис. 11.1. Пример декомпозиции задачи.
При декомпозиции часто используют многоуровневый подход. Он заключается в следующем:
- все множество модулей, решающих частные задачи, разбивают на группы и упорядочивают по уровням, образующим иерархию;
- в соответствии с принципом иерархии для каждого промежуточного уровня можно указать непосредственно примыкающие к нему соседние вышележащий и нижележащий уровни (рис. 11.2);
- группа модулей, составляющих каждый уровень, должна быть сформирована таким образом, чтобы все модули этой группы для выполнения своих задач обращались с запросами только к модулям соседнего нижележащего уровня;
- с другой стороны, результаты работы всех модулей, отнесенных к некоторому уровню, могут быть переданы только модулям соседнего вышележащего уровня.
Рис. 11.2. Многоуровневый подход — создание иерархии задач.
Такая иерархическая декомпозиция задачи предполагает четкое определение функции каждого уровня и интерфейсов между уровнями. Интерфейс определяет набор функций, которые нижележащий уровень предоставляет вышележащему. В результате иерархической декомпозиции достигается относительная независимость уровней, а значит, возможность их автономной разработки и модификации.
Средства решения задачи организации сетевого взаимодействия, конечно, тоже могут быть представлены в виде иерархически организованного множества модулей. Например, модулям нижнего уровня можно поручить вопросы, связанные с надежной передачей информации между двумя соседними узлами, а модулям следующего, более высокого, уровня — транспортировку сообщений в пределах всей сети. Очевидно, что последняя задача — организация связи двух любых, не обязательно соседних, узлов — является более общей и поэтому ее можно решить посредством многократных обращений к нижележащему уровню.
Рис. 11.3. Декомпозиция задачи связывания произвольной пары узлов на более частные задачи связывания пар соседних узлов.
Так, связывание узлов А и Б (рис. 11.3) может быть сведено к последовательному связыванию пар промежуточных смежных узлов. Таким образом, модули вышележащего уровня при решении своих задач рассматривают средства нижележащего уровня как инструмент.
Дата добавления: 2016-01-03; просмотров: 928;