Eliminarea unui obiect nedorit dintr-o imagine Conducător științific Autor Prof. ​ Prejmerean Vasile​ Rus Cristian-Vlad 2018 1 CUPRINS Capitolul 1…. [609552]

UNIVERSITATEA BABEȘ-BOLYAI  
 
FACULTATEA DE MATEMATIC Ǎ ȘI INFORMATIC Ǎ    
 
SPECIALIZAREA INFORMATIC Ǎ  

LUCRARE DE LICENȚĂ  
 
Eliminarea unui obiect nedorit dintr-o imagine  

Conducător științific Autor  
Prof. ​ Prejmerean Vasile​ Rus Cristian-Vlad  

2018  

1

CUPRINS  
Capitolul 1. Caracteristici aplicații și tehnologii web 3  
1.1 Introducere 3  
1.2 Prezentare generală 3  
1.3 Componentele principale ale aplicațiilor web 4  
1.3.1 Redactarea documentelor web – HTML 4  
1.3.2 Protocolul HTTP 6  
1.3.3 Limbajul Javascript 8  
Capitolul 2. Dezvoltarea aplicațiilor Web 10  
2.1 Prezentare generală 10  
2.2 Avantaje și dezavantaje în dezvoltarea aplicațiillor web 10  
2.3 Arhitectura unei aplicații web 12  
2.3.1 Avantaje și constrângeri ale arhitecturii aplicațiilor 12  

2

1. Capitolul 1. Caracteristici aplicații și tehnologii web  
1.1 Introducere  
 
Termenul “web” este o abreviere ce provine de la termenul World Wide Web                          
(WWW) și reprezintă totalitatea documentelor și informațiilor compuse din structure                    
de tip hipertext ce sunt legate între ele, ce pot fi utilizate și accesate cu ajutorul rețelei                                  
mondiale de internet. Aceste pot fi stocate în diferite locații, în diverse dispozitive                          
electronice, fiind accesate printr-o denumire sau identificator unic numit URL.    
Aceste structuri de tip hipertext sunt randate și afișate cu ajutorul programelor                        
de navigare dezvoltate de-a lungul timpului, numite în limba engleză “browser”.  
 
1.2 Prezentare generală  
Principalele tehnologii ce au la bază dezvoltarea unei aplicații web sunt formate din:                          
HTTP – reprezintă protocolul folosit transferul de informații și resurse la nivelul                        
aplicațiilor și limbajul folosit pentru scriere informațiilor de tip hypertext, numit                      
HTML​ .  
Cele doua tehnologii principale menționate mai sus, permit dezvoltarea                  
aplicațiilor de tip web, însă nu sunt în totalitate suficiente pentru dezvoltarea unor                          
aplicații complexe sau mai avansate. Au apărut diverse limbaje de programare și                        
criptare a informațiilor care conlucrează cu aceste două tehnologii și au ca rol                          
principal folosirea ultimelor tehnologii existente în materie de aplicații web. Printre                      
acestea sunt de luat în considerare limbajele de programare ce sunt utilizate atât la                            
nivel de funcționalitate (PHP) cât și la nivel de interfață cu utilizatorul (Javascript,                          
jQuery), limbaje ce vor fi prezentate în capitolele ce urmează. De asemenea, o                          
întrepătrundere utilizabilă în aplicațiile web este realizată la nivelul modalităților și                      
procesului de afișare a informațiilor existente în paginile web, incluzând interfața cu                        
utilizatorul, modalitate ce se realizeaza cu ajutorul unui limbaj de stil (en: “style                          
3

language”) numit CSS (“Cascading Style Sheets”), subiect ce va fi tratat și prezentat de                            
asemenea în următoarele capitole.  
 
1.3 Componentele principale ale aplicațiilor web  
Componentele principale ale aplicațiilor web sunt formate din cele două tehnologii                      
precizate mai sus, și anume: HTTP și HTML. Pentru dezvoltarea unei aplicații web                          
simple sunt suficiente doar aceste două, însă pentru aplicații complexe apar                      
înterpatrunderea mai multor limbaje de programare, scripting și de stilizare.    
1.3.1 Redactarea documentelor web – HTML  
Componentele principale ale aplicațiilor web sunt formate din cele două tehnologii                      
precizate mai sus, și anume: HTTP și HTML. Pentru dezvoltarea unei aplicații web                          
simple sunt suficiente doar aceste două, însă pentru aplicații complexe apar                      
înterpatrunderea mai multor limbaje de programare, scripting și de stilizare.    
 
