PO P e i a t t a f o r m e p e n S o u r c e r o p r i e t a r i e Un mondo di componenti Antonio Cisternino 11 Marzo 2005 What’s next? • La piattaforma Microsoft sta rapidamente cambiando • COM, seppure una grande tecnologia, è lentamente divenuta obsoleta: si può fare meglio • Microsoft ha puntato molto su .NET, una VM su cui basare il futuro dei componenti • Ci sono resistenze interne a fare il grande salto. .NET Hype • .NET rappresenta la visione di Microsoft per lo sviluppo software • Il Common Language Runtime (CLR) è una Virtual Machine che esegue programmi scritti in linguaggi differenti • Offre numerosi servizi ai programmi, come sicurezza, gestione della memoria, interoperabilità .NET vs. Java • .NET affonda le sue radici in Java, ma come spesso accade a chi viene dopo, è più avanti • È uno standard ISO e ECMA come il linguaggio C# (altra implementazione Mono) • Tecnicamente ha i seguenti vantaggi: – – – – Generici nel runtime (dalla 2.0) Interoperabilità con codice nativo Un sistema di tipi più flessibile Supporto per la generazione dinamica di codice Web Services • Una nuova parola chiave nel panorama dei sistemi è quella dei Web services • Web services è una tecnologia standard basata su XML per invocare servizi remoti • È rilevante poiché scala bene: può essere supportata con poco sforzo, ma è capace di gestire anche situazioni molto complesse • È supportato dalle principali piattaforme Web services e .NET • Hello world: [WebService] public class HW { [WebMethod] public string HelloWorld() { return “Ciao Mondo!”; } } Usare WS in InfoPath • Poiché alla fine un WS è formato da un insieme di messaggi XML InfoPath è un’applicazione naturale per consumarli • È piuttosto semplice quindi separare la gestione dei dati (definita come un insieme di Web Services) dalla loro presentazione • InfoPath consente di usare WS come sorgente di dati, ma anche come output A managed OS • Microsoft ha dichiarato che intendeva mettere CLR dentro Longhorn nel 2003 • Questa posizione si è ammorbidita nel tempo, ciononostante sembra un trend che continua • Questo avrà un impatto significativo sul design del sistema operativo: – La tradizionale visione della API di sistema potrebbe essere rimpiazzata da un’interfaccia ad oggetti – Il sistema operativo potrebbe entrare nel merito dell’esecuzione dei programmi per migliorare la sicurezza Avalon • Avalon è l’interfaccia grafica di Longhorn • È anche un tentativo significativo di andare oltre win32 • Interessante è la convergenza di: – Grafica 3D – Grafica vettoriale (finalmente!) – Definizione in XML dell’interfaccia (in stile Web ma nel sistema) – Convergenza su .NET • Sembra che sia superiore a Quartz (MacOS) Indigo • Indigo è un’altra buzzword del momento • Si tratta di un’infrastruttura software per applicazioni distribuite • L’idea estende quella dei Web services: il programmatore annota il proprio programma e il sistema genera le interfacce verso la rete. • Nuovamente l’intera infrastruttura si basa su SOAP e XML, quindi semplificherà lo sviluppo di applicazioni cross platform Monad, a .NET shell • Monad è la prossima shell di Windows • Ciò che cerca di fare è di andare oltre il concetto di shell Unix affidandosi al fatto che .NET sarà il prossimo sistema a componenti di Windows • Il modello prevede la manipolazione di oggetti piuttosto che di processi, ottenendo un modello a granularità più fine • La reflection offerta da .NET consente di ispezionare gli oggetti interattivamente ottenendo un sistema che si autodocumenta (in parte). Conclusioni • La piattaforma Microsoft si è evoluta negli anni da una piattaforma mediocre in una che indubbiamente introduce innovazione • La chiave di Windows è (e presumibilmente sarà) l’archiettura a componenti, che da COM sta lentamente migrando verso .NET • Office è un esempio notevole di suite che sfrutta queste capacità del sistema.