Modelul client-server

Baze de date moderne trebuie să îndeplinească o serie de cerințe, cel mai important dintre care - de înaltă performanță serverul bazei de date inteligente. În continuare, ne uităm la principalele tendințe ale dezvoltării sale, precum și pentru a discuta despre modalitățile specifice, în care sunt încorporate.

Procesul de dezvoltare tehnică a serverului de baze de date rămâne invizibil pentru majoritatea utilizatorilor de SGBD moderne. Prin urmare, atunci când aleg un sistem care, de obicei, nu iau în considerare orice soluții la nivel tehnic încorporate în mecanismul de funcționare a acesteia, nici impactul acestor decizii asupra performanței generale a bazei de date. În același timp, calitatea acesteia este determinată nu este o bogăție de interfață cu utilizatorul, nu suportă o varietate de instrumente de dezvoltare, și depinde în primul rând de caracteristicile arhitecturii serverului de baze de date. În continuare va fi considerată tehnologia definită modelul serverul bazei de date „client-server“, în aceste modele, și descrie pe scurt cele mai importante mecanisme de server de baze de date - proceduri, reguli (declanșatoare) evenimentului. Acesta din urmă va fi ilustrată cu exemple în care dialectul folosit, adoptate într-un DBMS Ingres.

Tehnologia "client-server" si modele.

„Client-server“ - un model de interacțiune între computere din rețea. De obicei, computerele nu sunt egale. Fiecare dintre ele are propriile sale, diferită de cealaltă, în scopul de a juca un rol. Unele dintre calculatoarele din rețeaua deținută și gestionează resursele informaționale și de calcul, cum ar fi procesoare, sistemul de fișiere, servicii poștale, baze de date de servicii de imprimare. Altele calculatoare au capacitatea de a accesa aceste servicii, profitând de primele servicii. Computerul care controlează sau alte resurse, numit serverul de resurse, și computerul, care vrea să-l folosească - client. Server specifice determinate de tipul resursei, pe care le deține. Deci, în cazul în care resursa este o bază de date, atunci când vine vorba de serverul de baze de date. al căror scop - pentru a deservi solicitările clienților cu privire la prelucrarea datelor; în cazul în care resursa - un sistem de fișiere, atunci se vorbește de un server de fișiere. sau un server de fișiere, și așa mai departe. d.

În rețeaua același computer poate acționa atât client și server. De exemplu, în sistemul de informații, inclusiv calculatoare personale, calculatoare mainframe și bazate pe UNIX mini-calculator, acesta din urmă poate acționa atât ca un server de baze de date, service cereri de la clienți - calculatoare personale, precum și un client, trimiterea unei interogări mainframe.

Același principiu se aplică programelor de cooperare. Dacă unul dintre ei îndeplinește o anumită funcție, dând fiecare un set adecvat de servicii pe care acest program acționează ca un server. Programele care utilizează aceste servicii, numite clienți. Deci, nucleul unui SGBD orientate spre SQL relațională este adesea numit un server de baze de date sau SQL-server, și un program, întoarce-i pentru serviciile de prelucrare a datelor - SQL-client.

Inițial, Baze de date au arhitectură centralizată (Figura 10). În propriile baze de date și aplicații care lucrează cu baze de date, am operat pe un calculator central (mainframe sau mini-calculator). Ibid situat bază de date. Prin calculatorul central au fost conectate în terminalele care servesc ca stațiile de lucru ale utilizatorilor. Toate procesele legate de prelucrarea datelor ca suportul de intrare, efectuate de către utilizator, formarea și optimizarea interogărilor, schimb cu dispozitive de memorie externe, etc. efectuat pe un calculator central care are cerințe stricte pentru performanțele sale. Caracteristici SGBD de primă generație sunt direct legate de arhitectura mainframe sistem și mini-calculatoare și să reflecte în mod adecvat toate avantajele și dezavantajele lor. Cu toate acestea, suntem mai interesați de stadiul actual al bazei de date multi-utilizator pentru care arhitectura „client-server“, a devenit un standard de facto.

Figura 10 - Sisteme cu arhitectura centralizata

Pentru o înțelegere mai clară a caracteristicilor sale trebuie să ia în considerare mai multe modele de tehnologie „client-server“, care se va face.

În cazul în care se presupune că sistemul informațional proiectat (IS) va avea tehnologia „client-server“, aceasta înseamnă că programele de aplicație puse în aplicare în cadrul acesteia, vor fi distribuite în natură. Cu alte cuvinte, o parte din funcțiile programului de aplicare (sau, mai simplu, o cerere) va fi implementat în programul client, celălalt - într-un server de program, iar unele de protocol vor fi determinate pentru interacțiunea lor.

Principiul de bază al tehnologiei „client-server“ este de a împărți funcțiile standard de aplicații interactive în patru grupuri cu altă natură. Primul grup - o funcție de datele de intrare și afișare. Al doilea grup cuprinde funcționalitatea de aplicare pură specifice domeniului (de exemplu, pentru sistemul bancar - deschiderea de conturi, transfer de bani dintr-un cont în altul, etc.). Al treilea grup include funcțiile fundamentale ale stocarea și gestionarea resurselor informaționale (baze de date, sisteme de fișiere, etc.). În cele din urmă, al patrulea grup de funcții - o funcție de serviciu (jucând rolul ligamentelor dintre funcțiile primele trei grupuri.

Prin urmare, următoarele componente logice sunt alocate în orice aplicație:

- componenta de prezentare, care implementează funcțiile primului grup;

- componentă aplicație care acceptă funcția de al doilea grup;

- acces componentă la resursele informaționale, susține funcția de-al treilea grup, și sunt introduse și rafinate metode acord de interacțiune a acestora (protocol de comunicare).

Diferențele în punerea în aplicare a tehnologiei „client-server“, determinată de patru factori. În primul rând, cele în care tipuri de software integrate în fiecare dintre aceste componente. În al doilea rând, prin ceea ce mecanismele de software utilizate pentru a pune în aplicare funcțiile tuturor celor trei grupuri. În al treilea, deoarece componentele logice sunt distribuite între calculatoare într-o rețea. În al patrulea rând, ce mecanisme sunt folosite pentru a lega componentele împreună.

Există patru abordări implementate în modelele:

· Modelul File Server (File Server - FS);

· Model de acces la date de la distanță (Remote Access - ADR);

· Modelul bazei de date de nord (Server DataBase - DBS);

· Modelul Application Server (Application Server - AS).

FS model este baza pentru rețele locale de calculatoare personale. Nu cu mult timp în urmă a fost extrem de popular cu dezvoltatori locali care au folosit astfel de sisteme ca FOXPRO, Clipper, Clarion, Paradox, etc. Esența modelului este simplu și cunoscut tuturor. Unul dintre computerele din rețea este considerat a fi un server de fișiere, și furnizează servicii pentru procesarea fișierelor către alte computere. Serverul de fișiere rulează un sistem de operare de rețea (de exemplu, Novell NetWare), și acționează ca o componentă a accesului la resursele informaționale (de exemplu, fișiere). Pe celelalte computere din funcția de aplicație de rețea, în care codurile sunt combinate componente de prezentare și componente ale aplicației (Figura 11). Protocolul de comunicații este un set de apeluri de nivel scăzut, oferă aplicații cu acces la sistemul de fișiere de pe serverul de fișiere.

Figura 11 - Modelul File Server

FS model a servit ca fundament pentru extinderea bazei de date cu caracter personal de oportunități în direcția de suport multi-utilizator. În astfel de sisteme, pe mai multe PC-uri care rulează ca o aplicație, și o copie a bazei de date și baza de date conținute în fișierele partajate care sunt pe serverul de fișiere. Atunci când o aplicație accesează o bază de date, baza de date trimite o cerere către un server de fișiere. Această interogare listează fișierele în cazul în care datele solicitate reședința. Ca răspuns la solicitarea unui server de fișiere într-o rețea trimite blocul de date solicitate. Baze de date primirea acestuia efectuează acțiunea privind datele care au fost declarate în programul de aplicație.

Prin deficiențele tehnologice ale modelului includ trafic mare de rețea (transfera mai multe fișiere de aplicații necesare), un interval îngust de operațiuni de manipulare a datelor ( „date - sunt dosarele“), lipsa unor mijloace adecvate de securitate a accesului la date (de protecție numai la nivelul sistemului de fișiere) și așa mai departe. d. De fapt, nu este listat, există dezavantaje, dar - o consecință a limitărilor intrinseci ale modelului FS-definit caracterul său. Neînțelegerile apar atunci când FS-modelul este utilizat în alte scopuri, de exemplu, încercarea de a interpreta serverul de baze de date model. Locul FS model într-o ierarhie de modele „client-server“ - un loc de modelul de server de fișiere, și nimic mai mult. Prin urmare, este sortită tentative de eșec de a crea pe baza modelului sistemelor enterprise-FS mari - încercări care au fost făcute în trecutul recent și este acum de multe ori luate.

Mai mult tech ADR-modelsuschestvenno diferă de FS-model de acces componenta de caractere la resursele informaționale. Acesta este, de obicei, SQL-server. Prezentarea ADR-model de cod și aplicarea componentei componente sunt combinate și executate pe calculatorul client. Acestea din urmă suportă ambele funcții de intrare și de afișare și pur funcții de aplicație. Accesul la resursele de informații sunt furnizate fie (limbaj SQL, de exemplu, atunci când este vorba de baze de date) operatorilor de limbaj special sau funcție solicită o bibliotecă specială (în cazul în care există o interfață de programare corespunzătoare - API).

Clientul trimite cereri către resursele informaționale (de exemplu, baze de date) pe o rețea de calculatoare de la distanță. Acesta funcționează motorul de baze de date, care procesează cererile, îndeplinind prescrise și returnează rezultatul la client, conceput ca un bloc de date (Figura 12). În acest caz, inițiatorul de manipulare a datelor sunt programele care ruleaza pe calculatoarele client, în timp ce motorul de baze de date rol pasiv - cereri de servicii și de prelucrare a datelor.

Figura 12 - Accesul model de date la distanță

ADR model elimină dezavantajele ambelor sisteme cu o arhitectură centralizată, un sistem și un server de fișiere.

În primul rând, transferul componentei componente și aplicații de pe calculatoarele client ameliorează în mod semnificativ serverul de baze de date, minimizând numărul total de procese ale sistemului de operare. Serverul de baze de date este eliberat din funcțiile de bază non-core la acesta; procesor sau procesoare de server încărcate complet de prelucrare a datelor operațiuni, interogări și tranzacții. Acest lucru este posibil prin eliminarea terminalelor și dotarea locurilor de muncă cu calculatoare, care au propriile lor resurse de calcul locale, utilizate pe deplin programele de front-end. Pe de altă parte, acesta este redus drastic încărcarea rețelei, deoarece prin ea sunt transmise de la client la server nu sunt cereri de intrare și de ieșire (ca în sistemul de fișiere al serverului), și în interogări SQL, volumul lor este mult mai mic.

Avantajul principal al ADR model - unificarea interfeței „client-server“, în formă de SQL. Într-adevăr, componenta de aplicare interacțiunea cu motorul de baze de date nu este posibilă fără un mijloc de comunicare standardizate. Cererile pentru programul de bază, ar trebui să fie clar pentru ambele. Pentru a face acest lucru, acestea ar trebui să fie formulate într-un limbaj special. Dar, în baza de date există deja limbaj SQL, care a fost deja discutată. Prin urmare, este recomandabil să-l utilizați nu numai ca mijloc de acces la date, dar, de asemenea, la standard de comunicare client și server.

O astfel de comunicare poate fi comparat cu conversația de mai multe persoane, atunci când unul răspunde la întrebările celorlalți (sunt puse întrebări în același timp). Și o face atât de repede încât timpul de răspuns este aproape de zero. comunicații de mare viteză se realizează în primul rând datorită formularea clară a întrebării atunci când întrebări și răspunsuri nu au nevoie de consultări suplimentare cu privire la subiectul în cauză. Conversația schimbat câteva fraze scurte ambigue, acestea nu trebuie să elaboreze.

Din păcate, ADR-model nu este lipsit de unele neajunsuri. În primul rând, client și server interacțiune de sarcinile SQL-interogare de rețea în mod semnificativ. În al doilea rând, administrarea satisfăcătoare a aplicațiilor din ADR-model este practic imposibilă din cauza combinației într-un singur program diferitele funcții ale naturii (prezentare și funcții de aplicare).

Împreună cu ADR-modelul devine din ce în ce mai populare promițătoare DBS model (Figura 13). Acesta din urmă este implementat în unele baze de date relaționale (Informix, Ingres, Sybase, Oracle). Ea se bazează pe mecanismul de proceduri stocate - un mijloc de programare SQL server. Procedurile sunt stocate în baza de date dicționar partajată între mai mulți clienți și executat pe același computer în cazul în care SQL Server se execută. Limba în care procedurile memorate sunt în curs de elaborare, reprezintă o extensie de procedură SQL limbaj de interogare și este unic pentru fiecare bază de date special.

Figura 13 - Model de server de baze de date

DBS-model de componenta de prezentare ruleaza pe client, în timp ce componenta de aplicare este conceput ca un set de proceduri stocate și funcții de pe calculatorul server de baze de date. Există, de asemenea, efectuat un acces componentă la date, care este baza de date de bază. Avantajele DBS-model sunt evidente: permite gestionarea centralizată a funcțiilor aplicațiilor și traficul redus (apeluri la proceduri stocate sunt trimise în loc de SQL-interogări în rețea), precum și posibilitatea de a procedurilor de separare între mai multe aplicații, și a economisirii resurselor informatice, prin utilizarea de o singură dată pentru a crea un plan al procedurii . Dezavantajele modelului includ fondurile limitate care sunt utilizate pentru scrierea de proceduri stocate care reprezintă o varietate de extensia de procedură SQL, nu pot fi comparate prin intermediul unor capacități vizuale și funcționale cu limbi de a treia generație, cum ar fi C sau Pascal. Domeniul de aplicare al utilizării lor este limitată la un anumit SGBD, majoritatea DBMS nu depanare și testare a dezvoltat proceduri stocate.

În practică, folosit de multe ori model mixt în cazul în care integritatea bazei de date de suport și unele funcționalități simplă aplicație acceptă proceduri stocate (DBS-model), și mai multe caracteristici avansate sunt puse în aplicare în mod direct în programul de aplicație care rulează pe calculatorul client (ADR-model). Oricum, modern, multi-baze de date bazate pe RDA- și DBS model atunci când crearea de IP este de a utiliza doar baza de date, pentru a alege una dintre aceste două modele sau o combinație a acestora rezonabile.


model de server de aplicații.

Procesul AS model (Figura 14), care rulează pe client răspunde ca de obicei pentru interfața cu utilizatorul (adică acesta efectuează prima grupa de funcții). Abordarea punerea în aplicare a serviciilor la componentele aplicației acest proces joacă rolul de aplicația client (Client Application - AC). Componenta aplicație este implementat ca un grup de procese care execută funcții de aplicare, și se numește serverul de aplicații (Application Server - AS). Toate operațiunile sunt efectuate pe resursele informaționale ale componentei în cauză, în legătură cu care AS joacă rolul de client. Din componentele de aplicare a resurselor disponibile ale diferitelor tipuri - baze de date, cozi, servicii poștale și altele.

RDA- și DBS-modele se bazează pe un sistem de două niveluri de diviziune a muncii. Funcțiile de aplicare ADR model sunt atribuite programului, clientul, în responsabilitatea DBS-model pentru punerea lor în aplicare presupune motorul bazei de date. În primul caz, componenta aplicație fuzionează cu o componentă de prezentare, în al doilea caz - integrate în accesul la resursele informaționale componente. AS-implementate funcțiile de separare diagrama model cu trei niveluri, în cazul în care cererea selectat ca principal component aplicarea elementului izolat, pentru determinarea acestuia prin folosirea mecanismelor universale multitasking sistem de operare, și interfețe standardizate cu alte două componente. AS model este baza pentru monitor de procesare a tranzacțiilor (monitoare de procesare a tranzacțiilor - TPM), sau, mai simplu, tranzacții monitor, care ies în evidență ca un tip special de software.

În concluzie, observăm că, de multe ori, vorbind de server de baze de date, se înțelege ca un computer, și software - motor de baze de date. În descrierea arhitecturii „client-server“ pe serverul de baze de date am avut în vedere calculator. Apoi, serverul de baze de date va fi înțeleasă ca software - motor de baze de date.