Tehnologii fișier - server și client - server. Distribuția aplicației între client și server. Astfel, toate dezavantajele de mai sus ale schemei file-server sunt eliminate în arhitectura client-server.

DB care operează folosind tehnologia FILE SERVER;

DB care operează folosind tehnologia CLIENT-SERVER.

Server de fișiere


- Acces la baza de date (interogare)
- Transferarea datelor în timp ce blocați accesul altor utilizatori
- Prelucrarea datelor pe computerul utilizatorului

Pentru claritate, să luăm în considerare exemple concrete. Să presupunem că trebuie să vizualizați ordinele de plată trimise pentru perioada 19 mai - 25 mai în valoare de 5.000 de ruble. Utilizatorul va trebui să lanseze pe computerul său o aplicație client care funcționează în baza de date cu ordine de plată și să introducă criteriile de selecție necesare. După aceea, un fișier care conține toate documentele de acest tip pentru întreaga perioadă pentru orice sumă va fi descărcat pe computer de pe serverul bazei de date și încărcat în RAM. O aplicație client care rulează pe computerul utilizatorului care lucrează cu baza de date va procesa aceste informații (le va sorta) și apoi va oferi un răspuns (o listă cu ordinele de plată care îndeplinesc criteriile dvs. va apărea pe ecran). După aceasta, veți selecta ordinul de plată dorit și veți încerca să editați (modificați) un câmp din acesta - de exemplu, data. În timpul editării, sursa de date este blocată, adică întregul fișier care conține acest document. Aceasta înseamnă că fișierul fie nu va fi disponibil deloc pentru alți utilizatori, fie va fi disponibil doar în modul de vizualizare. Mai mult, acest tip de captură nici măcar nu are loc la nivel de înregistrare, adică un document, dar întregul fișier este blocat - adică întregul tabel care conține documente similare. Numai după ce acest câmp este complet procesat și modul de editare este părăsit, acest fișier ordin de plată va fi deblocat și nu va fi capturat de către utilizator. Dacă datele sunt stocate în obiecte mai mari, de exemplu, un fișier conține ordine de plată atât pentru primirea de fonduri, cât și pentru trimiterea de fonduri, atunci și mai multe informații nu vor fi disponibile. Veți lucra cu un câmp „data” într-un singur document - restul angajaților întreprinderii vor aștepta până când veți termina.

Dezavantajele sistemului FILE SERVER sunt evidente:

    Încărcare foarte mare în rețea, cerințe crescute de lățime de bandă. În practică, acest lucru face aproape imposibil munca simultana un numar mare utilizatorii cu cantități mari de date.

    Prelucrarea datelor se realizează pe computerul utilizatorilor. Acest lucru implică cerințe hardware crescute pentru fiecare utilizator. Cum mai multi utilizatori, cu atât mai mulți bani va trebui să cheltuiți pentru echiparea computerelor lor.

    Blocarea datelor la editarea de către un utilizator face imposibilă lucrul altor utilizatori cu aceste date.

    Siguranță. Pentru a asigura capacitatea de a lucra cu un astfel de sistem, va trebui să oferiți fiecărui utilizator acces complet la un întreg fișier în care poate fi interesat doar de un câmp.

    Client server

    Procesarea unei singure cereri de utilizator:
    - Acces la baza de date (interogare SQL)
    - Transmiterea răspunsului - rezultatul prelucrării


    Dacă este necesară procesarea informațiilor stocate în baza de date, o aplicație client care rulează pe computerul utilizatorului care lucrează cu baza de date generează o interogare în limbajul SQL (nume de la literele inițiale - Structured Query Language). Serverul bazei de date acceptă cererea și o procesează independent. Nicio matrice de date (fișier) nu este transmisă prin rețea. După procesarea cererii, doar rezultatul este transferat pe computerul utilizatorului - adică, în exemplul anterior, o listă de ordine de plată care îndeplinesc criteriile necesare. Fișierul în sine, în care au fost stocate datele care au servit drept sursă pentru prelucrare, rămâne deblocat pentru acces de către server însuși la cererea altor utilizatori.

    În SGBD-urile serioase client-server, există mecanisme suplimentare care reduc sarcina în rețea și reduc cerințele pentru computerele utilizatorului. Ca exemplu, vom oferi proceduri stocate - adică programe întregi pentru prelucrarea datelor stocate în baza de date. În acest caz, nici măcar expresiile SQL nu sunt transferate de la utilizator la server - este transferat un apel de funcție cu parametri de apel. Prin urmare, la locul de muncă experiența utilizatorului este simplificată și mai mult logica programului este transferată pe server. Spațiul utilizatorului devine doar un mijloc de afișare a informațiilor. Toate acestea înseamnă o reducere suplimentară a sarcinii pe rețea și pe stațiile de lucru ale utilizatorilor.

    Astfel, toate dezavantajele de mai sus ale schemei FILE-SERVER sunt eliminate în arhitectura CLIENT-SERVER:

      Matricele de date nu sunt transferate prin rețea de la serverul bazei de date pe computerul utilizatorului. Cerințele de lățime de bandă ale rețelei sunt reduse. Acest lucru face posibil ca un număr mare de utilizatori să lucreze simultan cu cantități mari de date.

      Prelucrarea datelor se realizează pe serverul bazei de date, și nu pe computerul utilizatorilor. Acest lucru permite utilizarea computerelor mai simple și, prin urmare, mai ieftine pe site-urile clienților.

      Datele nu sunt blocate (captate) de către un utilizator.

      Utilizatorului i se oferă acces nu la întregul fișier, ci doar la datele din acesta cu care utilizatorul are dreptul de a lucra.

      Având în vedere diferența dintre un SERVER DE FIȘIERE și un SERVER CLIENT, ne putem finaliza considerația asupra conceptului de „stocare de informații”. Este important de subliniat că funcționarea sistemului corporativ depinde în mare măsură de tipul de SGBD utilizat. Este destul de evident că pentru întreprinderile mari, cu un număr mare de utilizatori, cu un număr mare de înregistrări în baza de date, schema de fișiere-server este complet inacceptabilă. Pe de altă parte, există diferențe în bazele de date în alți parametri și capabilități:

        tipuri de date care pot fi stocate în baza de date (numere, date, text, imagini, video, sunet etc.);

        privind tehnologiile organizate de baza de date în sine pentru a accesa datele din baza de date și nivelul de protecție a informațiilor împotriva accesului neautorizat;

        asupra instrumentelor și metodelor de dezvoltare furnizate care pot fi utilizate pentru proiectarea oricărui sistem informațional bazat pe această bază de date;

        asupra instrumentelor și metodelor furnizate de analiză a informațiilor (datelor), care pot fi aplicate într-un sistem informațional bazat pe această bază de date;

        în ceea ce privește fiabilitatea și stabilitatea, adică (aproximativ) numărul de înregistrări (câmpuri completate) din baza de date, care asigură o capacitate fiabilă și neîntreruptă de a accesa, modifica și analiza informațiile din baza de date;

        prin viteza - timpul petrecut accesand si procesand informatii;

        dacă este posibil, organizați lucrul pe computere de la diferiți producători, adică compatibilitate cu alte platforme și sisteme de operare;

        de nivelul de suport (serviciu) oferit de dezvoltatorul bazei de date sau de dealerul său autorizat;

        in functie de disponibilitate fonduri bune crearea de aplicații care utilizează această bază de date etc.

        De ce nu este profitabil să investești astăzi într-o soluție de server de fișiere? Astăzi calea viitoare a dezvoltării bazei de date este deja evidentă. Apar sisteme client-server cu mai multe niveluri, cu clienți foarte subțiri, eliminând orice restricții de pe stațiile client, atât în ​​ceea ce privește performanța, cât și platforma și sistemul de operare. Dacă pentru o soluție client-server dezvoltarea ulterioară este văzută destul de clar, iar tranziția de la un client-server la un client-server pe mai multe niveluri nu este problematică, atunci pentru un server de fișiere o simplă tranziție la un client-server reprezintă o problemă uriașă. problemă și costuri enorme cu forța de muncă, dacă acest lucru se va dovedi a fi posibil.

Tehnologii client-server

Pe care se bazează aproape toate modelele de organizare a interacțiunii utilizatorului cu o bază de date tehnologie client-server. Se presupune că fiecare astfel de aplicație diferă în modul în care distribuie funcțiile: partea client este responsabilă pentru prelucrarea țintită a datelor și organizarea interacțiunii utilizatorului, partea de server asigură stocarea datelor - procesează cererile și trimite rezultate către client pentru procesare specială. O arhitectură tipică a tehnologiei client-server este prezentată în Fig. 4.1:

Orez. 4.1. Arhitectura tipică a tehnologiei client-server

Unele dintre funcțiile calculatoarelor centrale au fost preluate de calculatoarele locale. Orice aplicație softwareîn acest caz, este reprezentată de trei componente: o componentă de prezentare care implementează interfața cu utilizatorul; o componentă de aplicație care oferă funcții de aplicație; o componentă pentru accesarea resurselor informaționale (resource manager), care acumulează informații și gestionează datele.

Pe baza distribuției acestor componente între stația de lucru și serverul de rețea, se disting modele de arhitectură client-server:

