La Service Oriented Architecture si poggia sulla facilità per un sw di inviare la richiesta di un servizio a un sw su un sistema autonomo e remoto. E ricevere pure la risposta!
La Resource Oriented Architecture si poggia sulla facilità di accedere a risorse distribuite e ottenerne in locale la copia fedele che il sw può elaborare.
Ma cosa fare quando le risorse sono anche sparse, ingombranti da trasmettere e lontane da chi esegue il sw ?
Fanno il loro ingresso i Mobile Agent, sw che possono migrare da un nodo all'altro della rete e fare una elaborazione accedendo anche ai dati locali del nodo e migrare ancora in un altro sistema riprendendo l'elaborazione li, fino a portare a termine la richiesta di servizio.
SOA+ROA+Mobile Agent è un modello di programmazione che risponde in modo completo e flessibile a tutta la varietà di situazioni che si incontrano in rete e permette di realizzare sw che può adattato e modificato per rispondere alle nuove necessità e ai cambiamenti senza stravolgimenti o riscritture a differenza delle soluzioni odierne. Ecco degli esempi:
l'implementazione del servizio ora ha bisogno di dati aggiuntivi che sono su un altro sistema remoto; alla nuova funzione le informazioni testo non bastano cosi servono quelle video troppo ingombranti da trasmettere, abbiamo venduto i dati che ora saranno migrati sul sistema remoto dell'azienda acquirente ma vogliamo continuare a erogare e vendere il servizio che li elaborava, etc.
Dalla fantascienza Neuromante e Invernomuto, le due AI del romanzo di William Gibson è cosi che si muovevano nella rete e la usavano come memoria, e lo stesso faceve The Pupett Master cioè Progetto Top Secret 2501 di Ghost in the shell.
L'idea non è nuova certo, solo che ora è diventata possibile con la tecnologia corrente: SOA, ROA, ambienti run-time con Virtual Machine che possono eseguire software su hw diversi (Java VM e .NET CLR), un modello di sicurezza che definisce i diritti di accesso alle risorse in base all'origine e al creatore di un sw (la code-access-security di .NET).
Quello che manca è uno standard per migrare l'esecuzione e un modello di programmazione che rivoluzioni l'informatica come ha fatto l'Object Orientation.
Link:
- Mobile agent (wikipedia):
- ROA e ROA Il contratto (Blog di Pier Greborio su UGI)
- Resource oriented architecture (wikipedia)
- Representational State Transfer (REST)
Tags : Progettazione Software | Creatività | Innovazione |