Cos’è una Architettura Service Oriented

Condividi questo articolo:


Cos’è l’architettura orientata ai servizi?

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

Caratteristiche dell’architettura orientata ai servizi

Mentre i concetti che definiscono l’Architettura Orientata ai Servizi variano da azienda a azienda, ci sono sei principi chiave che sovrastano l’ampio concetto 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 su un continuum che va dal vecchio formato distributed computing al Service-Oriented Architecture al cloud computing (qualcosa che è spesso visto come una propaggine del Service-Oriented Architecture).

Modelli di Architettura Orientata ai Servizi

Ci sono tre ruoli in ciascuno dei blocchi di costruzione dell’architettura orientata ai servizi: fornitore di servizi, mediatore di servizi, registro di servizi, archivio di servizi e richiedente/consumatore di servizi.

Il fornitore di servizi lavora in collaborazione con il registro dei servizi, discutendo i perché e le modalità dei servizi offerti, come la sicurezza, la disponibilità, i costi e altro ancora. Questo ruolo determina anche la categoria del servizio e l’eventuale necessità di accordi commerciali.

Il broker del servizio mette a disposizione di chi ne fa richiesta le informazioni relative al servizio. L’ambito del broker è determinato da chi lo implementa.

Il richiedente del servizio individua le voci nel registro del broker e le vincola al fornitore del servizio. Può essere o meno in grado di accedere a più servizi; ciò dipende dalla capacità del richiedente del servizio.

Implementazione dell’architettura orientata ai servizi

Quando si tratta di implementare un’architettura orientata ai servizi (SOA), esiste un’ampia gamma di tecnologie che possono essere utilizzate, a seconda di quale sia il vostro obiettivo finale e di ciò che state cercando di realizzare.

Tipicamente, l’architettura orientata ai servizi è implementata con servizi web, il che rende i “blocchi funzionali accessibili su protocolli internet standard”.

Un esempio di standard di servizio web è SOAP, che sta per Simple Object Access Protocol. In poche parole, SOAP “è una specifica di protocollo di messaggistica per lo scambio di informazioni strutturate nell’implementazione di servizi web nelle reti di computer. Anche se all’inizio non è stato ben accolto, dal 2003 il SOAP ha acquisito una maggiore popolarità e sta diventando sempre più diffuso e accettato. Altre opzioni per l’implementazione di Service-Oriented Architecture includono Jini, COBRA, o REST.

È importante notare che le architetture possono “operare indipendentemente da tecnologie specifiche”, il che significa che possono essere implementate in vari modi, inclusa la messaggistica, come ActiveMQ, Apache Thrift e SORCER.

Perché l’architettura orientata ai servizi è importante

Ci sono molti vantaggi in un’architettura orientata ai servizi, specialmente in un’attività basata su servizi web. Qui di seguito ne descriveremo in breve alcuni di questi vantaggi:

Usare l’architettura orientata ai servizi per creare codice riutilizzabile:

Non solo questo riduce il tempo speso nel processo di sviluppo, ma non c’è motivo di reinventare la ruota di codifica ogni volta che è necessario creare un nuovo servizio o processo. L’architettura orientata ai servizi consente anche di utilizzare più linguaggi di codifica perché tutto passa attraverso un’interfaccia centrale.

Utilizzate l’Architettura Orientata ai Servizi per promuovere l’interazione:

Con l’Architettura Orientata ai Servizi, viene messa in atto una forma standard di comunicazione che permette ai vari sistemi e piattaforme di funzionare indipendentemente l’uno dall’altro. Con questa interazione, l’Architettura Orientata ai Servizi è anche in grado di lavorare intorno ai firewall, permettendo “alle aziende di condividere servizi che sono vitali per le operazioni”.

Utilizzare 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 cliente-servizio, il che consente una maggiore scalabilità.

Utilizzare l’architettura orientata ai servizi per ridurre i costi:

Con l’Architettura Orientata ai Servizi, è possibile ridurre i costi pur mantenendo “il livello di output desiderato”. L’utilizzo di un’architettura orientata ai servizi consente alle aziende di limitare la quantità di analisi necessaria per lo sviluppo di soluzioni personalizzate.

Come l’architettura orientata ai servizi e il cloud computing lavorano insieme

In primo luogo, è importante notare che l’architettura orientata ai servizi può funzionare con o senza il cloud computing, anche se sempre più aziende stanno spostando l’archiviazione dei file nel cloud, quindi ha senso utilizzare insieme il cloud computing e l’architettura orientata ai servizi.

