Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Internet


Index » educatie » » informatica » Internet
» Unelte de conectare a paginilor WEB cu aplicatii rezidente


Unelte de conectare a paginilor WEB cu aplicatii rezidente


Unelte de conectare a paginilor WEB

cu aplicatii rezidente

1. Introducere

La un moment dat de-a lungul timpului, programatorii si-au dat seama ca limbajul HTML este prea limitat pentru a face multe din lucrurile pe care ei doreau sa le obtina.



Cum era posibil, spre exemplu, ca un webmaster sa afiseze data si timpul pe fiecare pagina accesata de un client? Sau cum ar fi putut obtine informatie despre clientii care au accesat site-ul? Cum putea crea un site web care era mai mult decat un depozit de informatie, ci o conversatie dinamica si plina de inteles?

Cu siguranta, HTML era excelent pentru distribuirea de pagini "gata pregatite" la cerere. Un client folosea un browser pentru a contacta un server web si folosea HTTP pentru a cere serverului un document HTML anume. Web serverul trimitea documentul cerut inapoi la web browser, care la randul sau, afisa documentul dupa definitia HTML catre client.

Destul de util, si mult superior unor tehnologii mai vechi ca gopher si ftp. Insa, interactiunea dintre client si server era inca extrem de triviala. Serverul putea furniza numai documente HTML care fusesera special codate de un programator, si care fusesera plasate in anumite directoare disponibile public. Interactiunea dintre web browse si web server era extrem de simplista. HTML s-a dovedit a nu avea capacitatea de a afisa nimic cu adevarat dinamic.

Spre exemplu, pentru a pune data curenta pe fiecare pagina folosind numai HTML, un programator trebuia sa modifice manual fiecare fisier, in fiecare zi. Era nevoie de a avea pagini HTML create si modificate "in fuga", cu informatie care se putea schimba la saptamana, la zi, la secunda sau la fiecare cerere de acces. Si era nevoie ca aceste pagini sa fie modificate automat, fara supaveghere constanta.

Pe de alta parte, echipamentul hardware pe care ruleaza serverul software are in mod obijnuit foarte multe resurse care pot fi utilizate pentru a rezolva aceste probleme. Nu numai ca serverele au putere mare de procesare, acestea au de asemenea o multime de aplicatii deja instalate si pregatite pentru utilizare.

Aplicatiile web au devenit foarte populare datorita abilitatii lor de a fi modificate si intretinute fara a distribui si a instala software pe computerele miilor de clienti potentiali. Acestea pot fi folosite pentru a implementa servere de email, magazine virtuale, licitatii virtuale, situri modificabile de catre client, forumuri de discutii, weblog-uri, jocuri multiplayer (MMORPG) si multe altele.

Principalul avantaj al folosirii aplicatiilor web este comportarea identica a acestora, indiferent de sistemul de operare folosit.la client. Spre deosebire de a crea clienti pentru Windows, Mac OS X, GNU/Linux, si alte sisteme de operare, aplicatiile pot fi scrise o data si distribuite aproape oriunde. Totusi, implementari inconsistente de HTML, CSS, DOM si alte specificatii browser pot cauza probleme in dezvoltatea si suportul aplicatiilor web. In plus, abilitatea utilizatorilor de a-si particulariza multe din aspectele browserului propriu (de exemplu dimensiunea fontului, culori sau suportul pentru scripturi) poate interveni in consistenta aplicatiilor web.

Structura unei aplicatii web, desi sunt multe variatii posibile, este de obicei formata din trei parti. In cea mai uzuala forma, prima parte este web browserul, partea a doua este reprezentata de un motor care leaga aplicatia rezidenta de pagina web dinamica (CGI, PHP, JSP, ASP sau ASP.NET), iar baza de date este a treia parte. Web browserul trimite cereri catre motorul folosit, care le serveste prin cereri si modificari in baza de date, iar apoi generand o interfata utilizator.

Instrumente pentru conectarea cu aplicatiile rezidente

2. CGI - Common Gateway Interface

