Architettura orientata all'interazione

L'obiettivo principale dell'architettura orientata all'interazione è separare l'interazione dell'utente dall'astrazione dei dati e dall'elaborazione dei dati aziendali. L'architettura software orientata all'interazione scompone il sistema in tre partizioni principali:

  • Data module - Il modulo dati fornisce l'astrazione dei dati e tutta la logica di business.

  • Control module - Il modulo di controllo identifica il flusso delle azioni di controllo e configurazione del sistema.

  • View presentation module - Il modulo Visualizza presentazione è responsabile della presentazione visiva o audio dell'output dei dati e fornisce anche un'interfaccia per l'input dell'utente.

L'architettura orientata all'interazione ha due stili principali: Model-View-Controller (MVC) e Presentation-Abstraction-Control(PAC). Sia MVC che PAC propongono la scomposizione di tre componenti e vengono utilizzati per applicazioni interattive come applicazioni web con più conversazioni e interazioni con l'utente. Sono diversi nel flusso di controllo e organizzazione. PAC è un'architettura gerarchica basata su agenti, ma MVC non ha una struttura gerarchica chiara.

Model-View-Controller (MVC)

MVC scompone una data applicazione software in tre parti interconnesse che aiutano a separare le rappresentazioni interne delle informazioni dalle informazioni presentate o accettate dall'utente.

Modulo Funzione
Modello Incapsulamento dei dati sottostanti e della logica aziendale
Controller Rispondi all'azione dell'utente e dirigi il flusso dell'applicazione
Visualizza Formatta e presenta i dati dal modello all'utente.

Modello

Il modello è un componente centrale di MVC che gestisce direttamente i dati, la logica e i vincoli di un'applicazione. Consiste di componenti dati, che mantengono i dati grezzi dell'applicazione e la logica dell'applicazione per l'interfaccia.

  • È un'interfaccia utente indipendente e cattura il comportamento del dominio del problema dell'applicazione.

  • È la simulazione software specifica del dominio o l'implementazione della struttura centrale dell'applicazione.

  • Quando si è verificato un cambiamento nel suo stato, invia una notifica alla vista associata per produrre un output aggiornato e al controller per modificare il set di comandi disponibile.

Visualizza

La vista può essere utilizzata per rappresentare qualsiasi output di informazioni in forma grafica come diagramma o grafico. Consiste di componenti di presentazione che forniscono le rappresentazioni visive dei dati

  • Le viste richiedono informazioni dal loro modello e generano una rappresentazione di output per l'utente.

  • Sono possibili più visualizzazioni delle stesse informazioni, come un grafico a barre per la gestione e una visualizzazione tabellare per i contabili.

Controller

Un controller accetta un input e lo converte in comandi per il modello o la vista. Consiste di componenti di elaborazione dell'input che gestiscono l'input dell'utente modificando il modello.

  • Funge da interfaccia tra i modelli e le viste associati e i dispositivi di input.

  • Può inviare comandi al modello per aggiornare lo stato del modello e alla vista associata per modificare la presentazione della vista del modello.

MVC - I

È una versione semplice dell'architettura MVC in cui il sistema è diviso in due sottosistemi:

  • The Controller-View - La visualizzazione del controller funge da interfaccia di input / output e l'elaborazione viene eseguita.

  • The Model - Il modello fornisce tutti i dati e servizi di dominio.

MVC-I Architecture

Il modulo modello notifica al modulo di visualizzazione del controller qualsiasi modifica dei dati in modo che qualsiasi visualizzazione dei dati grafici venga modificata di conseguenza. Il controller intraprende inoltre le azioni appropriate in caso di modifiche.

La connessione tra la visualizzazione del controller e il modello può essere progettata secondo uno schema (come mostrato nell'immagine sopra) di notifica di sottoscrizione in cui la visualizzazione del controller si iscrive al modello e il modello notifica la visualizzazione del controller di eventuali modifiche.

MVC - II

MVC – II è un miglioramento dell'architettura MVC-I in cui il modulo di visualizzazione e il modulo del controller sono separati. Il modulo modello svolge un ruolo attivo come in MVC-I fornendo tutte le funzionalità di base ei dati supportati dal database.

Il modulo di visualizzazione presenta i dati mentre il modulo del controller accetta la richiesta di input, convalida i dati di input, avvia il modello, la visualizzazione, la loro connessione e invia anche l'attività.

MVC-II Architecture

Applicazioni MVC

Le applicazioni MVC sono efficaci per le applicazioni interattive in cui sono necessarie più viste per un singolo modello di dati e per collegare facilmente una nuova o modificare la vista dell'interfaccia.

Le applicazioni MVC sono adatte per applicazioni in cui ci sono chiare divisioni tra i moduli in modo che diversi professionisti possano essere assegnati a lavorare su diversi aspetti di tali applicazioni contemporaneamente.

Advantages

  • Sono disponibili molti toolkit per framework di fornitori MVC.

  • Viste multiple sincronizzate con lo stesso modello di dati.

  • Facile da collegare nuove o sostituire le viste dell'interfaccia.

  • Utilizzato per lo sviluppo di applicazioni in cui professionisti esperti di grafica, professionisti della programmazione e professionisti dello sviluppo di database lavorano in un team di progetto progettato.

Disadvantages

  • Non adatto per applicazioni orientate agli agenti come applicazioni mobili e robotiche interattive.

  • Più coppie di controller e viste basate sullo stesso modello di dati rendono costosa qualsiasi modifica del modello di dati.

  • La divisione tra View e Controller non è chiara in alcuni casi.

Presentazione-Astrazione-Controllo (PAC)

In PAC, il sistema è organizzato in una gerarchia di molti agenti cooperanti (triadi). È stato sviluppato da MVC per supportare i requisiti dell'applicazione di più agenti oltre ai requisiti interattivi.

Ogni agente ha tre componenti:

  • The presentation component - Formatta la presentazione visiva e audio dei dati.

  • The abstraction component - Recupera ed elabora i dati.

  • The control component - Gestisce compiti come il flusso di controllo e comunicazione tra gli altri due componenti.

L'architettura PAC è simile a MVC, nel senso che il modulo di presentazione è come il modulo di visualizzazione di MVC. Il modulo di astrazione assomiglia al modulo modello di MVC e il modulo di controllo è come il modulo controller di MVC, ma differiscono nel flusso di controllo e organizzazione.

Non ci sono connessioni dirette tra il componente di astrazione e il componente di presentazione in ogni agente. Il componente di controllo in ogni agente è responsabile delle comunicazioni con altri agenti.

La figura seguente mostra un diagramma a blocchi per un singolo agente nella progettazione PAC.

PAC con più agenti

Nei PAC composti da più agenti, l'agente di primo livello fornisce i dati principali e le logiche di business. Gli agenti di livello inferiore definiscono presentazioni e dati specifici dettagliati. L'agente di livello intermedio o medio funge da coordinatore degli agenti di basso livello.

  • Ogni agente ha il proprio lavoro assegnato specifico.

  • Per alcuni agenti di medio livello le presentazioni interattive non sono necessarie, quindi non hanno un componente di presentazione.

  • Il componente di controllo è richiesto per tutti gli agenti attraverso i quali tutti gli agenti comunicano tra loro.

La figura seguente mostra gli agenti multipli che prendono parte al PAC.

Applications

  • Efficace per un sistema interattivo in cui il sistema può essere scomposto in molti agenti cooperanti in modo gerarchico.

  • Efficace quando ci si aspetta che l'accoppiamento tra gli agenti sia lento in modo che i cambiamenti su un agente non influiscano sugli altri.

  • Efficace per sistemi distribuiti in cui tutti gli agenti sono distribuiti a distanza e ognuno di essi ha le proprie funzionalità con dati e interfaccia interattiva.

  • Adatto per applicazioni con ricchi componenti GUI in cui ognuno di essi conserva i propri dati correnti e l'interfaccia interattiva e deve comunicare con altri componenti.

Vantaggi

  • Supporto per multi-tasking e multi-visualizzazione

  • Supporto per la riusabilità e l'estensibilità degli agenti

  • Facile collegare un nuovo agente o modificarne uno esistente

  • Supporto per la concorrenza in cui più agenti sono in esecuzione in parallelo in thread diversi o dispositivi o computer diversi

Svantaggi

  • Sovraccarico dovuto al ponte di controllo tra presentazione e astrazione e alla comunicazione dei controlli tra gli agenti.

  • Difficile determinare il giusto numero di agenti a causa dell'accoppiamento lento e dell'elevata indipendenza tra gli agenti.

  • La completa separazione tra presentazione e astrazione per controllo in ogni agente genera complessità di sviluppo poiché le comunicazioni tra agenti avvengono solo tra i controlli degli agenti