Overordnede kursusmål
Distribuerede applikationer udnytter mange forskellige
netværksressourcer (fra lokale netværk, over skyen, til hele
internettet) for at tilbyde tjenester med høje ydeevner, som er
tilgængelige overalt. Udbredte eksempler på sådanne tjenester er
smartphoneapplikationer, som uddelegerer en del af de nødvendige
beregninger til en server. At programmere sådan en distribueret
applikation kan være trættende og udfordrende, fordi de skal
understøtte mange forskellige slags enheder, og fordi de skal
integrere kommunikation over mange forskellige kanaler.
Udviklingen af distribuerede applikationer gøres nemmere ved at
bruge højniveau programmeringssprog og paradigmer til koordinering,
som tilbyder et passende abstraktionsniveau. Disse metoder gemmer
problemer med parallelitet og kommunikation, så det bliver muligt
for programmørerne at koncentrere sig om forretningslogikken.
Udbredte eksempler på sådanne programmeringsparadigmer er
”tuple-space” begrebet og ”actor” modellen, som har fundet vej til
programmeringssprog som Java, Python, .NET, C ++ og Scala.
På dette kursus erhverver man de første kompetencer til at udvikle
fordelte applikationer. Kurset vil fokusere på et
softwareudviklingsmiljø for koordinering af distribuerede
applikationer med hjælp af distribuerede ”tuple-spaces”. Netværket
behandles som en mængde lokationer og kommunikationen er baseret på
fordelt data, som tilgås via pattern matching.
Kurset indeholder præsentationer af den grundlæggende baggrund, de
studerendes projektarbejde, og præsentationer givet af de
studerende. Arbejdet foregår i grupper på selvdefinerede projekter,
hvor man udvikler enkelte, distribuerede applikationer.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
- Forestå, forklare og anvende paradigmet om koordinering af
distribuerede tupler;
- Modellere en enkelt, distribueret applikation baseret på
distribuerede tuple spaces;
- Identificere og løse nogle typiske problemer med parallelitet
og kommunikation;
- Implementere en enkelt, distribueret applikation med hjælp af
distribuerede tuple spaces;
- Anvende en enkelt, distribueret applikation i forskellige
netværk;
- Organisere, planlægge og samarbejde om softwareudvikling i en
lille gruppe;
- Skriv en teknisk rapport om design og implementering af et
distribueret program;
- Mundtligt forklare (på engelsk) de centrale aspekter i
udformningen og implementationen af en distribueret
applikation.
Kursusindhold
Kurset vil fokusere på:
(1) Koordinationsparadigme om distribuerede tuple spaces;
(2) Et softwareudviklingsmiljø som understøtter paradigmet om
distribuerede tuple spaces;
(3) Nogle enkle distribuerede algoritmer og applikationer.
Sidst opdateret
04. maj, 2018