aplicatie web

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Reprezentarea grafică a unei aplicații web pe trei niveluri

O aplicație web ( aplicație web în limba engleză , aplicație web prescurtată ), în informatică , în special în programarea web , înseamnă în general toate aplicațiile distribuite aplicații care sunt accesibile / disponibile prin web printr-o rețea , cum ar fi un intranet dintr-un sistem informatic sau prin internet , adică într-o arhitectură tipică client-server , oferind anumite servicii utilizatorului client .

Istorie

Exemplu de sistem client-server prin Internet , care rulează multe aplicații web

Când primele aplicații client-server au început să fie răspândite în peisajul computerului, de la jumătatea anilor '80 , aceste sisteme au necesitat ca pentru fiecare dintre ele partea client să fie instalată direct pe stația de lucru a fiecărui utilizator. Pe scurt, orice actualizare, corecție sau modificare a aplicației de pe server s-a transformat în necesitatea instalării versiunilor actualizate pe toate stațiile de lucru ale utilizatorilor aplicației; acest tip de problemă a indus în mod evident, într-un mod direct, o povară economică considerabilă pentru producătorul de software și, în consecință, un cost de ajustare periodică pentru toți utilizatorii acestui tip de aplicație pentru computer.

Acest model de aplicație a devenit destul de popular la sfârșitul anilor nouăzeci odată cu răspândirea internetului, într-un context de Web 2.0 sau web dinamic : de fapt, posibilitatea de a actualiza și de a evolua aplicația dvs. la un cost redus, fără a fi obligat să distribuie numeroase actualizări pentru clienții lor prin intermediul mass-media fizice, a făcut soluția destul de populară pentru mulți furnizori de software .

Din anii 2000, cum ar fi Google și Microsoft, au implementat pachete întregi de aplicații pentru automatizarea biroului , vândute în mod tradițional distribuite pe CD-ROM și care se transformă acum rapid în webap-uri (de exemplu, Google Docs ). Adesea acestea sunt aplicații web complexe de tipul întreprinderii , adică aplicații de afaceri pentru uz intern pur corporativ sau pentru clienții săi externi.

Descriere

Operațiune

Diagrama de operare client-server

Se bazează pe conceptul de funcționare a unui client care accesează aplicația conectându-se la funcțiile de procesare care se află pe un server de aplicații utilizând browsere web normale ca terminale de utilizator, bazându-se astfel pe protocoalele obișnuite de rețea ( clienți care vizează exclusiv conectarea ca terminale web ) aplicațiile sunt adesea numite clienți subțiri ). Prin webapps , fluxurile de date în formate SGML generice (sau chiar personalizate ) sunt adesea transmise direct către alte aplicații care, în virtutea utilizării acestui tip de ieșire , sunt întotdeauna accesibile printr-un browser web comun.

Dinamica părții client (sau a părții client) a acestor sisteme (de exemplu, applet ) este întotdeauna atribuită limbilor standard, cum ar fi JavaScript , care sunt incluse în toate browserele. Succesul în creștere obținut de bibliotecile experți , acum cadre reale precum JQuery , tehnologii dinamice precum AJAX sau plug-in-uri , precum binecunoscutul Flash Player , face acum posibilă „conducerea” și îmbogățirea interfețelor utilizator într-un mod complet și eficient. Pe de altă parte, aplicațiile web își generează ieșirea dinamic conducând un front-end compus din documente Web , deci destinate unui simplu browser web . De fapt, primele aplicații web au constat în generarea de pagini standard HTML / XHTML ; ulterior, odată cu evoluția tehnologiilor asociate și mai ales cu nașterea unor noi standarde, documentele în formate și mai „neutre”, precum XML , au început să fie „distribuite” prin intermediul acestora. Pe scurt, fiecare pagină web este trimisă clientului ca și cum ar fi un document static, dar secvența paginilor poate oferi o experiență interactivă, deoarece intrarea utilizatorului este returnată prin elementele încorporate ale paginii în sine. În timpul sesiunii , browserul web interpretează și afișează paginile și, prin urmare, devine clientul universal pentru toate aplicațiile web , indiferent de producătorul software-ului.

Motive

Exemplu de formă HTML a unei aplicații web pentru colectarea datelor unui profil de utilizator ( logică de prezentare ): datele introduse și trimise sunt apoi transmise logicii de afaceri a serverului de aplicații pentru procesare și posibilă inserare în baza de date ( stratul de date ) ( trei -arhitectura mai veche ); pe de altă parte, o aplicație web poate afișa datele la cererea utilizatorului, trecând prin logica de afaceri și o interogare a DB

