Modelli Middleware, WEB services e REST, CORBA, sistemi P2P, cllock e ordinamenti, architetture parallele, sistemi cooperativi, sistemi mobili, cloud computing e virtualizzazione, social network
Fornire le capacita' di analizzare, comprendere e progettare sistemi distribuiti conformi a varie tipologie di pattern. Conoscere i principali paradigmi, modelli ed architetture per la realizzazione di sistemi distribuiti. Conoscere i modelli di misura della complessita' e delle criticita' dei sistemi distribuiti. Applicare i modelli di progettazione ai sistemi distribuiti.
Prerequisiti
principi di programmazione, gestione basi di dati, telematica.
Metodi Didattici
Lezioni frontali, seminari, discussioni tematiche, esercitazioni in aula e incontri in laboratorio per affrontare problematiche reali.
Altre Informazioni
pagina del corso:
http://www.dsi.unifi.it/~nesi/didaptical.html
Modalità di verifica apprendimento
L'esame si supera tramite lo sviluppo di un elaborato concordato con il docente, esempi si trovano su: http://www.disit.dsi.unifi.it/tesi.html
Programma del corso
dettagli e slide possono essere ottenuti da http://www.dsi.unifi.it/~nesi/didaptical.html
--Overview parte 0, ver:0.6: una vista generale al corso
-- Introduzione (Parte 1, ver:2.0): (versione 2.4) Cosa sono i sistemi distribuiti, Tecnologie dei sistemi distribuiti, Internet e sua Evoluzione, Intranet, Penetrazione di internet, Crescita, Sistemi Mobili, Condivisione delle risorse, Web Server and Web Services, Caratteristiche: Eterogenei, aperti, sicuri, trasparenti, architetture, n-tier.
-- XML (parte 1b): fondamenti di XML, uso avanzato dell'XML
PHP e Drupal: Parte 1cI, Parte 1cII, architetture web server, programmazione in PHP, costrutti dell linguaggio, operatori, get/post, esempi; Parte II: Content Management Systems, CMS, moduli, call back, ruoli, etc. WEB services e REST remote invocation via Web Services and REST architectures, strumenti per i WEB services, verifica, SOAP.
-- Modelli Middleware, Call (Parte 2, ver:2.4) (versione 2.8) Evoluzione delle architetture Client Server, Comunicazione fra processi; evoluzione dei sistemi distribuiti; Comunicazione Sincrona, Comunicazione Asincrona; Proxy, peer process, WEB applets, Thin clients; Sistemi Mobili; Progettazione di Sistemi Distribuiti; Modelli di Interazione sincroni ed asincroni; Ordinamento e Sincronizzazione di eventi; Tipi di reti; Middleware: Comunicazione fra processi, Livelli OSI; Perche il Middleware; RPC e RMI; UDP e TCP; Sockets and ports; Example: TCP communication; Data representation and coding for transmssion; si veda in seguito CORBA CDR; MIME; Call Remote: Invocazioni Remote; Middleware; Descrizione delle Interfacce, IDL; Remote Procedure Call; Ruolo dello Stub nelle RPC; SUN XDR RPC; CORBA IDL; Modello ad oggetti di sistemi distribuiti; Oggetti remoti ed interfacce; Comunicazione fra oggetti, RMI, semantica delle RMI; ORPC; modelli distribuiti ad oggetti
-- CORBA (Parte 3, ver:2.5) (versione 2.9) Architettura CORBA; componenti di CORBA; ORB, Services, Facilities, Application Objects; Struttura degli ORB; Data Flow in CORBA; ORB Invocation and Clients; Server side; Oggetti in CORBA; Caratteristiche di CORBA; IDL e IIOP; IDL e suo definizione ed uso; Modelo di Comunicazione; Client e Server; Object Adapter; Portable Object Adapter; applicazioni WEB, invocazione via HTML; Costruzione di Applicazioni CORBA; aspetti di Progetto; Single thread e MultiThread;
-- Sistemi P2P (Parte 4a, ver:3.1): ( versione 3.8) aspetti generali, applicazioni P2P, evoluzione storica, tecnologiche, requisiti, P2P e sicurezza, architetture (distribuite, concentrare e ibride), propagazione/seeding, algoritmi di routing overlay, DHT, esempio di Skype, replication, download multisorgente, notifica di cambiamenti sulla rete P2P; propagazione ed integrazione di query, verifiche e monitoraggio di sistemi P2P, protocollo bitTorrent, valutazione dei sistemi P2P, soluzione JXTA (requisiti, protocolli, problemi), Modello DIMOB (P2P per sistemi eterogenei, mobili e non in C++), solution BTorrent AXP2P description: and the real Tool that can be installed and used, P2P VOD, P2P TV, P2P webTV, download progressivo, applicazioni del P2P per real time streaming.
Clock e ordinamenti in sistemi ditribuiti P2P (Parte 4b, ver:1.3): (versione 1.6) algoritmi per la sincronizzazione di processi, sincronizzazione di orologi/clock, precisione, drift, ritardi, etc.;
-- Architetture Parallele e Sistemi GRID (Parte 5, ver:3.1): (versione 3.8) breve vista sulle architetture parallele, speed up, GRID, calcolo parallelo e distribuito, tipi di GRID, problemi dei GRID, autenticazione, data GRID, process grid, Confronto fra sistemi GRID, Globus, Condor, Unicore, Legion, uso di Condor; costruzione e progettazione di un sistemi di grid, programmazione su media grid AXCP. Esempi, AXMEDIS Content Processing GRID, adattamento, produzione e protezione di contenuti digitali, marchiatura dei contenuti digitali, tracciamenteo e monitoraggio contenuti digitali, scheduling dei processi; allocazione dei processi sul GRID.
-- Sistemi Mobili, PDA (Parte 11, ver:2.1): (versione nuova 2.7) sistemi mobili, da PDA a cellulari e altro, comunicazione; confronti fra sistemi operativi; applicazioni, confronto fra sistemi mobili; profiling, problemi di adattamento, emulazione e sviluppo software per sistemi mobili, P2P e sistemi mobili, modelli dei contenuti per sistemi mobili; modello di programmazione per sistemi Microsoft Windows Mobile, modello di programmazione e svilluppo per sistemi iPhone/iPad, modello di programmazione Android, Windows Phone, aspetti di progettazione, confronto fra modelli di programmazione, notifiche in push, connessione e comunicazione diretta fra mobile; si veda Mobile Medicine per tool windows mobile, e iPhone Application Mobile Medicine.mobile emergency, concent organizer, etc.
-- Reti Sociali, short overview on social network (Parte 19, ver:1.1) (da aggiornare versione 1.2) una breve vista sui problemi delle social network, modelli collaborativi, modellazione delle relazioni, metriche, distanze fra profili, confronto di reti sociali attuali come: youtube, flickr, etc.; Una versione piu' estesa del programma viene svolta nel Corso di Sistemi Collaborativi e di protezione della Laurea Magistrale.
-- Cloud Computing and Virtualization (Parte 17, ver:1.8): (da aggionare versione 2.0) motivation for cloud computing, PaaS, SaaS, IaaS, MaaS, DbaaS, etc.; virtiual machine concepts, emulation and paravirtualization, VM shapshots, virtual resources; cloud computing, cloud vs grid, goals of cloud computing; high availability, workload balancing; vSphere infrastructure, vmotion, power management, resource scheduling, virtual networking, fault tolerance; Security on the Cloud; Conversion of VM, production of VM; VCenter of vSphere, multi-tier architecture, vapp, NAS/SAN, performance analysis. Example of tools for cloud computing: Microsoft Hyper-V, VMware vSphere, etc.
-- Laboratorio di Sistemi Distribuiti e Tecnologie Internet: dimostrazione di sistemi GRID, social network, P2P controllato, architetture multitier, cloud computing, e virtualizzazioni.