Архитектура потока данных

В архитектуре потока данных вся программная система рассматривается как серия преобразований последовательных частей или набора входных данных, при этом данные и операции не зависят друг от друга. В этом подходе данные поступают в систему, а затем проходят через модули по одному, пока они не будут назначены какому-либо конечному месту назначения (выходу или хранилищу данных).

Соединения между компонентами или модулями могут быть реализованы как поток ввода-вывода, буферы ввода-вывода, конвейерные соединения или другие типы соединений. Данные могут передаваться в топологии графа с циклами, в линейной структуре без циклов или в древовидной структуре.

Основная цель этого подхода - добиться повторного использования и изменяемости. Он подходит для приложений, которые включают четко определенную серию независимых преобразований данных или вычислений на упорядоченно определенных входных и выходных данных, таких как компиляторы и приложения для обработки бизнес-данных. Между модулями существует три типа последовательности выполнения:

  • Пакетная последовательная
  • Труба и фильтр или непоследовательный конвейерный режим
  • Контроль над процессом

Пакетный последовательный

Последовательная пакетная обработка данных - это классическая модель обработки данных, в которой подсистема преобразования данных может инициировать свой процесс только после того, как ее предыдущая подсистема полностью завершится -

  • Поток данных переносит пакет данных в целом от одной подсистемы к другой.

  • Связь между модулями осуществляется через временные промежуточные файлы, которые могут быть удалены последовательными подсистемами.

  • Это применимо для тех приложений, где данные группируются, и каждая подсистема читает связанные входные файлы и записывает выходные файлы.

  • Типичное применение этой архитектуры включает обработку бизнес-данных, такую ​​как банковское дело и выставление счетов за коммунальные услуги.

Преимущества

  • Обеспечивает более простое разделение на подсистемы.

  • Каждая подсистема может быть независимой программой, работающей с входными данными и производящей выходные данные.

Недостатки

  • Обеспечивает высокую задержку и низкую пропускную способность.

  • Не обеспечивает параллелизма и интерактивного интерфейса.

  • Для реализации требуется внешний контроль.

Архитектура труб и фильтров

Этот подход делает упор на постепенное преобразование данных последовательными компонентами. В этом подходе поток данных управляется данными, и вся система разбивается на компоненты: источник данных, фильтры, каналы и приемники данных.

Связи между модулями представляют собой поток данных, который является буфером «первым пришел / первым вышел», который может быть потоком байтов, символов или любого другого типа такого типа. Основная особенность этой архитектуры - ее одновременное и инкрементное выполнение.

Фильтр

Фильтр - это независимый преобразователь потока данных или преобразователи потока. Он преобразует данные входящего потока данных, обрабатывает их и записывает преобразованный поток данных по конвейеру для обработки следующим фильтром. Он работает в инкрементном режиме, в котором он начинает работать, как только данные поступают через подключенный канал. Есть два типа фильтров -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 - Он используется для принятия решения о том, как управлять переменными процесса.

Области применения

Архитектура управления процессом подходит в следующих областях:

  • Разработка встроенного системного программного обеспечения, при котором система управляется переменными данными управления процессом.

  • Приложения, целью которых является поддержание заданных свойств выходов процесса при заданных эталонных значениях.

  • Применимо для автомобильных систем круиз-контроля и систем контроля температуры в зданиях.

  • Системное программное обеспечение в реальном времени для управления антиблокировочной тормозной системой автомобилей, атомными электростанциями и т. Д.