Fișierele HTML (​ H​ yper​ T​ ext ​ M​ arkUp ​ L​ anguage) sunt formate și alcătuite                  
dintr-un limbaj de marcare (limbaj hipertextual) ce are la bază un stil de compoziție                            
numit ​ markup​ . Acest tip de fisier markup, se referă la o secvență de caractere sau alte                                
simboluri special numite etichete sau taguri, ce sunt inserate la nivelul unui text                          
pentru a putea fi ulterior randate intr-un mod diferit. Randarea diferită poate fi                          
realizată la nivelul fontului textului, culoarea, dimensiunea sau poziția. Modificarea                    
textelor de tip HTML se realizează cu orice editor de text cunoscut (exemplu: Notepad,                            
Notepad++, SublimeText), însă randarea continutului acestor tip de fișiere se                    
realizează cu ajutorul browserelor.  
Din punct de vedere sintactic, tag-urile de tip HTML sunt reprezentate ca fiind                          
simboluri sugestive delimitate de paranteze unghiulare (< , >). Etichetele sunt folosite                        
cel mai des cu perechi, având ca rol delimitarea unei porțiuni de text ce primește                              
proprietatea respectivă. Prin urmare, textul ce primește o proprietate va fi incadrat                        
intre o eticheta de start la început și o etichetă de final la final, etichetă ce va avea in                                      
plus față de cea inițială simbolul “/”. De exemplu, eticheta de început <b> are eticheta                              
caracteristică de final “</b>”.  
4

Având în vedere evoluția in timp a fișierelor de tip HTML, s-a constat un                            
progres imens la nivel de dezvoltare și interpretare a acestora. Astfel că, dacă la                            
începutul apariției fișierelor de tip HTML, se foloseau etichete simple care în                        
combinație ofereau rezultatul dorit, acum limbajul de markup s-a dezvoltat (HTML 5),                        
oferind utilizatorilor și dezvoltatorilor posibilități ce duc la o muncă mai ușoară și mai                            
plăcută. Astfel, s-au introdus diferite tag-uri noi care oferă au aceeași funcționalitate                        
cu o combinație mult mai complicată de etichete din versiunile anterioare, având ca                          
scop dezvoltarea unor aplicații web cât mai complexe.  
Pentru a oferi aplicațiilor web o structură cât mai interactivă s-a introdus                        
includerea sau inserarea unor asa-numite ​ scripturi ​ (doar in partea de client) ce se vor                            
executa la incărcarea browserului sau la aplicarea unui eveniment pe pagina. Cel mai                          
des folosit limbaj de scripting este bine-cunoscutul ​ Javascript ​ care pentru inserarea în                        
cadrul fisierelor de tip HTML se vor folosi etichetele de tip: <script></script> ce vor fi                              
incluse in partea de inceput a documentului, in <head>. De asemenea ele pot fi incluse                              
și in <body>, însă diferența față de includerea lor in tag-ul de <head> unde ele vor fi                                  
apelate doar la acțiunea unui eveniment, este că ele vor fi executate la încarcarea                            
paginii web a browserului.  
Odată cu apariția versiunii HTML 4, este introdusă și proprietatea de stilizare a                          
documentelor/etichetelor de tip html printr-un nou tip de limbaj de stil, numit CSS                          
(​ Cascade Style Sheet​ ). Datorită proprietăților sale, conține un set de reguli și proprietăți                          
care vor dicta browserului cum vor fi afișate etichetele de tip html.    
 
5