Unele site-uri web sunt statice, ceea ce înseamnă că conținutul poate fi editat doar de o persoană cu un nivel de acces privilegiat (denumit uneori webmaster ) pentru a „actualiza” manual conținutul, editând manual codul HTML al paginilor web care trebuie editate. . În general, acest lucru se face modificând un set de fișiere de pe serverul web (computerul care „rulează” site-ul web), în care fiecare fișier reprezintă o singură pagină.

Este adesea important pentru vizitatorii unui site web să constate că conținutul este consistent și actualizat. Conținutul unui site care variază în timp trebuie modificat continuu. De exemplu, într-un site web de comerț electronic, este necesar ca reclamele să fie doar reclame pentru produse care nu au fost încă vândute. De asemenea, este important ca anunțurile noi să fie postate cel târziu la una sau două zile după ce au fost postate de vânzător. Dacă oricare dintre aceste condiții nu este îndeplinită, site-ul probabil nu va avea prea mult succes.

Modificările aduse aspectului unui site web static necesită ca administratorul site-ului să viziteze și să actualizeze fiecare fișier care alcătuiește site-ul web. Site-urile web pot crește, de obicei, pentru a include mii de fișiere, motiv pentru care este posibil să nu fie o sarcină banală. Întreținerea responsabilă pentru site-ul de anunțuri auto are sarcina suplimentară de a menține și anunțurile actualizate. Dacă fiecare pagină de pe site reprezintă o reclamă referitoare la o anumită mașină, webmasterul trebuie să șteargă paginile care alcătuiesc reclama expirată și să creeze paginile pentru noile reclame. Deci, de asemenea, este necesar ca niciun link din alte pagini să nu indice paginile eliminate. Cantitatea de muncă de făcut devine mult într-un timp foarte scurt. Înțelegătorul site-ului poate, de asemenea, în mod înțeles să facă greșeli și să uite să actualizeze sau să elimine paginile importante.

De aici și necesitatea de a înlocui operațiile repetitive și manuale cu soluții de aplicații automatizate, care îndeplinesc aceste funcții mai eficient, rapid și sigur. De fapt, într-un site web generat dinamic (denumit site dinamic în acest caz), întreținătorul nu este obligat să viziteze fiecare pagină pentru a actualiza conținutul sau stilul. În cazul în care administratorul nostru ipotetic al site-ului de anunțuri auto a decis să construiască o aplicație web pentru a gestiona acest sistem, el ar putea păstra o listă de „noi anunțuri” neatașate de structura HTML (stocându-le de exemplu într-o bază de date generică). Apoi ar putea să-și instruiască aplicația web astfel încât, atunci când un utilizator vizitează site-ul, să interogheze baza de date și să genereze codul HTML corespunzător uneia dintre aceste „anunțuri recente” sau indexul acestora.

Caracteristici

Pictogramă lupă mgx2.svg Același subiect în detaliu: arhitectură pe mai multe niveluri .
Exemplu de cod sursă Java , utilizat pentru logica de afaceri a unei aplicații web

Prin natura sa, o aplicație web se poate prezenta cu structuri și organizații logice diferite, întrucât de fapt întruchipează, în același timp, un model tehnic și o filozofie de dezvoltare. Cu toate acestea, la nivel de informatică teoretică este posibil să se recunoască o structură tipică pe mai multe niveluri ( arhitectură cu mai multe niveluri ) care mapează arhitectura la nivelul fizico-infrastructural al unui sistem informatic ( arhitectură pe trei niveluri ) pe care aplicația web este prezent și este realizat .

De fapt, în majoritatea cazurilor este posibil să se identifice:

  • logica de prezentare (sau stratul de prezentare ): primul nivel care poate fi asociat cu terminalul utilizatorului, afișajul sau prezentarea ( front-end ) prin intermediul motorului de redare al browserului web al clientului sau al interfeței cu utilizatorul (de obicei creat prin pagini HTML și CSS , JSP sau JSF în tehnologia Java EE , JavaScript sau folosind un framework, XSLT etc ...); acest lucru înlocuiește de fapt GUI-ul propriu al aplicațiilor software care nu sunt bazate pe web.
  • logica afacerii (sau logica afacerii ): al doilea nivel constând din motorul aplicației , sau un nucleu al aplicației ( back-end ) sau logica aplicației sau procesării prezentă de obicei pe un server de aplicații și constând din cod sursă într-un limbaj de dezvoltare dinamică din lateral - server (de ex. PHP , ASP , ASP.NET , unele CGI , servlet și JavaAction în limbaj Java etc.); aceasta primește, procesează și îndeplinește cererile clientului. Prezența acestui strat este ceea ce diferențiază o aplicație web de un site web normal, deoarece implementează serviciul web sub forma codului sursă pe care îl furnizează clientului.