In poche parole, l’utilizzo del cloud computing permette agli utenti di implementare in modo semplice e immediato servizi su misura per le esigenze dei loro clienti, “senza bisogno di consultare un reparto IT”.

Un aspetto negativo dell’uso combinato di Service-Oriented Architecture e del cloud computing è che alcuni aspetti di esso non vengono valutati, come la sicurezza e la disponibilità. Quando si utilizza il cloud computing, gli utenti sono spesso alla mercé del fornitore.

Una delle principali sfide che le aziende devono affrontare quando uniscono il cloud computing e l’architettura orientata ai servizi è l’integrazione dei dati e dei sistemi esistenti nella soluzione cloud. Ci deve essere continuità dall’inizio alla fine affinché ci sia una transizione senza soluzione di continuità. È inoltre importante tenere presente che non tutti gli aspetti IT possono essere esternalizzati al cloud – ci sono alcune cose che devono ancora essere fatte manualmente.

Per ulteriori informazioni su come l’architettura orientata ai servizi e il cloud computing lavorano insieme, consultare qui.

La differenza tra l’architettura orientata ai servizi e il SaaS

Abbiamo parlato molto di cosa sia l’architettura orientata ai servizi e di come possa essere utilizzata per far progredire il vostro business. Ma c’è anche il SaaS (Software as a Service), che può anche essere utilizzato per far progredire il vostro business. Vi starete chiedendo che cos’è il SaaS e come si differenzia dall’architettura orientata ai servizi. In breve, le risorse disponibili attraverso il SaaS sono applicazioni software. Una componente chiave è che l’infrastruttura SaaS è “disponibile, ma nascosta, agli utenti”. Un vantaggio del SaaS è che gli utenti non devono sia installare che mantenere il software, il che elimina qualsiasi requisito complesso. Con il SaaS, inoltre, il cliente non necessita di alcuna licenza iniziale, il che porta a costi inferiori perché i fornitori mantengono una sola applicazione.

Differenze tra l’architettura orientata ai servizi e i microservizi

Microservices, noto anche come Microservice Architecture, è uno “stile architettonico che struttura un’applicazione come un insieme di piccoli servizi autonomi, modellati intorno a un dominio aziendale”.

Mentre i microservizi e l’architettura orientata ai servizi sono per certi versi simili, le differenze principali riguardano la loro funzionalità. I servizi sono, ovviamente, la componente principale di entrambi. Ci sono quattro tipi di servizi di base:

  • Servizi funzionali: definiscono le operazioni di core business
  • Enterprise service: implementano le funzionalità definite dai servizi funzionali
  • Servizio di applicazione: questi si limitano a contenuti specifici dell’applicazione
  • Servizio infrastruttura: implementa compiti non funzionali come l’autenticazione, l’auditing, la sicurezza e la registrazione

Come potete vedere, ognuno di questi servizi si basa su quello che lo precede, creando un sistema che non solo è facile da usare, ma vi fornisce una varietà di modi per gestire il vostro business. Come per qualsiasi funzionalità, si tratta di capire cosa funziona meglio per voi e per la vostra azienda.

Potete saperne di più sull’architettura orientata ai servizi e sui microservizi qui.

Alcune riflessioni finali sull’architettura orientata ai servizi

Come potete immaginare, l’architettura orientata ai servizi può essere un po’ difficile da decifrare, ma una volta che avrete capito i dadi e i bulloni e i vantaggi che può offrire alla vostra azienda, sarete entusiasti di averla scoperta.

Abbiamo fornito diverse eccellenti risorse di architettura orientata ai servizi in tutto questo articolo e abbiamo un paio di altri articoli in arrivo che faranno un tuffo più profondo nel concetto e vi forniranno ancora più risorse per aiutarvi a spingere il vostro business al livello successivo.

Non importa in quale direzione decidiate di andare quando fornite servizi ai vostri clienti, è importante tenere a mente che cose diverse funzioneranno per persone diverse. Anche se non potete fornire servizi personalizzati per ogni singolo cliente che avete assunto, potete fornire una gamma di servizi che si adatta alle esigenze più comuni dei vostri clienti.

Nei prossimi articoli, guarderemo al Web 2.0 e ci immergeremo più a fondo nei microservizi di architettura orientata ai servizi.


Per ulteriori informazioni visita il sito: immagi.net

Condividi questo articolo: