IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Distribuerede systemer og protokoller 
Kursusnavn (engelsk):Distributed Systems and Protocols 
Semester:Efterår 2009 
Udbydes under:Bachelor i softwareudvikling (bswu) 
Omfang i ECTS:7,50 
Kursussprog:Dansk 
Kursushjemmeside:https://blog.itu.dk/BDSP-E2009/ 
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 modeller (arkitektur, interaktion, fejl og sikkerhed) og designmønstre for 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 UML 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 og protokoller.

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

* gøre rede for de særlige kendetegn og problemstillinger ved design af mobile og allestedsnærværende (ubiquitous) distribuerede systemer, herunder dynamisk rekonfiguration og tilknytning af nye softwarekomponenter og services når enheder flytter sig eller fejler, integrering med den fysiske verden (kontekstafhængighed), sikkerhed, resursebegrænsede enheder.

 
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.


Kurset består af to dele.

1) Den første del dækker de grundlæggende begreber og teknologier for parallelle og distribuerede systemer samt netværkskommunikation.
Den teoretiske del dækker bla. de fundamentale principper, krav og udfordringer ved design og konstruktion af distribuerede systemer, der kommunikerer over netværk og programmer indeholdende parallelle processer, samt grundlæggende modeller (arkitektur, interaktion, fejl og sikkerhed) og designmønstre for distribuerede systemer.

De praktiske øvelser vil i denne del dække trådprogrammering og netværkskommunikation (sockets) i Java, samt brug af modelsprog og UML diagrammer til at beskrive arkitekturen og kommunikationen i parallelle distribuerede systemer.

2) Den anden del dækker det såkaldte ”Middleware”, der tilbyder et højere abstraktionsniveau for design og implementation af distribuerede systemer.
Den teoretisk del dækker bla. distribuerede objekter og RMI, sikkerhed, navne- og opslagstjenester, og web-services.

De praktiske øvelser vil i denne del dække implementation af distribuerede objekter i Java (RMI), samt implementation af web-services i Java og .NET, brug af UML til at beskrive process-orientede it-systemer, og brug af WS-CDL og WS-BPEL til henholdsvis at give en koreografi for og orkestrere web-services.

Information om studiestruktur
Dette kursus indgår på tredje semster på bacheloruddannelsen i software.
Se studieforløbet beskrevet her:
Bachelor softwareudvikling
 
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

Til eksamen trækker den studerende et af de emner, som blev udleveret ved kursusstart. Den studerende skal herefter uden yderligere forberedelsestid give den forberedte præsentation, som vil blive fulgt af 10-15 minutters spørgsmål til emnet og pensum generelt.  

Litteratur udover forskningsartikler: * Distributed Systems – Concepts and Design., 4th edition. G. Coulouris, Jean Dollimore. Tim Kindberg. ISBN 0 321 26354 5. (Kp 1-5, 7, 9, 13, 16, 19)
* Database Systems – An Application-Oriented Approach, 2nd edition. Michael Kifer, Arthur Bernstein, Philip M. Lewis. ISBN 0-321-31256-2. (Kp. 25)

 
 
Afholdelse (tid og sted)
Kurset afholdes på følgende tid og sted:
UgedagTidspunktForelæsning/ØvelserStedLokale
Torsdag 09.00-12.00 Forelæsning ITU 3A14 - teaching from 9:00-11:45
Torsdag 13.00-16.00 Øvelser ITU 3A52 - teaching from 12:45-15:45

Eksamen afholdes på følgende tid og sted:
EksamensdatoTidspunktEksamenstypeStedLokale
2010-01-11 Kontakt kursusansvarlig Mundtlig eksamen ITU 2A18
2010-01-12 Kontakt kursusansvarlig Mundtlig eksamen ITU 2A18
2010-01-13 Kontakt kursusansvarlig Mundtlig eksamen ITU 2A18