- Datadistribusjon
- Kjennetegn på distribuerte systemer
- kompatibilitet
- Feiltoleranse
- Middleware og API
- Arkitektur
- Klient-serverarkitektur
- Peer-to-peer-arkitektur
- Arkitekturer på flere nivåer
- Prosessorgruppearkitektur
- Typer distribuerte systemer
- Cluster computing
- Nettverksberegning
- Cloud Computing
- mål
- Del ressurser
- Abstraksjon
- Åpning
- Interoperabilitet og portabilitet
- skalerbarhet
- applikasjoner
- Erlang virtuell maskin
- Bittorrent
- Fordel
- ulemper
- Eksempler på distribuerte systemer
- StackPath
- Internett
- referanser
De distribuerte systemene er deler av programvare som brukes til å koordinere handlingene til flere datamaskiner. Denne koordineringen oppnås gjennom utveksling av meldinger, det vil si med biter av data som overfører informasjon.
Distribuerte systemer krever samtidige komponenter, et kommunikasjonsnettverk og en synkroniseringsmekanisme. De tillater deling av ressurser, inkludert programvare, ved systemer koblet til et nettverk. Derfor er systemet basert på et nettverk som kobler datamaskiner og håndterer rutingen av meldinger.

a og b (distribuerte systemer). b (parallelt system). Miym / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Distribuert databehandling er et område av databehandling som er ansvarlig for å analysere distribuerte systemer. Dataprogram som kjører på et distribuert system kalles et distribuert program.
I en sammenheng der det kan være hundrevis eller tusenvis av datamaskiner, som er en vanlig andel i store Internett-selskaper, er det veldig vanlig at det er komponentfeil, det være seg maskinvare, nettverk, disker, etc., og systemet må være forberedt på å møte dem til enhver tid.
Datadistribusjon
Distribusjon er nøkkelen til å kunne håndtere veldig store datakonglomerater. Det er nødvendig å oppnå skalerbarhet, som er midlene for å opprettholde stabil ytelse når datapooler vokser ved å legge til nye ressurser til systemet.
På den annen side presenterer distribusjon en serie tekniske problemer som gjør design og implementering av distribuert databehandling og lagring viktig å vurdere. Et poeng å ta hensyn til er risikoen for mulige feil.
Kjennetegn på distribuerte systemer

