Client-servermodel

In de informatica is de client-server een software-architectuurmodel dat bestaat uit twee delen, namelijk client-systemen en serversystemen, die beide communiceren via een computernetwerk of op dezelfde computer. Een client-server applicatie is een gedistribueerd systeem dat bestaat uit zowel client- als serversoftware. De client-server applicatie biedt een betere manier om de werklast te delen. Het client-proces initieert altijd een verbinding met de server, terwijl het serverproces altijd wacht op verzoeken van een client.

Wanneer zowel het clientproces als het serverproces op dezelfde computer draaien, wordt dit een single seat setup genoemd.

Een ander type gerelateerde softwarearchitectuur staat bekend als peer-to-peer, omdat elke host of applicatie-instantie tegelijkertijd als client en als server kan optreden (in tegenstelling tot gecentraliseerde servers van het client-server-model) en omdat elk ervan gelijkwaardige verantwoordelijkheden en status heeft. Peer-to-peer architecturen worden vaak afgekort met het acroniem P2P.

De client-server relatie beschrijft de relatie tussen de client en hoe deze een serviceaanvraag doet aan de server, en hoe de server deze aanvragen kan accepteren, verwerken en de gevraagde informatie kan retourneren aan de client. De interactie tussen client en server wordt vaak beschreven aan de hand van sequentiediagrammen. De sequentiediagrammen zijn gestandaardiseerd in de Unified Modeling Language.

Zowel de client-server als de P2P-architecturen worden tegenwoordig veel gebruikt.

Het basistype client-server softwarearchitectuur maakt gebruik van slechts twee soorten hosts: clients en servers. Dit type architectuur wordt ook wel two-tier genoemd. De two-tier-architectuur houdt in dat de client als één niveau fungeert en het serverproces als het andere niveau.

De client-server softwarearchitectuur is een van de basismodellen van network computing geworden. Vele soorten applicaties zijn geschreven met behulp van het client-server model. Standaard netwerkfuncties zoals e-mailuitwisseling, webtoegang en databasetoegang zijn gebaseerd op het client-server model. Een webbrowser is bijvoorbeeld een clientprogramma op de gebruikerscomputer dat toegang heeft tot informatie op elke webserver ter wereld.

Een netwerk met één server.Zoom
Een netwerk met één server.

Een peer-to-peer gebaseerd netwerk.Zoom
Een peer-to-peer gebaseerd netwerk.

Kenmerken van de klanten

  • Initieert altijd verzoeken aan servers.
  • Wacht op antwoorden.
  • Ontvangt antwoorden.
  • Meestal wordt er een verbinding gemaakt met een klein aantal servers tegelijk.
  • Meestal wordt er direct met de eindgebruikers gecommuniceerd met behulp van een willekeurige gebruikersinterface, zoals een grafische gebruikersinterface.

Kenmerken van de server

  • Wacht altijd op een verzoek van een van de klanten.
  • Dient de verzoeken van de klanten in en beantwoordt deze vervolgens met de gevraagde gegevens.
  • Een server kan met andere servers communiceren om een clientaanvraag te bedienen.
  • Als er aanvullende informatie nodig is om een verzoek te verwerken (of als de beveiliging is geïmplementeerd), kan een server aanvullende gegevens (wachtwoorden) vragen aan een client voordat hij een verzoek verwerkt.
  • Eindgebruikers hebben doorgaans geen directe interactie met een server, maar gebruiken een client.

Voordelen

  • In de meeste gevallen maakt een client-serverarchitectuur het mogelijk om de rollen en verantwoordelijkheden van een computersysteem te verdelen over meerdere onafhankelijke computers die alleen via een netwerk bekend zijn, dus een van de voordelen van dit model is een groter onderhoudsgemak. Zo is het bijvoorbeeld mogelijk om een server te vervangen, te repareren, te upgraden of zelfs te verplaatsen terwijl de clients onbewust en onaangetast blijven door die verandering. Deze onafhankelijkheid van verandering wordt ook wel inkapseling genoemd.
  • Alle gegevens worden opgeslagen op de servers, die over het algemeen een betere veiligheidscontrole hebben dan de meeste klanten. Servers kunnen de toegang en de middelen beter controleren, om te garanderen dat alleen die klanten met de juiste rechten toegang hebben tot de gegevens en deze kunnen wijzigen.
  • Aangezien dataopslag gecentraliseerd is, zijn updates van die data veel eenvoudiger voor beheerders dan wat mogelijk zou zijn onder een P2P-architectuur. Onder een P2P architectuur kunnen data updates gedistribueerd en toegepast moeten worden op elke "peer" in het netwerk, wat zowel tijdrovend als foutgevoelig is, aangezien er duizenden of zelfs miljoenen peers kunnen zijn.
  • Er zijn al veel geavanceerde client-server technologieën beschikbaar die zijn ontworpen om de veiligheid, de gebruikersvriendelijke interfaces en het gebruiksgemak te garanderen.
  • Het werkt met meerdere verschillende klanten met verschillende specificaties.

Nadelen

  • Blokkering van het netwerkverkeer is een van de problemen die verband houden met het client-server model. Naarmate het aantal gelijktijdige clientaanvragen aan een bepaalde server toeneemt, kan de server overbelast raken. Dit in tegenstelling tot een P2P netwerk, waar de bandbreedte daadwerkelijk toeneemt naarmate er meer nodes worden toegevoegd, aangezien de totale bandbreedte van het P2P netwerk ruwweg kan worden berekend als de som van de bandbreedtes van elke node in dat netwerk.
  • Als je het client-server model vergelijkt met het Peer to Peer model, dan kunnen de verzoeken van de cliënten niet worden bediend, maar in het geval van P2P netwerken worden de servers meestal verdeeld over vele nodes. Zelfs als één of meer nodes falen, bijvoorbeeld als een node er niet in slaagt een bestand te downloaden, moeten de resterende nodes nog steeds de gegevens hebben die nodig zijn om de download te voltooien.

Voorbeelden

Vragen en antwoorden

V: Wat is client-server software architectuur?


A: Client-server software architectuur is een model dat bestaat uit twee delen, client systemen en server systemen, die beide communiceren via een computernetwerk of op dezelfde computer.

V: Hoe werkt een client-server toepassing?


A: Een client-servertoepassing is een gedistribueerd systeem dat bestaat uit zowel client- als serversoftware. Het clientproces initieert altijd een verbinding met de server, terwijl het serverproces altijd wacht op verzoeken van een client.

V: Wat gebeurt er als zowel het clientproces als het serverproces op dezelfde computer draaien?


A: Wanneer zowel het clientproces als het serverproces op dezelfde computer draaien, wordt dit een single seat opstelling genoemd.

V: Welke voordelen biedt het gebruik van een client-serverapplicatie?


A: Het gebruik van een client-serverapplicatie biedt een betere manier om werklasten te delen tussen meerdere computers of gebruikers.

V: Wie initieert verbindingen in Client Server-toepassingen?


A: Het Client Process initieert altijd verbindingen in Client Server Applications.


V: Wie wacht er op verzoeken in Client Server Applications?


A: Het serverproces wacht altijd op verzoeken in client-serverapplicaties.

V: Hoe kunnen meerdere computers of gebruikers werklasten met elkaar delen?


A: Meerdere computers of gebruikers kunnen werklasten delen door gebruik te maken van een gedistribueerd systeem zoals een client-serverapplicatie.

AlegsaOnline.com - 2020 / 2023 - License CC3