Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • vijesti
  • 5 glavnih usluga Internet tehnologije klijent server. Tehnologija klijent-server

5 glavnih usluga Internet tehnologije klijent server. Tehnologija klijent-server

Korištenje klijent-server tehnologije

Vremenom je nedovoljno funkcionalan model servera datoteka za lokalne mreže (FS) zamijenjen modelima strukture klijent-server (RDA, DBS i AS) koji su se pojavljivali jedan za drugim.

Tehnologija "Klijent-Server", koja je zauzela samo dno baze podataka, postala je glavna tehnologija globalnog Interneta. Nadalje, kao rezultat prenošenja ideja o Internetu u sferu korporativnih sistema, nastala je intranet tehnologija. Za razliku od tehnologije "Klijent-server", ova tehnologija je fokusirana na informacije u konačnom obliku za potrošnju, a ne na podatke. Računalni sistemi, koji su izgrađeni na bazi Intraneta, uključuju centralne informacione servere i određene komponente za prezentovanje informacija poslednjem korisniku (pretraživači ili navigatori). Radnja između servera i klijenta na Intranetu se izvodi pomoću web tehnologija.

U moderno doba, tehnologija "klijent-server" je postala veoma raširena, ali sama ova tehnologija nema univerzalne recepte. On samo daje opšti sud o tome kako treba kreirati trenutni informacioni sistem distribucije. Slično, implementacije ove tehnologije u određenim softverskim proizvodima, pa čak i tipovima softvera su prilično značajno prepoznate.

Klasična dvostepena arhitektura "Klijent - server"

Mrežne komponente po pravilu nemaju jednaka prava: neke imaju pristup resursima (na primjer: sistem za upravljanje bazom podataka, procesor, štampač, sistem datoteka i drugi), dok druge imaju mogućnost pristupa ovim resursima. serverska tehnologija operativnog sistema

Tehnologija "Klijent-Server" je arhitektura softverskog paketa koji raspoređuje aplikativni program na dva logički različita dela (server i klijent), koji međusobno deluju po šemi "zahtev-odgovor" i rešavaju svoje specifične zadatke.

Program (ili računar) koji upravlja i/ili posjeduje resurse naziva se server resursa.

Program (računar ili) koji traži i koristi resurs naziva se klijent ovog resursa.

U ovom slučaju se takvi uvjeti mogu pojaviti i kada će neki softverski blok istovremeno implementirati funkcije servera u odnosu na jedan blok i klijenta u odnosu na drugi blok.

Glavni princip tehnologije klijent-server je podijeliti funkcije aplikacije u najmanje tri veze:

Moduli korisničkog sučelja;

Ova grupa se naziva i logika prezentacije. Omogućava korisnicima interakciju s aplikacijama. Bez obzira na specifične karakteristike logike prezentacije (interfejs komandne linije, proxy interfejsi, složeni grafički korisnički interfejsi), njena svrha je da obezbedi sredstvo za efikasniju razmenu informacija između informacionog sistema i korisnika.

Moduli za pohranu podataka;

Ova grupa se naziva i poslovna logika. Poslovna logika pronalazi ono što je točno potrebno aplikaciji (na primjer, funkcije aplikacije specifične za dati domen). Odvajanje aplikacije duž granica između programa pruža prirodnu osnovu za distribuciju aplikacije na dva ili više računara.

Moduli za obradu podataka (funkcije upravljanja resursima);

Ova grupa se također naziva logičkim algoritmima pristupa podacima ili jednostavno pristup podacima. Algoritmi za unos podataka se smatraju specifičnim sučeljem za aplikaciju za trajni uređaj za skladištenje kao što je DBMS ili sistem datoteka. Uz pomoć modula za obradu podataka organizovan je poseban interfejs za DBMS aplikaciju. Koristeći sučelje, aplikacija može upravljati vezama baze podataka i upitima (prevođenje upita specifičnih za aplikaciju u SQL, dobivanje rezultata i prevođenje tih rezultata natrag u strukture podataka specifične za aplikaciju). Svaki od navedenih linkova može se implementirati nezavisno od nekoliko drugih. Na primjer, bez mijenjanja programa koji se koriste za obradu i pohranjivanje podataka, možete promijeniti korisnički interfejs tako da će isti podaci biti prikazani u obliku tabela, histograma ili grafikona. Najjednostavnije aplikacije često su u stanju da sve tri sastave u jedan program, a takvo razdvajanje odgovara funkcionalnim granicama.

U skladu s podjelom funkcija u svakoj aplikaciji, razlikuju se sljedeće komponente:

  • - komponenta prezentacije podataka;
  • - komponenta aplikacije;
  • - komponenta upravljanja resursima.

Klijent-server u klasičnoj arhitekturi treba da distribuira tri glavna dijela aplikacije u 2 fizička modula. Obično se komponenta aplikacije nalazi na serveru (na primjer, server baze podataka), komponenta prezentacije podataka nalazi se na strani klijenta, a komponenta upravljanja resursima distribuira se između serverskih i klijentskih dijelova. To je glavni nedostatak klasične dvoslojne arhitekture.

U dvoslojnoj arhitekturi, kada odvajaju algoritame za obradu podataka, programeri moraju imati potpune informacije o najnovijim promjenama koje su napravljene na sistemu i razumjeti te promjene, što stvara ne male poteškoće u razvoju klijent-server sistema, njihovom održavanju i instalaciji. , budući da je potrebno uložiti velike napore u koordinaciji djelovanja različitih grupa stručnjaka. Često se javljaju kontradiktornosti u postupcima programera, a to usporava razvoj sistema i tjera promjene na gotove i provjerene elemente.