Simbolul stratului bazei de date
  • stratul de date (sau stratul de date ): al treilea nivel posibil atribuibil motorului de baze de date asociat (de ex. MySQL , MSSql , Oracle , DB2 , PostgreSQL etc.) pentru gestionarea persistenței datelor și a interogării acestora prin instrumente adecvate (de exemplu, JDBC și ORM cum ar fi Hibernate , Ibatis , Mybatis etc ...), primirea și satisfacerea cererilor de citire / scriere DB din logica aplicației. Poate locui pe serverul de aplicații împreună cu logica aplicației sau direct pe DB.

În rezumat, browserul web al clientului trimite solicitările sale, prin protocolul HTTP / HTTPS , la nivelul intermediar sau la motorul de aplicații dinamice ale serverului web , care pe de o parte interpretează și gestionează interogările către motorul SGBD și pe altul generează rezultatul. într-o ieșire directă către browserul însuși, care îl interpretează și îl returnează utilizatorului sub forma Web . O aplicație web este, prin urmare, caracterizată prin transferul de date sau informații de la un strat la altul sau de la front-end la back-end și invers, în plus cu orice procesare / calcul pe partea de bază a activității. Mai mult, de multe ori în aplicații web de o anumită dimensiune sau complexitate, cum ar fi site-uri web și portaluri , există o pagină inițială ( pagina de pornire ) cu un meniu inițial și submeniuri conexe pentru setul de funcții sau servicii oferite utilizatorului.

Planificare și dezvoltare

Pictogramă lupă mgx2.svg Același subiect în detaliu: Modele de proiectare și cadru pentru aplicații web .

În ceea ce privește alte aplicații, dezvoltarea aplicațiilor web are loc de obicei în urma ciclului de viață al software - ului, pornind de la cerințe / specificații. Lucrarea programatorului web are loc de obicei local pe propriul computer cu IDE instalat și configurat. Spre deosebire de alte forme de programare, dezvoltarea locală a aplicațiilor web necesită sprijinul unui server de aplicații instalat întotdeauna local pe PC-ul dezvoltatorului, care acționează ca un back-end pe care să implementați aplicația la fiecare pas de dezvoltare, testând utilizatorul interfeței și clienții. logică , apoi verificarea rezultatului produs ( front-end ) prin tastarea adresei URL relative din browserul web. Adesea, din nou în scopul testării aplicației, este de asemenea necesar să instalați local o bază de date care funcționează ca un strat de date sau să verifice persistența acesteia. Sistemele de versiune (de exemplu, SVN ) vă permit să gestionați mai multe salvări (confirmări) ale codului produsului pe servere la distanță (de obicei mediu de testare ) între mai mulți dezvoltatori fără a crea conflicte.

Adesea, în legătură cu dezvoltarea părții de prezentare și procesare, sunt utilizate cadre web (de exemplu, în Java Struts și Spring implementând modelul de proiectare Model-View-Controller (MVC)) și care simplifică dezvoltarea aplicației în sine prin reducerea timpul realizării. Cadrele de dezvoltare precum Hibernate pot fi, de asemenea, utilizate pentru gestionarea persistenței. Unele procesări pot fi efectuate cu un avantaj mai mare din partea clientului de către browser (de exemplu, cu limbaj JavaScript și cadre conexe, cum ar fi JQuery ) sau apelate pe server din partea utilizatorului, asincron, utilizând, de exemplu, tehnologia AJAX .

Exemple

Exemplu de aplicație web într-un site de comerț electronic între utilizator și destinatar care interacționează prin aplicație prin schimbul de date de comandă, personale și bancare

