Cosè larchitettura orientata ai servizi?

Larchitettura orientata ai servizi (SOA) è emersa nella prima parte di questo secolo come evoluzione del calcolo distribuito. Prima della SOA, i servizi erano intesi come il risultato finale del processo di sviluppo dellapplicazione. In SOA, lapplicazione stessa è composta da servizi. I servizi possono essere forniti individualmente o combinati come componenti in un servizio più ampio e composito.

I servizi interagiscono in rete utilizzando un protocollo come REST o SOAP (Simple Object Access Protocol). I servizi sono liberamente accoppiati, il che significa che linterfaccia del servizio è indipendente dallimplementazione sottostante. Gli sviluppatori o gli integratori di sistemi possono comporre uno o più servizi in unapplicazione senza necessariamente sapere come viene implementato ogni servizio.

Questo articolo è una panoramica di Java SOA e delle caratteristiche chiave di un architettura orientata ai servizi implementata utilizzando servizi web basati su SOAP. Metterò inoltre a confronto brevemente SOA e microservizi e discuterò la differenza tra servizi Web RESTful e basati su SOAP in Java.

Perché larchitettura orientata ai servizi?

SOA affronta tre sfide aziendali comuni :

  • Rispondi rapidamente ai cambiamenti aziendali.
  • Sfrutta gli investimenti infrastrutturali esistenti.
  • Supporta nuovi canali di interazione con clienti, partner e fornitori.

Linfrastruttura aziendale è eterogenea tra sistemi operativi, applicazioni, software di sistema e infrastruttura applicativa. Di conseguenza, molti sistemi aziendali sono costituiti da applicazioni complesse e incoerenti che forniscono un gamma di servizi interdipendenti. Le applicazioni esistenti che eseguono i processi aziendali correnti sono fondamentali, quindi iniziare da zero o modificarle è una proposta delicata. Ma le aziende devono essere in grado di modificare ed espandere linfrastruttura tecnica per soddisfare le esigenze aziendali.

As rispetto a un archi monolitico tecture, la natura debolmente accoppiata di SOA rende relativamente semplice collegare nuovi servizi o aggiornare i servizi esistenti per nuove esigenze aziendali. Offre inoltre la possibilità di rendere i servizi fruibili attraverso diversi canali e di esporre le applicazioni legacy come servizi, salvaguardando così gli investimenti nellinfrastruttura.

Poiché sono liberamente accoppiati, i componenti SOA possono essere modificati con un impatto minimo su altri componenti . I componenti possono anche essere aggiunti allarchitettura in modo standardizzato e possono essere ridimensionati per indirizzare il carico.

Come esempio, si consideri come unazienda potrebbe utilizzare una serie di applicazioni esistenti per creare un nuovo, applicazione della catena di fornitura composita. Sebbene le applicazioni esistenti siano eterogenee e distribuite su vari sistemi, le loro funzionalità sono esposte e accessibili tramite interfacce standard.

Matthew Tyson

Figura 1. Applicazione della catena di fornitura in unarchitettura orientata ai servizi

Caratteristiche chiave della SOA

SOA può essere semplice come un singolo componente che consuma servizi forniti da un altro componente o sofisticato come una gamma di componenti che interagiscono tramite un bus di servizi aziendali come ESB di MuleSoft. Indipendentemente dalla scala, la chiave per unimplementazione SOA di successo è utilizzare la minor complessità possibile per raggiungere i tuoi obiettivi. La tua prima e ultima domanda dovrebbe sempre essere: questo design soddisfa i nostri requisiti aziendali?

Indipendentemente dalla scala o dalla complessità, il modello di unarchitettura orientata ai servizi è più o meno lo stesso:

  • I fornitori di servizi espongono gli endpoint e descrivono il file azioni disponibili su ciascun endpoint.
  • I consumatori di servizi emettono richieste e utilizzano risposte.
  • I fornitori di servizi generano messaggi per gestire le richieste.

Servizio di implementazione- architettura orientata

Per implementare SOA si inizia con larchitettura di servizio di base, quindi si fornisce linfrastruttura, ovvero i protocolli e altri strumenti che consentono la comunicazione e linteroperabilità. La Figura 2 mostra un diagramma di una tipica architettura di servizio.

Matthew Tyson

Figura 2. Unarchitettura di servizio di esempio

In questo diagramma, tre consumatori invocano servizi inviando messaggi a un bus di servizi aziendali, che trasforma e instrada i messaggi a unimplementazione del servizio appropriata . Un motore di regole aziendali incorpora le regole aziendali in un servizio o tra i servizi. Un livello di gestione dei servizi gestisce attività come controllo, fatturazione e registrazione.

I componenti di questa architettura sono liberamente accoppiati, quindi possono essere sostituiti o aggiornati con un impatto relativamente minimo sullapplicazione nel suo complesso. Ciò offre allazienda la flessibilità di aggiungere o aggiornare i processi aziendali secondo necessità. Nella maggior parte dei casi, le modifiche ai singoli servizi non dovrebbero influire notevolmente su altri servizi.

Servizi web basati su SOAP

I servizi web implementati usando SOAP sono ancora più rigidi di unimplementazione di servizi web o microservizi RESTful, ma molto più flessibili rispetto ai primi giorni di SOA. Qui ci limiteremo a esaminare i protocolli di alto livello richiesti per i servizi Web basati su SOAP.

SOAP, WSDL e XSD

SOAP, WSDL e XSD sono linfrastruttura fondamentale di unimplementazione di un servizio Web basato su SOAP. WSDL viene utilizzato per descrivere il servizio e SOAP è il livello di trasporto per linvio di messaggi tra consumatori e fornitori di servizi. I servizi comunicano con messaggi definiti formalmente utilizzando XML Schema (XSD). Puoi pensare a WSDL come interfaccia del servizio (vagamente analoga a uninterfaccia Java). Limplementazione viene eseguita in classi Java e la comunicazione attraverso la rete avviene tramite SOAP. Dal punto di vista funzionale, un consumatore cerca un servizio, ottiene il WSDL per quel servizio, quindi richiama il servizio utilizzando SOAP.

Sicurezza del servizio Web

Il WS -I La specifica del profilo di base 2.0 riguarda la sicurezza dei messaggi. Questa specifica si concentra sullo scambio di credenziali, sullintegrità e sulla riservatezza dei messaggi.

Rilevamento del servizio Web

Una volta che la pietra angolare della scoperta del servizio Web, UDDI (descrizione universale, definizione e integrazione) è svanito nella storia. Oggi è comune esporre un servizio web basato su SOAP come faresti con qualsiasi altro servizio, tramite un URL endpoint. Ad esempio, potresti utilizzare linterfaccia endpoint del servizio JAX-WS e la sua @WebService e @WebMethod annotazioni.

Creazione e distribuzione di servizi Web

Gli sviluppatori Java hanno diverse opzioni per la creazione e la distribuzione basata su SOAP servizi Web, inclusi Apache Axis2 e Spring-WS, tuttavia, lo standard Java è JAX-WS, lAPI Java per i servizi Web XML. Lidea principale alla base di JAX-WS è creare classi Java e annotarle per creare gli artefatti richiesti. Sotto il cofano, JAX-WS utilizza diversi pacchetti Java, tra cui JAXB, una libreria generica per lassociazione di classi Java a XML.

JAX-WS nasconde la complessità e i protocolli sottostanti allo sviluppatore, semplificando così il processo definizione e distribuzione di servizi SOAP basati su Java. I moderni IDE Java come Eclipse includono il supporto completo per lo sviluppo di servizi Web JAX-WS. La specifica WS è stata selezionata anche per lo sviluppo in corso in Jakarta EE.

Conclusione

Larchitettura orientata ai servizi implementata con servizi web basati su SOAP richiede più rigidità e definizioni di servizi formali rispetto ai servizi Web o ai microservizi RESTful. Tuttavia, alcune organizzazioni più grandi continuano a favorire lo stile più formale imposto da SOAP. Anche molti sistemi legacy su larga scala sono basati su SOAP e alcuni sistemi B2B e interni scelgono servizi Web basati su SOAP per i loro contratti API più formalmente definiti. Che tu stia sviluppando o gestendo un sistema aziendale su larga scala, comprendere il modello SOA ed essere in grado di valutare le tue opzioni per implementarlo ti servirà bene nella tua carriera di programmazione.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *