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).
Contents
News
Ultime news
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
Vecchie news
La lezione di mercoledì 10 marzo 2010 non si è tenuta a causa della neve
Informazioni sui docenti
Dipartimento di Ingegneria dell'Informazione
Dipartimento di Scienze e Metodi dell'Ingegneria
Orario delle Lezioni
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
Sistemi distribuiti
Introduzione ai sistemi distribuiti
Comunicazione e sincronizzazione distribuita
Sistemi a oggetti distribuiti
Introduzione agli oggetti distribuiti
Mobilità
Stato dell’arte (Prof. Franco Zambonelli)
Introduction to Complex Adaptive Systems
Agent Oriented Software Engineering
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.