Proučavanje mrežne interakcije u arhitekturi klijent-poslužitelj. Arhitektura klijent-poslužitelj: značajke interakcije. Razine protiv slojeva

DB U ARHITEKTURI KLIJENT-poslužitelj

Plan predavanja

1. Klijenti i poslužitelji lokalne mreže

2. Arhitektura sustava klijent-poslužitelj

3. Modeli radnog opterećenja u arhitekturi klijent/poslužitelj

4. Razine i modeli arhitekture "klijent-poslužitelj".

T. Connolly. Baza podataka. Dizajn, implementacija i podrška. Teorija i praksa.: Per. s engleskog. – M.: ur. kuća "Williams", 2006. - 1440 str.

1 LAN klijenti i poslužitelji

U srcu raširene upotrebe lokalnih mreža računala je dobro poznata ideja dijeljenja resursa. Razvoj ove ideje dovodi do funkcionalnog odvajanja mrežnih komponenti: radnih stanica i poslužitelja lokalne mreže. Lokalni mrežni poslužitelj (poslužitelj) osigurava resurse (usluge) radnim stanicama i/ili drugim poslužiteljima. Radna stanica (klijenti (client)) - računala koja omogućuju pristup mrežnim resursima koje pruža poslužitelj.

Zbog usmjerenosti na pristup otvoreni sustavi, ispravnije je govoriti o logičkim poslužiteljima (što znači skup resursa i softverskih alata koji pružaju usluge preko tih resursa). Primjeri logičkih poslužitelja su:

poslužitelj datoteka koji održava zajedničku pohranu datoteka za sve radne stanice i, ako se to zatraži, datoteka ili podaci se u cijelosti kopiraju na računalo koje zahtijeva;

aplikacijski poslužitelj izvršava aplikacijske dijelove klijent-poslužitelj aplikacija, a također sadrži podatke dostupne klijentima;

2 Arhitektura sustava klijent-poslužitelj

Osnovni principi arhitekture sustava "klijent-poslužitelj" su sljedeći: IS je podijeljen na dva dijela koji se mogu izvoditi u različitim mrežnim čvorovima - klijentski i poslužiteljski dio.

Poslužiteljska strana radi na specijaliziranom hardverskom kompleksu koji uključuje snažan hardver, potreban skup standardnog softvera, sustav za upravljanje bazom podataka i bazu podataka.

Aplikacijski program ili krajnji korisnik s njim komunicira strana klijenta sustav koji u najjednostavnijem slučaju pruža samo supermrežno sučelje. Klijentska strana aplikacije radi na radnom mjestu korisnika, koje je u većini slučajeva osobno računalo.

Klijentski dio sustava po potrebi pristupa serverskom dijelu preko mreže (lokalne ili globalne). Istodobno, sa stajališta klijenta i poslužitelja, interakcija se odvija transparentno. mrežna komponenta koji provodi ovu interakciju uključuje skup potrebnih mrežna oprema, skup softverskih tehnologija koje osiguravaju prijenos podataka između mrežnih čvorova, kao i stvarni softverski sloj sučelja (protokol ili protokoli) za razmjenu zahtjeva i rezultata njihovog izvršenja. Kao glavno sučelje između klijenta i dijelovi poslužitelja SQL je jezik baze podataka.

Najviše jednostavna forma klijent-poslužiteljske arhitekture su podjela računalnog opterećenja između dva odvojena procesa: klijenta i poslužitelja. Štoviše, pet skupina funkcija standardne interaktivne aplikacije raspoređeno je između ova dva procesa:

1) dijaloške funkcije (Presentation Logic, PL) ili komponenta vizualizacije. Komponenta vizualizacije primijenjenog zadatka obavlja korisnički unos različitim sredstvima, kao i prikaz informacija na ekranu i ispis. Komponenta vizualizacije za arhitekturu klijent-poslužitelj uvijek se izvršava na radnom mjestu korisnika (jer on mora promatrati sve rezultate programa). Za organiziranje logike prezentacije uglavnom se koristi GUI (User Interface Graphical) model ili web sučelje;

2) aplikacijske funkcije ili je dio aplikacijskog koda s algoritmima za obradu podataka (Business Logic, BL). Primijenjena logička komponenta rješava jedan ili drugi zadatak vezan uz obradu podataka u jednom ili drugom predmetno područje i predstavlja algoritme reakcije aplikacije na radnje korisnika ili interne događaje, pravila obrade podataka. Ova se komponenta može distribuirati između klijentskog i poslužiteljskog dijela na razne načine ovisno o primijenjenom modelu. Obično je ovaj kod programiran u programskim jezicima visoka razina: C, C++, Visual Basic, Object Pascal itd.;

3) funkcije obrade podataka unutar aplikacije (Database Logic, DL) - ovo je dio aplikacijskog koda koji je povezan s odabirom i manipulacijom podataka (podatke kontrolira sam DBMS). Podjezik je SQL.

Tipična struktura klijent-poslužitelj aplikacije

4) kontrolne funkcije izvori informacija(Sustav upravitelja baze podataka, DBMS). Komponenta za pohranu baze podataka izvodi fizičke operacije povezane s pohranjivanjem podataka, čitanjem informacija iz baze podataka i pisanjem u nju, vezano uz primijenjeni zadatak koji rješava aplikacija. U arhitekturi klijent-poslužitelj, ova komponenta uvijek radi na poslužitelju;

5) uslužne funkcije koje imaju ulogu poveznica između prethodnih skupina funkcija.

3 modela radnog opterećenja klijent/poslužitelj

Sustavi "klijent-poslužitelj" mogu se oslanjati na nekoliko vrsta raspodjele dužnosti između klijenta i poslužitelja:

· "inteligentni" klijenti (debeli klijent - tanki poslužitelj);

· "inteligentni" poslužitelj (tanki klijent - debeli poslužitelj);

· mješoviti sustavi;

· višerazinski sustavi.

DIV_ADBLOCK80">

"Pametni" poslužitelji. Prijenosom svih poslovnih pravila na SQL Server, gdje su implementirana u obliku pohranjenih procedura i okidača baze podataka, nastaje “inteligentni” server, koji je također odgovoran za pohranu i rad baze podataka. Inteligencija poslužitelja također se očituje u sposobnosti manipuliranja podacima (izvršavanje SQL upita) i vraćanja rezultirajućeg skupa podataka klijentu.

Na klijentskom računalu implementirana je samo logika prezentacije podataka.

Prednosti:

· povećanje performansi IS-a: poslovna logika radi u istom adresnom prostoru kao i kod za pristup bazi podataka, a dodatno je usko integrirana s mehanizmom za pronalaženje podataka. To znači da se podaci ne moraju premještati ili kopirati prije obrade, što znači mrežni promet je minimiziran;

Lakše je osigurati integritet podataka na poslužitelju;

· po potrebi se poslovna logika mijenja centralno, bez mijenjanja klijenata.

Mane:

Povećani zahtjevi za resursima poslužitelja, gdje se obavljaju svi zahtjevi i manipulacije podacima.

mješoviti sustavi. Moguće su i mješovite opcije, s prednostima inteligentnih poslužitelja i inteligentnih klijenata. Poslužitelj obično postavlja DBMS, logiku manipulacije podacima i onaj dio poslovne logike koji je zajednički mnogim klijentima. Na klijentu se implementira logika prezentacije podataka i dio poslovne logike koji je specifičan za ovog klijenta.

Prednosti mješovitih sustava:

· poslužiteljski kod je istovremeno dostupan mnogim klijentima, što smanjuje opterećenje pri izvršavanju iste vrste zahtjeva;

Performanse klijenta manje ovise o mrežnom prometu.

Mane:

· Poslovna logika je raspoređena između klijenta i poslužitelja, a prilikom nadogradnje aplikacije potrebno je distribuirati nove verzije klijentskog dijela široj publici.

