Definizione di SOA (Service Oriented Architecture)
Un’architettura software che trasforma le applicazioni di business in un insieme di servizi, che erogano funzionalità sulla base delle esigenze aziendali. Indipendentemente dalla tecnologia di implementazione, ciò che caratterizza una SOA è la logica dei servizi indipendenti, con interfacce definite, che possono essere chiamati per svolgere il loro lavoro in una modalità standard, senza che il singolo servizio abbia a priori informazioni sull’applicazione che lo chiamerà e senza che l’applicazione chiamante debba conoscere le modalità in cui il servizio svolgerà il proprio compito.
L’adozione di un’architettura SOA risulta particolarmente vantaggiosa per aziende caratterizzate da strutture complesse, sia in termini di processi di business sia di applicazioni di supporto: generalmente il portafoglio applicativo di queste aziende è costituito da soluzioni tecnologiche differenti che devono essere integrate per dare effettivamente valore all’azienda. Le SOA rappresentano una soluzione al problema dell’integrazione di questi diversi “silos” aziendali, dal momento che consentono di “componentizzare” il sistema permettendogli di erogare i singoli servizi, senza necessità di smontare i silos verticali ma creando al di sopra uno strato di servizi opportunamente gestito. Si tratta quindi di un’evoluzione del concetto di middleware: dall’integrazione delle applicazioni della singola azienda si passa all’integrazione dei servizi, sia di applicazioni interne che esterne all’azienda stessa, tramite reti extra-aziendali.
Attualmente i web services sono la soluzione tecnologica più usata per realizzare una SOA, grazie all’utilizzo di linguaggi e protocolli standard per il mondo web come XML e SOAP.