Klients-serveris
Datorzinātnē klients-serveris ir programmatūras arhitektūras modelis, kas sastāv no divām daļām - klienta sistēmas un servera sistēmas, kuras sazinās datortīklā vai vienā datorā. Klienta-servera lietojumprogramma ir sadalīta sistēma, kas sastāv gan no klienta, gan servera programmatūras. Klienta-servera lietojumprogramma nodrošina labāku darba slodzes sadales veidu. klienta process vienmēr iniciē savienojumu ar serveri, savukārt servera process vienmēr gaida pieprasījumus no jebkura klienta.
Ja gan klienta process, gan servera process darbojas vienā datorā, to sauc par vienas vietas konfigurāciju.
Cits saistītās programmatūras arhitektūras veids ir pazīstams kā vienādranga (peer-to-peer), jo katrs resursdators vai lietojumprogrammas gadījums var vienlaikus darboties gan kā klients, gan kā serveris (atšķirībā no centralizētiem serveriem klienta-servera modelī) un katram no tiem ir līdzvērtīgi pienākumi un statuss. Vienādranga arhitektūras bieži saīsināti apzīmē ar akronīmu P2P.
Klienta un servera attiecības apraksta attiecības starp klientu un to, kā tas izdara pakalpojuma pieprasījumu serverim un kā serveris var pieņemt šos pieprasījumus, apstrādāt tos un atgriezt pieprasīto informāciju klientam. Klienta un servera mijiedarbību bieži apraksta, izmantojot secības diagrammas. Secības diagrammas ir standartizētas vienotajā modelēšanas valodā.
Mūsdienās plaši tiek izmantotas gan klienta-servera, gan P2P arhitektūras.
Klienta-servera programmatūras arhitektūras pamatveids izmanto tikai divu veidu resursdatorus: klientus un serverus. Šo arhitektūras veidu dažkārt dēvē par divlīmeņu arhitektūru. Divlīmeņu arhitektūra nozīmē, ka klients darbojas kā viens līmenis, bet servera process darbojas kā otrs līmenis.
Klienta-servera programmatūras arhitektūra ir kļuvusi par vienu no tīkla skaitļošanas pamatmodeļiem. Izmantojot klienta-servera modeli, ir uzrakstītas daudzu veidu lietojumprogrammas. Standarta tīkla funkcijas, piemēram, e-pasta apmaiņa, piekļuve tīmeklim un piekļuve datubāzēm, ir balstītas uz klienta-servera modeli. Piemēram, tīmekļa pārlūkprogramma ir klienta programma lietotāja datorā, kas var piekļūt informācijai jebkurā tīmekļa serverī pasaulē.
Vienādranga tīkls.
Uz vienu serveri balstīts tīkls.
Klientu raksturojums
Servera raksturlielumi
- Vienmēr gaidiet pieprasījumu no kāda klienta.
- Apkalpo klientu pieprasījumus un pēc tam atbild klientiem ar pieprasītajiem datiem.
- Serveris var sazināties ar citiem serveriem, lai apkalpotu klienta pieprasījumu.
- Ja pieprasījuma apstrādei ir nepieciešama papildu informācija (vai ir ieviesta drošība), serveris pirms pieprasījuma apstrādes var pieprasīt klientam papildu datus (paroles).
- Galalietotāji parasti tieši nesadarbojas ar serveri, bet izmanto klientu.
Priekšrocības
- Vairumā gadījumu klienta-servera arhitektūra ļauj sadalīt datorsistēmas lomu un pienākumu izpildi starp vairākiem neatkarīgiem datoriem, kas viens otru pazīst tikai ar tīkla starpniecību, tāpēc viena no šī modeļa priekšrocībām ir vieglāka uzturēšana. Piemēram, ir iespējams nomainīt, labot, uzlabot vai pat pārvietot serveri, kamēr tā klienti par to nezina un šīs izmaiņas to neietekmē. Šo neatkarību no izmaiņām sauc arī par iekapsulēšanu.
- Visi dati tiek glabāti serveros, kuriem parasti ir labāka drošības kontrole nekā lielākajai daļai klientu. Serveri var labāk kontrolēt piekļuvi un resursus, lai garantētu, ka datiem var piekļūt un tos mainīt tikai tie klienti, kuriem ir atbilstošas atļaujas.
- Tā kā datu glabāšana ir centralizēta, šo datu atjauninājumus administratoriem ir daudz vieglāk veikt nekā P2P arhitektūrā. P2P arhitektūrā datu atjauninājumi var būt jāizplata un jāpiemēro katram tīkla "vienaudzim", kas ir gan laikietilpīgi, gan saistīti ar kļūdām, jo var būt tūkstošiem vai pat miljoniem vienaudžu.
- Jau ir pieejamas daudzas progresīvas klienta-servera tehnoloģijas, kas izstrādātas, lai nodrošinātu drošību, lietotājam draudzīgas saskarnes un ērtu lietošanu.
- Tas darbojas ar vairākiem dažādu specifikāciju klientiem.
Trūkumi
- Tīklu datplūsmas bloķēšana ir viena no problēmām, kas saistīta ar klienta-servera modeli. Palielinoties vienlaicīgu klientu pieprasījumu skaitam uz konkrētu serveri, serveris var kļūt pārslogots. Pretstatā tam ir P2P tīkls, kura joslas platums faktiski palielinās, pievienojot vairāk mezglu, jo P2P tīkla kopējo joslas platumu var aptuveni aprēķināt kā katra mezgla joslas platuma summu šajā tīklā.
- Salīdzinot klienta-servera modeli ar Peer to Peer modeli, ja viens serveris nedarbojas, klientu pieprasījumus nevar apkalpot, bet P2P tīklos serveri parasti ir sadalīti starp daudziem mezgliem. Pat ja viens vai vairāki mezgli nedarbojas, piemēram, ja mezglam neizdodas lejupielādēt failu, pārējo mezglu rīcībā joprojām jābūt datiem, kas vajadzīgi, lai pabeigtu lejupielādi.
Piemēri
Jautājumi un atbildes
J: Kas ir klienta-servera programmatūras arhitektūra?
A: Klienta-servera programmatūras arhitektūra ir modelis, kas sastāv no divām daļām - klienta sistēmas un servera sistēmas, kuras abas sazinās datortīklā vai vienā datorā.
Q: Kā darbojas klienta-servera lietojumprogramma?
A: Klienta-servera lietojumprogramma ir sadalīta sistēma, ko veido klienta un servera programmatūra. Klienta process vienmēr uzsāk savienojumu ar serveri, bet servera process vienmēr gaida pieprasījumus no jebkura klienta.
J: Kas notiek, ja klienta process un servera process darbojas vienā datorā?
A: Ja gan klienta process, gan servera process darbojas vienā datorā, to sauc par vienas vietas konfigurāciju.
J: Kādas priekšrocības sniedz klienta servera lietojumprogrammas izmantošana?
A: Izmantojot klienta servera lietojumprogrammu, var labāk sadalīt darba slodzi starp vairākiem datoriem vai lietotājiem.
J: Kas iniciē savienojumus klienta servera lietojumprogrammās?
A: Klienta servera lietojumprogrammās savienojumus vienmēr iniciē klienta process.
J: Kas gaida pieprasījumus klienta servera lietojumprogrammās?
A: Servera process vienmēr gaida pieprasījumus klienta servera lietojumprogrammās.
J: Kā vairāki datori vai lietotāji var savstarpēji dalīt darba slodzi?
A: Vairāki datori vai lietotāji var koplietot darba slodzi, izmantojot sadalītu sistēmu, piemēram, klienta servera lietojumprogrammu.