La SOA e il Cloud

La SOA è definitivamente morta? Questa è una domanda che ci si pone ormai da qualche anno e sulla quale ci sono delle opinioni diverse. Negli anni passati la SOA si è mossa dal voler guidare delle linee architetturali a voler dettare delle scelte tecnologiche. Dal punto di vista tecnologico, lo stack SOA si è dimostrato, di fatto, di essere troppo oneroso nella gestione; i protocolli sono troppo pesanti e l’interoperabilità è per di più statica.

Le promesse di SOA riguardo al voler costruire una soluzione tecnologica in grado di dare la massima flessibilità delle architetture software è stata disattesa. Grande flessibilità significa dinamicità del sistema e oggi quello che troviamo essere implementato risulta essere estremamente statico e talvolta poco estensibili. Dall’altra parte grazie a questo paradigma le componenti software sono partizionate, catalogate e possono essere usate da diversi dipartimenti.

La Service Oriented Architecture quindi si manifesta come una opportunità per affinare le architetture piuttosto che, invece, un sistema per dettare regole tecnologiche.

Lo esprimono molto i movimenti che si sono affermati nel corso degli ultimi 4 anni in cui, chi era scettico 4 anni fa e che sosteneva che la SOA era una buzzword dell’Information Technology.
Come afferma Jason Bloomberg, ci son due livelli sui quali si può vedere la SOA. Un livello percettivo e uno reale. Sul piano percettivo la SOA è troppo complessa, la tecnologia non è utile a supportare le promesse e quindi il Cloud è la milestone che semplifica e razionalizza il tutto.
Da un punto di vista pratico, andando sul piano reale invece, ci sono un sacco di iniziative che oggi derivano dalla SOA, ma per diverse questioni anche di marketing non si possono chiamare più SOA. Si parla di orchestrazione di servizi, integrazione tra applicazioni, razionalizzazione di procedure per dire e riportare alcuni concetti della SOA.

Cosa sta introducendo il Cloud?

Il cloud sta sfruttando la mentalità della SOA in cui ogni componente, o meglio servizio, deve essere invocabile e amministrabile. E’ necessario quindi un protocollo leggero REST, al posto che SOAP ed è necessaria la definizione di una API con la quale i servizi vengano invocati utilizzando il più elementare JSON piuttosto che il complesso e prolisso XML. Ma senza la mentalità di architettare spinta dalla SOA, non si sarebbe arrivati a questo processo di snellimento e quindi non ci sarebbe stata l’occasione di parlare di Cloud Computing.

Pertanto la SOA è per di più da considerarsi come un mindset piuttosto che un set di tecnologie e le tecnologie che stanno ora affermando il Cloud come evoluzione e snellimento di tutta la complessità che la sovra-ingegnerizzazione ha portato durante gli anni d’oro dei Web Services e della SOA “tecnologica”.

Effettivamente la SOA non è nata con l’obiettivo di fare comunicazione Business to Business, come negli ultimi anni abbiamo voluto fare. Il paradigma è nato con lo scopo di razionalizzare i processi interni di una applicazione; il suo scopo era quello di voler lavorare su una grande organizzazione e catalogare i servizi che erano censiti senza doverli reinventare di volta in volta. Questo anche per controllare la qualità di questi servizi che erano rilasciati ai propri utenti e misurare quindi gli SLA del caso.

Il cloud quindi nasce dalla mentalità che si è conformata grazie alla Service Oriented Architecture piuttosto che nascere dalle sue ceneri. La SOA è e rimane un modello mentale con il quale i moderni architetti devono pensare. Senza la SOA non è possibile pensare a una applicazione che possa girare sul Cloud. E’ importante riflettere e analizzare come il cloud è separato e vedere che tutto è esposto come servizi e che i servizi sono richiamati tramite delle API.


Comments