· model de acces la date de la distanță (Fig. 4.2). Serverul conține doar următoarele date:

Orez. 4.2. Model de acces la date de la distanță

Acest model caracterizat prin productivitate scăzută, deoarece toate informațiile sunt procesate pe stațiile de lucru; în plus, se menține viteza de transmisie scăzută volume mari informații de la server la stațiile de lucru;

· model de server de gestionare a datelor (Fig. 4.3):

Orez. 4.3. Model de server de gestionare a datelor

Caracteristicile acestui model: reducerea cantității de informații transmise prin rețea, deoarece selectarea elementelor de informații necesare se realizează pe server și nu pe stațiile de lucru; unificare și o selecție largă de instrumente de creare a aplicațiilor; lipsa unei delimitări clare între componenta de prezentare și componenta de aplicație, ceea ce îngreunează îmbunătățirile sistem de calcul. Este recomandabil să se utilizeze în cazul prelucrării unor cantități moderate de informații, în timp ce complexitatea componentei aplicației ar trebui să fie scăzută,

· model de server complex (Fig. 4.4):

Orez. 4.4. Model complex de server

Avantajele modelului: performanta ridicata, administrare centralizata, economisirea resurselor retelei. Un astfel de server este optim pentru rețelele mari axate pe procesarea unor volume mari de informații care cresc în timp;

· arhitectură client-server pe trei niveluri (Fig. 4.5). Folosit atunci când complexitatea și intensitatea resurselor unei componente ale unei aplicații cresc.

Orez. 4.5. Arhitectură cu trei niveluri

Serverul de aplicații poate implementa mai multe funcții de aplicație, fiecare dintre acestea fiind formatată ca serviciu separat, care oferă unele servicii tuturor programelor. Pot exista mai multe astfel de servere, fiecare dintre ele fiind concentrat pe furnizarea unui anumit set de servicii. Această arhitectură se bazează pe o specializare ulterioară a componentelor arhitecturii: clientul este implicat doar în organizarea interfeței cu utilizatorul, serverul bazei de date efectuează doar prelucrarea standard a datelor, pentru a implementa logica de prelucrare a datelor, arhitectura oferă un strat separat - afacerea strat logic, poate fi fie un server dedicat (server de aplicații), fie găzduit pe client ca bibliotecă.

În arhitectura client-server, există două concepte principale:

· "client slab. Un server de baze de date puternic și o bibliotecă de proceduri stocate sunt folosite pentru a face calcule care implementează logica de bază de procesare a datelor direct pe server. Aplicația client, în consecință, impune cerințe scăzute asupra hardware-ului stației de lucru;

· un client „gros” implementează logica principală de procesare pe client, iar serverul este un server de baze de date pur care asigură executarea doar a solicitărilor standard de manipulare a datelor (de obicei citirea, scrierea, modificarea datelor în tabele de baze de date relaționale).

Rețea IT

E-mail. Prima care a apărut, această formă de mesagerie electronică (e-mail) a demonstrat însăși posibilitatea comunicării aproape instantanee prin retele de calculatoare. Proiectat arhitectural pentru schimbul de mesaje între doi abonați, a permis grupurilor de oameni să facă schimb de informații. Grupurile sau listele de corespondență au devenit o astfel de modificare. Folosind software-ul de e-mail, puteți crea mesaje de e-mail și le puteți atașa. Funcția de atașare este utilizată pentru a trimite orice tip de document prin poștă, de ex. documente text, foi de calcul, fișiere multimedia, fișiere de baze de date etc. Software-ul de filtrare a textului dezvoltat ulterior a extins capacitățile E-mail pentru a ajuta la structura utilizatorului, rutarea și filtrarea mesajelor. Necesitatea acestor servicii se datorează cantității în continuă creștere de e-mailuri care sunt de puțin sau deloc folositor utilizatorului (Spam). Software-ul de filtrare poate asigura că utilizatorii primesc numai mesaje personalizate care conțin știri care sunt importante pentru ei și, de asemenea, îi ajută să găsească informații relevante pentru ei. necesare utilizatorilorîn procesul decizional.

Teleconferințe sau grupuri de știri. Teleconferințele reprezintă următoarea etapă în dezvoltarea sistemelor de comunicații. Caracteristicile lor au fost, în primul rând, stocarea mesajelor și oferirea părților interesate acces la întregul istoric al schimburilor și, în al doilea rând, diferite căi gruparea tematică a mesajelor. Astfel de sisteme de conferințe permit unui grup de persoane care lucrează în comun, dar separate geografic, să facă schimb de opinii, idei sau informații online atunci când discută orice problemă, depășind barierele de timp și spațiale. În prezent, există multe varietăți de sisteme de conferințe, inclusiv conferințe pe computer (întâlniri desfășurate prin e-mail), apeluri de conferință cu capacitatea de a se conecta abonații de telefonie mobilă, conferințe folosind PC-uri desktop, multimedia, televiziune și conferințe video.

Comunicare interactivă(camere de chat). Odată cu dezvoltarea telecomunicațiilor, un număr tot mai mare de utilizatori încep să lucreze pe Internet în mod de prezență constantă, astfel încât a apărut un serviciu de comunicare în timp real, când abonatul primește un mesaj într-o perioadă scurtă de timp după ce interlocutorul l-a trimis.

Cele mai comune mijloace moderne de comunicare interactivă sunt aplicațiile Web care acceptă următoarele forme de comunicare:

o Cărți de oaspeți. Prima și cea mai simplă formă. Cea mai simplă carte de oaspeți este o listă de mesaje, afișate de la cel mai recent la primul, fiecare dintre acestea fiind lăsat în ea de către un vizitator.

o Forumuri. Primele forumuri au apărut ca o îmbunătățire a cărților de oaspeți și au organizat mesajele în fire - la fel ca grupurile de știri. Mesajele utilizatorilor din forumuri sunt grupate pe subiecte, care sunt de obicei stabilite de primele mesaje. Toți vizitatorii pot vedea subiectul și își pot posta mesajul - ca răspuns la cele deja scrise. Subiectele sunt grupate în forumuri tematice, iar sistemul este gestionat de administratori informali și moderatori. Cele mai dezvoltate forumuri încep să aibă primele semne ale rețelelor sociale - între participanți pot fi stabilite conexiuni sociale pe termen lung, bazate pe interese.

o Bloguri(Web Log - Web log, Web protocol). În aceste servicii, fiecare participant își păstrează propriul jurnal - lasă intrările în ordine cronologică. Subiectele intrărilor pot fi orice; cea mai comună abordare este să păstrezi un blog ca propriul tău jurnal. Alți vizitatori pot lăsa comentarii la aceste postări. În acest caz, utilizatorul, pe lângă capacitatea de a-și menține propriul jurnal, are posibilitatea de a organiza o vizualizare de listă - o listă de intrări din jurnalele „prietenilor”, de a reglementa accesul la intrări și de a căuta interlocutori pe baza interese. Pe baza unor astfel de sisteme se creează comunități de interese - reviste care sunt întreținute colectiv. Într-o astfel de comunitate, membrii săi pot posta liber orice mesaj legat de activitățile comunității.

În general, toate sistemele moderne de asigurare a funcționării comunităților online au câteva caracteristici comune:

· Marea majoritate a comunităților asigură înregistrarea utilizatorilor, de ex. Fiecare participant trebuie să aibă un cont. La înregistrare, utilizatorul oferă câteva informații despre el însuși pentru identificare. Aproape toate sistemele necesită introducerea unei adrese de e-mail și verificarea funcționalității acesteia prin trimiterea unui e-mail cu un cod de activare cont. Dacă adresa este incorectă, doar administratorul de sistem poate activa intrarea. Această abordare garantează, într-o anumită măsură, unicitatea participantului și identificabilitatea acestuia.

· Munca în mediu se desfășoară în sesiuni. Fiecare sesiune începe cu utilizatorul care își introduce numele și confirmă identitatea prin introducerea unei parole. Pentru comoditate, participarea la sesiune este de obicei ascunsă utilizatorului prin mijloace tehnice, dar, cu toate acestea, utilizatorul este identificat în mod constant.

· Pe lângă acreditări, utilizatorul personalizează mediul - aspect, date suplimentare despre el însuși, indică interesele sale, contactele dorite, subiecte pentru comunicare etc.

· Rețelele sociale și serviciile care le susțin s-au dovedit a fi extrem de metoda eficienta asigurarea traficului pe site, părere, acestea au devenit treptat unul dintre mijloacele de umplere a conținutului site-ului cu conținut care are o reală valoare comercială și socială.

Pe baza acestei din urmă abordari, un număr destul de mare de servicii web sociale, unite denumirea comună Servicii Web 2.0. Puteți specifica câteva astfel de resurse:

o Marcaje sociale. Unele site-uri web permit utilizatorilor să partajeze cu alții o listă de marcaje sau site-uri web populare. Astfel de site-uri pot fi folosite și pentru a găsi utilizatori cu interese comune. Exemplu: delicios.

o Directoare sociale reaminti marcaje sociale, dar sunt axate pe utilizarea în domeniul academic, permițând utilizatorilor să lucreze cu o bază de date de citări din articole științifice. Exemple: Academic Search Premier, LexisNexis Academic University, CiteULike, Connotea.

o Biblioteci sociale sunt aplicații care permit vizitatorilor să lase link-uri către colecțiile lor, cărțile și înregistrările audio care sunt disponibile pentru alții. Este oferit suport pentru un sistem de recomandări și evaluări. Exemple: discogs.com, IMDb.com.

o Jocuri online multiplayer simula lumi virtuale cu diverse sisteme punctaj, niveluri, competiție, câștigători și învinși. Exemplu: World of Warcraft.

o Multilingv social media vă permit să stabiliți legături sociale între oamenii care vorbesc limbi diferite. În acest caz, se folosește un software special care vă permite să traduceți expresii dintr-o limbă în alta în timp real. Exemple: Dudu.

o Rețele geosociale formează conexiuni sociale pe baza locației geografice a utilizatorului. În acest caz, sunt utilizate diverse instrumente de geolocalizare (de exemplu, GPS sau sisteme hibride precum tehnologia AlterGeo), care fac posibilă determinarea locației curente a unui utilizator și corelarea poziției acestuia în spațiu cu locația. diverse locuriși oamenii din jur.

o Rețele sociale profesionale sunt create pentru comunicare pe teme profesionale, schimb de experiență și informații, căutare și oferta de posturi vacante, dezvoltare legături de afaceri. Exemple: Doctor la locul de muncă, Professionals.ru, MyStarWay.com, LinkedIn, MarketingPeople, Viadeo.

o Serviciu rețele sociale permite utilizatorilor să se unească online în jurul intereselor, hobby-urilor lor comune sau din diverse motive. De exemplu, unele site-uri oferă servicii care permit utilizatorilor să posteze acces public informațiile personale necesare pentru a găsi parteneri. Exemple: LinkedIn, VKontakte.

o Rețele sociale comerciale se concentrează pe sprijinirea tranzacțiilor comerciale și pe construirea încrederii oamenilor în mărci, ținând cont de opiniile lor despre produs, permițând astfel consumatorilor să participe la promovarea produsului și creșterea gradului de conștientizare a acestora.

Trebuie remarcat faptul că, ca orice clasificare, clasificarea noastră a arhitecturilor sistemelor informaționale nu este absolut rigidă. În arhitectura oricărui sistem informațional dat se pot găsi adesea influențele mai multor comune solutii arhitecturale. Cu toate acestea, atunci când proiectați arhitectural un sistem, pare util să aveți o bază arhitecturală cel puțin parțial ortogonalizată. În următoarele părți ale cursului, ne vom uita în detaliu la caracteristicile fiecărei arhitecturi și ne vom concentra pe metodologiile și instrumentele instrumentale și tehnologice care sprijină proiectarea și dezvoltarea sistemelor informaționale în arhitectura corespunzătoare.

2.1. Fişier- aplicații server

Aparent, organizarea sistemelor informaționale bazate pe utilizarea serverelor de fișiere dedicate este încă cea mai comună datorită disponibilității cantitate mare calculatoare personale diferite niveluri dezvoltarea și ieftinitatea comparativă a legării PC-ului în rețele locale. De ce o astfel de organizație atrage dezvoltatori de sisteme informatice care nu sunt foarte experimentați în domeniul programării sistemelor? Cel mai probabil, faptul că atunci când se bazează pe arhitecturi de server de fișiere, se păstrează autonomia aplicației (și a majorității sistemului) software care rulează pe fiecare rețea de PC. De fapt, componentele sistemului informatic care rulează pe diferite PC-uri interacționează doar datorită prezenței unei stocări comune de fișiere, care este stocată pe un server de fișiere. În cazul clasic, nu doar programele de aplicație sunt duplicate pe fiecare PC, ci și instrumentele de gestionare a bazelor de date. Serverul de fișiere este o extensie de memorie de disc partajată de toate PC-urile complexului (Figura 2.1).

Fără să ne oprim în detaliu asupra celor promițătoare disponibile pe piața actuală unelte dezvoltarea aplicațiilor server de fișiere și fără a oferi o analiză a tendințelor în dezvoltarea tehnologiilor relevante (acea de-a treia parte a cursului este dedicată acestui lucru), vom enumera pe scurt principalele avantaje și dezavantaje ale arhitecturilor server de fișiere.

Desigur, principalul avantaj este simplitatea organizării. Proiectanții și dezvoltatorii de sisteme informaționale se află în condițiile familiare și confortabile ale unui PC IBM în mediul MS-DOS, Windows sau orice alt mediu ușor. Varianta Windows N.T. Există instrumente convenabile și dezvoltate pentru dezvoltarea unei interfețe grafice cu utilizatorul, instrumente ușor de utilizat pentru dezvoltarea sistemelor de baze de date și/sau DBMS. Dar în multe privințe această simplitate este evidentă. (Așa cum spune proverbul rus, „Simplitatea este mai rea decât furtul”, iar aici, de regulă, avem simplitatea bazată pe furt produse software pentru PC.)

Orez. 2.1. Performanță clasică sistem informatic în arhitectura file-server

În primul rând, sistemul informațional va trebui să funcționeze cu baza de date. Prin urmare, această bază de date trebuie concepută. Din anumite motive, dezvoltatorii de aplicații server de fișiere cred adesea că, datorită simplității instrumentelor de gestionare a bazelor de date, problema designului bazei de date poate fi neglijată. Desigur, acest lucru este greșit. O bază de date este o bază de date. Cu cât este mai bine proiectat, cu atât sunt mai mari șansele de a utiliza ulterior sistemul informațional în mod eficient. Desigur, complexitatea proiectării bazei de date este determinată de complexitatea obiectivă a domeniului subiectului modelat. Dar, de fapt, din ce ar trebui să rezulte că aplicațiile server de fișiere sunt potrivite doar în domenii simple?

În al doilea rând, așa cum am subliniat în mod repetat în prima parte a cursului, cerințele necesare pentru baza de date a unui sistem informațional sunt menținerea integrității sale și fiabilitatea garantată a stocării informațiilor. Condițiile minime în care aceste cerințe pot fi îndeplinite sunt:

    prezența managementului tranzacțional, stocarea datelor redundante (de exemplu, folosind metode de înregistrare), capacitatea de a formula constrângeri de integritate și de a verifica conformitatea acestora.

În principiu, o organizare de server de fișiere, așa cum se arată în Figura 2.1, nu contrazice respectarea condițiilor menționate. Un exemplu de sistem care îndeplinește aceste condiții, dar se bazează pe o arhitectură de server de fișiere, este fostul popular „server de baze de date” Informix SE.

Notă lungă:
Pentru a menține claritatea prezentării ulterioare, trebuie să clarificăm oarecum terminologia. Nu degeaba am scris „server de baze de date” între ghilimele în legătură cu DBMS-ul Informix SE. Când utilizați acest sistem, o copie software SGBD a fost suportat pentru fiecare sesiune inițiată de utilizator cu SGBD. Aproximativ, pentru fiecare proces utilizator care interacționează cu baza de date, a fost creat un proces de serviciu DBMS, care rula pe același procesor ca și procesul utilizatorului (adică, pe partea clientului). Fiecare dintre aceste procese de serviciu s-a comportat virtual ca și cum ar fi singurul reprezentant al SGBD. Toată sincronizarea posibilelor lucrări paralele cu baza de date a fost efectuată la nivelul fișierelor de memorie externă care conțin baza de date. Să fim de acord de acum înainte să numim astfel de SGBD-uri nu servere de baze de date, ci sisteme de gestionare a bazelor de date bazate pe arhitectura server de fișiere (DBMS-FS).

Prin un adevărat server de baze de date vom înțelege o entitate software legată de bazele de date corespunzătoare, existentă, în general, independent de existența proceselor utilizator (client) și executată, în general (deși nu neapărat) pe hardware dedicat (noi intenționat. Folosim termeni nu foarte specifici „educație software” și „hardware dedicat”, deoarece implementarea lor specifică diferă în servere diferite baze de date).

Adevăratele servere de baze de date sunt mult mai complexe în organizare decât DBMS-FS, dar oferă un management mai subtil și mai eficient al bazelor de date. Pe tot parcursul acestui curs, când vom folosi termenul „server baze de date”, ne vom referi la adevărate servere de baze de date.

Dar, pe de altă parte, în majoritatea SGBD-urilor personale aceste condiții nu sunt îndeplinite nici măcar cu ajutorul tehnicilor brute. ÎN cel mai bun scenariu Este posibil să se compenseze parțial deficiențele la nivelul programului de aplicație.

În al treilea rând, interfața serverelor de baze de date dezvoltate se bazează pe utilizarea unui limbaj de bază de date de nivel înalt date SQL, care vă permite să utilizați trafic de rețeaîntre client și serverul bazei de date numai în scopuri utile(operatorii sunt trimiși în principal de la client la server Limbajul SQL, de la server la client - rezultatele operatorilor executori). Într-o organizație de server de fișiere, clientul lucrează cu fișiere șterse, ceea ce determină o supraîncărcare semnificativă a traficului (întrucât DBMS-FS funcționează pe partea client, pentru a prelua date utile, în cazul general, este necesară vizualizarea întregului fișier corespunzător pe partea client).

În general, într-o arhitectură de server de fișiere avem un client „gros” și un server foarte „subțire”, în sensul că aproape toată munca se face pe partea clientului, iar serverul necesită doar o capacitate suficientă de stocare pe disc (Figura 2.2). ).

Orez. 2.2. Client „gros” și server „subțire” în arhitectura serverului de fișiere

Scurte concluzii. Simplă, la scară mică și pregătită pentru un singur utilizator, o aplicație server de fișiere poate fi proiectată, dezvoltată și depanată foarte rapid. Foarte des pentru firma mica Pentru a menține, de exemplu, evidența personalului, este suficient să aveți un sistem izolat care rulează pe un computer separat. Desigur, și în acest caz, utilizatorii finali (sau administratorii, a căror disponibilitate în acest caz este îndoielnică), necesită o mare atenție pentru a stoca și a menține în siguranță integritatea datelor. Cu toate acestea, în cazuri ceva mai complexe (de exemplu, la organizarea unui sistem informațional pentru a susține un proiect realizat de un grup), arhitecturile serverului de fișiere devin insuficiente.

Aplicații client-server

Sub aplicație client-server vom înțelege un sistem informațional bazat pe utilizarea serverelor de baze de date (vezi nota lungă de la sfârșitul secțiunii 2.1). O reprezentare generală a unui sistem informațional într-o arhitectură client-server este prezentată în Figura 2.3.

    Pe partea de client, se execută codul aplicației, care include în mod necesar componente care acceptă interfața cu utilizatorul final, produc rapoarte și efectuează alte funcții specifice aplicației (deocamdată, nu ne vom preocupa de modul în care este construit codul aplicației ). Partea client a aplicației interacționează cu partea client a software-ului de gestionare a bazei de date, care, de fapt, este reprezentantul individual al SGBD pentru aplicație.

(Aici din nou apar neajunsuri de terminologie. De obicei, atunci când o companie anunță lansarea unui alt server de baze de date, se înțelege implicit că există și o componentă client a acestui produs. Combinația „partea client a serverului de baze de date” pare oarecum ciudată, dar va trebui să folosim acest termen.)

Orez. 2.3. Reprezentarea generală a unui sistem informațional într-o arhitectură client-server

Rețineți că interfața dintre partea client a aplicației și partea client a serverului bazei de date se bazează de obicei pe utilizarea limbajului SQL. Prin urmare, funcții precum, de exemplu, preprocesarea formularelor destinate interogărilor bazei de date sau generarea de rapoarte rezultate sunt efectuate în codul aplicației.

În cele din urmă, partea client a serverului bazei de date, folosind instrumente de acces la rețea, accesează serverul bazei de date, transmițându-i textul instrucțiunii SQL.

Mai trebuie făcute două observații aici.

De obicei, companiile care produc servere de baze de date avansate se străduiesc să se asigure că produsele lor pot fi utilizate nu numai în rețelele standard de astăzi bazate pe TCP/IP, ci și în rețelele bazate pe alte protocoale (de exemplu, SNA sau IPX/SPX). Prin urmare, atunci când se organizează interacțiuni de rețea între părțile client și server ale SGBD, nu mijloace standard nivel înalt (de exemplu, mecanisme de cuiburi software sau apeluri de proceduri la distanță), dar propriile instrumente similare funcțional, mai puțin dependente de caracteristicile protocoalelor de transport în rețea. Când vorbim despre o interfață bazată pe limbajul SQL, trebuie să fim conștienți de faptul că, în ciuda eforturilor titane de a standardiza acest limbaj, nu există nicio implementare în care caracteristicile limbajului standard să nu fie extinse. Utilizarea neglijentă a extensiilor de limbă duce la dependența completă a aplicației de un anumit producător de server de baze de date.

Să vedem acum ce se întâmplă pe partea serverului bazei de date. În produsele aproape tuturor companiilor, serverul primește textul operatorului în SQL de la client.

    Serverul compilează instrucțiunea rezultată. Nu ne vom opri aici asupra limbajului țintă folosit de un anumit compilator; Diferite implementări au abordări diferite (vezi Partea 4 pentru exemple). Principalul lucru este că, în orice caz, pe baza informațiilor conținute în tabelele din catalogul bazei de date, reprezentarea non-procedurală a operatorului este convertită într-o procedură de executare a acesteia. În continuare (dacă compilarea este finalizată cu succes), instrucțiunea este executată. Din nou, nu vom discuta detalii tehnice, deoarece acestea variază între implementări. Să ne uităm la posibilele acțiuni ale instrucțiunilor SQL.
      Un operator poate aparține clasei de operatori pentru definirea (sau crearea) obiectelor bazei de date (ar fi mai corect și mai corect să vorbim despre elementele schemei bazei de date sau despre obiectele metadatelor). În special, pot fi definite domenii, tabele, constrângeri de integritate, declanșatoare, privilegii de utilizator și proceduri stocate. În orice caz, atunci când se execută instrucțiunea de creare a elementului de schemă a bazei de date, informațiile corespunzătoare sunt plasate în tabelele catalogului bazei de date (în tabelele metadatelor). Constrângerile de integritate sunt de obicei stocate în metabase de date direct într-o reprezentare textuală. Pentru acțiunile definite în declanșatoare și procedurile stocate, codul executabil procedural este generat și stocat în tabele de catalog. Rețineți că constrângerile de integritate, declanșatoarele și procedurile stocate sunt, într-un fel, reprezentanți ai aplicației din baza de date întreținută de server; ele formează baza backend-ului aplicației (vezi mai jos). Când sunt executate instrucțiuni de preluare a datelor, pe baza conținutului tabelelor afectate de interogare și, eventual, folosind indecși menținuți în baza de date, se formează un set de rezultate de date (nu folosim în mod intenționat termenul „tabel de rezultate” aici deoarece, în funcție de tipul specific de declarație, rezultatul poate fi ordonat, iar tabelele, adică relațiile sunt neordonate prin definiție). Partea de server a SGBD trimite rezultatul către partea client, iar procesarea finală este efectuată în partea client a aplicației. La executarea instrucțiunilor de modificare a conținutului bazei de date (INSERT, UPDATE, DELETE), se verifică să nu fie încălcate constrângerile de integritate definite în acest moment (cele care se verifică imediat), după care se efectuează acțiunea corespunzătoare (însoțită de modificarea tuturor indecși relevanți și modificări de jurnal). Apoi, serverul verifică dacă această modificare afectează condiția de declanșare a oricărui declanșator și, dacă este detectat un astfel de declanșator, execută procedura pentru acțiunea sa. Această procedură poate include operatori suplimentari modificări ale bazei de date care pot provoca declanșarea altor declanșatori etc. Putem lua în considerare acele acțiuni care sunt efectuate pe serverul bazei de date atunci când verificăm satisfacerea constrângerilor de integritate și când declanșatoarele sunt declanșate pentru a reprezenta acțiunile părții server a aplicației. Atunci când executați instrucțiuni de modificare a schemei bazei de date (adăugarea sau eliminarea coloanelor din tabelele existente, schimbarea tipului de date al unei coloane existente a unui tabel existent etc.), declanșatoarele se pot declanșa, adică, cu alte cuvinte, partea de server a aplicației poate fi executat. De asemenea, declanșatoarele se pot declanșa atunci când obiectele schemei bazei de date (domenii, tabele, constrângeri de integritate etc.) sunt distruse. O clasă specială de instrucțiuni SQL sunt cele care apelează proceduri stocate definite anterior și care sunt stocate în baza de date. Dacă o procedură stocată este definită folosind un limbaj suficient de avansat care include atât instrucțiuni SQL non-procedurale, cât și constructe pur procedurale (de exemplu, limbajul PL/SQL Oracle), atunci o parte semnificativă a aplicației poate fi plasată într-o astfel de procedură, care , când instrucțiunea de apel de procedură este executată, va fi executată pe partea serverului, nu pe partea clientului. La executarea instrucțiunii de finalizare a tranzacției, serverul trebuie să verifice respectarea tuturor așa-numitelor constrângeri de integritate amânată (astfel de restricții includ restricții impuse asupra conținutului întregului tabel al bazei de date sau asupra mai multor tabele în același timp; de exemplu, salariul total al Departamentul 999 de angajați nu ar trebui să depășească 150 de milioane de ruble .). Din nou, verificarea constrângerilor de integritate amânată poate fi tratată ca o execuție pe partea de server a aplicației.

După cum puteți vedea, într-o organizație client-server, clienții pot fi destul de „subțiri”, iar serverul trebuie să fie suficient de „gros” pentru a putea satisface nevoile tuturor clienților (Figura 2.4).

Orez. 2.4. Client „subțire” și server „gros” în arhitectura client-server

Pe de altă parte, dezvoltatorii și utilizatorii de sisteme informatice bazate pe o arhitectură client-server sunt adesea nemulțumiți de supraîncărcarea constantă a rețelei care rezultă din necesitatea de a contacta clientul la fiecare solicitare ulterioară. În practică, o situație comună este când munca eficienta Componenta client individual a sistemului informațional necesită de fapt doar o mică parte din baza de date generală. Acest lucru duce la ideea de a menține un cache local al bazei de date partajate pe fiecare parte a clientului.

