Учебники

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Недостатки

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

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

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

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

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

Внешний контроль требуется для реализации.

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

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

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

Фильтр

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

Активный фильтр

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

Пассивный фильтр

Пассивный фильтр позволяет подключенным каналам вставлять и выводить данные. Он работает с активным каналом, который извлекает данные из фильтра и помещает данные в следующий фильтр. Он должен обеспечивать механизм чтения / записи.

Пассивный фильтр

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

  • Обеспечивает параллелизм и высокую пропускную способность для чрезмерной обработки данных.

  • Обеспечивает возможность повторного использования и упрощает обслуживание системы.

  • Обеспечивает модифицируемость и низкую связь между фильтрами.

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

  • Обеспечивает гибкость, поддерживая как последовательное, так и параллельное выполнение.

Обеспечивает параллелизм и высокую пропускную способность для чрезмерной обработки данных.

Обеспечивает возможность повторного использования и упрощает обслуживание системы.

Обеспечивает модифицируемость и низкую связь между фильтрами.

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

Обеспечивает гибкость, поддерживая как последовательное, так и параллельное выполнение.

Недостатки

  • Не подходит для динамического взаимодействия.

  • Для передачи данных в форматах ASCII необходим низкий общий знаменатель.

  • Затраты на преобразование данных между фильтрами.

  • Не позволяет фильтрам взаимодействовать друг с другом для решения проблемы.

  • Сложно настроить эту архитектуру динамически.

Не подходит для динамического взаимодействия.

Для передачи данных в форматах ASCII необходим низкий общий знаменатель.

Затраты на преобразование данных между фильтрами.

Не позволяет фильтрам взаимодействовать друг с другом для решения проблемы.

Сложно настроить эту архитектуру динамически.

труба

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

Архитектура управления процессом

Это тип архитектуры потока данных, в котором данные не являются ни последовательным, ни конвейерным потоком. Поток данных поступает из набора переменных, которые контролируют выполнение процесса. Он разбивает всю систему на подсистемы или модули и связывает их.

Типы подсистем

Архитектура управления процессом будет иметь блок обработки для изменения переменных управления процессом и блок контроллера для вычисления количества изменений.

Блок контроллера должен иметь следующие элементы —

  • Управляемая переменная — Управляемая переменная предоставляет значения для базовой системы и должна измеряться датчиками. Например, скорость в системе круиз-контроля.

  • Переменная ввода — измеряет вход в процесс. Например, температура возвратного воздуха в системе контроля температуры

  • Управляемая переменная — значение управляемой переменной регулируется или изменяется контроллером.

  • Определение процесса — включает в себя механизмы для управления некоторыми переменными процесса.

  • Датчик — Получает значения переменных процесса, относящихся к управлению, и может использоваться в качестве ссылки обратной связи для пересчета манипулируемых переменных.

  • Уставка — это желаемое значение для контролируемой переменной.

  • Алгоритм управления — используется для принятия решения о том, как манипулировать переменными процесса.

Управляемая переменная — Управляемая переменная предоставляет значения для базовой системы и должна измеряться датчиками. Например, скорость в системе круиз-контроля.

Переменная ввода — измеряет вход в процесс. Например, температура возвратного воздуха в системе контроля температуры

Управляемая переменная — значение управляемой переменной регулируется или изменяется контроллером.

Определение процесса — включает в себя механизмы для управления некоторыми переменными процесса.

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

Уставка — это желаемое значение для контролируемой переменной.

Алгоритм управления — используется для принятия решения о том, как манипулировать переменными процесса.

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

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

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

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

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

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