Da bi se izbjegla nekonzistentnost između različitih elemenata arhitekture, kreirane su dvije modifikacije dvoslojne arhitekture "Klijent - Server": "Thick Client" ("Thin Server") i "Thin Client" ("Thick Server").

U ovoj arhitekturi, programeri su pokušali da izvrše obradu podataka na jednom od dva fizička dijela - bilo na strani klijenta ("Thick Client") ili na serveru ("Thin Client").

Svaki pristup ima svoje značajne nedostatke. U prvoj situaciji mreža je nepotrebno preopterećena, jer se preko nje prenose neobrađeni, odnosno suvišni podaci. Osim toga, postaje teže održavati sistem i mijenjati ga, jer ispravljanje greške ili zamjena algoritma proračuna zahtijeva istovremenu potpunu zamjenu svih programa interfejsa, ako se ne izvrši potpuna zamjena, dolazi do nedosljednosti podataka ili može doći do grešaka. Ako se sva obrada informacija obavlja na serveru, onda se javlja problem opisivanja ugrađenih procedura i njihovog otklanjanja grešaka. Sistem sa obradom informacija na serveru apsolutno je nemoguće prenijeti na drugu platformu (OS), to je ozbiljan nedostatak.

Ako se stvara dvoslojna klasična klijent-server arhitektura, tada morate znati sljedeće činjenice:

Arhitektura "debelog servera" je slična arhitekturi "tankog klijenta".

Prosljeđivanje zahtjeva od klijenta do servera, obrada zahtjeva od strane servera i prosljeđivanje rezultata klijentu. U isto vrijeme, arhitekture imaju sljedeće nedostatke:

  • - implementacija postaje složenija, jer jezici kao što je SQL nisu pogodni za razvoj takvog softvera i ne postoje dobri alati za otklanjanje grešaka;
  • - performanse programa napisanih na jezicima kao što je SQL su veoma niske u odnosu na one kreirane na drugim jezicima, što je najvažnije za složene sisteme;
  • - programi koji su napisani na jezicima DBMS-a, po pravilu, ne funkcionišu vrlo pouzdano; greška u njima može dovesti do kvara cijelog poslužitelja baze podataka;
  • - rezultirajući programi su potpuno neprenosivi na druge platforme i sisteme.
  • - Arhitektura "Thick Client" je slična arhitekturi "Thin Server".

Obrada zahtjeva se obavlja na strani klijenta, odnosno svi sirovi podaci sa servera se prenose do klijenta. U ovom slučaju, arhitekture imaju negativne aspekte:

  • - ažuriranje softvera postaje komplikovanije, jer se njegova zamena mora vršiti istovremeno u celom sistemu;
  • - distribucija ovlasti postaje komplikovanija, jer se kontrola pristupa ne dešava akcijama, već tabelama;
  • - mreža je preopterećena zbog prijenosa sirovih podataka kroz nju;
  • - Slaba zaštita podataka, jer je teško pravilno dodijeliti ovlaštenja.

Da biste riješili ove probleme, morate koristiti višerazinske (tri ili više nivoa) klijent-server arhitekture.

Model na tri nivoa .

Od sredine 90-ih godina prošlog vijeka među stručnjacima je postala popularna troslojna arhitektura "Klijent - server" koja je informacioni sistem po funkcionalnosti podijelila na tri određene veze: logiku pristupa podacima, logiku prezentacije i poslovnu logiku. Za razliku od dvoslojne arhitekture, troslojna ima dodatnu vezu - aplikacioni server dizajniran da implementira poslovnu logiku, dok je klijent potpuno rasterećen, koji šalje zahtjeve do međuvera, a sve mogućnosti servera su maksimalno iskorišten.

U troslojnoj arhitekturi, klijent, po pravilu, nije preopterećen funkcijama obrade podataka, već svoju glavnu ulogu obavlja kao sistem za predstavljanje informacija koje dolaze sa servera aplikacija. Takav interfejs se može implementirati pomoću standardnih alata Web tehnologije - pretraživača, CGI i Java. Ovo smanjuje količinu podataka između klijenta i servera aplikacija, omogućavajući klijentskim računarima da se povežu čak i preko sporih linija kao što su telefonske linije. U tom smislu, strana klijenta može biti toliko jednostavna da se u većini slučajeva izvodi pomoću univerzalnog pretraživača. Međutim, ako ga ipak morate promijeniti, onda se ovaj postupak može provesti brzo i bezbolno.

Aplikacioni server je softver koji je međusloj između servera i klijenta.

  • - Orijentisani na poruke - istaknuti predstavnici MQserije i JMS;
  • - Object Broker - istaknuti predstavnici CORBA-e i DCOM-a;
  • - Zasnovano na komponentama - sjajni predstavnici .NET-a i EJB-a.

Upotreba aplikacionog servera donosi mnogo više mogućnosti, na primjer, smanjeno je opterećenje klijentskih računala, budući da aplikacijski server raspoređuje opterećenje i pruža zaštitu od kvarova. Budući da je poslovna logika pohranjena na poslužitelju aplikacija, na klijentske programe ni na koji način ne utječu promjene u izvještajima ili proračunima.

Postoji nekoliko servera aplikacija poznatih kompanija kao što su Sun, Oracle Microsystem, IBM, Borland, a svaki od njih se razlikuje po setu usluga koje pruža (u ovom slučaju neću uzimati u obzir performanse). Ove usluge olakšavaju programiranje i implementaciju aplikacija za cijelo preduzeće. Aplikacioni server obično pruža sljedeće usluge:

  • - WEB server - najčešće uključen u isporuku najmoćnijeg i najpopularnijeg Apachea;
  • - WEB Container - omogućava vam da izvršite JSP i servlete. Za Apache, ova usluga je Tomcat;
  • - CORBA Agent - može osigurati distribuirani direktorij za pohranjivanje CORBA objekata;
  • - Messaging Service - broker poruka;
  • - Transakciona usluga - već iz naziva je jasno da se radi o transakcijskoj usluzi;
  • - JDBC - drajveri za povezivanje sa bazama podataka, jer je aplikacijski server taj koji će morati da komunicira sa bazama podataka i treba da bude u mogućnosti da se poveže sa bazom podataka koja se koristi u vašoj kompaniji;
  • - Java Mail - ova usluga može pružiti uslugu SMTP-u;
  • - JMS (Java Messaging Service) - obrada sinhronih i asinhronih poruka;
  • - RMI (Remote Method Invocation) - pozivanje udaljenih procedura.

Slojeviti klijent-server sistemi se lako mogu prevesti na Web tehnologiju - za to je potrebno da zamenite klijentski deo specijalizovanim ili univerzalnim pretraživačem, a server aplikacija dopunite sa Web serverom i malim serverskim pozivaocima procedura. Za

Ovi programi se mogu razviti koristeći ili Common Gateway Interface (CGI) ili moderniju Java tehnologiju.

U sistemu na tri nivoa, najbrže linije koje zahtevaju minimalne troškove mogu se koristiti kao komunikacioni kanali između aplikacijskog servera i DBMS-a, budući da se serveri obično nalaze u istoj prostoriji (serverskoj sobi) i neće preopteretiti mrežu zbog prenos velike količine informacija.

Sve navedeno navodi na zaključak da je dvorazinska arhitektura veoma inferiorna u odnosu na višerazinsku arhitekturu, s tim u vezi, danas se koristi samo višerazinska arhitektura klijent-server, koja prepoznaje tri modifikacije - RDA, DBS i AS.

Različiti modeli "klijent-server" tehnologije

Prva osnovna osnovna tehnologija za LAN je bila model servera datoteka (FS).. U to vrijeme ova tehnologija je bila vrlo česta među domaćim programerima koji su koristili sisteme kao što su FoxPro, Clipper, Clarion, Paradox i tako dalje.

U FS modelu, funkcije sve 3 komponente (komponenta prezentacije, komponenta aplikacije i komponenta pristupa resursima) su kombinovane u jednom kodu koji se izvodi na serverskom računaru (host). Klijentski računar u ovoj arhitekturi je potpuno odsutan, a prikaz i uklanjanje podataka se vrši pomoću računarskog računara ili terminala po redosledu emulacije terminala. Aplikacije se obično formiraju na jeziku četvrte generacije (4GL). Jedan od računara na mreži smatra se serverom datoteka i pruža usluge obrade datoteka drugim računarima. Radi pod kontrolom mrežnih operativnih sistema i igra važnu ulogu kao komponenta pristupa informacijskim resursima. Na drugim računarima u mreži radi se aplikacija u čijim kodovima su povezane komponenta aplikacije i komponenta prezentacije.

Tehnologija djelovanja između klijenta i servera je sljedeća: zahtjev se šalje na fajl server, koji prenosi DBMS-u, koji se nalazi na klijentskom računaru, potreban blok podataka. Sva obrada se obavlja na terminalu.

Protokol razmjene je skup poziva koji aplikaciji obezbjeđuju pristup sistemu datoteka na serveru datoteka.

Pozitivni aspekti ove tehnologije su:

  • - jednostavnost razvoja aplikacije;
  • - jednostavnost administracije i ažuriranja softvera
  • - niska cijena opreme na radnom mjestu (terminali ili jeftini računari sa niskim performansama u režimu emulacije terminala uvek su jeftiniji od punopravnih računara).

Ali prednosti FS modela nadmašuju njegove nedostatke:

Unatoč velikoj količini podataka koji se šalju preko mreže, vrijeme odgovora je kritično, jer svaki znak koji klijent unese na terminalu mora biti poslan na server, obrađen od strane aplikacije i vraćen nazad kako bi se prikazao na ekranu terminala. . Osim toga, postoji i problem raspodjele opterećenja između nekoliko računara.

  • - skup serverski hardver budući da svi korisnici dijele njegove resurse;
  • - nema GUI .

Zahvaljujući rješavanju problema svojstvenih tehnologiji "File-Server", pojavila se naprednija tehnologija pod nazivom "Klijent-Server".

Za moderni DBMS, arhitektura klijent-server je postala de facto standard. Ako se pretpostavi da će projektovana mrežna tehnologija imati arhitekturu "klijent-server", onda to znači da će se aplikativni programi implementirani u njenom okviru distribuirati, odnosno dio aplikativnih funkcija implementirati u program klijenta, drugi - u programu -server.

Razlike u implementaciji aplikacija u okviru tehnologije "Klijent-Server" određuju četiri faktora:

  • - koji se tipovi softvera nalaze u logičkim komponentama;
  • - koji se softverski mehanizmi koriste za implementaciju funkcija logičkih komponenti;
  • - kako se logičke komponente distribuiraju od strane računara u mreži;
  • - koji se mehanizmi koriste za međusobno povezivanje komponenti.

Na osnovu toga razlikuju se tri pristupa, od kojih je svaki implementiran u odgovarajući model tehnologije klijent-server:

  • - model daljinskog pristupa podacima (Remote Date Access - RDA);
  • - model servera baze podataka (DateBase Server - DBS);
  • - model aplikacijskog servera (Application Server - AS).

Značajna prednost RDA modela je širok izbor alata za razvoj aplikacija koji omogućavaju brz razvoj desktop aplikacija koje rade sa DBMS baziranim na SQL-u. Alati po pravilu podržavaju grafičko korisničko sučelje sa OS-om, kao i alate za automatsko generiranje koda koji miješaju funkcije prezentacije i aplikacije.

Unatoč velikoj distribuciji, RDA model ustupa mjesto tehnološki najnaprednijem DBS modelu.

Model servera baze podataka (DBS). - Mrežna arhitektura tehnologije "Klijent-Server", koja se zasniva na mehanizmu uskladištenih procedura koje implementiraju funkcije aplikacije. U DBS modelu, koncept informacijskog resursa je komprimiran u bazu podataka zbog istog mehanizma pohranjenih procedura implementiranih u DBMS, pa čak i tada ne u svim.

Pozitivni aspekti DBS modela u odnosu na RDA model su očigledni: to je mogućnost centralizirane administracije različitih funkcija, te smanjenje mrežnog prometa jer se pozivi pohranjenim procedurama prenose preko mreže umjesto SQL upita, te mogućnost razdvajanje procedure između dve aplikacije i čuvanje računarskih resursa za račun korišćenja jednom kreiranog plana izvođenja procedure.

Model poslužitelja aplikacija (AS). - radi se o mrežnoj arhitekturi tehnologije "Klijent - Server" koja je proces koji se izvodi na klijentskom računaru, a koji je odgovoran za korisnički interfejs (unos i prikaz podataka). Najvažniji element ovog modela je komponenta aplikacije, koja se zove aplikacijski server, radi na udaljenom računaru (ili dva računara). Aplikacioni server je implementiran kao grupa aplikativnih funkcija dizajniranih kao servisi (servise). Svaka usluga pruža neke usluge svim programima koji ih žele i mogu koristiti.

Saznavši sve modele tehnologije "Klijent-Server", možemo izvući sledeći zaključak: RDA- i DBS-modeli, ova dva modela su zasnovana na dvoslojnoj šemi razdvajanja funkcija. U RDA modelu, aplikativne funkcije se prenose na klijenta, u DBS modelu njihovo izvršavanje se implementira preko DBMS kernela. U RDA modelu, komponenta aplikacije se spaja sa komponentom prezentacije, u DBS modelu je integrirana u komponentu pristupa resursima.

U AS-modelu implementirano je troslojno razdvajanje funkcija, pri čemu je komponenta aplikacije izdvojena kao glavni izolirani element aplikacije, koji ima standardizirana sučelja sa dvije druge komponente.

Rezultati analize tehnoloških modela "File Server" i "Klijent - Server" prikazani su u tabeli 1.

Uprkos svom nazivu, tehnologija klijent-server je takođe distribuirani računarski sistem. U ovom slučaju distribuirano računarstvo shvatiti kao arhitekturu "Klijent - server" uz učešće nekih servera. Kada se primjenjuje na distribuiranu obradu, termin "server" jednostavno označava program koji odgovara na zahtjeve i izvodi potrebne radnje na zahtjev klijenta. Pošto je distribuirano računarstvo vrsta klijent-server sistema, korisnici dobijaju iste prednosti, kao što su povećana ukupna propusnost i mogućnost obavljanja više zadataka. Također, integracija diskretnih mrežnih komponenti i njihovo funkcioniranje kao cjelina pomaže u povećanju efikasnosti i smanjenju ušteda.

Pošto se obrada implementira bilo gdje u mreži, distribuirano računarstvo u klijent-server arhitekturi garantuje efikasno skaliranje. Da bi se uspostavila ravnoteža između servera i klijenta, komponenta aplikacije treba da radi na serveru samo ako je centralizovana obrada efikasnija. Ako se logika programa koji stupa u interakciju s centraliziranim podacima nalazi na istom stroju kao i podaci, ne mora se prenositi preko mreže, tako da se zahtjevi za mrežno okruženje mogu smanjiti.

Kao rezultat, možemo izvući sljedeći zaključak: ako trebate raditi s malim informacionim sistemima koji ne zahtijevaju grafičko korisničko sučelje, možete koristiti FS model. Pitanje GUI-a može se slobodno riješiti RDA-modelom. DBS model je vrlo dobra opcija za sisteme upravljanja bazom podataka (DBMS). AS-model je najbolja opcija za kreiranje velikih informacionih sistema, kao i kada se koriste komunikacijski kanali male brzine.

"Klijent-server" je model interakcije između računara na mreži.

Računari u ovoj konfiguraciji po pravilu nisu jednaki. Svaki od njih ima svoju, različitu od drugih, svrhu, igra svoju ulogu.

Neki računari na mreži poseduju i upravljaju informacijama i računarskim resursima, kao što su procesori, sistem datoteka, usluga pošte, usluga štampanja, baze podataka. Drugi računari imaju mogućnost pristupa ovim uslugama koristeći usluge prvih. Računar koji kontroliše ovaj ili onaj resurs se obično naziva serverom ovog resursa, a računar koji želi da ga koristi naziva se klijentom (slika 4.5).

Određeni server je određen vrstom resursa koji posjeduje. Dakle, ako su baze podataka resurs, onda govorimo o serveru baze podataka, čija je svrha da služi zahtjevima klijenata koji se odnose na obradu podataka u bazama podataka; ako je resurs sistem datoteka, onda se govori o serveru datoteka, ili serveru datoteka, i tako dalje.

Na mreži, isti računar može biti i klijent i kao server. Na primjer, u informacionom sistemu koji uključuje personalne računare, mainframe i mini računar, ovaj drugi može da deluje i kao server baze podataka, servisirajući zahteve klijenata - personalnih računara, i kao klijent, koji šalje zahteve glavnom računaru.

Isti princip vrijedi i za interakciju programa. Ako jedan od njih obavlja neke funkcije, pružajući drugima odgovarajući skup usluga, tada takav program djeluje kao server. Programi koji koriste ove usluge nazivaju se klijenti.

Obrada podataka podataka zasniva se na korištenju tehnoloških baza podataka i banaka podataka. U bazi podataka, informacije su organizovane prema određenim pravilima i predstavljaju integrisani skup međusobno povezanih podataka. Ova tehnologija omogućava povećanje brzine njihove obrade s velikim količinama. Obrada podataka na intramašinskom nivou je proces izvođenja niza operacija specificiranih algoritmom. Tehnologija obrade je daleko napredovala.

Danas se obrada podataka vrši pomoću računara ili njihovih sistema. Podatke obrađuju korisničke aplikacije. Od najveće važnosti u sistemima upravljanja organizacijama je obrada podataka za potrebe korisnika, a prvenstveno za korisnike najvišeg nivoa.

U procesu evolucije informacionih tehnologija primetna je želja za pojednostavljenjem i smanjenjem troškova za korisnike računara, njihove softverske opreme i procesa koji se na njima izvode. Istovremeno, korisnici dobijaju sve širu i složeniju uslugu od računarskih sistema i mreža, što dovodi do pojave tehnologija koje se nazivaju klijent-server.


Ograničavanje broja složenih pretplatničkih sistema u lokalnoj mreži dovodi do pojave računara u ulozi servera i klijenta. Implementacija "klijent-server" tehnologija može imati razlike u efikasnosti i ceni informacionih i računarskih procesa, kao iu nivou softvera i hardvera, u mehanizmu povezivanja komponenti, u brzini pristupa informacijama, njihovom raznolikost, itd.

Posjedovanje bogate i složene usluge smještene na serveru čini korisničko iskustvo produktivnijim i košta manje za korisnika od složenog hardvera i softvera mnogih klijentskih računara. Tehnologija klijent-server, kao moćnija, zamijenila je tehnologiju servera datoteka. To je omogućilo da se kombinuju prednosti jednokorisničkih sistema (visok nivo interaktivne podrške, user-friendly interfejs, niska cena) sa prednostima većih računarskih sistema (održavanje integriteta, zaštita podataka, multitasking).

U klasičnom smislu, DBMS je skup programa koji vam omogućavaju da kreirate i održavate bazu podataka ažurnom. Funkcionalno, DBMS se sastoji od tri dijela: jezgra (baza podataka), jezik i programski alati. Alati za programiranje se odnose na sučelje klijenta, ili eksterno sučelje. Oni mogu uključivati ​​procesor podataka jezika upita.

Jezik je skup proceduralnih i neproceduralnih naredbi koje podržava DBMS.

Najčešće korišteni jezici su SQL i QBE. Kernel obavlja sve ostale funkcije koje su uključene u koncept "obrade baze podataka".

Osnovna ideja klijent-server tehnologije je postavljanje servera na moćne mašine, a aplikacije klijenata koji koriste jezik na manje moćnim mašinama. Ovo će koristiti resurse moćnijeg servera i manje moćnih klijentskih mašina. Ulaz-izlaz u bazu podataka se ne zasniva na fizičkoj fragmentaciji podataka, već na logičkoj, tj. server klijentima ne šalje potpunu kopiju baze podataka, već samo logički neophodne dijelove, čime se smanjuje mrežni promet.

Mrežni saobraćaj je tok mrežnih poruka. U klijent-server tehnologiji, klijentski programi i zahtjevi se pohranjuju odvojeno od DBMS-a. Server obrađuje zahtjeve klijenata, bira potrebne podatke iz baze podataka, šalje ih klijentima preko mreže, ažurira informacije i osigurava integritet i sigurnost podataka.

Glavne prednosti klijent-server sistema su sledeće:

Malo opterećenje mreže (radna stanica šalje zahtjev serveru baze podataka za traženje određenih podataka, server sam pretražuje i vraća preko mreže samo rezultat obrade zahtjeva, odnosno jedan ili više zapisa);

Visoka pouzdanost (DBMS baziran na klijent-server tehnologiji održava integritet transakcije i automatski oporavak od kvara);

Fleksibilno podešavanje nivoa korisničkih prava (neki korisnici mogu biti dodijeljeni samo za pregled podataka, drugi za pregled i uređivanje, treći neće vidjeti nikakve podatke);

Podrška za velika polja (podržani su tipovi podataka čija se veličina može mjeriti u stotinama kilobajta i megabajta).

