Basic concepts. Interaction styles. Models of distributed computing. Distributed computing platforms and systems. Fault-tolerant distributed systems. Real time distributed systems. Technologies for the development of Web applications.
Paulo Verissimo, Luis Rodrigues "Distributed Systems For Systems Architects", Kluwer Academic Publisher.Marty Hall, Larry Brown "Core Servlets and Javaserver Pages", Vol. 1, II Edition.
Learning Objectives
Knowledge acquired: The course aims to provide the basic architectural concepts of distributed systems, focussing in particular on design methodologies.Competence acquired: Knowledge of the main problems related to distributed systems together with the most important paradigms and models for distributed computing. Basic methodologies for the resolution of such problems as synchronization, coordination, data sharing, resource allocation, consistency, fault-tolerance and real time. All the topics will be exemplified by means of several existing technologies, platforms and systems. Laboratory lectures will help students to design and develop simple software projects, based on Web technologies.Skills acquired (at the end of the course): The student will be able to design and develop simple software projects, based on Web technologies.
Teaching Methods
CFU: 9Total hours of the course (including the time spent in attending lectures, seminars, private study, examinations, etc...): 225Hours reserved to private study and other individual formative activities: 145Contact hours for: Lectures (hours): 56Contact hours for: Laboratory (hours): 24Contact hours for: Laboratory-field/practice (hours): 0Seminars (hours): 0Stages: 0Intermediate examinations: 0
Further information
Frequency of lectures, practice and lab: RecommendedTeaching Tools UniFi E-Learning: http://e-l.unifi.itOffice Hours: By appointment (contact professor by e-mail or phone number).Viale Morgagni, 65 - 50134 FirenzeTel. 055 4237450Fax. 055 4237436rosario.pugliese@unifi.it pugliese@dsi.unifi.it
Type of Assessment
Oral examination and software project.
Course program
Basic concepts: computer networks, multi computers and distributed systems; comparison between centralized and distributed systems; evolution of distributed systems (from remote access to mobile code); formal notations for system and property modeling. Address and name resolution. Interaction styles: message passing, remote operation, group communication. Time, clocks, synchrony. Ordering of distributed events. Main coordination paradigms for distributed systems. Models of distributed computing: synchronous, asynchronous, client-server with RPC, group oriented, distributed shared memory, message bus. Platforms and distributed systems: name and directory service, distributed file system, Distributed Computing Environment, CORBA, WWW, group based systems. Distributed fault-tolerant systems: basic concepts, paradigms (consensus, membership, communication, replication, recovery), and models. Distributed Real-time systems: basic concepts, paradigms, main models. Technologies for the development of Web applications: HTML; CSS; basic concepts of servlets and Java Server Pages (JSP); client request management, automatic Java Bean population, management of server answers, cookies and sessions; JDBC; elements of MySQL.