Slojeviti sustav(ponekad se naziva i tri razine) omogućuje vam odvajanje korisničko sučelje, poslovna pravila i baza podataka. U slojevitom sustavu, poslovna pravila se postavljaju na aplikacijski poslužitelj − softverska komponenta, koji se nalazi između poslužitelja baze podataka i klijenata. Klijent je odgovoran samo za sučelje s korisnikom, poslužitelj baze podataka je odgovoran za održavanje i rad same baze podataka. Međusloj je poslužitelj za korisnika i klijent za sustav upravljanja bazom podataka. Klijenti se po potrebi obraćaju aplikacijskom poslužitelju, koji pak pristupa poslužitelju baze podataka za podatke potrebne za realizaciju zahtjeva klijenta.

Prednosti višeslojnih sustava:

odvajanje komponenti sučelja, poslovnih pravila i pohrane podataka, što povećava performanse poslužitelja baze podataka i njegovu zaštitu od neovlaštenog pristupa;

centralizirana izmjena poslovnih pravila;

Mane:

mrežni promet raste.

Takve sustave mnogo je teže razviti, implementirati i koristiti te zahtijevaju značajne troškove i visoko kvalificirano osoblje.

4 Slojevi i modeli arhitekture"klijent-poslužitelj"

Što se tiče količine sastavni dijelovi sustavi klijent-poslužitelj dijele se na dvorazinske i trorazinske.

Dvoslojni sustavi sastoje se samo od klijenta i poslužitelja. Dvoslojni modeli arhitekture klijent-poslužitelj uključuju:

1) model poslužitelja datoteka (FS-model);

2) model daljinskog pristupa (RDA model);

3) model aktivnog poslužitelja (DBS model).

Troslojni model predstavljen je nekom vrstom "klijent-poslužitelj" arhitekture koja se temelji na shemi "klijent - aplikacijski poslužitelj". Ova arhitektura omogućuje fleksibilniju raspodjelu funkcija sustava i opterećenja između komponenti hardverskog i softverskog sustava, a također može smanjiti zahtjeve za resursima za korisničke radne stanice.

Arhitektura poslužitelja datoteka

U arhitekturi datotečnog poslužitelja (File Server, FS-model) sve glavne funkcije aplikacije informacijskog sustava (logika prezentacije, poslovna logika te funkcije obrade i upravljanja podacima) nalaze se na klijentu (slika 2).

Poslužitelj sadrži podatkovne datoteke i pristup datotekama je podržan.

U ovom modelu klijent kontaktira poslužitelj sa zahtjevom za podacima. Klijentov zahtjev je formuliran u YMD naredbama. DBMS prevodi ovaj zahtjev u niz naredbi datoteke, Sustav za upravljanje datotekama (FMS) čita tražene podatke iz baze podataka i prenosi te podatke blok po blok klijentskoj aplikaciji, zatim DBMS analizira primljene informacije o klijentu i ako primljeni blok ne sadrži odgovor na zahtjev, tada se donosi odluka o prijenosu sljedećeg bloka informacija itd. Zapravo, FS model pretpostavlja izvanmrežni rad IC softver uključen različite strojeve na liniji. Komponente IS-a međusobno djeluju samo zahvaljujući prisutnosti zajednička pohrana podaci. Naravno, takva pohrana bi trebala biti dobro dizajnirana baza podataka kojom upravlja DBMS koji podržava FS model, na primjer, Informix SE DBMS. Ova vrsta DBMS-a ne može se smatrati "pravim poslužiteljem".

Model arhitekture poslužitelja datoteka

Kada se koristi FS model, kopija DBMS-a se stvara za svaku korisnički pokrenutu DBMS sesiju koja se izvodi na istom procesoru kao i korisnički proces.

Općenito, u datotečno-poslužiteljskoj IS arhitekturi imamo "debeli" klijent i vrlo "tanak" poslužitelj u smislu da se gotovo sav posao obavlja na strani klijenta, a od poslužitelja je potrebno samo dovoljno prostora na disku .

Nedostaci arhitekture poslužitelja datoteka uključuju:

veliki mrežni promet, koji je povezan s prijenosom preko mreže mnogih blokova i datoteka potrebnih klijentskim aplikacijama;

· ograničen skup naredbi za manipulaciju podacima, zapravo, to su samo naredbe za datoteke;

niske performanse (ovisi o performansama mreže, poslužitelja, klijenta);

Slaba sposobnost povezivanja novih kupaca;

Nedostatak naprednih alata za zaštitu podataka (samo na razini datotečnog sustava).

Nedvojbene prednosti uključuju

Visoka učinkovitost rada sa male količine podataka u načinu rada za jednog korisnika.

pogodnost centralizirane kontrole pristupa;

· niska cijena razvoj događaja;

· velika brzina razvoj događaja;

· Ne visoka cijena ažuriranja i promjene softvera.

FS model ne zadovoljava moderne ideje o tehnologiji "klijent-poslužitelj" u općeprihvaćenom smislu, stoga se ova metoda organiziranja distribuiranog računarstva smatra zasebnom arhitekturom poslužitelja datoteka.

Model daljinskog pristupa na podatke RDA ( Daljinski Podaci Pristup , RDA )

Povijesno gledano, ovaj model je prvi razvijen. U ovom modelu poslužiteljski dio samo pohranjuje podatke, ovdje je smještena jezgra DBMS-a i implementirana je logika manipulacije podacima, a klijentski dio implementira svu logiku aplikacije. U tom slučaju klijent će poslužitelju poslati zahtjeve za primanje podataka, a poslužitelj će klijentu vratiti određene uzorke. Najčešći način komunikacije između klijenta i poslužitelja u ovom slučaju je SQL ( strukturirani jezik queries) je standardni neproceduralni jezik orijentiran na podatke.

Klijent je primjetno "izgubio na težini" u odnosu na FS model, ali su funkcije poslužitelja znatno proširene, mrežni promet se smanjio, a najvažnija prednost RDA modela: pojavio se SQL jezik s proširenim skupom definicije podataka i naredbe za manipulaciju podacima, koje su objedinile sučelje klijent-poslužitelj.

RDA arhitektonski model

Prednosti RDA modela:

· prijenos poslovne logike na klijenta značajno rasterećuje poslužitelj baze podataka, minimizirajući ukupan broj procesa u operativnom sustavu;

· poslužitelj baze podataka je oslobođen funkcija koje su mu neuobičajene, što znači da se procesor može u potpunosti opteretiti operacijama za obradu zahtjeva, podataka i transakcija;

· Opterećenje mreže naglo se smanjuje, budući da se preko nje od klijenata do poslužitelja ne prenose I/O zahtjevi u terminologiji datoteka, već SQL zahtjevi, a njihov je volumen znatno manji. Kao odgovor na zahtjeve klijent dobiva samo podatke, relevantan za upit, a ne blokovi datoteka, kao u FS modelu.

Nedostaci RDA modela:

još uvijek visok mrežni promet, osobito kada u velikom broju klijentima i njihovim intenzivan rad interaktivno;

Nepotrebno dupliciranje koda aplikacije, kao što je ponavljanje poslovne logike za svakog klijenta;

· kompliciranje klijentskih aplikacija u smislu kontrole nad informacijskim resursima. Poslužitelj ima pasivnu ulogu. Doista, na primjer, ako trebamo kontrolirati osiguranu zalihu robe u skladištu, tada svaka aplikacija koja je povezana s promjenom stanja skladišta, nakon izvođenja operacija izmjene podataka koje simuliraju prodaju ili uklanjanje robe iz skladište, mora provjeriti iznos stanja, te u slučaju da je manji od sigurnosne zalihe, formirati odgovarajući zahtjev za nabavu tražene robe. To komplicira klijentsku aplikaciju

Model poslužitelja baze podataka (ponekad se naziva aktivni poslužitelj)

Model poslužitelja (Data Base Server, DBS) je koncept prema kojem se komponenta aplikacije (poslovna logika) djelomično ili u potpunosti nalazi na poslužitelju baze podataka (slika 4). Poslovna logika implementirana je u obliku pohranjenih programskih jedinica (PRE), okidača, prilagođenih tipova podataka koji su pohranjeni u bazi podataka i njima upravlja poslužitelj. Baza podataka također prikuplja podatke i tvori bazu metapodataka (MDB). Klijentska aplikacija obraća se poslužitelju naredbom za pokretanje PrE, a poslužitelj je po potrebi izvršava i upisuje promjene u bazu podataka. Poslužitelj vraća rezultat zahtjeva klijentu, bilo za izlaz na periferni uređaj, bilo za izvršavanje dijela poslovne logike koja se nalazi na klijentu. Ovakvim načinom raspodjele obrade podataka mrežni promet se drastično smanjuje.

Okidač - mehanizam za praćenje posebnih događaja koji su povezani sa stanjem baze podataka. Okidač u bazi podataka je kao neka vrsta prekidača koji radi kada se dogodi određeni događaj u bazi podataka. Jezgra DBMS-a prati sve događaje koji uzrokuju kreirane i opisane okidače u bazi podataka, a kada se odgovarajući događaj dogodi, poslužitelj pokreće odgovarajući okidač => okidač je program koji radi na bazi podataka i poziva pohranjene procedure.

Ovaj model poslužitelja je aktivan, jer ne samo klijent, već i sam poslužitelj koristi mehanizam okidača.
Prednosti:

DBS model podržava većinu moderni DBMS: Oracle, Sybase, Ingres, Informix, MS SQL Server ipak funkcionalnost imaju različite.


Prednosti DBS modela:

Mogućnost centralizirane administracije primijenjenih funkcija;

· smanjenje mrežnog prometa zbog mogućnosti pozivanja procedura na daljinu;

· mogućnost razdvajanja procedura po nekoliko aplikacija i ušteda resursa računala korištenjem jednom kreiranog plana izvršavanja SQL upita. (budući da su pohranjene procedure i okidači pohranjeni u rječniku baze podataka i može ih koristiti nekoliko klijenata => smanjeno je dupliranje algoritama za obradu podataka u različitim klijentskim aplikacijama).

Mane:

Značajke poslužitelja:

1. Prati događaje povezane s opisanim okidačima;

2. Omogućuje automatsko aktiviranje okidača kada se dogode povezani događaji;

3. Osigurava izvršenje internog programa svakog okidača;

4. Pokreće pohranjene procedure na zahtjeve korisnika;

5. Pokreće pohranjene procedure iz okidača;

6. Vraća tražene podatke klijentu;

7. Omogućuje sve funkcije DBMS-a: pristup podacima, kontrolu i podršku cjelovitosti podataka u bazi podataka, kontrolu pristupa, osiguranje ispravnog rada svih korisnika iz jedinstvene baze podataka.

Doista, poslužitelj obavlja veliki skup funkcija i služi mnogim klijentima. Kako bi se rasteretio poslužitelj, razvijeni su modeli s više razina, a posebno model s tri razine.

Poslužitelj aplikacija

Poslužitelj aplikacija (Primjena poslužitelj, KAO) - vrsta višerazinske arhitekture "klijent-poslužitelj", koja se temelji na shemi "klijent - aplikacijski poslužitelj".

Ovaj model uvodi dodatni srednji sloj između klijenta i poslužitelja. Ovaj srednji sloj sadrži jedan ili više aplikacijskih poslužitelja. Otuda i identičan naziv – „model aplikacijskog poslužitelja“ AS (Application Server).

U ovom modelu sve komponente IS-a podijeljene su na tri izvođača.

Klijent implementira korisničko sučelje, osigurava prezentacijsku logiku aplikacije, pokreće lokalizirani klijentski stroj klijentski aplikacijski kod koji obavlja komunikacijske funkcije pristupa lokalnoj ili globalna mreža, autorizacijsko sučelje, algoritmi šifriranja, provjera valjanosti ulaznih vrijednosti i usklađenosti s formatom, jednostavne operacije (sortiranje, grupiranje, brojanje vrijednosti) s podacima koji su već učitani na komponenti sučelja (obično grafičkoj), odnosno stvarna aplikacija za krajnji korisnik. Klijent i aplikacijski poslužitelj komuniciraju putem API-ja, a aplikacijski poslužitelj i poslužitelj baze podataka komuniciraju putem SQL upitnog jezika.

Model aplikacijskog poslužitelja

Aplikacijski poslužitelji izvršavaju najčešća poslovna pravila, podržavaju okruženje domene i omogućuju razmjenu poruka između komponenti aplikacije. Aplikacijske funkcije poslužitelja aplikacija dizajnirane su kao zasebne usluge ili usluge (Service). Usluga pruža neke usluge svim programima koji ih žele i mogu koristiti. U arhitekturi IS-a može postojati više aplikacijskih poslužitelja, a svaki od njih pruža određeni skup usluga. Svaki program koji ih koristi tretira se kao AC (Application Client) klijent aplikacijskog poslužitelja. Detalji implementacije aplikacijskih funkcija u aplikacijskom poslužitelju potpuno su skriveni od aplikacijskog klijenta. AS upućuje zahtjev određenoj usluzi, a ne AS-u. Zahtjevi se stavljaju u red čekanja AS procesu, koji ih prosljeđuje na obradu određenom servisu prema utvrđenim prioritetima.

Poslužitelji baze podataka u ovom modelu bave se isključivo funkcijama DBMS-a.

U najjednostavnijoj konfiguraciji aplikacijski poslužitelj može se fizički spojiti s poslužiteljem baze podataka na jednom računalu na koje se preko mreže povezuje jedan ili više klijenata.

U "ispravnoj" (sa stajališta sigurnosti, pouzdanosti, skaliranja) konfiguraciji, poslužitelj baze podataka nalazi se na namjenskom računalu (ili klasteru), na koje je mrežno povezan jedan ili više aplikacijskih poslužitelja, na koje, zauzvrat, klijenti se povezuju putem mreže.

Prednosti AS-modela:

Poboljšana izvedba rasterećenjem poslužitelja;

Smanjenje troškova rada IS-a;

Mogućnost kompliciranja poslovne logike bez gubitka performansi;

Poboljšanje svojstava prenosivosti i skalabilnosti IS-a korištenjem standardni jezici programiranje, kao što su C, C++, Borland Pascal, Small Talk, Java, za implementaciju većine poslovne logike.

· klijentski softver ne zahtijeva administraciju;

konfigurabilnost - izolacija razina jedna od druge omogućuje brzu i jednostavnu rekonfiguraciju sustava u slučaju kvarova ili kada planirano održavanje na jednoj od razina

visoka sigurnost;

visoka pouzdanost;

niski zahtjevi za brzinom kanala (mreže) između klijenata i aplikacijskog poslužitelja;

zahtjevi niske izvedbe i Tehničke specifikacije kupaca, što rezultira smanjenjem njihove vrijednosti.

Mane:

složenost poslužiteljskog dijela i, posljedično, rastu troškovi administracije i održavanja;

veća složenost izrade aplikacija;

teže ih je implementirati i administrirati;

· visoke zahtjeve na performanse aplikacijskih poslužitelja i poslužitelja baze podataka, a samim time i visoku cijenu poslužiteljski hardver;

· visoki zahtjevi za brzinom kanala (mreže) između poslužitelja baze podataka i aplikacijskih poslužitelja.

Trenutno popularna arhitektura web sustava može se prikazati u troslojnoj verziji.

Računala i programi koji su dio informacijskog sustava u pravilu nisu jednaki. Neki od njih posjeduju resurse (datotečni sustav, procesor, pisač, baza podataka itd.), drugi imaju mogućnost pristupa tim resursima. Računalo (ili program) koje upravlja resursom naziva se poslužitelj ovog resursa (datotečni poslužitelj, poslužitelj baze podataka, računalni poslužitelj...). Klijent i poslužitelj bilo kojeg resursa mogu se nalaziti i na istom računalu i na razna računala povezani mrežom.

U okviru višerazinskog prikaza računalnih sustava mogu se razlikovati tri skupine funkcija usmjerenih na rješavanje različitih podzadataka:

  1. funkcije unosa i prikaza podataka (omogućuju interakciju s korisnikom);
  2. aplikacijske funkcije specifične za određeno predmetno područje;
  3. funkcije upravljanja resursima ( sustav datoteka, baza podataka itd.)

Sl. 1. Komponente mrežne aplikacije

Implementacija ovih funkcija uglavnom se osigurava softverskim alatima koji se mogu predstaviti kao međusobno povezane komponente (), gdje:

  • komponenta prikaza odgovoran za korisničko sučelje;
  • komponenta aplikacije implementira algoritam za rješavanje konkretnog problema;
  • kontrolna komponenta resurs omogućuje pristup potrebnim resursima.

Autonomni sustav (računalo koje nije spojeno na mrežu) predstavlja sve te komponente kako na različitim razinama (OS, uslužni programi i uslužni programi, aplikacijski softver) tako i na razini aplikacije (nije tipično za moderni programi). Tako je i s mrežom - ona predstavlja sve te komponente, ali u općenitom slučaju raspoređene između čvorova. Zadatak je pružiti umrežavanje između ovih komponenti.

Klijent-poslužiteljska arhitektura definira generalni principi organizacija interakcije u mreži, gdje postoje poslužitelji, čvorovi-pružatelji nekih specifičnih funkcija (usluga) i klijentima, potrošači ovih funkcija.

Praktične izvedbe takve arhitekture nazivaju se klijent-poslužitelj tehnologije. Svaka tehnologija definira vlastita ili koristi postojeća pravila za interakciju između klijenta i poslužitelja koja su tzv protokol razmjene (protokol interakcije).

U svakoj mreži (čak i peer-to-peer) izgrađenoj na modernim mrežnim tehnologijama postoje elementi interakcija klijent-poslužitelj, najčešće na temelju dvoslojna arhitektura. Dvoslojni (dvoslojni, 2-slojni) naziva se zbog potrebe raspodjele tri Osnovni, temeljni komponente između dva čvora(klijent i poslužitelj).

sl.2. Dvoslojna arhitektura klijent-poslužitelj

Dvoslojna arhitektura koristi se u sustavima klijent-poslužitelj, gdje poslužitelj odgovara na zahtjeve klijenta izravno iu cijelosti, koristeći samo vlastite resurse. Oni. poslužitelj ne poziva mrežne aplikacije trećih strana i ne pristupa resursi trećih strana izvršiti neki dio zahtjeva ()

Položaj komponenti na strani klijenta ili poslužitelja određuje sljedeće glavne modele njihove interakcije unutar dvoslojne arhitekture:

  • terminalski poslužitelj— distribuirani prikaz podataka;
  • poslužitelj datoteka— pristup udaljenoj bazi podataka i resursima datoteka;
  • poslužitelj baze podataka— daljinsko predstavljanje podataka;
  • aplikacijski poslužitelj- daljinska aplikacija.

Navedeni modeli s varijacijama prikazani su na.

sl.3. Modeli interakcije klijent-poslužitelj

Povijesno gledano, prvi se pojavio model distribuiranog prikaza podataka (model terminalskog poslužitelja). Implementiran je na univerzalno računalo (mainframe), koje je imalo ulogu poslužitelja, a na njega su bili povezani alfanumerički terminali. Korisnici su unosili podatke s tipkovnice terminala, koji su potom prebačeni u glavno računalo i tamo obrađeni, uključujući i formiranje "slike" s rezultatima. Ova "slika" vraćena je korisniku na zaslon terminala.

Pojavom osobnih računala i lokalnih mreža implementiran je model poslužitelja datoteka koji je omogućio pristup resursima datoteka, uključujući udaljenu bazu podataka. U ovom slučaju, namjenski host je poslužitelj datoteka koji ugošćuje datoteke baze podataka. Klijenti pokreću aplikacije koje kombiniraju prezentacijsku komponentu i aplikacijsku komponentu (DBMS i aplikacijski program) koje koriste povezanu udaljenu bazu podataka kao lokalnu datoteku. U ovom slučaju, protokoli razmjene predstavljaju skup poziva niske razine operacija datotečnog sustava.

Ovaj model pokazao je svoju neučinkovitost zbog činjenice da pri aktivnom radu s tablicama baze podataka, ogroman pritisak na mrežu. Djelomično rješenje je podrška replikacije (replikacije) tablica i upita. U ovom slučaju, na primjer, kada se podaci mijenjaju, ne ažurira se cijela tablica, već samo njezin izmijenjeni dio.

Pojavom specijaliziranih DBMS-ova postalo je moguće implementirati još jedan model pristupa udaljenoj bazi podataka - model poslužitelja baze podataka. U ovom slučaju, DBMS motor radi na poslužitelju, aplikacijski program na klijentu, a protokol razmjene je osiguran korištenjem SQL jezika. Ovaj pristup, u usporedbi s poslužiteljem datoteka, dovodi do smanjenja opterećenja mreže i unifikacije sučelja klijent-poslužitelj. Međutim, mrežni promet ostaje prilično visok, a zadovoljavajuća administracija aplikacija još uvijek je nemoguća, budući da su različite funkcije kombinirane u jednom programu.

S razvojem i implementacijom mehanizma pohranjene procedure na razini poslužitelja baze podataka, koncept of aktivni poslužitelj baze podataka. U ovom slučaju, neke funkcije komponente aplikacije implementirane su kao pohranjene procedure koje se izvode na strani poslužitelja. Ostatak logike aplikacije izvodi se na strani klijenta. Protokol interakcije je odgovarajući dijalekt SQL jezika.

Prednosti ovog pristupa su očite:

  • moguća je centralizirana administracija aplikacijskih funkcija;
  • smanjenje troškova vlasništva sustava (TOC, total cost of ownership) iznajmljivanjem poslužitelja, umjesto kupnjom istog;
  • značajno smanjenje mrežnog prometa (jer se ne prenose SQL upiti, već pozivi pohranjenim procedurama).

Glavni nedostatak su ograničeni razvojni alati za pohranjene procedure u usporedbi s jezicima visoke razine.

Implementacija aplikativne komponente na poslužiteljskoj strani predstavlja sljedeći model - aplikacijski poslužitelj. Prijenos funkcionalnosti aplikacijske komponente na poslužitelj smanjuje zahtjeve konfiguracije klijenta i pojednostavljuje administraciju, ali postavlja povećane zahtjeve za performanse poslužitelja, sigurnost i pouzdanost.

Trenutačno postoji tendencija povratka na ono s čime je arhitektura klijent-poslužitelj započela - na centralizaciju računarstva temeljenu na modelu terminal-poslužitelj. U modernoj reinkarnaciji, terminali se razlikuju od svojih alfanumeričkih predaka po tome što, uz minimum softvera i hardvera, predstavljaju multimedijske mogućnosti(uklj. grafičko korisničko sučelje). Rad terminala osigurava server visokih performansi na kojem je smješteno sve, do upravljačkih programa virtualnih uređaja, uključujući upravljačke programe video podsustava.

sl.4. Troslojna arhitektura klijent-poslužitelj

Drugi trend u tehnologijama klijent-poslužitelj povezan je sa sve većom upotrebom distribuiranog računarstva. Implementirani su na temelju modela aplikacijskog poslužitelja, gdje je mrežna aplikacija podijeljena na dva ili više dijelova, od kojih se svaki može izvršiti na zasebno računalo. Namjenski dijelovi aplikacije međusobno komuniciraju razmjenom poruka u unaprijed dogovorenom formatu. U ovom slučaju postaje dvoslojna arhitektura klijent-poslužitelj troslojni (troslojni, 3-slojni).

U pravilu aplikacijski poslužitelj postaje treća poveznica u troslojnoj arhitekturi, tj. komponente su raspoređene na sljedeći način ():

  1. Prikaz podataka je na strani klijenta.
  2. Aplikacijska komponenta - na namjenskom aplikacijskom poslužitelju (kao opcija, obavlja funkcije međuprograma).
  3. Upravljanje resursima - na poslužitelju baze podataka, koji predstavlja tražene podatke.

sl.5. Višeslojna (N-slojna) arhitektura klijent-poslužitelj

Troslojna arhitektura može se proširiti na višeslojni (N-sloj, višeslojni) dodjelom dodatnih poslužitelja od kojih će svaki pružati svoje usluge i koristiti usluge drugih poslužitelja različite razine. Apstraktni primjer modela s više veza prikazan je u.

Usporedba arhitekture

Dvoslojna arhitektura je jednostavnija jer sve zahtjeve poslužuje jedan poslužitelj, ali je upravo zbog toga manje pouzdana i postavlja veće zahtjeve na performanse poslužitelja.

Troslojna arhitektura je kompliciranija, ali zbog činjenice da su funkcije raspoređene između poslužitelja druge i treće razine, ova arhitektura predstavlja:

  1. Visok stupanj fleksibilnosti i skalabilnosti.
  2. Visoka sigurnost(jer se sigurnost može definirati za svaku uslugu ili sloj).
  3. Visoke performanse(budući da su zadaci raspoređeni između poslužitelja).

Tehnologije klijent-poslužitelj

Koristi se arhitektura klijent-poslužitelj veliki brojevi mrežne tehnologije koje se koriste za pristup raznim mrežne usluge. Pogledajmo na brzinu neke vrste takvih usluga (i poslužitelja).

Web poslužitelji U početku je omogućen pristup hipertekstualnim dokumentima od strane HTTP protokol(Huper protokol za prijenos teksta). Sada podržavaju napredne značajke, posebno rad s binarne datoteke(slike, multimedija itd.). Aplikacijski poslužitelji Dizajniran za centralizirano rješavanje primijenjenih problema u određenom predmetnom području. Da biste to učinili, korisnici imaju pravo trčanje poslužiteljski programi za izvršenje. Korištenje aplikacijskih poslužitelja smanjuje zahtjeve konfiguracije klijenta i pojednostavljuje cjelokupno upravljanje mrežom. Poslužitelji baze podataka Poslužitelji baza podataka koriste se za obradu zahtjeva korisnika za SQL jezik. U ovom slučaju, DBMS se nalazi na poslužitelju, na koji se povezuju klijentske aplikacije. Datotečni poslužitelji Datotečni poslužitelj trgovine informacije u obliku datoteka i korisnicima omogućuje pristup istima. Datotečni poslužitelj u pravilu pruža i određenu razinu zaštite od neovlaštenog pristupa. Proxy poslužitelj Prvo, djeluje kao posrednik, pomažući korisnicima u dobivanju informacija s Interneta dok osigurava mrežu. Drugo, pohranjuje često tražene informacije u predmemoriju za lokalni disk, brzo ga isporučujući korisnicima bez ponovnog pristupa internetu. Vatrozidi(vatrozidi) Vatrozidi, analiziranje i filtriranje prolaznog mrežnog prometa kako bi se osigurala mrežna sigurnost. Mail poslužitelji Pružaju usluge slanja i primanja elektroničkih poruka. Poslužitelji udaljenog pristupa (RAS) Ovi sustavi omogućuju povezivanje s mrežom putem dial-up linija. udaljeni zaposlenik može koristiti korporativne LAN resurse spajanjem na njega pomoću običnog modema.

Ovo je samo nekoliko tipova čitave raznolikosti klijent-poslužiteljskih tehnologija koje se koriste u lokalnim i globalnim mrežama.

Za pristup određenim mrežnim uslugama koriste se klijenti čije mogućnosti karakteriziraju koncept "debljine". Definira hardversku konfiguraciju i softver koji korisnik ima. Razmotrite moguće granične vrijednosti:

"Tanki" klijent Ovaj pojam definira klijenta čiji su računalni resursi dovoljni samo za pokretanje potrebne mrežne aplikacije putem web sučelja. Korisničko sučelje takve aplikacije formira se pomoću statički HTML (izvršenje JavaScripta nije predviđeno), sva logika aplikacije izvodi se na poslužitelju.
Za rad tankog klijenta dovoljno je samo omogućiti pokretanje web preglednika u čijem se prozoru izvode sve radnje. Iz tog razloga, web preglednik se često naziva "univerzalni klijent". "Debeli" klijent Ovo je radna stanica ili osobno računalo koje pokreće vlastiti disk. operacijski sustav i imajući potreban set softver. DO mrežni poslužitelji"debeli" klijenti prijavljuju se uglavnom za dodatne usluge(na primjer, pristup web poslužitelju ili korporativnoj bazi podataka).
"Debeli" klijent također znači klijentsku mrežnu aplikaciju koja radi pod lokalnim OS-om. Takva aplikacija kombinira komponentu prezentacije podataka (grafičko korisničko sučelje OS-a) i aplikacijsku komponentu (računsku snagu klijentskog računala).

U U zadnje vrijeme sve se više koristi još jedan izraz: "bogati"-klijent . "Rich"-client je svojevrsni kompromis između "debelog" i "tankog" klijenta. Kao i "tanki" klijent, "bogati" klijent također pruža GUI već opisano XML alati i uključuje neke bogate klijentske funkcije (npr. sučelje za povlačenje i ispuštanje, kartice, više prozora, padajući izbornici itd.)

Aplikacijska logika "bogatog" klijenta također je implementirana na poslužitelju. Podaci se šalju na standardni format razmjena, na temelju istog XML-a ( SOAP protokoli, XML-RPC) i interpretira ih klijent.

Neki od glavnih protokola obogaćenih klijenata temeljenih na XML-u navedeni su u nastavku:

Zaključak

Tako, Glavna ideja arhitekture klijent-poslužitelj je podijeliti mrežnu aplikaciju u nekoliko komponenti, od kojih svaki implementira određeni skup usluga. Komponente takve aplikacije mogu raditi na različita računala, obavljanje funkcija poslužitelja i/ili klijenta. To poboljšava pouzdanost, sigurnost i performanse. mrežne aplikacije i mreže općenito.

Kontrolna pitanja

  1. Što je glavno ideja K-S interakcije?
  2. Koja je razlika između "arhitekture klijent-poslužitelj" i "tehnologije klijent-poslužitelj"?
  3. Nabrojite komponente K-S interakcije.
  4. Koje zadatke obavlja komponenta pogleda u CS arhitekturi?
  5. Koja je svrha mogućnosti pristupa bazi podataka kao zasebne komponente u CS arhitekturi?
  6. Zašto je poslovna logika izdvojena kao posebna komponenta u K-S arhitekturi?
  7. Navedite modele interakcije klijent-poslužitelj.
  8. Opišite model poslužitelja datoteka.
  9. Opišite model poslužitelja baze podataka.
  10. Opišite model "poslužitelja aplikacija".
  11. Opišite model "terminalnog poslužitelja".
  12. Navedite glavne vrste poslužitelja.

Stalna adresa ove stranice:

Za rješavanje ovih problema koriste se višerazinske (tri ili više razina) klijent-poslužiteljske arhitekture.

Takve arhitekture inteligentnije dodjeljuju module za obradu podataka, koji u ovom izvode se na jednom ili više njih odvojeni poslužitelji. ove softverski moduli djeluje kao poslužitelj za korisnička sučelja i klijent za poslužitelje baze podataka. Osim toga, različiti poslužitelji aplikacija mogu međusobno komunicirati kako bi točnije podijelili sustav u funkcionalne blokove koji obavljaju određene uloge.

Na primjer, možete odabrati poslužitelj za upravljanje osobljem koji će obavljati sve funkcije potrebne za upravljanje osobljem. Povezivanjem zasebne baze podataka s njim, možete sakriti sve detalje implementacije ovog poslužitelja od korisnika, dopuštajući im pristup samo njegovim javnim funkcijama. Osim toga, takav sustav je vrlo lako prilagoditi Webu, budući da je lakše razviti html forme za korisnički pristup određenim funkcijama baze podataka nego svim podacima.

U troslojnoj arhitekturi klijent nije preopterećen funkcijama obrade podataka, već obavlja svoju glavnu ulogu kao sustav za prezentiranje informacija koje dolaze s aplikacijskog poslužitelja. Ovo se sučelje može implementirati pomoću standardnim sredstvima Web tehnologije - preglednik, CGI i Java. Ovo smanjuje količinu podataka koji se prenose između klijenta i aplikacijskog poslužitelja, što vam omogućuje povezivanje klijentska računalačak i preko sporih linija kao što su telefonski kanali. Osim toga, strana klijenta može biti toliko jednostavna da se u većini slučajeva implementira pomoću univerzalni preglednik. Ali ako ga ipak morate promijeniti, onda se ovaj postupak može provesti brzo i bezbolno. Troslojna arhitektura klijent-poslužitelj omogućuje preciznije dodjeljivanje korisničkih dopuštenja, jer oni dobivaju prava pristupa ne samoj bazi podataka, već određenim funkcijama aplikacijskog poslužitelja. Ovo povećava sigurnost sustava (u usporedbi s uobičajenom arhitekturom) ne samo od namjernog napada, već i od pogrešnih radnji osoblja.

Na primjer, razmotrite sustav čiji različiti dijelovi rade na nekoliko udaljeni prijatelj s drugih poslužitelja. Pretpostavimo da je od razvojnog programera primljena nova verzija sustava, koju treba instalirati dvoslojna arhitektura potrebno je mijenjati sve module sustava istovremeno. Ako se to ne učini, tada interakcija starih klijenata s novim poslužiteljima može dovesti do nepredvidivih posljedica, jer programeri obično ne računaju na takvu upotrebu sustava. U troslojnoj arhitekturi situacija je pojednostavljena. Činjenica je da promjenom aplikacijskog poslužitelja i poslužitelja za pohranu podataka (ovo je lako učiniti istovremeno, budući da su oba obično u blizini), odmah mijenjamo skup dostupne usluge. Dakle, vjerojatnost greške zbog neusklađenosti verzija između poslužiteljskog i klijentskog dijela je drastično smanjena. Ako u nova verzija Ako je usluga nestala, tada elementi sučelja koji su je služili u starom sustavu jednostavno neće raditi. Ako se algoritam usluge promijenio, tada će raditi ispravno čak i sa starim sučeljem.

Višerazinski klijent-poslužiteljski sustavi mogu se prilično lako pretvoriti u web tehnologiju - za to je dovoljno zamijeniti klijentski dio univerzalnim ili specijaliziranim preglednikom, a aplikacijski poslužitelj nadopuniti web poslužiteljem i malim poslužiteljskim programima za pozivanje procedura. Za razvoj ovih programa možete koristiti oba Zajednički pristupnik Sučelje (CGI) ili više Moderna tehnologija Java.

Također treba napomenuti da se u trorazinskom sustavu mnogo informacija prenosi komunikacijskim kanalom između aplikacijskog poslužitelja i baze podataka. Međutim, to ne usporava izračune, jer za vezu navedeni elementi mogu se koristiti brže linije. To će zahtijevati minimalan napor, budući da se oba poslužitelja obično nalaze u istoj prostoriji. Time se povećava ukupna izvedba sustava - dva zadatka sada rade na jednom razne servere, a komunikacija između njih može se provoditi preko najbržih linija uz minimalne troškove. Istina, postoji problem koherentnosti zajedničkih izračuna, koji je dizajniran za rješavanje transakcijskih menadžera - novih elemenata sustava na više razina.

Tehnologija klijent-poslužitelj s pravom se smatra jednim od "stupova" na kojima se moderni svijet računalne mreže. No, zadaće za koje je dizajniran postupno postaju prošlost, a na sceni se pojavljuju novi zadaci i tehnologije koje zahtijevaju promišljanje principa klijent-poslužiteljskih sustava. Jedna takva tehnologija je World Wide Web.

Korištenje tehnologije hipertekstualni dokumenti izgraditi unutarnju informacijska infrastruktura Tvrtku je potaknuo brzi razvoj raznih sustava klijent-poslužitelj. Neki ljudi pokušavaju usporediti web tehnologiju s arhitekturom klijent-poslužitelj, ali to dovodi u zabludu, jer zapravo webu je evolucija ove arhitekture. Možemo reći da Web sustav ima arhitekturu klijent-poslužitelj, odnosno pomoću jednog klijenta možete se spojiti na više poslužitelja. Web preglednik koji pruža korisničko sučelje s korisnikom za pristup informacijama samo je vrh ledenog brijega, najviše vrhunska razina web sustavi. Osim sučelja, svaki informacijski sustav mora imati razine obrade i pohrane podataka. Intranet programeri često se suočavaju s problemom ispravnog usklađivanja web rad s drugim elementima sustava, kao što su baze podataka. Jedan od obećavajućih načina za rješavanje ovog problema je arhitektura klijent-poslužitelj na više razina. Kako bismo razumjeli njihove prednosti, pogledajmo pobliže tipični sustav klijent-poslužitelj.

Klasična klijent-poslužiteljska arhitektura

Pojam "klijent-poslužitelj" označava takvu arhitekturu softverskog kompleksa, u kojoj njegovi funkcionalni dijelovi međusobno djeluju prema shemi "zahtjev-odgovor". Ako uzmemo u obzir dva međusobno djelujuća dijela ovog kompleksa, onda jedan od njih (klijent) obavlja aktivnu funkciju, tj. inicira zahtjeve, a drugi (poslužitelj) na njih pasivno odgovara. Kako se sustav razvija, uloge se mogu promijeniti, na primjer, neke programski blokće istovremeno djelovati kao poslužitelj u odnosu na jedan blok i klijent u odnosu na drugi.

Imajte na umu da svaki informacijski sustav mora imati najmanje tri glavna funkcionalna dijela - pohranu podataka, obradu i module korisničkog sučelja. Svaki od ovih dijelova može se implementirati neovisno o druga dva. Na primjer, bez mijenjanja programa koji se koriste za pohranu i obradu podataka, možete promijeniti korisničko sučelje tako da se isti podaci prikazuju u obliku tablica, grafikona ili histograma. Bez mijenjanja programa za prikaz i pohranu podataka, možete promijeniti programe za obradu, na primjer, promjenom algoritma pretraživanje cijelog teksta. I konačno, bez mijenjanja programa za prikaz i obradu podataka, možete promijeniti softver za pohranu podataka prebacivanjem, na primjer, na drugi datotečni sustav.

U klasičnoj arhitekturi klijent-poslužitelj, morate distribuirati tri glavna dijela aplikacije u dva fizička modula. Softver za pohranu podataka obično se nalazi na poslužitelju (na primjer, poslužitelj baze podataka), korisničko sučelje je na strani klijenta, ali obrada podataka mora biti raspodijeljena između klijentskog i poslužiteljskog dijela. Ovo je glavni nedostatak dvoslojne arhitekture, od koje nekoliko neugodne osobine, koji uvelike kompliciraju razvoj sustava klijent-poslužitelj.

Kod razdvajanja algoritama obrade podataka potrebno je sinkronizirati ponašanje obaju dijelova sustava. Svi programeri moraju imati potpune informacije o nedavne promjene unesene u sustav i razumjeti te promjene. To stvara velike poteškoće u razvoju sustava klijent-poslužitelj, njihovoj instalaciji i održavanju, jer je potrebno uložiti znatne napore na koordinaciju radnji. različite grupe specijalisti. Često se javljaju kontradikcije u postupcima programera, a to usporava razvoj sustava i prisiljava promjene na gotove i provjerene elemente.

Kako bi se izbjegla nedosljednost između različitih elemenata arhitekture, pokušava se izvršiti obrada podataka na jednom od dva fizička dijela - ili na strani klijenta ("debeli" klijent) ili na poslužitelju ("tanki" klijent ili arhitektura nazvana "2.5" -sloj klijent-poslužitelj"). Svaki pristup ima svoje nedostatke. U prvom slučaju, mreža je nepotrebno preopterećena, budući da se preko nje prenose sirovi, a time i suvišni podaci. Osim toga, postaje teže održavati sustav i mijenjati ga, budući da zamjena algoritma izračuna ili ispravak greške zahtijeva istovremenu potpunu zamjenu svih programa sučelja, inače može doći do grešaka ili nedosljednosti podataka. Ako se sva obrada informacija odvija na poslužitelju (kada je takvo što uopće moguće), tada se javlja problem opisivanja ugrađenih procedura i njihovog otklanjanja pogrešaka. Činjenica je da je jezik za opisivanje ugrađenih procedura obično deklarativan i stoga u načelu ne dopušta koračno otklanjanje pogrešaka. Osim toga, sustav s obradom informacija na poslužitelju apsolutno je nemoguće prenijeti na drugu platformu, što je ozbiljan nedostatak.

Većina modernih alata za brzi razvoj aplikacija (RAD) koji rade s razne baze podataka, implementira prvu strategiju, tj. "debeli" klijent pruža sučelje poslužitelju baze podataka putem ugrađenog SQL-a. Ovakva izvedba sustava s "debelim" klijentom, uz gore navedene nedostatke, najčešće pruža nedopustivo nisku razinu sigurnosti. Na primjer, u bankarskim sustavima, svim šalterima mora se dati pristup pisanju glavne tablice računovodstvenog sustava. Osim toga, ovaj sustav je gotovo nemoguće prenijeti na web tehnologiju, budući da se za pristup poslužitelju baze podataka koristi specijalizirani klijentski softver.

Dakle, gore navedeni modeli imaju sljedeće nedostatke.

1. "Debeli" klijent:

  • složenost administracije;
  • ažuriranje softvera postaje kompliciranije, jer se njegova zamjena mora izvršiti istovremeno u cijelom sustavu;
  • raspodjela ovlasti postaje kompliciranija, jer pristup nije ograničen akcijama, već tablicama;
  • mreža je preopterećena zbog prijenosa neobrađenih podataka kroz nju;
  • slaba zaštita podataka, jer je teško ispravno dodijeliti ovlaštenje.
  • 2. "Debeli" poslužitelj:

  • implementacija postaje kompliciranija, budući da jezici poput PL/SQL nisu prikladni za razvoj takvog softvera i ne postoji dobar novac uklanjanje pogrešaka;
  • performanse programa napisanih na jezicima kao što je PL/SQL znatno su niže od onih stvorenih na drugim jezicima, što je važno za složene sustave;
  • programi napisani na DBMS jezicima obično ne rade dovoljno pouzdano; pogreška u njima može dovesti do kvara cijelog poslužitelja baze podataka;
  • rezultirajući programi su potpuno neprenosivi na druge sustave i platforme.
  • Za rješavanje ovih problema koriste se višerazinske (tri ili više razina) klijent-poslužiteljske arhitekture.

    Slojevite klijent-poslužiteljske arhitekture

    Takve arhitekture inteligentnije distribuiraju module za obradu podataka, koji se u ovom slučaju pokreću na jednom ili više zasebnih poslužitelja. Ovi softverski moduli djeluju kao poslužitelj za korisnička sučelja i klijent za poslužitelje baze podataka. Osim toga, različiti poslužitelji aplikacija mogu međusobno komunicirati kako bi točnije podijelili sustav u funkcionalne blokove koji obavljaju određene uloge. Na primjer, možete odabrati poslužitelj za upravljanje osobljem koji će obavljati sve funkcije potrebne za upravljanje osobljem. Povezivanjem zasebne baze podataka s njim, možete sakriti sve detalje implementacije ovog poslužitelja od korisnika, dopuštajući im pristup samo njegovim javnim funkcijama. Osim toga, takav sustav je vrlo lako prilagoditi Webu, budući da je lakše razviti html forme za korisnički pristup određenim funkcijama baze podataka nego svim podacima.

    U troslojnoj arhitekturi, "tanki" klijent nije preopterećen funkcijama obrade podataka, već obavlja svoju glavnu ulogu kao sustav za prezentiranje informacija koje dolaze s aplikacijskog poslužitelja. Takvo se sučelje može implementirati korištenjem standardnih alata web tehnologije - preglednika, CGI i Jave. Ovo smanjuje količinu podataka koji se prenose između klijenta i aplikacijskog poslužitelja, omogućujući klijentskim računalima da se povežu čak i preko sporih linija kao što su telefonske linije. Osim toga, strana klijenta može biti toliko jednostavna da se u većini slučajeva implementira pomoću univerzalnog preglednika. Ali ako ga ipak morate promijeniti, onda se ovaj postupak može provesti brzo i bezbolno. Troslojna arhitektura klijent-poslužitelj omogućuje preciznije dodjeljivanje korisničkih dopuštenja, jer oni dobivaju prava pristupa ne samoj bazi podataka, već određenim funkcijama aplikacijskog poslužitelja. Ovo povećava sigurnost sustava (u usporedbi s uobičajenom arhitekturom) ne samo od namjernog napada, već i od pogrešnih radnji osoblja.

    Na primjer, razmotrite sustav čiji različiti dijelovi rade na nekoliko udaljenih poslužitelja. Pretpostavimo da je nova verzija sustava primljena od programera, a da biste je instalirali u dvorazinskoj arhitekturi, potrebno je istovremeno promijeniti sve module sustava. Ako se to ne učini, tada interakcija starih klijenata s novim poslužiteljima može dovesti do nepredvidivih posljedica, jer programeri obično ne računaju na takvu upotrebu sustava. U troslojnoj arhitekturi situacija je pojednostavljena. Činjenica je da promjenom aplikacijskog poslužitelja i poslužitelja za pohranu podataka (ovo je lako učiniti istovremeno, budući da su oba obično u blizini), odmah mijenjamo skup dostupnih usluga. Dakle, vjerojatnost greške zbog neusklađenosti verzija između poslužiteljskog i klijentskog dijela je drastično smanjena. Ako je usluga nestala u novoj verziji, tada elementi sučelja koji su je služili u starom sustavu jednostavno neće raditi. Ako se algoritam usluge promijenio, tada će raditi ispravno čak i sa starim sučeljem.

    Višerazinski klijent-poslužiteljski sustavi mogu se prilično lako pretvoriti u web tehnologiju - za to je dovoljno zamijeniti klijentski dio univerzalnim ili specijaliziranim preglednikom, a aplikacijski poslužitelj nadopuniti web poslužiteljem i malim poslužiteljskim programima za pozivanje procedura. Za razvoj ovih programa možete koristiti Common Gateway Interface (CGI) ili noviju Java tehnologiju.

    Također treba napomenuti da se u trorazinskom sustavu mnogo informacija prenosi komunikacijskim kanalom između aplikacijskog poslužitelja i baze podataka. Međutim, to ne usporava izračune, jer se brži vodovi mogu koristiti za povezivanje ovih elemenata. To će zahtijevati minimalan napor, budući da se oba poslužitelja obično nalaze u istoj prostoriji. Time se povećava ukupna izvedba sustava - dva različita poslužitelja sada rade na jednom zadatku, a komunikacija između njih može se odvijati putem najbržih linija s minimalni trošak fondovi. Istina, postoji problem koherentnosti zajedničkih izračuna, koji je dizajniran za rješavanje transakcijskih menadžera - novih elemenata sustava na više razina.

    Voditelji transakcija

    Značajka višeslojnih arhitektura je korištenje transakcijskih upravitelja (MTs), koji omogućuju jednom aplikacijskom poslužitelju da istovremeno razmjenjuje podatke s nekoliko poslužitelja baze podataka. Iako Oracle poslužitelji imaju mehanizam za izvođenje distribuiranih transakcija, no ako korisnik dio informacija pohranjuje u Oracle bazu podataka, dio u Informix bazu podataka, a dio u tekstualne datoteke, tada je transakcijski upravitelj neizostavan. MT se koristi za upravljanje distribuiranim heterogenim operacijama i koordinaciju akcija razne komponente informacijski sistem. Treba napomenuti da gotovo svaki složeni softver zahtijeva korištenje upravitelja transakcija. Na primjer, bankarski sustavi moraju obavljati različite transformacije prikaza dokumenata, tj. raditi istovremeno s podacima pohranjenim u bazama podataka iu običnim datotekama - to su funkcije koje MT pomaže izvesti.

    Upravitelj transakcija je program ili skup programa koji se mogu koristiti za koordinaciju rada različitih komponenti informacijskog sustava. Logično, MT je podijeljen u nekoliko dijelova:

  • komunikacijski upravitelj (Communication Manager) kontrolira razmjenu poruka između komponenti informacijskog sustava;
  • upravitelj autorizacije (Authorization Manager) osigurava autentifikaciju korisnika i provjeru njihovih prava pristupa;
  • upravitelj transakcija (Transaction Manager) upravlja distribuiranim operacijama;
  • upravitelj dnevnika (Log Manager) prati oporavak i vraćanje distribuiranih operacija;
  • Lock Manager osigurava pravilan pristup dijeljenim podacima.
  • Obično se upravitelj komunikacije kombinira s upraviteljem autorizacije, a upravitelj transakcija radi zajedno s bravom i zapisi sustava. Štoviše, takav upravitelj rijetko je uključen u paket isporuke, budući da njegove funkcije (vođenje evidencije, raspodjela resursa i kontrola operacija) u pravilu obavlja sama baza podataka (na primjer, Oracle).

    Prvi transakcijski menadžeri pojavili su se ranih 70-ih. (na primjer, CICS); Od tada su se neznatno promijenili ideološki, ali dosta značajno - tehnološki. Najveće ideološke promjene dogodile su se u komunikacijskom menadžeru jer su se na tom području pojavile nove objektno orijentirane tehnologije (CORBA, DCOM i dr.). Zbog brzog razvoja komunikacijskih medija u budućnosti treba očekivati široku upotrebu razne vrste transakcijskih menadžera.

    Stoga arhitektura klijent-poslužitelj na više razina može značajno pojednostaviti distribuirano računalstvo, čineći ga ne samo pouzdanijim, već i pristupačnijim. Pojava alata kao što je Java olakšava aplikacijskom poslužitelju komunikaciju s klijentima, a objektno orijentirani upravitelji transakcija osiguravaju da aplikacijski poslužitelj radi u skladu s bazama podataka. Time su stvoreni svi preduvjeti za stvaranje složenih distribuiranih informacijskih sustava koji učinkovito koriste sve prednosti suvremenih tehnologija.

    Materijal za članak ustupio je ASoft; tel. 261-5724 (prikaz, znanstveni). Valerija Korzhova možete kontaktirati na .

    ]. To vam omogućuje da odvojite funkcije pohranjivanja, obrade i predstavljanja podataka za više učinkovitu upotrebu mogućnosti poslužitelja i klijenata.

    Među višeslojnom arhitekturom klijent-poslužitelj, najčešća je troslojna arhitektura ( troslojna arhitektura, tri razine), što pretpostavlja prisutnost sljedećih komponenti aplikacije: klijentska aplikacija (obično kažu "tanki klijent" ili terminal) povezana s aplikacijski poslužitelj, koji je pak povezan s poslužitelj baze podataka [ , ].

    riža. 5.4.


    Riža. 5.4. Prikaz slojevite klijent-poslužiteljske arhitekture

    • Terminal je komponenta sučelja (obično grafička) koja predstavlja prvu razinu, stvarnu aplikaciju za krajnjeg korisnika. Prva razina ne bi trebala imati izravne veze s bazom podataka (zbog sigurnosnih zahtjeva), biti učitana s glavnom poslovnom logikom (zbog zahtjeva skalabilnosti) i pohranjivati ​​stanje aplikacije (zbog zahtjeva pouzdanosti). Najjednostavnija poslovna logika može i obično se podiže na prvu razinu: autorizacijsko sučelje, algoritmi šifriranja, provjera valjanosti ulaznih vrijednosti i usklađenosti s formatom, jednostavne operacije (sortiranje, grupiranje, brojanje vrijednosti) s podacima koji su već učitani na terminalu .
    • Poslužitelj aplikacija nalazi se na drugoj razini. Na drugoj razini koncentriran je najveći dio poslovne logike. Izvan njega ostaju fragmenti izvezeni na terminale, kao i pohranjene procedure i okidači uronjeni u treću razinu.
    • Poslužitelj baze podataka osigurava pohranu podataka i nalazi se na trećoj razini. Ovo je obično standardni relacijski ili objektno orijentirani DBMS. Ako je treća razina baza podataka zajedno s pohranjenim procedurama, okidačima i shemom koja opisuje aplikaciju u smislu relacijski model, tada je druga razina konstruirana kao softversko sučelje A koji povezuje bean klijenta s logikom aplikacije baze podataka.

    U najjednostavnijoj konfiguraciji, fizički aplikacijski poslužitelj može se kombinirati sa poslužitelj baze podataka na jednom računalu na koje je preko mreže spojen jedan ili više terminala.

    U "ispravnoj" (u smislu sigurnosti, pouzdanosti, skaliranja) konfiguraciji poslužitelj baze podataka koji se nalazi na namjenskom računalu (ili klasteru) na koje jedan ili više aplikacijski poslužitelji, na koje su, pak, terminali povezani putem mreže.

    Prednosti ove arhitekture su [ , , , ]:

    • klijentski softver ne zahtijeva administraciju;
    • skalabilnost;
    • konfigurabilnost - izolacija razina jedna od druge omogućuje vam brzu i jednostavnu rekonfiguraciju sustava u slučaju kvarova ili tijekom planiranog održavanja na jednoj od razina;
    • visoka sigurnost;
    • visoka pouzdanost;
    • niski zahtjevi za brzinom kanala (mreže) između terminala i aplikacijski poslužitelj;
    • niski zahtjevi za performanse i tehničke karakteristike terminala, kao rezultat, smanjenje njihove cijene.
    • raste složenost poslužiteljskog dijela i posljedično troškovi administracije i održavanja;
    • veća složenost izrade aplikacija;
    • teže ih je implementirati i administrirati;
    • visoki zahtjevi za performansama aplikacijski poslužitelji I poslužitelj baze podataka, a time i visoka cijena hardvera poslužitelja;
    • visoki zahtjevi za brzinom kanala (mreže) između poslužitelj baze podataka I aplikacijski poslužitelji.
    1. Izvođenje;
    2. prezentacijski sloj;
    3. logička razina;
    4. Podatkovni sloj;
    5. Podaci.


    Riža. 5.5. Pet slojeva višeslojne arhitekture "klijent-poslužitelj"

    Prikaz uključuje sve informacije koje se izravno prikazuju korisniku: generirane html stranice, listove stilova, slike.

    Prezentacijski sloj pokriva sve što ima veze s interakcijom između korisnika i sustava. Glavne funkcije prezentacijskog sloja uključuju prikaz informacija i tumačenje korisnički unesenih naredbi te njihovo pretvaranje u odgovarajuće operacije u kontekstu logike i podataka.

    Logička razina sadrži glavne funkcije sustava, dizajnirane da postignu svoj cilj. Ove funkcije uključuju izračune na temelju ulaznih i pohranjenih podataka, provjeru svih podatkovnih elemenata i naredbi za obradu iz prezentacijskog sloja i prosljeđivanje informacija podatkovnom sloju.

    Sloj pristupa podacima podskup je funkcija koje omogućuju interakciju s sustavi trećih strana, koji obavljaju zadatke za dobrobit aplikacije.

    Podaci o sustavu obično se pohranjuju u bazu podataka.

    5.1.6. Arhitektura distribuiranih sustava

    Ova vrsta sustava je složenija u smislu organizacije sustava. suština distribuiran sustava je čuvanje lokalnih kopija važnih podataka.

    Shematski se takva arhitektura može prikazati kao što je prikazano na sl. 5.6.


    Riža. 5.6.

    Više od 95% podataka koji se koriste u upravljanju poduzećem može se smjestiti na jedan osobno računalo, pružajući mogućnost njegovog samostalnog rada. Niz popravaka i dodataka koje ovo računalo stvara neznatan je u usporedbi s količinom podataka koje koristi. Stoga, ako kontinuirano korištene podatke pohranjujete na sama računala, te organizirate među njima razmjenu ispravaka i dopuna pohranjenih podataka, tada će ukupni preneseni promet naglo pasti. To vam omogućuje da smanjite zahtjeve za komunikacijskim kanalima između računala i češće koristite asinkronu komunikaciju i zahvaljujući tome stvorite pouzdano funkcionirajuće distribuirane informacijske sustave koji koriste nestabilnu komunikaciju kao što su internet, mobilne komunikacije, komercijalne mreže za povezivanje pojedinih elemenata. satelitski kanali. Minimiziranje prometa između elemenata učinit će trošak rada takve veze prilično pristupačnim. Naravno, implementacija ovakvog sustava nije elementarna i zahtijeva rješavanje niza problema, a jedan od njih je pravovremena sinkronizacija podataka.

    Svaka radna stanica je neovisna, sadrži samo informacije s kojima mora raditi, a relevantnost podataka u cijelom sustavu osigurana je kontinuiranom razmjenom poruka s drugim radnim stanicama. Razmjena poruka između radnih stanica može se implementirati različiti putevi, od slanja podataka do e-pošta prije prijenosa podataka preko mreže.