IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Distribuerede systemer og protokoller 
Kursusnavn (engelsk):Distributed Systems and Protocols 
Semester:Efterår 2010 
Udbydes under:Bachelor i softwareudvikling (bswu) 
Omfang i ECTS:7,50 
Kursussprog:Dansk 
Kursushjemmeside:https://blog.itu.dk/BDSP-E2010 
Min. antal deltagere:
Forventet antal deltagere:35 
Maks. antal deltagere:42 
Formelle forudsætninger:Den studerende skal inden kurset
* kende til alle væsentlige elementer i Java og kunne implementere og teste mellem-store Java-programmer, herunder tråde, nedarvning, objektidentitet vs. objekttilstand, pakker, filer, strømme og serialisering

* kunne anvende nogle UML-diagrammer (klasse-, sekvens- og tilstandsdiagrammer) og designmønstre til at strukturere og beskrive software.

Dette kan opnås ved at følge kurset Grundlæggende programmering med projekt efterfulgt af kurset Objektorienteret softwarekonstruktion på IT-Universitetets bacheloruddannelse i softwareudvikling.

Det forventes at den studerende sideløbende med kurset lærer om transaktioner og XML (herunder namespaces og XML Schema). Dette kan opnås ved at følge kurset Databaser og XML. 
Læringsmål:Efter kurset skal den studerende kunne

* give eksempler på og gøre rede for de fundamentale principper, krav og
udfordringer ved design og konstruktion af distribuerede systemer der
kommunikerer over netværk og programmer indeholdende parallelle processer,

* gøre rede for grundlæggende arkitekturer for distribuerede systemer,

* gøre rede for håndtering af processer og tråde i distribuerede systemer,

* gøre rede for grundlæggende principper for netværkskommunikation,
netværkstyper og protokoller,

* forklare begreberne race conditions, baglås (deadlock), udsultning og
retfærdighed (fairness), samt at kunne beskrive kommunikation i
parallelle og distribuerede ved hjælp af Java og formelle modelsprog,

* forklare og implementere små web-services og distribuerede programmer,
der kommunikerer via netværk og indeholder parallelle processer og
distribuerede objekter, herunder socket programmering, servlets, RMI og
brug af SOAP i Java og .NET, samt brug af BPMN, WS-BPEL og WSDL,

* gøre rede for de grundlæggende sikkerhedsrisikoer og teknikker til at
implementere sikkerhed i distribuerede systemer, herunder typer af
kryptografiske algoritmer, notationer, protokoller og adgangskontrol,

* forklare brugen af navne- og indholdstjenester (name and directory
services), speficikt i forbindelse med web-services,

* gøre rede for principper for synkronisering i distribuerede systemer
samt forklare algoritmer til at opnå synkronisering,

* gøre rede for modeller for replikation og konsistens og forklare
protokoller for at opnå konsistens,

* gøre rede for grundlæggende principper for fejltolerans og
pålidelighed i distribuerede systemer og forklare 2-fase commit protokollen. 
Fagligt indhold:Datidens monolitiske og homogene computer- og softwarearkitekturer er
hastigt på vej væk til fordel for distribuerede og heterogene systemer
med mange parallelle aktiviteter.

Parallelle og distribuerede processer viser sig på alle niveauer: i
maskinkoden på multi-core processorer, som distribuerede objekter,
databaseservere og web-services og endda som mobile og
allestedsnærværende it-systemer indlejret i vores omgivelser, der
tilbyder tjenester der følger med dig hvor end du opholder dig og
tilpasser sig omgivelserne.

I dette kursus vil du blive introduceret til de fundamentale principper,
krav og udfordringer ved design og konstruktion af distribuerede
systemer der kommunikerer over netværk og programmer indeholdende
parallelle processer. Dette vil blive gjort ud fra en teoretisk
tilgangsvinkel med små praktiske programmeringsøvelser. 
Læringsaktiviteter:12 forelæsninger og 12 øvelsesgange

Ved kursusstart udleveres et antal emner dækkende kursets indhold. I løbet af semesteret får hver studerende mulighed for at forberede og få feedback på en 10 minutters præsentation for hvert emne. Det er tilladt at arbejde sammen om forberede præsentationer.  

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

 

Litteratur udover forskningsartikler:* Andrew S. Tanenbaum, Maarten Van Steen: Distributed Systems:
Principles and Paradigms, 2nd International Edition. Pearson Prentice
Hall, 2007.
* Database Systems – An Application-Oriented Approach, 2nd edition.
Michael Kifer, Arthur Bernstein, Philip M. Lewis. ISBN 0-321-31256-2.
(Kp. 25)
* Notes and slides on formal models for concurrent and distributed systems 
 
Afholdelse (tid og sted)
Kurset afholdes på følgende tid og sted:
UgedagTidspunktForelæsning/ØvelserStedLokale
Torsdag 09.00-12.00 Forelæsning ITU 3A12
Torsdag 13.00-15.30 Øvelser ITU 3A12, 3A50, 3A52

Eksamen afholdes på følgende tid og sted:
EksamensdatoTidspunktEksamenstypeStedLokale
2011-01-17 Kontakt kursusansvarlig for individuelt tidspunkt Mundtlig eksamen ITU 4A22
2011-01-18 Kontakt kursusansvarlig for individuelt tidspunkt Mundtlig eksamen ITU 4A22
2011-01-19 Kontakt kursusansvarlig for individuelt tidspunkt Mundtlig eksamen ITU 4A22
2011-01-20 Kontakt kursusansvarlig for individuelt tidspunkt Mundtlig eksamen ITU 4A22
2011-10-03 Re-eksamen - Kontakt kursusansvarlig for tidspunkt Mundtlig eksamen ITU 3A18