Michael Chen | Content Strategist | 28 marzo 2024
La service-oriented architecture (SOA) è un approccio di progettazione software che si concentra sulla creazione di sistemi software funzionali e scalabili a partire da singoli componenti, chiamati servizi. I servizi possono interagire tra loro per eseguire attività, ad esempio consentire a qualcuno di effettuare l'accesso una sola volta e avere poi a disposizione una vasta gamma di applicazioni aziendali. Nella SOA, l'accento è posto sulla modularità, la riutilizzabilità e l'interoperabilità: quando le aziende suddividono le applicazioni complesse in modelli più piccoli e più gestibili, il risultato è una maggiore flessibilità e scalabilità.
I servizi non sono codificati in modo non modificabile nelle applicazioni. Piuttosto, sono pubblicati in un registro e quando un'applicazione desidera utilizzare un servizio, chiede al registro di trovare la versione più recente. In questo modo, i servizi possono essere facilmente modificati o aggiornati da persone senza una conoscenza dettagliata dell'applicazione. Un approccio SOA semplifica l'adattamento alle mutevoli esigenze aziendali e l'integrazione di sistemi che forniscono funzionalità correlate.
Con la SOA, i singoli servizi sono a basso accoppiamento e possono comunicare e trasmettere i dati in base alle esigenze. Ad esempio, l'adozione di un approccio SOA per lo sviluppo di software cloud crea vantaggi, tra cui:
Di seguito sono riportati alcuni esempi di service-oriented architecture.
Una service-oriented architecture (SOA) è un paradigma di progettazione che crea o integra applicazioni con componenti di base autonomi e riutilizzabili, ovvero i servizi, che forniscono funzioni specifiche e possono essere richiamati su una rete. Ogni servizio ha un ambito definito ed è accessibile da altri componenti o servizi all'interno dell'architettura per migliorare le funzionalità e le prestazioni complessive del sistema.
Esempi di service-oriented architecture sono un servizio di elaborazione dei pagamenti, un servizio di gestione dei clienti o un servizio di suggerimento dei prodotto che può essere incorporato in un sito di e-commerce. Altri servizi possono essere molto più semplici, come uno che mostra l'ora attuale in una città dall'altra parte del globo. Come esempio di un potente vantaggio derivante dall'uso di SOA, è possibile cambiare i processori di pagamento senza alterare le applicazioni che devono utilizzare il servizio.
La SOA crea un'infrastruttura software modulare e flessibile, in cui i singoli servizi possono essere sviluppati, testati e implementati in modo indipendente. Due vantaggi chiave sono la facilità di manutenzione e la scalabilità.
La SOA funziona con servizi a basso accoppiamento all'interno del framework di un'applicazione. Ogni servizio funziona come un modulo in grado di fornire l'input/output richiesto. L'applicazione non ha bisogno di conoscere la versione del servizio che sta utilizzando. Invece, controlla un registro e trova il servizio più aggiornato che offre le funzionalità necessarie. Considera il seguente flusso di lavoro del sito web di un retailer creato con un modello SOA.
La SOA accelera lo sviluppo di questo tipo di sito consentendo l'integrazione di servizi in modo standard. In questo esempio, il retailer non solo viene sollevato dall'onere di sviluppare singolarmente ciascuno di questi moduli, ma viene anche liberato dalla necessità di monitorare gli aggiornamenti del servizio. L'IT può semplicemente utilizzare servizi controllati con funzionalità, sicurezza e disponibilità comprovate.
La chiave per lo sviluppo SOA è pensare in modo modulare e capire dove esistono opportunità per l'integrazione dei servizi. Le applicazioni sviluppate nel cloud possono facilmente trarre vantaggio da enormi array di servizi in stile SOA implementati come servizi web.
Un'infrastruttura SOA modulare e flessibile offre grandi vantaggi alle aziende che adottano il cloud. Ecco altre delle tendenze principali.
Qual è un esempio di service-oriented architecture?
Un esempio consumer di service-oriented architecture è un'app per i corridori. Piuttosto che creare strumenti personalizzati per il tracciamento a distanza e le mappe, l'app può integrare servizi per il dispositivo GPS del telefono e un servizio di mappe esistente, come Google Maps. Può anche estrarre informazioni sul meteo locale dal National Weather Service. È compito dell'app presentare i dati di questi servizi in modo impeccabile a vantaggio del corridore.
Qual è la differenza tra SOA e microservizi?
SOA e microservizi hanno un obiettivo simile: fornire alle applicazioni funzionalità attraverso chiamate di funzione basate sulla rete. Tuttavia, la SOA considera l'uso su un livello espansivo e di solito superiore. I microservizi prendono in considerazione l'uso a livello di applicazione e forniscono assistenza per un'attività estremamente specializzata da ripetere in base alle esigenze. Ad esempio, un plugin di autenticazione per un login sicuro sarebbe considerato parte di SOA; tuttavia, un servizio ripetibile che crittografa la password è un microservizio. I microservizi possono essere richiamati all'interno di un servizio SOA o integrati nel progetto più grande. In questo esempio, il servizio di autenticazione utilizzerà il microservizio di cifratura per portare a termine il proprio lavoro. La principale differenza tra i due è l'ambito.
Quali sono le principali caratteristiche di una service-oriented architecture?
Fra le principali caratteristiche di una service-oriented architecture ci sono:
Dove viene utilizzata la service-oriented architecture?
Una service-oriented architecture può essere utilizzata per quasi tutte le applicazioni, purché esistano servizi autonomi per soddisfare i requisiti del sistema. Grazie all'ampio ecosistema dello sviluppo dei servizi, la maggior parte dei creatori di software può trovare il servizio per soddisfare i suoi bisogni specifici: anche il progetto più personalizzato sarà ancora in grado di utilizzare un servizio indipendente per qualcosa come l'autenticazione dell'identità o l'estrazione di dati della mappa.