В архитектуре потока данных вся программная система рассматривается как последовательность преобразований в последовательных частях или наборе входных данных, где данные и операции не зависят друг от друга. При таком подходе данные поступают в систему и затем проходят через модули по одному, пока они не будут назначены какому-либо конечному месту назначения (выходу или хранилищу данных).
Соединения между компонентами или модулями могут быть реализованы как поток ввода-вывода, буферы ввода-вывода, конвейерные или другие типы соединений. Данные могут передаваться в топологии графа с циклами, в линейной структуре без циклов или в структуре древовидного типа.
Основная цель этого подхода заключается в достижении качеств повторного использования и модифицируемости. Он подходит для приложений, которые включают четко определенный ряд независимых преобразований или вычислений данных для упорядоченно определенного ввода и вывода, таких как компиляторы и приложения для обработки бизнес-данных. Существует три типа последовательностей выполнения между модулями:
- Пакетный последовательный
- Трубопровод и фильтр или режим непоследовательного конвейера
- Контроль над процессом
Пакетный последовательный
Последовательный пакет — это классическая модель обработки данных, в которой подсистема преобразования данных может инициировать свой процесс только после того, как ее предыдущая подсистема полностью прошла —
-
Поток данных переносит пакет данных в целом из одной подсистемы в другую.
-
Связь между модулями осуществляется через временные промежуточные файлы, которые могут быть удалены последовательными подсистемами.
-
Это применимо для тех приложений, где данные пакетируются, и каждая подсистема читает связанные входные файлы и записывает выходные файлы.
-
Типичное применение этой архитектуры включает обработку бизнес-данных, таких как банковские и коммунальные услуги.
Поток данных переносит пакет данных в целом из одной подсистемы в другую.
Связь между модулями осуществляется через временные промежуточные файлы, которые могут быть удалены последовательными подсистемами.
Это применимо для тех приложений, где данные пакетируются, и каждая подсистема читает связанные входные файлы и записывает выходные файлы.
Типичное применение этой архитектуры включает обработку бизнес-данных, таких как банковские и коммунальные услуги.
преимущества
-
Обеспечивает более простые деления на подсистемы.
-
Каждая подсистема может быть независимой программой, работающей с входными данными и производящей выходные данные.
Обеспечивает более простые деления на подсистемы.
Каждая подсистема может быть независимой программой, работающей с входными данными и производящей выходные данные.
Недостатки
-
Обеспечивает высокую задержку и низкую пропускную способность.
-
Не обеспечивает параллелизма и интерактивного интерфейса.
-
Внешний контроль требуется для реализации.
Обеспечивает высокую задержку и низкую пропускную способность.
Не обеспечивает параллелизма и интерактивного интерфейса.
Внешний контроль требуется для реализации.
Архитектура труб и фильтров
Этот подход делает упор на постепенное преобразование данных по последовательным компонентам. При таком подходе поток данных определяется данными, и вся система разбивается на компоненты источника данных, фильтров, каналов и приемников данных.
Соединения между модулями представляют собой поток данных, который представляет собой буфер «первым вошел / первым вышел», который может быть потоком байтов, символов или любого другого типа такого рода. Главной особенностью этой архитектуры является ее параллельное и инкрементное выполнение.
Фильтр
Фильтр — это независимый преобразователь потока данных или преобразователи потока. Он преобразует данные входного потока данных, обрабатывает их и записывает преобразованный поток данных по каналу для обработки следующим фильтром. Он работает в инкрементном режиме, в котором он начинает работать, как только данные поступают через подключенный канал. Существует два типа фильтров — активный фильтр и пассивный фильтр .
Активный фильтр
Активный фильтр позволяет подключенным каналам извлекать данные и выводить преобразованные данные. Он работает с пассивным каналом, который обеспечивает механизмы чтения / записи для вытягивания и толкания. Этот режим используется в конвейере и фильтре UNIX.
Пассивный фильтр
Пассивный фильтр позволяет подключенным каналам вставлять и выводить данные. Он работает с активным каналом, который извлекает данные из фильтра и помещает данные в следующий фильтр. Он должен обеспечивать механизм чтения / записи.
преимущества
-
Обеспечивает параллелизм и высокую пропускную способность для чрезмерной обработки данных.
-
Обеспечивает возможность повторного использования и упрощает обслуживание системы.
-
Обеспечивает модифицируемость и низкую связь между фильтрами.
-
Обеспечивает простоту, предлагая четкое разделение между любыми двумя фильтрами, соединенными трубой.
-
Обеспечивает гибкость, поддерживая как последовательное, так и параллельное выполнение.
Обеспечивает параллелизм и высокую пропускную способность для чрезмерной обработки данных.
Обеспечивает возможность повторного использования и упрощает обслуживание системы.
Обеспечивает модифицируемость и низкую связь между фильтрами.
Обеспечивает простоту, предлагая четкое разделение между любыми двумя фильтрами, соединенными трубой.
Обеспечивает гибкость, поддерживая как последовательное, так и параллельное выполнение.
Недостатки
-
Не подходит для динамического взаимодействия.
-
Для передачи данных в форматах ASCII необходим низкий общий знаменатель.
-
Затраты на преобразование данных между фильтрами.
-
Не позволяет фильтрам взаимодействовать друг с другом для решения проблемы.
-
Сложно настроить эту архитектуру динамически.
Не подходит для динамического взаимодействия.
Для передачи данных в форматах ASCII необходим низкий общий знаменатель.
Затраты на преобразование данных между фильтрами.
Не позволяет фильтрам взаимодействовать друг с другом для решения проблемы.
Сложно настроить эту архитектуру динамически.
труба
Каналы не имеют состояния и несут двоичный или символьный поток, который существует между двумя фильтрами. Он может перемещать поток данных из одного фильтра в другой. Трубы используют немного контекстной информации и не сохраняют информацию о состоянии между экземплярами.
Архитектура управления процессом
Это тип архитектуры потока данных, в котором данные не являются ни последовательным, ни конвейерным потоком. Поток данных поступает из набора переменных, которые контролируют выполнение процесса. Он разбивает всю систему на подсистемы или модули и связывает их.
Типы подсистем
Архитектура управления процессом будет иметь блок обработки для изменения переменных управления процессом и блок контроллера для вычисления количества изменений.
Блок контроллера должен иметь следующие элементы —
-
Управляемая переменная — Управляемая переменная предоставляет значения для базовой системы и должна измеряться датчиками. Например, скорость в системе круиз-контроля.
-
Переменная ввода — измеряет вход в процесс. Например, температура возвратного воздуха в системе контроля температуры
-
Управляемая переменная — значение управляемой переменной регулируется или изменяется контроллером.
-
Определение процесса — включает в себя механизмы для управления некоторыми переменными процесса.
-
Датчик — Получает значения переменных процесса, относящихся к управлению, и может использоваться в качестве ссылки обратной связи для пересчета манипулируемых переменных.
-
Уставка — это желаемое значение для контролируемой переменной.
-
Алгоритм управления — используется для принятия решения о том, как манипулировать переменными процесса.
Управляемая переменная — Управляемая переменная предоставляет значения для базовой системы и должна измеряться датчиками. Например, скорость в системе круиз-контроля.
Переменная ввода — измеряет вход в процесс. Например, температура возвратного воздуха в системе контроля температуры
Управляемая переменная — значение управляемой переменной регулируется или изменяется контроллером.
Определение процесса — включает в себя механизмы для управления некоторыми переменными процесса.
Датчик — Получает значения переменных процесса, относящихся к управлению, и может использоваться в качестве ссылки обратной связи для пересчета манипулируемых переменных.
Уставка — это желаемое значение для контролируемой переменной.
Алгоритм управления — используется для принятия решения о том, как манипулировать переменными процесса.
Области применения
Архитектура управления процессами подходит в следующих областях:
Разработка программного обеспечения встроенной системы, в которой системой управляют переменные данные управления процессом.
Приложения, целью которых является поддержание заданных свойств выходных данных процесса при заданных контрольных значениях.
Применимо для автомобильных круиз-контроля и систем контроля температуры здания.
Программное обеспечение системы реального времени для управления автомобильными антиблокировочными тормозами, атомными электростанциями и т. Д.