Arquitetura de fluxo de dados

Na arquitetura de fluxo de dados, todo o sistema de software é visto como uma série de transformações em partes consecutivas ou conjunto de dados de entrada, onde os dados e as operações são independentes uns dos outros. Nesta abordagem, os dados entram no sistema e então fluem pelos módulos um por vez até que sejam atribuídos a algum destino final (saída ou armazenamento de dados).

As conexões entre os componentes ou módulos podem ser implementadas como fluxo de E / S, buffers de E / S, tubulações ou outros tipos de conexões. Os dados podem ser voados na topologia de grafo com ciclos, em uma estrutura linear sem ciclos, ou em uma estrutura do tipo árvore.

O principal objetivo desta abordagem é atingir as qualidades de reutilização e modificabilidade. É adequado para aplicativos que envolvem uma série bem definida de transformações de dados independentes ou cálculos em entradas e saídas definidas de maneira ordenada, como compiladores e aplicativos de processamento de dados de negócios. Existem três tipos de sequências de execução entre os módulos -

  • Sequencial em lote
  • Modo de tubulação e filtro ou pipeline não sequencial
  • Controle do processo

Sequencial em lote

Sequencial em lote é um modelo clássico de processamento de dados, no qual um subsistema de transformação de dados pode iniciar seu processo somente depois que seu subsistema anterior está completamente concluído -

  • O fluxo de dados transporta um lote de dados como um todo de um subsistema para outro.

  • As comunicações entre os módulos são realizadas através de arquivos intermediários temporários que podem ser removidos por subsistemas sucessivos.

  • É aplicável para os aplicativos em que os dados são agrupados e cada subsistema lê arquivos de entrada relacionados e grava arquivos de saída.

  • A aplicação típica dessa arquitetura inclui processamento de dados de negócios, como cobrança bancária e de serviços públicos.

Vantagens

  • Fornece divisões mais simples em subsistemas.

  • Cada subsistema pode ser um programa independente trabalhando em dados de entrada e produzindo dados de saída.

Desvantagens

  • Fornece alta latência e baixa taxa de transferência.

  • Não fornece simultaneidade e interface interativa.

  • O controle externo é necessário para a implementação.

Arquitetura de tubulação e filtro

Essa abordagem enfatiza a transformação incremental de dados por componentes sucessivos. Nessa abordagem, o fluxo de dados é orientado por dados e todo o sistema é decomposto em componentes de fonte de dados, filtros, tubos e coletores de dados.

As conexões entre os módulos são fluxos de dados que são o buffer first-in / first-out que pode ser um fluxo de bytes, caracteres ou qualquer outro tipo desse tipo. A principal característica desta arquitetura é sua execução simultânea e incrementada.

Filtro

Um filtro é um transformador de fluxo de dados independente ou transdutores de fluxo. Ele transforma os dados do fluxo de dados de entrada, os processa e grava o fluxo de dados transformado em um tubo para o próximo filtro processar. Funciona em modo incremental, no qual começa a funcionar assim que os dados chegam pelo tubo conectado. Existem dois tipos de filtros -active filter e passive filter.

Active filter

O filtro ativo permite que os tubos conectados puxem e eliminem os dados transformados. Ele opera com tubo passivo, que fornece mecanismos de leitura / gravação para puxar e empurrar. Este modo é usado no canal UNIX e mecanismo de filtro.

Passive filter

O filtro passivo permite que os tubos conectados enviem e retirem dados. Ele opera com um canal ativo, que extrai dados de um filtro e os envia para o próximo filtro. Deve fornecer mecanismo de leitura / gravação.

Vantagens

  • Fornece simultaneidade e alto rendimento para processamento excessivo de dados.

  • Oferece capacidade de reutilização e simplifica a manutenção do sistema.

  • Fornece modificabilidade e baixo acoplamento entre filtros.

  • Oferece simplicidade, oferecendo divisões claras entre quaisquer dois filtros conectados por tubo.

  • Oferece flexibilidade ao suportar execução sequencial e paralela.

Desvantagens

  • Não é adequado para interações dinâmicas.

  • Um baixo denominador comum é necessário para a transmissão de dados em formatos ASCII.

  • Sobrecarga da transformação de dados entre filtros.

  • Não fornece uma maneira de os filtros interagirem cooperativamente para resolver um problema.

  • É difícil configurar essa arquitetura dinamicamente.

Tubo

Pipes não têm estado e carregam fluxos binários ou de caracteres que existem entre dois filtros. Ele pode mover um fluxo de dados de um filtro para outro. Pipes usam poucas informações contextuais e não retêm informações de estado entre as instanciações.

Arquitetura de Controle de Processo

É um tipo de arquitetura de fluxo de dados em que os dados não são sequenciais em lote nem fluxo em pipeline. O fluxo de dados vem de um conjunto de variáveis, que controla a execução do processo. Ele decompõe todo o sistema em subsistemas ou módulos e os conecta.

Tipos de subsistemas

Uma arquitetura de controle de processo teria um processing unit para alterar as variáveis ​​de controle do processo e um controller unit para calcular a quantidade de mudanças.

Uma unidade controladora deve ter os seguintes elementos -

  • Controlled Variable- Variável controlada fornece valores para o sistema subjacente e deve ser medida por sensores. Por exemplo, velocidade no sistema de controle de cruzeiro.

  • Input Variable- Mede uma entrada para o processo. Por exemplo, a temperatura do ar de retorno no sistema de controle de temperatura

  • Manipulated Variable - O valor da variável manipulada é ajustado ou alterado pelo controlador.

  • Process Definition - Inclui mecanismos para manipulação de algumas variáveis ​​de processo.

  • Sensor - Obtém valores de variáveis ​​de processo pertinentes ao controle e pode ser usado como referência de feedback para recalcular variáveis ​​manipuladas.

  • Set Point - É o valor desejado para uma variável controlada.

  • Control Algorithm - É usado para decidir como manipular variáveis ​​de processo.

Áreas de aplicação

A arquitetura de controle de processo é adequada nos seguintes domínios -

  • Projeto de software de sistema embutido, onde o sistema é manipulado por dados variáveis ​​de controle de processo.

  • Aplicações, cujo objetivo é manter as propriedades especificadas das saídas do processo em determinados valores de referência.

  • Aplicável para controle de cruzeiro de carro e sistemas de controle de temperatura de edifícios.

  • Software de sistema em tempo real para controlar freios antibloqueio de automóveis, usinas nucleares, etc.