Server Oriented Architecture: la SOA in pillole
La server oriented architecture, riassunta con l’acronimo SOA, è un insieme di architetture informatiche che supportano dei servizi web (service) realizzati in maniera modulare, risultando così facilmente intercambiabili o sostituibili.
La caratteristica fondamentale che contraddistingue questa architettura software, è la capacità dei servizi di dialogare con diversi sistemi, tramite appositi collegamenti in rete. L’utente finale può usufruire facilmente delle suddette funzionalità, attraverso un’interfaccia comprensibile e intuitiva (a prescindere dal linguaggio utilizzato).
Come funziona la server oriented architecture
Il componente principale della struttura SOA è il servizio. Si tratta di una funzionalità di tipo business, dotata di interfaccia propria, che svolge un compito specifico. Per poter essere ritenuto compatibile con un’architettura SOA, un servizio deve soddisfare alcune caratteristiche ben definite e imprescindibili:
- deve essere recuperabile dinamicamente e ricercabile;
- è importante che sia modulare e autocontenuto;
- deve possedere un’interfaccia chiara e indipendente dall’implementazione a cui viene destinato;
- non deve essere saldamente legato a un altro servizio, sia a livello tecnologico che funzionale (loosely coupled);
- deve poter essere associato in maniera trasparente rispetto all’allocazione;
- l’interfaccia del servizio deve essere, preferibilmente, a grana grossa (coarse-grained);
- deve essere componibile, in modo da potersi integrare con facilità nei processi di business.
Oltre a questi aspetti che rendono il servizio funzionale, esso deve anche essere pubblicabile sulla rete, con un’interfaccia ricercabile e invocabile a prescindere dal linguaggio su cui si basa la piattaforma che effettua la richiesta.
Questa versatilità dà la possibilità alle aziende di intrecciare più servizi contemporaneamente, integrandoli facilmente nei propri applicativi, senza la necessità di intervenire direttamente sulla struttura del software. Più i servizi vengono correlati l’uno all’altro, più complessa diventa l’architettura (ma, al contempo, la sua gestione risulta facile e immediata).
Come si può ben comprendere, la server oriented architecture è la soluzione ideale per chi è alla ricerca di servizi web dinamici e facili da interfacciare con software già esistenti. Il sistema modulare consente aggiornamenti più rapidi e sostituzioni prive di conseguenze.
La struttura logica alla base della SOA
La server oriented architecture per lavorare correttamente ha bisogno di una struttura logica che ne governi le varie fasi. Lo schema per spiegarne il funzionamento può essere suddiviso in quattro blocchi, che rappresentano (ciascuno dei quali) una diversa fase del processo che porta un servizio a essere erogato all’utente finale:
- service consumer: è costituito dall’applicazione (o da un altro servizio) che richiede il servizio specifico;
- service provider: chi fornisce il servizio ed esporta la sua interfaccia;
- service contract: è la codifica con cui viene richiesto il servizio e la relativa risposta. Varia a seconda dell’applicazione o del programma che ne fa richiesta;
- service registry: è l’elenco in rete di tutti i servizi disponibili a cui viene effettuata la richiesta.
Riassumendo, il funzionamento tipico di una SOA è il seguente: il service consumer effettua la richiesta di un servizio al service provider, attraverso il service contract; il service provider risponde (con la medesima codifica contenuta nel service contract) dopo aver verificato l’effettiva presenza del servizio richiesto nel suo service registry e provvede a inviarlo.
La server oriented architecture offre enormi vantaggi alle aziende
Un’infrastruttura così dinamica è in grado di dare alle aziende che scelgono di adottarla vantaggi davvero interessanti. La flessibilità offerta dai servizi modulari, come è già stato detto, è perfetta per aggiornare agevolmente i software e mantenerli sempre al passo con i tempi.
Inoltre, anche la competitività viene incentivata, grazie a strumenti costantemente aggiornati, in grado di rispondere alle mutevoli domande del mercato e degli utenti.
