Arquitetura Orientada à Interação
O objetivo principal da arquitetura orientada à interação é separar a interação do usuário da abstração de dados e do processamento de dados de negócios. A arquitetura de software orientada para a interação decompõe o sistema em três partições principais -
Data module - Módulo de dados fornece a abstração de dados e toda a lógica de negócios.
Control module - Módulo de controle identifica o fluxo de ações de controle e configuração do sistema.
View presentation module - O módulo de visualização de apresentação é responsável pela apresentação visual ou de áudio da saída de dados e também fornece uma interface para entrada do usuário.
A arquitetura orientada para a interação tem dois estilos principais - Model-View-Controller (MVC) e Presentation-Abstraction-Control(PAC). Tanto o MVC quanto o PAC propõem a decomposição de três componentes e são usados para aplicativos interativos, como aplicativos da web com múltiplas conversas e interações do usuário. Eles são diferentes em seu fluxo de controle e organização. PAC é uma arquitetura hierárquica baseada em agente, mas MVC não possui uma estrutura hierárquica clara.
Model-View-Controller (MVC)
O MVC decompõe um determinado aplicativo de software em três partes interconectadas que ajudam a separar as representações internas das informações das informações apresentadas ou aceitas pelo usuário.
Módulo | Função |
---|---|
Modelo | Encapsulamento de dados subjacentes e lógica de negócios |
Controlador | Responder à ação do usuário e direcionar o fluxo do aplicativo |
Visão | Formata e apresenta os dados do modelo para o usuário. |
Modelo
O modelo é um componente central do MVC que gerencia diretamente os dados, a lógica e as restrições de um aplicativo. Ele consiste em componentes de dados, que mantêm os dados brutos do aplicativo e a lógica do aplicativo para a interface.
É uma interface de usuário independente e captura o comportamento do domínio do problema do aplicativo.
É a simulação de software específico de domínio ou implementação da estrutura central do aplicativo.
Quando houver mudança em seu estado, ele notificará sua visualização associada para produzir saída atualizada e o controlador para alterar o conjunto de comandos disponível.
Visão
A visualização pode ser usada para representar qualquer saída de informação na forma gráfica, como diagrama ou gráfico. Consiste em componentes de apresentação que fornecem as representações visuais dos dados
As visualizações solicitam informações de seu modelo e geram uma representação de saída para o usuário.
São possíveis várias visualizações das mesmas informações, como um gráfico de barras para gerenciamento e uma visualização tabular para contadores.
Controlador
Um controlador aceita uma entrada e a converte em comandos para o modelo ou vista. Consiste em componentes de processamento de entrada que manipulam a entrada do usuário modificando o modelo.
Ele atua como uma interface entre os modelos e visualizações associados e os dispositivos de entrada.
Ele pode enviar comandos ao modelo para atualizar o estado do modelo e à sua vista associada para alterar a apresentação da vista do modelo.
MVC - I
É uma versão simples da arquitetura MVC onde o sistema é dividido em dois subsistemas -
The Controller-View - A visualização do controlador atua como interface de entrada / saída e o processamento é concluído.
The Model - O modelo fornece todos os dados e serviços de domínio.
MVC-I Architecture
O módulo do modelo notifica o módulo de visualização do controlador sobre quaisquer alterações de dados para que qualquer exibição de dados gráficos seja alterada de acordo. O controlador também executa as ações apropriadas sobre as alterações.
A conexão entre a visão do controlador e o modelo pode ser projetada em um padrão (como mostrado na imagem acima) de assinatura-notificação, em que a visão do controlador se inscreve no modelo e o modelo notifica a visão do controlador de quaisquer alterações.
MVC - II
MVC – II é um aprimoramento da arquitetura MVC-I na qual o módulo de visualização e o módulo do controlador são separados. O módulo do modelo desempenha um papel ativo como no MVC-I, fornecendo todas as funcionalidades básicas e dados suportados pelo banco de dados.
O módulo de visualização apresenta dados enquanto o módulo controlador aceita a solicitação de entrada, valida os dados de entrada, inicia o modelo, a visualização, sua conexão e também despacha a tarefa.
MVC-II Architecture
Aplicativos MVC
Os aplicativos MVC são eficazes para aplicativos interativos em que várias visualizações são necessárias para um único modelo de dados e são fáceis de conectar em uma visualização de interface nova ou de alteração.
Os aplicativos MVC são adequados para aplicativos onde há divisões claras entre os módulos, de forma que diferentes profissionais podem ser designados para trabalhar em diferentes aspectos de tais aplicativos simultaneamente.
Advantages
Existem muitos kits de ferramentas de estrutura de fornecedores MVC disponíveis.
Múltiplas visualizações sincronizadas com o mesmo modelo de dados.
Fácil de inserir ou substituir visualizações de interface.
Usado para desenvolvimento de aplicativos em que profissionais com experiência em gráficos, profissionais de programação e profissionais de desenvolvimento de banco de dados estão trabalhando em uma equipe de projeto designada.
Disadvantages
Não é adequado para aplicativos orientados a agentes, como aplicativos móveis e robóticos interativos.
Vários pares de controladores e visualizações com base no mesmo modelo de dados tornam qualquer alteração do modelo de dados cara.
A divisão entre a Visualização e o Controlador não é clara em alguns casos.
Apresentação-Abstração-Controle (PAC)
No PAC, o sistema é organizado em uma hierarquia de muitos agentes cooperantes (tríades). Ele foi desenvolvido a partir do MVC para oferecer suporte aos requisitos de aplicação de vários agentes, além dos requisitos interativos.
Cada agente possui três componentes -
The presentation component - Formata a apresentação visual e sonora de dados.
The abstraction component - Recupera e processa os dados.
The control component - Lida com a tarefa, como o fluxo de controle e comunicação entre os outros dois componentes.
A arquitetura do PAC é semelhante ao MVC, no sentido de que o módulo de apresentação é como o módulo de visualização do MVC. O módulo de abstração se parece com o módulo modelo do MVC e o módulo de controle é como o módulo controlador do MVC, mas eles diferem em seu fluxo de controle e organização.
Não há conexões diretas entre o componente de abstração e o componente de apresentação em cada agente. O componente de controle em cada agente é responsável pelas comunicações com outros agentes.
A figura a seguir mostra um diagrama de blocos para um único agente no design do PAC.
PAC com vários agentes
Em PACs que consistem em vários agentes, o agente de nível superior fornece dados básicos e lógicas de negócios. Os agentes de nível inferior definem dados e apresentações específicas detalhadas. O agente de nível intermediário ou médio atua como coordenador de agentes de nível inferior.
Cada agente tem seu próprio trabalho específico atribuído.
Para alguns agentes de nível médio, as apresentações interativas não são necessárias, portanto, eles não têm um componente de apresentação.
O componente de controle é necessário para todos os agentes por meio dos quais todos os agentes se comunicam entre si.
A figura a seguir mostra os vários agentes que fazem parte do PAC.
Applications
Eficaz para um sistema interativo em que o sistema pode ser decomposto em vários agentes cooperantes de maneira hierárquica.
Eficaz quando se espera que o acoplamento entre os agentes seja frouxo, de modo que as alterações em um agente não afetem os outros.
Eficaz para sistema distribuído onde todos os agentes estão distribuídos de forma remota e cada um deles possui suas próprias funcionalidades com dados e interface interativa.
Adequado para aplicativos com componentes GUI ricos em que cada um deles mantém seus próprios dados atuais e interface interativa e precisa se comunicar com outros componentes.
Vantagens
Suporte para multitarefa e multivisualização
Suporte para reutilização e extensibilidade do agente
Fácil de conectar um novo agente ou alterar um existente
Suporte para simultaneidade onde vários agentes são executados em paralelo em diferentes threads ou diferentes dispositivos ou computadores
Desvantagens
Sobrecarga devido à ponte de controle entre apresentação e abstração e a comunicação de controles entre os agentes.
É difícil determinar o número certo de agentes devido ao acoplamento fraco e à alta independência entre os agentes.
A separação completa de apresentação e abstração por controle em cada agente gera complexidade de desenvolvimento, uma vez que as comunicações entre os agentes só ocorrem entre os controles dos agentes