martedì 8 marzo 2011

Parliamo un pò di SOA (Service Oriented Architecture)

Dopo aver visto un’introduzione alle EAI, veniamo al passo successivo che si è avuto nel panorama dell’integrazione dei sistemi informativi: le soluzioni SOA (Service Oriented Architecture). La grande diffusione del Web ha portato le architetture legate ad esso a grandi trasformazioni passando dalla costruzione di semplici siti web, ai portali aziendali fino alle soluzioni che integrassero le infrastrutture IT.
Agli inizi degli studi dei problemi di integrazione di applicazioni si avevano le cosiddette applicazioni distribuite (Object Oriented Architecture, OOA): componenti realizzati con tecnologie differenti potevano cooperare tra di loro dando vita ad un’applicazione unica secondo protocolli standard (es. CORBA, DCOM).  A questo livello agivano le EAI: far interagire tra loro applicazioni/componenti del tutto eterogenee.
Ci si è resi conto però dei vantaggi di un approccio differente, a servizi distribuiti (web services): si poteva accedere a tali servizi usufruendo dell’interfaccia che tali web services fornivano secondo un contratto (WSDL) e un protocollo (SOAP) standard. Eventualmente tali servizi potevano essere ricercati e scoperti (discovered) in una lista di servizi disponibili (UDDI). Il vantaggio di questo approccio (SOA) rispetto a quello precedente (OOA) consisteva nel fatto che veniva posto il focus sulle funzionalità e non sulle tecnologie.

In altre parole l’approccio SOA mette in evidenza un’entità nota maggiormente al management aziendale di quanto lo fossero le implementazioni tecnologiche, ossia metteva al centro dell’attenzione il processo di business.
Un’architettura SOA è qualcosa di più complesso di un’architettura a WS, nonostante possiamo affermare che essa si possa anche fondare sui concetti tecnologici dei WS. In realtà un’architettura SOA sta ad un livello di astrazione superiore di una struttura a WS: possiamo affermare che un’architettura SOA è

Un paradigma per l'organizzazione e l'utilizzazione delle risorse distribuite che possono essere sotto il controllo di domini di proprietà differenti. Fornisce un mezzo uniforme per offrire, scoprire, interagire ed usare le capacità di produrre gli effetti voluti consistentemente con presupposti e aspettative misurabili” - Reference Model for Serviced Oriented Architecture 1.0.”, OASIS,12 ottobre 2006 (Oasis è un consorzio mondiale fondato nel 1993 che regolamenta le convergenze degli sviluppi e l’adozione di standard di e-business).

SOA è pertanto un paradigma che si traduce in un’architettura dinamica con la quale il progetto e lo sviluppo delle soluzioni sono portate a livelli di ragionamento più elevati. Tali ragionamenti permettono di  valutare in modo più completo i processi aziendali, considerandoli nel loro insieme e non solo singolarmente, e, quindi, a ricercare lo sviluppo della migliore soluzione possibile che realizzi le operazioni di business richieste .
Quindi SOA non è una tecnologia, ma un approccio architetturale costruito attorno alle tecnologie esistenti. Promuove un insieme di pratiche, discipline, modalità di disegno e linee-guida che possono essere applicate usando una o più tecnologie. SOA propone lo sviluppo di nuovi servizi basati su funzionalità già offerte da un’applicazione. Altre applicazioni che desiderano comunicare con questa applicazione, faranno uso di uno o più servizi per realizzare il compito desiderato.
Il paradigma SOA si basa su tre concetti basilari:
  • Visibilità:  capacità di trovare il servizio più idoneo alle proprie necessità
  • Interazione: capacità di richiesta di un servizio e conseguentemente di esaudizione della richiesta mediante scambio di messaggi.
  • Effetti reali: capacità di dare i risultati dell’interazione.
Si nota come tali concetti non definiscano altro che le proprietà di un servizio: un servizio viene erogato quando si svolgono attività per conto di un richiedente (service consumer). Il servente (service provider) garantisce la propria offerta di servizio, la propria capacità di svolgerlo e la descrizione delle specifiche con le quali si può invocare correttamente il servizio offerto. La descrizione del servente viene resa pubblica mediante una discovery agency (service broker), un repository o una directory.
SOA è uno degli ultimi paradigmi della Web Engineering: generazione di servizi e creazione delle condizioni per la meccanizzazione dei processi all’interno degli asset informativi aziendali attraverso delle composite applications. Scegliere una soluzione SOA rispetto ad una OOA significa assumere per l’architettura queste proprietà:

  • Effettivo riuso e migliore “granularità” del servizi
  •  Interoperabilità dei servizi e loro componentizzazione in servizi più semplici (composite application)
  • Assunzione di standard generici e/o specifici di certi domini
  • Identificazione e accessibilità ai servizi standardizzata
  • Monitoraggio della soluzione (IT governance)
  • Incapsulamento dei servizi
  • Accoppiamento debole tra i servizi (loose coupling) mediante messaggi XML standard
  • Regole di interazione tra i servizi mediante contratti definiti
  • Maggiore astrazione dalle logiche di implementazione
  • Possibilità di suddivisone dei servizi per macro-funzionalità
  • Autonomia di ciascun servizio nel definire la propria logica implementativa
  • Rintracciabilità dei servizi mediante costrutti noti e standard

Semplificando possiamo dire che SOA ricontestualizza il paradigma nato con le OOA alla rete e ad Internet. I nuovi livelli di astrazione introdotti permettono di ridurre notevolmente il gap presente tra le logiche dei processi di business e i sistemi IT.

Schema modulare di un'architettura SOA

0 commenti:

Posta un commento

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | cna certification