CGI s-a nascut din discutiile online intre Rob McCool, John Franks, Ari Luotonen, George Phillips si Tony Sanders in 1993. Rob McCool, lucrand la NCSA, a schitat primele specificatii si a furnizat o implementare de referinta in serverul web NCSA HTTPd folosind variabile de mediu pentru a stoca parametri trimisi de catre mediul de executie al web server-ului, inainte de a crea programul CGI ca un proces separat.

CGI a reprezentat nasterea programarii web la server (server side web programming)

La fel ca majoritatea jargonului internetului, termenul de CGI este ambiguu si lipsit de sens la prima vedere.

Common - Comun - Programele CGI pot fi scrise folosind multe limbaje. CGI poate fi programat in C, C++, Java, Perl, Visual Basic, sau orice alt limbaj care poate accepta, procesa si raspunde la cereri.

In plus, CGI functioneaza cu multe tipuri diferite de sisteme. CGI functioneaza pe Mac, Windows, OS2, Amiga, Unix, si ca pe orice alt sistem de operare care ruleaza servere web.

Daca este folosit un limbaj independent de platforma ca Perl sau Java pentru a scrie scriptul CGI, exact acelasi script CGI poate fi mutat direct de pe o platforma pe alta fara modificari

Gateway - Poarta - Utilitatea CGI-ului nu vine din ceea ce poate realiza singur, ci din ceea ce poate realiza in parteneriat cu alte resurse.

De obicei, CGI-ul este folosit ca un intermediar sau un translator a carui functie este aceea de a ajuta resurse mai puternice ca baze de date, programe generatoare de grafica, sau aplicatii in retea sa dialogheze si sa lucreze impreuna catre o solutie comuna.

CGI este poarta dintre navigatorul web singuratic si marea panza de computere (fiecare cu limbajele si protocoalele specifice) si programe (fiecare cu propriile interfete si metode de intrare/iesire)

Interface - Interfata - CGI nu este un limbaj. Nu este nici un program. CGI este un standard de comunicare, un proces, o interfata care furnizeaza reguli bine definite pentru crearea parteneriatelor. Beneficiul este ca daca toata lumea urmeaza regulile interfetei, atunci toata lumea poate dialoga cu oricine. Astfel, in mod notmal spunem ca scriem "programe CGI" sau "scripturi CGI" care executa functiile interfetei comune.

Dupa cum era de asteptat, CGI-ul are si multe parti negative. Desi este de dorit ca accesul la web server sa fie permis oricui este interesat, deoarece accesul se face in limitele definite de HTTP, este complet altceva permiterea accesului oricui la o cantitate nelimitata de aplicatii aflate pe server printr-un script CGI .

In articolul "WWW Security FAW", Stein identifica patru tipuri de risc:

Documente private si confidentiale stocare in documetele paginii web pot ajunge in mainile indivizilor neautorizati

Informatii private si confidentiale, trimise de la distanta (remote) de la user catre server (de ex informatii despre cartea de credit) pot fi interceptate.

Informatii asupra masina gazda a serverului web se poate raspandi, dand intrusilor acces la date care le pot permite sa intre pe masina gazda

Bug-uri pot permite persoanelor straine sa execute comenzi pe masina serverului, permitandu-le sa modifice sau sa distruga sistemul. Aceste atacuri includ "rejectia de servicii", in care atacatorii bombardeaza masina cu atat de multe cereri, incat o fac complet inutila.

CGI-ul depinde de HTTP. Este important de retinut ca HTTP-ul permite numai o comunicatie singulara, de tip intrebare/raspuns. Astfel, comunicatia este foarte mult ingreunata. De asemenea, fiecare comunicatie de tip intrebare/raspuns face ca sa fie rulata o instanta a scriptului CGI. Aceasta abordare este destul de costisitoare ca performante, in special pentru site-uri mari, care pot avea nevoie sa ruleze simultan sute de instante ale scriptului.

3. FastCGI

FastCGI a fost dezvoltat de OpenMarket pentru a rezolva problemele de scalabilitate lae CGI-ului clasic. FastCGI a fost dezvoltat initial ca un raspuns la API-ul de la Netscape (NSAPI) pentru dezvoltarea de aplicatii web.

