Service-oriented architecture

architettura informatica

Template:Stub informatica Nell'ambito dell'informatica, con la locuzione inglese di Service-Oriented Architecture (SOA) viene indicata un'architettura software atta a supportare l'uso di servizi (web service) per soddisfare le richieste degli utenti così da consentire l'utilizzo delle singole applicazioni come componenti del processo di business.

Nell'ambito di un'architettura SOA è quindi possibile modificare, in maniera relativamente più semplice, le modalità di interazione tra i servizi, la combinazione nella quale i servizi vengono utilizzati nel processo, così come risulta più agevole aggiungere nuovi servizi e modificare i processi per rispondere alle specifiche esigenze di business: il processo di business non è più vincolato da una specifica piattaforma o da un'applicazione ma può essere considerato come un componente di un processo più ampio e quindi riutilizzato o modificato.

La Service-oriented Architecture si presenta particolarmente adatta per le aziende che presentano una discreta complessità di processi e applicazioni, dal momento che agevola l'interazione tra le diverse realtà aziendali permettendo, al contempo, alle attività di business di sviluppare processi efficienti, sia internamente che esternamente ed aumentarne la flessibilità e l'adattabilità.

Benché molte aziende offrano prodotti che possono formare la base di una SOA va sottolineato che la SOA non è un prodotto.

Tecnologie alla base della SOA

Aspetti dello sviluppo della SOA

La validità di un'architettura orientata ai servizi (SOA) è conseguenza degli elementi e degli standard su cui si fonda. In particolare vanno considerati i seguenti aspetti:

  • Standard aperti: per poter operare in ambienti multipiattaforma è necessario, o quantomeno consigliabile, utilizzare esclusivamente standard aperti quali XML, WSDL e WSS (Web Services Security).
  • Modularità: bisogna trovare il giusto equilibrio tra i servizi erogati da ogni singolo componente, creando un insieme bilanciato di piccoli servizi riutilizzabili per le funzioni comuni e servizi più grandi per processi specifici.
  • Contratti di servizio: WSDL (Web Services Description Language) è la specifica standard per la creazione di contratti di Web Services, un contratto definito avrà come conseguenza servizi più flessibili.
  • ESB (Enterprise Service Bus): La dorsale di pubblicazione dei servizi ed abilitazione delle applicazioni per accedervi. Inoltre include caratteristiche quali adattatori per i sistemi legacy, capacità di orchestrazione dei servizi, autorizzazione e autenticazione lato sicurezza, trasformazione dei dati, supporto per regole di business e capacità di monitorare i service-level agreement.

Collegamenti esterni