- Pamamahagi ng data
- Mga katangian ng mga ipinamamahaging sistema
- Kakayahan
- Ang pagpapaubaya ng fault
- Middleware at API
- Arkitektura
- Arkitektura ng kliyente-server
- Arkitektura ng peer-to-peer
- Mga arkitektura ng multi-level
- Ang arkitektura ng pangkat ng pangkat
- Mga uri ng mga ipinamamahaging system
- Cluster computing
- Network computing
- Cloud computing
- mga layunin
- Ibahagi ang mga mapagkukunan
- Abstraction
- Pagbubukas
- Mapag-ugnay at kakayahang maiangkop
- Kakayahan
- Aplikasyon
- Erlang virtual machine
- Mahinahon
- Kalamangan
- Mga Kakulangan
- Mga halimbawa ng mga ipinamamahaging sistema
- StackPath
- Internet
- Mga Sanggunian
Ang mga ipinamamahaging sistema ay mga piraso ng software na ginamit upang ayusin ang mga pagkilos ng maraming mga computer. Ang koordinasyong ito ay nakamit sa pamamagitan ng pagpapalitan ng mga mensahe, iyon ay, sa mga piraso ng data na nagpapadala ng impormasyon.
Ang mga ipinamamahaging sistema ay nangangailangan ng mga kasabay na bahagi, isang network ng komunikasyon, at isang mekanismo ng pag-synchronize. Pinapayagan nila ang pagbabahagi ng mga mapagkukunan, kabilang ang software, sa pamamagitan ng mga system na konektado sa isang network. Samakatuwid, ang system ay batay sa isang network na kumokonekta sa mga computer at humahawak sa pagruruta ng mga mensahe.

a at b (ipinamahagi na mga sistema). b (paralel system). Miym / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Ang ipinamamahaging computing ay isang lugar ng pag-compute na may pananagutan sa pagsusuri ng mga ipinamamahaging system. Ang computer program na tumatakbo sa isang ipinamamahaging sistema ay tinatawag na isang ipinamamahaging programa.
Sa isang konteksto kung saan maaaring may daan-daang o libu-libong mga computer, na isang karaniwang proporsyon sa mga malalaking kumpanya sa Internet, napaka-pangkaraniwan na mayroong mga pagkabigo sa sangkap, maging ito hardware, network, disk, atbp, at ang system ay dapat na handang harapin ang mga ito sa lahat ng oras.
Pamamahagi ng data
Ang pamamahagi ay susi sa kakayahang hawakan ang napakalaking data ng konglomerates. Kinakailangan upang makamit ang scalability, na siyang paraan upang mapanatili ang matatag na pagganap kapag ang mga pool ng data ay lumalaki sa pamamagitan ng pagdaragdag ng mga bagong mapagkukunan sa system.
Sa kabilang banda, ang pamamahagi ay nagtatanghal ng isang serye ng mga teknikal na problema na gumagawa ng disenyo at pagpapatupad ng ipinamamahalang kompyuter at imbakan na mahalaga upang isaalang-alang. Ang isang punto na dapat isaalang-alang ay ang panganib ng mga posibleng pagkabigo.
Mga katangian ng mga ipinamamahaging sistema

a at b (ipinamahagi na mga sistema). b (paralel system). Miym / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Kakayahan
Ang mga aparato ay maaaring gumana sa iba't ibang mga operating system. Hindi nito pinipigilan ang mga ito na laging mag-alok ng parehong mga serbisyo sa mga gumagamit. Para sa kadahilanang ito, ang lahat ng mga konektadong aparato ay magkatugma sa bawat isa.
Ang isa pang pangunahing isyu ay ang disenyo ng software, dahil katugma din ito sa lahat ng mga system at mga gumagamit na nasa bawat computer.
Ang pagpapaubaya ng fault
Ang pagiging isang solong network na may maraming mga computer, kung ang alinman sa mga sangkap nito ay nabigo, ang iba ay maaaring magpatuloy na maisagawa ang kanilang pag-andar, na mabilis na maiwasan ang mga pagkakamali.
Para sa kadahilanang ito, ang mga ipinamamahaging sistema ay may posibilidad na magbigay ng maraming kumpiyansa kapag nagtatrabaho sa kanila, dahil bihira na ang sistema ay mabigo nang ganap, dahil ang mga gawain ay hindi naninirahan sa isang solong aparato, ngunit sa iba't ibang mga computer.
Middleware at API
Ang iba't ibang mga processors ay gumagamit ng pamamahagi sa middleware, na tumutulong upang ibahagi ang iba't ibang mga mapagkukunan at kakayahan upang mabigyan ang mga gumagamit ng isang magkakaugnay at integrated network. Nagbibigay din ito ng mga application sa isang bilang ng mga serbisyo, tulad ng seguridad at pagbawi ng pag-crash.
Ngayon, naririnig mo ang higit pa tungkol sa mga interface ng programming ng application (Mga API), na gumaganap bilang isang gateway kung saan maaaring makipag-usap ang mga application. Hindi kailangang malaman ang mga aplikasyon tungkol sa iba pang mga aplikasyon maliban sa kanilang API.
Arkitektura
Arkitektura ng kliyente-server
Ang isang partikular na computer na tinatawag na isang server ay maaaring magsagawa ng ilang mga gawain, na kung saan ay tinatawag na mga serbisyo. Halimbawa, ang paghahatid ng mga file sa network, ang kakayahang magsagawa ng ilang mga utos, o data ng ruta sa isang printer. Ang kliyente ay ang computer na humihiling sa mga serbisyo.
Ang computer na kilala lalo na para sa serbisyong ibinibigay nito ay maaaring tawaging isang print server, file server, at iba pa.
Arkitektura ng peer-to-peer
Ipinapalagay na ang bawat computer ay may magkatulad na kakayahan at walang makina na nakatuon sa paglilingkod sa iba. Ang isang halimbawa nito ay isang hanay ng mga microcomputers sa isang maliit na opisina.
Pinapayagan ng network ang mga tao na ma-access ang bawat file at magpadala ng mga email, ngunit walang computer ang nagbibigay ng isang tiyak na hanay ng mga serbisyo.
Mga arkitektura ng multi-level
Para sa ilang mga serbisyo ay maaaring magkaroon ng kahulugan na magkaroon ng hierarchical connectivity. Halimbawa:
- Ang isang server kapag nagsasagawa ng mga gawain nito ay maaaring makipag-ugnay sa isa pang server ng ibang uri
- Ang arkitektura ng kliyente-server ay isang arkitekturang two-tier.
Ang arkitektura ng pangkat ng pangkat
Ang isang operating system ay maaaring awtomatikong magsimula ng mga proseso sa mga computer na idle at kahit na lumipat ng mga proseso sa mga system na may mas mataas na bilang ng mga magagamit na mga siklo ng CPU. Sa iba pang mga kaso, ang isang gumagamit ay maaaring manu-manong magsimula o maglipat ng mga proseso sa magagamit na mga system.
Mga uri ng mga ipinamamahaging system
Cluster computing
Ito ay isang koleksyon ng mga magkakatulad na computer na konektado sa pamamagitan ng isang mataas na bilis ng lokal na network ng lugar. Ito ay madalas na ginagamit para sa kahanay na programa, kung saan ang isang solong compute-intensive na programa ay tumatakbo kahanay sa maraming mga computer.
Ang bawat kumpol ay binubuo ng isang hanay ng mga compute node na sinusubaybayan at pinamamahalaan ng isa o higit pang mga node na tinatawag na masters.
Network computing
Binubuo ito ng mga node na may minarkahang pagkakaiba sa teknolohiya ng hardware at network. Ang kasalukuyang kalakaran upang magkaroon ng isang tiyak na pagsasaayos ng mga node para sa ilang mga gawain ay humantong sa higit na pagkakaiba-iba, na kung saan ay ang pinaka-karaniwang sa computer computing.
Cloud computing
Ito ay isang hanay ng mga virtualized na mapagkukunan na nakalagay sa sentro ng data ng isang provider ng ulap. Ang mga customer ay maaaring magtatag ng isang virtualized na imprastraktura upang samantalahin ang iba't ibang mga serbisyo ng ulap.
Sa gumagamit, lumalabas na nagrenta siya ng kanyang sariling eksklusibong computer. Gayunpaman, malamang na ibinabahagi mo ito sa ibang mga customer. Ang parehong naaangkop sa virtual na imbakan.
Ang mga virtualized na mapagkukunan na ito ay maaaring maging naka-configure sa kalakaran, kaya pinapayagan ang scalability. Kung kinakailangan ang higit pang mga mapagkukunan sa pag-compute, ang system ay maaaring bumili ng higit pa.
mga layunin
Ibahagi ang mga mapagkukunan
Maging ito ay mga kagamitan sa imbakan, mga file ng data, serbisyo o network, maaaring gusto mong ibahagi ang mga mapagkukunang ito sa pagitan ng mga aplikasyon, alang-alang sa ekonomiya.
Ito ay mas mura na magkaroon ng isang ibinahaging kagamitan sa pag-iimbak sa pagitan ng maraming mga aplikasyon kaysa sa pagbili at pagpapanatili ng imbakan para sa bawat isa nang hiwalay.
Abstraction
Upang itago na ang mga proseso at mapagkukunan ay ipinamamahagi sa maraming mga computer, marahil ay nakakalat sa heograpiya. Iyon ay, ang mga proseso at mapagkukunan ay na-abstract mula sa gumagamit.
Pagbubukas
Karaniwang ipinapahiwatig nito na ang isang ipinamamahaging sistema ay itinayo gamit ang mga elemento na madaling maisama sa iba pang mga system. Ang pagsunod sa mga pamantayan sa pamantayan, ang anumang proseso sa interface na iyon ay maaaring makipag-usap sa isa pang proseso na may parehong interface.
Mapag-ugnay at kakayahang maiangkop
Tumutukoy ito kapag ang dalawang mga sistema mula sa iba't ibang mga tagagawa ay maaaring magtulungan. Natutukoy ng Portability ang lawak kung saan ang isang application na ginawa para sa system A ay maaaring gumana sa system B nang walang pagbabago.
Kakayahan
Ito ay kinakailangan kapag may pagtaas sa mga gumagamit na nangangailangan ng mas maraming mapagkukunan. Ang isang mabuting halimbawa ay ang pagdaragdag sa madla ng Netflix tuwing Biyernes ng gabi.
Nangangahulugan ito ng pagdaragdag ng higit pang mga mapagkukunan, tulad ng pagtaas ng kapasidad ng network sa pamamagitan ng pagpapahintulot sa mas maraming paghahatid ng video at pagbabawas nito sa sandaling ang normal na pagkonsumo.
Aplikasyon
Erlang virtual machine

