Aplicatii Web
CAPITOLUL 1 – CERCETARI PRIVIND APLICATII WEB
CONCEPTUL DE APLICATIE WEB
Conceptul de aplicatie web a inceput sa se contureze odata cu evoluarea Internetului la Web 2.0 sau “Web-ul social”, acesta incluzand o serie de aspecte colaborative si interactive ale Internetului, discutand aici in special de World Wide Web, un fenomen ce a inceput sa aibe o evolutie prin anii 2004-2005.
Putem spune ca aplicatiile web sunt tipuri de programe accesate cu ajutorul unei conexiuni la Internet, folosind protocolul HTTP (HyperText Transfer Protocol), fiind rulate in majoritatea cazurilor in interiorul unor browesere web. Totusi, aplicatiile web pot fi si de tip client-based, unde o mica parte din aceasta poate fi descarcata pe calculatorul personal al utilizatorului, dar procesarea datelor este facuta tot cu ajutorul Internetului pe un server extern.
Pentru a face o descriere mai simpla a termenului de aplicatie web, spunem ca aceasta este un site web dinamic, fiind bazat pe diferite tehnologii si standarde ale consortiului World Wide Web (W3C), executat intr-un browser web, avand diferite functionalitati cum ar fi: interactiunea cu utilizatorii, generarea de rezultate in browser si conectarea la back-endul unei baze de date. Fiind aflata deja intr-o continua crestere, popularitatea acestui tip de software a incurajat cat mai multi dezvoltatori sa se indrepte spre acest tip de tehnologie datorita avantajelor avute fata de programele clasice, adica cele ce sunt instalate si rulate.
1.2 DIFERENTELE DINTRE UN SITE WEB SI O APLICATIE WEB
Pentru a nu crea confuzie in legatura cu ce este un site si ce este o aplicatie web, vom scrie inca de la inceput care sunt diferentele dintre acestea.
Am mentionat mai sus faptul ca, o aplicatie web este defapt un site web dinamic, ceea ce denota un lucru diferit fata de un site web clasic ori static.
Avand o parere subiectiva, un site web este definit de continutul acestuia, iar o aplicatie web este definita de interactiunea cu utilizatorul. De aceea un site web consta intr-un continut static, ce este prezentat tuturor vizitatorilor acestuia, iar o aplicatie web depinde de datele provenite de la utilizator, manipularea acestora si procesarea datelor.
Pentru a intelege mai bine diferenta dintre ele vom da urmatorul exemplu:
Un site web este un site de stiri, iar o aplicatie web este un calendar colaborativ ce proceseaza diferite date venite de la utilizatori. Astfel site-ul de stiri sportive arata date statice vizibile de catre toti utilizatorii, iar aplicatia web proceseaza date individuale de la fiecare utilizator ce il foloseste.
1.3. TEHNOLOGII FOLOSITE PENTRU CREAREA UNEI APLICATII WEB
Intr-un astfel de program, exista “clientul” si “serverul”. Serverul este o aplicatie web ce proceseaza cererile web si trimite paginile Clientului.
Astfel dupa cum putem observa, se creeaza doua tipuri de codificare, programare si scriptare pentru acest tip de aplicatii:
Client Side Scripting/Coding
Server Side Scripting/Coding
1.3.1 CLIENT SIDE
Client side spunem a fi tipul de cod care este executat si interpretat de browsere.
Putem da exemplu tehnologia ASP.NET (Active Server Pages), fiind o aplicatie web cu ajutorul careia putem programa in diferite limbaje cum ar fi C# sau VisualBasic impreuna cu Framework-ul .NET, avand toate beneficiile unor arhitecturi de tip programare orientate pe obiect, ce contin la randul lor mosteniri, polimorfism, etc., tehnologii ce vor discutate ulterior in lucrare.
Scripturile client side sunt inglobate in pagina client, ele fiind procesate de browser, ce lucreaza ca un “compilator”. Aceste tipuri de scripturi sunt scrise bineinteles in limbaje de scriptare cum ar fii JavaScript, ce interactioneaza in mod direct cu diferite elemente din pagina HTML (Hyper Text Markup Language), precum tabele, butoane, campuri de text, etc.
Bineinteles ca partea fundamentala a unei pagini web este cea mentionata mai sus, HTML, iar aspectul ce imbunatateste pagina web este CSS (Cascading Style Sheets), ele fiind folosite la fel, de client.
Exista multe avantaje si dezavantaje referitoare la scriptarea client side, avantaje putand fii un timp de raspuns rapid si o aplicatie mult mai interactiva decat cea de baza, folosind doar HTML si CSS. Totodata este de stiut faptul ca limbajele de scriptare necesita multa mai mult timp si efort, unul dintre elementele consumatoare al acestor doua aspecte fiind sustinerea acestor tehnologii de catre browserele web.
Mai jos am enumerat cateva tehnologii de scriptare client side:
HTML
CSS
JavaScript
jQuery (Cadru JavaScript – des folosit in dezvoltarea Ajax)
Ajax(Asynchronous JavaScript and XML)
1.3.2. SERVER SIDE
Cu ajutorul acestui tip de tehnologie putem dezvolta diferite aplicatii web. Totusi este nevoie de diferite instrumente ca dezvoltarea sa fie una eficienta. Cel mai folosit software pentru dezvoltarea server side putem spune ca este ASP.NET de la Microsoft. Aici codificarea foloseste cadrul .NET unde are beneficiile programarii orientate pe obiecte, mentionata mai sus.
Interactiunea permanenta cu spatiile de stocare cum ar fi bazele de date sau diferite fisiere este unul din motivele cheie privind folosirea acestui tip de tehnologie.
Exemple de procesari server side pot fi diferite validari din partea utilizatorului, salvare si primate de date, navigarea pe alte pagini web.
Este important de mentionat faptul ca, scriptarea si codul din spatele acestui tip de tehnologie nu este vizualizabil de catre vizitatorii aplicatiei
1.3.3. CLIENT SIDE – SERVER SIDE, ADAUGIRI
Majoritatea site-urilor web folosesc ambele tehnologii pentru a completa anumite functionalitati. Desi ambele tehnologii pot face lucruri la fel, sunt si unele ce pot fi facute doar de server iar altele bineinteles de client.
Ce este scriptat in front-end este facut pentru interactiunea cu utilizatorul iar back-end, este bun pentru orice subiect legat de incarcarea unor date in mod dinamic .
Figura 1 Client – Server via Internet
1.4 PROIECTAREA APLICATIILOR WEB
“Proiectarea reprezinta în general o aplicatie practica a stiintei folosita în scopul planuirii aplicatiilor într-un mod mai bun, mai rapid, mai ieftin si mai sigur.”
Pentru a fi dezvoltate intr-un mod eficient si fiabil, aplicatiile web trebuie sa respecte anumite elementele esentiale :
Obiective si cerinte clar definite
O planificare atenta a etapelor
Dezvoltarea sistematica, in module, a aplicatiei
Feedback constant de la partenerii de proiect si client
Respectarea acestor etape permit atat reducerea costurilor si minimizarea risului pe parcursul intretinerii, ci si cresterea calitatii, prin masurarea acesteia in fiecare etapa a crearii aplicatiei.
1.4.1 PROGRAM LIBRARIES (COLECTII DE PROGRAM)
Colectiile sunt implementari de comportament, scrise bineinteles intr-un limbaj, ce au o interfata bine definita cu ajutorul careia este invocat comportamentul respectiv. Acest lucru inseamna ca un limbaj de programare care a invocat o anumita colectie pentru a face apeluri de sistem, nu mai necesita ca apelul la sistem sa fie refacut odata cu reutilizarea acestui tip de comportment.
Colectiile functiilor comune, claselor ori a subrutinelor, ajuta la usurarea muncii in scopul dezvoltarii unui program si totodata usurarea mentenantei acestuia, permintandu-le dezvoltatarilor sa adauge sau sa modifice funtionalitati din diferite cadre sau module ale unei aplicatii.
1.4.2. CADRE ALE APLICATIILOR WEB
Cadrele (“Frameworks”) sunt seturi de colectii, componente si instrumente organizate in arhitectura unui sistem, permitandu-le dezvoltatorilor sa creeze si sa sustina aplicatii web complexe utilizand un stil de lucru rapid si eficient.
Avantajele folosirii unor astfel de cadre de lucru :
Permit o mentenanta usoara si o schimbare la fel de usoara a versiunilor acestora.
Dezvolta o mai buna citire si intelegere a codului sursa.
Creeaza siguranta ca alti dezvoltatori pot citi, intelege si refolosi codul sursa in cel mai scurt timp posibil
Creaza cel mai bun mediu pentru ca mai multi dezvoltatori sa lucreze in acelasi proiect.
1.4.3. CATEGORII DE APLICATII WEB
Avand o gama variata de dificultate si complexitate, aplicatiile web pot fi de comert electronic complex, ce funtioneaza non-stop, ori pur informationale. Depizand de complexitatea aplicatiei si de cronologia ori istoricul acesteia putem identifica aplicatii web in diferite categorii (Observand o clasificare si in cartea lui Pressman, R. S., ea fiind prezentate aici in figura 2)
Astfel dupa cum se observa in figura de mai sus ele pot fi clasate in urmatoarele categorii:
Axate pe documente (pagini web statice, radio web, site-ul web al companiei)
Interactive (prezentari virtuale, site-uri de stiri, planificare calatoriilor)
Tranzactionale (banci online, magazine online, sisteme de rezervare)
Bazate pe fluxuri (E-Government , solutii B2B)
Colaborative (camera de discutii , portaluri de E-learning)
Orientate pe portaluri (portalul comunitatii , magazine online pentru cumparaturi)
Omniprezente ( servicii personalizabile , servicii pentru anumite societati
Web semantic ( sisteme recomandate, managementul cunostintelor
Sociale (log-uri web , filtrare colaborativa , spatiu de lucru virtual distribuit)
Este de remarcat faptul ca, corelatia intre cronologia dezvoltarii si complexitate este una existenta, luand ca exemplu aplicatiile omniprezente, adica acestea nu puteau fi eficient dezvoltate fara aplicatiile bazate pe interactivitate si cele tranzactionale, create anterior lor in cronologia dezvoltarii.
1.4.4. CICLUL DE VIATA AL UNEI APLICATII WEB
Un produs dezvoltat cu success avand in final satisfacerea clientilor, pare a fi un lucru usor realizat, insa acesta necesita foarte mult timp si energie in crearea sa.
Majoritatea modelelor si tehnicilor folosite in zilele noastre pentru dezvoltarea acestor aplicatii sunt urmate dupa modelul “Software Development Life Cycle (SDLC)” sau modelul cascada.
Acest model cuprinde urmatorii pasi:
Planificarea proiectului:
Acest pas urmareste scopul proiectului si ruleaza un studiu de fezabilitate impreuna cu clientul si dezvoltatorii, luand in calcul factori precum: costul proiectului, costul echipamentelor, etc.
Analiza cerintelor de sistem:
Redefinirea scopului in ceea ce priveste proiectul definit prin functionalitati si operatiuni ale unor aplicatii propuse prin discutii cu dezvoltatorii web si clientii.
Proiectarea sistemului:
Documentarea diferitelor detalii cum ar fi operatiuni si functii ca sceheme, diagrame si alte tipuri de documentatia sunt facute in aceasta etapa
Implementarea:
Aici intervine expertiza dezvoltatorilor de servicii web, in aceasta etapa facandu-se codificarea in back-end.
Testarea:
In aceasta etapa produsul este supus unor diferite medii de testare si instrumente unor diferite instrumente ale dezvoltatorilor pentru eliminarea bug-urilor si erorilor, pentru o executie cat mai armonioasa.
Acceptare si Livrare:
In final dezvoltatorii instaleaza aplicatia dupa ce au aprobarea formala de catre client.
Mentenanta:
Un element foarte important in dezvoltarea unei aplicatii web este mentenanta, dezvoltatorii avand atributia de a rezolva toate problemele intampinate dupa lansarea aplicatiei.
1.4.5 TESTAREA UNEI APLICATII WEB
Testarea web, este numele dat testarii software ce se concetreaza pe aplicatiile web. O testare completa a unei aplicatii bazate pe tehnologii web inainte ca aceasta sa fie lansata poate ajuta in rezolvarea diferitelor probleme de sistem inainte ca publicul sa le infrunte. Probleme de securitatea a aplicatiei, fuctionalitati de baza a site-ului, accesibilitatea de catre diferite tipuri de utilizatori, abilitatea de a fi adaptabil la o multitudine de platforme, gadget-uri si sisteme de operare, ori pregatirea de a face fata la un trafic asteptat ori neasteptat si a unui numar de utilizatori fara ca serverul sa aiba intreuperi (ceea ce se poate observa prin testarea de incarcare)
Pentru astfel de testari exista diferite tehnici de: functionare, folosire, interfata, compatibilitate, performanta si securitate.
1.5 TEHNOLOGII PENTRU APLICATIILE WEB
“Dezvoltarea sistemelor software traditionale este procesul proiectarii unui corect "CUM" pentru un bine definit "CE".”
Un factor important si deseori de success in scopul dezvoltarii aplicatiilor web este alegerea tehnologiilor adecvate. In contiunare vom descrie unele dintre tehnologiile folosite pentru aplicatia web dezvoltata, despre care vom vorbi in capitolul 3, Modelarea aplicatiei.
1.5.1 ASP.NET
ASP.NET reprezinta urmatoarea generatie Microsoft Active Server Pages. CLR (“Common Language Runtime”) si asamblarea, formeaza pilonul de baza a unei intregi noi game de tehnologii.
Acesta este “open-source”, cu un cadru server-side, destinat dezvoltarii aplicatiilor web pentru a produce pagini dinamice, aplicatii dinamice si servicii dinamice. Este dezvoltat si in prezent de catre Microsoft, ajungand in prezent la versiunea cu numarul 5 urmand sa fie redezvoltat in ASP.NET Core.
ASP.NET Pagini Web, oficial denumite Formulare Web , sunt blocurile principale pe care se dezvolta aplicatii in ASP. Exista doua metodologii de baza pentru formulare web, formulare de tip aplicatie web si formulare de tip site web. Diferenta intre aceste doua tipuri este facuta in ASP prin faptul ca, primul tip trebui mai intai compilat inainte sa ruleze, in timp ce al doilea timp ii permite utilizatorului sa ruleze fisierele pe server fara compilarea acestora.
Paginile ASP constau in cod HTML amestecat cu codul unui limbaj de programare. Serverul Web interpreteaza si executa codul programului si trimite browser rezultatul executiei.
1.5.2 JAVASCRIPT
Lipsa rigiditatii unei arhitecturi si a unei semantici, face ca JavaScript sa fie caracterizat ca un limbaj simplificat, interpretat, bazat pe functii orientate pe obiect. Abilitatea de opera printr-o fereastra a unui browser, este reflectata prin natura orientata-obiect. Acest limbaj de programare este unul eficient in realizarea unor sarcini legate de procesarea documentelor Web sau pentru interactiunea cu utilizatorul in momentul vizualizarii paginilor.
JavaScript poate produce documente noi, executa calcule matematice, lucreaza cu ferestre dialog si multe alte functionalitati, tot cu ajutorul acestora putand seta o serie de atribute si proprietati ale modulelor ce sunt utilizate de catre browser. Scrierea comenzilor direct in pagina web este un alt element important al acestui limbaj de programare, ele fiind executate de catre browser in timpul operatiilor specifice executate de catre utilizator in timpul interactiunii pe pagina web sau in timpul incarcarii acestuie pe pagina web.
Siguranta procesarii informatiilor este necesara si prioritara. Desi nu este un limbaj considerat ca fiind cu un grad inalt de securitate, indeplineste majoritatea cerintelor de securitate prin ne-includerea unor funcionalitati in limbaj, functionalitati ce ar fi dus la vulnerabilitati.
Popularitatea JavaScript a fost castigata prin simplitatea si rapiditatea dezvoltarii aplicatiilor, insa rata mica de executie a acestui limbaj datorita naturii de interpetare a limbajului , este un dezavantaj.
1.5.3. C# (C SHARP)
C#, deriva din doua din cele mai de success limbaje de programare: C si C++, de asemenea acesta fiind considerat asemenator cu limbajul de programare Java.
Aparut in primavara anului 2002, combina facilitati testate de-a lungul timpului, cu inovatii de moment. Creat ca instrument de dezvoltare pentru arhitectura .NET de catre cei de la Microsoft, limbajul C# suporta si alte sisteme de operare, ca Macintosh ori Linux. Acest limbaj ofera o modalitate eficienta pentu a scrie programe pentru sistemul Windows, componente software, Internet, etc. Contine unele caracteristici inovatoare, unul dintre ele fiind suportul incorporat pentru componente software. C# prevede metode, proprietati si evenimente, acestea fiind elemente ce alcatuiesc componentele software.
RELATIA DINTRE C# SI ARHITECTURA .NET
Cu ajutorul arhitecturii .NET, se defineste un mediu de programare ce permite dezvoltarea si executia de aplicatii indiferent de platforma.
Relatia dintre cele doua componente este una stransa, dat fiind faptul ca C# nu are o colectie de clase proprie, ci utilizeaza colectia de clase din cadrul .NET. Ideea lipsei bibliotecii limbajului de programare C#, a fost implementata deoarece acest limbaj a fost creat cu dorinta de a complementa cadrul .NET, acesta avand codul pentru arhitectura .NET, iar cel din urma biblioteca.
Legat de C#, arhitectura .NET defineste doua entitati importante si anume biblioteca de clase .NET si motorul comun de programare sau Common Language Runtime (CLR).
CLR se ocupa de executia programelor C#, fiind un motor comun de programare. Acesta asigura totodata portabilitatea programelor , securitatea si programarea in limbaj mixt.
IL (“Intermediate Language”) este un limbaj de tip pseudocod, fiind rezultatul compilarii codului C#, acest cod putand fii copiat si executat pe orice calculator ce dispune de .NET CLR, iar prin intermediul unui compilator JIT (“Just in Time”) codul intermediar este transformat in cod executabil. Astfel se demonstreaza ca C# nu poate compila fara ajutor, cod executabil.
In acest mod .NET asigura portabilitatea unei aplicatii web create cu ajutorul C#.
1.5.4. AJAX (ASYNCHRONOUS JAVASCRIPT AND XML)
AJAX consta intr-o tehnica de a creea aplicatii web interactive, mult mai rapid si eficient, insa ea nu este o tehnologie in sine, ci creeaza aceste pagini interactive cu ajutorul urmatorului ansamblu de tehnologii: XML, HTML, CSS si JavaScript.
Pentru crearea de continut, acesta foloseste XHTML (Extensible Hypertext Markup Language), pentru prezentare CSS, impreuna cu JavaScript pentru afisari dinamice.
Prin schimbul unei cantitati mici de date cu serverul, paginile web pot devein mai rapid si deci mai acceptate, astfel reincarcarea paginii la fiecare actiune a utilizatorului nu va fii necesara.
1.6. TENDINTE SI POPULARITATE IN CADRUL APLICATIILOR WEB
Cu timpul, numeroase companii opteaza pentru serviciile unor aplicatii web, cresterea acestui trend devenind una semnificativa. Cand o aplicatie este dezvoltata dupa asteptarile unui modul business, aceasta poate fi benefica pentru ambele companii si totodata pentru utilizatori. Daca sunt planuite corespunzator pentru companii, aplicatiile web pot avea urmatoarele avantaje:
Companiile doresc eficientizarea departementelor, functiilor, operatiunilor, vanzarilor managementul de proiect, etc.
Doresc crearea de noi aplicatii inovatoare ce vor oferi servicii utilizatorilor online si a viitoarelor afaceri B2B
Ofera clientilor servicii convenabile si solutii online, rapide si eficiente
In general companiile profita de flexibilitatea si versatilitatea unei aplicatii, mutandu-si aplicatiilor software de pe desktop, in online.
La fel ca oricare aspect la tehnologie si computerizarii, tendintele in dezvoltarea aplicatiilor web se schimba cu timpul. Dezvoltarea aplicatiilor ofera facilitate din ce in ce mai dezvoltate iar ca urmare, le da sansa utilizatorilor pentru mai multe posibilitati.
1.7. IMPACTUL APLICATIILOR WEB IN LUMEA BUSINESSULUI
In prezent, aceste tipuri de software au un impact major in lumea bussinesului prin modul care companiile si clientii fac afaceri cum ar fi:
Companiile trebuie sa reinventeze si sa evolueze la tenditele zilelor noastre, business online si piata globala
Consumatorii si companiile au mai multe optiuni si resurse sa caute si sa compare piata pentru a gasi cele mai bune oferte.
Resursele si informatiile sunt intrun numar enorm, fiind valabile pentru oricine le cauta
Noul web a creat un spatiu de business global care provoaca calea traditionala prin care companiile fac afaceri.
Astfel, privind in viitorul apropiat putem spune ca aplicatiile web vor deveni o influenta majora in economia mondiala.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Aplicatii Web (ID: 109980)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
