IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Mobile og distribuerede systemer 
Kursusnavn (engelsk):Mobile and Distributed Systems 
Semester:Forår 2007 
Udbydes under:cand.it., softwareudvikling og -teknologi (sdt) 
Omfang i ECTS:7,50 
Kursussprog:Engelsk 
Kursushjemmeside:http://www.itu.dk/courses/SMDS/F2007/index.html 
Min. antal deltagere:12 
Forventet antal deltagere:25 
Maks. antal deltagere:100 
Formelle forudsætninger:Before the course the student should be able to:
  • Design, implement, and test medium-sized programs in Java, including programs using inheritance and distributed over packages.
One way to obtain these prerequisites is by taking the course "Object-Oriented Programming Introduction" or the old course on "Introductory Programming followed" by a programming project or similar.
 
Læringsmål:After the course the student should have basic knowledge of concurrent, distributed, and mobile systems. The student will be able to:
  • describe and use fundamental principles and models used in designing and constructing concurrent, distributed and mobile systems.

  • describe and use basic concepts in concurrent, distributed, and mobile systems for reasoning and designing solutions to problems in the field. Basic concepts include threads, race conditions, mutual exclusion, deadlock, starvation, semaphores and monitors; concurrency control, transactions, multicast, replication, logical clocks, and name services; disconnected operation, data synchronization, and discovery protocols.

  • implement concurrent, distributed, and mobile systems in practice with the help of the above techniques in Java or C#.

In a sequence of labs the student will have
  • implemented a larger example, a simple game, illustrating the above knowledge in a complete application.
 
Fagligt indhold:Programs of today typically exhibit aspects of concurrency (or parallelism), distribution, or mobility or even all of them. In a concurrent system parts of the programs proceed simultaneously --- for example in different threads or using event dispatching. In a distributed system parts of the system are spread over a number of programs communicating over a network to cooperatively provide a service. The network may be anything from the local network in a building to the entire internet. Finally, in mobile systems the programs do not remain statically connected to each other as they may disconnect, and even proceed while disconnected. The programs may run on mobile devices such as laptops, PDAs, or mobile phones.

In this course we will study some of the fundamental techniques used when developing programs for concurrent, distributed, and mobile systems. We will do this from a theoretical as well as from a practical point of view. In particular, the techniques are demonstrated throughout the course in the development of a simple game, first it will be implemented on a stand alone machine, then it will be distributed over several machines, and finally it will become mobile.

The course consists of three subject areas:
  • Concurrency: Race conditions lead to critical sections on which threads must be synchronized in order to obtain mutual exclusion. The establishment of mutual exclusion may cause deadlock and starvation. Semaphores and monitors are techniques to obtain mutual exclusion.

  • Distribution: Communication over the network leads to dropped and reordered packets which requires robust request/reply and multicast protocols. Furthermore, by the nature of distribution the programs providing a service may fail independently, and in particular only parts of the system may have failed. Programs need to be able to look up services in the system through name services, and services has to be available, scalable, and fault tolerant through techniques such as replication and transactions. Since programs communicate over a potentially faulty network, it is difficult for them to synchronize on time, leaders, and data consistency. Protocols for time synchronization and logical time, consensus, and data distribution address such issues.

  • Mobility: When devices may disconnect frequently the components must be able to proceed in isolation and be able to synchronize with the rest of the systems once reconnected. In dynamic network topologies components needs to be able to discover available services through discovery protocols.
 
Læringsaktiviteter:14 ugers undervisning bestående af forelæsninger og øvelser

Weekly lectures presenting theoretical aspects of concurrency, distribution, and mobility. Weekly exercise classes allow the students to work with the theory themselves. Finally, a sequence of labs provides practical experience where the students construct a simple game which eventually will demonstrate aspects of concurrency, distribution, and mobility and how to solve such problems in practice. Throughout the course the game is used to motivate the subjects we treat in lectures and exercises.


The course on Mobile and Distributed Systems (MDS) is the first part of the specialization module on Mobile and Distributed Systems. We will not have time to develop all aspects of such systems in complete detail. In the second part of the specialization module, in both course and project form, we will develop these as well as more advanced aspects in more detail. Reading groups on, for example,
peer-to-peer systems could study recent research results. Projects on, for example, modeling protocols for mobile ad-hoc networks could study security aspects.

Information om studiestruktur / Information about study structure
Dette kursus er en del af SDT-specialiseringen Mobile og distribuerede systemer, som du kan finde beskrevet her:
SDT studiestruktur
For at blive cand.it. i SDT skal du bestå SDT¿s obligatoriske moduler, og gennemføre en 22,5 ECTS specialisering samt to 7,5 ECTS valgfag.

This course is part of the SDT specialization Mobile and Distributed Systems ¿ find it described here:
SDT study structure
In order to graduate as a MSc in SDT, you need to pass the SDT mandatory modules, and also take a 22,5 ECTS specialization and two 7,5 ECTS electives.
 

Eksamensform og -beskrivelse:X. experimental examination form (7-scale; external exam), 13-skala, Ekstern censur

 

Litteratur udover forskningsartikler: A.S. Tanenbaum and M. v Steen: Distributed Systems: Principles and Paradigms, Prentice Hall, 2002 subject to change and additions. 
 
Afholdelse (tid og sted)
Kurset afholdes på følgende tid og sted:
UgedagTidspunktForelæsning/ØvelserStedLokale
Tirsdag 17.00-19.00 Forelæsning ITU 3A14
Tirsdag 19.00-21.00 Øvelser ITU 3A52

Eksamen afholdes på følgende tid og sted:
EksamensdatoTidspunktEksamenstypeStedLokale
2007-05-23 No later than 3 PM Skriftlige arbejder ITU The Examination Office
2007-06-11 Tidspunkt oplyses senere Mundtlig eksamen ITU Lokale oplyses senere
2007-06-15 Tidspunkt oplyses senere Mundtlig eksamen ITU Lokale oplyses senere