1.3.2 Protocolul HTTP  
Protocolul HTTP (​ H​ yper​ T​ ext ​ T​ ransfer ​ P​ rotocol) reprezintă metoda cea mai des                    
utilizată ce are ca scop accesarea informațiilor ce sunt memorate pe servere de tip                            
World Wide Web (WWW). HTTP reprezintă protocolul implicit al aplicațiilor web,                      
ceea ce înseamnă că, în cazul accesării unei aplicații web nu este trecut protoculul http                              
in textul de accesare URL (www.exemplu.ro), atunci acesta este luat ca implicit. De                           1
asemenea, HTTP presupune că pe dispozitivul electronic ce are rolul de “destinație”                        
rulează un program care întelege protocolul. Fișierele transmise la destinație pot fi                        
documente HTML, fișiere grafice, fișiere de sunete, animație sau video, un program de                          
tip executabil pe server-ul respective sau un editor de text.  
Protocolul HTTP este crat cu scopul de a realiza schimburi, într-un mod                        
distrbuit, în internet și drept urmare exploatează un system standard de adresare a                          
resurelor. Resursele HTTP sunt identificate prin URL, având următorul format:  
 
http: // <host> [:port] [<path> [? <query>]]  
 
1 U R L ​ – reprezintă un localizator uniform de resurse și reprezintă o secvență de caractere folosită în
denumirea, localizarea și identificarea unor resure sau pagini in Internet.
6

Modul de funcționare ​ este dat prin tehnica de comunicare prin care paginile web                          
sunt transmise de la un calculator la altul, aflate la o distanță oarecare unul față de                                
celelalt. Ca prim pas, este accesat un url (ex: http://www.exemplu.ro) prin care se cere                            
afișarea unor informații de tip html. Ca process principal, în primă fază numele url-ui                            
este convertit de protocoulul DNS ​ într-o adresă IP. Cu ajutorul protocolului TCP                        
(​ Transmission Control Protocol) pe portul standard 80 al serverului HTTP, este transmisă                        
informația cerută. Răspunsul returnat poate să conțină informații aleatore cu privire                      
la cerea realizată inițial (Figura 1.4). Informațiile se pot structura în informații ce țin                            
de browserul de pe care a fost facută cererea, parametrii, etc.  
 
Figura 1.1​ – Comunicare protocol HTTP între client și server [3]  
 
Câteva aspecte de precizat necesare asupra protocolului HTTP, aspecte ce au                      
stat la baza dezvoltării aplicațiilor de tip web de-a lungul timpului:  
– Interacțiunea între client și server are loc doar in momentul în care clientul                          
solicită serverul, prin urmare nu exista niciun mod prin care serverul poate                        
solicita din nou clientul (cererea de la client la server poate fi considerată                          
unidirecțională). Astfel, informarea clienților nu poate fi utilizată decât                  
doar daca se folosește protocolul HTTP.  
– Fiecare cerere a unui client este interpretată și tratată de serverul web                        
independent. Astfel că în cazul in care un client trimite două cereri, serverul                          
va interpreta independent, la fel ca si cum ar veni cererile de la doi clienți                              
diferiți.  
– In cazul în care se dorește păstrarea unui istoric aspura cererilor și                        
răspunsurilor între un client și un server, datorită proprietăților                  
protocolului HTTP, care nu reține in niciun fel o “sesiune” a unui client, va fi                              
7

nevoie de o implementare externa, utilizând alte proceduri de a stoca                      
informațiile sau sesiunile.  
1.3.3 Limbajul Javascript  
Partea de interfață cu utilizatorul reprezintă un element important în ziua de azi, când                            
aplicațiile web se doresc cât mai funcționale din partea de client și cât mai stilizate din                                
punct de vedere al design-ului.  
In ajutorul acestor cerințe apare noțiunea de JavaScript (JS) care reprezintă un                        
limbaj de programare pentru scripting orientat obiect bazat pe conceptul de                      
prototipuri. Acest limbaj de programare este este folosit in special pentru introducerea                        
unor funcționalități pe paginile web, codul caracteristic fiind rulat și interpretat la fel                          
ca și HTML, de către browser. Cel mai des este utilizat în aplicațiile web pentru                              
validări ce țin de introducerea datelor, crearea de meniuri sau efecte animate ale unor                            
elemente HTML.  
Modalitatea de funcționare se bazează pe faptul că browserele rețin în memorie                        
o copie/imagine a unei pagini web, sub forma unor arbori de obiecte ce ulterior sunt                              
luate și folosite de către scripturile redactate in JavaScript care le pot citi, interpreta și                              
prelucra. Acest arbore de obiecte al paginii web este numit: Document Object Model                          
(DOM) și este caracterizat printr-un standard ce îl oferă World Wide Web Consortium                          
pentr toate browserele active la ora actuală, care însă în practică este incomplete                          
implementat. Există posibilitatea prin care browserele randează în mod diferit codul                      
de script, funcționalitatea fiind afectată în cazul rulării pe browsere diferită.  
Din punct de vedere al sintaxei, codul JavaScript seamană îndeaproape cu codul                        
limbajului de programare C++. De asemenea acest limbaj conține o listă amplă de                          
funcții si comenenzi ce au rol să ajute la operații matematice, maipulări de șiruri,                            
sunete, imagini, obiecte și fereseste ale browserului, validări de introducere a datelor.  
Pentru introducerea codului de tip JavaScript in cadrul unui fișier de tip HTML                          
sunt utilizate etichetele speciale, care vor defini începutul și sfârșitul codului de                        
scripting:  
 
<script type=”text/javascript”> </script>  
<script language=”JavaScript”> </script>  
 
8

Sunt cunoscute câteva proprietăți ale limabajului de scripting Javascript:  
JavaScript reprezintă un limbaj dependent de mediu, astfel încât fiind un limbaj de                          
scriptare, el rulează la nivelul browserului fiind in totalitate interpretat și rulat de                          
către acesta. Codul este in totalitate interpretat de browser inainte de a fi executat.                            
Prin urmare nu necesita compilări sau preprocesări, ci ramane parte integrantă a                        
documentului HTML. Dezavantajul la acest nivel este reprezentat de faptut că                      
JavaScript va rula mai încet în comparație cu alte limbaje de programare ce compun o                              
aplicație web deoarece codul va fi citit de navigatorul curent pe care este apelat.  
JavaScript are posibilitatea de fi introdus in fișiere format HTML – majoritatea                        
obiectelor JavaScript au etichete HTML pe care le reprezintă, astfel încât programul                        
este inclus pe partea de client.  
Javascript este un limbaj ce se bazează pe obiecte, modelul obiect fiind bazat pe                            
instanță și nu pe moștenire.  
Marea majoritatea a codului scris în JavaScript este bazat pe evenimentele ce au loc la                              
nivelul interfeței cu uitlizatorul pe browserul curent pe care este folosit. De asemenea                          
poate răspunde și la evenimente generate de sistem.  
Este un limbaj multifuncțional care interpretează și rezolvă direct în browser uneori                        
fără a mai fi nevoie de apeluri către server. Un bun exemplu ar fi unele grafice                                
matematice, operații matematice, calculatoare care sunt create direct și randate direct                      
în browser cu ajutorul acestui limbaj.  
Evoluția JavaScript este foarte rapidă, dorindu-se aducerea multor                
funcționalități pe care o aplicație web le realizează cu serverul, pe partea de client                            
direct. De asemenea utilizarea lui este din ce în ce mai dezovoltată la nivelul multor                              
tehnologii.   O dezvoltare și o extindere de tip JavaScript este binecunoscută în                      
limbajele create având la bază acest limbaj de scripting: AJAX și jQuery   2 3
 
 
 
2 A J A X ​ – Asynhronous Javascript and XML– tehnică de programare pentru creare de aplicații interactive
[2]

3 j Q u e r y ​ – platform de dezovltare bazată pe JavaScript concepută pentru a ușura și îmbunătăți procese
precum traversarea arborelui DOM în HTML.[19]
9

Capitolul 2. Dezvoltarea aplicațiilor Web  
 
2.1 Prezentare generală  
 
Dezvoltarea unei aplicatii web este cuprinsă din mai multe etape ce trebuiesc                        
parcurse in vederea obținerii rezultatului final dorit. Aceaste etape au proprietatea de                        
a fi bine structurate și precise, pentru ca atunci când se finalizează aplicația să se poată                                
identifica fiecare pas parcurs în vederea soluțiounarii și dezvoltării aplicației dorite.    
Dezvoltarea aplicațiilor web pot fi privite din mai multe puncte de vedere:  
– tehnic – din punct de vedere tehnic, dezvoltarea unei aplicații web                      
complexe, presupune utilizarea mai multor tipuri de tehnologii sau limbaje                    
de programare, care întrepatrunse pot să ruleze o aplicație bine definită.                      
Este de asemenea foarte importantă o arhitectură bine definită încă de la                        
inceputul nivelului de dezvoltare.  
– în ceea ce priveste dezvoltarea pe partea de resurse umane, este necesara                        
implicarea unui număr variabil de personal ce detin abilități și capacități                      
diferite. Fiecare dintre aceștia, este dezvoltat și concentrat pe partea lui de                        
nivel de cunoștințe, fiind reunite in realizarea obiectivului final, aplicația                    
web complex funcțională. Astfel, vor fi implicați dezvoltatori cu cunoștinte                    
de baze de date, de programare functională, de programare la nivel de                        
interfață cu utilizatorul, dar precum și cei cu abilitati de managment.  
– cerințe – în funcție de cerințele ințiale ale aplicatiei web realizarea unui                        
proces de dezvoltare poate fi bine stabilit încă de la inceputurile dezvoltării                        
acesteia. Insă, pe parcursul procesului de dezvoltare pot apărea diferinte                    
cerințe noi care pot sau nu afecta bunul mers în dezvoltarea aplicațiilor.  
Prin urmare, dezvoltarea aplicațiilor web cuprinde mai mulți pași necesari ce                      
trebuie parcurși in vederea obtinerii unui rezultat dorit.  
 
2.2 Avantaje și dezavantaje în dezvoltarea aplicațiillor web  
 
Dezvoltarea și scrierea unei aplicații web poate fi o activitate valoroasă , dar                          
10

care însa poate implica unele probleme potențiale. In momentul dezvoltării unei                      
aplicații web, sunt de luat în considerare câțiva factori principali care au ca scop                            
determinarea avantajului dezvoltării aplicației sau problemele ce pot apărea pe                    
parcursul dezvoltării acesteia. O aplicație poate implica o mulțime de tehnologii,                      
limbaje de programare, limbaje de scripting și de marcare, dar și dezvoltarea la nivelul                            
cu bazele de date și design-ului grafic. Sunt de luat în calcul mai multe aspecte care pot                                  
crea avantaje sau dezavantaje, cum ar fi:  
– Funcționalitate – determinarea principalului avantaj în scrierea și                
dezvoltarea unei aplicații web este dată de funcționalitatea acesteia. In                    
comparație cu unele site-uri statice ce sunt create doar din cod de tip                          
hipertext, HTML și CSS. Aplicațiile pot oferi însa un nivel ridicat de                        
interacțiune față de utilizator. Astfel că daca se dorește dezvoltarea unei                      
aplicații complexe, este necesară includerea mai multor tipuri de limbaje de                      
programare sau scripting, reprezentând un dezavantaj pentru o persoană                  
cu cunoștinte de bază la nivel de aplicații web. El are nevoie să studieze și să                                
învețe noile structuri ce urmează a fi incluse în aplicația web.  
– Abilități ​ – un dezavantaj pentru scrierea de aplicații web este dat de setul                          
necesar de informații ce trebuie să le dețină personalul implicat în                      
dezvoltare. In funcție de cerințele aplicației, un dezvoltator sau o echipă de                        
dezvoltatori trebuie să dețină informațiile și cunoștințele necesare                
tehnologiilor folosite. Limbajele principale de programare, PHP sau ASP,                  
sunt adesea combinate cu limbaje de scripting, JavaScript, pe partea de                      
client, sau cu limbajele de baze de date (MySql) sau XML care întrepătrunse                          
oferă aplicația complexă web dorită. De asemenea, dacă este necesară                    
dezvoltarea unuei interfețe cu utilizatorul specială, trebuie implicate                
tehnologii și personal ce au cunoștințe legate de crearea și dezvoltarea de                        
design.  
– Intreținere ​ – nivelul de complexitate al unei aplicații web este poate avea un                          
effect negativ asupra întreținerii. Astfel că, nivelul de calificare necesar în                      
pregatirea și dezvoltarea acestor aplicații este foarte important pentru                  
viitoarele evoluții sau dezvoltări ale aplicațiilor web. De cele mai multe ori                        
aplicațiile web au nevoie de rafinament, iar odată ce sunt în funcțiune,                        
11

procesul de dezvoltare poate fi continuat pentru o altă perioadă de timp.                        
Sunt de luat în calcul modificările ulterioare ce pot apărea la nivelul unei                          
aplicații web, modificarea limbajelor surse în funcție de cerințele                  
deținătorului aplicației, sau diferitele configurări pentru server și                
singuranță ce pot afecta procesul optim pentru dezvoltare.  
2.3 Arhitectura unei aplicații web  
2.3.1 Avantaje și constrângeri ale arhitecturii aplicațiilor  
 
Fiecare arhitectură propusă și dezvoltată va fi compusă atât din avantaje cât și                          
din dezavantaje ce vor avea un rol definitor asupra aplicației ce urmează a fi                            
dezvoltată. Astfel că, fiecare arhitectură trebuie să asigure și să atingă un nivel adecvat                            
de cerințe ce fac referire la următoarele caracteristici:  
– Scalabilitate – arhitectura inițiala trebuie să aibă posibilitatea de a fi extinsă în                          
cazul apariției unor cerințe noi ulterioare, fiind direct proporțională cu                    
volumul de muncă ce urmează să fie depus  
– Perfomanță – ​ răspunsul fiecărei aplicații la nivelul utilizatorilor trebuie sa fie                      
încadrat într-un timp optim care va avea un rol definitor în impresiile                        
oferite de aplicație asupra acestora. De asemenea, aplicația trebuia să                    
răspundă fără erori la un nivel mare de încarcare în ceea ce privește                          
utilizatorii, fiind evitate momentele în care aplicația s-ar putea opri din                      
cause precum traficul.  
– Fiabilitate – conținutul și funcționalitatea aplicației create să răspundă                  
corespunzător pe o perioadă cât mai lungă de timp, caracteristică ce are un                          
rol important în proiectarea inițială a arhitecturii, deoarece, modificările                  
ulterioare ale funcționalităților vor avea un impact negative asupra                  
utilizatorilor ce deja au folosit aplicația dezvoltată. De asemenea, apariția                    
erorile să nu afecteze modul optim de rulare al aplicației. Apariția oricărui                        
defect al arhitecturii nu trebuie să întrerupă serviciile oferite de aplicație.  
– Securitatea – toate informațiile și conexiunile folosite sau realizate ce au                      
legatură direct între aplicație și utilizatori, trebuie protejate, iar fiecare                    
12

utilizator al aplicației trebuie identificat în cazul apariției unor erori de                      
sistem cauzate intenționat.  
Arhitectura unui program web, poate fi afectat de anumite constrângeri, care                      
pot afecta luarea deciziilor și bunul mers în dezvoltarea arhitecturii:  
– Complexitatea – ​ dezvoltarea unei arhitecturi mai simple este de preferat                    
uneori decât o arhitectură prea complexă, deoarece aceasta poate duce la o                        
dezvoltare și o întreținere mai ușoară în timp a aplicației dezvoltate.  
– Costul – ​ bugetul și costul inițial pot fi stabilite în arhitectura aplicației, însă                          
există posibilitatea prin care costul este afectat în urma deciziilor luate                      
greșit în arhitecturarea aplicației. Costul se poate referi la resurse hardware,                      
software, licențe sau de personal.  
– Decizii software – ​ deciziile luate la nivelul software pentru arhitectura                    
aplicației, de asemenea pot reprezenta o constrângere în dezvoltarea                  
aplicației, deoarece alegerea inițială a unui soft neadecvat, necorespunzător                  
sau neperfomant, poate face ca aplicația să prezinte erori în funcționare                      
după lansare.  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13

Bibliografie​ :  
 
[1]  
http://www.upm.ro/facultati_departamente/stiinte_litere/conferinte/situl_integrare
_europeana/Lucrari/Ispas.pdf​ – Ioan Ispas  
[2] ​ http://ro.wikipedia.org/wiki/AJAX  
[3] ​ https://ro.wikipedia.org/wiki/Hypertext_Transfer_Protocol  
 

14

Similar Posts