Kasutaja:Tomiandrep/Klient-server arhitektuur

Arvutivõrgu diagramm klientide internetiülesest suhtlusest serveriga.

Klient-server arhitektuur on jaotatud rakendusstruktuur, mis jaotab ülesandeid või töökoormust serverite ehk ressursside või teenuse varustajate ja klientide ehk teenuse nõudjate vahel. Tavaliselt kliendid ja serverid suhtlevad üle arvutivõrgu asudes erinevates riistvarades, kuid on ka juhuseid, kus klient ja server võivad olla samas süsteemis. Serveri peremeesarvuti jooksutab ühte või enamat serveri programmi, mis jagavad oma infot ühenduses olevate klientidega. Klient omapoolselt informatsiooni kunagi välja ei jaga, kuid lubab seda vastu võtta ning teeb informatsiooni saamiseks serverile pidevalt päringuid. Näiteid arvutitel baseeruvatest klient-server arhitektuurist on e-mail, läbi võrgu printimine ja WWW (World Wide Web).

Kliendi ja serveri roll muuda

Kliendi-serveri arhitektuuri iseloomustab süsteemisisene erinevate programmide omavaheline suhtlus. Serveripoolne süsteemiosa pakub teenust ühele või rohkemale kliendile, kes esitavad käesoleva funktsiooni suhtes päringuid. Serverid on kategoriseeritud pakutavate teenuste suhtes. Näiteks veebiserver pakub veebilehtede teenust ning failiserver failide jagamise teenust. Informatsiooni jagavaks serveriks võib olla ükskõik milline protsessor või andmekandja, mis suudab jagada informatsiooni päringuid esitavatele klientidele.

Arvuti võib olla klient, server või mõlemat, .. Näiteks üks miniarvuti suudab jooksutada veebiserveri ja failiserveri tarkvara samal ajal ning pakkuda erinevat sisu klientide poolt tehtud päringutele. Kliendi tarkvara suudab suhelda serveri tarkvaraga ka juhul, kui mõlemad asuvad samas arvutis või süsteemis. Erinevate sünkroneerimist vajavate serverite vahelist suhtlust, kutsutakse vahel inter-server või server-to-server kommunikatsiooniks.

Kliendi ja serveri suhtlus muuda

Näide muuda

Kui pangaklient kasutab internetipanga teenust läbi veebibrauseri (kliendi), siis veebibrauser esitab panga veebiserverile päringu. Internetipanga külastaja kasutajatunnus ja salasõnad on hoiustatud andmebaasis, kuhu veebiserver esitab omakorda päringu, kus veebiserver täidab kliendi rolli ning andmebaas serveri ülesannet. Päringuserver kontrollib panga süsteemisiseselt andmete õigsust, mille õigsuse korral tagastatakse informatsioon kliendile ning veebiserver kuvab sisu ekraanile.

Seda tüüpi kliendi-serveri vahelises suhtluses, serverarvuti analüüsib saadud päringut ning tagastab informatsiooni. See on üks enamlevinuid päring-vastus tüüpi mustreid. Kui kõik päringud ja andmed on saanud kinnitust, siis veebiserver kuvab saadud info kasutaja ekraanile.

See näide iseloomustab kliendi ja serveri süsteemisisest eraldi seismist.

Varasem ajalugu muuda

Kõige varasem versioon klient-server tüüpi arhitektuurist on (remote job entry) operatsioonisüsteem 360 (avalikustatud 1964), kus päring andis serverina töötavale arvutile ülesande.

1960ndatel ja 1970ndatel, kui arvutiteadlased ehitasid ARPANET-i Stanfordi Uuringute Instituudis, kasutati ingliskeelseid termineid server-host (või serving host) ja user-host (või using-host) ja need kajastusid varasemates RFC 5 ja RFC 4 dokumentides. Klient-server arhitektuur (inglise k client-server architecture) tuli terminina kasutusele Xerox PARC ajal 1970ndate keskpaigus.

