Els materials de lassignatura de Sistemes Distributs sn el llibre Distributed Systems,
Concepts and Design, 5th Edition. Hem organitzat aquesta assignatura en tres mduls principals: 1. Introducci i conceptes generals (3,5 setmanes) 2. Fonaments de sistemes distributs (4 setmanes) 3. Middleware i casos dus (4 setmanes) A continuaci detallem els conceptes que es tractaran en cada mdul. Mdul 1. Introducci i conceptes generals s un mdul general i introductori que inclou tres captols del llibre: 1. Characterization of Distributed Systems 2. System models 4. Interprocess Communication (reps) Cal que llegiu sencer el captol 1 (Characterization of Distributed Systems). Motiva molt b amb exemples la importncia dels sistemes distributs i els seus reptes. Del captol 2 (System Models) heu de llegir les tres primeres seccions (2.1, 2.2, i 2.3). Sn despecial importncia en aquest tema els models darquitectura (2.3). No cal que entreu en el punt 2.4 (Fundamental models), ja que els conceptes clau de tolerncia a fallades ja seran tractats ms endavant en el mdul 2 (Fonaments de sistemes distributs). [Opcional] Per ltim, considerem interessant que llegiu per sobre el captol 4 (Interprocess Communication). Sn conceptes que ja coneixeu de lassignatura de Xarxes i Aplicacions Internet, per que anir b que repasseu per aquesta assignatura. En concret, la secci 4.2.1 explica molt b la diferncia entre comunicaci sncrona i asncrona i conceptes com ara fiabilitat i ordre de recepci. La seva aplicaci als protocols de transports TCP, UDP i les API per sockets sn una base important de la nostra assignatura. La majoria de sistemes distributs es comuniquen mitjanant missatges enviats sobre un socket TCP o UDP. Mdul 2. Fonaments de sistemes distributs Aquest s el mdul ms important de lassignatura que inclou cinc captols del llibre: 14. Time and Global States 15. Coordination and Agreement 16. Transactions and Concurrency Control 17. Distributed Transactions 18. Replication 11. Security Del captol 14 (Time and Global States) s molt important entendre b els conceptes de rellotges lgics i sincronitzaci de les seccions 14.1 a la 14.4. No cal que entreu en profunditat en les seccions 14.5 i 14.6. Del captol 15 (Coordination and Agreement), heu destudiar b els conceptes d'exclusi mtua i elecci de lder (seccions 15.1 a la 15.3). De la secci 15.4 (coordinaci i acord) heu dentendre els conceptes de total order multicast i causal order multicast, per no cal que estudieu en profunditat els algorismes. El nivell de coneixement que es demanar ser equivalent a les preguntes de les PACs. De la secci 15.5 heu dentendre el problema del consens en presncia de fallades. Tamb s important que entengueu el problema dels general bizantins. En canvi, no cal que entreu en profunditat en la relaci del consens amb daltres problemes o lalgorisme de consens en sistemes sncrons. Tampoc cal que entreu en la secci 15.5.4. Del captol 16 (Transactions and Concurrency Control) heu destudiar les seccions 16.1,16.2, 16.5 i 16.6. Lobjectiu s que entengueu els conceptes clau de transaccions (ACID, commit i rollback, concurrncia). Tamb s important que entengueu el control optimista de la concurrncia i lordenaci desdeveniments amb timestamps. En aquest tema, per la complexitat dels conceptes, no cal aprofundir en la secci 16.6. Si enteneu el concepte de ordre amb timestamps ja s suficient. Si que suggerim la lectura de la secci 16.7 amb exemples reals com Dropbox o la Wikipedia. Del captol 17 (Distributed Transactions), noms cal que estudieu la secci 17.3 (Atomic commit protocols). s important que entengueu b el protocol two phase commit (2PC). Heu de posar atenci especial al captol 18 (Replication). Sn importants els conceptes explicats en les seccions 18.1, 18.2 i 18.3. El punt 18.4 cont tres casos ds (Gossip, Bayou, Coda) que no cal que estudieu si el professor no ho demana explcitament en una PAC o prctica. En qualsevol cas, si que s interessant entendre el concepte de gossiping en sistemes distributs. Per acabar, no cal estudiar la secci 18.5 per si que entengueu el problema de les particions. Les preguntes de les PACs us serviran per entendre el nivell de comprensi que demanem en cada captol. [Opcional] Com a material complementari suggerim la lectura i comprensi del teorema CAP de Brewer sobre consistncia, disponibilitat i tolerncia a particions. En aquest lnia recomanem l'article: http://dl.acm.org/citation.cfm?id=1435432 Finalment, en tot sistema distribut cal considerar la seguretat. Del captol 11 (Security) heu de llegir la secci 11.1, que us donar una visi general del problema. En aquesta assignatura ja donem per fet que coneixeu conceptes com la criptografia simtrica i de clau pblica, i la signatura digital. Daquest captol, cal llegir els casos destudi Needham-Shroeder i Kerberos. [Opcional] Pels que tingueu inters en ampliar una mica els coneixements en aspectes de disseny de la seguretat us recomanem les segents lectures: Chapter 1, "An Overview of Computer Security" (http://nob.cs.ucdavis.edu/book/book- aands/aands01.pdf) Chapter 13, "Design Principles" (http://nob.cs.ucdavis.edu/book/book- aands/aands13.pdf) Mdul 3. Middleware i casos dus s el mdul ms aplicat. Inclou serveis middleware i casos dus atractius. Cont cinc captols del llibre: 5. Remote Invocation (reps) 6. Indirect communication 10. Peer-to-peer Systems 20.6.2 BitTorrent 21. Designing Distributed systems: Google Case Study [Opcional] En primer lloc, recomanem el reps del captol 5 (Remote Invocation). Sn conceptes que ja coneixeu de lassignatura de Xarxes i Aplicacions Internet, per que anir b que repasseu per aquesta assignatura. Sn especialment importants les tres primeres seccions (5.1, 5.2 i 5.3) on sexplica el middleware RPC. Els punts 5.4 i 5.5 tracten la invocaci de mtodes en objectes distributs i el cas ds de RMI. El captol 6 (Indirect communication) sha destudiar sencer ja que tracta quatre models de middleware destacats (group communication, publish/subscribe, message queues i shared memory). Finalment, el captols 10 i 21 presenten dos casos dus especialment interessants: les xarxes peer-to-peer i la infraestructura distribuda de Google. Tots dos permeten la construcci de sistemes distributs de gran escala amb aproximacions diferents. Tamb hem incls lestudi del sistema BitTorrent (20.6.2), ja que s una xarxa P2P responsable de gran quantitat del trfic a Internet. Del captol 10 (Peer-to-peer Systems) cal que llegiu els apartats 10.1 a 10.4, aix com el 10,5.1 i 10.5.3. Els que estigueu interessants en el tema tamb us proposem la lectura dels apartats 10.5.2 o 10.6. Del captol 21 (Designing Distributed systems: Google Case Study) cal que us llegiu els apartats 21.1 a 21.3. Tamb suggerim la lectura de la resta d'apartats als que hi estigueu interessats ja que donen una visi del funcionament de la infraestructura de Google. Per a efectes d'avaluaci noms caldr que llegiu els apartats o subapartats entre el 21.4 i el 21.6 que el professor indiqui a l'aula o en alguna de les activitats del curs.