Deze cursusinformatie geeft aan hoe het onderwijs zal verlopen bij pandemieniveau code geel en groen.
Als er tijdens het academiejaar aangepast wordt naar code oranje of rood, zijn er wijzigingen mogelijk o.a. in de gebruikte werk - en evaluatievormen.

Distributed Systems

Studiegidsnr:1001WETIGS
Vakgebied:Informatica
Academiejaar:2020-2021
Semester:1e semester
Inschrijvingsvereisten:Minimum 8/20 voor alle vakken bachelor 1 en gevorderd programmeren
Contacturen:45
Studiepunten:6
Studiebelasting:168
Contractrestrictie(s):Geen contractrestrictie
Instructietaal:Engels
Examen:1e semester
Lesgever(s)Jos├ę Antonio Oramas Mogrovejo

Deze cursusinformatie is bedoeld om de student te ondersteunen bij het verwerken van de leerstof

3. Inhoud *

Distributie is de dag van vandaag niet meer weg te denken in software systemen. Hedendaagse computersystemen zijn heel vaak opgebouwd uit individuele systemen verbonden door een netwerk. Zo vormen ze vandaag de dag de de facto architectuur voor een groot aantal applicaties in verschillende domeinen (B2B transactie verwerking, Web diensten (Google, Twitter, Amazon, Yahoo, Facebook, ...), wetenschappelijk rekenen, peer-to-peer systemen (BitTorrent, enz...). 

Het koppelen van individuele systemen door gebruik te maken van gepaste middleware en OS voorzieningen zorgt ervoor dat applicaties de beperkingen van een individueel systeem m.b.t. beschikbaar geheugen, computationele capaciteit, netwerk localiteit van een enkel systeem kunnen doorbreken. Vandaag de dag wordt dit alsmaar belangrijker omwille van de schaal waarop applicaties worden gebruikt en omwille van de noodzaak om verschillende bedrijfsprocessen die elk worden ondersteund door een eigen IT systeem, te integreren.

De bouw van deze systemen is echter van een hogere complexiteit dan deze van traditionele software. De cursus Gedistribueerde Systemen gaat in op de kernproblemen die zich voordoen bij de ontwikkeling van deze systemen (bv. replicatie, coorinatie). Daarnaast reikt de cursus in elk van deze domeinen algoritmen aan om deze kernproblemen aan te pakken en een zeker niveau van transparantie te bekomen t.a.v. de gedistribueerde aard van het systeem. Een deel van deze algoritmen worden in een formeel kader besproken.  Tenslotte gaat de cursus in op de huidige best practices om gedistribueerde systemen te ontwikkelen. 

Meer specifiek, komen volgende aspecten aan bod in deze cursus:

  • Architectuur modellen: wat is een gedistribueerd systeem? Welke modellen zijn er beschikbaar (bv. client/server, peer-to-peer, multi-tier. Vertical en horizontale distributie)
  • Communicatie: hoe kan een middleware systeem helpen om een gedistribueerd systeem te bouwen?
  • Het gebruik van gedistribueerde systemen in hedendaagse omgevingen, zoals 
    • Cloud computing omgevingen
    • Web Services
    • Micro Services
    • Data verwerkingspipelines zoals Hadoop
  • Algoritmes die toelaten om bovenstaande technologieen te beheersen, aan te sturen, enz.:
    • Coordinatie: concurrency control, election, enz 
    • Replicatie: vormen van replicatie, consistency modellen, enz. 


In het praktijk luik wordt door middel van projectmatig groepswerk gewerkt aan een ontwerp en implementatie van een gedistribueerd systeem. In de implementatie van dit systeem worden verschillende aspecten uit het theoretisch luik toegepast.