Questa pagina fornisce il materiale didattico e le informazioni relative all'insegnamento di Sistemi Software Distribuiti per il Corso di Laurea Specialistica in Ingegneria Informatica.
Si veda http://didattica.agentgroup.unimore.it/didattica/sd/ per informazioni sull'insegnamento di Sistemi Distribuiti per il Corso di Laurea Magistrale in Informatica.
All'indirizzo http://didattica.agentgroup.unimore.it/didattica/ssd si trova la vecchia pagina di Sistemi Software Distribuiti (fino all'AA 2007/08).
Iscriviti al gruppo su Facebook di Sistemi Software Distribuiti!
Contents
News
Ultime news
Le lezioni del martedì si terranno nell'aula FA1C a partire dal 9 ottobre 2012. La lezione di martedì 25 settembre 2012 sarà tenuta dal prof. Zambonelli.
Vecchie news
2011/12
Giovedì 6 ottobre 2011 la lezione sarà tenuta dal prof. Zambonelli per 2 ore e 30 minuti. Martedì 4 ottobre 2011 non ci sarà lezione. Abbiamo un gruppo su Facebook: http://www.facebook.com/groups/284220178270641/ L'orario è stato pubblicato. Le lezioni dell'AA 2011/12 inizieranno la settimana del 26 settembre (NON il 21), con orario ancora da definire
2010/11
Per gli appelli della sessione estiva 2010/11 contattare direttamente il docente La lezione di martedì 23 novembre 2010 verrà recuperata martedì 21 dicembre 2010 La lezione di martedì 23 novembre 2010 non si terrà a causa del seminario della CNH La lezione di mercoledì 10 marzo 2010 non si è tenuta a causa della neve
Informazioni sui docenti
Dipartimento di Scienze Fisiche, Informatiche e Matematiche
Dipartimento di Scienze e Metodi dell'Ingegneria
Orario delle Lezioni
Orario 2012/13
Le lezioni inizieranno la settimana del 24 settembre, con il seguente orario:
- Martedì dalle 9 alle 12 aula FA1C
- Giovedì dalle 9 alle 12 aula FA2A
Orario 2011/12
Le lezioni inizieranno la settimana del 26 settembre, con il seguente orario:
- Martedì dalle 10 alle 13 aula FA2G
- Giovedì dalle 11 alle 13 aula FA2A
Orario 2010/11
Le lezioni dell'AA 2010/11 dovrebbero iniziare il 20 settembre 2010 con il seguente orario:
- Martedì dalle 11 alle 13
- Giovedì dalle 10 alle 13
Orario 2009/10
Le lezioni dell'AA 2009/10 inizieranno il 1 marzo 2010 con il seguente orario:
- Lunedì dalle 11 alle 13
- Mercoledì dalle 9 alle 11
Finalità Del Corso E Consigli Utili
L'obiettivo dell'insegnamento è presentare i principali modelli e tecnologie per la gestione di sistemi software distribuiti. Gli obiettivi specifici sono lo studio delle architetture dei sistemi distribuiti avanzati. In particolare, verranno analizzati i sistemi client-server basati su oggetti, i sistemi a componenti autonomi (agenti) e le loro problematiche di coordinazione. Infine si analizzeranno le tecnologie per la mobilità e le relative problematiche
Programma Del Corso
Caratteristiche dei sistemi distribuiti:
- Generalità
- File system distribuiti
- Sincronizzazione distribuita
Studio delle architetture ad oggetti distribuiti:
- (RPC)
- RMI
- CORBA
- .NET
Stato dell’arte:
- Agenti software
- Sistemi adattativi complessi
Seminari
Modalità D'Esame
L'esame consiste in una prova orale su tutto il programma
Appelli
Dall'AA 2006/07 viene usata la verbalizzazione elettronica; chi vuole sostenere l'esame DEVE quindi iscriversi tramite il sito di ESSE3.
Tesina
È possibile svolgere una tesina sui contenuti dell'insegnamento. Questa tesina, da 3 CFU, può servire per:
- superare l'esame di Laboratorio di Ingegneria Informatica, insieme ad altre 2 tesine;
- conseguire 9 CFU per l'esame di Sistemi Software Distribuiti e Lab.
I possibili argomenti per la tesina sono elencati nel seguito:
1) Sviluppo di una applicazione distribuita
Si richiede di sviluppare una applicazione distribuita sfruttando una delle tecnologie ad oggetti distribuiti viste a lezione. Lo studente può scegliere tra:
- RMI
- CORBA
- .NET remoting
L’applicazione può essere di tipo client-server o peer-to-peer. Le funzionalità dell’applicazione devono essere concordate con il docente. Nel primo caso, lo studente deve implementare un server che fornisca determinati servizi e client che, tramite una interfaccia grafica, accettano richieste dall’utente e contattano il server per ottenere il servizio. Nel secondo caso, ogni peer è sia client che server e mette a disposizione degli altri peer i suoi servizi. Anche in questo caso, l’applicazione si interfaccia con l’utente tramite una interfaccia grafica. La documentazione da fornire deve comprendere:
- Descrizione dei requisiti, ed in particolare delle funzionalità messe a disposizione (ad es. tramite SRS);
- Descrizione dell'architettura (ad es. tramite diagramma);
- Descrizione dei protocolli usati (client-server o peer-to-peer, ad es. tramite diagrammi UML).
2) Simulazione di sistemi complessi
Le tesine nell’ambito della seconda parte del corso prevedono l’approfondimento, dello studio di uno specifico fenomeno di swarm intelligence o di complessità, a scelta dello studente. A tale scopo si prevede:
- Lo studio di alcuni articoli scientifici sul tema consigliati dal docente
- La sperimentazione di tali fenomeni di complessità o swarm intelligence, attraverso la realizzazione di simulazioni nell’ambiente NetLogo
NetLogo è scaricabile gratis da: http://ccl.northwestern.edu/netlogo/ (richiede la Java Virtual Machine)
Materiale didattico
Distributed Systems
Introduction to Distributed Systems
Communication and Synchronization
Distributed Objects
Introduction to Distributed Objects
Remote Method Invocation (RMI)
Mobility
Complex Systems (Prof. Franco Zambonelli)
Introduction to Complex Adaptive Systems
Agent Oriented Software Engineering
Seminari
Testi Consigliati
- A. Tanenbaum, M. van Steen, Distributed Systems - Principles and Paradigms, Prentice Hall
- An Introduction to Multiagent Systems by Michael Wooldridge. Published in February 2002 by John Wiley & Sons (Chichester, England). ISBN 0 47149691X
- Stefano Russo, Carlo Savy, Domenico Cotroneo, Antonio Sergio, Introduzione a CORBA, McGraw Hill
Esercizi presentati a lezione
Codice degli esercizi su RPC: eserciziRPC1.tar
NOTA: su MacOS X il portmapper potrebbe non essere avviabile in modo facile; qui è riportata una soluzione che modifica il file /System/Library/LaunchDaemons/ com.apple.portmap.plist
Codice dell'esempio CORBA EsempioCORBA.zip
Codice dell'esempio .NET EsempioDotNET.zip
Strumenti Software
Si indicano di seguito gli strumenti software che si utilizzano durante il corso e si indica dove e' possibile reperirli.
CORBA
Un ORB per Java: JavaORBv2_2_7.zip
.NET
È possibile ottenere una copia dei CD di installazione di Visual Studio .NET richiedendola al tecnico del laboratorio InfoMec. Tale copia è prevista per i soli studenti.
In alternativa, è possibile usare SharpDevelop, uno strumento Open Source per C# e VB.NET.