Skip to content

Applicatie Architecturen

Introductie

Twee termen die vaak door elkaar worden gehaald zijn de applicatie-architectuur en de netwerk-architectuur. Waar een netwerkarchitectuur beschrijft via welke technische omgeving hosts met elkaar communiceren, beschrijft de applicatie-architectuur hoe deze hosts met elkaar communiceren. Dit gebeurt in allerlei situaties. Wanneer iemand een website bezoekt, een email verstuurt, een update voor je besturingssysteem download, of bestanden met iemand anders deelt via Bittorrent, in al deze situaties heb je te maken met twee computers, of hosts, die informatie uitwisselen. De manier waarop deze informatie wordt uitgewisseld, zoals welke host het initiatief neemt om de communicatie te starten, of waar de informatie allemaal opgeslagen is, noemen we ook wel de applicatie-architectuur.

Soorten architecturen

Er zijn twee basis applicatie-architecturen: client-server en peer-to-peer1. Client-server is het meest traditionele model. Hierin heb je een centrale server met daarop programma’s die diensten verlenen, zoals een FTP server met bestanden, een webserver met websites, of een gameserver die spelers met elkaar verbindt. Het programma op deze server draait (continu), luistert via een vaste port op het besturingssysteem voor eventuele verzoeken, en wacht af totdat er een client verbinding maakt. In het client-server model is het altijd de client die als eerste de communicatie start. Zodra een client een verzoek doet, bijvoorbeeld via HTTP om een bepaalde webpagina te zien, gaat de applicatie op de server aan de slag. De server stuurt dan een reactie naar de client, met daarin de opgevraagde informatie of een statuscode die aangeeft wat er met het verzoek is gedaan. De gegevens of dienst waar de client gebruik van wilt maken staat dus gecentraliseerd opgeslagen op de server.

Peer-to-peer, ook wel afgekort tot P2P, werkt iets anders. Waar er bij client-server sprake is van een server waarop de informatie staat, bezitten in P2P alle peers (een deel van) de data. Hoewel er wel een server is die bijhoudt welke peers welke data bezitten, vindt de daadwerkelijke uitwisseling van informatie niet plaats tussen de peer en de server. In plaats daarvan wisselen verschillende peers data met elkaar uit. De server houdt alleen bij welke peer welke delen van het totale bestand heeft, en een checksum van het totale bestand. Zodra een peer een ‘blokje’ aan gegevens heeft gedownload kan de peer deze ook delen met andere peers.

Voetnoten


  1. Er zijn nog veel andere soorten, maar deze twee worden het meest gebruikt.