Архитектура потока данных
В архитектуре потока данных вся программная система рассматривается как серия преобразований последовательных частей или набора входных данных, при этом данные и операции не зависят друг от друга. В этом подходе данные поступают в систему, а затем проходят через модули по одному, пока они не будут назначены какому-либо конечному месту назначения (выходу или хранилищу данных).
Соединения между компонентами или модулями могут быть реализованы как поток ввода-вывода, буферы ввода-вывода, конвейерные соединения или другие типы соединений. Данные могут передаваться в топологии графа с циклами, в линейной структуре без циклов или в древовидной структуре.
Основная цель этого подхода - добиться повторного использования и изменяемости. Он подходит для приложений, которые включают четко определенную серию независимых преобразований данных или вычислений на упорядоченно определенных входных и выходных данных, таких как компиляторы и приложения для обработки бизнес-данных. Между модулями существует три типа последовательности выполнения:
- Пакетная последовательная
- Труба и фильтр или непоследовательный конвейерный режим
- Контроль над процессом
Пакетный последовательный
Последовательная пакетная обработка данных - это классическая модель обработки данных, в которой подсистема преобразования данных может инициировать свой процесс только после того, как ее предыдущая подсистема полностью завершится -
Поток данных переносит пакет данных в целом от одной подсистемы к другой.
Связь между модулями осуществляется через временные промежуточные файлы, которые могут быть удалены последовательными подсистемами.
Это применимо для тех приложений, где данные группируются, и каждая подсистема читает связанные входные файлы и записывает выходные файлы.
Типичное применение этой архитектуры включает обработку бизнес-данных, такую как банковское дело и выставление счетов за коммунальные услуги.
Преимущества
Обеспечивает более простое разделение на подсистемы.
Каждая подсистема может быть независимой программой, работающей с входными данными и производящей выходные данные.
Недостатки
Обеспечивает высокую задержку и низкую пропускную способность.
Не обеспечивает параллелизма и интерактивного интерфейса.
Для реализации требуется внешний контроль.
Архитектура труб и фильтров
Этот подход делает упор на постепенное преобразование данных последовательными компонентами. В этом подходе поток данных управляется данными, и вся система разбивается на компоненты: источник данных, фильтры, каналы и приемники данных.
Связи между модулями представляют собой поток данных, который является буфером «первым пришел / первым вышел», который может быть потоком байтов, символов или любого другого типа такого типа. Основная особенность этой архитектуры - ее одновременное и инкрементное выполнение.
Фильтр
Фильтр - это независимый преобразователь потока данных или преобразователи потока. Он преобразует данные входящего потока данных, обрабатывает их и записывает преобразованный поток данных по конвейеру для обработки следующим фильтром. Он работает в инкрементном режиме, в котором он начинает работать, как только данные поступают через подключенный канал. Есть два типа фильтров -active filter и passive filter.
Active filter
Активный фильтр позволяет подключенным каналам извлекать данные и выталкивать преобразованные данные. Он работает с пассивным конвейером, который предоставляет механизмы чтения / записи для извлечения и толкания. Этот режим используется в конвейере UNIX и механизме фильтрации.
Passive filter
Пассивный фильтр позволяет подключенным каналам передавать и извлекать данные. Он работает с активным конвейером, который извлекает данные из фильтра и помещает данные в следующий фильтр. Он должен обеспечивать механизм чтения / записи.
Преимущества
Обеспечивает параллелизм и высокую пропускную способность при чрезмерной обработке данных.
Обеспечивает возможность повторного использования и упрощает обслуживание системы.
Обеспечивает модифицируемость и низкую связь между фильтрами.
Обеспечивает простоту, предлагая четкое разделение между любыми двумя фильтрами, соединенными трубой.
Обеспечивает гибкость, поддерживая как последовательное, так и параллельное выполнение.
Недостатки
Не подходит для динамического взаимодействия.
Для передачи данных в форматах ASCII необходим низкий общий знаменатель.
Накладные расходы на преобразование данных между фильтрами.
Не позволяет фильтрам совместно взаимодействовать для решения проблемы.
Сложно настроить эту архитектуру динамически.
Труба
Каналы не имеют состояния и несут двоичный или символьный поток, который существует между двумя фильтрами. Он может перемещать поток данных от одного фильтра к другому. Каналы используют небольшую контекстную информацию и не сохраняют информацию о состоянии между экземплярами.
Архитектура управления процессами
Это тип архитектуры потока данных, в которой данные не являются ни последовательными, ни конвейерными потоками. Поток данных исходит от набора переменных, которые контролируют выполнение процесса. Он разбивает всю систему на подсистемы или модули и связывает их.
Типы подсистем
Архитектура управления процессом будет иметь processing unit для изменения переменных управления процессом и controller unit для расчета суммы изменений.
Блок контроллера должен иметь следующие элементы -
Controlled Variable- Управляемая переменная предоставляет значения для базовой системы и должна измеряться датчиками. Например, скорость в системе круиз-контроля.
Input Variable- Измеряет вход в процесс. Например, температура возвратного воздуха в системе контроля температуры.
Manipulated Variable - Значение управляемой переменной регулируется или изменяется контроллером.
Process Definition - Он включает механизмы для управления некоторыми переменными процесса.
Sensor - Получает значения переменных процесса, имеющих отношение к управлению, и может использоваться в качестве обратной связи для пересчета переменных, которыми управляют.
Set Point - Это желаемое значение контролируемой переменной.
Control Algorithm - Он используется для принятия решения о том, как управлять переменными процесса.
Области применения
Архитектура управления процессом подходит в следующих областях:
Разработка встроенного системного программного обеспечения, при котором система управляется переменными данными управления процессом.
Приложения, целью которых является поддержание заданных свойств выходов процесса при заданных эталонных значениях.
Применимо для автомобильных систем круиз-контроля и систем контроля температуры в зданиях.
Системное программное обеспечение в реальном времени для управления антиблокировочной тормозной системой автомобилей, атомными электростанциями и т. Д.