Che cos’è SOA? L’architettura orientata ai servizi

Innovare con passione dal 1969

Che cos’è SOA? L’architettura orientata ai servizi

L’architettura orientata ai servizi (SOA) è uno stile di progettazione del software in cui i servizi vengono forniti agli altri componenti dai componenti dell’applicazione, attraverso un protocollo di comunicazione su una rete. I suoi principi sono indipendenti dai fornitori e da altre tecnologie. Nell’architettura orientata ai servizi, una serie di servizi comunicano tra loro in due modi: attraverso il passaggio di dati o attraverso due o più servizi che coordinano un’attività. Questa è solo una delle definizioni di architettura orientata ai servizi. Un articolo su Wikipedia entra molto più in dettaglio.

Caratteristiche dell’architettura orientata ai servizi
Mentre i concetti che definiscono l’architettura orientata ai servizi variano da azienda ad azienda, ci sono sei principi chiave che sovrastano il concetto ampio di architettura orientata ai servizi. Questi valori fondamentali includono:
– Valore aziendale
– Obiettivi strategici
– Interoperabilità intrinseca
– Servizi condivisi
– Flessibilità
– Raffinatezza evolutiva

Ognuno di questi valori fondamentali può essere visto in un continuum dal vecchia modalità distribuita di elaborazione all’architettura orientata ai servizi al cloud computing (qualcosa che è spesso visto come un ramo dell’architettura orientata ai servizi).

Perché l’architettura orientata ai servizi è importante

Ci sono molti vantaggi nell’architettura orientata ai servizi, specialmente in un’azienda basata sui servizi web. Descriveremo alcuni di questi vantaggi qui, in breve:

Utilizza l’architettura orientata ai servizi per creare codice riutilizzabile: non solo questo riduce il tempo speso per il processo di sviluppo, ma non c’è motivo di reinventare la ruota ogni volta che devi creare un nuovo servizio o processo. L’architettura orientata ai servizi consente inoltre di utilizzare più linguaggi perché tutto viene eseguito attraverso un’interfaccia centrale.

Usa l’architettura orientata ai servizi per promuovere l’interazione: con l’architettura orientata ai servizi, viene implementata una forma standard di comunicazione che consente ai vari sistemi e piattaforme di funzionare indipendentemente l’uno dall’altro. Con questa interazione, l’architettura orientata ai servizi è anche in grado di non soffrire le limitazioni imposte dai firewall, consentendo “alle aziende di condividere servizi vitali per le operazioni”.

Utilizza l’architettura orientata ai servizi per la scalabilità: è importante essere in grado di scalare un’azienda per soddisfare le esigenze del cliente, tuttavia alcune dipendenze possono ostacolare tale scalabilità. L’utilizzo dell’architettura orientata ai servizi riduce l’interazione client-servizio, il che consente una maggiore scalabilità.

Utilizza l’architettura orientata ai servizi per ridurre i costi: con l’architettura orientata ai servizi è possibile ridurre i costi pur “mantenendo il livello di fornitura desiderato”. L’utilizzo dell’architettura orientata ai servizi consente alle aziende di limitare la quantità di analisi richiesta durante lo sviluppo di soluzioni personalizzate.

Differenze tra architettura orientata ai servizi e microservizi

Differenza SOA e Microservizi

Microservices, noti anche come Microservice Architecture, è uno “stile di architettura del software che struttura un’applicazione come una raccolta di piccoli servizi autonomi, modellati intorno a un dominio aziendale”. (avevo già scritto approfonditamente dei microservizi)

Sebbene i microservizi e l’architettura orientata ai servizi siano simili in qualche modo, le differenze principali derivano dalla loro funzionalità. I servizi sono, ovviamente, la componente principale di entrambi.

Esistono quattro tipi fondamentali di servizi:
Servizio funzionale: definiscono le operazioni di core business
Servizio Enterprise: implementano le funzionalità definite dai servizi funzionali
Servizio dell’applicazione: questi sono limitati al contenuto dell’applicazione specifica
Servizio infrastruttura: implementa attività non funzionali come autenticazione, controllo, sicurezza e registrazione.

Come puoi vedere, ciascuno di questi servizi si basa su quello precedente, creando un sistema che non è solo facile da usare, ma ti offre una varietà di modi per gestire la tua attività. Come con qualsiasi funzionalità, si tratta di capire cosa funziona meglio per te e per la tua attività.