a og b (distribuerte systemer). b (parallelt system). Miym / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
kompatibilitet
Enhetene kan fungere med forskjellige operativsystemer. Dette forhindrer ikke at de alltid tilbyr de samme tjenestene til brukerne. Av denne grunn er alle tilkoblede enheter kompatible med hverandre.
Et annet grunnleggende spørsmål er utformingen av programvaren, fordi den også er kompatibel med alle systemene og brukerne som er på hver datamaskin.
Feiltoleranse
Å være et enkelt nettverk med mange datamaskiner, hvis noen av komponentene mislykkes, kan de andre fortsette å utføre sin funksjon fullt ut og unngå raskt feil.
Av denne grunn har distribuerte systemer en tendens til å gi mye selvtillit når du arbeider med dem, fordi det er ganske sjelden at systemet mislykkes fullstendig, fordi oppgavene ikke ligger i en enkelt enhet, men på forskjellige datamaskiner.
Middleware og API
Ulike prosessorer bruker distribusjons mellomvare, og hjelper til med å dele forskjellige ressurser og muligheter for å gi brukerne et sammenhengende og integrert nettverk. Det gir også applikasjoner en rekke tjenester, for eksempel sikkerhet og krasjgjenoppretting.
I dag hører du mer om applikasjonsprogrammeringsgrensesnitt (APIer), som fungerer som en gateway hvor applikasjoner kan kommunisere. Applikasjoner trenger ikke å vite noe om andre applikasjoner bortsett fra deres API.
Arkitektur
Klient-serverarkitektur
En bestemt datamaskin kalt en server kan utføre visse oppgaver, som kalles tjenester. For eksempel servering av filer over nettverket, muligheten til å utføre visse kommandoer eller rute data til en skriver. Klienten er datamaskinen som ber om tjenestene.
Datamaskinen som hovedsakelig er kjent for tjenesten den tilbyr, kan kalles en utskriftsserver, filserver og så videre.
Peer-to-peer-arkitektur
Det forutsetter at hver datamaskin har lignende evner, og at ingen maskiner er dedikert til å betjene de andre. Et eksempel på dette er et sett med mikrodatamaskiner på et lite kontor.
Nettverket lar folk få tilgang til hverandres filer og sende e-post, men ingen datamaskiner gir et spesifikt sett med tjenester.
Arkitekturer på flere nivåer
For visse tjenester kan det være fornuftig å ha hierarkisk tilkobling. For eksempel:
- En server når du utfører sine oppgaver, kan kontakte en annen server av en annen type
- Klient-serverarkitekturen er en to-lags arkitektur.
Prosessorgruppearkitektur
Et operativsystem kan automatisk starte prosesser på uvirksomme datamaskiner og til og med migrere prosesser til systemer med et større antall tilgjengelige CPU-sykluser. I andre tilfeller kan en bruker manuelt starte eller flytte prosesser på tilgjengelige systemer.
Typer distribuerte systemer
Cluster computing
Det er en samling lignende datamaskiner koblet gjennom et høyt hastighets lokalt nettverk. Det brukes ofte til parallell programmering, der et enkelt datamaskinintensivt program kjøres parallelt på flere datamaskiner.
Hver klynge består av et sett med beregne noder som overvåkes og administreres av en eller flere noder kalt mestere.
Nettverksberegning
Den består av noder med markante forskjeller i maskinvare- og nettverksteknologi. Den nåværende trenden med å ha en spesifikk konfigurasjon av noder for visse oppgaver har ført til større mangfold, som er den vanligste innen nettverksberegning.
Cloud Computing
Det er et sett med virtualiserte ressurser som ligger i datasenteret til en skyleverandør. Kunder kan etablere en virtualisert infrastruktur for å dra nytte av en rekke skytjenester.
For brukeren ser det ut til at han leier sin egen eksklusive datamaskin. Imidlertid er det faktisk sannsynlig at du deler det med andre kunder. Det samme gjelder virtuell lagring.
Disse virtualiserte ressursene kan konfigureres dynamisk, og gir dermed skalerbarhet. Hvis det trengs flere databehandlingsressurser, kan systemet kjøpe mer.
mål
Del ressurser
Det være seg lagringsfasiliteter, datafiler, tjenester eller nettverk, det kan være lurt å dele disse ressursene mellom applikasjoner av hensyn til økonomien.
Det er mye billigere å ha et delt lagringsanlegg mellom flere applikasjoner enn å måtte kjøpe og vedlikeholde lagring for hver enkelt separat.
Abstraksjon
For å skjule at prosessene og ressursene er fordelt på flere datamaskiner, muligens geografisk spredt. Det vil si at prosessene og ressursene abstraheres fra brukeren.
Åpning
Det indikerer i utgangspunktet at et distribuert system er bygd med elementer som enkelt kan integreres med andre systemer. I samsvar med standardiserte regler kan enhver prosess med det grensesnittet kommunisere med en annen prosess med samme grensesnitt.
Interoperabilitet og portabilitet
Det refererer til når to systemer fra forskjellige produsenter kan samarbeide. Portabilitet bestemmer i hvilken grad en applikasjon laget for system A kan fungere på system B uten endring.
skalerbarhet
Det er nødvendig når det er en økning i brukere som trenger mer ressurser. Et godt eksempel er økningen i Netflix-publikummet hver fredag kveld.
Det betyr dynamisk å legge til flere ressurser, for eksempel å øke nettverkskapasiteten ved å tillate mer videooverføring og redusere den når forbruket er normalisert.
applikasjoner
Erlang virtuell maskin

LYME-programvarepakken er basert på Erlang og tilbyr et alternativ til LAMP. Shmuel Csaba Otto Traian / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Erlang er et funksjonelt språk som har stor semantikk for samtidighet, distribusjon og feiltoleranse. En virtuell Erlang-maskin håndterer distribusjonen av en Erlang-applikasjon.
Denne modellen fungerer ved å ha mange isolerte prosesser, alle med evnen til å kommunisere med hverandre gjennom et innebygd meldingssystem.
Den virtuelle maskinen Erlang kan koble til andre virtuelle maskiner som er forskjellige steder. Denne svermen av virtuelle maskiner kjører et enkelt program, og håndterer feilene på en maskin ved å planlegge den til å kjøre på en annen node.
Bittorrent

