Piattaforme Software Distribuite uno (PSD1)


Pagina didattica
Durata del corso: 14 gennaio - 14 Marzo

Libro di testo
Sistemi distribuiti (seconda edizione), Tanenbaum - Van Steen , Editore Pearson Education


DATE ESAME 2 febbraio 2009, aula B2 via Ariosto, 25, ore 9:00 - prenotare mediante INFOSTUD


Come si svolge l'esame
L'esame prevede un progetto individuale (dimostrare mediante un'applicazione l'uso di una tecnologia, p.e., CORBA, RMI,Web service,etc), uno scritto (2 ore, 4/5 domande) ed un orale. La discussione del progetto avviene contestualmente all'orale. L'orale inzia subito dopo lo scritto.
Esempi di argomenti per tesina
- Applicazione (non banale) che sfrutti java RMI, ad esempio ''chat'' con callback e thread
- Applicazione CORBA che usa sia il sistema CORBA/Java (va bene ORB della Sun) ed un sistema CORBA/C++ (ad esempio MICO)
- Applicazione che sfrutti programmazione a tuple, per esempio JavaSpace
- Applicazione basata su Web Service (p.e., usando le api Web Service di Amazon)
- Sviluppo di un piccolo framework per oggetti distributi

Programma del corso
Definizione di sistema distribuito ed obiettivi (1.1,1.2)
Tipi di sistemi distribuiti(1.3)
Architetture di sistema (2.1,2.2)
Architetture e middleware a confornto
Processi (Cap 3)
Capitolo 4, Comunicazione Slide slide2
Naming (lettura, Cap 5)
Sistemi distribuiti ad oggetti (Cap 10) Oggetti distribuiti , Corba Introduzione , CORBA-IDL , CORBA Programming 1
Sistemi PUB/SUB Java RMI Slide
Sistemi distribuiti basati sul coordinamento pub-sub
Ambient computing Protocollo 2PC (8.5.1)



Esempi di tesine
- Interoperabilita' CORBA (Java) e CORBA (C++)
- JavaSpace
- Web Service
- Framework per oggetti distributi



Laboratorio 1 (reflection in java)
1) Echo server in UDP(Preliminare), Client , Server
COSA FARE:
(i)Copiare sorgente, compilare ed eseguire (uso: UDPClient messaggio nomehost).
(ii)Modificare il server in modo che restituisca la stringa cambiando i caratteri in maiuscolo

2) Primo esempio di utilizzo della reflection testReflection
COSA FARE
(i)Copiare, compilare, ed eseguire, giustificare l'output.
(ii) Aggiungere un metodo alla classe ed osservare come cambia l'output del programma

3) Uso della reflection per invocare un metodo in modo dinamico, Client , Server
COSA FARE:
Copiare, compilare ed eseguire.
(i) Modificare il Client ed il Server in modo che il server dia al client informazioni sui metodi di un oggetto interno;
(ii) Modificare il Client ed il Server in modo che il Client possa invocare dinamicamente il metodo descritto dal Server
Laboratorio 2 (Java RMI)
1) Primo semplice esempio di utilizzo di Java RMI
COSA FARE:
Compilare i sorgenti
Creare stub con rmic
Lanciare RMIRegistry
2) Scrivere altro esempio a piacere
Laboratorio 3 (Corba)
Vedi istruzioni


Link utili
Middleware orientato ai messaggi per applicazioni parallele su cluster
PVM
MPI

Grid computing
Grid infoware

Reflection
Tutorial java reflection

Programmazione orientata agli aspetti
AspectJ


Reti P2P
Gossip-based sampling
T-MAN
Astrolabe

Virtualizzazione risorse
Xen