In loc de a crea un nou proces pentru fiecare cerere, FastCGI foloseste un singur proces persistent care manipuleaza mai multe cereri. Procesarea de cereri multiple simultan este obtinuta fie prin folosirea unui proces de raspuns cu multiplexare interna, fie prin folosirea mai multor procese raspuns. FastCGI permite de asemenea programelor sa instruiasca serverul web sa faca anumite operatii simple, ca citirea unui fisier, inainte ca cererea sa fie trimisa.

Informatia de mediu si cererile de pagina sunt trimise de la serverul de web catre proces printr-o conexiune TCP (pentru procese la distanta) sau "Unix domain sockets" (pentru procese locale). Raspunsurile sunt returnate de la procese catre serverul web prin aceeasi conexiune. Aceasta conexiune poate fi inchisa la sfarsitul unui raspuns, dar serverul web si procesul ramane.

4. Perl - Practical Extraction and Report Language

Perl a fost dezvoltat initial de catre Larry Wall in 1986. Acest limbaj a devenit limbajul cel mai folosit pentru administrarea sistemului si a retelei, si de asemenea pentru progamarea CGI.

Perl este un limbaj de scriptare general, dar a obtinut proeminenta speciala in anumite arii de aplicatii. Una dintre acestea este scriptarea web, unde Perl este probabil cel mai popular limbaj folosit astazi. Popularitatea sa se datoreaza in mare parte puterii sale de procesare a textului. Totusi, Perl poate fi folosit la fel de bine local ruland comenzi, ca si in mediul web. Este util pentru a scrie orice, de la generarea de rapoarte, la unelte grafice, la aplicatii interactive bazate pe web.

Un alt avantaj oferit de Perl este multitudinea de software add-on disponibil sub forma de module care furnizeaza capacitati sporite. CPAN (Comprehensive Perl Archive Network) implementeaza structura de suport pentru accesul la tot acest software. Este resursa extinsa care poate salva timp si efort prin furnizarea de cod care nu trebuie rescris.

Structura generala Perl deriva in mare din C. Perl este procedural, cu variabile, expresii, asignari, blocuri de cod separate de acolade, structuri de control si subrutine.

Perl preia de asemenea facilitati din programarea shell. Toate variabilele sunt marcare cu sigilii initiale, care identifica strict tipul de data al variabilei in context. La fel ca shell-urile din Unix, Perl are multe functii incluse pentru activitati comune, cum ar fi sortarea sau accesarea facilitatilor sistemului.

Perl preia liste de la Lisp, matrice asociative de la AWK, si expresii regulate de la sed. Acestea simplifica multe parsari, manipulare de text si managementul de date.

Perl are cateva motto-uri care arata diverse aspecte ale design-ului si utilizarii. Unul dintre acestea este "Exista mai multe feluri de a o realiza". Altele sunt "Fara limite inutile" sau "Banda adeziva a internetului". Un principiu de baza al Perl este acela de a face sarcinile usoare sa fie usoare, iar pe cele dificile, posibile.

5. PHP - PHP Hypertext Preprocessor

PHP este un limbaj de programare dezvoltat initial pentru producerea de pagini web dinamice. Este folosit in principal in aplicatii software la server, car poate fi folosit si de la o linie de comanda sau intr-o aplicatie grafica de sine statatoare.

PHP a fost scris ca un set de binare CGI in limbajul C de catre programatorul Danez-Canadian Rasmus Lerdorf in 1994, pentru a inlocui un numar mic de scripturi Perl pe care le folosise la site-ul personal. Lerdorf a creat initial PHP pentru a-si afisa CV-ul si pentru a colecta anumite informatii, cum ar fi traficul de la pagina sa.

PHP actioneaza in principal ca un filtru. Programul primeste date dintr-un fisier sau alt stream de date pentru afisare. Incepand cu PHP4, parserul compileaza codul pentru a produce bytecod pentru procesarea de catre motorul Zend, sporind performantele fata de predecesorul sau.

Obiect orientare de baza a fost introdusa in PHP3. Totusi, manipularea obiectelor a fost complet rescrisa pentru PHP5, permitand performante mai bune si mai multe facilitati. In versiuni anterioare de PHP, obiectele erau considerate tipuri primitive. Dezavantajul acestei metode era faptul ca semantic, tot obiectul era copiat cand o variabila era asignata, sau transmisa ca parametru catre o metoda. In noua abordare, obiectele sunt referentiate printr-un handle, nu prin valoare. PHP 5 a introdus variabile membre si metode private si protected, precum si clase abstracte si metode abstracte. A introdus de asemenea o modalitate standard de declarare a constructorilor si destructorilor similara cu cea a altor limbaje obiect orientate, ca C++, si un model de tratare a exceptiilor, similar cu cel al altor limbaje de programare.

PHP include un numar mare de biblioteci gratuite si "open source" in cadrul pachetului de baza. PHP este un sistem ce are notiunea de Internet la baza, folosind module facute pentru accesarea serverelor de FTP, multe servere de baze de date, biblioteci SQL incorporate cum ar fi MySQL si SQLite, servere LDAP si altele. Multe functii familiare programatorilor C cum sunt cele din familia stdio sunt disponibile in pachetul de baza PHP

Proiectul PEAR - PHP Extension and Application Repository - isi propune sa realizeze biblioteci si componente reutilizabile pentru dezvoltarea PHP. Proiectele PEAR sunt scrise de obicei in cod PHP folosind paradigma de obiect-orientare.

Proiectul PECL - PHP Extension Community Library - furnizeaza extensii la limbajul PHP. Extensiile PECL sunt scrise in general in C, folosind paradigma de programare procedurala.

PHP are un manual de dezvoltare oficial, intretinut de catre Free software foundation. In plus, raspunsuri la majoritatea intrebarilor pot fi gasite facand o simpla cautare pe internet. In schimb, echipa de dezvoltar PHP participa activ in astfel de comunitati, obtinand astfel asistenta de la acestea pentru efortul de dezvoltare si de asemenea oferind acestora asistenta la programare. Exista multe resurse de asistenta disponibile pentru programatorul PHP novice.

6. JSP - JavaServer Pages

Tehnologia JSP permite dezvoltatorilor si designerilor web sa dezvolte rapid aplicatii si pagini web dinamice, bogate in informatii si usor de intretinut, care usureaza existenta sistemelor business. Ca parte din familia de tehnologii java, tehnologia JSP faciliteaza dezvoltarea de aplicatii web independente de platforma.

Tehnologia JSP foloseste tag-uri asemanatoare XML care incapsuleaza logica ce genereaza continut pentru pagina. Tehnologia JavaServer Pages reprezinta o extensie a tehnologiei Java Servlet. Servlet-urile sunt module independente de platforma, care se imbina intr-o arhitectura de server web si care pot fi folosite pentru a extinde capabilitatile unui server web.

Spre deosebire de alte limbaje de scriptare, servlet-urile nu impun consideratii de platforma. Acestea sunt componente de aplicatii    ce pot fi downloadate la cerere catre sistemul care are nevoie de ele. Cand o masina client cere o pagina JSP pentru prima data, serverul automat construieste, compileaza si porneste un servlet Java in fundal, care la randul sau genereaza o pagina HTML. Acea pagina este trimisa catre browserul clientului pentru afisare. Apoi, de fiecare data cand pagina JSP este accesata, servletul este prezent sub forma de cod binar Java in memoria serverului web, gata sa interogheze o baza de date si sa serveasca o pagina HTML.

Dezavantajele principale ale tehnologiei JSP sunt o viteza mai redusa de rulare datorata intensitatii procesarii necesare si robustetei ridicate - pagini JSP ruleaza de obicei mai incet decat pagini similare scrise cu alte tehnologii, ca PHP - precum si o invatare mai greoaie a limbajului in comparatie cu multe alte tehnologii.

7. ColdFusion

ColdFusion este o structura de server de aplicatii si dezvoltare de software folosita pentru dezvoltarea de software in general, si pagini web dinamice in particular. Principala trasatura a sa este limbajul de scripting asociat, CFML - ColdFusion Markup Language - care seamana cu HTML-ul ca sintaza.

Initial a fost un produs al companiei Allaire, care in 2001 a fost achizitionata de catre Macromedia, care apoi a fuzionat cu Adobe Systems in 2005.

Tehnologia ColdFusion este cel mai des folosita pentru site-uri web sau intraneturi de date. Utilizatorii avansati pot folosi ColdFusion ca un strat de productivitate, situat deasupra unei platforme J2EE, sau pot folosi ColdFusion ca un middleware intr-o arhitectura obiect-orientata, generand servicii web. ColdFusion poate de asemenea suporta evenimente asincrone ca SMS sau mesagerie instanta prin interfata sa, disponibila incepand cu versiunea 7.

ColdFusion ofera un numar de servicii valoroase ca:

conversie din HTML in PDF si FlashPaper

validare la client inclusiv formulare bogate folosind Flash

elemente de interfata ca structuri de date si selectoare de date

interogarea bazelor de date independent de platforma folosind ODBC sau JDBC

obtinerea datelor de pe diferite sisteme ca Active Directory, LDAP, POP, HTTP, FTP

managementul cache-ului la client si server

managementului sesiunii, clientului si aplicatiei

indexarea fisierelor si serviciul de cautare bazat pe Verity R2

parsare, interogare si validare XML

administrare GUI

Alte implementari ale CFML ofera functionalitati similare sau imbunatatite, cum ar fi manipularea imaginilor sau rularea intr-un mediu .NET.

Principalele critici pentru ColdFusion sunt pretul ridicat, in special comparativ cu competitorii sai, care sunt aproape gratuiti, faptul ca este o tehnologie proprietara, spre deosebire de alti competitori care sunt open-source, precum si lipsa anumitor facilitati ale altor limbaje de scriptare, ca posibilitatea manipularii tipurilor uzuale de formate de imagini sau facilitati avansate de obiect-orientare.

8. ASP si ASP.NET

ASP - Active Server Pages reprezinta engine-ul de scripting la server de la Microsoft pentru pagini web generate dinamic. Este promovat ca un add-on pentru serverul de web IIS

Programarea site-urilor ASP este usurata prin diversele obiecte incorporate. Fiecare obiect corespunde unui grup de functionalitati frecvent utilizate, folosite pentru a crea pagini web dinamice. In ASP 2.0 exista sase astfel de obiecte: Application, ASPError, Request, Response, Server si Session. Session spre exemplu este in obiect de sesiune bazat pe cookie-uri care mentine variabile de la pagina la pagina.

Majoritatea paginilor ASP sunt scrise in VBScript, dar orice alt limbaj poate fi folosit, prin utilizarea directivei @Language.

ASP.NET reprezinta un set de tehnologii pentru dezvoltarea aplicatiilor web promovate de Microsoft. Programatorii il pot folosi pentru a construi atat pagini web dinamice, cat si servicii web XML si aplicatii web. Este parte a platformei Microsoft .NET.

ASP.NET incearca sa obtina avantaje de performanta fata de alte tehnologii de scripting (inclusiv ASP clasic) pein compilarea codului pentru server intr-unul sau mai multe fisiere DLL pe serverul web. Acest lucru se intampla transparent in fundat prima data cand o pagina este ceruta. Astfel este obtinuta usurinta de dezvoltare a limbajelor de scripting in paralel cu beneficiile de performanta ale unui fisier binar compilat.

ASP.NET incearca sa simplifice tranzitia dezvoltatorilor de la aplicatii Windows catre dezvoltarea pentru web oferindu-le abilitatea de a construi pagini compuse din controale similare cu cele ale unei interfete Windows. Un control web (de ex button sau label) functioneaza foarte asemanator cu un control din Windows: codul ii poate seta proprietati si poate raspunde la evenimentele acestuia.

ASP.NET incurajeaza programatorii sa dezvolte aplicatii folosing o evenimentele, spre deosebire de scriptingul web conventional ca ASP sau PHP. Structura incearca sa combine tehnologii existente ca JavaScript cu componente interne ca ViewState pentru a aduce stari persistente in mediul web care este in mod inerent fara stare.

Comparand cele doua tehnologii, putem observa urmatoarele beneficii ale ASP.NET fata de predecesorul sau:

Suport mai bun pentru limbaje

Controale programabile

Programare orientata pe evenimente

Componente pe baza de XML

Autentificarea utilizatorilor, cu conturi si roluri

Scalabilitate sporita

Performanta crescuta - cod compilat

Configurare si instalare usoare

Nu este complet compatibil cu ASP

9. Alte tehnologii de scripting

Una dintre cele mai populare combinatii de unelte pentru web reprezinta cea referita prin acronimul LAMP. Initialele inseamna Linux (sistemul de operare), Apache (serverul web), MySQL (baza de date), iar P-ul inseamna una dintre urmatoarele trei limbaje de scriptare: PHP, Perl sau Pythen. Uneltele sunt toate gratuite, iar suport pentru ele se gaseste in tot Internetul.

Python reprezinta o alternativa de limbaj gratuit, open-source, interpretat, interactiv, obiect orientat dezvoltat pentru sisteme Unix. In momentul de fata este disponibil pentru orice, de la DOS la Mac OS la Windows si sisteme Unix-like. Este util pentru mai mult decat doar programare web, iar printre clientii sai se numara NASA si RedHat Linux.

Pike este o alta variatie de limbaj open-source, inventata de neviua personala, iar acum dezvoltata de catre Roxen Internet Software din Suedia, care o foloseste pentru a-si dezvolta propriul web server Roxen Platform. Contine manipulare de date puternica, si este complet obiect orientat. Sintaxa este similara cu cea a limbajului C, si poate fi extinsa pentru a profita de biblioteci si module C compilate pentru a-si imbunatati performantele. Este disponibil pentru majoritatea sistemelor Unix-like (inclusiv OS X) si Windows.

TCL poate interactiona foarte bine cu unelte bazate pe text, ca editoarele puternice, compilatoarele etc. care se gasesc pe sisteme Unix-like. Extensia sa TK ii confera acces la interfete grafice ca Windows, Mac OS, si X-windows, actionand ca o legatura intre diverse componente standard pentru a indeplini scopuri mai complexe. Aceasta abordare modulara este fundatia conceptuala pe care se bazeaza insusi Unix-ul.

Lisp este un limbaj de programare programabil, construit pe conceptul recursiunii fiind foarte adaptabil la specificatii vagi. Abilitatea sa de a aborda probleme de care alte limbaje nu se ating este unul dinte motivele pentru care acest limbaj de 40 si mai bine de ani este inca in folosinta. Yahoo Store foloseste Lisp, si exista intregi servere web inter platforma scrise in el.

Ruby combina printre cele mai bune facilitati ale altor catorva limbaje, lasand in urma multe din neajunsurile lor. Este un limbaj pur obiect orientat ca Smalltalk, dar cu sintaxa mai clara (inspirata de Eiffel). Are facilitati puternice de manipulare a textului ca Perl, dar este mai bine structurat si mai consistent. Imprumuta idei - dar nu paranteze - din Lisp. Provine din Japonia (unde castiga rapid popularitate), dar foloseste setul de caractere European.

Desi acestea (impreuna cu HTML desigur) sunt limbajele care par a fi cele mai folosite in construirea de pagini web dinamice, teoretic s-ar putea folosi orice limbaj pentru a dinamiza o pagina web. Si multe din sutele de limbaje disponibile sunt utile mult peste numai crearea de pagini web.

Bibliografie:

www.w3schools.com

https://en.wikipedia.org/

https://java.sun.com

www.wdvl.com

www.thescripts.com

www.nusphere.com

www.answers.com

www.webmonkey.com

https://microsoft.toddverbeek.com



https://www.wdvl.com/Authoring/Scripting/WebWare/Server/

https://en.wikipedia.org/wiki/Web_application

https://en.wikipedia.org/wiki/Common_Gateway_Interface

https://www.wdvl.com/Authoring/Scripting/WebWare/Server/

https://www.wdvl.com/Authoring/Scripting/WebWare/Server/CGIsux.html

https://en.wikipedia.org/wiki/FastCGI

https://www.thescripts.com/serversidescripting/perl/tutorials/introductiontoperl--becomeaguru/index.html

https://www.nusphere.com/products/library/perl.htm

https://www.answers.com/topic/php

https://java.sun.com/products/jsp/overview.html

https://www.webmonkey.com/webmonkey/99/46/index1a_page4.html?tw=programming

https://www.answers.com/ColdFusion

https://en.wikipedia.org/wiki/Active_Server_Pages

https://en.wikipedia.org/wiki/ASP.NET

https://www.w3schools.com/aspnet/aspnet_vsasp.asp

https://microsoft.toddverbeek.com/script.html





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate