- Procesul de dezvoltare a aplicațiilor Web este destul de complex, iar una dintre cele mai importante sarcini este de a decide cum trebuie distribuită funcționalitatea aplicației între părțile clientului și server.
Internetul este organizat conform schemei client-server. În cazul clasic, această schemă funcționează după cum urmează:
- clientul generează și trimite o cerere către serverul de bază de date;
Ciclul se repetă până când utilizatorul termină lucrul cu serverul.
Serviciul WWW utilizează HTTP (HyperText Transmission Protocol) pentru a transfera informații.
Tranzacții de bază în HTTP:
- Browserul decodează prima parte a adresei URL (Universal Resource Locator) și stabilește o conexiune la server.
Cu aceste tranzacții, serverul nu are nicio informație despre starea browserului, adică HTTP poate fi considerat un protocol "un sens", iar interacțiunea cu serverul este posibilă numai prin intermediul mecanismului URL, ceea ce creează dificultăți în implementarea părții client.
- Sarcina principală a aplicației client este de a oferi o interfață cu utilizatorul, adică introducerea datelor și prezentarea rezultatelor într-o formă ușor de utilizat și gestionarea scripturilor de aplicație.
- Arhitectura "server gros client-subțire": majoritatea funcțiilor aplicației au fost rezolvate de client, serverul procesând doar interogări SQL.
Arhitectura unui client "gros" are următoarele dezavantaje:
- Clientul subțire - arhitectura Serverului gros: utilizarea procedurilor stocate pe server (programele compilate cu logica internă de operare) a condus la tendința de a transfera din ce în ce mai multe funcții către server. Procedurile stocate au pus în aplicare o parte a logicii de afaceri și au garantat executarea unei operațiuni în cadrul unei singure tranzacții. O astfel de soluție are avantaje evidente, de exemplu, este mai ușor de întreținut, deoarece toate modificările trebuie făcute doar într-un singur loc - pe server.
Arhitectura unui server "gros" are următoarele dezavantaje:
Pentru a rezolva aceste probleme, sunt utilizate arhitecturi client-server pe mai multe niveluri (trei sau mai multe nivele).
- Arhitecturi client-server pe trei niveluri și mai multe niveluri: executarea sarcinilor de aplicație și a regulilor de afaceri este realizată de o componentă separată a aplicației (sau mai multe componente) care poate rula pe un computer dedicat - serverul de aplicații.
- Orice sistem informatic construit pe baza tehnologiilor client-server ar trebui să conțină următoarele componente:
Managerii de tranzacții permit unui server de aplicații să facă schimb de date simultan cu mai multe servere de baze de date.
Cu toate serverele Oracle au un mecanism de efectuare a tranzacțiilor distribuite, dar în cazul în care utilizatorul stochează informațiile din baza de date Oracle, o parte a bazei de date pentru Informix și de o parte a fișierelor de text, fără managerul de tranzacții nu poate face.
MT este utilizat pentru a gestiona operațiunile eterogene distribuite și pentru a coordona acțiunile diferitelor componente ale sistemului informatic.
Primii manageri de tranzacții au apărut la începutul anilor '70. (de exemplu, CICS); de atunci s-au schimbat nesemnificativ ideologic, dar foarte semnificativ - tehnologic.
Cele mai mari schimbări ideologice au avut loc în managerul de comunicații, deoarece noi tehnologii orientate spre obiect (CORBA, DCOM, etc.) au apărut în acest domeniu.
Un manager de tranzacții este un program sau un set de programe prin care puteți coordona activitatea diferitelor componente ale sistemului informatic.
În mod logic, MT este împărțit în mai multe părți:
- Manager de comunicare - controlează schimbul de mesaje între componentele sistemului informatic;
- Sistemul informatic distribuit este reprezentat sub forma unei structuri de trei-patru niveluri cu diferențierea funcțiilor la fiecare nivel și fixarea protocoalelor fluxului de date inter-nivel.
Nivelul 1. Datele sunt, în general, fișiere de date obișnuite în formatul necesar pentru funcționarea serverului de baze de date. Datele sunt stocate ca un set de fișiere într-un director separat pentru fiecare bază de date. În plus față de datele reale, directorul poate include informații despre formatele predefinite pentru afișarea datelor și un fișier antet pentru numele extins al bazei de date.
Nivelul 2. Serverul bazei de date implementează funcțiile de bază ale preluării informațiilor din baza de date. Pentru un sistem informatic public, aceste funcții sunt după cum urmează:
- primirea unei cereri de la nivelul 3;
În consecință, serverul de baze de date procesează următoarele solicitări.
Dicționar - o interogare pentru o listă de cuvinte cheie cu parametri. În fluxul de intrare există un identificator de bază de date, un șablon de cuvinte cheie, numărul de secvențe de cuvinte cheie, numărul de cuvinte din bufferul de ieșire, în ieșire - lista cuvintelor cheie solicitate și frecvența acestora.
Format - o solicitare de a furniza o listă de formate de ieșire de date predefinite. În fluxul de intrare există un identificator al bazei de date, în fluxul de ieșire există o listă numerotată de formate predefinite pentru această bază de date.
Basic - o cerere de a furniza date în formatul dorit cu parametri. În fluxul de intrare există un identificator de bază de date, un șir de interogare, un număr de înregistrare de început de ieșire, un număr de înregistrări de ieșire, un identificator de format și un eșantion formatat din baza de date în ieșire.
Service - solicită numărul de versiune al serverului de baze de date. În fluxul de ieșire - numărul versiunii serverului de bază de date curent, lista numerotată a bazelor de date disponibile, ID-ul codificării interne a serverului de baze de date.
Nivelul 3. „client-server“ WWW server de management la serverul de baze de date Modul - Bază de date manager - proiectat pentru a gestiona cererile de utilizator, interoga serverele de baze de date și clienții returnează informațiile primite prin intermediul protocolului HTTP și specificațiile HTML. Cea mai bună opțiune este un Windows NT + IIS pentru a sprijini Java și ASP (Active Server Pages) IIS din cauza strânsă integrare cu sistemul de operare și capacitatea de a multi-thread de procesare este de mijloace relativ simple și ieftine. Unitatea de control (manager DB) poate fi implementat ca o bibliotecă de legături dinamice, și (sau) set de obiecte ASP.
Managerul DB efectuează următoarele funcții:
- stocarea și furnizarea de informații despre utilizatorii actuali despre bazele de date disponibile;
Pentru organizarea unui sistem complet funcțional, sunt suficiente trei niveluri. Cu toate acestea, atunci când se construiește un sistem distribuit teritorial cu regiuni clar definite și linii de comunicare nefiabile între ele, este de dorit să se localizeze toate cele trei nivele în fiecare regiune, integrându-se ultima la nivelul 4.
Nivelul 4. Principalul dispecer (DG) al sistemului informatic este un server WWW, identic funcțional cu un server de nivel 3, dar dotat cu o funcție suplimentară de stocare a informațiilor despre întregul sistem informatic în ansamblu. În mod ideal, fiecare dintre serverele Layer 3 ar trebui să fie gata să preia rolul dispecerului principal. Principala sarcină a DG este să obțină informații despre configurația fiecărui server de nivel 3 și să o reproducă pe toate serverele.
Astfel, schema generală a sistemului informatic distribuit constă în patru niveluri logice.