Ang package ng LYME software ay batay sa Erlang at nag-aalok ng isang kahalili sa LAMP. Shmuel Csaba Otto Traian / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Ang Erlang ay isang functional na wika na may mahusay na semantiko para sa pagkakasundo, pamamahagi, at pagpapahintulot sa kasalanan. Ang isang Erlang virtual machine ay humahawak sa pamamahagi ng isang application ng Erlang.
Gumagana ang modelong ito sa pamamagitan ng pagkakaroon ng maraming mga nakahiwalay na proseso, lahat ng may kakayahang makipag-usap sa bawat isa sa pamamagitan ng isang built-in na sistema ng pagmemensahe.
Ang Erlang virtual machine ay maaaring kumonekta sa iba pang mga virtual machine na nasa iba't ibang mga lugar. Ang isang pulutong ng mga virtual machine ay nagpapatakbo ng isang solong application, paghawak ng mga pagkabigo ng isang makina sa pamamagitan ng pag-iskedyul nito na tumakbo sa isa pang node.
Mahinahon

Ang operasyon ng network ng BitTorrent. Mrjavi / CC BY-SA (https://creativecommons.org/licenses/by-sa/4.0)
Ito ay isa sa mga pinaka-malawak na ginagamit na mga protocol para sa paglilipat ng malalaking file sa web. Ang pangunahing ideya ay upang mapadali ang paglipat ng mga file sa pagitan ng iba't ibang mga kapantay sa network nang hindi kinakailangang dumaan sa isang pangunahing server.
Sa pamamagitan ng paggamit ng isang kliyente ng BitTorrent, maaari kang kumonekta sa maraming mga computer sa buong mundo upang mag-download ng isang file. Ang isang computer na kumikilos bilang isang coordinator ay tumutulong na ipakita ang mga node sa network na may nais na file.
Pinapayagan ka ng BitTorrent na kusang mag-host ng mga file at i-upload ang mga ito para sa iba pang mga gumagamit na nais ang mga ito. Ito ay napakapopular dahil ito ang una sa uri nito na nag-aalok ng mga insentibo para sa pag-ambag sa network.
Kalamangan
- Maraming mga node ay madaling maidaragdag sa ipinamamahaging sistema, iyon ay, maaari itong mai-scale kung kinakailangan.
- Ang lahat ng mga node sa sistema ng ipinamamahagi ay konektado sa bawat isa. Samakatuwid, ang bawat isa sa mga node ay madaling magbahagi ng data sa iba pang mga node.
- Ang mga mapagkukunan tulad ng mga printer ay maaaring ibahagi sa maraming mga node sa halip na limitahan sa isa lamang.
- Ang kabiguan ng isang node ay hindi humantong sa pagkabigo ng buong sistema ng ipinamamahagi. Ang iba pang mga node ay maaari pa ring makipag-usap sa bawat isa.
Mga Kakulangan
- Ang ilang mga mensahe at data ay maaaring mawala sa network kapag lumipat mula sa isang node patungo sa isa pa.
- Mahirap magbigay ng sapat na seguridad sa mga ipinamamahaging sistema dahil ang parehong mga node at koneksyon ay dapat na ligtas.
- Maaaring maganap ang labis na karga ng network kung ang lahat ng mga node sa ipinamamahaging sistema ay subukan na magpadala ng data nang sabay.
- Ang database na konektado sa mga ipinamamahaging system ay medyo kumplikado at mahirap pamahalaan upang kumpara sa isang solong sistema ng gumagamit.
Mga halimbawa ng mga ipinamamahaging sistema
Ang mga ipinamamahaging sistema ay maaaring magamit sa isang malaking bilang ng mga kaso, tulad ng mga electronic banking system, massively Multiplayer online games, at sensor network.
StackPath
Gumagamit ito ng isang partikular na malaking pamamahagi ng system upang ma-kapangyarihan ang serbisyo ng network ng paghahatid ng nilalaman. Ang bawat isa sa mga punto ng pagkakaroon nito (PoP) ay may mga node, na bumubuo ng isang sistema na ipinamamahagi sa buong mundo.
Inimbak ng StackPath ang pinakabagong at madalas na hiniling na nilalaman sa mga lokasyon na pinakamalapit sa site na ginagamit.
Sa pamamagitan ng pagkakaugnay sa mga virtual na computer, bilang karagdagan sa pagsamantalahan ng bilis at liksi ng state-of-the-art computing, ang sistema ay maaaring hawakan ang libu-libong mga sabay-sabay na kahilingan nang napakabilis.
Internet
Ito ang pinakamalaking sistema ng ipinamamahagi sa buong mundo. Ang sinumang gumagamit ay nararamdaman tulad ng isang solong sistema, kahit na binubuo ito ng milyun-milyong mga computer.
Sa pamamagitan ng konsepto ng abstraction, wala kang ideya kung saan naka-imbak ang data, gaano karaming mga server ang kasangkot, o kung paano nakukuha ang impormasyon sa browser. Tinatanggal ng browser ang pagiging kumplikado ng Internet.
Nalalapat din ito sa mga aplikasyon tulad ng Gmail email o anumang iba pang application na maaaring magamit. Ang bawat tao ay nakikipag-ugnay sa mga ipinamamahaging aplikasyon nang pang-araw-araw.
Mga Sanggunian
- Paul Krzyzanowski (2018). Ipinamamahaging mga System. Kinuha mula sa: cs.rutgers.edu.
- Catherine Paganini (2019). Pangunahin: Ipinamamahaging mga System at Cloud Native Computing. Ang Bagong Stack. Kinuha mula sa: thenewstack.io.
- International University of Valencia (2020). Naipamahagi ang mga system, katangian at pag-uuri. Kinuha mula sa: universidadviu.com.
- David Meador (2018). Ipinamamahaging mga System. Tutorial ng Tutorial. Kinuha mula sa: tutorialspoint.com.
- Robert Gibb (2019). Ano ang isang Ipinamamahaging System? Kinuha mula sa: blog.stackpath.com.
- Stanislav Kozlovski (2018). Isang Ganap na Panimula sa Ipinamamahaging mga System. Libreng Code Camp. Kinuha mula sa: freecodecamp.org.
