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.