martedì 24 settembre 2013

SOA Overview

Al fine di ottimizzare i costi e di migliorare la gestione dell’ IT, le aziende guardano, sempre più con maggiore interesse, alle problematiche di gestione ed ottimizzazione dei processi aziendali.
L’attuale modello di riferimento per l’implementazione e la gestione dei Business Process è il modello SOA (Service Oriented Architecture), particolarmente utile alle aziende con un portafoglio di applicazioni complesso dal momento che agevola l’interazione tra le diverse realtà aziendali permettendo alle attività di business di sviluppare processi efficienti e nel contempo di aumentarne la flessibilità e l’adattabilità.



Il modello SOA è in grado di raccogliere le sfide che l’IT riceve quotidianamente dalle nuove forme ed esigenze di business, fornendo risposte concrete e rapide al fine di ottenere più efficienza, flessibilità e qualità con meno risorse, maggiore allineamento col business, migliore consistenza e qualità dei dati e un rapido “time to deploy” delle nuove applicazioni.
In tale contesto i System Integrator collocano la propria offerta mettendo a disposizione del mercato la propria competenza derivata dalla conoscenza di prodotti, framework, tecnologie, standard, best practices e dalle esperienze acquisite.

SOA REFERENCE MODEL

A livello di Information Technology, la SOA è un’infrastruttura software che consente ad applicazioni eterogenee ed a sistemi diversi di implementare processi di business, scambiare dati ed eseguire transazioni tramite l’utilizzo di componenti software (servizi) con caratteristiche ben definite, orientate al riutilizzo ed alla integrazione. Tali servizi sono esposti con modalità standard risultando così fruibili da qualsiasi utilizzatore (service consumer) che si interfacci, nelle modalità richieste, al fornitore di servizi (service provider).
Nell’ambito di un’architettura SOA è possibile modificare, in maniera semplice, le modalità di interazione tra i servizi, la combinazione nella quale essi risultano utilizzati, così come risulterà agevole aggiungerne di nuovi o modificarne i processi per rispondere alle specifiche esigenze di business. In tale scenario il processo di business non sarà più vincolato ad una specifica piattaforma o applicazione ma potrà essere considerato come un componente di un processo più ampio e quindi riutilizzato o modificato.
Il modello SOA nasce dall’idea di realizzare ed esporre servizi offerti da un’organizzazione in modo che siano accessibili in modo automatico, uniforme e con protocolli standard e aperti.

APPROCCIO METODOLOGICO

La definizione e la realizzazione di Progetti SOA prevedono soluzioni personalizzate che si adattano di volta in volta alle specifiche esigenze del Cliente, mediante l’utilizzo di tre diversi approcci strategici:
Top-Down: il focus è posto sull’analisi dei processi di business, per poi identificare i servizi attraverso raffinamenti successivi. Tale approccio è quello più corretto partendo da una situazione scratch.
Meet-In-The-Middle: il focus è posto sull’analisi della situazione attuale (applicazioni as-is) per poi raggiungere il grado di astrazione necessario per l’integrazione dei processi. Tale approccio cerca di integrare la SOA con applicazioni sviluppate in precedenza: questo è il caso più frequente che prevede di operare su applicazioni esistenti.
Bottom-Up: il focus è posto sull’analisi della definizione dei componenti per poi disegnare i servizi. Tale approccio rivela una mancanza del grado di astrazione necessario per la definizione di servizi realmente riusabili e non è quindi consigliabile.


Con l’approccio SOA è possibile:
  • Garantire l’allineamento tra le funzioni IT e quelle di Business grazie alla definizione di soluzioni infrastrutturali in grado adeguare l’IT dinamicamente alle diverse esigenze di Business rispettando gli SLA concordati,
  • Abilitare l’erogazione di servizi IT in modalità on demand sia verso il mercato interno che esterno,
  • Ridurre il Time-to-Market per lo sviluppo di nuovi servizi di Business mediante i concetti di riutilizzo delle risorse introdotti dall’Utility Computing e dalla SOA,
  • Ridurre il Total Cost of Ownership (TCO) dell’infrastruttura grazie all’introduzione di nuovi strumenti che abilitano la standardizzazione dei processi di comunicazione,
  • Ridurre il numero di sistemi grazie alla possibilità di consolidare su un unico sistema più applicazioni sulla base del concetto di condivisione introdotto dall’integrazione,
  • Offrire elevati livelli di disponibilità e scalabilità per mezzo di tecnologie innovative che permettono la veloce allocazione di risorse infrastrutturali ove necessario,
  • Ridurre il costo dell'intero ciclo di vita del software e della evoluzione dei flussi di business.