Međutim, sistemi klijent-server imaju i nedostatke:

Poteškoće u administraciji zbog teritorijalne nejedinstva i heterogenosti računara na radnom mjestu;

Nedovoljan stepen zaštite informacija od neovlašćenih radnji;

Zatvoreni protokol za komunikaciju između klijenata i servera, specifičan za ovaj informacioni sistem.

Da bi se eliminisali ovi nedostaci, koristi se arhitektura intranet sistema koji koncentrišu i kombinuju najbolje kvalitete centralizovanih sistema i tradicionalnih „klijent-server” sistema.

Prednosti

  • Omogućava, u većini slučajeva, distribuciju funkcija računarskog sistema između nekoliko nezavisnih računara na mreži. Ovo omogućava pojednostavljenje održavanja računarskog sistema. Konkretno, zamjena, popravak, nadogradnja ili premještanje servera ne utiče na korisnike.
  • Svi podaci se pohranjuju na serveru, koji je obično mnogo sigurniji od većine klijenata. Na serveru je lakše nametnuti kontrolu dozvola da se dozvoli pristup podacima samo klijentima s odgovarajućim pravima pristupa.
  • Omogućava vam kombiniranje različitih klijenata. Klijenti sa različitim hardverskim platformama, operativnim sistemima itd. često mogu koristiti resurse jednog servera.

Nedostaci

  • Kvar servera može cijelu računarsku mrežu učiniti neupotrebljivom.
  • Za podršku rada ovog sistema potreban je poseban stručnjak - sistem administrator.
  • Visoka cijena opreme.

Slojevita arhitektura klijent-server- tip arhitekture klijent-server u kojoj je funkcija obrade podataka postavljena na jedan ili više odvojenih servera. Ovo vam omogućava da odvojite funkcije skladištenja, obrade i prezentacije podataka za efikasnije korišćenje mogućnosti servera i klijenata.

Posebni slučajevi arhitekture na više nivoa:

Namenska serverska mreža

Namenska serverska mreža(engleski) Mreža klijent/server) je lokalna mreža (LAN) u kojoj su mrežni uređaji centralizirani i kontrolirani od strane jednog ili više servera. Pojedinačne radne stanice ili klijenti (kao što su računari) moraju pristupiti mrežnim resursima preko servera(ova).

Književnost

Valery Korzhov Sistemi klijent-server na više nivoa. Open Systems Publishing (17. jun 1997.). Arhivirano iz originala 26. avgusta 2011. Pristupljeno 31. januara 2010.


Wikimedia fondacija. 2010 .

3 Tehnologija klijent-server

Tehnologija klijent-server došao da zameni centralizovanu šemu za upravljanje računarskim procesom na velikim računarima još 80-ih godina prošlog veka. Zbog velike izdržljivosti i pouzdanosti računarskog sistema, lakoće skaliranja, mogućnosti istovremenog rada korisnika sa više aplikacija, visoke efikasnosti obrade informacija, pružanja korisniku visokokvalitetnog interfejsa i drugih karakteristika, ovo je veoma obećavajuće i daleko od iscrpljene tehnologije je dalje razvijena.

Vremenom je model servera datoteka za lokalne mreže (FS) niske funkcionalnosti zamijenjen modelima strukture klijent-server (RDA, DBS i AS) koji su se pojavljivali jedan za drugim.

Nakon što je zauzela nišu baza podataka, tehnologija klijent-server postala je glavna tehnologija globalnog interneta. Dalje, kao rezultat prenošenja ideja o Internetu u okruženje korporativnih sistema, pojavila se intranet tehnologija. . Za razliku od tehnologije klijent-server, ova tehnologija nije fokusirana na podatke, već na informacije u konačnom obliku spremne za upotrebu. Računalni sistemi izgrađeni na bazi Intraneta uključuju centralne informacione servere i distribuirane komponente za predstavljanje informacija krajnjem korisniku (navigatorski programi ili pretraživači). Interakcija između klijenta i servera na Intranetu se odvija uz pomoć web tehnologija.

Danas je tehnologija "klijent-server" sve raširenija, ali sama po sebi ne nudi univerzalne recepte. To samo daje opštu ideju o tome kako treba da bude organizovan moderan distribuirani informacioni sistem. Istovremeno, implementacija ove tehnologije u određenim softverskim proizvodima, pa čak iu tipovima softvera, prilično se značajno razlikuju.

3.1 Klasična dvoslojna arhitektura klijent-server

Tipično, mrežne komponente nisu jednake: neke imaju pristup resursima (na primjer, štampaču, procesoru, sistemu za upravljanje bazom podataka (DBMS), sistemu datoteka i tako dalje), dok druge imaju mogućnost pristupa ovim resursima.

Tehnologija klijent-server - ovo je arhitektura softverskog kompleksa, u kojoj je aplikativni program raspoređen na dvije logički različite komponente (klijent i server), koje međusobno djeluju prema shemi "zahtjev-odgovor" i rješavaju svoje specifične zadatke (slika 6).

Slika 6 - Arhitektura "Klijent - Server"

Poziva se računar (ili program) koji upravlja i/ili posjeduje resurs server ovaj resurs.

Poziva se računar (ili program) koji traži i koristi resurs klijent ovaj resurs.

Klijent i server se mogu nalaziti na istom računaru (PC) ili na različitim računarima u mreži. Takođe, može nastati situacija kada će određeni softverski blok istovremeno obavljati funkcije servera u odnosu na jedan blok i klijenta u odnosu na drugi.

