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-peer
1. 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¶
-
Er zijn nog veel andere soorten, maar deze twee worden het meest gebruikt. ↩