Aplicatii bazate pe web astăzi să contribuie la punerea în aplicare a tuturor sau a unei părți a soluțiilor software în cadrul motoarelor de căutare , forumuri web , bloguri , webmails , rețele sociale , social media , CMS , e-commerce , MMORPG - uri , teleconferințe platforme sau instrumente. Dhat , diverse tipuri de management al afacerii și multe altele. Găsim aplicații web aproape peste tot, dar în limbajul comun sunt denumite „site-uri web” simple sau portaluri web avansate. Exemple didactice tipice sunt:

  • buletin de anunțuri despre locuri de muncă: compania înregistrată își publică anunțul de muncă și partea interesată răspunde prin trimiterea datelor sale personale și încărcarea CV-ului prin formular.
  • înregistrarea unui utilizator pe un forum prin pagina inițială a formularului și inserarea ulterioară a detaliilor utilizatorului într-o bază de date de către logica de procesare pentru autentificare ulterioară;
  • căutați un site printr-un motor de căutare : utilizatorul tastează cuvântul cheie care trebuie căutat pe interfața web din browserul web și trimite datele către un server care, utilizând algoritmi corespunzători , execută o anumită interogare într-o bază de date pentru identificarea adresei de resursa web căutată.
  • o pagină de comentarii a unui blog sau forum, în care utilizatorul introduce comentariul său în interfața web ( zona de text ), care este apoi trimisă logicii de procesare pentru includere în baza de date și pusă la dispoziția altor spectatori ai paginii.
  • o pagină de autentificare pentru accesarea funcțiilor și serviciilor unui site, portal, forum, prin formularul inițial care reprezintă partea de prezentare către utilizatorul aplicației, o parte de procesare care verifică datele dobândite de sistem cu cele prezente în baza de date pentru validarea lor sau nu și în cele din urmă o pagină de confirmare sau eroare pentru operațiunea efectuată de utilizator;
  • postări text , imagini sau videoclipuri prin interfață web pe o rețea socială care sunt inserate pe baza datelor și puse la dispoziția contactelor respective;
  • într-un serviciu de webmail utilizatorul trimite un e - mail prin interfața web către serverul de mail care introduce mesajul în cutia poștală respectivă ( boxmail ) a bazei de date, precum și îl trimite către destinatar;
  • o platformă Wiki (de ex. Wikipedia ): o modificare a textului unei intrări este transmisă unei logici de procesare care prevede inserarea modificării în baza de date; dimpotrivă, o cerere de intrare este o interogare împotriva bazei de date sau a depozitului .
  • gestionarea registrului de curriculum vitae în cadrul unei companii sau a unui motor de căutare de locuri de muncă în care utilizatorul în faza de scriere introduce CV-ul printr-o pagină de formular din partea frontală, ale cărei date sunt transmise mai întâi părții de afaceri pentru orice prelucrare și apoi în cele din urmă stocate în partea de persistență back-end a bazei de date și invers în faza de citire inversă.
  • Site - uri de comerț electronic (de exemplu ebay ): utilizatorul achiziționează unul sau mai multe produse selectându-le și înregistrându-le în memorie ( sesiune ) în coșul de cumpărături și invocă comanda stocată într-o bază de date după executarea tranzacției financiare pentru plata datorată de furnizarea detaliilor cardului dvs. de credit .

Aplicațiile web mai complexe sunt cele bancare pentru gestionarea practicilor (de obicei pentru utilizare internă prin intermediul Intranetului) și a fluxurilor de numerar și a tranzacțiilor financiare (de exemplu, servicii bancare la domiciliu ) între instituțiile de credit și clienți. Alte exemple practice mai complexe sunt de exemplu serviciile de webmail (de exemplu, Gmail ), platformele de rețele sociale precum Facebook , Linkedin , Instagram , Flicker , CMS WordPress , Joomla , Drupal , Microsoft Sharepoint , acele aplicații care ne permit să facem cercetări pe web ca Google ; să colaboreze la proiecte, precum SourceForge ; pentru a cumpăra produse dintr-o licitație, cum ar fi pe eBay . În plus, au apărut multe site-uri web care acționează ca un director de scripturi , de multe ori gratuit și / sau Opensource , cum ar fi Hotscripts.com (în engleză). Dar acesta este doar un exemplu, deoarece folosind orice motor de căutare este ușor să descoperiți o multitudine de aplicații web în toate limbile și țările.

Galerie de imagini

Elemente conexe

Alte proiecte

linkuri externe

Controlul autorității LCCN (EN) sh2012001728 · NDL (EN, JA) 01.058.852