- Duomenų paskirstymas
- Paskirstytų sistemų charakteristikos
- Suderinamumas
- Gedimų toleravimas
- Tarpinė programinė įranga ir API
- Architektūra
- Kliento-serverio architektūra
- Lygiavertė architektūra
- Daugiapakopės architektūros
- Procesorių grupės architektūra
- Paskirstytų sistemų tipai
- Klasterių skaičiavimas
- Tinklo kompiuterija
- Debesų kompiuterija
- tikslus
- Dalykitės ištekliais
- Abstrakcija
- Atidarymas
- Sąveikumas ir perkeliamumas
- Mastelio keitimas
- Programos
- „Erlang“ virtualioji mašina
- „Bittorrent“
- Privalumas
- Trūkumai
- Paskirstytų sistemų pavyzdžiai
- „StackPath“
- internetas
- Nuorodos
Į platinami sistemos yra programinės įrangos dalių naudojamas koordinuoti kelis kompiuterius veiksmus. Šis koordinavimas pasiekiamas keičiantis žinutėmis, tai yra, naudojant duomenis, kurie perduoda informaciją.
Paskirstytoms sistemoms reikalingi tuo pačiu metu naudojami komponentai, ryšių tinklas ir sinchronizacijos mechanizmas. Jie leidžia dalintis ištekliais, įskaitant programinę įrangą, prie tinklo prijungtomis sistemomis. Todėl sistema pagrįsta tinklu, kuris jungia kompiuterius ir tvarko pranešimų nukreipimą.
a ir b (paskirstytos sistemos). b (lygiagreti sistema). „Miym“ / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Pasiskirstytasis kompiuteris yra skaičiavimo sritis, atsakinga už paskirstytų sistemų analizę. Kompiuterio programa, vykdoma paskirstytoje sistemoje, vadinama paskirstyta programa.
Tokiomis aplinkybėmis, kai gali būti šimtai ar tūkstančiai kompiuterių, o tai yra įprasta dalis didelėse interneto bendrovėse, labai dažnai pasitaiko komponentų gedimų, nesvarbu, ar tai aparatinė įranga, tinklas, diskai, ir tt, ir sistema turi būti pasirengusi su jais bet kada susidurti.
Duomenų paskirstymas
Platinimas yra labai svarbus norint valdyti labai didelius duomenų konglomeratus. Būtina pasiekti mastelį, kuris yra priemonė stabiliam našumui palaikyti, kai duomenų telkiniai auga pridedant naujus išteklius į sistemą.
Kita vertus, paskirstymas pateikia daugybę techninių problemų, dėl kurių svarbu apsvarstyti paskirstyto skaičiavimo ir saugojimo planavimą ir įgyvendinimą. Vienas aspektas, į kurį reikia atsižvelgti, yra galimų nesėkmių rizika.
Paskirstytų sistemų charakteristikos
a ir b (paskirstytos sistemos). b (lygiagreti sistema). „Miym“ / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Suderinamumas
Įrenginiai gali veikti su skirtingomis operacinėmis sistemomis. Tai netrukdo jiems visada siūlyti tas pačias paslaugas vartotojams. Dėl šios priežasties visi prijungti įrenginiai yra suderinami vienas su kitu.
Kita esminė problema yra programinės įrangos dizainas, nes ji taip pat suderinama su visomis sistemomis ir vartotojais, kurie yra kiekviename kompiuteryje.
Gedimų toleravimas
Jei bet kuris iš jo komponentų sugenda, tai yra vienas tinklas, kuriame yra daug kompiuterių, ir kiti gali toliau vykdyti savo funkcijas, greitai išvengdami klaidų.
Dėl šios priežasties paskirstytos sistemos paprastai teikia daug pasitikėjimo savimi dirbdamos su jomis, nes gana retai sistema visiškai sugenda, nes užduotys vyksta ne viename įrenginyje, o skirtinguose kompiuteriuose.
Tarpinė programinė įranga ir API
Įvairūs procesoriai naudoja paskirstymo tarpinę programinę įrangą, padėdami dalytis skirtingais ištekliais ir galimybėmis, kad vartotojams būtų užtikrintas nuoseklus ir integruotas tinklas. Tai taip pat teikia programoms daugybę paslaugų, tokių kaip sauga ir gedimų atkūrimas.
Šiandien jūs girdite daugiau apie programų programavimo sąsajas (API), kurios veikia kaip šliuzas, kuriame programos gali susisiekti. Programoms nereikia nieko žinoti apie kitas programas, išskyrus jų API.
Architektūra
Kliento-serverio architektūra
Tam tikras kompiuteris, vadinamas serveriu, gali atlikti tam tikras užduotis, kurios vadinamos paslaugomis. Pavyzdžiui, failų aptarnavimas tinkle, galimybė vykdyti tam tikras komandas arba nukreipti duomenis į spausdintuvą. Klientas yra kompiuteris, prašantis paslaugų.
Kompiuteris, visų pirma žinomas dėl jo teikiamų paslaugų, gali būti vadinamas spausdinimo serveriu, failų serveriu ir pan.
Lygiavertė architektūra
Daroma prielaida, kad kiekvienas kompiuteris turi panašias galimybes ir joks kompiuteris nėra skirtas aptarnauti kitus. To pavyzdys yra mikrokompiuterių rinkinys mažame biure.
Tinklas leidžia žmonėms pasiekti vienas kito failus ir siųsti el. Laiškus, tačiau nė vienas kompiuteris neteikia konkretaus paslaugų rinkinio.
Daugiapakopės architektūros
Tam tikroms paslaugoms gali būti prasminga turėti hierarchinį ryšį. Pavyzdžiui:
- Atlikdamas užduotis, serveris gali susisiekti su kitu kitokio tipo serveriu
- Kliento-serverio architektūra yra dviejų pakopų architektūra.
Procesorių grupės architektūra
Operacinė sistema galėtų automatiškai pradėti procesus nenaudojamuose kompiuteriuose ir net perkelti procesus į sistemas, turinčias didesnį galimų procesoriaus ciklų skaičių. Kitais atvejais vartotojas gali rankiniu būdu pradėti arba perkelti procesus prieinamose sistemose.
Paskirstytų sistemų tipai
Klasterių skaičiavimas
Tai panašių kompiuterių, sujungtų per spartų vietinį tinklą, kolekcija. Ji dažnai naudojama lygiagrečiam programavimui, kai viena kompiuterio programa yra vykdoma lygiagrečiai keliuose kompiuteriuose.
Kiekvieną klasterį sudaro skaičiavimo mazgų rinkinys, kurį stebi ir valdo vienas ar keli mazgai, vadinami pagrindiniais.
Tinklo kompiuterija
Jį sudaro mazgai, pasižymintys ryškiais aparatinės ir tinklo technologijos skirtumais. Dabartinė tendencija turėti tam tikrą tam tikrų užduočių mazgų konfigūraciją lėmė didesnę įvairovę, kuri yra labiausiai paplitusi tinklo kompiuterijoje.
Debesų kompiuterija
Tai yra virtualizuotų išteklių, esančių debesies teikėjo duomenų centre, rinkinys. Klientai gali sukurti virtualizuotą infrastruktūrą, kad galėtų naudotis įvairiomis debesijos paslaugomis.
Vartotojui atrodo, kad jis nuomojasi savo išskirtinį kompiuterį. Tačiau iš tikrųjų tikėtina, kad dalijatės ja su kitais klientais. Tas pats pasakytina apie virtualų saugojimą.
Šiuos virtualizuotus išteklius galima dinamiškai sukonfigūruoti, taip užtikrinant mastelio keitimą. Jei reikia daugiau skaičiavimo išteklių, sistema gali įsigyti daugiau.
tikslus
Dalykitės ištekliais
Nesvarbu, ar tai būtų saugyklos, duomenų failai, paslaugos ar tinklai, ekonomiškumo sumetimais galite pasidalyti šiais ištekliais tarp programų.
Daug pigiau turėti bendrą saugyklą tarp kelių programų, nei kiekvienai atskirai įsigyti ir prižiūrėti saugyklą.
Abstrakcija
Slėpti, kad procesai ir ištekliai yra paskirstomi keliuose kompiuteriuose, galbūt, geografiškai išskaidytuose. Tai yra, procesai ir ištekliai yra paimami iš vartotojo.
Atidarymas
Iš esmės tai rodo, kad paskirstyta sistema yra sukurta su elementais, kuriuos galima lengvai integruoti į kitas sistemas. Laikantis standartizuotų taisyklių, bet kuris procesas su ta sąsaja gali susisiekti su kitu procesu su ta pačia sąsaja.
Sąveikumas ir perkeliamumas
Tai reiškia, kai dvi sistemos iš skirtingų gamintojų gali veikti kartu. Perkeliamumas lemia, kokiu mastu programa A gali veikti B sistemoje be pakeitimų.
Mastelio keitimas
Tai būtina, kai daugėja vartotojų, kuriems reikia daugiau išteklių. Puikus pavyzdys yra „Netflix“ auditorijos padidėjimas kiekvieną penktadienio vakarą.
Tai reiškia, kad reikia dinamiškai pridėti daugiau išteklių, pvz., Padidinti tinklo pajėgumą leidžiant daugiau vaizdo perdavimo ir sumažinant jį, kai vartojimas normalizuosis.
Programos
„Erlang“ virtualioji mašina
LYME programinės įrangos paketas yra pagrįstas Erlangu ir siūlo alternatyvą LAMP. Shmuelis Csaba Otto Traianas / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Erlangas yra funkcinė kalba, turinti puikią lygiagretumo, paskirstymo ir atsparumo gedimams semantiką. „Erlang“ virtualioji mašina tvarko „Erlang“ programos platinimą.
Šis modelis veikia turėdamas daugybę atskirtų procesų, turinčius galimybę bendrauti tarpusavyje per įmontuotą pranešimų sistemą.
„Erlang“ virtualioji mašina gali prisijungti prie kitų virtualių mašinų, esančių skirtingose vietose. Šis virtualių mašinų spiečius paleidžia vieną programą ir pašalina vienos mašinos gedimus, suplanuodamas ją paleisti kitam mazgui.
„Bittorrent“
„BitTorrent“ tinklo veikimas. „Mrjavi“ / CC BY-SA (https://creativecommons.org/licenses/by-sa/4.0)
Tai yra vienas iš plačiausiai naudojamų protokolų dideliems failams perduoti žiniatinklyje. Pagrindinė idėja yra palengvinti failų perkėlimą tarp skirtingų tinklo bendraamžių, nereikia pereiti per pagrindinį serverį.
Naudodamiesi „BitTorrent“ klientu, galite prisijungti prie kelių kompiuterių visame pasaulyje, kad atsisiųstumėte failą. Kompiuteris, veikiantis kaip koordinatorius, padeda parodyti tinklo mazgus, kuriuose yra norimas failas.
„BitTorrent“ leidžia savanoriškai talpinti failus ir įkelti juos kitiems vartotojams, kurie jų nori. Jis yra toks populiarus, nes jis pirmasis tokio pobūdžio pasiūlė paskatas prisidėti prie tinklo.
Privalumas
- Į paskirstytą sistemą galima lengvai pridėti daugiau mazgų, tai yra, ją galima sumažinti pagal poreikį.
- Visi paskirstytos sistemos mazgai yra sujungti vienas su kitu. Todėl kiekvienas iš mazgų gali lengvai dalytis duomenimis su kitais mazgais.
- Šaltiniai, tokie kaip spausdintuvai, gali būti bendrinami su keliais mazgais, užuot apsiribojus tik vienu.
- Vieno mazgo gedimas nesukelia visos paskirstytos sistemos gedimo. Kiti mazgai vis dar gali bendrauti.
Trūkumai
- Kai kurie pranešimai ir duomenys gali būti prarasti tinkle, pereinant iš vieno mazgo į kitą.
- Sunku užtikrinti tinkamą saugumą paskirstytose sistemose, nes turi būti apsaugoti mazgai ir jungtys.
- Tinklo perkrova gali įvykti, jei visi paskirstytos sistemos mazgai bando siųsti duomenis tuo pačiu metu.
- Duomenų bazė, sujungta su paskirstytomis sistemomis, yra gana sudėtinga ir sunkiai valdoma, palyginti su vieno vartotojo sistema.
Paskirstytų sistemų pavyzdžiai
Paskirstytos sistemos gali būti naudojamos daugeliu atvejų, pavyzdžiui, elektroninės bankininkystės sistemos, masiškai kelių žaidėjų internetiniai žaidimai ir jutiklių tinklai.
„StackPath“
Savo turinio pristatymo tinklo tarnybai ji naudoja ypač didelę paskirstytą sistemą. Kiekvienas jo buvimo taškas (PoP) turi mazgus, sudarančius visame pasaulyje paskirstytą sistemą.
„StackPath“ saugo naujausią ir dažniausiai reikalaujamą turinį vietose, esančiose arčiausiai naudojamos svetainės.
Sujungdama virtualius kompiuterius, ne tik naudodamiesi šiuolaikinio skaičiavimo greičiu ir lankstumu, sistema gali labai greitai patenkinti tūkstančius vienu metu vykstančių užklausų.
internetas
Tai yra didžiausia paskirstyta sistema pasaulyje. Bet kuris vartotojas jaučiasi kaip viena sistema, net jei ją sudaro milijonai kompiuterių.
Naudodamiesi abstrakcijos idėja, jūs net neįsivaizduojate, kur duomenys yra saugomi, kiek serverių dalyvauja ar kaip informacija patenka į naršyklę. Naršyklė panaikina interneto sudėtingumą.
Tai taip pat taikoma tokioms programoms, kaip „Gmail“ el. Paštas ar bet kuri kita programa, kurią galima naudoti. Kiekvienas asmuo kasdien bendrauja su paskirstytomis programomis.
Nuorodos
- Paulius Krzyzanowskis (2018 m.). Paskirstytos sistemos. Paimta iš: cs.rutgers.edu.
- Catherine Paganini (2019 m.). „Primer“: paskirstytos sistemos ir „Cloud Native Computing“. Naujas kaminas. Paimta iš: thenewstack.io.
- Tarptautinis Valensijos universitetas (2020 m.). Paskirstytos sistemos, charakteristikos ir klasifikacija. Paimta iš: universidadviu.com.
- Davidas Meadoris (2018 m.). Paskirstytos sistemos. Pamokos taškas. Paimta iš: tutorialspoint.com.
- Robertas Gibbas (2019 m.). Kas yra paskirstytoji sistema? Paimta iš: blog.stackpath.com.
- Stanislavas Kozlovskis (2018 m.). Išsamus paskirstytų sistemų įvadas. Nemokama kodų stovykla. Paimta iš: freecodecamp.org.