- Datadistribution
- Egenskaber ved distribuerede systemer
- Kompatibilitet
- Fejltolerance
- Middleware og API
- Arkitektur
- Klient-server arkitektur
- Peer-to-peer-arkitektur
- Arkitekturer på flere niveauer
- Processorgruppearkitektur
- Typer af distribuerede systemer
- Cluster computing
- Netværk computing
- Skyen
- mål
- Del ressourcer
- abstraktion
- Åbning
- Interoperabilitet og portabilitet
- Skalerbarhed
- Applikationer
- Erlang virtuel maskine
- bittorrent
- Fordel
- Ulemper
- Eksempler på distribuerede systemer
- StackPath
- Internet
- Referencer
De distribuerede systemer er stykker software, der bruges til at koordinere handlingerne fra flere computere. Denne koordinering opnås gennem udveksling af meddelelser, det vil sige med stykker af data, der transmitterer information.
Distribuerede systemer kræver samtidige komponenter, et kommunikationsnetværk og en synkroniseringsmekanisme. De tillader deling af ressourcer, inklusive software, af systemer, der er forbundet til et netværk. Derfor er systemet baseret på et netværk, der forbinder computere og håndterer routing af meddelelser.
a og b (distribuerede systemer). b (parallelt system). Miym / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Distribueret computing er et område inden for computing, der er ansvarlig for analyse af distribuerede systemer. Computerprogram, der kører på et distribueret system kaldes et distribueret program.
I en sammenhæng, hvor der kan være hundreder eller tusinder af computere, hvilket er en fælles andel i store internetfirmaer, er det meget almindeligt, at der er komponentfejl, det være sig hardware, netværk, diske osv., Og systemet skal være parat til at møde dem på alle tidspunkter.
Datadistribution
Distribution er nøglen til at kunne håndtere meget store datakonglomerater. Det er nødvendigt at opnå skalerbarhed, hvilket er midlerne til at opretholde stabil ydelse, når datapooler vokser ved at tilføje nye ressourcer til systemet.
På den anden side præsenterer distribution en række tekniske problemer, der gør design og implementering af distribueret computing og opbevaring vigtig at overveje. Et punkt at tage højde for er risikoen for mulige fejl.
Egenskaber ved distribuerede systemer
a og b (distribuerede systemer). b (parallelt system). Miym / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Kompatibilitet
Enhederne kan arbejde med forskellige operativsystemer. Dette forhindrer dem ikke i at altid tilbyde de samme tjenester til brugerne. Af denne grund er alle tilsluttede enheder kompatible med hinanden.
Et andet grundlæggende problem er designen af softwaren, fordi den også er kompatibel med alle systemer og brugere, der findes på hver computer.
Fejltolerance
At være et enkelt netværk med mange computere, hvis nogen af dets komponenter mislykkes, kan de andre fortsætte med at udføre deres funktion fuldt ud og hurtigt undgå fejl.
Af denne grund har distribuerede systemer en tendens til at give en masse selvtillid, når de arbejder med dem, fordi det er ret sjældent, at systemet mislykkes fuldstændigt, fordi opgaverne ikke findes i en enkelt enhed, men på forskellige computere.
Middleware og API
Forskellige processorer bruger mellemliggende distribution, hvilket hjælper med at dele forskellige ressourcer og muligheder for at give brugerne et sammenhængende og integreret netværk. Det giver også applikationer et antal tjenester, såsom sikkerhed og gendannelse af nedbrud.
I dag hører du mere om applikationsprogrammeringsgrænseflader (API'er), der fungerer som en gateway, hvor applikationer kan kommunikere. Ansøgninger behøver ikke at vide noget om andre applikationer undtagen deres API.
Arkitektur
Klient-server arkitektur
En bestemt computer kaldet en server kan udføre visse opgaver, der kaldes tjenester. For eksempel betjener filer over netværket, muligheden for at udføre bestemte kommandoer eller rute data til en printer. Klienten er computeren, der anmoder om tjenesterne.
Computeren, der primært er kendt for den service, den leverer, kan kaldes en printserver, filserver og så videre.
Peer-to-peer-arkitektur
Det antages, at hver computer har lignende egenskaber, og at ingen maskine er dedikeret til at betjene de andre. Et eksempel på dette er et sæt mikrocomputere på et lille kontor.
Netværket giver folk adgang til hinandens filer og sender e-mails, men ingen computer leverer et specifikt sæt af tjenester.
Arkitekturer på flere niveauer
For visse tjenester kan det være fornuftigt at have hierarkisk forbindelse. For eksempel:
- En server, når den udfører sine opgaver, kan kontakte en anden server af en anden type
- Klient-serverarkitekturen er en to-lags arkitektur.
Processorgruppearkitektur
Et operativsystem kunne automatisk starte processer på inaktive computere og endda migrere processer til systemer med et større antal tilgængelige CPU-cyklusser. I andre tilfælde kan en bruger manuelt starte eller flytte processer på tilgængelige systemer.
Typer af distribuerede systemer
Cluster computing
Det er en samling af lignende computere, der er tilsluttet via et højhastigheds-lokalnetværk. Det bruges ofte til parallel programmering, hvor et enkelt computerintensivt program kører parallelt på flere computere.
Hver klynge består af et sæt computernoder, der overvåges og styres af en eller flere noder, der kaldes masters.
Netværk computing
Det består af noder med markante forskelle i hardware og netværksteknologi. Den nuværende tendens til at have en specifik konfiguration af noder til bestemte opgaver har ført til større mangfoldighed, som er den mest almindelige inden for netværkscomputering.
Skyen
Det er et sæt virtualiserede ressourcer, der ligger i en cloud-udbyders datacenter. Kunder kan etablere en virtualiseret infrastruktur for at drage fordel af en række skytjenester.
For brugeren ser det ud til, at han lejer sin egen eksklusive computer. Imidlertid er det faktisk sandsynligt, at du deler det med andre kunder. Det samme gælder virtuel opbevaring.
Disse virtualiserede ressourcer kan konfigureres dynamisk, hvilket muliggør skalerbarhed. Hvis der er behov for flere databehandlingsressourcer, kan systemet købe mere.
mål
Del ressourcer
Uanset om det er lagerfaciliteter, datafiler, tjenester eller netværk, kan du måske dele disse ressourcer mellem applikationer af hensyn til økonomien.
Det er meget billigere at have en delt lagerfacilitet mellem flere applikationer end at skulle købe og vedligeholde lagring for hver enkelt separat.
abstraktion
At skjule det faktum, at processerne og ressourcerne er fordelt på flere computere, muligvis geografisk spredt. Det vil sige, processerne og ressourcerne abstraheres fra brugeren.
Åbning
Det indikerer dybest set, at et distribueret system er bygget med elementer, der let kan integreres med andre systemer. I overensstemmelse med standardiserede regler kan enhver proces med denne grænseflade kommunikere med en anden proces med den samme grænseflade.
Interoperabilitet og portabilitet
Det henviser til, når to systemer fra forskellige producenter kan arbejde sammen. Portabilitet bestemmer i hvilket omfang en applikation, der er foretaget til system A, kan fungere på system B uden ændring.
Skalerbarhed
Det er nødvendigt, når der er en stigning i brugere, der har brug for flere ressourcer. Et godt eksempel er stigningen i Netflix-publikum hver fredag aften.
Det betyder dynamisk at tilføje flere ressourcer, såsom at øge netværkskapaciteten ved at tillade mere videooverførsel og reducere den, når forbruget er normaliseret.
Applikationer
Erlang virtuel maskine
LYME-softwarepakken er baseret på Erlang og tilbyder et alternativ til LAMP. Shmuel Csaba Otto Traian / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Erlang er et funktionelt sprog, der har stor semantik for samtidighed, distribution og fejltolerance. En virtuel Erlang-maskine håndterer distributionen af en Erlang-applikation.
Denne model fungerer ved at have mange isolerede processer, alle med evnen til at kommunikere med hinanden gennem et indbygget messaging-system.
Den virtuelle Erlang-maskine kan oprette forbindelse til andre virtuelle maskiner, der er forskellige steder. Denne sverm af virtuelle maskiner kører en enkelt applikation, der håndterer en maskins fejl ved at planlægge den til at køre på en anden knude.
bittorrent
BitTorrent-netværksdrift. Mrjavi / CC BY-SA (https://creativecommons.org/licenses/by-sa/4.0)
Det er en af de mest anvendte protokoller til overførsel af store filer på nettet. Hovedideen er at lette overførslen af filer mellem forskellige peers på netværket uden at skulle gå gennem en hovedserver.
Ved at bruge en BitTorrent-klient kan du oprette forbindelse til flere computere overalt i verden for at downloade en fil. En computer, der fungerer som koordinator, hjælper med at vise de noder på netværket, der har den ønskede fil.
BitTorrent giver dig mulighed for frivilligt at være vært for filer og uploade dem til andre brugere, der ønsker dem. Det er så populært, fordi det var den første af sin art, der gav incitamenter til at bidrage til netværket.
Fordel
- Flere noder kan let tilføjes til det distribuerede system, det vil sige, det kan skaleres efter behov.
- Alle noder i det distribuerede system er forbundet til hinanden. Derfor kan hver af noder let dele data med de andre noder.
- Ressourcer som printere kan deles med flere noder i stedet for at være begrænset til kun en.
- Fejlen i en knude fører ikke til fiaskoen i hele det distribuerede system. De andre noder kan stadig kommunikere med hinanden.
Ulemper
- Nogle meddelelser og data kan gå tabt på netværket, når du flytter fra en knude til en anden.
- Det er vanskeligt at stille tilstrækkelig sikkerhed i distribuerede systemer, fordi både noder og forbindelser skal sikres.
- Netværksoverbelastning kan forekomme, hvis alle noder i det distribuerede system forsøger at sende data på samme tid.
- Databasen, der er tilsluttet de distribuerede systemer, er ret kompliceret og vanskelig at administrere sammenlignet med et enkelt brugersystem.
Eksempler på distribuerede systemer
Distribuerede systemer kan bruges i et stort antal tilfælde, såsom elektroniske banksystemer, massivt multiplayer-onlinespil og sensornetværk.
StackPath
Det bruger et særligt stort distribueret system til at drive dens netværkstjeneste for indholdslevering. Hver af dens tilstedeværelsespunkter (PoP) har knudepunkter, der danner et verdensomspændende distribueret system.
StackPath gemmer det seneste og hyppigt anmodede indhold på de steder, der er tættest på det websted, der bruges.
Ved at sammenkoble virtuelle computere ud over at drage fordel af hastigheden og smidigheden af avanceret computing kan systemet håndtere tusinder af samtidige anmodninger meget hurtigt.
Internet
Det er det største distribuerede system i verden. Enhver bruger føles som et enkelt system, selvom det består af millioner af computere.
Gennem begrebet abstraktion har du ingen idé om, hvor dataene gemmes, hvor mange servere der er involveret, eller hvordan informationen kommer til browseren. Browsen opløser internetets kompleksitet.
Dette gælder også applikationer som Gmail-e-mail eller ethvert andet program, der kan bruges. Hver person interagerer med distribuerede applikationer dagligt.
Referencer
- Paul Krzyzanowski (2018). Distribuerede systemer. Taget fra: cs.rutgers.edu.
- Catherine Paganini (2019). Primer: Distribuerede systemer og Cloud Native Computing. Den nye stak. Taget fra: thenewstack.io.
- International University of Valencia (2020). Distribuerede systemer, egenskaber og klassificering. Taget fra: universidadviu.com.
- David Meador (2018). Distribuerede systemer. Tutorials Point. Taget fra: tutorialspoint.com.
- Robert Gibb (2019). Hvad er et distribueret system? Taget fra: blog.stackpath.com.
- Stanislav Kozlovski (2018). En grundig introduktion til distribuerede systemer. Gratis kodecamp. Taget fra: freecodecamp.org.