Cosa intendiamo per Infrastruttura Applicativa

L’ Infrastruttura applicativa può essere vista come l’estensione dell’infrastruttura sistemistica capace di offrire servizi ad un insieme controllato di applicazioni.

image

Questa infrastruttura è un insieme di componenti e servizi che consentono alle applicazioni di comunicare con altrettanti servizi (sia locali che remoti).
L’ Infrastruttura applicativa si occupa qindi di fornire delle funzionalità di base ed avanzate che siano trasversali alle applicazioni oltre ad un insieme di regole sulla modalità di comunicazione che deve essere utilizzata da e per ciascun servizio, rendendo questi dettagli trasparenti alle applicazioni:

image

I servizi di base sono ad esempio Autenticazione, Autorizzazione, Identity Flow, Logging, Instrumentation, Discovery, ecc.. mentre i servizi avanzati (o di runtime) possono essere : Mail, Fax, Extarnal Services, ecc..

L’utilizzo dei servizi consente di realizzare un sistema secondo i canoni Services Oriented Architecture (SOA) rendendo omogenei e interoperabili i servizi esposti dall’enterprise. SOA sfrutta gli standard di mercato come XML/SOAP e WS-* come definizione delle caratteristiche a cui i servizi esposti aderiscono per consentire comunicazioni sicure, scalabili, reliable, interoperabili, …

Le specifiche WS-*, però, definiscono solo le caratteristiche a cui i WS devono sottostare, lasciando l’implementazione libera. In ambito Enterprise tale libertà introduce la necessità di realizzare un’infrastruttura (o framework) che implementi i servizi base di WS-* mettendoli a disposizione dei WS in modo semplice e trasparente. Rendere i servizi sviluppati indipendenti da quelli base è inoltre garanzia di evoluzione: l’infrastruttura di base è in grado di evolvere seguendo i nuovi standard senza richiedere la modifica dei servizi sviluppati. La presenza di un framework, quindi, consente di poter realizzare una parte fondamentale della SOA disaccoppiando le applicazioni di business dalle caratteristiche d'infrastruttura creando un sistema omogeneo, aderente agli standard, facile da manutenere e da evolvere.

L’ Infrastruttura applicativa dovrà inoltre consentire l’implementazione di differenti Message Exchange Pattern (MEP) attraverso tipologie di contratti differenti come ad esempio :

  • Request/Reply
  • OneWay
  • Duplex

L’ Infrastruttura applicativa fornisce quindi dei servizi a valore aggiunto utilizzabili per tutti i servizi definiti all’interno ed all’esterno dell' Enterprise (sia servizi di basso livello sia servizi di business veri e propri), consentendo al programmatore applicativo di concentrarsi sulla logica della funzionalità specifica senza preoccuparsi della parte infrastrutturale. Inoltre consente di separare gli aspetti di gestione e configurazione dal codice di ciascuna funzionalità, permettendo a chi gestisce l’applicazione di modificare le caratteristiche infrastrutturali senza ricompilare l’applicazione. All’interno dei servizi di base l’ Infrastruttura applicativa è in grado di fornire anche le seguenti funzionalità a valore aggiunto:

  • Trasporto di informazioni di contesto indipendenti dai singoli servizi.
  • Caching dei dati restituiti dai servizi
  • Monitoraggio della comunicazione (tracing, performance counters)
  • Indipendenza dei chiamanti dalla locazione fisica dei servizi (indirizzamento dinamico)
  • Gestione centralizzata delle policies ed autoconfigurazione degli endpoint

prossiamanente vediamo come progettare e realizzare una infrastruttura applicativa con .NET

--Mario