BitTorrent-nettverksdrift. Mrjavi / CC BY-SA (https://creativecommons.org/licenses/by-sa/4.0)
Det er en av de mest brukte protokollene for overføring av store filer på nettet. Hovedideen er å legge til rette for overføring av filer mellom forskjellige jevnaldrende i nettverket uten å måtte gå gjennom en hovedserver.
Ved å bruke en BitTorrent-klient, kan du koble til flere datamaskiner over hele verden for å laste ned en fil. En datamaskin som fungerer som koordinator hjelper til med å vise nodene i nettverket som har ønsket fil.
BitTorrent lar deg frivillig være vert for filer og laste dem opp for andre brukere som ønsker dem. Det er så populært fordi det var det første i sitt slag som ga insentiver for å bidra til nettverket.
Fordel
- Flere noder kan enkelt legges til det distribuerte systemet, det vil si at det kan skaleres etter behov.
- Alle noder i det distribuerte systemet er koblet til hverandre. Derfor kan hver av nodene enkelt dele data med de andre nodene.
- Ressurser som skrivere kan deles med flere noder i stedet for å være begrenset til bare en.
- Feil i en node fører ikke til svikt i hele det distribuerte systemet. De andre nodene kan fortsatt kommunisere med hverandre.
ulemper
- Noen meldinger og data kan gå tapt på nettverket når du går fra en node til en annen.
- Det er vanskelig å sørge for tilstrekkelig sikkerhet i distribuerte systemer fordi både noder og tilkoblinger må sikres.
- Nettverksoverbelastning kan oppstå hvis alle noder i det distribuerte systemet prøver å sende data samtidig.
- Databasen koblet til de distribuerte systemene er ganske komplisert og vanskelig å administrere sammenlignet med et enkelt brukersystem.
Eksempler på distribuerte systemer
Distribuerte systemer kan brukes i et stort antall tilfeller, for eksempel elektroniske banksystemer, massivt flerspillers online spill og sensornettverk.
StackPath
Den bruker et spesielt stort distribuert system for å drive sin nettleveringstjeneste for innhold. Hvert av sine nærværspunkter (PoP) har noder, og danner et verdensomspennende distribuert system.
StackPath lagrer det nyeste og ofte etterspurte innholdet på stedene nærmest nettstedet som blir brukt.
Ved å koble sammen virtuelle datamaskiner, i tillegg til å dra nytte av hastigheten og smidigheten til avansert databehandling, kan systemet håndtere tusenvis av samtidige forespørsler veldig raskt.
Internett
Det er det største distribuerte systemet i verden. Enhver bruker føles som et enkelt system, selv om det består av millioner av datamaskiner.
Gjennom abstraksjonsbegrepet har du ingen anelse om hvor dataene er lagret, hvor mange servere som er involvert, eller hvordan informasjonen kommer til nettleseren. Nettleseren løser opp kompleksiteten på Internett.
Dette gjelder også applikasjoner som Gmail e-post eller andre applikasjoner som kan brukes. Hver person samhandler med distribuerte applikasjoner på daglig basis.
referanser
- Paul Krzyzanowski (2018). Distribuerte systemer. Hentet fra: cs.rutgers.edu.
- Catherine Paganini (2019). Primer: Distribuerte systemer og Cloud Native Computing. Den nye stabelen. Hentet fra: thenewstack.io.
- International University of Valencia (2020). Distribuerte systemer, egenskaper og klassifisering. Hentet fra: universidadviu.com.
- David Meador (2018). Distribuerte systemer. Tutorials Point. Hentet fra: tutorialspoint.com.
- Robert Gibb (2019). Hva er et distribuert system? Hentet fra: blog.stackpath.com.
- Stanislav Kozlovski (2018). En grundig introduksjon til distribuerte systemer. Gratis kodeleir. Hentet fra: freecodecamp.org.
