pg. 1 UNIVERSITATEA DIN BUCUREȘTI FACULTATEA DE MATEMATICĂ ȘI INFORMATICĂ INFORMATICĂ LUCRARE DE LICENȚĂ Coordonator științific: Asist.dr. Vasile… [616570]
pg. 1 UNIVERSITATEA DIN BUCUREȘTI
FACULTATEA DE MATEMATICĂ ȘI INFORMATICĂ
INFORMATICĂ
LUCRARE DE LICENȚĂ
Coordonator științific:
Asist.dr. Vasile Silviu Laurențiu
Student: [anonimizat] 2017 –
pg. 2 UNIVERSITATEA DIN BUCUREȘTI
FACULTATEA DE MATEMATICĂ ȘI INFORMATICĂ
INFORMATICĂ
Manipulare audio – emiterea și
recepția codului Morse
Coordonator științific:
Asist.dr. Vasile Silviu Laurențiu
Student: [anonimizat] 2017 –
pg. 3 CUPRINS
CUPRINS ……………………………………………………………………………………………………… ……………… . 3
CAPITOLUL 1 – INTRODUCERE ………………………………………………………………………………….. . 5
1.1. Codul Morse – noțiuni generale …………….. ……………………………………………… ………………. . 5
1.2. Codul Morse – implementare și utilizabilitate ……….. …………………… ……………………………. . 8
1.3. Arduino ……………………………………………………… ……………. ……………………………. 8
CAPITOLUL 2 – TEHNOLOGII UTILIZATE ÎN DEZVOLTAREA APLICAȚIEI ……………. . 13
2.1. HTML – Prezentare și istoric ……. ……………………. ………………………………………………….. . 13
2.2. CSS …………………………………………………………………………………………………….. ………. ……. 18
2.2.1. Prezentare și istoric …… ………………………………………………………………………………… . 18
2.2.2. Bootstrap …………………………………………………………….. ………………………………………. . 20
2.3. JavaScript ………………………………………………………………………………………………. …………. . 22
2.3.1. Prezentare și istoric ……………………………………………………………………………………….. . 22
2.3.2. jQuery ………………………………………………………….. …………………………………………….. . 25
2.4. Go (GoL ang) – Prezentare și istoric …………………………………………………………………….. . 29
2.5. JAVA – Prezentare și istoric ………. ……………………………………………………………………….. . 33
2.6. Servere Web – ………………………………………………….. ……………………………………….. . 33
CAPITOLUL 3 – DESCRIEREA LUCRĂRII ………………………. ………………………….. …………. . 33
3.1. Motivarea alegerii ……………………. …………………………………………………………………… .
33
3.2. Scop ul lucrării ……………………………………. ………………………………………………………… . 33
3.3. Realizarea lucrării …………………………………….. ……… ……………. ……… ……………………. . 8
3.4. Structura lucrării ………….. ……….. …………………….. ……………………………………………… . 10
pg. 4 3.4.1. Structura logică ……………………………………….. …………………………………………….. . 10
3.4.2. Arhitectura ……………………….. ……………………. …………………………………………….. . 10
3.5. Utilizarea aplicației …………. …………………………….. ………………………………….. ………… . 22
3.5.1. Tutorial de utilizare ………………………………….. …………………………………………….. . 22
3.5.2. Scenariu de utilizare …………………… ……………. …………………………………………….. .
22
CAPITOLUL 4 – CONC LUZIE ……………………………………………………………………… …………. . 33
BIBLIOGRAFIE …………………………………………………………………………………………… …………. . 33
pg. 5 CAPITOLUL 1 – INTRODUCERE
1.1. Codul Morse – Noțiuni generale
Codul Morse , sau alfabe tul Morse, a fost inventat de către Samuel Morse pe la mijlocul
anilor 1830 si reprezinta o metodă de transmitere a informației folosind secvențe standardizate
de semen – cunoscute în mod comun ca „puncte” și „linii” – pentru litere, cifre și caracterele
speciale specifice oricărui mesaj. Inițial, a fost conceput pentru a fi folosit în transmiterea de
mesaje cu ajutorul telegrafului electric. Acesta a fost folosit la scară largă începând cu
perioada timpurie a comunicațiilor radio, în jurul anilor 1890.
După ce metodele de comunicație au început să se dezvolte din pun ct de vedere
tehnologic, codul M orse a început sa fie dat uitarii . De-a lungul timpului , el a fost utilizat
pentru comunicare în mai multe domenii , precum aviația, comunicarea între na vele de război
și bazele navale etc, fiind un standard internațional pentru comunicații maritime până în 1999.
1.2. Codul Morse – Implementare si utilizabilitate
Datorită dezvoltării ulterioare a comunicațiilor, utilizarea alfabetului Morse a deve nit în
zilele noastre aproape uitată. Totuși, există domenii de utilizare, așa cum ar fi navigarea
maritimă și aeriană, precu m și comunicarea radio -amatoare, în care folosirea invenției
americanului Morse este de neînlocuit. De fapt, codificarea Morse este singura modalitate
digitală de modulare și transmitere a informației ce poate fi folosită eficient și citită ușor de
către oameni, fără a necesita existența unui calculator , fapt ce permite transmiterea digitală a
informației pe canale de comunicare desti nate transmiterii sunetelor , și deci , a vocii umane.
Alfabetul Morse poate fi transmis în mai multe feluri. Inițial, a fost transmis sub formă
de pulsații electrice de -a lungul unei linii telegrafice, dar poate fi transmis ca un ton audio, ca
un semnal radio având pulsații ori tonuri lungi și scurte, sau c a semnale mecanice ori vizuale.
Codul Morse poate fi considerat o formă timpurie de transmitere digitală a informației; totuși,
este dificil de adaptat la transmiterea automată din cauza lungimi i variabile a caracterelor sale.
pg. 6 Ca atare, a fost înlocuit cu alte coduri de transmitere , ce au lungimi standard pentru fiecare
caracter distinct al mesajului. Codul Morse a fost utilizat pentru mai mult de 160 de ani – mai
mult decât orice alt sistem elec tric de codificare. Ceea ce se numește a stăzi codul Morse este
oarecum diferit de ceea ce a fost inițial dezvoltat de Morse și Vail (asistentul lui Morse).
pg. 7 1.3. Arduino
Arduino este o companie open -source care produce atât plăcuțe de dezvoltare bazate pe
microcontrolere, cât și partea de software destinată funcționării și programării acestora. Pe
lângă acestea , include și o comunitate de persoane uriașă care se ocupă cu creația și
distribuirea de proiecte care au ca scop crearea de dispozitive care pot sesiza și controla
diverse activităț i sau procese în lumea reală. Primul Arduino a fost lansat în 2005, având ca
țintă asigurarea unei soluții ieftine și simple pentru începători și pr ofesioniști spre a crea
dispozitive capabile să interacționeze cu mediul, folosind senzori și sisteme de acționare. Cele
mai comune exemple sunt dispozitivele pentru utilizatorii începători precum: roboții simpli,
termostatele și/sau detectoarele de mișcar e.
O plăcuță Arduino este compusă dintr -un microcontroler Atmel AVR de 8 -, 16- sau 32 –
biți (deși începând cu 2015 s -au folosit microcontrolere de la alți producători) cu componente
complementar e care facilitează programarea și încorporarea în alte circuite. Un aspect
important la Arduino este că acesta dispune de conectori standard, care permit utilizatorului să
conecteze plăcuța cu procesorul la diferite module interschimbabile numite shield -uri. Unele
shield -uri comunică cu Arduino direct prin pinii digitali sau analogici, dar altele sunt
adresabile individual prin magistrala serială I²C , permițând utilizarea mai multor module în
paralel. Până în anul 2015 , plăcuțele Arduino oficiale au folosit c ipuri Atmel din seria
megaAVR, în special ATmega8, ATmega168, ATmega328, ATmega1280 și ATmega2560,
iar în 2015 au fost adăugate cipuri de la alți producători. O multitudine de alte procesoare au
fost folosite de dispozitive compatibile Arduino. Multe plăcu țe includ un regulator liniar de 5
V și un oscilator cu cuarț de 16 MHz (sau un rezonator ceramic în unele variante), deși
anumite plăcuțe, cum ar fi LilyPad, funcționează la 8 MHz și nu necesită regulator, datorită
restricțiilor de formă.
Un microcontrole r instalat pe Arduino vine preprogramat cu un bootloader care
simplifică încărcarea programelor pe memoria flash a cipului, în comparație cu alte
dispozitive care necesită programatoare externe, acest aspect face Arduino o soluție simplă,
permițând program area de pe orice computer . În prezent, bootloader -ul optiboot este
bootloader -ul implicit instalat pe Arduino UNO . Programele Arduino pot fi scrise în orice
pg. 8 limbaj de programare cu un compilator capabil să producă un cod mașină binar. Atmel oferă
un mediu de dezvoltare pentru microcontrolerele sale, AVR Studio și mai nou, Atmel Studio.
Arduino IDE suportă limbajele de programare C și C++ folosind reguli speciale de organizare
a codului. Arduino IDE oferă o librărie software numită Wiring, din proiectu l Wiring, care
oferă multe proceduri comune de intrare și ieșire. Un sketch tipic Arduino scris în C/C++ este
compus din două funcții care sunt compilate și legate cu un ciot de program main() , într -un
program executabil cu o execuție ciclică .
pg. 9
CAPITOLUL 2 – TEHNOLOGII UTILIZATE IN
DEZVOLTAREA APLICATIEI
2.1. HTML – Prezentare și istoric
HTML (Hyper Text Markup Language) este un limbaj de marcare orientat către
prezentarea documentelor text pe o singura pagină, utilizând un software de redare specializat,
numit agent utilizator HTML, cel mai bun exemplu de astfel de software fiind browserul web.
HTML furnizează mijloacele prin care conținutul unui document poate fi adnotat cu diverse
tipuri de metadate și indicații de redare. Indicațiile de redare pot varia de la decorațiuni minore
ale textului, cum ar fi specificarea faptului că un anumit cuvânt trebuie subliniat sau că o
imagine trebuie introdusă, până la scripturi sofisticate, hărți de imagini și formulare.
Metadatele pot include informații despre titlul și autorul documentului, informații structurale
despre cum este împărți t documentul în diferite segmente , paragrafe, liste, titluri etc și
informații cruciale care permit ca documentul să poată fi legat de alte documente pentru a
forma astfel hiperlink -uri (sau web -ul).
Limbajul HTML a fost inventat de către Tim Berne rs-Lee, fizician la CERN ( Organizația
Euro peană pentru Cercetare Nucleară ), alături de inginerul de sisteme de date Robert Cailliau,
la sfârșitul anilor 1980, inceputul anilor 1990. Inițial, cei doi au lucrat la soft -ul care a pus
bazele a ceea ce cunoaște m in ziua de azi ca fiind WWW (World Wide Web). Înaintea acestei
dezvoltări, comunicarea prin intermediul Internetului era limitată la utilizarea textului simplu,
folosind tehnologii simpliste precum e -mail-ul, transmiterea fisierelor prin FTP (Protocol de
Transfer al Fișierelor) etc. HTML folosea un model stocat pe un server central, care permitea
transferul către o stație de lucru locală și posibiliatea de a fi vizualizat într -un browser. Astfel,
creștea accesibilitatea conținutului și , totodata , posibili tatea de a îmbogăți pe cât posibil acest
conținut prin formatare mai sofisticată sau adăugare de imagini.
Primul docu ment public legat de HTML a fost intitulat "Taguri HTML". Limbajul
HTML utilizează un set predefinit de element e; elementele conțin unul sau mai multe taguri,
pg. 10 care conțin sau exprimă conținut . Tagurile sunt entități închise între paranteze unghiulare care
închid conținutul între ele .
Limbajul HTML este format dintr -un set de elemente care definesc semnificația
semantică a conținutului lor (este un limbaj de tipul WYSIWYG, "What You See Is What You
Get"). Anumite elemente HTML au un rol precis, cum ar fi inserarea unei imagini sau crearea
unui hyperlink , însa altele au un rol mai puțin specific, cum ar fi î ncadrarea/formarea unei
zone în pagina, oferirea de informații tehnice (cum ar fi titlul paginii respective) șamd. La
deschiderea unei pagini care conține cod HTML, browser -ul va interpreta respectivul cod și îl
va formata în pagină exact după modul în care a fost scris. Se poate considera că elementele
limbajului HTML sunt fundația site -urilor web, deoarece este limbajul care oferă posibilitatea
de a lega toate zonele de comunicaț ie între ele. În prezent, HTML, alături de alte limbaje web,
face parte din standardul internaț ional stabilit de către W3C (World Wide Web Consortium)
pentru Design și Aplicații Web. Ultima versiunne publica a limbajului este HTML 5.
Odată cu versi unea HTML5, tehnologia permite incărcarea nativă a fișierelor audio/video
în browser, crearea și utilizarea de elemente SVG, crearea de animații complexe etc.
Document Object Model (DOM) este o convenție destinată tuturor platformelor și limbajelor
pentru prezentarea și manipularea obiectelor de tip HTML, XHTML și XML în documente.
Nodurile fiecărui document sunnt reprezentante într -o structură arborescentă numită arborele
documentului. Orice obiect din arborele documentului poate fi selectat și modificat p rin
diverse metode puse la dispoziție de CSS sau JavaScript.
pg. 11 2.2. CSS ( Cascading Style Sheets )
2.2.1. Prezentare și istoric
CSS (Cascadi ng Style Sheets) este un standard pentru formatarea elementelor unui
document HTML. Stilurile se pot atașa elementelor HTML prin intermediul unor fișiere
externe , prin elementul <link> , sau în cadrul documentului HTML , prin elementul <style>
și/sau atribut ul style. CSS se poate utiliza și pentru formatarea elementelor XHTML, XML și
SVGL.
Prima propunere de CSS în fața World Wide Web Consortium a fost în anul 1994
aparținând lui Håkon Wium Lie. Una dintre cerințele pe care un astfel de limbaj trebuia să le
respecte a fost posibilitatea ca foile de stil sa poata proveni din diferite surse de pe Internet.
După mai multe discuții și votări, în anul 1996 a fost stabilit primul standard ai foilor de stil
web, CSS1 avându -i ca autori pe Håkon Wium Lie și Be rt Bos. CSS este cel mai des folosit
pentru a stabili aspectul paginilor web și interfețelor scrise în HTML , dar poate fi aplicat și
documentelor de tip XML sau SVG . Ultima versiune publică este CSS3.
Odată cu CSS3, s -a făcut posibilă realizarea de animații cu ajutorul codului CSS, fără
intervenția codului JavaScript, intr oducerea “colțurilor rotunde”, introducerea umbrelor pentru
elemente șamd. CSS3 a fost gândit să extindă varianta precendentă, CSS2, ci nu să fie ceva
nou și diferit, neapărat.
Codul CSS se bazeaz ă pe oferirea de valori unor atribute (propietăți) , care la r ândul lor
sunt conț inute de tag -uri (selectori). Selectorii reprezintă, de fapt, conexiunea către acelaș i tag
efectiv din codul HTML . Atributele sunt și ele nenumă rate, unele fiind specifice pentru o
acțiune (ex : durata unei animaț ii), altele pe ntru ceva ce ține pur ș i simplu de design (ex:
culoarea de fundal de la un paragraf).
Sintaxa limbajului CSS este foarte simplă și pe înțelesul tuturor. În prezent, specificația
CSS este menținută de către World Wide Web Consortium , care pune la dispoziția
dezvoltatorilor un validator de documente CSS , alături de validato rul pentru HTML .
pg. 12
2.2.2. Bootstrap
Bootstrap este, la momentul actual, cel mai cunoscut ș i folosit f ramework web pentru
dezvoltarea pe frontend ; putem considera Bootstrap ca fiind o librărie CSS cu o capabilitate
foarte extinsă. Această librărie a fost dezvoltată initial la Twitter , în anul 2010, de către Mark
Otto și Jacob Thornton , doi web developeri din cadrul Twitter ; inițial, a purtat numele de
“Twitter Blueprint” .
Librăria Bootstrap oferă un set de foi de stil, în care se găsesc definiții de stil pentru
toate componentele HTML. Acestea asigură un aspect uniform și modern pe ntru f ormatare
elementelor HTML . Pe lângă opțiunile HTML obișnuite, Bootstrap mai adau gă și opțiuni
pentru efecte, în scopul de a ușura munca developerului. Câteva exemple ar fi : funcții
avansate pe lucrul cu butoane, metode avansate de tipografie , imagini de font (ex : Font –
Awesome ), mesaje de avertizare. Ultima versiun e este Bootstrap3. Se consideră ca Bootstrap3
ar fi cea mai eficientă librărie de genul la momentul actual.
pg. 13 Odată cu Bootstrap3, librăria a devenit suportată pe majoritatea navigatoarelor web, chiar
și pe versiuni mai vechi. Conceptul Bootstrap a fost, odată cu Bootstrap2, să suporte web
design -ul ”responsive ”; acest lucru înseamnă pro cesul prin care paginile unui site web se
reajustează în funcție de ecranul device -ului pe care sunt deschise în acel moment, deci un
web designer nu ar mai fi fost nevoit să conceapă și să implementeze aceste nevoi, prin
utilizarea claselor CSS oferite de librăria Bootstrap. În 2014, Mark Otto a anunțat că
Bootstrap4 este în dezvoltare ; se consideră că va avea diferențe mari la bază, deci va fi mult
mai optimizat și funcționalitaț ile pe care le va oferi vor fi mai ușor de implementat.
pg. 14 2.3. JavaScript (JS)
2.3.1. Prezentare și istoric
JavaScript (adesea abreviat ca “JS”), este un limbaj de programare de nivel înalt,
dinamic, weak -typed și interpretat și este standardizat în specificația ECMAScript (European
Computer Manufacturers Association S cript). Acesta este un limbaj de tip client -side, adică
este interpretat în browser, la incărcarea paginii web, ci nu pe server. Alături de HTML și
CSS, acesta este unul dintre cele trei mari tehnologii de bază care reprezintă fundația
conținutului web. Majoritatea site -urilor folosesc JavaScript și toate browserele moderne oferă
suport pentru acest limbaj.
Limbajul JavaScript este folos it și în medii din afara ariei w eb, cum a r fi lucrul cu
documente PDF, aplicații desktop șamd . Pe partea de clie nt, JavaScript este utilizat ca limba j
interpretat. Fiind foarte ușor de inte grat, limbajul JavaScript a luat amploare și poate fi utilizat
în dezvoltarea de jocuri, cr earea de aplicații desktop și mobile, precum și în programarea pe
partea de server , cu posibiliatea rulării în timp real (ex: NodeJS ).
JavaScript a fost creat în anul 1995 de către Brendan Eich, care lucra în acea vreme la
Netscape . Limbajul a avut mai multe nume pe parcursul dezvoltării; în decembrie 1995 a fost
licențiat de către Sun și i-a fost dat numele pe care îl poartă și astăzi , JavaScript . Deoarece
limbajul Java era foarte popul ar atunci, se poate considera că denumirea în JavaScript a fost,
într-o oarecar e mă sura, o miș care de marketing. De aici și confuzia care ține chiar și în prezent
între cele două limbaje cum că ar avea o legătură; cele două sunt complet diferite.
Cu timpul, JavaScript a devenit unul dintre cele mai populare limbaje de programare
web. O utilizare comună a JavaScript este de manipula comportamentul pag inii HTML. Codul
JavasScript este fie încorporat , fie inclus în pagina HTML . În general, se practică ambele
metode . Bineînțeles, anumite coduri sursă de JavaScript pot fi și “dăunatoare ”, în sensul că
unii atacatori pot ajunge să fure cu ușurință date private ale utilizatorilor unui website cu doar
câteva linii de co d JavaScript.
pg. 15
Câteva exemple de opțiuni pe care le oferă JavaScript :
– Efecte aplicat e elementelor din pagină
– Validare a câ mpurilor HTML
– Conținut interactiv (ex: anima ții)
– Colectare de info rmații des pre activitatea utilizatorului și/sau a navigatorului să u
Codul sursă JavaScript este interpretat și executat de către un motor JavaScript.
JavaScript poate f uncționa atât ca un limbaj procedural, cât și ca un limbaj orientat pe obiecte.
Obiectele sunt generate programatic, atașând metode și propietăți unor obiecte nule la rulare.
Odată ce un obiect a fost generat, poate fi folosit ca “blueprint” (“matriță ”) pentru a genera
obiecte similare.
pg. 16 2.3.2. jQuery
jQue ry este o bibliotecă JavaScript concepută pentru a ușura și îmbunătăț i procese
executate in JavaScript pur. La momentul actual, jQuery est e cea mai populară bibliotecă
JavaScript ; este o librărie gratuită, open -source sub licența MIT (licența MIT permite
reutilizarea codului în cadrul aplicațiilor proprii cu o condiție: toa te copiile aplicației lansate
vor include o copie a termenilor de licență MIT și o notificare privind drepturile de autor).
Biblioteca a fost lansată în 2006 de către John Resig.
jQuery se poate folosi pentru a rezolva următoarele probleme specifice progra mării web:
– Selecții de elemente în arborele DOM folosind propriul motor de selecții open source
– Înregistrarea și modificarea evenimentelor din browser
– Manipularea elementelor CSS
– Efecte și animații
– Cereri de tip AJAX
– Extensii (ex: module 3rd party)
– Utilit ăți
Sintaxa jQuery este proiectată special pentru a facilita navigarea in document. jQuery
promovează claritatea codului, folosind funcții succinte și clare . De asemenea, e limină
posibile incompatibilități între browsere, motorul său ocupându -se de diferențele posibile
dintre browsere oferind o interfață consistentă .
pg. 17 2.4. Go (GoLang) – Prezentare și istoric
Go (sau GoLang) este un limbaj de programare open -sourc e creat la Google in 2007, de
către Robert Griesemer, Rob Pike și Ken Thompson . Este un limbaj compilat, fapt ce î l face să
fie din start un limbaj eficient. Prima apariț ie a sa a avut loc î n noiembrie 2009 ș i de atunci
este î n continuă dezvoltare. Sintaxa limbajului Go poate fi comparată cu cea a limbajului C,
făcând pa rte, într-o anumită măsură, din aceeaș i familie. Go a implementat multe modifică ri la
nivel de sintaxă , pentru a simpli ca lucrul cu date, algoritmica ș amd. Majoritatea tipurilor de
date au fost redefinite.
Limbajul Go este expresiv , conc is, curat și eficient . Mecanismele sale de lucru in
paral el (“concurrency ”) facilitează scrierea programelor care utilizează în cea mai mare
măsură mașinile multicore și în rețea, în timp ce sistemul tip
nou permite o construcție flexibilă și modulară a programului.
Go compilează rapid la codul mașină , și are confortul
funcționalității de “colectare a gunoiului ” (“garbage
collection ”). Este un limbaj rapid, static, compilat, care
seamănă cu un limbaj interpretat dinamic. Go ofer ă
posibilitatea de a lucra cu orice tip de device, simultan, chiar
și în același program sursă.
Structura unui program Go porneșt e de la declararea unor pachete, lucru oarecum
asemanator cu structura unui program Java. Pachetele sunt, de fapt, structuri de date sau chiar
alte programe de sine stă tătoare, care conț in metode ș i propiet ați globale sau locale.
Bineinț eles, doar metodele ș i propieta țile globale pot fi folosite î n zonele î n care respectivul
pachet este importat.
Conven ții și stil de cod:
– Identarea, spați erea ș i alte detalii asemă nătoare ale codului sunt standartizate automat
de că tre tool -ul gofmt
pg. 18 – Go supun e programatoru l la anumite reguli, cum ar fi ș tergerea variabilelor nefolosite
sau chiar a pach etelor importate si nefolosite ș amd
– Tool -urile ș i libră riile distribuite cu Go sugereaz ă abordă ri standard pe ntru lucrurile
precum documentaț ia API, testare, construire, manageriere ș amd
Go include tool-uri asemănătoare cu cele oferite și de alte kit-uri ale limbaje lor de prog ramare .
Câteva exemple ar putea fi :
– go build – care construie ște fișiere binare Go folosind info rmații doar din fiș ierele
sursă , fără alte zone separate
– go test – pentru testare surse și teste de benchmark
– go fmt – pentru formatare a codului
– go run – scurtă tură pentru compilarea ș i executarea unei surse
– godoc – pentru listarea documentaț iei oficiale Go
pg. 19 2.5. JAVA – Prezentare și istoric
Java este un limbaj de programare orientat pe obiecte , puternic tipizat, conceput de către
James Gosling la Sun Microsystems (acum filia lă Oracle) la începutul anilor 1990 , fiind lansat
în 1995. Cele mai multe aplicații distribuite sunt scrise în Java, iar noile evoluții tehnologice
permit utilizarea sa și pe dispozitive mobile, cum ar fi pe telefon, agenda electronică etc. În
felul acesta , se creează o platformă unică, la nivelul programatorului, deasupra unui mediu
eterogen extrem de diversificat. Acesta este utilizat în prezent cu succes și pentru programarea
aplicațiil or destinate intranet -urilor .
Limbajul împrumută o mare parte din sintaxă de la C și C++, dar are un model al
obiectelor mai simplu și prezintă mai puține facilități de nivel jos. Un
program Java compilat, corect scris, poate fi rulat fără mo dificări pe
orice platformă pe care e instalată o mașină virtuală Java (engleză
Java Virtual Machine, prescurtat JVM). Acest nivel de portabilitate
(inexistent pentru limbaje mai vechi , cum ar fi C) este posibil
deoarece sursele Java sunt compilate într -un for mat standard numit
cod de octeți (engleză byte -code) care este intermediar între codul
mașină (dependent de tipul calculatorului) și codul sursă. Mașina
virtuală Java este mediul în care se execută programele Java. În
prezent, există mai mulți furnizori de JVM, printre care Oracle, IBM,
Bea, FSF. În 2006, Sun a anunțat că face disponibilă varianta sa de JVM ca open -source.
Au fost 5 principii la baza creației limbajului Java :
– Trebuie să fie “simplu, orientat pe ob iecte ș i familiar ”
– Trebuie să fie “robust ș i sigur ”
– Trebuie să fie “neutru din p unct de vedere al arhitecturii ș i portabil ”
– Trebuie să fie “eficient, deci sa execute cu o performanț ă înaltă ”
– Trebuie să fie “interpretat, împărțit și dinamic ”
pg. 20 2.6. Servere Web
Serverul web (engleză web server ) este serverul care stochează (găzduiește) pagini web
și le pune la dispoziția solicitanților prin proto colul HTTP. R elația server -client se bazează pe
o aplicație care este instalată pe server și care este programată s ă transfere paginile web
găzduite. Putem observa aici că ideea de web server presupune și noțiunea de găzduire
(engleză hosting ), asta deoarece serverul trebuie să dețină datele pe care urmează să le
returneze la cerere.
Relația este următoarea: utilizatorul (clie ntul) aflat în dreptul unui computer pe care are
instalată o aplicație tip browser , solicită (serverului) prin intermediul unui url o anumită
pagină web; serverul rulează anumite linii de cod și returnează un rezultat. Descrierea de mai
sus se potrivește pe rfect în cazul site -urilor (paginilor web) statice (adică cele bazate î n
exclusivitate doar pe limbajele HTML si CSS ). Există însă așa numitele site -uri dinamice care
au în compunere , alături de limbajul rudimentar de afișare a paginii web , și un limbaj de
comunicare între serverul web și o bază de date. De această dată relația este următoarea:
utilizatorul (clientul) aflat în dreptul unui computer pe care are instalată o aplicație tip browser
solicită (serverului) prin intermediul unui url o anu mita pagină web; serverul web verifică
solicitarea și prin intermediul unui limbaj de programare special interoghează o bază de date,
dacă anumite condiții sunt intrunite, baza de date returnează serverului web datele solicitate
care la rândul lui furnizea ză datele mai departe clientului inițial. În această ultimă relație între
web server și utilizator sunt transmise doar informații destinate afișării în browser într -o formă
prietenoasă a informațiilor solicitate. Până să ajungă la utilizator, așa cum am vă zut mai sus,
serverul web , prin intermediu l unui cod sursa special , schimbă o serie de informații cu o bază
de date stocată. Prin urmare, în cazul unui site dinamic, conținutul care ajunge la client poate
fi filtrat dupa orice tip de criteriu, cum ar f i sa fie tradus în limba țării detectate la client, pana
la interogare personalizată în baza de date.
HTTP oferă o tehnică de comunicare prin care paginile web se pot transmite de la un
computer aflat la distanță spre propriu l computer. Dacă se apelează o adresă de web , cum ar fi
http://www.example.com, atunci se cere calculatorului host să afișeze o pagină web
(index.html sau altele). În prima fază , numele (adresa) www.example.com este convertit de
pg. 21 protocolul DNS într-o adresă IP. Urmează transferul prin protocolul TCP pe portul standard
80 al serverului HTTP, ca răspuns la cererea HTTP -GET. Informații suplimentare ca de ex.
indicații pentru browser, limba dorită șamd se pot adăuga în header -ul (antetul) pachetului
HTTP. În urma cererii , HTTP -GET urmează din partea serverului răspunsul cu datele cerute,
ca de ex.: pagini în (X)HTML, cu fișiere atașate ca imagini, fișiere de stil (CSS), scripturi
(Javascript), dar pot fi și pagini generate dinamic (SSI, JSP, PHP și ASP. NET). Dacă dintr -un
anumit motiv informațiile nu pot fi transmise, atunci serverul trimite înapoi un mesaj de
eroare. Modul exact de desfășurare a acestei acțiuni (cerere și răspuns) este stabilit în
specificațiile HTTP.
Protocolul permite interacțiunea prin mai multe metode disponibile , dintre care doar
primele trei sunt folosite uzual în web: GET, POST, HEAD, DELETE, PUT , OPTIONS,
TRACE, CONNECT. Toate cererile primesc un răspuns ; răspunsurile au o codificare
specifică , astfel încât să fie clar oricui unde a intervenit o problemă , confor m urmatorului
tabel :
Cod Descriere Exemplu
1xx Informație 101 = Schimbare protocol
2xx Succes 200 = OK
3xx Redirecționare 301 = Mutare permanentă
4xx Eroare client 404 = Pagină negăsită
5xx Eroare server 500 = Eroare internă server
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: pg. 1 UNIVERSITATEA DIN BUCUREȘTI FACULTATEA DE MATEMATICĂ ȘI INFORMATICĂ INFORMATICĂ LUCRARE DE LICENȚĂ Coordonator științific: Asist.dr. Vasile… [616570] (ID: 616570)
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.