FASI DI REALIZZAZIONE

L’adozione di una architettura SOA oriented, all’interno di una infrastruttura IT complessa già esistente, va pianificata progressivamente in un percorso che prevede un punto di partenza nel momento in cui ci si trovi di fronte ad un caso concreto.
Le fasi operative/progettuali previste sono:
SOA Assessment: mediante lo studio dei processi di business sono individuate nel dettaglio le esigenze del Cliente ed è rilevato il grado di maturità tecnologica dell’organizzazione attraverso l’utilizzo del SOA Maturity Model in modo da garantire opportuna aderenza alla SOA,
SOA Solution Planning: identifica lo scenario applicativo SOA verso cui evolvere e si pianificano tempi e attività di implementazione,
Service Management: attività di service analysis, service design, build, testing, deployment dei servizi, workflow e applicazioni sulla base di quanto identificato nelle fasi precedenti,
Integration Management: con il rilascio in produzione di sistemi operativi, middleware, applicazioni si possono realizzare infrastrutture efficienti reattive e correlate alle reali esigenze del Cliente,
SOA Governance: attività di controllo dei servizi SOA che prevede:
  • Governance Process Definition
  • Governance Process Execution
  • Governance Process Monitoring
per garantire solidità alla struttura del processo decisionale, gestione delle relazioni tra servizi e componenti e il rispetto della conformità delle normative vigenti, degli standard e delle procedure stabilite dalle aziende. La Governance rappresenta la chiave di successo delle iniziative SOA in quanto permette di verificare costantemente l’affidabilità dei servizi e la coerenza con le attività ed i processi che i servizi devono supportare, riducendone in tal modo sia i rischi che i costi.
In un momento in cui la concorrenza ed i vincoli normativi si intensificano nel mercato dei servizi finanziari, le installazioni SOA stanno arrivando a un livello in cui la loro governance è fondamentale per la gestione dei servizi ed il loro ri-utilizzo durante l’interno ciclo di vita SOA. Dopo la fase iniziale di adeguamento al modello SOA, il focus di un’azienda non è più rivolto a realizzare servizi ma piuttosto a “governarli” in maniera efficiente e performante: il processo di “governance” è essenziale per il successo della SOA.
In quest’ottica i modelli SOA devono essere fortemente orientati alla Governance, basandosi sulla riusabilità, sulla riduzione della complessità del portafoglio applicativo eliminando le funzionalità ridondanti, sulla messa in sicurezza delle applicazioni integrate che vengono usate da un numero sempre crescente di utenti, sull’assicurazione del rispetto dei Service Level Agreements (SLAs).

DIRETTIVE E STRUMENTI

L’ architettura SOA è basata sui seguenti elementi:

  • Standard aperti: per poter operare in ambienti multipiattaforma è necessario utilizzare standard aperti quali XML, WSDL e WS-Security (WSS),
  • Modularità: è necessario individuare il corretto equilibrio tra i servizi utilizzabili nelle funzioni comuni ed i servizi dedicati a processi specifici,
  • Contratti di servizio: WSDL (Web Services Description Language) è la specifica standard per la creazione di contratti per i Web Services
e sui seguenti strumenti applicativi:
  • Service Registry/Repository: strumento che elenca e descrive i servizi disponibili e le modalità di accesso agli stessi. Garantisce una più semplice interoperabilità tra i sistemi e facilita la SOA Governance,
  • ESB (Enterprise Service Bus): layer applicativo che implementa la pubblicazione dei servizi e le interfacce di integrazione agli stessi da e verso i sistemi esterni. Prevede adattatori per i sistemi legacy, orchestrazione di servizi per la definizione delle regole di business, componenti per autorizzazione e autenticazione (security), trasformazione dati e capacità di monitorare i service-level agreement (SLA),
  • BPM (Business Process Management): layer applicativo che abilita l’implementazione, la gestione e l’orchestrazione dei workflow e dei processi di business di più alto livello.
  • BAM (Business Activity Monitoring): strumento il monitoring dei servizi e quindi dei processi di business,
  • Data Management: piattaforma di gestione del Common Data Model in ottica SOA e dei servizi di trasformazione e validazione dati come sottoservizio dell’ESB; lo scopo primario è il governo centralizzato dei metadati aziendali basato su standard.




Articoli correlati: