Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Știri
  • 5 servicii principale server de client tehnologie Internet. Tehnologia client-server

5 servicii principale server de client tehnologie Internet. Tehnologia client-server

Utilizarea tehnologiei client-server

De-a lungul timpului, modelul de server de fișiere nu foarte funcțional pentru rețelele locale (FS) a fost înlocuit cu modelele de construcție „Server client” care au apărut unul după altul (RDA, DBS și AS).

Tehnologia Client-Server, care ocupa partea de jos a bazei de date, a devenit tehnologia principală a internetului global. Mai mult, ca urmare a transferului ideilor de Internet în sfera sistemelor corporative, a apărut tehnologia Intranet. Spre deosebire de tehnologia Client-Server, această tehnologie este axată pe informații în forma sa finală gata de consum, și nu pe date. Sistemele de calcul care sunt construite pe baza Intranetului includ servere centrale de informații și anumite componente pentru prezentarea informațiilor ultimului utilizator (browsere sau programe de navigare). Acțiunea dintre server și client pe Intranet se realizează folosind tehnologii web.

În vremurile moderne, tehnologia Client-Server a devenit foarte răspândită, dar această tehnologie în sine nu are rețete universale. Acesta oferă doar o judecată generală asupra modului în care ar trebui creat actualul sistem informatic de distribuție. De asemenea, implementările acestei tehnologii în anumite produse software și chiar în tipuri de software sunt recunoscute destul de semnificativ.

Arhitectură clasică client-server pe două niveluri

De regulă, componentele rețelei nu au drepturi egale: unele au acces la resurse (de exemplu: un sistem de gestionare a bazelor de date, procesor, imprimantă, sistem de fișiere etc.), altele au posibilitatea de a accesa aceste resurse. tehnologia serverului sistemului de operare

Tehnologia „client-server” este arhitectura unui complex software care distribuie un program de aplicație în două părți logic diferite (server și client), care interacționează conform schemei „cerere-răspuns” și își rezolvă propriile probleme specifice.

Un program (sau computer) care controlează și/sau deține o resursă se numește server pentru resursa respectivă.

Un program (calculator sau) care solicită și utilizează o resursă se numește client al acelei resurse.

În acest caz, pot apărea condiții și atunci când un anumit bloc software implementează simultan funcțiile unui server în raport cu un bloc și un client în raport cu un alt bloc.

Principiul principal al tehnologiei Client-Server este împărțirea funcțiilor aplicației în cel puțin trei părți:

Module de interfață cu utilizatorul;

Acest grup se mai numește și logică de prezentare. Cu ajutorul acestuia, utilizatorii pot interacționa cu aplicațiile. Indiferent de caracteristicile specifice logicii de prezentare (interfață de linie de comandă, interfețe proxy, interfețe grafice complexe cu utilizatorul), scopul acesteia este de a oferi un mijloc de schimb mai eficient de informații între sistemul informațional și utilizator.

Module de stocare a datelor;

Acest grup se mai numește și logică de afaceri. Logica de afaceri găsește exact pentru ce este necesară o anumită aplicație (de exemplu, funcțiile aplicației specifice domeniului furnizat). Separarea unei aplicații peste granițele programului oferă o bază naturală pentru distribuirea unei aplicații pe două sau mai multe computere.

Module de prelucrare a datelor (funcții de gestionare a resurselor);

Acest grup se mai numește și logică, algoritmi de acces la date sau pur și simplu acces la date. Algoritmii de introducere a datelor sunt considerați ca o interfață specifică pentru o anumită aplicație către un dispozitiv stabil de stocare a datelor, cum ar fi un DBMS sau un sistem de fișiere. Folosind module de prelucrare a datelor, se organizează o interfață specifică pentru aplicația DBMS. Folosind interfața, aplicația poate gestiona conexiunile la bazele de date și interogările (traducerea interogărilor specifice aplicației în SQL, preluarea rezultatelor și traducerea acestor rezultate înapoi în structuri de date specifice aplicației). Fiecare dintre linkurile enumerate poate fi implementată independent de alte câteva. De exemplu, fără a modifica programele care sunt folosite pentru procesarea și stocarea datelor, puteți modifica interfața cu utilizatorul astfel încât aceleași date să fie afișate sub formă de tabele, histograme sau grafice. Cele mai simple aplicații sunt adesea capabile să combine toate cele trei părți într-un singur program, iar o astfel de separare corespunde limitelor funcționale.

În conformitate cu împărțirea funcțiilor în fiecare aplicație, se disting următoarele componente:

  • - componenta de prezentare a datelor;
  • - componenta de aplicatie;
  • - componenta de management al resurselor.

Client-server într-o arhitectură clasică trebuie să distribuie cele trei părți principale ale aplicației în 2 module fizice. De obicei, componenta de aplicație este localizată pe server (de exemplu, pe serverul bazei de date), componenta de prezentare a datelor este pe partea clientului, iar componenta de gestionare a resurselor este distribuită între server și părțile client. Acesta este principalul dezavantaj al arhitecturii clasice cu două niveluri.

Într-o arhitectură cu două niveluri, când algoritmii de procesare a datelor sunt separați, dezvoltatorii trebuie să aibă informații complete despre cele mai recente modificări care au fost aduse sistemului și să înțeleagă aceste modificări, ceea ce creează dificultăți considerabile în dezvoltarea sistemelor client-server, întreținerea acestora. și instalarea, deoarece este necesar să cheltuiți sume mari de bani.eforturi de coordonare a acțiunilor diferitelor grupuri de specialiști. Contradicțiile apar adesea în acțiunile dezvoltatorilor, iar acest lucru încetinește dezvoltarea sistemului și îi obligă să schimbe elemente gata făcute și dovedite.

Pentru a evita inconsecvența între diferitele elemente ale arhitecturii, au fost create două modificări ale arhitecturii „Client - Server” pe două niveluri: „Client gros” („Server subțire”) și „Client subțire” („Server gras”).

În această arhitectură, dezvoltatorii au încercat să efectueze procesarea datelor pe una dintre cele două părți fizice - fie pe partea clientului ("Thick Client"), fie pe server ("Thin Client").

Fiecare abordare are dezavantajele sale semnificative. În prima situație, rețeaua este supraîncărcată în mod nejustificat deoarece prin aceasta se transmit date neprocesate, adică redundante. În plus, suportul și modificările sistemului devin mai dificile, deoarece corectarea unei erori sau înlocuirea unui algoritm de calcul necesită o înlocuire completă simultană a tuturor programelor de interfață; dacă nu se face o înlocuire completă, pot apărea inconsecvența datelor sau erori. Dacă toată prelucrarea informațiilor este efectuată pe server, atunci apare problema descrierii procedurilor încorporate și a depanării acestora. Un sistem cu procesare a informațiilor pe un server este absolut imposibil de transferat pe o altă platformă (OS), acesta este un dezavantaj serios.

Dacă se creează o arhitectură clasică „Client - Server” pe două niveluri, atunci trebuie să cunoașteți următoarele fapte:

Arhitectura „Fat Server” este similară cu arhitectura „Thin Client”.

Transferarea unei cereri de la client la server, procesarea cererii de către server și transmiterea rezultatului către client. Cu toate acestea, arhitecturile au următoarele dezavantaje:

  • - implementarea devine mai complicată, deoarece limbaje precum SQL nu sunt potrivite pentru dezvoltarea unui astfel de software și nu există instrumente bune de depanare;
  • - performanța programelor scrise în limbaje precum SQL este foarte scăzută decât cele create în alte limbi, ceea ce este cel mai important pentru sistemele complexe;
  • - programele care sunt scrise în limbaje DBMS, de regulă, nu funcționează foarte fiabil; o eroare în ele poate duce la defecțiunea întregului server de baze de date;
  • - programele rezultate sunt complet neportabile pe alte platforme și sisteme.
  • - arhitectura „Thick Client” este similară cu arhitectura „Thin Server”.

Cererea este procesată pe partea clientului, adică toate datele brute de pe server sunt transferate către client. În acest caz, arhitecturile au părți negative:

  • - actualizarea software-ului devine mai complicată, deoarece acesta trebuie înlocuit simultan în întregul sistem;
  • - repartizarea puterilor devine mai complicată, deoarece accesul este limitat nu de acțiuni, ci de tabele;
  • - reteaua este supraincarcata din cauza transmiterii de date neprocesate prin aceasta;
  • - protecția datelor slabă, deoarece este dificil să se distribuie corect puterile.

Pentru a rezolva aceste probleme, trebuie să utilizați arhitectura Client-Server cu mai multe niveluri (trei sau mai multe niveluri).

Model pe trei nivele .

De la mijlocul anilor 90 ai secolului trecut, arhitectura pe trei niveluri „Client - Server” a câștigat popularitate în rândul specialiștilor, împărțind sistemul informațional în funcție de funcționalitate în trei legături specifice: logica de acces la date, logica de prezentare și logica de afaceri. Spre deosebire de arhitectura cu două niveluri, arhitectura cu trei niveluri are o legătură suplimentară - serverul de aplicații, conceput pentru a implementa logica de afaceri, în timp ce clientul, care trimite cereri către middleware, este complet descărcat și toate capabilitățile serverele sunt folosite la maximum.

Într-o arhitectură cu trei niveluri, clientul, de regulă, nu este supraîncărcat cu funcții de procesare a datelor, ci își îndeplinește rolul principal de sistem de prezentare a informațiilor care provin de la serverul de aplicații. O astfel de interfață poate fi implementată folosind instrumente standard de tehnologie Web - un browser, CGI și Java. Acest lucru reduce volumul de date furnizate între client și serverul de aplicații, permițând computerelor client să se conecteze chiar și prin linii lente, cum ar fi liniile telefonice. În acest sens, partea client poate fi atât de simplă încât, în majoritatea cazurilor, se realizează folosind un browser universal. Cu toate acestea, dacă tot trebuie să o schimbați, atunci această procedură poate fi efectuată rapid și fără durere.

Un server de aplicații este un software care acționează ca un strat intermediar între server și client.

  • - Orientat către mesaje - reprezentanți de seamă ai MQseries și JMS;
  • - Object Broker - reprezentanți marcanți ai CORBA și DCOM;
  • - Bazat pe componente - reprezentanți străluciți ai .NET și EJB.

Utilizarea unui server de aplicații aduce mult mai multe beneficii, de exemplu, sarcina pe computerele client este redusă, deoarece serverul de aplicații distribuie încărcarea și oferă protecție împotriva defecțiunilor. Deoarece logica de afaceri este stocată pe serverul de aplicații, orice modificare în raportare sau calcule nu afectează în niciun fel programele client.

Sunt puține servere de aplicații de la companii atât de renumite precum Sun, Oracle Microsystem, IBM, Borland, și fiecare dintre ele diferă în setul de servicii oferite (nu voi lua în considerare performanța în acest caz). Aceste servicii facilitează programarea și implementarea aplicațiilor la scară întreprindere. De obicei, un server de aplicații oferă următoarele servicii:

  • - WEB Server - cel mai adesea inclus în pachet este cel mai puternic și popular Apache;
  • - WEB Container - vă permite să rulați JSP și servlet-uri. Pentru Apache, acest serviciu este Tomcat;
  • - Agent CORBA - poate oferi un director distribuit pentru stocarea obiectelor CORBA;
  • - Serviciul de mesagerie - broker de mesaje;
  • - Serviciul de tranzacții - deja din nume reiese clar că acesta este un serviciu de tranzacții;
  • - JDBC - drivere pentru conectarea la baze de date, deoarece este serverul de aplicații care va trebui să comunice cu bazele de date și trebuie să se poată conecta la baza de date utilizată în compania dumneavoastră;
  • - Java Mail - acest serviciu poate oferi serviciu SMTP;
  • - JMS (Java Messaging Service) - procesarea mesajelor sincrone și asincrone;
  • - RMI (Remote Method Invocation) - apelarea procedurilor de la distanță.

Sistemele client-server cu mai multe niveluri pot fi transferate destul de ușor către tehnologia web - pentru a face acest lucru, trebuie să înlocuiți partea client cu un browser specializat sau universal și să completați serverul de aplicații cu un server Web și programe de apelare a procedurilor de server mici. Pentru

Pentru a dezvolta aceste programe, puteți utiliza atât Common Gateway Interface (CGI) cât și tehnologia Java mai modernă.

Într-un sistem cu trei nivele, cele mai rapide linii care necesită costuri minime pot fi folosite ca canale de comunicare între serverul de aplicații și SGBD, deoarece serverele sunt de obicei situate în aceeași cameră (camera serverului) și nu vor supraîncărca rețeaua din cauza transferul unei cantități mari de informații.

Din toate cele de mai sus, rezultă concluzia că arhitectura pe două niveluri este foarte inferioară arhitecturii pe mai multe niveluri; prin urmare, astăzi se utilizează doar arhitectura pe mai multe niveluri „Client - Server”, recunoscând trei modificări - RDA, DBS și LA FEL DE.

Diverse modele de tehnologie Client-Server

Prima tehnologie majoră de bază pentru rețelele locale a fost model de server de fișiere (FS).. La acea vreme, această tehnologie era foarte comună în rândul dezvoltatorilor autohtoni care foloseau sisteme precum FoxPro, Clipper, Clarion, Paradox și așa mai departe.

În modelul FS, funcțiile tuturor celor 3 componente (componenta de prezentare, componenta de aplicație și componenta de acces la resurse) sunt combinate într-un singur cod, care este executat pe computerul server (gazdă). Într-o astfel de arhitectură, nu există deloc computer client, iar afișarea și transferul datelor se realizează folosind un computer sau un terminal în modul emulării terminalului. Aplicațiile sunt de obicei scrise într-o limbă de generație a patra (4GL). Unul dintre computerele din rețea este considerat un server de fișiere și oferă servicii de procesare a fișierelor altor computere. Funcționează sub controlul unui sistem de operare de rețea și joacă un rol important ca componentă a accesului la resursele informaționale. Pe alte PC-uri din rețea rulează o aplicație, ale cărei coduri combină componenta de aplicație și componenta de prezentare.

Tehnologia de acțiune între client și server este următoarea: o solicitare este trimisă către un server de fișiere, care transmite blocul de date necesar către DBMS, care se află pe computerul client. Toată procesarea se efectuează pe terminal.

Un protocol de schimb este un set de apeluri care oferă unei aplicații acces la sistemul de fișiere de pe un server de fișiere.

Aspectele pozitive ale acestei tehnologii sunt:

  • - ușurința dezvoltării aplicațiilor;
  • - ușurință în administrare și actualizări de software
  • - cost redus al echipamentelor la locul de muncă (terminalele sau computerele ieftine cu specificații reduse în modul de emulare terminale sunt întotdeauna mai ieftine decât PC-urile cu drepturi depline).

Dar avantajele modelului FS depășesc dezavantajele sale:

În ciuda cantității considerabile de date care sunt trimise prin rețea, timpul de răspuns este critic deoarece fiecare caracter introdus de client pe terminal trebuie transmis către server, procesat de aplicație și returnat înapoi pentru a fi afișat pe ecranul terminalului. În plus, există și problema repartizării sarcinii între mai multe computere.

  • - hardware de server scump , deoarece toți utilizatorii își împart resursele;
  • - lipsa interfeței grafice .

Datorită rezolvării problemelor inerente tehnologiei „File - Server”, a apărut o tehnologie mai avansată, numită „Client - Server”.

Pentru SGBD-urile moderne, arhitectura client-server a devenit standardul de facto. Dacă se presupune că tehnologia de rețea proiectată va avea o arhitectură „client-server”, atunci aceasta înseamnă că programele de aplicație implementate în cadrul său vor fi distribuite în natură, adică unele dintre funcțiile aplicației vor fi implementate în programul client. , altele în program -server.

Diferențele în implementarea aplicațiilor în cadrul tehnologiei Client-Server sunt determinate de patru factori:

  • - ce tipuri de software sunt în componentele logice;
  • - ce mecanisme software sunt folosite pentru implementarea funcțiilor componentelor logice;
  • - cum sunt distribuite componentele logice de către calculatoarele din rețea;
  • - ce mecanisme sunt folosite pentru a conecta componente între ele.

Pe baza acesteia, se disting trei abordări, fiecare dintre acestea fiind implementată în modelul tehnologic Client-Server corespunzător:

  • - model de acces la date de la distanță (Remote Date Access - RDA);
  • - model de server de baze de date (DateBase Server - DBS);
  • - model de server de aplicații (Application Server - AS).

Un avantaj semnificativ al modelului RDA este selecția sa extinsă de instrumente de dezvoltare a aplicațiilor, care asigură dezvoltarea rapidă a aplicațiilor desktop care funcționează cu SGBD-uri orientate spre SQL. De obicei, instrumentele acceptă o interfață grafică cu utilizatorul pentru sistemul de operare, precum și facilități de generare automată a codului care combină funcțiile de prezentare și aplicație.

În ciuda distribuției sale largi, modelul RDA face loc celui mai avansat model DBS din punct de vedere tehnologic.

Model de server de bază de date (DBS). - arhitectura de rețea a tehnologiei Client-Server, care se bazează pe un mecanism de procedură stocată care implementează funcțiile aplicației. În modelul DBS, conceptul de resursă informațională este comprimat într-o bază de date datorită aceluiași mecanism de proceduri stocate, implementate într-un SGBD, și chiar și atunci nu în toate.

Aspectele pozitive ale modelului DBS față de modelul RDA sunt evidente: aceasta este posibilitatea de administrare centralizată a diferitelor funcții și o reducere a traficului de rețea deoarece în locul interogărilor SQL, apelurile către procedurile stocate sunt transmise prin rețea, iar capacitatea pentru a împărți o procedură între două aplicații și a economisi resursele computerului prin utilizarea unui plan de execuție a procedurii odată creat.

Model de server de aplicații (AS). este arhitectura de rețea a tehnologiei Client-Server, care este un proces care rulează pe computerul client și este responsabil pentru interfața cu utilizatorul (introducerea și afișarea datelor). Cel mai important element al acestui model este componenta aplicației, numită server de aplicații, care funcționează pe un computer la distanță (sau două computere). Serverul de aplicații este implementat ca un grup de funcții de aplicație, concepute ca servicii. Fiecare serviciu oferă anumite servicii tuturor programelor care doresc și pot să le folosească.

După ce am învățat toate modelele tehnologiei „Client - Server”, putem trage următoarea concluzie: modele RDA și DBS, aceste două modele se bazează pe o schemă pe două niveluri pentru separarea funcțiilor. În modelul RDA, funcțiile aplicației sunt transferate către client; în modelul DBS, execuția lor este implementată prin kernelul DBMS. În modelul RDA, componenta de aplicație se îmbină cu componenta de prezentare; în modelul DBS, este integrată în componenta de acces la resurse.

Modelul AS implementează o schemă de separare a funcțiilor pe trei niveluri, în care componenta aplicației este evidențiată ca principalul element izolat al aplicației, care are interfețe standardizate cu alte două componente.

Rezultatele analizei modelelor de tehnologie „File Server” și „Client - Server” sunt prezentate în Tabelul 1.

În ciuda numelui său, tehnologia Client-Server este, de asemenea, un sistem de calcul distribuit. În acest caz calcul distribuit înțeles ca o arhitectură „Client - Server” cu participarea unor servere. În contextul prelucrării distribuite, termenul „server” înseamnă pur și simplu programul care răspunde solicitărilor și realizează acțiunile necesare la cererea clientului. Deoarece calculul distribuit este un tip de sistem Client-Server, utilizatorii obțin aceleași beneficii, cum ar fi debitul general crescut și capacitatea de a face mai multe sarcini. De asemenea, integrarea componentelor de rețea discrete și făcându-le să funcționeze ca o singură unitate îmbunătățește eficiența și reduce economiile.

Deoarece procesarea are loc oriunde în rețea, calculul distribuit într-o arhitectură Client-Server asigură o scalare eficientă. Pentru a obține un echilibru între server și client, o componentă a aplicației ar trebui să ruleze pe server numai dacă procesarea centralizată este mai eficientă. Dacă logica programului care interacționează cu datele centralizate se află pe aceeași mașină cu datele, nu trebuie să fie transferată în rețea, astfel încât cerințele asupra mediului de rețea pot fi reduse.

Ca rezultat, putem trage următoarea concluzie: dacă trebuie să lucrați cu sisteme informatice mici care nu necesită o interfață grafică cu utilizatorul, puteți utiliza modelul FS. Problema unei interfețe grafice poate fi rezolvată liber folosind modelul RDA. Modelul DBS este o opțiune foarte bună pentru sistemele de management al bazelor de date (DBMS). Modelul AS este cea mai bună opțiune pentru crearea de sisteme informaționale mari, precum și atunci când se utilizează canale de comunicare cu viteză redusă.

„Client-server” este un model de interacțiune între computere dintr-o rețea.

De regulă, computerele din această configurație nu sunt egale. Fiecare dintre ele are propriul său scop, diferit de celelalte și își joacă rolul său.

Unele computere din rețea dețin și gestionează informații și resurse de calcul, cum ar fi procesoare, sisteme de fișiere, servicii de corespondență, servicii de imprimare și baze de date. Alte computere au capacitatea de a accesa aceste servicii folosind serviciile primului. Calculatorul care gestionează această sau acea resursă este de obicei numit serverul acestei resurse, iar computerul care dorește să o utilizeze se numește client (Fig. 4.5).

Un anumit server este determinat de tipul de resursă pe care îl deține. Deci, dacă resursa este o bază de date, atunci vorbim de un server de baze de date, al cărui scop este de a servi cererile clienților legate de prelucrarea datelor în baze de date; dacă resursa este un sistem de fișiere, atunci vorbim despre un server de fișiere, sau un server de fișiere etc.

Într-o rețea, același computer poate acționa atât ca client, cât și ca server. De exemplu, într-un sistem informatic care include calculatoare personale, un computer mainframe și un minicomputer, acesta din urmă poate acționa atât ca server de baze de date, deservind cererile de la clienți - computere personale, cât și ca client, trimițând cereri către computerul mainframe.

Același principiu se aplică interacțiunii programelor. Dacă unul dintre ei îndeplinește anumite funcții, oferind altora un set corespunzător de servicii, atunci un astfel de program acționează ca un server. Programele care folosesc aceste servicii se numesc clienți.

Prelucrarea datelor se bazează pe utilizarea tehnologiei bazelor de date și a băncilor de date. În baza de date, informațiile sunt organizate după anumite reguli și reprezintă un set integrat de date interdependente. Această tehnologie oferă o creștere a vitezei de procesare pentru volume mari. Prelucrarea datelor la nivel intramașină este procesul de efectuare a unei secvențe de operații specificate de un algoritm. Tehnologia de procesare a parcurs un drum lung.

Astăzi, prelucrarea datelor este efectuată de computere sau de sistemele acestora. Datele sunt prelucrate de aplicațiile utilizatorului. De o importanță primordială în sistemele de management organizațional este prelucrarea datelor pentru nevoile utilizatorilor și în primul rând pentru utilizatorii de nivel superior.

În procesul de evoluție a tehnologiei informației, există o dorință remarcabilă de simplificare și reducere a costurilor pentru utilizatorii computerelor, a software-ului acestora și a proceselor efectuate pe acestea. În același timp, utilizatorii primesc servicii din ce în ce mai largi și mai complexe din sistemele și rețelele de calcul, ceea ce duce la apariția unor tehnologii numite client-server.


Limitarea numărului de sisteme complexe de abonați dintr-o rețea locală duce la apariția calculatoarelor în rol de server și client. Implementarea tehnologiilor client-server poate avea diferențe în eficiența și costul proceselor de informare și de calcul, precum și în nivelurile de software și hardware, în mecanismul conexiunilor componente, în viteza de acces la informație, diversitatea acesteia, etc.

Primirea unui serviciu divers și complex organizat în server face ca munca utilizatorilor să fie mai productivă și îi costă pe utilizatori mai puțin decât software-ul și hardware-ul complex al multor computere client. Tehnologia client-server, fiind mai puternică, a înlocuit tehnologia file-server. A făcut posibilă combinarea avantajelor sistemelor cu un singur utilizator (nivel ridicat de suport interactiv, interfață ușor de utilizat, preț scăzut) cu avantajele sistemelor informatice mai mari (suport de integritate, protecție a datelor, multitasking).

În sensul clasic, un SGBD este un set de programe care vă permit să creați și să mențineți o bază de date la zi. Din punct de vedere funcțional, SGBD-ul constă din trei părți: nucleul (baza de date), limbajul și instrumentele de programare. Instrumentele de programare se referă la interfața client sau front-end. Acestea pot include un procesor de limbaj de interogare.

Un limbaj este o colecție de comenzi procedurale și non-procedurale suportate de un SGBD.

Cele mai frecvent utilizate limbaje sunt SQL și QBE. Nucleul îndeplinește toate celelalte funcții care sunt incluse în conceptul de „prelucrare a bazei de date”.

Ideea principală a tehnologiei client-server este de a plasa serverele pe mașini puternice, iar aplicațiile client care folosesc limbajul sunt localizate pe mașini mai puțin puternice. Astfel, vor fi folosite resursele unui server mai puternic și ale mașinilor client mai puțin puternice. I/O în baza de date nu se bazează pe fragmentarea datelor fizice, ci pe logic, de exemplu. serverul nu trimite clienților o copie completă a bazei de date, ci doar porțiuni logic necesare, reducând astfel traficul în rețea.

Traficul în rețea este fluxul de mesaje din rețea. În tehnologia client-server, programele client și interogările sale sunt stocate separat de SGBD. Serverul procesează cererile clienților, selectează datele necesare din baza de date, le trimite clienților prin rețea, actualizează informațiile și asigură integritatea și siguranța datelor.

Principalele avantaje ale sistemelor client-server sunt următoarele:

Încărcare redusă în rețea (stația de lucru trimite o cerere către serverul bazei de date pentru a căuta anumite date, serverul însuși efectuează căutarea și returnează prin rețea doar rezultatul procesării cererii, adică una sau mai multe înregistrări);

Fiabilitate ridicată (DBMS bazat pe tehnologia client-server suportă integritatea tranzacției și recuperarea automată în caz de defecțiune);

Ajustare flexibilă a nivelului drepturilor utilizatorului (unii utilizatori li se pot atribui doar date de vizualizare, alții de vizualizare și editare, alții nu vor vedea deloc date);

Suport pentru câmpuri mari (sunt acceptate tipuri de date a căror dimensiune poate fi măsurată în sute de kilobytes și megabytes).

Cu toate acestea, sistemele client-server au și dezavantaje:

Dificultate în administrare din cauza dezunității teritoriale și eterogenității calculatoarelor la locurile de muncă;

Gradul insuficient de protecție a informațiilor împotriva acțiunilor neautorizate;

Un protocol închis pentru comunicarea între clienți și servere, specific unui sistem informațional dat.

Pentru a elimina aceste neajunsuri, se folosește arhitectura sistemelor Intranet, concentrând și combinând cele mai bune calități ale sistemelor centralizate și ale sistemelor tradiționale client-server.

Avantaje

  • Face posibilă, în majoritatea cazurilor, distribuirea funcțiilor unui sistem de calcul între mai multe computere independente dintr-o rețea. Acest lucru facilitează întreținerea sistemului informatic. În special, înlocuirea, repararea, modernizarea sau mutarea unui server nu afectează clienții.
  • Toate datele sunt stocate pe server, care, de regulă, este protejat mult mai bine decât majoritatea clienților. Este mai ușor să aplicați controalele de permisiuni pe server pentru a permite doar clienților cu drepturi de acces adecvate să acceseze date.
  • Vă permite să combinați diferiți clienți. Clienții cu diferite platforme hardware, sisteme de operare etc. pot folosi adesea resursele unui singur server.

Defecte

  • Eșecul serverului poate face ca întreaga rețea de computere să fie inoperabilă.
  • Sprijinirea funcționării acestui sistem necesită un specialist separat - un administrator de sistem.
  • Cost ridicat al echipamentelor.

Arhitectură client-server multi-nivel- un tip de arhitectură client-server în care funcția de prelucrare a datelor se desfășoară pe unul sau mai multe servere separate. Acest lucru vă permite să separați funcțiile de stocare, procesare și prezentare a datelor pentru o utilizare mai eficientă a capabilităților serverelor și clienților.

Cazuri speciale de arhitectură pe mai multe niveluri:

Rețea de servere dedicate

Rețea de servere dedicate(Engleză) Rețea client/server listen)) este o rețea locală (LAN) în care dispozitivele de rețea sunt centralizate și controlate de unul sau mai multe servere. Stațiile de lucru sau clienții individuale (cum ar fi PC-urile) trebuie să acceseze resursele de rețea prin server(e).

Literatură

Valeri Korzhov Sisteme client-server pe mai multe niveluri. Editura Open Systems (17 iunie 1997). Arhivat din original pe 26 august 2011. Consultat la 31 ianuarie 2010.


Fundația Wikimedia. 2010.

3 Tehnologia client-server

Tehnologia client-server a înlocuit schema centralizată de gestionare a procesului de calcul pe mainframe încă din anii 80 ai secolului trecut. Datorită supraviețuirii și fiabilității ridicate a sistemului de calcul, ușurinței de scalare, capacității utilizatorului de a lucra simultan cu mai multe aplicații, eficienței ridicate a procesării informațiilor, oferind utilizatorului o interfață de înaltă calitate și alte capacități, acest lucru foarte promițător și departe de epuizat tehnologia a primit o dezvoltare ulterioară.

De-a lungul timpului, modelul de server de fișiere prost funcțional pentru rețelele locale (FS) a fost înlocuit de modelele de structură Client-Server care au apărut unul după altul (RDA, DBS și AS).

Ocupând nișa bazelor de date, tehnologia Client-Server a devenit principala tehnologie a internetului global. Mai mult, ca urmare a transferului ideilor Internetului în mediul sistemelor corporative, a apărut tehnologia Intranet. . Spre deosebire de tehnologia Client-Server, această tehnologie se concentrează nu pe date, ci pe informații în forma sa finală gata de consum. Sistemele de calcul construite pe baza Intranetului includ servere centrale de informații și componente distribuite pentru prezentarea informațiilor către utilizatorul final (programe de navigație sau browsere). Interacțiunea dintre client și server pe Intranet are loc folosind tehnologii web.

Astăzi, tehnologia Client-Server devine din ce în ce mai răspândită, dar în sine nu oferă rețete universale. Oferă doar o idee generală a modului în care ar trebui organizat un sistem modern de informații distribuite. În același timp, implementările acestei tehnologii în produse software specifice și chiar tipuri de software diferă destul de semnificativ.

3.1 Arhitectura clasică „Client-Server” pe două niveluri

De obicei, componentele rețelei nu sunt egale: unele au acces la resurse (de exemplu, o imprimantă, un procesor, un sistem de gestionare a bazelor de date (DBMS), un sistem de fișiere și așa mai departe), altele au capacitatea de a accesa aceste resurse.

Tehnologia client-server - aceasta este arhitectura unui pachet software în care programul de aplicație este distribuit între două componente logic diferite (client și server), interacționând conform schemei „cerere-răspuns” și rezolvându-și sarcinile specifice (Figura 6).

Figura 6 – Arhitectura client-server

Este numit un computer (sau program) care controlează și/sau deține o resursă Server această resursă.

Este numit un computer (sau program) care solicită și utilizează o resursă client această resursă.

Clientul și serverul pot fi localizate fie pe același computer (PC), fie pe computere diferite din rețea. O situație poate apărea și atunci când un anumit bloc software îndeplinește simultan funcțiile unui server în raport cu un bloc și a unui client în raport cu altul.

Principiul de bază al tehnologiei Client-Server este împărțirea funcțiilor aplicației în cel puțin trei grupuri:

- module interfața cu utilizatorul ;

Acest grup se mai numește și logică de prezentare. Utilizatorii interacționează cu aplicația prin intermediul acestui grup. Indiferent de caracteristicile specifice logicii de prezentare (interfață de linie de comandă, interfețe grafice complexe cu utilizatorul, interfețe prin proxy), scopul acesteia este de a oferi un mijloc pentru cel mai eficient schimb de informații între utilizator și sistemul informațional.

- module de stocare ;

Acest grup se mai numește și logică de afaceri. Logica de afaceri determină pentru ce este destinată în mod specific aplicația (de exemplu, funcțiile aplicației specifice unui anumit domeniu). Împărțirea unei aplicații peste granițele programului oferă o bază naturală pentru distribuirea unei aplicații pe mai multe computere.

- module de prelucrare a datelor (funcții de gestionare a resurselor);

Acest grup se mai numește și logică de acces la date sau algoritmi de acces la date. Algoritmii de acces la date au fost priviți din trecut ca o interfață specifică aplicației pentru un mecanism persistent de stocare a datelor, cum ar fi un sistem de fișiere sau DBMS. Folosind module de procesare a datelor, este organizată o interfață specifică aplicației către SGBD. Folosind interfața, aplicația gestionează conexiunile la bazele de date și interogările (traducerea interogărilor specifice aplicației în SQL, preluarea rezultatelor și traducerea acestor rezultate înapoi în structuri de date specifice aplicației).

Fiecare dintre aceste grupuri poate fi implementat independent de celelalte două. De exemplu, fără a modifica programele utilizate pentru stocarea și procesarea datelor, puteți modifica interfața cu utilizatorul, astfel încât aceleași date să fie afișate sub formă de tabele, grafice sau histograme. Aplicațiile foarte simple sunt adesea capabile să combine toate cele trei părți într-un singur program, iar o astfel de separare corespunde limitelor funcționale.

În conformitate cu împărțirea funcțiilor în orice aplicație, se disting următoarele componente:

- componenta de prezentare a datelor;

- componenta de aplicatie;

- componenta de management al resurselor.

Într-o arhitectură clasică client-server, cele trei părți principale ale aplicației trebuie să fie distribuite pe două module fizice. În mod obișnuit, componenta de aplicație este localizată pe server (de exemplu, un server de bază de date), componenta de prezentare a datelor este situată pe partea clientului, iar componenta de gestionare a resurselor este distribuită între partea client și partea serverului. Acesta este principalul dezavantaj al arhitecturii clasice cu două niveluri.

Într-o arhitectură cu două niveluri, atunci când defalcă algoritmii de procesare a datelor, dezvoltatorii trebuie să aibă informații complete despre cele mai recente modificări aduse sistemului și să înțeleagă aceste modificări, ceea ce creează mari dificultăți în dezvoltarea sistemelor client-server, instalarea și întreținerea acestora, întrucât este necesar să se depună eforturi semnificative pentru coordonarea acţiunilor diferitelor grupuri de specialişti. Contradicțiile apar adesea în acțiunile dezvoltatorilor, iar acest lucru încetinește dezvoltarea sistemului și îi obligă să schimbe elemente gata făcute și dovedite.

Pentru a evita inconsecvența între diferitele elemente ale arhitecturii, au fost create două modificări ale arhitecturii Client-Server pe două niveluri: „Thick Client” (“Thin Server”) și „Thin Client” (“Thick Server”).

În aceste arhitecturi, dezvoltatorii au încercat să efectueze procesarea datelor pe una dintre cele două părți fizice - fie pe partea clientului ("Thick Client"), fie pe server ("Thin Client").

Fiecare abordare are dezavantajele ei. În primul caz, rețeaua este supraîncărcată în mod nejustificat, deoarece prin aceasta se transmit date neprocesate și, prin urmare, redundante. În plus, suportul și modificările sistemului devin mai dificile, deoarece înlocuirea unui algoritm de calcul sau corectarea unei erori necesită o înlocuire completă simultană a tuturor programelor de interfață, altfel pot apărea erori sau inconsecvența datelor. Dacă toată prelucrarea informațiilor este efectuată pe server, atunci apare problema descrierii procedurilor încorporate și a depanării acestora. Un sistem cu procesare a informațiilor pe un server este absolut imposibil de transferat pe o altă platformă (OS), ceea ce este un dezavantaj serios.

Dacă încă dezvoltați o arhitectură clasică „Client-Server” pe două niveluri, atunci trebuie să vă amintiți următoarele:

- arhitectura „Thick Server” este similară cu arhitectura „Thin Client” (Figura 33) ;

Figura 33. – Arhitectura Thin Client

Transferarea unei cereri de la client la server, procesarea cererii de către server și transmiterea rezultatului către client. Cu toate acestea, arhitecturile au următoarele dezavantaje:

Implementarea devine mai complicată, deoarece limbaje precum SQL nu sunt potrivite pentru dezvoltarea unui astfel de software și nu există instrumente bune de depanare;

Performanța programelor scrise în limbaje precum SQL este semnificativ mai scăzută decât cele create în alte limbi, ceea ce este important pentru sistemele complexe;

Programele scrise în limbaje DBMS de obicei nu funcționează în mod fiabil; o eroare în ele poate duce la defecțiunea întregului server de baze de date;

Programele rezultate sunt complet neportabile pe alte sisteme și platforme.

- arhitectura „Thin Server” este similară cu arhitectura „Thick Client” (Figura 34).

Procesarea cererilor are loc pe partea clientului, adică toate datele brute de pe server sunt transferate către client. Cu toate acestea, arhitecturile au următoarele dezavantaje:

Actualizarea software-ului devine mai dificilă, deoarece acesta trebuie înlocuit simultan în întregul sistem;

Repartizarea puterilor devine mai complicată, deoarece accesul este limitat nu de acțiuni, ci de tabele;

Rețeaua este supraîncărcată din cauza transmiterii de date neprocesate prin aceasta;

Protecție slabă a datelor, deoarece este dificil să se distribuie corect puterile.

Figura 34. – Arhitectura „Thick Client”.

Pentru a rezolva aceste probleme, sunt utilizate arhitecturi Client-Server cu mai multe niveluri (trei sau mai multe niveluri).

3.2 Model pe trei niveluri

De la mijlocul anilor 90 ai secolului trecut, arhitectura „Client – ​​Server” pe trei niveluri a primit recunoaștere de la experți, care au împărțit sistemul informațional în funcție de funcționalitate în trei componente separate: logica de prezentare, logica de afaceri și logica de acces la date. . Spre deosebire de arhitectura cu două niveluri, arhitectura cu trei niveluri are o legătură suplimentară - serverul de aplicații, care este conceput pentru a implementa logica de afaceri, în timp ce clientul, care trimite cereri către middleware, este complet descărcat și toate capabilitățile dintre servere sunt utilizate la maximum.

Într-o arhitectură cu trei niveluri, clientul nu este de obicei supraîncărcat cu funcții de procesare a datelor, ci își îndeplinește rolul principal de sistem de prezentare a informațiilor care provin de la serverul de aplicații. O astfel de interfață poate fi implementată folosind instrumente standard de tehnologie Web - un browser, CGI și Java. Acest lucru reduce cantitatea de date transferate între client și serverul de aplicații, permițând computerelor client să se conecteze chiar și prin linii lente, cum ar fi liniile telefonice. În plus, partea client poate fi atât de simplă încât, în majoritatea cazurilor, este implementată folosind un browser universal. Dar dacă tot trebuie să o schimbați, atunci această procedură poate fi efectuată rapid și fără durere.

Server de aplicații– acesta este un software care este un strat intermediar între client și server (Figura 35).

Figura 35 - Server de aplicații

Există mai multe categorii de produse cu strat intermediar:

Orientat către mesaje – reprezentanți străluciți ai MQseries și JMS;

Object Broker – reprezentanți marcanți ai CORBA și DCOM;

Pe baza de componente sunt reprezentanți străluciți ai .NET și EJB.

Utilizarea unui server de aplicații oferă mai multe beneficii, de exemplu, sarcina pe computerele client este redusă deoarece serverul de aplicații distribuie încărcarea și oferă protecție împotriva defecțiunilor. Deoarece logica de afaceri este stocată pe serverul de aplicații, orice modificare în raportare sau calcule nu afectează în niciun fel programele client.

Există mai multe servere de aplicații de la companii atât de renumite precum Sun Microsystem, Borland, IBM, Oracle și fiecare dintre ele diferă în setul de servicii oferite (nu vom ține cont de performanță în acest caz). Aceste servicii facilitează programarea și implementarea aplicațiilor la scară întreprindere. De obicei, un server de aplicații oferă următoarele servicii:

Server WEB – cel mai adesea cel mai popular și mai puternic Apache este inclus în pachet;

Container WEB – vă permite să rulați JSP și servlet-uri. Pentru Apache, acest serviciu este Tomcat;

Avantaje

  • Face posibilă, în majoritatea cazurilor, distribuirea funcțiilor unui sistem de calcul între mai multe computere independente dintr-o rețea. Acest lucru facilitează întreținerea sistemului informatic. În special, înlocuirea, repararea, modernizarea sau mutarea unui server nu afectează clienții.
  • Toate datele sunt stocate pe server, care, de regulă, este protejat mult mai bine decât majoritatea clienților. Este mai ușor să aplicați controalele de permisiuni pe server pentru a permite doar clienților cu drepturi de acces adecvate să acceseze date.
  • Vă permite să combinați diferiți clienți. Clienții cu diferite platforme hardware, sisteme de operare etc. pot folosi adesea resursele unui singur server.

Defecte

  • Eșecul serverului poate face ca întreaga rețea de computere să fie inoperabilă.
  • Sprijinirea funcționării acestui sistem necesită un specialist separat - un administrator de sistem.
  • Cost ridicat al echipamentelor.

Arhitectură client-server multi-nivel- un tip de arhitectură client-server în care funcția de prelucrare a datelor se desfășoară pe unul sau mai multe servere separate. Acest lucru vă permite să separați funcțiile de stocare, procesare și prezentare a datelor pentru o utilizare mai eficientă a capabilităților serverelor și clienților.

Cazuri speciale de arhitectură pe mai multe niveluri:

Rețea de servere dedicate

Rețea de servere dedicate(Engleză) Rețea client/server listen)) este o rețea locală (LAN) în care dispozitivele de rețea sunt centralizate și controlate de unul sau mai multe servere. Stațiile de lucru sau clienții individuale (cum ar fi PC-urile) trebuie să acceseze resursele de rețea prin server(e).

Literatură

Valeri Korzhov Sisteme client-server pe mai multe niveluri. Editura Open Systems (17 iunie 1997). Arhivat din original pe 26 august 2011. Consultat la 31 ianuarie 2010.


Fundația Wikimedia. 2010.

Cele mai bune articole pe această temă