De fapt, conceptul de stocare în cache a bazelor de date locale este un caz special al conceptului de baze de date replicate (sau, așa cum sunt uneori numite în literatura în limba rusă, replicate). Ca în general, pentru a suporta o bază de date cache locală, software-ul stației de lucru trebuie să conțină o componentă de gestionare a bazei de date - o versiune simplificată a serverului de baze de date, care, de exemplu, poate să nu ofere acces multi-utilizator. O problemă separată este asigurarea coerenței (coerenței) între cache și baza de date comună. Posibil aici diverse solutii- de la menținerea automată a coerenței prin intermediul software-ului de bază de gestionare a bazelor de date până la externalizarea completă a acestei sarcini către strat de aplicație. În orice caz, clienții devin mai groși fără a face serverul mai subțire (Figura 2.5).

Orez. 2.5. Client „Fat” și server „Fat” într-o arhitectură client-server cu suport pentru cache-ul local pe partea clientului

Să formulăm câteva concluzii preliminare. La prima vedere, arhitectura client-server pare mult mai scumpă decât arhitectura file-server. Necesită echipamente mai puternice (conform macar, pentru server) și instrumente semnificativ mai avansate de gestionare a bazelor de date. Cu toate acestea, acest lucru este doar parțial adevărat. Un avantaj uriaș al arhitecturii client-server este scalabilitatea și, în general, capacitatea de dezvoltare.

La proiectarea unui sistem informatic bazat pe această arhitectură, ar trebui să se acorde mai multă atenție cunoașterii soluțiilor generale. Mijloace tehnice Versiunea pilot poate fi minimă (de exemplu, una dintre stațiile de lucru poate fi folosită ca bază hardware a serverului de baze de date). După crearea unei versiuni pilot, trebuie să efectuați mai multe muncă de cercetare pentru a afla blocajele sistemului. Numai după aceasta este necesar să se ia o decizie cu privire la alegerea hardware-ului serverului care va fi utilizat în practică.

Creșterea dimensiunii sistemului informațional nu dă naștere unor probleme fundamentale. Soluția obișnuită este înlocuirea hardware-ului serverului (și, probabil, a hardware-ului stației de lucru, dacă este necesară o tranziție la stocarea în cache a bazei de date locale). În orice caz, partea aplicativă a sistemului informațional nu este practic afectată. În mod ideal, ceea ce, desigur, nu există, sistemul informațional continuă să funcționeze normal după schimbarea echipamentului.

Acest articol se adresează atât dezvoltatorilor începători, cât și utilizatorilor de Internet experimentați. Scopul său este de a evidenția unele tehnologii moderne de internet, inclusiv cele care au apărut în ultimii doi-trei ani.

cândva, în zorii dezvoltării Internetului, creatorii World wide web l-a imaginat ca pe un spațiu comun pentru schimbul de informații. Internetul a existat inițial ca o rețea centrată pe documente, iar primele site-uri web au fost servere de fișiere primitive care returnau pagini HTML statice clienților care le solicitau. Astfel de site-uri nu sunt încă neobișnuite astăzi sunt create mici pagini web personale, precum și site-uri ale companiilor mici care nu pretind altceva decât faptul că sunt prezente pe Internet, unde o cantitate relativ mică de informații; nu se schimba prea des este de obicei postat .

În procesul de dezvoltare, internetul s-a transformat treptat dintr-un set de resurse informaționale într-un instrument care ajută la îmbunătățirea eficienței. activitatile companiei, și apoi într-unul dintre principalele mijloace de a face afaceri. Tehnologiile pentru crearea site-urilor web corporative s-au dezvoltat în mod similar, treptat, au inclus instrumente de implementare a interactivității, personalizarea conținutului informațional, interacțiunea cu clienții, precum și instrumente de integrare cu sistemele informaționale corporative și instrumente de management al întreprinderii; Au apărut și instrumente specializate pentru crearea infrastructurii aplicațiilor web corporative, a căror implementare, în general, nu necesită programare (puteți citi despre ele în articolul „Infrastructura soluțiilor de internet corporative” din acest număr special). Cu toate acestea, marea majoritate atât a instrumentelor pentru crearea infrastructurii aplicațiilor web corporative, cât și a soluțiilor personalizate individuale se bazează pe un număr relativ mic de tehnologii de dezvoltare a aplicațiilor web, despre care vom vorbi în acest articol.

Tehnologii client

Tehnologiile pentru crearea aplicațiilor web pot fi împărțite în bazate pe client (adică utilizate de browsere web și alți clienți bazați pe web, cum ar fi aplicații de birou sau clienți de mesagerie instantanee) și bazate pe server (adică utilizate pe servere web).

Tehnologiile client sunt utilizate în principal pentru a crește interactivitatea aplicațiilor, de exemplu, pentru a verifica corectitudinea datelor introduse fără acces suplimentar la server și pentru a crea o interfață de utilizator convenabilă. Astfel, browserele web moderne și unele clienți de e-mail capabil să interpreteze codul în limbaje de scripting, să execute applet-uri Java și controale ActiveX și să utilizeze alte suplimente, cum ar fi Macromedia Flash Player, vizualizatoare de prezentare QuickTime și instrumente de redare multimedia.

Cod interpretat de browser

Majoritatea browserelor web moderne, construite pentru diverse platforme și dispozitive, sunt capabile să interpreteze codul încorporat într-o pagină HTML în limbaje de scripting precum VBScript și JavaScript. Exemplele tipice de utilizare a codului client încorporat includ verificarea corectitudinii introducerii utilizatorului fără a contacta serverul web, crearea anumitor elemente de design, cum ar fi butoanele și meniurile pop-up și gestionarea altor obiecte încorporate într-o pagină HTML.

Codul interpretat de browser rulează în propriul spațiu de adrese. Un astfel de cod are un set destul de limitat de facilități (în special, nu poate accesa Sistemul de fișiere computer client sau rulați alte aplicații pe acesta). Cu toate acestea, majoritatea browserelor vă permit să dezactivați execuția codului în limbaje de scripting, deoarece orice execuție a codului pe computerul client poate fi nesigură (de exemplu, din cauza unor erori în implementarea interpretului acestui cod în browser) .

Applet-uri Java

Aproape toate browserele moderne sunt capabile să afișeze și să execute applet-uri Java - aplicații speciale Java, un link către care este încorporat într-o pagină web. Appleturile pot rula pe toate platformele pentru care există mașini virtuale Java. Modul în care appleturile interacționează cu un computer client este, de asemenea, limitat, de exemplu, sistemul de fișiere și aplicațiile acestuia nu le sunt accesibile, iar accesul la rețea de la un applet este posibil doar computerului de pe care a fost descărcat. Cu toate acestea, appletul poate fi controlat prin specificarea parametrilor săi (de exemplu, culoare, font etc.) în textul paginii HTML care îl conține sau în codul în limbaje de scripting ale aceleiași pagini.

Majoritatea browserelor au accesibil utilizatorului mijloace de limitare a capacităților de execuție ale applet-urilor, deoarece acestea, la fel ca interpreții limbajelor de scripting, implementează execuția codului pe computerul client și nimeni nu poate oferi o garanție absolută a absenței erorilor în implementarea mașinii Java care execută appletul.

controale ActiveX

Unele dintre browserele moderne (în special Microsoft Internet Explorer) poate servi ca containere pentru controale ActiveX servere COM speciale care rulează în spațiul de adrese ale browserului. Link-uri către astfel de controale pot fi conținute într-o pagină web. Controalele ActiveX în sine sunt biblioteci încărcate dinamic care se execută în spațiul de adrese al browserului.

Folosind controalele ActiveX, precum și utilizarea applet-urilor Java, puteți implementa orice funcționalitate; Mai mult decât atât, spre deosebire de appleturile Java, execuția controalelor ActiveX nu este în general supusă niciunei restricții privind accesul la fișiere și alte resurse ale sistemului de operare și rețelei, iar codul conținut în acestea este executat în numele utilizatorului care le-a descărcat. La fel ca appleturile Java, controalele ActiveX își pot citi proprietățile din pagina care le conține; În plus, proprietățile unui control ActiveX pot fi modificate dinamic din codul în limbaje de scripting conținute în aceeași pagină; în același cod puteți procesa evenimente care apar în astfel de controale (această tehnologie se numește scripting ActiveX).

Desigur, browserele care acceptă execuția controalelor ActiveX conțin mijloace de limitare a funcționalității acestora, de la interzicerea controlului lor din codul în limbaje de scripting până la interzicerea completă a descărcarii lor de pe Internet. În plus, puteți plasa o semnătură digitală electronică în interiorul unui control ActiveX, iar dacă, după adăugarea acestei semnături, fișierul cu controlul ActiveX este modificat, utilizatorul va fi anunțat despre acest lucru înainte de a lansa controlul. Cu toate acestea, prezența semnatura electronica nu garantează în cel mai bun caz absența conținutului potențial dăunător, vă permite să identificați sursa acestuia;

