IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Projektklynge: Modelbaseret design af distribuerede og mobile systemer 
Kursusnavn (engelsk):Project Cluster: Model-based Design of Distributed and Mobile Systems 
Semester:Forår 2006 
Udbydes under:cand.it., internet- og softwareteknologi (int) 
Omfang i ECTS:0,00 
Kursussprog:Engelsk 
Kursushjemmeside:http://www.itu.dk/courses/IMDD/F2006/index.html 
Min. antal deltagere:
Forventet antal deltagere:20 
Maks. antal deltagere:120 
Formelle forudsætninger:Students should be able to develop object oriented programs in Java. The prerequisites may for instance be obtained through an introductory programming course at ITU, followed by a four week programming project or, preferably, the course Object Oriented Programming. Knowledge of the architecture of distributed systems, as obtained, for instance, through the course Distributed Systems at the IT University, is an advantage, but not a requirement.

Students are also supposed to appreciate and understand standard mathematical notation, such as sets, functions and relations. 
Læringsmål:Concurrent communicating, distributed, and mobile systems are surrounding us, as for instance in distributed software applications or say in mobile handheld computers communicating via the internet or communicating in self organizing ad hoc networks.

It has becomes more and more difficult to develop such complex systems correctly and we become more and more dependent on knowing exactly how these systems work. However, the fact that they consist of several concurrent components, subject to race conditions, make them extremely complex and hard for humans to fully understand. A system of just 10 components, that each can be in 10 states, can potentially be in 10 billion states. The number of possible configurations increases if the components may also change their relative location. This so-called state-explosion alone rules out the possibility of a complete test. If the systems interacts with real-world entities, such as users, the issue of testing becomes even more delicate.

For this reason, formal models are crucial in order to understand and describe such systems, either in the design of new systems, or in simulating or proving particular properties of existing systems, as for instance the security of routing protocols for mobile ad hoc networks.

The goal of the course is to give a conceptual basis for the understanding of concurrency, communication and mobility in distributed systems, and to make the student able to use this conceptual basis for implementation of safe concurrent communicating systems, possibly as part of distributed and mobile systems. We will cover classical concepts in concurrent applications, but also touch on more recent applications within for instance security protocols and mobile ad hoc networks.

Having followed the course the student will:


  • master basic, classical concepts for concurrency: processes, synchronization, and communication,

  • be able to argue for synchronization and communication mechanisms: semaphores, monitors, synchronous and asynchronous communication and how to use these to solve clasical concurrency problems,

  • understand and be able to distinguish between:

    • code versus process (agent) mobility

    • implicit versus explicit mobility

    • static versus dynamic binding,



  • be able to understand basic applications of models for concurrency, communication, distributivity and mobility (process expressions and transitions systems) in the design of systems,

  • master verification concepts, e.g. deadlocks, safety and liveness properties, invariants, and model checking

  • be able to use the conceptual basis in the implementation of safe concurrent threads in Java and for design of and reasoning about concurrent, distributed and mobile communicating systems.

 
Fagligt indhold:The course covers the following topics:

  • Models for concurrency, distributivity and mobility: State-Transition systems, process expressions and calculi (CCS, the pi-calculus, examples of recent calculi for mobility)

  • concepts and dichotomies in distributivity and mobility: code (applet) versus active process (agent) mobility, implicit versus explicit mobility, static versus dynamic binding

  • Threads in Java

  • Shared objects and mutual exclusion

  • Monitors, invariants, semaphores, bounded buffers

  • Deadlocks, analysis and examples

  • Safety and Liveness properties, analysis and examples

  • Model-based design: models and implementation

  • Message passing: synchronous/asynchronous, rendezvous



The course will put emphasis on modeling of concurrent, distributed and mobile systems as a basis for design and implementation. There will be practical exercises in Java threads and model based design and analysis.

There will be examples of applications of formal models to describe some of the following kind of systems: Security protocols and routing protocols for mobile ad hoc networks. 
Læringsaktiviteter:

Please notice! You sign up for this project cluster as if it was a normal course. But please remark:


  • Enrolment in a project cluster is not considered a binding course registration (only relevant to MSc students).
  • You can register for a project cluster as a fourth activity (besides of three courses).
  • You/your group have/has to register your project in the Project Base before the deadline for 12 week, 16 week, 4 week projects or theses/final projects. Please find the deadlines here: http://www1.itu.dk/sw923.asp.
  • The project cluster will not appear on your diploma. But the project that you register in the Project Base will of course appear when you have passed the exam.
  • Single-subject students at Open University and guest students from other universities interested in the project cluster, please contact the Student Administration Office, phone +45 72 18 52 05. 
Eksamensform og -beskrivelse:X. experimental examination form (7-scale; external exam), Bestået/ikke bestået, Intern censur


 

Litteratur udover forskningsartikler:Electronically available lecture notes and selected research papers.  
 
Afholdelse (tid og sted)
Kurset afholdes på følgende tid og sted:
UgedagTidspunktForelæsning/ØvelserStedLokale
Fredag 09.00-12.00 Forelæsning ITU 3A18
Fredag 13.00-16.00 Øvelser ITU 3A18, 3A50