- Data distributie
- Kenmerken van gedistribueerde systemen
- Compatibiliteit
- Fouttolerantie
- Middleware en API
- Architectuur
- Client-server-architectuur
- Peer-to-peer-architectuur
- Architecturen op meerdere niveaus
- Processorgroeparchitectuur
- Soorten gedistribueerde systemen
- Clustercomputing
- Netwerkcomputers
- Cloud computing
- doelen
- Deel bronnen
- Abstractie
- Opening
- Interoperabiliteit en draagbaarheid
- Schaalbaarheid
- Toepassingen
- Erlang virtuele machine
- Bittorrent
- Voordeel
- Nadelen
- Voorbeelden van gedistribueerde systemen
- StackPath
- Internet
- Referenties
De gedistribueerde systemen zijn stukjes software die worden gebruikt om de acties van meerdere computers te coördineren. Deze coördinatie wordt bereikt door de uitwisseling van berichten, dat wil zeggen met gegevens die informatie verzenden.
Gedistribueerde systemen vereisen gelijktijdige componenten, een communicatienetwerk en een synchronisatiemechanisme. Ze maken het delen van bronnen, inclusief software, mogelijk door systemen die zijn aangesloten op een netwerk. Daarom is het systeem gebaseerd op een netwerk dat de computers met elkaar verbindt en de routering van berichten afhandelt.
a en b (gedistribueerde systemen). b (parallel systeem). Miym / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Gedistribueerd computergebruik is een computergebied dat verantwoordelijk is voor het analyseren van gedistribueerde systemen. Computerprogramma dat op een gedistribueerd systeem draait, wordt een gedistribueerd programma genoemd.
In een context waarin er honderden of duizenden computers zijn, wat gebruikelijk is bij grote internetbedrijven, is het heel gebruikelijk dat er defecten aan componenten optreden, of het nu hardware, netwerk, schijven, enz. Zijn, en het systeem moet bereid om ze te allen tijde onder ogen te zien.
Data distributie
Distributie is de sleutel tot het kunnen omgaan met zeer grote dataconglomeraten. Het is noodzakelijk om schaalbaarheid te bereiken, wat het middel is om stabiele prestaties te behouden wanneer datapools groeien door nieuwe bronnen aan het systeem toe te voegen.
Aan de andere kant levert distributie een reeks technische problemen op waardoor het ontwerp en de implementatie van gedistribueerde computers en opslag belangrijk zijn om te overwegen. Een punt om rekening mee te houden is het risico van mogelijke storingen.
Kenmerken van gedistribueerde systemen
a en b (gedistribueerde systemen). b (parallel systeem). Miym / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Compatibiliteit
De apparaten kunnen met verschillende besturingssystemen werken. Dit belet hen niet om altijd dezelfde diensten aan gebruikers aan te bieden. Om deze reden zijn alle aangesloten apparaten compatibel met elkaar.
Een ander fundamenteel probleem is het ontwerp van de software, omdat deze ook compatibel is met alle systemen en gebruikers op elke computer.
Fouttolerantie
Omdat het een enkel netwerk is met veel computers, kunnen als een van de componenten het begeeft, de andere hun functie volledig blijven uitoefenen, waardoor fouten snel worden vermeden.
Om deze reden hebben gedistribueerde systemen de neiging om veel vertrouwen te bieden wanneer ze ermee werken, omdat het vrij zeldzaam is dat het systeem volledig faalt, omdat de taken zich niet op één apparaat bevinden, maar op verschillende computers.
Middleware en API
Verschillende processors gebruiken distributie-middleware om verschillende bronnen en mogelijkheden te delen om gebruikers een samenhangend en geïntegreerd netwerk te bieden. Het biedt applicaties ook een aantal services, zoals beveiliging en crashherstel.
Tegenwoordig hoor je meer over Application Programming Interfaces (API's), die functioneren als een gateway waar applicaties kunnen communiceren. Applicaties hoeven niets te weten over andere applicaties behalve hun API.
Architectuur
Client-server-architectuur
Een bepaalde computer die een server wordt genoemd, kan bepaalde taken uitvoeren, die services worden genoemd. Bijvoorbeeld het aanbieden van bestanden via het netwerk, de mogelijkheid om bepaalde opdrachten uit te voeren of gegevens naar een printer te sturen. De klant is de computer die de services aanvraagt.
De computer die in de eerste plaats bekend staat om de service die deze levert, kan een afdrukserver, bestandsserver, enzovoort worden genoemd.
Peer-to-peer-architectuur
Het veronderstelt dat elke computer vergelijkbare mogelijkheden heeft en dat geen enkele machine is toegewijd aan het dienen van de anderen. Een voorbeeld hiervan is een set microcomputers in een klein kantoor.
Via het netwerk hebben mensen toegang tot elkaars bestanden en kunnen ze e-mails verzenden, maar geen enkele computer biedt een specifieke reeks services.
Architecturen op meerdere niveaus
Voor bepaalde services kan het zinvol zijn om een hiërarchische connectiviteit te hebben. Bijvoorbeeld:
- Een server kan bij het uitvoeren van zijn taken contact opnemen met een andere server van een ander type
- De client-server-architectuur is een architectuur met twee niveaus.
Processorgroeparchitectuur
Een besturingssysteem zou automatisch processen kunnen starten op inactieve computers en zelfs processen kunnen migreren naar systemen met een groter aantal beschikbare CPU-cycli. In andere gevallen kan een gebruiker handmatig processen starten of verplaatsen op beschikbare systemen.
Soorten gedistribueerde systemen
Clustercomputing
Het is een verzameling vergelijkbare computers die zijn verbonden via een snel lokaal netwerk. Het wordt vaak gebruikt voor parallelle programmering, waarbij een enkel rekenintensief programma parallel op meerdere computers wordt uitgevoerd.
Elk cluster bestaat uit een set rekenknooppunten die worden bewaakt en beheerd door een of meer knooppunten die masters worden genoemd.
Netwerkcomputers
Het bestaat uit knooppunten met duidelijke verschillen in hardware en netwerktechnologie. De huidige trend om een specifieke configuratie van knooppunten voor bepaalde taken te hebben, heeft geleid tot een grotere diversiteit, wat het meest voorkomt bij netwerkcomputers.
Cloud computing
Het is een set gevirtualiseerde resources die zijn ondergebracht in het datacenter van een cloudprovider. Klanten kunnen een gevirtualiseerde infrastructuur opzetten om te profiteren van een verscheidenheid aan cloudservices.
Voor de gebruiker lijkt het erop dat hij zijn eigen exclusieve computer huurt. Het is echter waarschijnlijk dat u het met andere klanten deelt. Hetzelfde geldt voor virtuele opslag.
Deze gevirtualiseerde bronnen kunnen dynamisch worden geconfigureerd, waardoor schaalbaarheid mogelijk is. Als er meer computerbronnen nodig zijn, kan het systeem er meer aanschaffen.
doelen
Deel bronnen
Of het nu gaat om opslagfaciliteiten, gegevensbestanden, services of netwerken, u wilt deze bronnen misschien delen tussen applicaties, omwille van de economie.
Het is veel goedkoper om een gedeelde opslagfaciliteit tussen meerdere applicaties te hebben dan om voor elk afzonderlijk opslagruimte aan te schaffen en te onderhouden.
Abstractie
Om te verbergen dat de processen en bronnen zijn verspreid over verschillende computers, mogelijk geografisch verspreid. Dat wil zeggen dat de processen en bronnen worden geabstraheerd van de gebruiker.
Opening
Het geeft in feite aan dat een gedistribueerd systeem is gebouwd met elementen die gemakkelijk kunnen worden geïntegreerd met andere systemen. In overeenstemming met gestandaardiseerde regels kan elk proces met die interface communiceren met een ander proces met dezelfde interface.
Interoperabiliteit en draagbaarheid
Het verwijst naar wanneer twee systemen van verschillende fabrikanten kunnen samenwerken. Overdraagbaarheid bepaalt in hoeverre een voor systeem A gemaakte aanvraag ongewijzigd op systeem B kan functioneren.
Schaalbaarheid
Het is nodig wanneer er een toename is van gebruikers die meer middelen nodig hebben. Een goed voorbeeld is de toename van het Netflix-publiek elke vrijdagavond.
Het betekent het dynamisch toevoegen van meer bronnen, zoals het vergroten van de netwerkcapaciteit door meer videotransmissie mogelijk te maken en deze te verminderen zodra het verbruik genormaliseerd is.
Toepassingen
Erlang virtuele machine
Het softwarepakket LYME is gebaseerd op Erlang en biedt een alternatief voor LAMP. Shmuel Csaba Otto Traian / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Erlang is een functionele taal met een geweldige semantiek voor gelijktijdigheid, distributie en fouttolerantie. Een virtuele Erlang-machine zorgt voor de distributie van een Erlang-applicatie.
Dit model werkt met veel geïsoleerde processen, allemaal met de mogelijkheid om met elkaar te communiceren via een ingebouwd berichtensysteem.
De virtuele machine van Erlang kan verbinding maken met andere virtuele machines die zich op verschillende plaatsen bevinden. Deze zwerm virtuele machines draait een enkele applicatie, die de fouten van een machine afhandelt door deze te plannen om op een ander knooppunt te draaien.
Bittorrent
BitTorrent-netwerkwerking. Mrjavi / CC BY-SA (https://creativecommons.org/licenses/by-sa/4.0)
Het is een van de meest gebruikte protocollen voor het overbrengen van grote bestanden op internet. Het belangrijkste idee is om de overdracht van bestanden tussen verschillende peers op het netwerk te vergemakkelijken zonder via een hoofdserver te hoeven gaan.
Door een BitTorrent-client te gebruiken, kunt u verbinding maken met meerdere computers over de hele wereld om een bestand te downloaden. Een computer die als coördinator fungeert, helpt de knooppunten op het netwerk te tonen die het gewenste bestand hebben.
Met BitTorrent kun je vrijwillig bestanden hosten en uploaden voor andere gebruikers die ze willen. Het is zo populair omdat het de eerste in zijn soort was die prikkels bood om bij te dragen aan het netwerk.
Voordeel
- Er kunnen eenvoudig meer knooppunten aan het gedistribueerde systeem worden toegevoegd, dat wil zeggen dat het naar behoefte kan worden geschaald.
- Alle knooppunten in het gedistribueerde systeem zijn met elkaar verbonden. Daarom kan elk van de knooppunten gemakkelijk gegevens delen met de andere knooppunten.
- Bronnen zoals printers kunnen met meerdere knooppunten worden gedeeld in plaats van beperkt te zijn tot slechts één knooppunt.
- Het falen van één knooppunt leidt niet tot het falen van het hele gedistribueerde systeem. De andere knooppunten kunnen nog steeds met elkaar communiceren.
Nadelen
- Sommige berichten en gegevens kunnen verloren gaan op het netwerk wanneer u van het ene knooppunt naar het andere gaat.
- Het is moeilijk om voldoende beveiliging te bieden in gedistribueerde systemen omdat zowel knooppunten als verbindingen moeten worden beveiligd.
- Er kan netwerkoverbelasting optreden als alle knooppunten in het gedistribueerde systeem tegelijkertijd gegevens proberen te verzenden.
- De database die is aangesloten op de gedistribueerde systemen is vrij gecompliceerd en moeilijk te beheren in vergelijking met een systeem voor één gebruiker.
Voorbeelden van gedistribueerde systemen
Gedistribueerde systemen kunnen in een groot aantal gevallen worden gebruikt, zoals elektronische banksystemen, massively multiplayer online games en sensornetwerken.
StackPath
Het gebruikt een bijzonder groot gedistribueerd systeem om zijn netwerkdienst voor het leveren van inhoud te voeden. Elk van zijn aanwezigheidspunten (PoP) heeft knooppunten die een wereldwijd gedistribueerd systeem vormen.
StackPath slaat de meest recente en meest gevraagde inhoud op op de locaties die het dichtst bij de site liggen die wordt gebruikt.
Door virtuele computers met elkaar te verbinden, kan het systeem niet alleen profiteren van de snelheid en flexibiliteit van ultramoderne computers, maar ook duizenden gelijktijdige verzoeken zeer snel verwerken.
Internet
Het is het grootste gedistribueerde systeem ter wereld. Elke gebruiker voelt zich als één systeem, ook al bestaat het uit miljoenen computers.
Door het concept van abstractie heb je geen idee waar de gegevens worden opgeslagen, hoeveel servers erbij betrokken zijn, of hoe de informatie bij de browser terechtkomt. De browser lost de complexiteit van internet op.
Dit geldt ook voor applicaties zoals Gmail-e-mail of elke andere applicatie die kan worden gebruikt. Elke persoon heeft dagelijks interactie met gedistribueerde applicaties.
Referenties
- Paul Krzyzanowski (2018). Gedistribueerde systemen. Genomen uit: cs.rutgers.edu.
- Catherine Paganini (2019). Primer: gedistribueerde systemen en cloud-native computing. De nieuwe stapel. Genomen uit: thenewstack.io.
- Internationale Universiteit van Valencia (2020). Gedistribueerde systemen, kenmerken en classificatie. Genomen uit: universidadviu.com.
- David Meador (2018). Gedistribueerde systemen. Tutorials Point. Genomen van: tutorialspoint.com.
- Robert Gibb (2019). Wat is een gedistribueerd systeem? Genomen uit: blog.stackpath.com.
- Stanislav Kozlovski (2018). Een grondige inleiding tot gedistribueerde systemen. Gratis Code Camp. Genomen uit: freecodecamp.org.