IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Mobile og distribuerede systemer 
Kursusnavn (engelsk):Mobile and Distributed Systems 
Semester:Forår 2008 
Udbydes under:cand.it., softwareudvikling og -teknologi (sdt) 
Omfang i ECTS:7,50 
Kursussprog:Engelsk 
Kursushjemmeside:https://learnit.itu.dk 
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 about, evaluation of, 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, overlay network protocols, 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 an example, a simple game, illustrating some aspects of 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.

Rather than studying specific vendors' tools and frameworks, we will be concerned with the theories that inevitably are the underpinnings of all vendors' solutions. 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.

Mandatory exercises:
A sequence of labs provide practical experience where the students in groups construct a simple game which eventually will demonstrate aspects of concurrency, distribution, and mobility and how to solve such problems in practice. Students are required to submit reports on this work, and to participate actively in defending and opposing reports, before they can sign up for the exams.

The course on Mobile and Distributed Systems (MDS) is the first part of the specialization module on Mobile and Distributed Systems. As this is a broad, introductory course, 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), 7-trins-skala, Ekstern censur

 

Litteratur udover forskningsartikler:
  • Compendium published by the ITU Bookshop.

  • George Coulouris, Jean Dollimore, Tim Kindberg: Distributed Systems:
    Concepts and Design
    , 4th edition.
    Addison Wesley/Pearson Education, June 2005. ISBN: 978 0321263544

  • Research articles as indicated during the course
 
 
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 2A52, 3A52

Eksamen afholdes på følgende tid og sted:
EksamensdatoTidspunktEksamenstypeStedLokale
2008-06-10 kl. 09.00 - 13.00 Skriftlig eksamen ITU 4A56 og 4A58