Académique Documents
Professionnel Documents
Culture Documents
Jan. 26th
Questions
Why are you studying computer science? Why do you think youre learning about distributed systems? What do you think youre going to learn? What would you like to learn?
This class is
Offered as part of the COMPUTER SCIENCE degree program REQUIRED CREDITS: 6 HOURS/WEEK: 3 The purpose is to understand the basic concepts for designing and developing distributed systems and applications
All the information on this page: classnotes, additional material, class schedule, labs, etc. Aula Global 2 has a link to this page; you may want to consult it as well.
Bibliography
Distributed Systems, Concepts and Design. G. Coulouris, J. Dollimore, T. Kindberg. Fourth edition, 2005. Addison-Wesley Computacin distribuida. Fundamentos y Aplicaciones M. L. Liu. 2004 Pearson. Addison-Wesley
Methodology
Theory classes: present and explain basic concepts. Students must also consult the textbooks (both for theory and problems); it is possible that the professor may not have time to explain all details during class! Ask anything that is unclear, ideally before exam week!! Problem solving in class: the professor will solve exercises to illustrate how to apply the concepts learned in the theory class. Problem solving in class: the students will solve exercises to make sure they get practical experience and they understand what concepts are still unclear. Lab work: several sets of problems, solved in groups to encourage teamwork.
Classes
14 weeks 2 classes per week, each 1.5 hours 4 additional labs, each 1.5 hours
CURSO: 3
CUATRIMESTRE: 2
(*)
1 1
1 2
X X
2 2 3
3 4 5
Concurrencia y comunicacin entre procesos Ejercicios de comunicacin y sincronizacin Concurrencia y comunicacin entre procesos
X X X
3 4 4 5 5 6 6 7 7
6 7 8 9 10 11 12 13 14
Ejercicios de comunicacin Sockets Descripcin del API de los sockets en C Aplicaciones cliente-servidor Descripcin del API de los sockets en Java Gua de diseo de aplicaciones cliente-servidor Ejemplos y ejercicios de diseo de aplicaciones utilizando sockets Llamadas a procedimientos remotos RPC de SUN y ejercicios
X X X X X X X X X
Presentacin, normas y tema 1 de 1,5 introduccin a los sistemas distribuidos Tema 2 de repaso de los principales 1,5 conceptos relacionados con las redes, protocolos y TCP/IP Repaso de los principales mecanismos 1,5 de sincronizacin entre procesos 1,5 Describir los aspectos relacionados con 1,5 la comunicacin y aspectos del paso de mensajes, colas de mensajes POSIX 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5
7 4 4
CURSO: 3
CUATRIMESTRE: 2
(*)
8 8 9 9
15 16 17 18
Invocacin de mtodos remotos Ejercicios de RPC y RMI Prueba PARCIAL Correccin del examen y ejercicios Servicios Web Servicios Web con gSOAP Sistemas de ficheros distribuidos NFS y ejercicios de sistemas de ficheros distribuidos Coordinacin y sincronizacin distribuida Presentacin en pblico de la lectura de un artculo Ejemplos de aplicaciones distribuidas Presentacin en pblico de la lectura de un artculo Tolerancia a fallos Presentacin en pblico de la lectura de un artculo Recuperaciones, tutoras, entrega de trabajos, etc Preparacin de evaluacin y evaluacin
X X X X X X X X X X X X X X
1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5 42 Sesiones en aulas de prcticas (1,5 X 4) 6 Entrega de trabajos
7 4 4 7 7 + 74 = 116 16 12 150
SESIN
SE DESCRIPCIN DEL CONTENIDO DE MA LA SESIN NA (El grupo se subdivide en dos. En el horario se programan dos sesiones en el laboratorio indicado en esa semana)
5 7 Diseo, desarrollo y evaluacin de una aplicacin distribuida con sockets Interoperabilidad y heterogeneidad en el Diseo y desarrollo de una aplicacin distribuida utilizando sockets Diseo y desarrollo de una aplicacin distribuida utilizando RPC Diseo y desarrollo de una aplicacin distribuida utilizando Web Services
LABORATORI TRABAJO DEL ALUMNO DURANTE LA O EN EL QUE SEMANA HORAS SE REALIZAN DESCRIPCI HORAS TRABAJO LAS SESIONES N
PRESENCIALES Semana Mximo 7H
1 2
1,5 1,5
3 4
3 4 TOTAL
10 12
1,5 1,5 6 10
4 3
Labs [7.0.J.04]
(Friday, 14:30-16:00) Borja Bergua
Evaluation process
The student must study:
The books given in the bibliography
The slides are explaining basic concepts and are helping with the learning process, but they DO NOT exhaust the material.
Additional material indicated in the slides or on the class Web site The student must solve the problems given in class. The student must solve the lab problems.
Convocatoria extraordinaria
Eligible IF one follows continuous evaluation OR not
Evaluation 75%
si
25%
Continuous evaluation
Final exam
20% Midterm
30% Labs
15% Exercises
16
Final exam:
ALL the material. If you miss the final exam you fail continuous evaluation.
Labs:
17
Evaluation
no
60%
Evaluacin continua
Final exam
Examen parcial
Prcticas
Trabajos
18
Evaluation
no
60%
Evaluacin continua
Examen parcial
Prcticas
Trabajos
19
Does not take the midterm exam. Does not submit all lab work. Does not solve at least 60% of the problems.
20
Evaluation
no
75%
Evaluacin continua
Final exam
Examen parcial
Prcticas
Trabajos
21
Evaluation
no
75%
Evaluacin continua
Examen parcial
Prcticas
Trabajos
22
Max
Evaluation 75%
si
Evaluation 25%
no
75%
Continuous evaluation
Final exam
20% Midterm
30% Labs
15% Exercises
23
Exams
Closed-book: i.e. you CANNOT use any material (classnotes, books, etc). You need to have the DNI or the university id with you the day of the exam. You must take the exam with your group, otherwise the exam is not considered valid.
Labs
4 labs in groups of 2 (same) students each. The labs will be available on the class web site enough time before their due date. The web site will specify the due date and the procedure to follow for submitting the solutions. You will fail a lab work if we determine that you are one of two (or more) groups who have copied from each other. We will NOT try to determine who copied from who, EVERYONE involved will fail that lab.
Network
Goals
Study the fundaments and basic concepts of distributed systems Design and implement distributed applications using basic concepts such as sockets, RPCs and web services Evaluate the performance of distributed applications Learn how to solve problems related to distributed systems
Step 1: Recap
What concepts do we need to learn or recap? Computer networks Basic OS concepts (processes and concurrent programming)
process Message passing HTML TCP/IP switch OSI Wireless HTTP hub Ethernet WWW backbone program ARP Web NFS DNS Protocols IP address Internet RPC TCP/UDP socket middleware Port
Step 2: Study
Communication paradigms for distributed systems Which OS services we can use to implement distributed applications Design and implement distributed applications using these services
Step 3: Implement
Internet Client Process request Servier Process
reply
What requirements does my application have? What is the most appropriate communication paradigm? How to design a communication protocol? What data does the application need to handle? What is the naming convention (machines, resources, services)? What aspects do we need to consider to realize the end-to-end communication (data representation , byte ordering, etc) ?
Step 4: evaluate
Which parameters are relevant for my specific application? What is the performance of my application and what is its latency? Does the application scale well? Does the application need to perform specific error handling?