IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Distribuerede systemer (kl. 13.00-19.00) 
Kursusnavn (engelsk):Distributed Systems (13:00-19:00) 
Semester:Forår 2004 
Udbydes under:cand. it, softwareudvikling (swu) 
Omfang i ECTS:7,50 
Kursussprog:Engelsk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:
Forventet antal deltagere:20 
Maks. antal deltagere:50 
Formelle forudsætninger:Before the course the student should be able to:

  • Use world-wide-web and email.
  • Describe what a client and a server is.
  • Design, implement and test medium-sized programs in Java including programs using inheritance.

One way to obtain these prerequisites is by taking the course <a href=\"http://www.itu.dk/KursusBase/index.php?body=VisInfo&id=1597\">Introductory Programming (net-based education) or <a href=\"http://www.itu.dk/KursusBase/index.php?body=VisInfo&id=1591\">Introductory Programming(Grundlæggende Programmering) followed by a course or a project at the IT-University which contains programming. 
Læringsmål:After the course the student will have a basic knowledge of distributed systems. The student will be able to:

  • Describe the fundamental principles and models used in designing and constructing distributed systems.
  • Describe the use of middleware, including the principles for distributed objects and remote invocation.
  • Describe many basic concepts in distributed systems such as concurrency control, transactions, multicast, replication, logical clocks and distributed file systems.
  • Implement distributed applications on basis of the above knowledge using Java Sockets and Java RMI.
 
Fagligt indhold:A distributed system can be described as a collection of independent components which are connected through a network and cooperates in performing tasks. The components can for example be computers or mobile phones. The network can for example be a local network in a singe building, a network for mobile phones or the whole Internet.


In this course we will study some of the fundamental techniques used when developing programs for distributed systems. We will do this from a practical as well as from a theoretical point of view. The course consists of three main parts:


  • Fundamental concepts:
  • Characterization of distributed systems and models of them.
  • Communication between processes, including Java socket programming.
  • Middelware:
  • Distributed objects and remote invocation.
  • Java RMI case-study.
  • Resource sharing and other fundamental concepts:

    • Distributed file systems.
    • Transactions and concurrency control.
    • Replication and multicast.
    • Real time clock synchronization and logical clocks.


Note that important subjects such as security and network protocols is covered in the course <a href=\"http://www.itu.dk/KursusBase/index.php?body=VisInfo&id=1646\">Data Security (Datasikkerhed) and the course ><a href=\"http://www.itu.dk/KursusBase/index.php?body=VisInfo&id=1600\">Networks and Protocols (Netværk og protokoller) which are good supplemental courses. 
Læringsaktiviteter:

Lectures from 13:00 to 15:30. Exercises with instructor from 16:00-19:00 the same day.

There are also mandatory exercises.



NB! Please remark, that in the introduction-week from the 2nd to the 6th of February 2004, the lecture will run from 9:00 to 12:00 on the below-mentioned day. Exercises (and lecture in the afternoon) are cancelled. 

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

All mandatory exercises must be passed/approved
to be able to go to the exams.


Oral exam for 30 minutes (this includes time for feedback etc). The exam questions are known in advance and there is no preparation time. Grades will be given according to the 13-scale and there is external censorship. The student is not allowed to bring notes on paper. For each question the student may bring at most three slides with figures, keywords and short notes.  

Litteratur udover forskningsartikler:<a href=\"http://www.booksites.net/coulouris\">Distributed Systems - Concepts and Design, by George Colulouris, Jean Dollimore and Tim Kindberg, ISBN 0201-61918-0, Addison-Wesley, ©Pearson Education 2001.

<a href=\"http://www.dina.kvl.dk/~sestoft/javaprecisely/\">Java Precisely, by Peter Sestoft. ISBN 0-262-69276-7, © 2002 The MIT Press. Cambridge, Massachusetts. London, England.