Ingegneria del software LS
prof. Antonio Natali
Materiale realizzato durante il corso.
Per questo corso tenuto dal prof. Antonio Natali è stato necessario:
- studiare e la realizzare il modello concettuale di tecnologie tuple-space
- progettare e implementare un sistema che permettesse di mettere in luce le principali problematiche dei sistemi distribuiti con particolare attenzione alle tematiche legate alla dimesione dell'interazione
Durante il processo di sviluppo si è studiato il problema a livello di analisi, progetto indipendente dalla tecnologia e progetto dipendente dalla tecnologia tuple-space.
Il sistema è stato poi realizzato sfruttando l'infrastruttura TuCSoN che ha permesso di lavorare con l'astrazione di agente (mappata ovviamente sul concetto di oggetto Java.. e thread!) e di tuple-centre (utilizzati come tuple-space).
Durante il corso si è inoltre utilizzato moodle course management system (CMS), riadattato per consentire anche la condivisione di conoscenza all'interno di un gruppo di lavoro.
Il tutto è stato realizzato in collabolarazione con Lorenzo Cavina (Gruppo5LS) che mi ha anche fatto imparare ad utilizzare le mappe concettuali per la raccolta delle idee. Lo strumento che è stato utilizzato a tal proposito è FreeMind, free appunto.
Appunti presi a lezione
Progetto funzionante (eclipse) e processo di sviluppo
Materiale consegnato
Modello concettuale tuple space
Modello concettuale tecnologie
Sito del corso
CMS moodle per il corso
Sito dell'infrastruttura TuCSoN
Maven 2
moodle
FreeMind
Sistemi Multi-Agente LS
prof. Andrea Omicini
E' sostanzialmente un'introduzione ai sistemi auto-organizzanti che costituiscono un campo di ricerca relativamente giovane e forse proprio per questo si rileva molto interessante. Gli argomenti trattati sono in fin dei conti degli elementi emersi dalla lettura di articoli scientifici recenti e riguardano Swarm Intelligence, Cognitive Stigmergy e le sue basi dalla psicologia (Behavioral Implicit Communication), l'utilizzo della process algebra e delle simulazioni come strumento per la progettazione di sistemi auto-organizzanti ed infine qualche esempio per comprendere meglio il tutto. Un unico pre-requisito per chi intende leggere e capire questa presentazione è quello di aver letto qualcosa riguardo ai MAS e al meta-modello A&A (Agenti e Artefatti).
Download della presentazione: "Self Organizing MAS"
Sito del gruppo di ricerca alice.unibo.it
Un po' di materiale riguardante le ricerche di Castelfranchi
Sito di Hadeli (LI Wen Quan)Tecnologie per la sicurezza LS
prof. Roberto Laschi
Per questo corso sono stati realizzati un approfondimento riguardante la "steganografia moderna" e un elaborato in Java così da dimostrare di avere testato le funzionalità che questo linguaggio (o meglio, che questa piattaforma attraverso JCE, JAAS, JSSE, etc) mette a dimostrazione per l'implementazione di meccanismi (simmetrici e asimmetrici) per la sicurezza. Tra le varie cose si è utilizzato SSL (Secure Socket Layer, vedi SSLSocket e SSLServerSocket) e keytool per la generazione dei certificati.
Download della presentazione: "Steganografia moderna"
Download della presentazione: "SRS - Secure Remote Solver"
Download del codice Java relativo all'elaborato
Link alla pagina ufficiale di Java (1.5) Security
A proposito di sicurezza, come fare per mandare velocemente da windows una mail cifrata con pgp utilizzando la chiave del destinatario ?
Semplice, sono sostanzialmente 9 semplici passi:
-
installare "pgp desktop" (scaricabile dal sito pgpi.com)
cercare la chiave pubblica del destinatario:
la si può cercare anche tramite il programma di cui sopra
e inserirla così nel proprio portachiavi (keyring)
creare una file testuale (.txt) con scritto il messaggio riservato
cliccare col tasto destro del mouse sul file -> PGP Zip -> Encrypt
nella finestra che si apre cliccare due volte sul destinatario
ora dovrebbe apparire anche poco sotto
selezionare "Text output" e "Input is text" quindi cliccare su Ok
viene creato un nuovo file (solitamente con estensione .pgp) nella stessa cartella
del file testuale originale. Aprirlo con blocco note (o equivalente)
copiare il contenuto del file (PGP) come messaggio della mail della persona alla quale si vuole mandare
scrivere un oggetto, l'indirizzo del destinatario e inviare la mail
Sistemi Operativi LS
prof. Maurelio Boari
Materiale relativo alla parte pragmatica dell'esame in cui si è analizzato il problema della concorrenza focalizzandosi sul parallelismo logico di più flussi di controllo su uno o più processori (nel caso multi-processore si ha ovviamente anche un parallelismo reale oltre che logico). Nozioni e problematiche di questo tipo (vedi le sincronizzazioni) si possono osservare oggigiorno anche in ambiente distribuito ed in settori non "strettamente informatici" quali ad esempio quello dell'automazione. Per il superamento dell'esame erano stati assegnati 6 esercizi (3 relativi a Java-Thread e 3 su C-pthread) di cui 2 facoltativi. Se ne sono realizzati 3 in Java e 2 in C. Il tutto è presente nel file scaricabile.
Download del codice Java e C delle esercitazioniLinguaggi e modelli computazionali LS
prof. Mirko Viroli
A (partial) Stochastic Pi-Calculus Prolog Engine.
E' passato ormai un anno da quando ho deciso di dedicarmi a questo progetto per l'esame di linguaggi e modelli computazionali ls. Per questo elaborato si sarebbe dovuto lavorare circa un centinaio di ore, ma devo dire che con buona probabilità ci sono stato sopra di più. Nonostante ciò il lavoro non si può considerare finito e del tutto corretto. L'obiettivo che mi ero posto era quello di realizzare una estensione stocastica del pi-calculus, in Prolog. Il consiglio del prof. Mirko Viroli - che mi ha seguito in questo progetto - è stato quello di partire dallo studio della Stochastic Pi-Calculus Machine (SPiM) descritta nell'articolo "A correct abstract machine for the stochastic pi-calculus" prodotto da Andrew Phillips e Luca Cardelli di Microsoft Research.
Con l'attuale implementazione - migliorabile - si possono simulare con successo processi relativamente semplici come ad esempio: NaCl, Mg2Cl e KNa2Cl. Non è possibile tuttavia simulare processi che sfruttino la nozione di canale privato e, per motivi temporali, processi con centinaia o migliaia di processi atomici in parallelo. Per maggiori dettagli si rimanda alla relazione scaricabile dalla pagina elaborati di questo sito.
Relazione
Download della teoria Prolog che realizza l'engine stocastico
(tu)Prolog Engine
SPiM
Prism
Home page del prof. Mirko Viroli
Home page di Luca Cardelli, Microsoft Research
Home page di Andrew Phillips, Microsoft Research