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 Java-baseret
udviklingsmiljø 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 Java-baseret udviklingsmiljø som understøtter paradigmet om
distribuerede tuple spaces;
(3) Nogle enkle distribuerede algoritmer og applikationer.
Sidst opdateret
31. oktober, 2016