Teadlased kasutasid neid termineid luues Decode-Encode Language (DEL) nimelist programmeerimiskeelt. Programmeerimiskeele eesmärk oli lubada päringuid teisest arvutist (user-host) ning tagastada talle staatusraporteid . Teine DEL-võimekusega arvuti (server-host) võttis vastu päringuid, dekodeeris neid ning tagastas vormindatud informatsiooni esialgsetele päringute esitajatele. DEL programm user-host arvutis võttis vastu tagastatud informatsiooni ning kuvas selle kasutajale ekranile. Sellest tekkis klient-server tüüpi arhitektuur. DEL programmeerimiskeele areng oli alles algus ning 1969. aastal avalikustas United States Department of Defense ARPANET-nimelise lahenduse (interneti eelkäija).

Klient-peremeesarvuti ja server-peremeesarvuti muuda

Klient-peremeesarvuti (client-host) ja server-peremeesarvuti (client-host) on delikaatselt öeldes erinevad terminid kliendi ja serveriga võrreldes. Peremeesarvutiks võib pidada igat võrku ühendatud arvutit, samas kui klient-peremeesarvutit või server-peremeesarvutit võib pidada arvutiks või arvuti programmiks. Server-peremeesarvuti ja klient-peremeesarvuti all mõeldakse alati füüsilist arvutit. Peremeesarvuti on mitmekülgne arvuti, samal ajal kui klient ja server on kõigest peremeesarvutis jooksvad programmid. Klient-server arhitektuuris on server seostatud peamiselt päringutele vastavalt informatsiooni jagamisega.

Varasem kliendi mõiste kasutamist on käsitletud 1978. aastal Xerox PARC arvutiteadlaste Howard Sturgis, James Mitchell ja Jay Israel kirjutatud artiklis "Separating Data from Function in Distributed File System". Artikli autorid selgitasid ajakirja lugejatele kliendi mõiste kasutusvaldkonda ning konteksti eripära. Alates 1992. aastast leidis laialdasemat kasutust ka serveri termin.

Võrdlus P2P-võrguga muuda

Lisaks klient-server arhitektuurile kasutatakse tihti P2P-tüüpi arhitektuuri.

Klient-server arhitektuuris on tavaliselt tsentraalne infrastruktuuri osa (server), mis tegeleb erinevate klientide ja nende päringutega samaaegselt. Vastavalt eelduslikule töökoormusele (samaaegselt päringuid esitavate klientide arvule) peab serveril olema selleks piisav arvutuslik jõudlus, mälu ning piisavas koguses andmemahtu. Serveri kasutuselevõtu mõõtmiseks kasutatakse koormuse tasakaalustus- ja tõrkeotsingusüsteeme.

P2P arhitektuuris kahe või enama arvuti (peers) puhul puudub tsentraalne infrastruktuur. Erinevalt klientidest klient-server või klient-queue-klient arhitektuurist, P2P puhul arvutid suhtlevad teineteisega otse. P2P arhitektuuris kommunikatsiooniprotokolli algoritm tasakaalustab jagajate vahelist koormust ning tagab selle kättesaadavuse isegi väga väheste jagajate puhul. Kui info kättesaadavust ühest arvutist katkeb, jagatakse seda seni, kuni see veel teistest jagajatest (arvutitest) kättesaadav on. Ideaalses olukorras ei pea üksainus arvuti suurt jõudlust saavutama, sest teised P2P süsteemis asuvad üleliigsed arvutid korvavad mistahes vajaminevad mahumuutused. Niipea, kui teiste arvutite kättesaadavus ja mahuvõime muutuvad, muudab P2P algoritm päringut ümber.

Nii klient-server arhitektuuri kui .. arhitektuuri (master-slave) peetake mõlemat P2P süsteemi alamkategooriateks.

Vaata lisaks muuda

Allikad muuda

  1. Sturgis, Howard E.; Mitchell, James George; Israel, Jay E. (1978). "Separating Data from Function in a Distributed File System". Xerox PARC.