mercoledì 17 settembre 2014

Architettura informatica a servizi (SOA), cos'è e perchè

I settori produttivi della aziende sono messi sotto pressione dalle proprie strutture decisionali e di controllo che richiedono una sempre maggiore efficienza in ogni aspetto delle operatività. In particolare, richiedono maggiore produttività, velocità e qualità con costi sempre minori.

Per massimizzare l'efficienza uno dei principali aspetti da curare è quello dei pesanti impatti dovuti a sistemi rigidi e costosi.
La flessibilità dei processi e di conseguenza dei sistemi IT, consente di migliorare la produttività senza aumentare i costi. 

Maggiore Flessibilità -> Maggiore Efficienza 

In un contesto IT complesso, la flessibilità si ottiene facendo in modo che sistemi ed applicativi eterogenei, di diversi produttori, sviluppati con diverse tecnologie e software di base, provenienti da molteplici aree funzionali, possano "parlare" e scambiarsi dati in modo intelligente.
Per ottenere ciò è necessario che i sistemi, che hanno funzioni sempre più specializzate, non comunichino semplicemente ma implementino una vera e propria cooperazione applicativa.

Il modo migliore è quello di strutturare e rendere fruibili le diverse funzionalità sotto forma di servizi.

SOA (Service Oriented Architecture) è un approccio architetturale che persegue l’obiettivo di ridurre il gap tra IT ed i processi di business.

Cos'è SOA

Un'architettura IT, costruita seguendo la metodologia SOA, è costituita da servizi indipendenti tra loro che risiedono e sono fruibili in forma distribuita sulla rete.
Quindi in base al modello SOA, ogni funzionalità è resa disponibile sulla rete sotto forma di servizio e deve possedere determinate caratteristiche affinché possa essere riutilizzata ed integrata in un ambiente eterogeneo.

Cos'è un Servizio

La prima necessità per un processo di business è quella di costruire un workflow (una serie di step operativi che implementano una esigenza funzionale).

Tutto ciò si ottiene sui sistemi applicativi realizzando le diverse funzionalità sotto forma di servizi auto-consistenti, che però devono essere anche orchestrabili ed integrabili fra di loro per la composizione di servizi più complessi.

Un servizio quindi può essere definito come una funzionalità, semplice o complessa, che ha le seguenti caratteristiche:
  • Ha un Service Provider (sistema che lo espone ed implementa)
  • Ha uno o più Service Consumer (sistemi client che lo utilizzano)
  • E' definito da interfaccia standard  (documento/contratto che descrive le specifiche con cui ci si può integrare al servizio stesso) pubblicata su un Service Registry 
  • E' ricercabile e recuperabile dinamicamente sulla rete 
  • E' auto-consistente e modulare
  • Ha un funzionamento indipendente dalle tecnologie con le quali è realizzato
  • E' accessibile in modo trasparente rispetto alla sua allocazione
  • E' realizzato in modo tale da permettere la sua integrazione con altri servizi (workflow di servizi).
Tipico Pattern SOA



Articoli Correlati