Glavni princip tehnologije klijent-server je podijeliti funkcije aplikacije u najmanje tri grupe:

- moduli korisnički interfejs ;

Ova grupa se naziva i logika prezentacije. Preko ove grupe korisnici komuniciraju sa aplikacijom. Bez obzira na specifične karakteristike logike prezentacije (interfejs komandne linije, složeni grafički korisnički interfejsi, proxy interfejsi), njena svrha je da obezbedi sredstvo za što efikasniju razmenu informacija između korisnika i informacionog sistema.

- moduli za skladištenje ;

Ova grupa se naziva i poslovna logika. Poslovna logika definira za šta je aplikacija posebno namijenjena (na primjer, funkcije aplikacije koje su specifične za datu predmetnu oblast). Podjela aplikacije duž granica između programa pruža prirodnu osnovu za distribuciju aplikacije na više računala.

- moduli za obradu podataka (funkcije upravljanja resursima);

Ova grupa se naziva i logika pristupa podacima ili algoritmi pristupa podacima. Algoritmi za pristup podacima su istorijski viđeni kao interfejs specifični za aplikaciju za trajni mehanizam skladištenja podataka kao što je sistem datoteka ili DBMS. Uz pomoć modula za obradu podataka, organizirano je sučelje specifično za aplikaciju za DBMS. Koristeći sučelje, aplikacija upravlja vezama baze podataka i upitima (prevođenje upita specifičnih za aplikaciju u SQL, dobivanje rezultata i prevođenje tih rezultata natrag u strukture podataka specifične za aplikaciju).

Svaka od ovih grupa može se implementirati nezavisno od druge dvije. Na primjer, bez mijenjanja programa koji se koriste za pohranu i obradu podataka, možete promijeniti korisnički interfejs tako da se isti podaci prikazuju u obliku tabela, grafikona ili histograma. Vrlo jednostavne aplikacije često mogu sastaviti sva tri dijela u jedan program, a takvo razdvajanje se uklapa u funkcionalne granice.

U skladu s podjelom funkcija u bilo kojoj aplikaciji, razlikuju se sljedeće komponente:

- komponenta prezentacije podataka;

- komponenta aplikacije;

- komponenta upravljanja resursima.

U klasičnoj arhitekturi klijent-server, morate distribuirati tri glavna dijela aplikacije u dva fizička modula. Tipično, bean aplikacije nalazi se na serveru (na primjer, server baze podataka), bean prezentacije podataka je na strani klijenta, a bean za upravljanje resursima distribuira se između dijelova klijenta i servera. To je glavni nedostatak klasične dvoslojne arhitekture.

U dvoslojnoj arhitekturi, prilikom razdvajanja algoritama za obradu podataka, programeri moraju imati pune informacije o najnovijim promjenama u sistemu i razumjeti te promjene, što stvara velike poteškoće u razvoju klijent-server sistema, njihovoj instalaciji i održavanju, jer moraju se uložiti značajni napori na koordinaciju akcija različitih grupa stručnjaka. Često se javljaju kontradiktornosti u postupcima programera, a to usporava razvoj sistema i tjera promjene na gotove i provjerene elemente.

Kako bi se izbjegla neusklađenost između različitih elemenata arhitekture, kreirane su dvije modifikacije dvoslojne arhitekture „Klijent-Server”: „Debeli klijent” („Thin server”) i „Tanki klijent” („Debeli server”).

U ovim arhitekturama, programeri su pokušali da izvrše obradu podataka na jednom od dva fizička dijela - bilo na strani klijenta ("Thick Client") ili na serveru ("Thin Client").

Svaki pristup ima svoje nedostatke. U prvom slučaju, mreža je nepotrebno preopterećena, jer se preko nje prenose sirovi, a samim tim i redundantni podaci. Osim toga, postaje teže održavati sistem i mijenjati ga, jer zamjena algoritma proračuna ili ispravljanje greške zahtijeva istovremenu potpunu zamjenu svih programa interfejsa, inače može doći do grešaka ili nedosljednosti podataka. Ako se sva obrada informacija obavlja na serveru, onda se javlja problem opisivanja ugrađenih procedura i njihovog otklanjanja grešaka. Sistem sa obradom informacija na serveru apsolutno je nemoguće preneti na drugu platformu (OS), što je ozbiljan nedostatak.

Ako se ipak razvija dvoslojna klasična klijent-server arhitektura, onda se mora zapamtiti sljedeće:

- arhitektura "debeli server" je slična arhitekturi "tankog klijenta" (slika 33) ;

Slika 33. - Arhitektura "Thin client"

Prosljeđivanje zahtjeva od klijenta do servera, obrada zahtjeva od strane servera i prosljeđivanje rezultata klijentu. U isto vrijeme, arhitekture imaju sljedeće nedostatke:

Implementacija postaje složenija, jer jezici kao što je SQL nisu prikladni za razvoj takvog softvera i ne postoje dobri alati za otklanjanje grešaka;

Performanse programa napisanih na jezicima kao što je SQL znatno su niže od onih kreiranih na drugim jezicima, što je važno za složene sisteme;

Programi napisani na jezicima DBMS obično ne rade dovoljno pouzdano; greška u njima može dovesti do kvara cijelog poslužitelja baze podataka;

Rezultirajući programi su potpuno neprenosivi na druge sisteme i platforme.

- arhitektura "Thin Server" je slična arhitekturi "Debelog klijenta" (Slika 34).

Obrada zahtjeva se odvija na strani klijenta, odnosno svi sirovi podaci sa servera se prenose do klijenta. U isto vrijeme, arhitekture imaju sljedeće nedostatke:

Komplikovano ažuriranje softvera, jer se mora istovremeno zamijeniti u cijelom sistemu;

Distribucija ovlasti postaje komplikovanija, jer se kontrola pristupa ne odvija putem akcija, već pomoću tabela;

Mreža je preopterećena zbog prijenosa sirovih podataka kroz nju;

Slaba zaštita podataka, jer je teško pravilno dodijeliti ovlaštenja.

Slika 34. Arhitektura debelog klijenta

Za rješavanje ovih problema koriste se višerazinske (tri ili više nivoa) klijent-server arhitekture.

3.2 Troslojni model

Od sredine 90-ih godina prošlog veka, troslojna arhitektura klijent-server dobila je priznanje od stručnjaka, koji su informacioni sistem podelili na tri odvojene komponente prema funkcionalnosti: logiku prezentacije, poslovnu logiku i logiku pristupa podacima. Za razliku od dvoslojne arhitekture, troslojna arhitektura ima dodatnu vezu - aplikacijski server, koji je dizajniran da implementira poslovnu logiku, dok je klijent potpuno rasterećen, koji šalje zahtjeve do međuvera, a sve mogućnosti serveri su maksimalno iskorišćeni.

U troslojnoj arhitekturi, klijent obično nije preopterećen funkcijama obrade podataka, već svoju glavnu ulogu obavlja kao sistem za predstavljanje informacija koje dolaze sa servera aplikacija. Takav interfejs se može implementirati pomoću standardnih alata Web tehnologije - pretraživača, CGI i Java. Ovo smanjuje količinu podataka koji se prenose između klijenta i servera aplikacija, omogućavajući klijentskim računarima 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 pretraživača. Ali ako ga ipak morate promijeniti, onda se ovaj postupak može izvesti brzo i bezbolno.

Server aplikacija- ovo je softver koji je međusloj između klijenta i servera (Slika 35).

Slika 35 - Server aplikacija

Postoji nekoliko kategorija proizvoda srednjeg softvera:

Orijentisan na poruke - sjajni predstavnici MQserije i JMS;

Object Broker - sjajni predstavnici CORBA i DCOM;

Komponentni bazirani su sjajni predstavnici .NET-a i EJB-a.

Korišćenje servera aplikacija daje vam više opcija, na primer, opterećenje na klijentskim računarima je smanjeno jer aplikacijski server raspoređuje opterećenje i obezbeđuje zaštitu od kvarova. Budući da je poslovna logika pohranjena na poslužitelju aplikacija, bilo kakve promjene u izvještajima ili proračunima neće utjecati na klijentske programe ni na koji način.

Postoji nekoliko servera aplikacija poznatih kompanija kao što su Sun Microsystem, Borland, IBM, Oracle, a svaki od njih se razlikuje po setu usluga koje pruža (u ovom slučaju nećemo uzeti u obzir performanse). Ove usluge olakšavaju programiranje i implementaciju aplikacija za cijelo preduzeće. Aplikacioni server obično pruža sljedeće usluge:

WEB server - najčešće uključen u isporuku najpopularnijeg i najmoćnijeg Apachea;

WEB Container - omogućava vam izvršavanje JSP-ova i servleta. Za Apache, ova usluga je Tomcat;

Prednosti

  • Omogućava, u većini slučajeva, distribuciju funkcija računarskog sistema između nekoliko nezavisnih računara na mreži. Ovo omogućava pojednostavljenje održavanja računarskog sistema. Konkretno, zamjena, popravak, nadogradnja ili premještanje servera ne utiče na korisnike.
  • Svi podaci se pohranjuju na serveru, koji je obično mnogo sigurniji od većine klijenata. Na serveru je lakše nametnuti kontrolu dozvola da se dozvoli pristup podacima samo klijentima s odgovarajućim pravima pristupa.
  • Omogućava vam kombiniranje različitih klijenata. Klijenti sa različitim hardverskim platformama, operativnim sistemima itd. često mogu koristiti resurse jednog servera.

Nedostaci

  • Kvar servera može cijelu računarsku mrežu učiniti neupotrebljivom.
  • Za podršku rada ovog sistema potreban je poseban stručnjak - sistem administrator.
  • Visoka cijena opreme.

Slojevita arhitektura klijent-server- tip arhitekture klijent-server u kojoj je funkcija obrade podataka postavljena na jedan ili više odvojenih servera. Ovo vam omogućava da odvojite funkcije skladištenja, obrade i prezentacije podataka za efikasnije korišćenje mogućnosti servera i klijenata.

Posebni slučajevi arhitekture na više nivoa:

Namenska serverska mreža

Namenska serverska mreža(engleski) Mreža klijent/server) je lokalna mreža (LAN) u kojoj su mrežni uređaji centralizirani i kontrolirani od strane jednog ili više servera. Pojedinačne radne stanice ili klijenti (kao što su računari) moraju pristupiti mrežnim resursima preko servera(ova).

Književnost

Valery Korzhov Sistemi klijent-server na više nivoa. Open Systems Publishing (17. jun 1997.). Arhivirano iz originala 26. avgusta 2011. Pristupljeno 31. januara 2010.


Wikimedia fondacija. 2010 .

Top Related Articles