From Agentgroup
Jump to: navigation, search
(Materiale didattico)
(Ultime news)
Line 9: Line 9:
 
= News =
 
= News =
 
==Ultime 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
 
   La lezione di martedì 23 novembre 2010 non si terrà a causa del seminario della CNH
  

Revision as of 11:09, 6 December 2010

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).


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

Docente.png

Prof. Giacomo Cabri

Dipartimento di Ingegneria dell'Informazione

giacomo.cabri@unimore.it


Docente.png

Prof. Franco Zambonelli

Dipartimento di Scienze e Metodi dell'Ingegneria

franco.zambonelli@unimore.it


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

Iscrizione.png


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

Introduzione al corso

Sistemi distribuiti

Introduzione ai sistemi distribuiti

Comunicazione e sincronizzazione distribuita

Naming

Introduzione al corso


Sistemi a oggetti distribuiti

Introduzione agli oggetti distribuiti

RPC

Esercizi RPC

RMI

CORBA

.NET


Mobilità

Mobilità del codice

Dispositivi mobili


Stato dell’arte (Prof. Franco Zambonelli)

Introduction to Complex Adaptive Systems

Cellular Automata

Small World Networks

Scale Free Networks

Autonomous Agents

Multiagent Systems

Agent Oriented Software Engineering

Swarm Intelligence

Field-based Coordination

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

Strumenti.png

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.