Service Oriented Architecture: molti servizi, una soluzione

di Riccardo Grassi

scritto il

Un'impresa ha lo scopo di creare valore, pertanto deve essere competitiva, con processi interni in continua evoluzione e una tecnologia il più possibile ottimizzata

Un’impresa ho lo scopo di creare valore, pertanto deve essere competitiva, con processi interni in continua evoluzione e una tecnologia il più possibile ottimizzata.

La costante ricerca applicata al prodotto (o ai servizi) è il modo più utilizzato ed intelligente per mantenere competitività, ma rendere più efficenti le risorse aziendali è una via parallela che permette di ridurre i costi associati. I sistemi informativi aziendali non si sottraggono a questo esercizio, anzi il ruolo sempre più pervasivo dell’informatica in azienda rende vieppiù prioritario lo sfruttamento ottimale di queste risorse.

Un notevole miglioramento delle performance dei sistemi IT si ottiene quando questi sono “integrati” in una struttura che permette agli impiegati di un’azienda di svolgere con semplicità i compiti assegnati dalle esigenze del business. L’integrazione dei sistemi aziendali prende il nome di EAI (Enterprise Application Integration).

La costante pressione del mercato sul business aziendale costringe l’azienda a innovare costantemente non solo prodotti e servizi, ma anche le infrastrutture che devono essere al passo con l’azienda ed il suo business.

Inoltre l’architettura Web ha consentito una notevole accelerazione in termini di velocità di comunicazione, cambiando l’archetipo dei sistemi informativi, da un’architettura client-server ad una Web oriented. In questo constesto molti produttori di soluzioni di IT, spingono i propri clienti a cambiare le applicazioni al fine di allinearsi alla tecnologia corrente. Ovviamente questo è comunque necessario, ma quale impatto ha in azienda?

In più per fare colloquiare in modo efficiente due applicazioni con architetture diverse risulta complesso ed oneroso: infatti questo compito richiedeva in passato (e spesso richiede) un vero e proprio studio di fattibilità che verifichi quali dati scambiare, quando farlo e così via, tanto che in passato spesso si desisteva e si impiegava qualcuno della struttura che doveva fare la spola tra i vari sistemi aziendale al fine di allinearli.

L’EAI quindi permette di gestire al meglio questi temi, consentendo di far colloquiare le applicazioni indipendentemente dalle loro architteture. Tutto questo si ottiene grazie a quello che è definito Middleware. Il middleware funziona come un canale che mette in comunicazione tutte le applicazioni, si può pensare come ad una strada che collega varie case (le applicazioni) utilizzando delle navette (messaggi).

Quindi il middleware EAI si occupa di consegnare i dati, filtrarli ed eventualmente fare pre processi sui dati stessi al fine di gestirli al meglio. Questo consente di velocizzare e semplificare il processo di comunicazione.

E con il Web come la mettiamo?

Storicamente i sistemi informativi si potevano dividere in due grandi categorie, il front office ed il back office, i primi sono responsabili delle interazioni con il cliente (visione esterna) come le architetture di CRM mentre i secondi sono orientati alla gestione delle operazioni tipiche dell’impresa come i sistemi di SCM (visione interna).

Le comunicazioni tra i sitemi informativi erano orientate a integrare queste due categorie di sistemi. La notevole influenza della rete ha costretto a rivedere questo archetipo, spingendo l’EAI a dover rispondere a sistemi sempre più distribuiti, anche in rete, per poter dare risposte al passo con l’accelerazione del business.

Facciamo un esempio concreto l’impresa Pizza e Fichi ha un sistema di eCommerce ed un sistema ERP SaaS, questi due sistemi non sono residenti nella stessa DMZ (demilitarized zone), quindi non stanno nella stessa rete, ed entrambi devono necessariamente essere accessibili dalla rete.

Inoltre la Pizza e Fichi possiede sistemi di SCM per gestire la produzione. Per far si che un ordine stipulato sul sistema di eComemrce via Web venga evaso correttamente verso l’ERP e schedulato per la produzione del pezzo dal SCM, l’EAI deve far colloquiare eCommerce, per la creazione dell’ordine, l’ERP SaaS per la gestione dell’ordine, del magazzino e della pianificazione ed in ultimo il sistema di SCM per la produzione, l’approvigionamente e la logistica. Ma eCommerce e ERP sono in rete, in posti remoti: come li raggiunge il middleware che è tipicamente resisdente nella intranet aziendale?

Quindi i sistemi middleware, nati come abbiamo visto per gestire applicazioni che risiedevano all’interno di un’impresa, hanno limiti strutturali tali che non sono praticamente più in grado di gestire questa evoluzione.

Le tecnologie classiche come CORBA (Common Object Request Broker Architecture) o DCOM (Distributed Component Object Model) seppur con notevoli potenzialità nella gestione delle code, del dispatching e della robustezza della comunicazione, non sono spesso in grado di gestire la comunicazione Web.

La risposta non è prettamente tecnologica, come sempre accade quando vi sono cambi di scenario, ma è stata quella di cambiare le modalità di interfaccia tra sistemi e l’architettura stessa. Questa risposta è stata la SOA (Service Oriented Architecture). Ovviamente non si può prescindere dalla tecnologia nei sistemi informativi: la risposta tecnologica sono stati i Web Service. Questi sono servizi a disposizione nelle varie applicazione che scambiano messaggi, elaborano informazioni utilizzando standard consolidati come ad esempio XML (eXtensible Markup Language) o SOAP (Simple Object Access Protocol), per ottenere i comportamenti di business desiderati.