Rețineți că controalele ActiveX de astăzi sunt utilizate în principal pe intranet-uri, mai degrabă decât pe site-urile web publice.

Aplicații Macromedia Flash

O altă tehnologie web foarte populară care se bazează pe executarea codului într-o aplicație client este aplicațiile Macromedia Flash. Macromedia Flash Player, ca și mașina virtuală Java, are dizabilități din punct de vedere al accesului la resursele calculatorului client. Asa de, Aplicații flash nu au acces la sistemul de fișiere, cu excepția directorului de servicii Macromedia Flash Player, iar accesul la dispozitivele externe este limitat la microfoane și camere video. Accesul la resursele rețelei este limitat la domeniul de la care a fost primit. aceasta aplicație. Rețineți că, la fel ca aplicațiile Java și controalele ActiveX, aplicațiile Flash pot fi controlate folosind Cod JavaScript, prezent pe aceeași pagină. Deoarece Macromedia Flash Player pentru Microsoft Internet Explorer este în sine un control ActiveX, acesta utilizează unele dintre capabilitățile controalelor ActiveX pentru a accesa proprietățile aplicației Flash din limbaje de scripting.

Există o serie de alte instrumente, de obicei implementate sub formă de așa-numite plug-in-uri, care sunt cod executabil. În același timp, browserele moderne au mijloace de a limita capabilitățile asociate cu încărcarea și execuția lor.

Toate instrumentele de mai sus pentru extinderea funcționalității paginilor HTML pot fi utilizate și în paginile dinamice generate de aplicațiile web de pe partea serverului. pagini similare poate conține link-uri către controale ActiveX, aplicații Flash, applet-uri. Dar cele mai utilizate sunt instrumentele pentru crearea de aplicații web care rulează sub controlul serverelor web și generează pagini HTML dinamice cu cod încorporat în ele în limbaje de scripting, destinate interpretării de către browser.

Tehnologii de server

Cerințele de bază de securitate necesită ca capabilitățile asociate cu execuția codului în clienții web să poată fi limitate semnificativ, cel puțin, prin administrarea aplicațiilor client. În acest caz, orice aplicație mai mult sau mai puțin serioasă bazată exclusiv pe utilizarea tehnologiilor clientului este într-o anumită măsură sortită eșecului din cauza faptului că condițiile necesare funcționării acesteia pot să nu îndeplinească cerințele corporative. securitatea informatiei adoptate într-o anumită companie. Acesta este unul dintre motivele dezvoltării masive și utilizării pe scară largă a tehnologiilor legate de execuția codului aplicației pe serverele web în sine.

Scripturi și executabile

Una dintre primele tehnologii pentru crearea de aplicații web care rulează pe servere a fost Common Gateway Interface (CGI). A făcut posibilă crearea și rularea aplicațiilor server care sunt accesate prin specificarea numelui lor (și uneori a parametrilor) în adresa URL. Informațiile de intrare pentru astfel de aplicații sunt conținutul antetului HTTP sau corpul cererii, în funcție de protocolul utilizat. Aplicațiile CGI sunt aplicații de consolă care generează cod HTML care este trimis către browser. Astfel de aplicații pot fi cod în limbaje de scripting, interpretate pe server sau un fișier executabil care poate fi creat folosind aproape orice instrument de dezvoltare care generează aplicații de consolă pentru sistemul de operare sub care funcționează serverul web.

Problema principală cu toate aplicațiile CGI este că la fiecare solicitare a clientului, serverul încarcă aplicația cu hard diskîntr-un proces separat și apoi începe execuția și descărcarea acestuia. Această caracteristică limitează performanța aplicației și capacitatea de a procesa simultan un număr mare de solicitări ale clienților.

Biblioteci încărcate în spațiul de adrese ale serverului web

Problema performanței limitate a aplicațiilor web care rulează într-un spațiu de adrese separat poate fi rezolvată prin crearea aplicației ca o bibliotecă care este încărcată în spațiul de adrese al serverului web și, dacă este necesar, rămâne acolo pentru a gestiona solicitările ulterioare de la alți clienți (este clar ca in acest caz web-serverul trebuie sa suporte incarcarea unor astfel de biblioteci). Aplicații similare pentru Microsoft Internet Information Service se numesc ISAPI (Internet Server Application Program Interface), iar astfel de biblioteci pentru foarte popularul server web Apache sunt numite Apache DSO (Dynamic Shared Objects). Aceste tehnologii există deja de ceva timp. perioadă lungă de timp, dar sunt încă destul de populare.

Aplicații web bazate pe utilizarea bibliotecilor încărcate în spațiul de adrese al serverului web

Rețineți că atunci când creați atât aplicații CGI, cât și ISAPI, este destul de dificil să separați sarcinile de proiectare de sarcinile asociate cu implementarea funcționalității și logicii aplicațiilor care generează pagini web întregi;

Pagini web cu fragmente de cod de server

ASP și ASP.NET

Următorul pas în dezvoltarea tehnologiilor pentru crearea de aplicații Internet a fost apariția instrumentelor care fac posibilă separarea sarcinilor de web design de sarcinile asociate cu implementarea funcționalității aplicației. Prima astfel de tehnologie a fost Active Server Pages (ASP). Ideea principală a ASP este de a crea pagini web cu fragmente de cod încorporate în ele în limbaje de scripting. Cu toate acestea, spre deosebire de mijloacele de utilizare a limbajelor de scripting pentru a extinde funcționalitatea browserelor discutate mai sus, aceste fragmente de cod sunt interpretate nu de browser, ci de o bibliotecă ISAPI destinată acestui scop, care face parte din Internet Information Server. . Fragmentul de cod încorporat este înlocuit cu rezultatul execuției sale, iar pagina dinamică rezultată este transmisă browserului utilizatorului.

Una dintre cele mai populare tehnologii de astăzi care implementează ideea de a crea pagini web cu fragmente de cod este cheia ASP .NET în arhitectura Microsoft .NET Framework. Principala diferență dintre această tehnologie și ASP în ceea ce privește arhitectura aplicației este că codul prezent pe pagina web nu este interpretat, ci mai degrabă compilat și stocat în cache, ceea ce ajută la îmbunătățirea performanței aplicației. În plus, această tehnologie vă permite să creați așa-numitele componente de server care returnează codul HTML în browser cu fragmente de cod interpretate de browser în limbaje de scripting și pot oferi o interfață de utilizator mai convenabilă decât codul HTML obișnuit. Caracteristicile importante ale componentelor serverului ASP .NET sunt capacitatea de a procesa evenimentele care apar într-o aplicație client pe server și capacitatea de a genera cod HTML, WML și CHTML în funcție de tipul de client și limbajele de marcare și transferul de date protocoalele pe care le suportă.

ASP .NET 2.0, o dezvoltare ulterioară a tehnologiei ASP .NET, va fi disponibil pentru dezvoltatori în cursul acestui an. Cu ajutorul acestuia, dezvoltatorii vor avea acces la un set extins de blocuri gata făcute, șabloane de pagină, interfețe de aplicație și instrumente pentru a simplifica configurarea aspect aplicații, precum și instrumente de personalizare, instrumente pentru a sprijini localizarea aplicațiilor și utilitare de implementare care vă permit să distribuiți aplicații fără a furniza cod sursa, și la componente pentru crearea portalurilor, accesarea informațiilor protejate, pentru afișarea comodă a datelor, care vă vor permite să creați aplicații web care sunt apropiate din punct de vedere al confortului și al interfeței cu utilizatorul de aplicațiile Windows.

Pagini de server Java

Alături de ASP și ASP .NET, există și alte tehnologii care implementează ideea de a plasa cod în interiorul unei pagini web care este executată de un server web. Cea mai faimoasă dintre ele astăzi este tehnologia JSP (Java Server Pages), a cărei idee principală este o compilație unică a codului Java (servlet) prima dată când este accesat, execuția metodelor acestui servlet și plasarea rezultatelor executării acestor metode într-un set de date trimis către browser.

Aplicații web bazate pe utilizarea paginilor web cu fragmente de cod de server încorporate în ele

Vorbind de tehnologia JSP, nu putem să nu menționăm specificația relativ nouă a Sun numită Java Server Faces. Această specificație descrie regulile pentru crearea aplicațiilor web cu o interfață de utilizator convenabilă (similar ca funcționalitate cu interfața aplicațiilor Windows) și dezvoltarea componentelor de server care implementează o interfață similară. Instrumentele de dezvoltare a aplicațiilor Java care acceptă această specificație ar trebui să vă permită în mod ideal să creați aplicații Web bazate pe J2EE cu aproximativ aceeași viteză și ușurință de utilizare ca instrumentele de dezvoltare de aplicații .NET.

Printre alte tehnologii populare care implementează crearea de pagini web cu fragmente de cod executate pe server, remarcăm PHP (Personal Home Pages). Această tehnologie se bazează pe utilizarea aplicațiilor CGI care interpretează codul încorporat într-o pagină HTML într-un limbaj de scripting. În ciuda deficiențelor inerente tuturor aplicațiilor CGI, PHP se bucură de o popularitate considerabilă datorită ușurinței sale de dezvoltare și disponibilității pentru diverse platforme, mai ales atunci când creează aplicații care nu au cerințe ridicate de scalabilitate și fiabilitate.

Aplicarea software-ului de infrastructură de uz general

Cu cât traficul pe site-ul web este mai mare și cu cât volumul de date pe care le prelucrează este mai mare, cu atât cerințele pentru performanța și scalabilitatea aplicațiilor web vor fi mai stricte. Cu cât problemele mai grave sunt rezolvate folosind o aplicație web, cu atât sunt mai mari cerințele pentru fiabilitatea și securitatea acesteia. Cel mai adesea, pentru a îndeplini aceste cerințe, logica de afaceri implementată într-o aplicație web, precum și serviciile de prelucrare a datelor și tranzacții, sunt separate de interfața cu utilizatorul aplicației și implementate sub formă de aplicații separate, biblioteci, servlet-uri, care sunt denumite în general. obiecte de afaceri. Astăzi, în marea majoritate a modernului solutii corporative sunt utilizate fie servere care acceptă specificația Java2 Enterprise Edition, fie servere bazate pe utilizarea serviciilor de versiune de server Windows, tehnologii COM și Microsoft .NET.

Obiectele de afaceri pot avea funcționalități diferite. De regulă, ele oferă acces la datele gestionate de unele SGBD de server, adesea acces la date din sistemele informaționale corporative. Destul de des, obiectele de afaceri implementează o parte a unui sistem informațional corporativ, a cărei creare a presupus inițial includerea unui server web extern ca parte integrantă a sistemului informațional corporativ (de exemplu, ca una dintre sursele de date pentru o aplicație CRM). ). Sistemele CRM și ERP gata făcute de la producători de top, cum ar fi SAP, PeopleSoft, Siebel, conțin de obicei obiecte de afaceri similare și, adesea, aplicații web gata făcute care le accesează, de exemplu, portaluri pentru clienți și utilizatori la distanță, aplicații pentru implementarea e-commerce și alte aplicații.

Servicii Web

sisteme de informare multe întreprinderi există de zeci de ani. Și întrucât întreprinderile și-au început adesea dezvoltarea cu automatizarea spontană a anumitor tipuri de activități, astăzi multe dintre ele se confruntă cu problema integrării aplicațiilor create de-a lungul anilor pentru platforme diferite. Un mijloc de astfel de integrare este tehnologia serviciilor web, care utilizează un standard Protocolul HTTP. Puteți crea servicii web sub formă de fișiere executabile, biblioteci și cod interpretat; exista si mijloace de reprezentare a obiectelor de afaceri pe baza diverse tehnologii, sub formă de servicii web (această tehnologie este susținută astăzi de toți producătorii de top de produse de birou), instrumente de dezvoltare, DBMS, servere de aplicații și sisteme de operare. Metodele de servicii web pot fi apelate din aplicații obișnuite, aplicații web și alte servicii web. Recent, a existat o apariție masivă a aplicațiilor care utilizează servicii web, inclusiv cele destinate utilizatorilor finali (astfel de aplicații, de exemplu, includ aplicații din familie Microsoft Office Sistem, care permite utilizarea serviciilor web pentru a utiliza date din dicționare, enciclopedii, sisteme de traducere online, servicii online de comandă de bunuri, a se vedea, de exemplu, articolul „Internet și aplicații de birou", nr. 10’2004).

În mintea multor utilizatori, un server este asociat cu un dulap înalt sau cel puțin cu o carcasă de tip Big Tower. Însuși conceptul de „server” este înconjurat de un anumit văl de mister și semnificație. Cuvântul „server” aruncat în mod obișnuit evocă gânduri respectuoase cu privire la puterea și fiabilitatea tehnologiei informației, precum și la persoana care l-a rostit. Acest articol va acoperi atât serverele care ocupă de fapt o cameră întreagă, cât și serverele entry-level care nu se pot distinge de computerele obișnuite. Articolul va consta din mai multe părți, care vor oferi o clasificare detaliată a serverelor, vorbește despre tehnologiile hardware care disting un server de un PC obișnuit, posibilitățile de combinare server-software și multe altele.

Este de remarcat faptul că subiectul tehnologiilor serverului în sine este nesfârșit - totul depinde doar de gradul de detaliu al materialului prezentat. În acest articol, am încercat să prezint materialul cât mai detaliat posibil, atât de mult încât pe alocuri vom vorbi despre arhitectura serverului la un nivel care atinge complexitățile programării în limbaj de asamblare. Cu toate acestea, sper că articolul meu va fi de interes pentru o gamă cât mai largă de cititori - de la specialiști tehnici până la utilizatori obișnuiți.


Poveste

Pentru a înțelege mai bine ce sunt serverele moderne, să ne uităm pe scurt la istoria originii lor. Inițial, toată prelucrarea electronică a datelor avea loc pe computere puternice - mainframe-urile aveau doar un terminal pentru a accesa datele; Terminalul era un afișaj alfanumeric și o tastatură care se conecta la mainframe. Mainframe-ul în sine (din engleză mainframe - rack principal) a fost un computer puternic, universal pentru deservirea simultană în masă a mai multor mii de utilizatori. La acea vreme, doar câteva companii furnizau mainframe, dar, de regulă, produsele lor erau incompatibile între ele și, prin urmare, companiile de consum erau blocate în soluțiile unui singur furnizor, care furniza tot hardware-ul și software-ul. Sistemele informatice erau foarte scumpe și trecerea de la un sistem la altul era foarte dureroasă. În 1971, Intel a dezvoltat primul microprocesor (i4004), care a făcut posibilă apariția unui computer personal - PC-ul IBM. Odată cu creșterea puterii și a numărului de PC-uri, a existat o tranziție treptată de la procesarea centralizată a informațiilor la cea distribuită (pe computere personale). Terminalele au început să fie înlocuite cu PC-uri, iar mainframe-urile au fost abandonate treptat.

Cu toate acestea, odată cu creșterea numărului de PC-uri și a puterii acestora și cu dezvoltarea rețelelor locale, a apărut din nou nevoia de stocare și procesare centralizată a datelor.

Era nevoie de un server pentru calculatoarele personale. Serverul este un dispozitiv din rețea conceput pentru a servi accesul la resurse partajate (fișiere, imprimante, baze de date, aplicații etc.).

Inițial răspândită servere de fișiere, unde utilizatorii și-au stocat și partajat datele. Odată cu creșterea rețelei globale de calculatoare Internet, a apărut o nouă direcție - serverele de telecomunicații (servere web, ftp, nume de domenii, e-mail). Odată cu dezvoltarea DBMS, din cauza modificărilor în formatul de stocare și acces la date, serverele de fișiere și-au pierdut popularitatea și au fost în mare măsură înlocuite de serverele de baze de date. Serverele de fișiere rămân până în zilele noastre, dar au dobândit o importanță secundară - sunt folosite pentru a stoca fișiere utilizator și diverse arhive. Serverele de fișiere stochează și date destinate colaborării între mai mulți utilizatori. Recent, popularitatea serverelor terminale a crescut - PC-urile utilizatorilor servesc doar ca terminal pentru afișarea și introducerea datelor, iar toate sarcinile utilizatorului sunt efectuate pe server. În acest fel, se realizează economii semnificative la un PC (chiar și computerele cu putere redusă sunt potrivite pentru rolul unui terminal), se reduc costurile de instalare și întreținere a software-ului și se rezolvă problemele de confidențialitate și securitatea datelor.

Pentru a reduce costul total de proprietate (Total Cost of Ownership - TCO), care include costurile de întreținere hardware, software și echipamente, multe companii revin astăzi la procesarea centralizată a datelor.


Clasificarea solutiilor de server

Astăzi, companiile nu sunt blocate într-un singur furnizor de hardware și software, având posibilitatea de a utiliza diverse soluții software și hardware de la diferiți producători - în primul rând, vorbim despre diferența de abordări „globale” (alegerea dintre sistemele Windows - Unix și arhitecturi CISC/RISC) .

Astăzi, principalii reprezentanți ai arhitecturii CISC (Complete Instruction Set Computer) sunt procesoarele x86 de la AMD și Intel. Strict vorbind, arhitecturile CISC/RISC sunt de fapt concepte idealizate, astfel încât clasificarea procesoarelor pe baza lor este oarecum arbitrară. Dar procesoarele x86 sunt clasificate ca procesoare CISC deoarece îndeplinesc cele mai importante caracteristici caracteristice sistemelor CISC:

  • număr relativ mic de registre scop general(16 registre pentru arhitecturi CISC clasice);
  • un număr mare de comenzi de mașină (setul de comenzi este actualizat constant datorită inovațiilor de la producători - MMX, SSE, 3DNow! etc.);
  • un număr mare de metode de adresare;
  • un număr mare de formate de comandă acceptate de diferite dimensiuni de biți;
  • predominanța formatului de comandă cu două adrese.

De astăzi, AMD și-a indicat doar prezența pe piață procesoare server, apoi mai departe vom vorbi despre dezvoltarea procesoarelor pentru server Intel.

În 1995, Intel a dezvoltat procesor Pentium Pro (150 MHz, 512 KB cache), poziționat ca server. Se deosebea de omologii săi desktop prin memoria cache mare și arhitectura avansată, împrumutate parțial de la procesoare cu Arhitectura RISC. În procesorul Pentium Pro, Intel a inclus pentru prima dată tehnologia de execuție dinamică (Dynamic Execution), adică instrucțiunile pot fi executate nu numai secvențial, ci și în paralel, folosind predicția ramurilor de cod și execuția reordonată a instrucțiunilor. Acest lucru a crescut semnificativ eficiența procesorului - numărul de instrucțiuni executate pe ciclu de ceas.

A doua inovație a fost un cache L2 mare încorporat. Pentru sistemele de server, a avea un cache mai mare este foarte important. Procesoarele funcționează întotdeauna la frecvențe de câteva ori mai mari decât frecvența memoriei. Jumătate din instrucțiunile din aplicațiile standard sunt comenzi de memorie - încărcarea și descărcarea datelor (Load-Store). Memoria se lucrează după următoarea schemă: dacă datele nu au fost găsite în memoria cache L1, urmează un acces la memoria cache L2, aceasta durează 9-16 cicluri de procesor, dacă nu există date în memoria cache L2, atunci accesarea memoria durează până la 150 de cicluri de procesor, cicluri în care procesorul așteaptă date. Un cache L2 mare crește probabilitatea accesului rapid la date și, prin urmare, crește eficiența procesorului.

Putem spune că pentru prima dată Intel folosește și testează noile sale tehnologii avansate pe procesoare de server, apoi aceste tehnologii se răspândesc treptat la computerele personale. Acest lucru s-a întâmplat deja cu memoria cache L2 integrată, execuția dinamică și hyper-threading. Urmează adresarea memoriei pe 64 de biți (EM64T).

Pentium Pro a fost urmat de alte procesoare server: în 1998 - Intel Pentium II Xeon (400-450 MHz, 1-2 MB cache), Pentium III Xeon (700-900 MHz, 1-2 MB cache). În 2001, a fost lansat un server analog al Pentium 4, Xeon, care este dezvoltat și utilizat astăzi.

Se întâmplă că astăzi Intel reprezintă aproximativ 90% din toate livrările de pe piața de servere, dar doar jumătate din veniturile din această piață ajung în buzunarele sale: segmentul de servere entry-level, unde Intel domină de la mijlocul anilor 90, este mari, dar profiturile din acesta sunt Datorită costului scăzut al produselor, acestea sunt incomparabile cu segmentul de servere puternice. De exemplu, conform informațiilor mele, astăzi în Republica Belarus există câteva mii de servere entry-level cu unul și două procesoare instalate și doar câteva servere RISC cu 48 de procesoare - costul total al sistemelor este aproximativ același. Având în vedere același cost total, profitul primit de producători din vânzarea acestor sisteme variază semnificativ. Cert este că Intel permite unui număr de producători terți să producă servere pe baza procesoarelor sale, obținând profit nu din costul întreg al serverului (5000-15000 USD), ci doar din costul componentelor sale - în principal procesoare. (adică de la 1000 -3000 USD).

Recent, Intel a luptat activ pentru acest segment cel mai profitabil al pieței de servere (sisteme cu un număr de procesoare de la 4 la 256), unde sistemele bazate pe arhitectura RISC au devenit destul de ferm stabilite. Principala speranță a Intel sunt procesoarele Intel Itanium 2 pe 64 de biți procesor Intel Itanium a rămas nepopular - din momentul în care a început să livreze sisteme operaționale bazate pe acesta și până la lansarea lui Itanium 2, conform Gartner, au fost vândute doar aproximativ 3 mii de servere bazate pe acesta (în aceeași perioadă, serverele cu procesoare RISC au fost vândute cu 4,7 milioane). ).

Arhitectura, numită computer cu un computer cu set de instrucțiuni redus (RISC), a apărut datorită faptului că, la mijlocul anilor 70 ai secolului XX, unii dezvoltatori de arhitecturi de computere au observat că chiar și computerele cu arhitectură complexă își petrec cea mai mare parte a timpului. efectuarea unor comenzi simple Regula 20/80 s-a dovedit a fi corectă, și anume, 20% din comenzi sunt folosite în 80% din cazuri, iar restul de 80% dintre comenzi sunt folosite în 20% din cazuri.

Principalele caracteristici ale conceptului de arhitectură RISC sunt:

  • lungime egală a comenzilor;
  • format de comandă uniform. Sau cel puțin nu utilizați mai mult de două sau trei formate;
  • Operanzii tuturor instrucțiunilor aritmetice și logice pot fi numai registre;
  • comenzile efectuează doar acțiuni simple;
  • executarea oricărei comenzi nu durează mai mult de un ciclu de ceas;
  • fișier registru mare;
  • doar o simplă adresare.

Principalele caracteristici ale arhitecturii RISC se găsesc în procesoarele SPARC (Scalable Processor ARChitecture). O concepție greșită comună în rândul pasionaților este aceea de a asocia arhitectura SPARC numai cu Sun. De fapt, arhitectura SPARC este o arhitectură standardizată în cadrul căreia un număr de producători produc procesoare și sisteme de calcul mari bazate pe acestea. Primul procesor SPARC a fost fabricat de Fujitsu pe baza unei matrice de poartă care funcționează la o frecvență de 16,67 MHz în 1987.

Principalii concurenți de pe această piață pentru o lungă perioadă de timp Sun Microsystems și Fujitsu au rămas. Dar nu cu mult timp în urmă, aceste companii au anunțat o nouă direcție de cooperare, care va avea ca rezultat apariția unei noi linii de sisteme APL (Advanced Product Line) pe platforma SPARC/Solaris. Această linie va apărea în 2006 și va combina toate avantajele liniilor existente Sun Fire și PrimePower. Pe piata europeana, linia PrimePower este furnizata de concern Fujitsu Siemens Calculatoare.

Aceste sisteme au fost proiectate inițial ca sisteme de calcul pentru întreprinderi pe 64 de biți la scară largă. După cum sa menționat, sistemele RISC domină clasa de servere high-end. Există o serie de motive pentru aceasta, și anume, arhitectura SPARC permite scalabilitate maximă, în plus, disponibilitatea de software specializat pentru sisteme la scară mare joacă un rol important. Serverele PrimePower folosesc sistemul de operare Solaris, care a fost dezvoltat special pentru aceste scopuri de ceva timp. Și pe piața de software pentru sistemele CISC, situația este deplorabilă: există puțin software original pentru procesoarele Itanium, iar ceea ce este disponibil nu este încă testat și „brut”, astfel încât clienții serverelor puternice se bazează pe el. Sarcinile pentru care sunt necesare astfel de mașini (modelare financiară, construirea de mari sisteme electronice comerciale etc.) necesită o fiabilitate ideală și testată în timp. Sistemele bazate pe SPARC au trecut deja acest test.

Următorul parametru pentru clasificarea serverelor este software-ul utilizat. Se poate argumenta mult timp și fără rezultat despre ceea ce este mai bun - sisteme bazate pe Bazat pe Windows sau sisteme *nix, dar piața de servere a decis în mod independent această problemă pentru ea însăși - serverele entry-level în marea majoritate a cazurilor folosesc Windows 2000/2003 Server, în timp ce serverele la nivel de întreprindere folosesc sisteme *nix (mai ales Solaris).

În opinia mea, acest lucru se datorează în primul rând faptului că, pe lângă costul direct al echipamentului, costul total (TCO) al serverelor include și costurile de administrare. Și în această lumină, administratorii Windows „cost” mult mai „ieftin” decât colegii lor care administrează sisteme *nix, ceea ce se datorează complexității suficiente a administrării unor astfel de sisteme și lipsei evidente a specialiștilor calificați corespunzători. Prin urmare, ponderea acestor cheltuieli în TCO-ul serverelor entry-level depășește semnificativ aceeași pondere în TCO-ul serverelor puternice. Iar proprietarii de sisteme RISC scumpe sunt adesea dispuși să plătească banii corespunzători specialiștilor lor, știind că o oră de nefuncționare a unui astfel de server îi va costa o sumă care depășește zeci de salarii anuale ale unui administrator de sistem.


În articolul următor voi vorbi despre clasificarea serverelor după scopul lor, cerințele de bază pentru servere și modalitățile de a realiza respectarea acestor cerințe etc.

Dacă aveți întrebări sau comentarii în timp ce citiți acest articol, vă rugăm să le trimiteți la adresa mea de e-mail.

În plus, pe 27 septembrie va avea loc la Minsk un seminar, condus de Fujitsu Siemens Computers și partenerul său din Belarus, IP ITC-M, dedicat tehnologiilor moderne de server, sistemelor de stocare a datelor, experienței în implementarea, operarea și întreținerea serverelor în mari centre de calcul etc.. În cadrul seminarului, specialiştii şi managerii serviciilor IT/ICS care lucrează în acest domeniu vor putea comunica cu specialiştii de la cel mai mare producător european de servere şi echipamente informatice şi vor putea primi informaţii cuprinzătoare cu privire la toate problemele care îi interesează. Urmați anunțul de înregistrare de pe sitewww.itc.by iar în presă.