Project Orleans, il cloud engine che alimenta Halo Reach e Halo 4 sarà rilasciato come open source. Il “motore” che ha, tra l’altro, avuto un ruolo vitale nello sviluppo della piattaforma di cloud computing Azure, sarà rilasciato con una MIT License, licenza per il software libero creata dal Massachusetts Institute of Technology (MIT) che permette il riutilizzo in software proprietario a condizione che la licenza sia distribuita con esso.
La decisione di Microsoft è l’ultima di una serie di annunci che riguardano l’open source; la casa di Redmond sta da tempo cercando di scrollarsi da dosso l’aria di società che propone sul mercato solo sistemi chiusi, proponendo alternative non proprietarie.
Ad aprile di quest’anno, nel corso della conferenza BUILD, Microsoft ha anche annunciato il rilascio – come prodotti opensource – di molte librerie e tecnologie legate al framework .NET e la creazione di una “fondazione” per la gestione e la pubblicazione sul web del codice sorgente dei vari prodotti.
Il codice del framework Orleans sarà pubblicato su GitHub (anziché sul sito CodePlex di Microsoft dedicato all’open source) a inizio del prossimo anno, spiegando che saranno accettati contributi al codice dagli utenti.
Orleans consente di costruire servizi cloud che sfruttano grafi sociali (mappe globali delle persone e delle loro relazioni, come ad esempio quelle degli amici di Facebook o i follower su Twitter), offre funzioni di analisi in real-time, ed è in grado di lavorare con enormi quantità di dispositivi, inclusi smartphone e sensori per l’internet delle cose.
Halo 4 usa questo framework per tenere conto delle sessioni, dei giocatori e lo status di ogni gioco, fornire statistiche (chi, quando, dove e come ha sparato, quale arma ha usato e altro), dettagli indicati su HaloWaypoint, il sito ufficiale centro nevralgico della community di Halo che permette agli utenti di modificare i profili e avere dettagliate statistiche.
Orleans differisce da piattaforme di sviluppo app sul cloud come Google App Engine essendo non solo asincrono ma anche single threaded: gli sviluppatori non devono preoccuparsi di degradare le prestazioni all’aumento dei thread concorrenti o altre problematiche della programmazione concorrente.