La Service Oriented Architecture è molto di più di una semplice tecnologia: è un'architettura che utilizza una logica orientata ai servizi per supportare le esigenze degli utenti scomponendo le applicazioni in funzioni riutilizzabili. In questo modo, consente di allineare business e IT rendendo i processi più flessibili, economici ed efficienti. (IBM)
Uno dei paradigmi più noti delle composizioni di servizi è l’orchestrazione,
in base al quale un processo centralizzato interagisce con un insieme di servizi
componenti. Il linguaggio utilizzato per la definizione di un’orchestrazione è
il BPEL (Business Process Execution Language for Web Service).
Un processo BPEL racchiude le attività necessarie a comporre diversi servizi sviluppati da terze parti. I passi di elaborazione di un processo può essere rappresentato con un automa a stati finiti. Ad un certo punto
dell’esecuzione del processo BPEL questi servizi potrebbero essere soggetti a un cambiamento radicale o potrebbero non essere più disponibili. Questo è uno dei limiti della staticità di un sistema basato sulla SOA.
Orchestrazione di servizi tramite un processo BPEL |
Per superare questa staticità è possibile prendere ispirazione dalla Macchina di Turing (MdT). Una MdT è un'astrazione che permette di elaborare un qualunque algoritmo. Si compone di un'unità di controllo, che può assumere una serie finita di diversi stati e una unità di memoria, esemplificata con una successione di caselle lungo un nastro di dimensioni infinite. Una elaborazione comincia da una casella di memoria iniziale; il passaggio da uno stato all'altro nell'unita di controllo è regolato da una tabella di istruzioni, in cui lo stato attuale, e la lettura dalla casella di memoria corrente, stabiliscono il nuovo stato. In pratica anche l'unità di controllo di una MdT implementa un automa a stati finiti. Ad ogni passo la TM può fare soltanto le seguenti mosse:
- leggere il dato nella casella di memoria corrente
- scrivere un nuovo dato nella casella di memoria corrente
- spostarsi in avanti nel nastro
- spostarsi indietro nel nastro
- cambiare il suo stato interno
Macchina di Turing |
Un'architettura SOA basata su un Process Server (che esegue processi BPEL) può essere facilmente assimilata a una MdT. Se si suddivide opportunamente l'elaborazione in passi elementari è possibile ridurre la complessità delle elaborazioni effettuate dai servizi orchestrati. Spingendosi oltre è possibile concentrare tutta la logica elaborativa nel
processo BPEL, demandando ai servizi la sola scrittura e lettura di un
dato elementare in una "casella di memoria". In questo modo l'elaborazione sarebbe definita solamente attraverso il processo. Per ogni tipo di elaborazione è possibile implementare uno specifico processo e riutilizzare completamente i servizi. In questo modo si rende molto più flessibile l'infrastruttura IT, permettendo un più veloce allinemanto Business-IT. Inoltre i servizi non dovrebbero mai essere cambiati e si eliminerebbe definitivamente il problema sopra evidenziato della staticità della SOA. I servizi inoltre sarebbero completamente sostituibili in modo da semplificare la scalabilità e l'alta disponibilità del sistema.
Nessun commento:
Posta un commento