Doelstellingen
De cursus beoogt studenten vertrouwd te maken met gedistribueerde systemen, via een grondige studie van architecturen, algoritmen en protocols
die in gedistribueerde systemen gebruikt worden. Verder maakt de
student kennis met ontwikkelings- en uitvoeringsomgevingen voor gedistribueerde software (zg. middleware-platformen). Aan de hand van de ervaring die de student opdoet met deze platformen wordt een grondiger inzicht opgebouwd in de uitdagingen en oplossingen bij het realiseren en benutten van gedistribueerde software systemen. De bestudeerde platformen illustreren de stand van zaken en worden gebruikt om onderzoeksuitdagingen in kaart te brengen.
Inhoud
In een eerste stap wordt aandacht gegeven aan de architectuur van gedistribueerde systemen en aan de niet-functionele eisen die vaak gesteld worden. Daarna wordt de communicatie-middleware uitvoerig behandeld en worden enkele klassieke gedistribueerde systemen uitvoerig besproken: bestandensystemen, naambeheerders. Vervolgens worden enkele gedistribueerde algoritmen uitvoerig besproken: wederzijdse uitsluiting, verkiezingen, globale toestand en transacties. Centrale thema’s zijn gelijktijdigheid, het delen van data en consistentie.
Verder worden middleware platformen bestudeerd; hierbij wordt geillustreerd hoe concrete software systemen bekende oplossingen implementeren, en hoe deze technieken en oplossingen worden aangeboden aan de software-ontwikelaar. Dit leidt tot een illustratie van enkele belangrijke onderzoeksuitdagingen.
Oefeningen
In deze oefeningen maakt de student zich vertrouwd met een aantal programmeerparadigma’s voor gedistribueerde toepassingen, o.a. niet lokale methode-oproepen voor object-gebaseerde systemen, het declaratief configureren van diensten, het samenstellen van web servcies. Deze paradigma’s komen verder aan bod in de practica.
Practicum
In deze praktica maakt de student zich vertrouwd met een drietal (zgn middleware) platformen voor gedistribueerde software. Meestal wordt er in een eerste stap kennis gemaakt met de basiswerking en principes van zo’n platform. In een of meerdere stappen die daarop volgen wordt de student gevgraagd een eenvoudig en representatief probleem op te lossen, gebruik makend van dit platform. Deze oplossing kan bestaan uit een ontwerp, een beperkte implementatie of beide. Dergelijke oplossing wordt al leidraad gebruikt bij een aantal examenvragen.
Er zijn 3 practica. Bij de meeste opgaven wordt gevraagd de voorgesteld oplossing voorlopig in te leveren op het einde van de begeleide sessie, en een definitieve versie op het einde van de week waarin het practicum gepland werd.
Evaluatie
Het gedeelte permanente evaluatie is gebaseerd op de verplichte practica. Studenten dienen deze practica te maken om te kunnen slagen voor het vak. Na het indienen van de practica wordt het geleverde werk in 1 sessie individueel besproken met de student.
Op het examen krijgt de student een aantal vragen die gebaseerd zijn op de inhoud van de hoorcolleges en het bijbehorend lesmateriaal. Er worden ook vragen gesteld die gerelateerd zijn aan de inhoud van de practica.
Omwille van overmacht wordt het examen volledig schriftelijk georganiseerd in het academiejaar 2020-2021. (Er is geen gelegenheid tot mondelinge toelichting.).