lunedì 17 settembre 2012

La Turing-SOA permette un migliore allineamento Business-IT

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:
  1. leggere il dato nella casella di memoria corrente
  2. scrivere un nuovo dato nella casella di memoria corrente
  3. spostarsi in avanti nel nastro
  4. spostarsi indietro nel nastro
  5. 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