Esaminiamo nel seguito con maggior dettaglio cosa sia l’architettura SOA ed i Web service, per concludere con i vantaggi che questa architettura può portare.

Finalmente SOA

Al contrario di quello che accadeva fino a qualche anno fa in cui i sistemi erano spesso chiusi in se stessi, difficili da integrare, oggi si ci spinge verso architetture aperte e distribuite. Spesso nelle medie imprese, i sistemi informativi sono un caleidoscopio di architetture diverse, un’accozzaglia di sistemi che si sono stratificati nel tempo e spesso vi sono persone che sprecano molto del loro tempo ad allineare i dati da un sistema all’altro o a rimettere mano nelle integrazioni, perché i sistemi non parlano tra loro. Nella mia esperienza moltissime imprese sono in condizioni molto delicate e si arriva al paradosso che si utilizzano strumenti informatici di base come i fogli di calcolo, per gestire tutti i gangli più spinosi e sensibili delle imprese.

Questa incomunicabilità dei sistemi cerca di essere superata grazie all’introduzione delle architetture SOA, in cui viene introdotto il concetto di servizio: invece di avere applicazioni monumentali, ci si orienta a servizi specifici che hanno compiti ben definiti, indipendenti gli uni dagli altri, in modo da essere degli atomi che possono essere legati a seconda delle necessità. L’esatto contrario di quello che è accaduto per oltre un decennio con tecnologie gigantesce come SAP, Oracle, etc. che tendevano ad implementare sempre più funzionalità sulla stessa applicazione.

Quindi un’architettura SOA è una un’architettura distribuita (Distributed Architecture), che permette facilmente di far colloquiare le applicazione tra di loro, nel modo più appropriato.

L’introduzione di questo tipo di sistemi costringe le imprese avere una notevole capacità di analisi delle reali necessità per capire esattamente come “legare” i servizi, in quanto per ottenere una semplice funzionalità si rischia di dover integrare diversi servizi.

E i Web Service?

I Web Services sono un nuovo tipo di applicazioni Web che cooperano fra loro, indipendentemente dalla piattaforma sulla quale si trovano, attraverso lo scambio di messaggi. Ognuna di queste applicazioni viene chiamato Web Service (Servizio Web), o piu semplicemente servizio. Questa è la traduzione tecnologica dell’architettura SOA.

I Web Service utilizzano delle tecnologie standard che elenchiamo per completezza:

  1. XML, eXtensible Markup Language
  2. SOAP, Simple Object Access Protocol
  3. WSDL, Web Services Description Language
  4. UDDI, Universal Description, Discovery and Integration.

Ovviamente non entreremo nei dettagli tecnici dei Web service, ma vogliamo qui rimarcare le peculiarità di questa tecnologia.

Attraverso l’uso di servizi semplici si possono soddisfare tutte le esigenze di business e si rende facile la modifica delle applicazioni finali per adattarle alle nuove necessità aziendali. Viene così esaltato il concetto di cooperazione tra servizi: possiamo pensare ad oggetti distribuiti che possono essere richiamati all’abbisogna per soddisfare un’esigenza.

Inoltre i Web service sono platform indipendent (Indipendenti dalla piattaforma): i servizi possono risiedere su qualsiasi sistemo operativo o application server e comunicare tra loro semplicemente, così come avviene per il World Wide Web. Questo concetto, che è stato rivoluzionario per il Web, si pensi alla semplicità di scambio informazioni nel Web rispetto allo scambio di informazioni su piattaforme differenti come ad esempio Linux e Windows, è alla base della tecnologia Web service in cui l’implementazione tecnica del servizio è indipendente dal modo in cui questa viene richiamata: l’interfaccia è dissociata dal motore che svolge il compito. Questo permetterà di poter riusare il servizio molte volte, richiamando l’interaccia messa a disposizione in modo semplice attraverso il Web. Sarà quindi facile modificare il motore del Web service, senza modificare tutti gli altri servizi che lo richiamano ottenendo il nuovo risultato desiderato.

Conclusione

L’architettura SOA permette di sfruttare appieno le potenzialità offerte dai Web service in quanto possiamo pensarli come applicazioni distribuite in tutta la rete e connesse tra loro grazie alle capacità di comunicazione con messaggi standard.

Questo per esempio permette ad un’impresa di dotarsi di sistemi eCommerce, CRM e ERP in modalità SaaS connessi tra loro grazie a Web service ed ottenere tutti i dati necessari alla produzione di un bene da dare in pasto ad un sistema MES che schedula e governa la produzione. Questo con un’infrastruttura IT minima, con costi HW ridotti all’osso e costi di gestione delle applicazioni praticamente nulli.

In ultimo possiamo affermare che le tecnologie SOA siano un nuovo metodo per far esplodere le potenzialità sopite dei sistemi IT, promuovendo una maggiore facilità di utilizzo a costi contenuti.

Lo sforzo che le imprese devono compiere è nella direzione di una maggiore consapevolezza delle necessità e degli obiettivi da raggiungere e nella così detta IT governance.