1 Introducere ………………………….. ………………………….. ………………………….. …………………………….. [616840]

– 1 –

– 2 –

Cuprins

1 Introducere ………………………….. ………………………….. ………………………….. ………………………….. ……. – 4 –
2 Sisteme de diagnosticare ………………………….. ………………………….. ………………………….. ……………… – 6 –
2.1 Clasificarea parametrilor de diagnosticare ………………………….. ………………………….. …………… – 7 –
2.1.1 Parametrii care țin de procesele de lucru fundamentale și care determină
funcționabilitatea obiectului diagnosticării ………………………….. ………………………….. …………………. – 7 –
2.1.2 Parametrii care derivă din fenomenele ce însoțesc procesele fundamentale de lucru, cum
ar fi: zgomote, vibrații, modificări chimice s.a.m.d. ………………………….. ………………………….. ………. – 7 –
2.1.3 Parametrii geometrici ………………………….. ………………………….. ………………………….. ……. – 8 –
2.2 Caracteristicile parametrilor de diagnosticare ………………………….. ………………………….. ……… – 8 –
2.3 Diagnosticarea la bord ………………………….. ………………………….. ………………………….. ………… – 10 –
3 Dezvoltare Software ………………………….. ………………………….. ………………………….. …………………… – 14 –
3.1 SQL Management Studio 2012 ………………………….. ………………………….. …………………………. – 14 –
3.1.1 Administrare Bazelor de Date prin intermediul Object Explorer ………………………….. …. – 15 –
3.1.2 Sisteme de g estiune a bazelor de date ………………………….. ………………………….. ……….. – 16 –
3.1.3 Administratorul bazei de date ………………………….. ………………………….. …………………… – 17 –
3.1.4 Componentele sistemului de gestiune ale bazelor de date ………………………….. ……….. – 18 –
3.2 Limbajul C# ………………………….. ………………………….. ………………………….. ………………………… – 23 –
3.2.1 Programarea orientata pe componente ………………………….. ………………………….. ……… – 24 –
3.5.2 Tipuri valorice in C# ………………………….. ………………………….. ………………………….. ……… – 26 –
3.3 Server WEB IIS ………………………….. ………………………….. ………………………….. ……………………. – 27 –
3.3.1 Comparatie servere WEB : IIS -APACHE – TOMCAT ………………………….. …………………….. – 29 –
4 Dezvoltarea aplicației ………………………….. ………………………….. ………………………….. …………………. – 31 –
4.2 API (Application Programming Interface) ………………………….. ………………………….. …………… – 31 –
4.3 Mediu de dezvoltare ………………………….. ………………………….. ………………………….. …………… – 32 –
4.4 Aplicații software client, proprii, de tip GIS ………………………….. ………………………….. ………… – 32 –
4.4.1 Tehnologiile specifice utilizate pentru comunicarea Client -Server ………………………….. – 34 –
4.5 Arhitectura Aplicației ………………………….. ………………………….. ………………………….. ……………….. – 35 –
4.6 Diagrama AutoService DataBase ………………………….. ………………………….. ………………………. – 36 –
4.7 Legătura intre Kit -urile de dezvoltare software ………………………….. ………………………….. …… – 37 –

– 3 –
4.8 Logarea în aplicație ………………………….. ………………………….. ………………………….. …………….. – 41 –
4.9 Unelte și resurse folosite în dezvolt area aplicațiilor de tipul client -server ………………………….. .. – 47 –
4.10 Exemplificarea modului de utilizare a aplicației ………………………….. ………………………….. ….. – 47 –
4.11 Probleme înt âmpinate în dezvoltarea aplicației ………………………….. ………………………….. ….. – 52 –
4.12 Extinderi viitoare ale aplicației ………………………….. ………………………….. ………………………….. – 52 –
Concluzii ………………………….. ………………………….. ………………………….. ………………………….. ……………… – 54 –
Bibliogrfie ………………………….. ………………………….. ………………………….. ……. Error! Bookmark not defined.

Tabel de figuri
Figura 1 Diagnosticarea pe bord [1] ………………………….. ………………………….. ………………………….. ……… – 8 –
Figura 2 Etapele pro ceselor de testare și diagnosticare [1] ………………………….. ………………………….. ……. – 9 –
Figura 3 Simboluri din tabloul de bord al mașinii [1] ………………………….. ………………………….. …………. – 11 –
Figura 4 Conexiunea bazei de date ………………………….. ………………………….. ………………………….. ……… – 14 –
Figura 5 Componentele bazei de date [5] ………………………….. ………………………….. …………………………. – 21 –
Figura 6 Componentele administratorului bazei de date [5] ………………………….. ………………………….. … – 22 –
Figura 7 Localizarea pozitie pe harta ………………………….. ………………………….. ………………………….. …… – 33 –
Figura 8 Arhitectura aplicatiei ………………………….. ………………………….. ………………………….. ……………. – 34 –
Figura 9 Arhitectura aplicatiei AutoService pe nivele software ………………………….. ……………………….. – 36 –
Figura 10 Baza de date AutoService ………………………….. ………………………….. ………………………….. ……. – 37 –
Figura 11 Solution Explorer in Visual Studio ………………………….. ………………………….. ……………………. – 38 –
Figura 12 Interactiunea aplicatiei ASP.NET MVC [12] ………………………….. ………………………….. ……… – 39 –
Figura 13 Legaturi la paginile web ale aplicatiei ………………………….. ………………………….. ……………….. – 40 –
Figura 14 Modul de activare a SSL -ului. ………………………….. ………………………….. ………………………….. – 41 –
Figura 15 Import biblioteci externe ………………………….. ………………………….. ………………………….. …….. – 42 –
Figura 16 API Manager Google [13] ………………………….. ………………………….. ………………………….. …… – 43 –
Figura 17 Clasa Star tup.Auth.cs din folderul App_Start ………………………….. ………………………….. …….. – 43 –
Figura 18 Logare cont Google [13] ………………………….. ………………………….. ………………………….. ……… – 44 –
Figura 19 API Manager Facebook [14] ………………………….. ………………………….. ………………………….. .. – 44 –
Figura 20 Clasa Startup.Auth.cs din folderul App_Start ………………………….. ………………………….. …….. – 45 –
Figura 21 Logare cont Facebook [14] ………………………….. ………………………….. ………………………….. ….. – 45 –
Figura 22 Interfața aplicației ………………………….. ………………………….. ………………………….. ………………. – 49 –
Figura 23 Alegerea Producatorului si a modelului masinii ………………………….. ………………………….. ….. – 50 –
Figura 24 Alegerea martorilor luminoși ………………………….. ………………………….. ………………………….. .. – 51 –
Figura 25 Descriere Martori ………………………….. ………………………….. ………………………….. ……………….. – 51 –

– 4 –
1 Introducere

Automobilul a devenit un mijloc de deplasare nelipsit în această societate modernă, cunoscând
încă de la inventarea sa progrese surprinzătoare. În fiecare an, numă rul automobilelor care
circulă pe mapamond crește. Producătorii oferă o diversitate largă de modele cu multe
caracteristici tehnice dintre cele mai variate pentru a satisface cerințele clienților tot mai
informați și exigenți. Industria automobilelor poate reprezenta un sector cheie al economiei
pentru fiecare țară prin crearea unor oportunități de locuri de muncă. Fabricarea a peste 60
milioane de vehicule, anual necesită o forță de muncă de aproximativ nouă milioane de persoane
implicate direct în fabrica rea de vehiculele și componente. Industria automobilelor este, de
asemenea, un major inovator. Această industrie auto stimulează dezvoltarea tehnologiilor și
cercetării și în alte industrii cu care realizează legături economice. În România industria de
automobile este reprezentată în primul rând de Uzina Dacia din orașul Mioveni urmată de
producatorul autoturismelor Ford România din orașul Craiova dar și de alte întreprinderi care
furnizează subansamble și componente pentru fabricarea de automobile.

Tehnol ogia reprezinta ansamblul metodelor, proceselor, operațiilor creeate sau aplicate asupra
materiilor prime, materialelor și datelor pentru realizarea unui anumit produs industrial sau
comercial. Tehnologia auto a avansat foarte mult din 1769 de cand a fost construită prima mașina
cu motor cu abur si până in zilele noastre. De aceea și mecanismele sunt foarte diferite de la
mașină la mașină și de la model la model. În funcție de mecanismul mașinii trebuie să se facă o
diagnoză si o testare corectă.

O importa nță majoră a asistenței diagnozei si identificarea soluțiilor auto apare de cele mai multe
ori chiar în momentul în care utilizatorii se află în trafic. Pe baza cercetărilor efectuate, am
observat că în momentul de față există moduri de informare diversifi cate însă necesită foarte
mult timp de căutare și identificare a problemelor apărute si solutiilor posibile.

În momentul de față, am constatat că majoritatea aplicațiilor web oferă asistență pentru o
diagnoză sub forma unui manual de utilizare ceea ce im plica mult timp irosit si posiilitatea de a
nu gasi un raspuns concret. În lucrarea de disertație se prezintă aplicația web creată pentru a servi
la detectarea erorilor apărute sau afișate pe ecranul digital al automobilului pe baza cărora se va
face o dia gnoza și se va stabili modul de soluționare al erorilor. Aplicația web constă într -o bază
de date creată în limbaj SQL ce conține câmpuri care reprezintă caracteristicile necesare
asistenței de diagnoză auto completă și corectă. De asemenea conține și o ha rtă cu service -urile
auto disponibile și indică cele mai apropiate service -uri de locația utilizatorului. Acest lucru fiind
important pentru utilizatori în orice moment critic ajutând astfel la identificarea și rezolvarea mai
rapidă a problemelor auto.

– 5 –
Un alt exemplu actual de diagnoză auto online actual este AutoK9 – Servicii Service Auto unde
diagnoza se face pe baza unor informații de pe internet și forumuri ce conțin păreri ale altor
utilizatori. Însă, acest tip de diagnoză consumă mult timp utilizator ilor, aceștia fiind nevoiți să
citească toate informațiile fără a putea face un filtru direct pentru o problemă sau mai multe
probleme existente proprii. Un alt dezavantaj al acestui exemplu de diagnoză este faptul că
părerile expuse pe aceste forumuri pot fi sau nu ale unor specialiști.

Dezvoltarea interfeței aplicației a pornit de la încercarea de a încorpora elemente de interfață
moderne, dovedite, prin experiență, de succes în aplicațiile web. Având în vedere experiența web
-ului din ultimii ani, reali zarea aplicației “AutoOti Solutions” și a interfeței, a pornit de la ideea
de a separa modul de prezentare de conținut. Interfața aplicației este intuitivă și ușor de folosit.
Utilizatorul poate parcurge toate etapele aplicației într -un mod ușor și foarte rapid.

Scopul acestei aplicații este să diminueze efortul utilizatorilor în momentele critice de căutare și
înțelegere a problemelor auto pe baza martorilor luminoși de la bordul masinilor acestora, să fie
foarte bine informați în ceea ce privește soluți onarea problemelor auto ale acestora, aplicația
oferind și funcționalitatea de direcționare către cel mai apropiat service față de locația actuală a
utilizatorilor.

– 6 –
2 Sisteme de diagnosticare

Eficiența utilizării automobilelor este de terminată, în principal, de diminuarea la minimum a
tuturor cheltuielilor de întreținere și de reparare, de realizare a unui rulaj cât mai ridicat între
căderi și menținerea unor parametrii ecologici înalți.

Acest lucru implică o observare atentă și con tinuă a funcționării și stării tehnice a automobilelor,
supunerea periodică a acestora unor procese de diagnosticare care să detecteze chiar și micile
defecțiuni și să permită stabilirea celor mai bune soluții de intervenție.

Diagnosticarea unui sistem te hnic reprezintă procesul de stabilire a cauzelor unei funcționări
necorespunzătoare a acestuia, pe baza simptomelor sau rezultatelor obținute în urma unor probe.
Testarea urmează să fie efecutată în service -ul auto și de accea este important de reținut că
implementarea diagnosticării în procesul de exploatare a automobilelor impune elaborarea
prealabilă a unui sistem de testare și diagnosticare, în care sunt incluse:
 Obiectul diagnosticării/ testării (caracterizat prin parametrii de stare specifici);
 Parame trii de diagnosticare;
 Mijloacele tehnice de testare și diagnosticare;
 Metodele și organizarea proceselor tehnologice de testare și diagnosticare.

Structurarea sistemului de diagnosticare urmărește legile de evoluție a stării tehnice a obiectului
testat ș i diagnosticat, deci modificarea tuturor parametrilor de stare, în următorii pași:

 Alegerea parametrilor de diagnosticare;
 Stabilirea valorilor nominale și limită ale acestora;
 Determinarea mijloacelor și procedeelor tehnice de măsurare a valorilor efecti ve
ale parametrilor de diagnosticare selectați.

Automobilul constituie un complex de piese organizate în structuri, dispuse succesiv sau în
paralel, a căror funcționare depinde de interacțiunea dintre ele sau cu mediul exterior. În timpul
procesului de lu cru aceste structuri suferă modificări continue sau discrete, trecând prin diverse
stări care reprezintă abateri mai mult sau mai puțin importante de la structura inițială. Astfel de
modificări sunt de natură:

 Dimensională sau de formă;
 Mecanică;
 Fizico -chimică;
 Electrică;
 Complexă.

– 7 –
Ele se pot exprima cantitativ, prin schimbare valorică a unor parametrii ce caracterizează starea
organului sau structurii respective (sistem, instalație, mecanism), numiți parametrii de stare.

De cele mai multe ori determ inarea valorică exactă parametrilor de stare nu este posibilă, ceea ce
îngreunează sensibil operațiile de determinare a stării tehnice sau chiar le face să devină
imposibile. De aceea trebuie să se recurgă la un procedeu de stabilire indirectă a stării teh nice a
mașinilor operând cu alte mărimi, dependente într -un anumit fel de parametrii de stare, și
măsurabile. Valoarea acestor parametrii, numiți parametrii de diagnosticare, constituie
exprimarea cantitativă a manifestării exterioare a mutațiilor survenit e în structura ansamblului
mașinii și deci a modificării parametrilor de stare ai acestuia.

2.1 Clasificarea parametrilor de diagnosticare
2.1.1 Parametrii care țin de procesele de lucru fundamentale și care determină funcționabilitatea
obiectului diagno sticării

Sunt parametrii care oferă informații globale asupra stării tehnice generale a automobilului sau a
unora din ansamblurile sale. De aceea ei servesc pentru așa -numitul proces de diagnosticare
generală a mașinii, în care se urmărește determinarea s tării generale a mașinii fără diagnosticarea
exactă a defectelor. În decursul unor asemenea teste, diagnosticul este de tipul “corespunzător –
necorespunzător” pentru exploatare. Diagnosticarea generală dă răspunsuri de funcționabilitate a
automobilelor su b raportul cerințelor privind economia de carburant, securitatea circulației,
norme ecologice de poluare complex. Aceste norme de poluare pot fi chimice, optice sau
acustice.

Pentru automobile, astfel de parametrii sunt:

 puterea motorului
 consumul de co mbustibil
 spațiul de frânare
 gradul de patinare al ambreiajului
 temperatura lichidului în sistemul de răcire, etc

2.1.2 Parametrii care derivă din fenomenele ce însoțesc procesele principale de lucru, cum ar fi:
zgomote, vibrații, modificări chimice s.a. m.d.

Această categorie oferă informații mai înguste, dar capabile să restrângă aria de investigație
precizând locul defecțiunii. De aceea ea este folosită în cercetarea amănunțită a ansamblurilor și
pieselor vehiculului în procesul numit diagnosticarea p e elemente. Diagnosticarea pe elemente o
succede, de obicei, pe cea generală, atunci când diagnosticul a fost “necorespunzător” și
urmărește să determine exact starea tehnică a ansamblurilor, sub -ansamblurilor sau chiar a
organelor de mașini, precizând nec esitatea de întreținere și de reparații.

– 8 –
2.1.3 Parametrii geometrici

Parametrii geometrici ofer ă informații foarte limitate, dar concrete, asupra stării tehnice a
organelor aflate în interacțiune.

Din rândul acestor parametrii fac parte: cursa liberă, coaxialitatea, jocul axial, jocul radial,
paralelismul, diferite unghiuri.

2.2 Caracteristicile parametrilor de diagnosticare

Alegerea parametrilor de diagnosticare se face în funcție de caracteristicile lor. Acestea exprimă
legăturile dintre ei și para metrii de stare. Aceste caracteristici sunt:

 univocitatea
 sensibilitatea
 informativitatea
 stabilitatea
 economicitatea

Diagnoza la bord reprezintă capacitatea unui automobil de a -și diagnostica diverse componente
care au impact asupra emisiilor poluante . Principalul scop al diagnozei este de a aprinde martorul
„Check Engine” în cazul în care s -au detectat probleme de funcționare la componentele care
influențează direct sau indirect emisiile poluante. Modul în care trebuie să funcționeze un
echipament de diagnosticare este stabilit prin standarde americane SAE și internaționale ISO.
Pe baza parametrilor de diagnosticare se poate realiza diagnosticarea auto, aceasta se poate
realiza astfel:

 pe stand – în service de către specialiști;
 la bord – pe baza simbolurilor și a erorilor apărute pe ecranul dig ital al automobilului.

1. Diagnosticarea pe stand

Figura 1 Diagnosticarea pe bord [1]
În general, pentru automobilele care nu dispun de sisteme electronice de control și autotestare,
procesele diagnosticare decurg în mai multe etape succesive.

– 9 –
În următoarea schemă vor fi reprezentate etapele de diagnosticare a stării tehnice generale a
sistemului.

Figura 2 Etapele proceselor de testare și diagnosticare [1]

Într-o primă fază se execută o verificare a stării tehnice generale a sistemului. Răspunsul este de
tip binar: „corespunzător” sau „necorespunzător”. În primul caz, automobilul nu mai este reținut,
el putându -se întoarce la activitățile de transport ale sale. În a doua sit uație, acțiunile de testare și
diagnosticare continuă cu componentele sistemului în scopul localizării și identificării
defecțiunilor.

Direcția pe care o vor lua sistemele de testare a automobilelor la stand este aceea a producerii
unor sisteme expert ava nsate, capabile să ofere o gamă cât mai largă de verificări. Aparatura
utilizată la astfel de verificări este, de obicei, prevăzută cu sisteme măsură cuplate la un
microprocesor. Acesta prelucrează informațiile primite de la traductoare și senzori și condu ce
acțiunile necesare procesului de diagnosticare. Principalul avantaj pe care îl aduce un astfel de
sistem constă în modul corespunzător, uniform și eficient de aplicare a criteriilor de decizie sau a
strategiilor de rezolvare a unor probleme.
De la utilizare
Diagnosticarea stării tehnice generale a sistemului
Corespunzător
Se întoarce la utilizare Necorespunzător
Testarea și diagnosticarea
componentelor sistemului
Localizarea, identificarea și
remedierea
Se înto arce la utilizare

– 10 –
2.3 Diagno sticarea la bord

Cele mai bune rezultate la depistarea defecțiunilor imediat după apariția lor, o constituie o
supraveghere permanentă a funcționării sistemelor automobilului, ceea ce presupune dezvoltarea
unor diferite tehnici și echipamente de diagnosti care la bord.

Computer -ul de bord al unui autovehicul este un microsistem de calcul/ calculator care are
atașate câteva periferice. Sarcinile sale sunt afișarea unor date ale călător iei, supravegherea
subsistemelor autovehiculului, emiterea unei alarme în caz de necesitate și eventual chiar și
influențarea activă a direcției și vitezei deplasării, de exemplu pentru a corecta eventualele
greșeli ale șoferului.

Perifericele pot fi: se nzori pentru citirea anumitor parametri, un afișaj (display) pentru afișarea
parametrilor prelucrați, o tastatură pentru introducerea de date sau comutarea între funcțiile
afișate.

Calculatoarele de bord au evoluat in decurs de câțiva ani de la sisteme si mple, care estimau
numai distanța care mai poate fi parcursă, până la sisteme mult mai complicate ce pot sa ofere
mai multe informații cum ar fi: viteză medie, viteză instantanee, cantitate de combustibil rămasă
, cantitate de combustibil consumată, consum ul mediu și instantaneu, ora și data, timpul de la
începutul deplasării, timpul până la destinație, temperatură interioară și exterioară, diferite
capacități de diagnosticare.

Conducătorul auto poate introduce informații în calculator la începutul unei că lătorii – cum ar fi
de exemplu distanța până la destinație. Pe timpul călătoriei, conducătorul auto poate solicita
informații specifice fiind vorba de o alt tip de diagnosticare. Este de preferat să se afișeze o
singură mărime la un moment dat, pentru a pu tea fi citită, urmărită ușor si a nu distrage atenția
conducătorului prea mult timp. De obicei se folosesc afișaje cu una sau două linii pe care prin
selecție se pot urmări toate mărimile.

Din privința unui utilizator de automobil un computer de bord este ceva simplu care afișează
mărimea de interes (ceasul, temperatură, viteză s.a.m.d.). Dacă nu este mărimea dorită se
selectează prin apăsarea unui buton eventual de mai mute ori. Prin apăsarea consecutiva se face
de fapt o baleere a mărimilor care pot fi a fișate.

– 11 –

Din privința unui proiectant de calculator de bord auto, problemele se complică cu cât numărul
mărimilor de afișat crește și simplitatea utilizării trebuie să rămână aceeași.

Figura 3 Simboluri din tabloul de bo rd al mașinii [1]
Evoluția acestora a fost și este foarte strâns legată de evoluția automobilului. Astfel apariția
sistemelor comandate de microprocesoare a permis o lărgire considerabilă a numărului de
obiective urmărite, a numărului de parametrii înregis trați și analizați. [2]

Diagnosticarea se poate face pe baza simbolurilor indicate în tabloul de bord al mașinii moderne.
Tabloul de bord al unei ma șini moderne este din ce în ce mai complicat și presărat cu diverse
pictograme și becuri. Dacă în trecut au tomobilele soseau cu doar cateva informatii pe bord,
astăzi, producatorii încearcă să inglobeze cat mai multe informatii pe o suprafată destul de mică.
Dar lumea auto a evoluat și odată cu aceasta și panoul de bord. Simbolurile de bord au rol extrem
de imp ortant, întrucât aceștia anunță probleme, uzuri, erori sau defecte la anumite sisteme ale
mașinii. Numărul simbolurilor de bord diferă de la model la model și de la producător la
producător. În continuare am pregătit o listă cu peste 60 de simboluri de bor d și denumirea
acestora.
Martorii care apar în imaginea de mai sus sunt urm ătorii:
Lumini de ceață față aprinse Sistem de asistență la parcare pornit
Probleme la servodirectie Anunta ca este necesar să efectuați o vizită la
service
Luimini de ceață spate aprinse Faruri adaptive
Nivelul lichidului de parbriz este scăzut Controlul înclinării farurilor
Plăcute de frană uzate Avertizare privind eleronul
Pilot automat activat Avertizare cu privire la plafonul decapotabil
Direcția semnalizării Probleme la airbag -uri
Probleme la senzorul de lumină Frana de mană cuplată
Modul de iarna Apă in filtrul de combustibil
Indicator pentru informațiile computerului de bord Airbag dezactivat
Bujii/Avertizare preincălzire diesel Problema mecanic ă
Avertizare de temperaturi scăzute Indicator faza scurtă
Probleme la sistemul de pornire al masinii Filtrul de aer necesita înlocuirea
Cheia nu se află in masina Mod Eco activat
Bateria cheii este slabă Sistem de asistența la coborarea pantelo r

– 12 –
Tabel 1 Denumire Martori
Un alt lucru important de care ar trebui sa se țină cont este culoarea simbolului de bord. Codul
culorilor este foarte important. In general, simbolul de culoare roșie indică o potențială problem ă
serioasă sau o problemă legată de siguranță. Dacă simbolul de bord are culoarea galbenă sau
portocalie atunci poate semnifica o reparație sau o potențială inlocuire. Simbolurile colorate în
albastru sau verde au doar rol de indicatori. De asemenea, exist ă posibilitatea ca simbolul de
bord să pâlpâie, caz în care ar trebui să se apeleze la un reprezentant auto.

Soluțiile tehnice actuale acordă din ce în ce mai multă importanță diagnosticării, acest procedeu
trecând astfel pe primul plan. A apărut astfel s oluția de control al motorului în prezența
defecțiunilor.

Așadar, conform acestei strategii de control, se tolerează existența defecțiunilor, iar calculatorul
de bord elaborează comenzi către elementele de execuție în conformitate cu cele constatate în
urma diagnosticării. Se poate spune deci că FTC constituie un set de tehnici de control care
asigură abilitatea unui sistem de a îndeplini obiectivele propuse în ciuda apariției defecțiunilor.

Defecțiunea (sau defectul) se definește ca fiind o deviație nepe rmisă a cel puțin unei proprietăți /
variabile caracteristice a sistemului de la comportarea acceptabilă / uzuală / standard / nominală.
După cum se constată din această definiție, prin defecțiune se înțelege o abatere de la valoarea
nominală a unui parame tru sau a unei mărimi funcționale oarecare.

O defecțiune are 5 atribute principale: cauza, durata, locul, valoarea și natura. Avertizare cu privire la distanța fată de un alt
vehicul Probleme la temperatura motorului
Apăsați pedala de ambreiaj Avertizare privind ABS -ul
Apăsați pedala de frană Avertizare filtru de carburant
Volan blocat Portiera deschisă
Faza lungă pornită Capota deschisă
Presiune scăzută în pneuri Nivel scăzut al combustibilului din rezervor
Lumini de intalnire sau pozitii aprinse Probleme la cutia de viteze automata
Bec ars Limitator de viteză activat
Avertizare cu privire la luminile d e frana Probleme la amortizoare
Avertizare filtru de particule Presiune scazută a uleiului
Probleme la sistemul de tractare Degivrare parbriz
Probleme la suspensia pneumatic Portbagaj deschis
Avertizare privind părăsirea benzii de mers Sistem de control al stabilitatii oprit
Probleme la catalizator Senzor de ploaie
Centura de siguranță nu este cuplată Probleme la motor sau la emisii
Frana de parcare este cuplată Degivrare lunetă
Probleme la baterie sau alternator Modul automat pentr u stergătoarele de parbriz
activat

– 13 –
După natura lor, defecțiunile aparțin de hard sau de soft. Defecțiunile de hard în cazul motorului
cu injecție de benzină, adică aparțin actuatorilor (elementelor de execuție), elementelor
componente ale motorului și senzorilor (traductoarelor).

Eroarea reprezintă măsura cantitativă a unei defecțiuni și constituie o abatere a parametrilor
sistemului de la valorile nominale ale aces tora, sau o deviație a unei mărimi de la valoarea uzuală
a acesteia (corespunzătoare unei funcționări normale).

Prin cădere se înțelege o defecțiune care implică întreruperea permanentă a abilității sistemului
de a îndeplini o funcție necesară în condiții de funcționare specificate.

După cum se constată din cele prezentate, defecțiunea apare în plan fizic, eroarea în plan
informațional, iar căderea în planul utilizatorului.

După cum se constată din cele prezentate, defecțiunea apare în plan fizic, eroare a în plan
informațional, iar căderea în planul utilizatorului.
De asemenea, se poate spune că toate căderile sunt defecțiuni, dar nu toate defecțiunile sunt
căderi; în plus, o defecțiune poate conduce la o cădere.

Obiectivul diagnosticării este să generez e o decizie în ceea ce privește defectul, pe baza
observațiilor și a cunoștințelor și să decidă dacă la un moment dat este un defect sau nu și, de
asemenea, să fie capabil să -l identifice.

– 14 –

3 Dezvoltare Software

Pentru a oferi o asistență în rezolvarea pr oblemelor auto printr -o aplicație web am ales ca mediu
de dezvoltare să folosesc SQL pentru păstrarea în siguranță a datelor și pentru o mai bună
administrare a acestora. [3]

Bazele de date îndeplinesc numeroase funcții:

 Pot păstra date administrative, colecii de imagini sau date numerice brute;
 Pot fi depozite de articole cu text integral;
 Punerea în evidență a inventarului și a împrumuturilor.
3.1 SQL Management Studio 2012

Pentru a accesa o interfață SQL Server Management Studio inițial trebuie efect uată conexiunea
la server. La pornirea mediului SQL Server Management Studio se deschide fereastra Connect to
Server, unde trebuie să indicăm parametrii necesari pentru a ne conecta la server.

> Server Type.
> Server Name.
> Authentication. Există doua tipuri de autentificare:

. Windows Authentication. Conectare cu contul de autentificare Windows.
. SQL Server Authentication. Conectare cu contul de autentificare Database Engine.

 Introducem parametrii necesari și tast ăm Connect.

Figura 4 Conexiunea bazei de date

– 15 –
 Fereastra principal ă SQL Server Management Studio con ține:
– Componentul Registered Servers: dac ă panelul Registered Servers lipse ște, se poate deschide
prin meniul View.
– Componentul Object Ex porer (View | Object Explorer): conține toate obiectele bazei de date.
Permite conectarea într-un singur panel a mai multor servere.

SQL Server Management Studio și componenta Database Engine unde SQL Server Management
Studio este destinat pentru lucrul c u obiectele BD și cu administrarea serverelor BD iar
înregistrarea serverelor se face pentru a folosi BD și obiectele serverului ce trebuie înregistrate.
Pentru a înregistra serverul BD se va ap ăsa click -dreapta pe serverul necesar și din meniu alegem
Regi ster. Se va deschide fereastra New Server Registration.

Se alege numele serverului care trebuie înregistrat și tipul de autentificare, dup ă care vom salva.

. Conectare la server: la inregistrare nu se face conectare automata. Pentru a ne conecta
click -dreapta pe server și din meniu alegem Connect.
. Creare grupe noi de servere: Pentru a crea o grupa noua de servere în panoul serverelor
inregistrate apasam click -dreapta pe Local Server grups și din meniu alegem punctul New
Server Group. In fereastra aparu ta: New server grup Properties se introduce numele
grupei și descrierea
. Controlul grupelor de servere: SQL Server Management Studio permite administrarea
exemplarelor serverelor BD. Pentru a administra serverul – click -drepta pe server și
punctul Propert ies.

Se deschide fereastra Server Properties, care contine cateva pagini.
. Star / Stop / Restart servere

3.1.1 Administrare Bazelor de Date prin intermediul Object Explorer

Componenta de obiect Explorer SQL Server Management Studio este un instrument integrat
pentru vizualizarea și gestionarea obiectelor în toate tipurile de servere. Este dotat:

 Filtrarea prin toate sau o parte a unui nume, schemă, sau dată.
 Populația asincronă a obiectelor, cu capacitatea de a filtra obiectele bazate pe metadatele
lor.
 Accesul la SQL Server Agent pe servere de replicare pentru administrare.

Cu ajutorul SQL Server Management Studio se pot efectua următoarele acțiuni în ce privește
administrarea BD:

> Creare BD
> Modificare BD
> Administrarea tabelelor

– 16 –
> Creare și executare de instrucțiuni SQL. [4]
3.1.2 Sisteme de gestiune a bazelor de date

Baza de date reprezintă una sau mai multe colecții de date aflate în interdependență împreună cu
descrierea datelor și a relațiilor dintre ele.

Colecția de d ate reprezintă un ansamblu de date organizat după anumite criterii și este format din
componentele:

a) O familie de caracteristici alcătuită din atribute ce definesc aspecte ale obiectelor din lumea
reală;
b) Un predicat aplicat familiei de caracteristici ce conduce la o submulțime ce definește o relație
de ordine între caracteristici;
c) O suită temporală T = {t0, t1, …, tj, …} ce definește un decalaj al timpului în intervale discrete;
d) Afectarea la fiecare moment tj a unei relații asociată predicat ului.

Bazele de date sunt gestionate cu ajutorul unui program numit sistem de gestiune al bazelor de
date. Sistemul de gestiune a bazelor de date (SGBD) este un sistem de programe ce permite
definirea, crearea și întreținerea bazei de date precum și acces ul controlat la acesta.

Din punct de vedere conceptual, gestiunea bazelor de date se bazează pe ideea separării structurii
bazei de date de conținutul acesteia. În sistemele de baze de date definirea datelor se separă de
programele aplicație, astfel încât utilizatorii văd doar definiția externă a unui obiect fără a
cunoaște modul în care e definit acesta și cum funcționează. În acest mod, definiția internă a
obiectului poate fi modificată fără a afecta utilizatorii acestuia dacă nu se modifică definiția
externă. De exemplu, dacă sunt adăugate noi structuri de date sau sunt modificate cele existente,
atunci programele aplicație nu sunt afectate dacă nu depind direct de ceea ce se modifică.

Structura bazei de date reprezintă o colecție de descrieri statice a le tipurilor de entități împreună
cu relațiile logice stabilite între ele.
Relațiile logice reprezintă asociațiile dintre mai multe entități.
O entitate este un obiect distinct ce trebuie reprezentat în baza de date.

Un atribut este o proprietate ce desc rie un anumit aspect al obiectului ce se înregistrează în baza
de date.

Scopul unui sistem de gestiune al unei baze de date este acela de a oferi un mediu care să fie și
convenabil, dar și eficient pentru a putea fi folosit la:

– Extragerea informațiilor d in baza de date;

– 17 –
– Înmagazinarea datelor în baza de date.
Bazele de date sunt de obicei folosite la gestionarea unei mari cantități de date, ceea ce
presupune existența următoarelor caracteristici:
– Definirea structurilor (modelarea datelor);
– Utilizarea unor mecanisme de manipulare a datelor;
– Asigurarea securității datelor în baza de date;
– Asigurarea controlului concurenței în cazul utilizării sistemului de către mai mulți utilizatori.

Cu ajutorul acestui limbaj se specifică tipurile de date și structurile pr ecum și constrângerile
asupra datelor. Instrucțiunile limbajului sunt compilate și transformate într -un set de tabele
înmagazinate într -un fișier special numit dicționar de date sau catalogul sistemului (descrierea
datelor se întâlnește sub denumirile de c atalog de sistem, dicționar de date sau meta -date ceea ce
înseamnă date despre date). Structura de înmagazinare a datelor precum și metodele de acces
utilizate de sistemul bazei de date sunt specificate cu ajutorul unui set de definiții folosit cu
scopul a scunderii detaliilor de implementare a schemelor bazei de date. [4]

Acest limbaj este folosit pentru a ajuta utilizatorul să acceseze și să folosească datele aflate în
baza de date într -un mod interactiv. Cu ajutorul acestui limbaj se pot:

 Extrage date din baza de date;
 Introduce date în baza de date;
 Elimina date din baza de date;
 Actualiza date din baza de date.

3.1.3 Administratorul bazei de date

Administratorul bazei de date este un program ce asigură interfața dintre datele înmagazinate,
aplicații le care folosesc aceste date și întrebările adresate sistemului cu ajutorul cărora se extrag
datele necesare. De obicei, bazele de date necesită un spațiu mare de înmagazinare pe mediul de
stocare ales, ce poate ajunge de ordinul gigabytes -ilor. Pentru a p utea fi prelucrate datele se
transferă din memoria externă în memoria internă a sistemului. Scopul sistemului bazei de date
este acela de a ușura accesul la date, iar administratorul bazei de date este răspunzător de
următoarele:
 Asigură interacțiunea cu a dministratorul de fișiere (trebuie să transfere instrucțiunile
limbajului de manipulare a datelor în comenzi de nivel scăzut recunoscute de sistemul de
fișiere);

– 18 –
 Asigură integritatea datelor prin verificările pe care le efectuează în momentul
actualizării datelor astfel încât acestea să nu încalce constrângerile impuse și să fie
consistente;
 Asigură securitatea datelor prin accesul controlat la date pe care îl oferă utilizatorilor
(aceștia nu pot accesa orice fel de date dacă nu le este permis acest lucru);
 Creează copiile de siguranță și asigură refacerea datelor , în cazul apariției unei erori sau
defecțiuni în baza de date, la starea la care acestea se aflau înainte de apariția erorii sau
defecțiunii;
 Asigură controlul concurenței păstrând consistența date lor atunci când acestea sunt
accesate în același timp de mai mulți utilizatori.

3.1.4 Componentele sistemului de gestiune ale bazelor de date

Acestea sunt:
1. Hardware
2. Software
3. Date
4. Proceduri
5. Resurse umane

3.1.4.1 Componenta hardware

Acea stă componentă poate fi reprezentată de un singur calculator personal, un singur calculator
mainframe sau o rețea de calculatoare.

De obicei, într -o rețea de calculatoare, se aplică următoarea schemă:
Se folosește un calculator principal pe care se află p rogramele back -end – adică partea din
sistemul de gestiune al bazei de date care administrează și controlează accesul la baza de date și
mai multe calculatoare aflate în diferite locații pe care se află programele front -end – adică
partea din sistemul de g estiune al bazei de date ce constituie interfața cu utilizatorul.
În această schemă, numită client -server, programele back -end reprezintă serverul iar cele front –
end reprezintă clienții.

– 19 –

3.1.4.2 Componenta software

Această componentă este alcătuită di n:
 Programele sistemului de gestiune al bazei de date;
 Programele aplicație scrise de obicei în limbaje de programare de generația a III -a (C,
Pascal, Cobol) sau SQL încorporat într -un limbaj de generația a III -a;
 Sistemul de operare;
 Programe de rețea.

Sistemul de gestiune al bazei de date poate avea încorporate instrumente dintr -o generație mai
veche, cum ar fi SQL ce permit:

• Dezvoltarea rapidă de aplicații;
• Îmbunătățirea semnificativă a productivității;
• Realizarea unor programe ușor de întreținut . [5]

3.1.4.3 Date

Datele acționează ca o punte de legătură între componentele mașină (hardware și software) și
componenta umană. Baza de date conține atât datele operaționale (setul de înregistrări pe care se
lucrează) cât și metadatele. Structura bazei de date este numită schemă.

3.1.4.4 Proceduri

Procedurile reprezintă instrucțiunile și regulile aplicate în proiectarea și utilizarea bazei de date.
Acestea pot fi:

 Deschiderea unei sesiuni de lucru în sistemul de gestiune al bazei de date;
 Pornirea s au oprirea sistemului de gestiune al bazei de date;
 Utilizarea unui program de aplicație sau a unei funcții a sistemului de gestiune al bazei de
date;
 Efectuarea de copii de siguranță;
 Tratarea defecțiunilor hardware și software;

– 20 –
 Modificarea structurii unu i tabel, reorganizarea bazei de date, îmbunătățirea
performanțelor, arhivarea datelor.

3.1.4.5 Resursele umane

Acestea sunt reprezentate de:

Administratorul de date este responsabil de gestionarea resurselor de date și proiectarea
conceptual / logic ă a bazei de date.
Administratorul bazei de date este responsabil de realizarea fizică a bazei de date ce implică
proiectarea și implementarea acesteia. Administratorul bazei de date este o persoană care are în
răspundere controlul centralizat al datelor ș i al aplicațiilor ce folosesc aceste date. Îndatoririle
administratorului bazei de date cuprind:

 Definește schema bazei de date, ceea ce presupune scrierea unui set de definiții în
limbajul de definire a datelor care apoi să poată fi compilate de către un compilator DDL
și transformate într -un set de tabele păstrate în catalogul sistemului;
 Definește structura de stocare și a metodele de acces prin scrierea unui set de definiții
transferate compilatorului;
 Modifică schema și organizarea fizică prin scriere a unui set de definiții utilizate de către
compilatorul DDL pentru a face modificările cerute în tabele;
 Asigură securitatea prin acordarea drepturilor de acces utilizatorilor pe baza unor conturi
de utilizator create în acest scop;
 Verifică respectarea co nstrângerilor de integritate ori de câte ori se introduc date în baza
de date;
 Monitorizează toate activitățile utilizatorilor;
 Monitorizează creșterea dimensiunilor bazei de date;
 își formează o imagine de ansamblu asupra sistemului, urmărind părțile tari și slabe ale
acestuia;
 Asigură controlul concurenței prin alegerea tipului de blocare ce va fi folosit atunci când
aceleași date sunt folosite de mai mulți utilizatori în același timp;
 Asigură fiabilitatea sistemului în cazul apariției unor erori.
 Proiect anții de baze de date care pot fi:
 Proiectant de baze de date logice:
 Identifică datele (entități și atribute);

– 21 –
 Identifică relațiile dintre date;
 Identifică constrângerile;
 Identifică regulile ce descriu principalele caracteristici ale datelor;
 Implică ut ilizatori în realizarea modelului de date.
 Proiectant de baze de date fizice:
 Transpune modelul logic într -un set de tabele și constrângeri;
 Selectează structuri de stocare și metode de acces specific;
 Asigură securitatea datelor. [5]

Componentele unui s istem de gestiune a bazelor de date.
Sistemele de gestiune a bazelor de date sunt alcătuite dintr -o serie de module ce îndeplinesc
diverse funcționalități. Anumite funcționalități sunt îndeplinite împreună cu sistemul de operare
pe care este folosit sistem ul respectiv. Principalele componente ale unui sisteme de gestiune al
bazelor de date sunt:

Administratorul de fișiere gestionează alocarea spațiului pe disc precum și structurile de date
utilizate la reprezentarea datelor pe disc. Acesta transmite cerere a către metoda de acces
corespunzătoare care fie citește datele din buffer -ul sistemului, fie le scrie în acesta.

Administratorul bazei de date acceptă interogările și examinează schemele externe și conceptuale
pentru a determina ce înregistrări sunt nec esare pentru a satisface o anumită cerere, după care
apelează administratorul de fișiere pentru a efectua cererea.

Utilizatori Administratorul bazei de date
Programatori
Preprocesorul
DML
Schema bazei de date
Interogări Programe aplicație
Procesor de interogare Compilator DDL

Codul programului
obiect Administrator baza de date Admi nistrator catalog
Administrator de fișiere Metode de acces
Buffer Catalogul sistemului
Baza de date SGBD
Figura 5 Componentele bazei de date [5]

– 22 –

Procesorul de interogare transformă interogările într -o serie de instrucțiuni de nivel jos adresate
administratorului de baze de date.
Preprocesorul DML convertește instrucțiunile DML dintr -un program aplicație în apeluri de
funcții standard ale limbajului gazdă și interacționează cu procesorul de interogare pentru a
genera codul corespunzător.

Compilatorul DDL transformă instrucțiu nile DDL într -un set de tabele ce conțin meta -datele.
Tabelele sunt stocate în catalogul sistemului. [5]

Administratorul de catalog gestionează accesul și întreținerea catalogului sistem. Catalogul
sistemului este accesat de majoritatea componentelor sist emului de gestiune al bazei de date. [5]

Una dintre cele mai importante funcții din cadrul sistemului de gestiune al bazelor de date, o are
administratorul bazei de date. Acesta păstrează interfața cu programele aplicație și interogările
lansate de utiliz atori.
Administratorul bazei de date are una dintre cele mai importante funcții în cadrul unui sistem de
gestiune al bazelor de date. Componentele principale ale acestuia sunt prezentate în următoarea
figură. Acestea pot fi următoarele:
Figura 6 Componentele administratorului bazei de d ate [5]

– 23 –

Administratoru l bazei de date conține Evaluatorul de interogare ce execută pe rand fiecare
interogare pe baza unui plan exact.

Administratorul de date este utilizat pentru a minimiza resursele necesare transferului de date
dintre memoria internă și cea externă. Adminis tratorul de date reprezintă un program ce oferă o
interfață între datele înmagazinate în baza de date existentăși interogările formulate prin
intermediul aplicațiilor. Conține următoarele componente:

 Controlul de autorizare care verifică dacă utilizatoru l are dreptul de a efectua
operația cerută.
 Administratorul de fișiere.
 Administratorul de buffer care răspunde de transferul datelor dintre memoria
principală și dispozitivele de stocare secundare.
 Administratorul de tranzacții este utilizat pentru a cont rola atomicitatea și
concurența tranzacțiilor în scopul păstrării consistenței și durabilității bazei de
date. O tranzacție reprezintă o colecție de operații aplicate bazei de date care sunt
efectuate toate deodată sub forma unei singure unități logice. Ac eastă componentă
este alcătuită din:
 Administratorul de tranzacții.
 Administratorul de blocare.
 Administratorul de reconstituire care garantează că baza de date rămâne într -o
stare coerentă după ce în baza de date a apărut o eroare. Acesta este responsabil
de reluarea sau abandonarea unei tranzacții. [5]

3.2 Limbajul C#

Limbajul C a fost inventat de către Dennis Ritchie în anii ‘70 pe un calculator pe care rula
sistemul de operare UNIX. Limbajul C s -a dezvoltat în urma revolutiei programarii structurate
din anii ’60. Inainte de programarea structurată, programele erau greu de scris și de înțeles din
cauza logicii. O masă încalcită de salturi, apeluri și reveniri, greu de urmărit, era cunoscută sub
numele de cod spaghetti. Datorită sintaxei sale concise si uso r de utilizat, in anii ‘80, limbajul C
a devenit cel mai răspandit limbaj structurat.

Limbajul C are însă limitele sale. Una dintre acestea o reprezintă incapacitatea de a lucra cu
programe mari. Limbajul C ridica o barieră atunci cand programul atinge o anumită dimensiune.

– 24 –
Acest prag depinde de program, de instrumentele folosite, de programator, dar este posibil să se
situeze în jurul a 5000 de linii de cod. Principiile de bază ale programării pe obiecte
(INCAPSULARE, MOSTENIRE, POLIMORFISM) sunt element e fundamentale ale programării
C#. În mare, limbajul moștenește atat sintaxa cat și principiile de programare din limbajul C++.
Sunt o serie de tipuri noi de date sau funcțiuni diferite ale datelor din cadrul limbajului C++, iar
în spiritul realizării unor secvențe de cod sigure, unele funcțiuni au fost adăugate (cum ar fi:
interfețe și delegări), diversificate (tipul struct), modificate (tipul string) sau chiar eliminate
(moștenirea multiplă și pointerii către funcții). Unele funcțiuni (cum ar fi: accesul direct la
memorie folosind pointeri) au fost păstrate, dar secvențele de cod corespunzătoare se consi \dera
”nesigure”.

Limbajul C# conține mai multe facilități novatoare, dintre care cele mai importante se referă la
suportul incorporat pentru componente s oftware. C# dispune de facilități care implementează
direct elementele ce alcătuiesc componentele software, cum ar fi proprietățile, metodele și
evenimentele. Poate cea mai importantă facilitate de care dispune C# este posibilitatea de a lucra
într-un medi u cu limbaj mixt.
3.2.1 Programarea orientata pe componente

Dezvoltarea bazata pe componente se poate defini ca fiind o paradigma de realizare a produselor
software orientata spre construirea aplicatiilor din componente software prefabricate.
Componentele inte roperabile pot fi realizate de catre dezvoltatorii de aplicatii, dar în principal
dezvoltarea bazata pe componente se bazeaza pe faptul ca aceste componente vor fi puse la
dispozitia dezvoltatorilor prin intermediul unor cataloage specializate. Se apreciaz a ca adoptarea
pe scara larga a acestei paradigme va duce la industrializarea dezvoltarii software -ului, aceasta
tranzitie fiind echivalenta cu revolutia industriala din celelalte domenii economice, accelerând
procesul de fabricatie si diminuând costurile. [6]
Dezvoltarea bazata pe componente prezinta multe avantaje.
3.5.1.1 Avantaje independente de reutilizabilitate

 Gestionarea corecta a complexitatii: proiectele sunt mai bine focalizate pe aspectele
esentiale, riscurile in cee ace privesc nerealizarea p roiectelor, fiind reduse; aspectele ce
tin de detaliu sunt încapsulate în componente;

 Reducerea efortului de dezvoltare, deoarece componentele sunt deja realizate; se poate
reduce si efortul de mentenanta, care cade în responsabilitatea realizatorilor
componentelor. Eforturile se vor concentra spre realizarea conexiunilor între
componentele folosite;

– 25 –
 Flexibilitate, în conditiile existentei anumitor specificatii clare privind componentele,
exista posibilitatea substituirii componentelor vechi cu altele noi , care ofera
functionalitate sporita. O trasatura esentiala a dezvoltarii bazate pe componenete este
reprezentata de separarea clara între specificatia unei componente si implementarea ei;

 Componentele ce ruleaza în medii distribuite elimina necesitatea d uplicarii codului.

3.5.1.2 Avantaje derivate din reutilizabilitate

 Reducerea timpului de livrare, prin utilizarea unor componente deja realizate;
 Diminuarea necesitatilor de testare, componentele fiind deja testate si, eventual,
certificate;
 Posibilitate a de a selecta cea mai avantajoasa solutie ca functionalitate si cost, datorita
concurentei între furnizorii de componente;
Pentru a întelege modul în care aceasta abordare afecteaza procesul de realizare a software –
ului este esentiala clarificarea notiun ii de componenta software, precum si descrierea
tehnologiilor care faciliteaza implementarea efectiva a aplicatiilor bazate pe componente.
În sens larg, o componenta software este o entitate software oferind o functionalitate
bine stabilita, care poate fi livrata independent si asamblata cu alte entitati software pentru a
forma aplicatii sau fragmente de aplicatii. O componenta software este determinata de trei
aspecte [6]:

 Specificatia descrie latura semantica a componentei, respectiv serviciile pe care le ofera
si modul de utilizare a acestora de catre un potential client. Cunoasterea specificatiei de
catre un client îi este suficienta acestuia pentru a -i utiliza serviciile, fara a tine cont de
modul cum acestea sunt efectiv realizate.

 Proiectul de impl ementare descrie modul în care este proiectata si construita componenta
pentru a respecta specificatia. Implementarea tine de structurile de date utilizate si codul
respectiv, si poate fi diferita ca limbaj de programare si platforma hardware de client.

 Realizarea fizica a componentei, respectiv executabilul corespunzator.

Astfel, încapsularea componentelor, adica separarea neta a specificatiei de implementare,
permite o flexibilitate sporita în realizarea aplicatiilor prin posibilitatea de a substitui
componentele care sunt conforme cu o anumita specificatie, dar difera din alte puncte de vedere.
[7]

Functionarea unei aplicatii CBD necesita diverse forme de coordonare a activitatilor
componentelor, care adesea ruleaza pe masini si platforme software dife rite. Infrastructura
(denumita si middleware) reprezinta setul de servicii pus la dispozitia componentelor pentru
rezolvarea necesitatilor de coordonare ale acestora în contextul amintit. Componentele trebuie
construite tinând seama de restrictiile impuse de infrastructura, fiind în schimb degrevate de

– 26 –
implementarea serviciilor respective. În mod esential, infrastructura trebuie sa ofere urmatoarele
tipuri de servicii:

 Împachetare: componentele trebuie sa poata comunica infrastructurii elemente
descriptive , precum serviciile oferite si semnatura operatiilor care ofera aceste servicii.

 Distributie: servicii care sunt responsabile de activarea/dezactivarea componentelor
apelate, împachetarea parametrilor de apel etc. în contextul unei arhitecturi de calcul
distribuite. Infrastructura trebuie sa izoleze o componenta de detaliile privind localizarea
fizica a altor componente.

 Securitate: servicii care permit autentificarea sursei cererilor/raspunsurilor dintre
componente si confidentialitatea conexiunilor prin care se efectueaza comunicatia.

 Gestiunea tranzactiilor: servicii care asigura evitarea aparitiei de inconsistente ale datelor
în contextul unei interactiuni complexe între componente.

 Comunicarea asincrona între componente, prin mecanisme bazate pe coz i de mesaje. [7]

3.5.2 Tipuri valorice in C#

Tipurile de date și operatorii stau la baza oricărui limbaj de programare. Limbajul C# oferă o
gamă largă de tipuri de date și operatori. Acest limbajul este puternic tipizat. Aceasta inseamnă
că pentru toat e operațiile, compilatorul realizează verificări asupra compatibilități tuturor
tipurilor.

Limbajul C# include două categorii generale de tipuri predefinite: tipuri valorice și tipuri
referință. Tipurile referință din limbajul C# sunt definite de clase. Studiul acestora îl vom face
atunci cand vom discuta despre clase. La baza limbajului C# stau 13 tipuri valorice numite și
tipuri simple. Aceasta se datorează faptului că există o relație directă între tipurile de date C# și
tipurile de date .NET.

Din ra țiuni de portablitate, în acest limbaj, fiecare dintre tipurile valorice are domeniul fix de
valori. Dacă de exemplu în limbajul C, o varabilă de tip int este reprezentată pe 2 octeți sau 4
octeți, în funcție de platforma utilizată, in C# unei variabile de tip int, calculatorul îi alocă 4
octeti, indiferent de mediul de execuție. [8]

ASP.NET impreuna cu Visual Studio .NET ofera dezvoltatorilor urmatoarele beneficii:

 separarea clară între prezentare si cod;
 Un model dezvoltat ce este mai apropiat de modul de programare ca aplicatie
desktop. Acest lucru face mult mai ușor modul de creare al aplicatiilor web;
 Caracteristicile drept instrumente de dezvoltare (numit Visual Studio .NET) ce fac
ca dezvoltatorii sa creeze și sa codeze aplicatia web vizual;

– 27 –
 Accesul la întregul Framework .NET, care este destinat pentru dezvoltatorii web
care utilizeaza caracteristici avansate pentru a lucra cu bazele de date, fișiere,
mail-uri s.a.m.d. In ciuda acestor avantaje, folosind ASP.NET de asemenea
înseamnă cresterea complex itatii și cunoștintelor necesare pentru a creea o
aplicatie cu ajutorul acestuia, făcand astfel dificilă utilizarea ei pentru
programatorii noi care incep cu ASP.NET. [9]

3.3 Server WEB IIS

IIS reprezintă o colecție de servere specifică sistemelor Windows NT ce conține un server de
WEB unul de FTP și un GOPHER.
IIS se poate instala astfel:
Se accesează în butonul de start apoi la setari se accesează control panel și în folderul de rețea
sunt afisate serviciile unde se apasa butonul de “Adauga”. Apoi din fereastra care apare se alege
serviciul de rețea și serverul de IIS unde vor apărea opțiunile urmatoare:
 Internet Service Manager: program cu care putem gestiona datele local.
 World Wide Web Service: server de WEB
 WWW Service Sample: exemple de pagini WEB
 Internet Service Manager HTML: program ce ajuta la gestionarea serverelor de la
distanță
 Gopher Service: server de Gopher
 FTP Service: server de FTP
 ODBC Driver
Pentru a verifica dacă serviciile funcționează se foloseste SRVMGR. Un serviciu va sta în
așteptare pe server ascultand pe un anumit port. Portul standard pentru serverul de WEB este 80
iar pentru serverul de FTP este 21.
Pentru ca un client să se poată conecta pe server el va trebui să folosească un program client și
să acceseze serverul pe portu l pe care acesta ascultă. [10]
Pentru a gestiona serverele de FTP si de WEB trebuie ca un browser internet să fie accesat și să
se apeleze adresa http: \\adresa ip a serverului \iisadmin unde se va selecta FTP. Există trei
etichete. Acestea sunt următoarele :
1. Serviciul:
 TCP\IP Port: portul pe care va sta serverul;

– 28 –
 Connection Time -Out: stabilește timpul după care un client fără activitate este
deconectat;
 Maximmum Connections: numarul maxim de clienti ce se pot conecta la server în
acelasi timp;
 Allow Annonymo us Connection: serverul permite conectări anonime;
 Allow Only Annonymous Connections: serverul permite numai conectări anonime;
 Username: numele utilizatorului;
 Password: parola utilizatorului;
 Curent Sessions: arată utilizatorul logat pe serverul de FTP.

2. Mesaje
Scrierea mesajelor de întampinare ale clientilor, mesajul de plecare și mesajul ce apare c ând se
atinge numărul maxim de conexiuni.

3. Directoare: se pot publica directori în serverul de FTP
Pentru a publica un director se apasă “Add” iar în fereas tra ce apare se scrie cala fizica a
directorului pe care dorim să il publicăm în caseta “Directory”. [10]
Dacă directorul nu există se apasă butonul “Browse” și vor apărea următoarele casete:
 Virtual Directory: numele sub care va fi văzut directorul în str uctura de directori a
serverului de FTP;
 Username: numele utilizatorului;
 Password: parola utilizatorului;
 Access: se stabilesc drepturile clientului;
 Logging: contine optiuni prin care stabilim cum vor fi realizate jurnalele;
 Log To File: jurnalul va fi ț inut într-un fisier -text “Log To SQL \ODBC”: jurnalul va fi
pastrat într -o baza de date;
 Advanced: are optiuni cu care putem tăia accesul la serverul de FTP prin adrese IP ce
creează probleme.
Clientți se pot conecta la serverul de FTP in două moduri:
 Din consolă: Din “Start”, se caută “Run” unde se pot scrie comenzile FTP;
 Prin program cu interfața grafică, se parcurg pașii în meniu: “File” apoi “File Manager”,
se apasă pe “New” și se conectează. [10]
IIS – Internet Information Services reprezintă un set d e servicii de Internet destinate
serverelor ce folosesc sistemul de operare Microsoft Windows .

– 29 –

3.3.1 Comparație servere WEB : IIS -APACHE – TOMCAT

 Apache HTTP Server
Apache HTTP Server este un server HT TP de tip open -source și reprezintă o implementare
pentru limbajul de programare C. Fiind unul dintre cele mai populare î n momentul actual, este
utilizat de peste 100 de milioane de site -uri web și deservește peste 60% din toate paginile web.
În comparați e cu Apache Tomcat, Apache HTTP Server este mai rapid atunci când deservește
site-uri statice. Totodată, Apace HTTP Server are mai multe opțiuni de configurare decât Tomcat
și suportă scripturi CGI, module API, PERL, PHP, s.a.m.d.
Pe de altă parte, mare de zavantaj al serverului HTTP Apache este lipsa de compatibitate pentru
Java Servlets sau paginile Java Server, care nu pot rula cu serverul HTTP Apache. Tocmai de
aceea, pentru a fi soluționată această problemă, a fost creat Apache Tomcat.
 Apache Tomcat
Apache Tomcat, de altfel cunoscut sub numele de „Tomcat” este un server web open -source,
fiind dezvoltat și menținut tot de Apache Software Foundation. Fiind o implementare de tip
software pentru tehnologiile Java și se execută pe Java Servlets și pagini Java Server sunt
cunoscute sub numele de JSP -uri.
Față de Apache HTTP Server, Apache Tomcat asigură suportul pe Java Servlet și JSP -uri pentru
paginile dinamice servite. De asemenea, Tomcat funcționează ca un server de testare și poate
rula în diferite moduri p entru a se asigura o performanță bună.
Adesea folosite împreună, Tomcat poate aduce un avantaj la instalarea Apache HTTP Server. Cu
toate acestea, Tomcat poate sta, de asemenea, pe cont propriu ca un server web fără Apache
HTTP Server. [11]
IIS este cel de al doilea server web în ceea ce privește popularitatea. In această disertație ca și
serviciul web este utilizat IIS (Internet Information Services).

– 30 –

– 31 –

4 Dezvoltarea aplicației

4.2 API (Application Programming Interface)

Este un anumit set de reguli și specificații ca un program software să poată accesa și utiliza
serviciile și resursele furnizate de către un alt program software special, care pune în aplicare
aceast API. Servește ca o interfață între diferite programe software și facil itează interacțiunea lor,
similar cu modul în care interfața cu utilizatorul facilitează interacțiunea dintre oameni și
computere.

Un API poate fi creat pentru aplicații, sisteme de operare, biblioteci s.a.m.d., ca o modalitate de a
defini propriul lor v ocabular și convențiile de cerere a resurselor. Acesta poate include
specificații pentru rutine, structuri de date, clase de obiecte, și protocoalele utilizate pentru a
comunica între programul care folosește și programul care implementează API -ul. [12]

Un API este o abstracțiune care descrie o interfață pentru interacțiunea cu un set de funcții
utilizate de componente ale unui sistem software. Software -ul care oferă funcțiile descrise printr –
un API este declarat a fi o punere în aplicare a API -ului. [12]
API-urile pot fi:
 Generale, un set complet de API -uri, care sunt încorporate în bibliotecile unui
limbaj de programare, precum, Standard Template Library în C + + sau Java API;
 Specifice, menite să abordeze o problemă specifică, de exemplu, Google Maps
API sau API Java pentru Servicii Web XML;
 Dependente de limbaj, ceea ce înseamnă că sunt disponibile doar prin utilizarea
elementelor de sintaxă particulare unui anumit limbaj de programare;
 Independente de limbaj, scrise, astfel încât să poată fi apelate de mai multe
limbaje de programare. Aceasta este o caracteristică de dorit pentru API -uri
orientate pe servicii ce nu sunt legate de un proces specific sau de sistem.

API poate fi folosit pentru a desemna o interfață completă, o singură funcție, sau chi ar un set de
API-uri oferite de diverse organizații. Astfel sensul este de obicei determinat de contextul
utilizării. [12]

– 32 –

4.3 Mediu de dezvoltare

Un mediu de dezvoltare (software development environment, sau integrated development
environment) este un set de programe care ajută programatorul în scrierea programelor. Un
mediu de dezvoltare combină toți pașii necesari creării unui program (ex.: editarea codului sursă,
compilarea, depanarea, testarea, generarea de documentație) într -un singur soft, care, de regulă,
oferă o interfață cu utilizatorul grafică, prietenoasă.

Principalele componente ale unui mediu de dezvoltare sunt editorul de cod sursă și depanatorul.
Mediile de dezvoltare apelează compilatoare, sau interpretoare, care pot veni în ace lași pachet cu
mediul însuși, sau pot fi instalate separat de către programator. Printre facilitățile prezente în
mediile de dezvoltare mai sofisticate se numără: explorarea de cod sursă, sisteme de control al
versiunilor, designere de interfețe grafice, s au unelte de ingineria programării (ex. generarea de
diagrame UML).

De obicei un mediu de dezvoltare este specific unui anumit limbaj de programare, însă există la
ora actuală și medii de dezvoltare care pot lucra cu mai multe limbaje: Eclipse, Microsoft Visual
Studio, Netbeans.

4.4 Aplicații software client, proprii, de tip GIS

GIS (Geographic Information System – Sistem Informatic Geografic) este un sistem utilizat
pentru a crea, stoca, a analiza și prelucra informații distribuite spațial printr -un p roces
computerizat. Tehnologia GIS poate fi utilizată în diverse domenii științifice cum ar fi:
managementul resurselor, studii de impact asupra mediului, cartografie, planificarea rutelor.[13]

Specific unui GIS este modul de organizare a informației gest ionate. Există două tipuri de
informație: una grafică care indică repartiția spațială a elementelor studiate și alta sub formă de
bază de date pentru a stoca atributele asociate acestor elemente (de exemplu: pentru o șosea
lungimea ei, lățimea, numărul ben zilor, materialul de construcție s.a.m.d.).

Informația grafică poate fi de două feluri: raster sau vectorială. Grafica raster este o modalitate
de reprezentare a imaginilor în aplicații software sub forma de matrice de pixeli în timp ce
grafica vectorial ă este o metoda de reprezentare a imaginilor cu ajutorul unor primitive
geometrice (puncte, segmente, poligoane), caracterizate de ecuatii matematice. [13]

Specific sistemelor GIS este asocierea unui sistem de coordonate geografic matricii de pixeli (la
imaginile raster) sau vectorilor – procedeul poarta numele de Georeferentiere. Astfel unui obiect

– 33 –
(reprezentat fie printr -o imagine, fie printr -un vector) îi este asociată o poziție unică în Sistemul
Informatic corespunzătoare poziției geografice din lumea reală.

Folosind serviciile web oferite de Google, precum și resurse proprii am creat un sistem de
orientare -navigare:

 Vizualizare a unei hărți folosind geocodarea (Google Geocoding API, Google Maps
Static API)
 Vizualizarea celor mai apropiate service -uri auto fata de pozitia utilizatorului pe harta;

Figura 7 Localizarea pozitie pe harta

Geocodarea este procesul prin care poziția unui obiect definit indirect (prin adresă poștală, prin
denumirea unității administrative sau a unei denumiri cunoscute – human readable) este
transformată în coordonate geografice, care astfel se poate localiza pe hartă.

Din punct de vedere tehnic se urmărește folosirea comunicației și schimbul de informații client –
server via http, precum și ge stionarea resurselor de procesare propii ale aplicatiei.

Google Maps Static API, Google Geocoding API reprezintă servicii cartografice publice,
gratuite: vizualizare hărți respectiv geocodare.

Arhitectura serviciului web folosit este REST: Interfața un iformă fiind protocolul HTTP, iar
resursele fiind identificate prin URL.[14]

– 34 –

Figura 8 descrie modul de funcționare al aplicației:

Figura 8 Arhitectura aplicatiei

Clientul trimite o cerere către server pentru a afla in formații legate de problemele apărute la
automobil. Server -ul apelează baza de date în care se află informațiile de care are nevoie si
trimite răspunsul către client sub formă de mesaj. De asemenea clientul poate afla poziția lui
actuală pe harta cat si ce le mai apropiate service -uri. Pentru aflarea informațiilor de geocodare
este folosit Google Geocoding API. După efectuarea operațiunii de geocodare este trimisă o cere
către serverul Google de localizare și, la randul ei, este descărcată harta centrată cu coordonatele
obținute în urma geocodării. In final clientul primeste raspuns cu toate informațiile legate de
pozitia pe harta a acestuia în raport cu service -urile apropiate.
4.4.1 Tehnologiile specifice utilizate pentru comunicarea Client -Server

Pentru crearea serverului central, responsabil cu centralizarea răspunsului de la clienți, distribuția
acestuia către clienți și persistența datelor, alegerile s -au făcut între tehnologiile multiple
disponibile, precum realizarea unei comunicații asincrone sau im plementarea unui mecanism de
procedura apelata de la distanta. Aplicatia dezvoltata implica implementarea unui serviciu web,
datorită protocolului de nivel superior, Hypertext transfer protocol, care, asigură o bază pentru
dezvoltarea unui mecanism facil d e acces la date. De asemenea, acest protocol HTTP permite
schimbul datelor în mai multe formate, atât de tip binar cât și text, reprezentand un avantaj.

– 35 –
Un alt avantaj in cee ace priveste un system de tip Client -Server bazat pe protocolul HTTP este
portab ilitatea, fiecare limbaj de programare având biblioteci care facilitează crearea mesajelor
HTTP și transmiterea sau recepționarea acestora pe baza URL -ului. Datorită folosirii unui limbaj
compatibil Visual Studio, am utilizat Visual Studio pentru devoltare a serverului web

Protocolul HTTP – Hypertext Transfer Protocol este un protocol la nivelul aplicației ce stă la
baza comunicației în WWW (World Wide Web). Hypertext reprezintă un set de obiecte ce pot
construi conexiuni între noduri prin legături logice, hyperlinks. HTTP este protocolul care
permite transferul unor astfel de obiecte:

 HTTP este un protocol de tip cerere -răspuns în modelul arhitectural de tip Client -Server.
Un client trimite o cerere HTTP către un server web, care va întoarce un răspuns. Ac est
răspuns conține o stare al completării cererii și, în caz de succes, informația cerută.
 Resursele HTTP sunt identificate și localizate pe rețea prin Uniform Resource Locators
(URLs) folosind schema http URI definită astfel:
<nume_schema>: <porțiunea_ ierarhică> [? <query>] [ # <fragment>]

În cazul HTTP numele schemei este http. Partea ierarhică începe cu un dublu forward slash "//",
urmat de un nume al autorității, care poate fi un nume de domeniu sau un ip, urmat apoi de un
port opțional, precedat de ":". După autoritate urmează o cale construita ca o succesiune de
segmente, asemănătoare unei structuri de directoare, caracterul separator fiind "/". Porțiunea de
cereri este opțională, începe cu "?" și conține o informație adițională care nu este iera rhică, ci
organizată tipic prin perechi de tip <cheie>=<valoare>, cu perechile separate prin ";" sau "&".
Partea fragmentului este de asemenea opțională, începe cu "#" și conține o directivă către o
resursă secundară, cel mai des un atribut id al resursei principale, așa cum se întâmplă în cazul
documentelor HTML.

HTTP definește nouă metode care indică acțiunea dorită asupra resursei accesate. Aceste nouă
metode sunt: HEAD, GET, POST, PUȚ, DELETE, TRACE, OPTIONS, CONNECT și PATCH.
Cele mai utilizate sunt cele de GET, prin care se citește resursa, și cele de POST, PUT și ELETE,
prin care se modifică resursa. Metodele safe (sigure) sunt considerate cele prin care se
intenționează doar citirea informației, fără modificarea stării serverului. Acestea sunt HEA D,
GET, OPTIONS și TRACE. Metodele idempotente sunt cele asupra cărora mai multe cereri
identice ar trebui să aibă același efect. Acestea sunt POST și DELETE. [15]

4.5 Arhitectura Aplicației

Arhitectura constă într -o interfață grafică ce poate fi vazut ă de catre utilizator. Această secțiune
poate fi compusă dintr -un utilizator și/sau un administrator.

– 36 –
Secțiunea de aplicație logică reprezintă ceea ce se vede în aplicație. In cazul nostru, se pot vedea
informații legate de vehicul, de asistența diagnozei propriu -zisă.
Diagrama de domeniu reprezintă informațiile din baza de date. Aceste informații sunt legate
despre detaliile masinilor, service -urilor s.a.m.d.
Ultima secțiune, nivelul serviciilor conține baza de date. In cazul de față, baza de date este un a
locală.

In figura 9 se poate vedea arhitectura aplicației prezentate.

4.6 Diagrama AutoService DataBase

Baza de date AutoService este construită din următoarele 9 tabele:
1. Tabela MartoriBord
2. Tabela ModRezolvare
3. Tabela Producator
4. Tabela Model
5. Tabel a Vehicul
6. Tabela Motorizare
7. Tabela An
Figura 9 Arhitectura aplicatiei AutoService pe nivele software

– 37 –
8. Tabela AfiliereServiceProducator
9. Tabela Service
Funcționalitatea acestora este următoarea: utilizatorul accesează pagina web, alege producătorul
mașinii, alege modelul mașinii, motorizarea acesteia și anul fabricației vehiculului.
După ce utilizatorul parcurge toți acești pași, apar într -o tabelă separată martorii de bord. Acest
lucru se datorează faptului că martorii de bord sunt tipizați pentru toate tipurile de mașini și de
aceea tabela MartoriBord este o tabelă sepa rată, de sine stătoare.
Tabela AfiliereServiceProducator este o tabela care face legătura între tabela Producator si tabela
Service. Aceasta contine cele doua id -uri ale celor doua tabele mentionate. Pentru dezvoltarea
sistemului de a oferii asistența dia gnozei și rezolvării problemelor auto, am creeat cu ajutorul
programului SQL Management Studio 2012 următoarea diagramă:
Figura 10 Baza de date AutoService
In figura 10 este reprezentată diagrama ce contine tabelele bazei de date A utoService impreună
cu informatiile utilizate pentru a asista la diagnoza problemelor auto ale utilizatorilori finali.

4.7 Legătura intre Kit -urile de dezvoltare software

– 38 –
Odată ce baza de date a fost creeată, este utilizat Visual Studio care apelează ba za de date și
deschide printr -un localhost o pagină de Google Chrome aplicația pe care utilizatorul o
accesează direct. Kit -ul Visual Studio crează automat scheletul aplicației web funcționale. Printre
alte funcții deja implementate, aplicația v -a permite înregistrarea și autentificarea utilizatorilor
aplicației, datele acestora fiind stocate local, într -o bază de date separată. Componentele paginii
de start le găsim în Solution Explorer în directorul Views/Home din Visual Studio. [16]
Figura 11 Solution Explorer in Visual Studio
Șablonul arhitectural MVC (Model -View -Controller) separă aplicația în trei categorii principale
de componente: Models, Views, Controllers. Acest șablon ajută la realizarea principiului
software denumit „sep aration of concerns”. Acesta implică, în linii mari, modularizarea, sau
separarea aplicației software în secțiuni distincte, fiecare fiind responsabilă cu îndeplinirea unei
sarcini clare. [16]
Modelul MVC separă aplicatia în trei componente principale:
M: model (Model) contine clase ce reprezintă domeniul aplicatiei. Aceste obiecte încapsulează
adesea date memorate intr -o baza de date precum și cod folosit pentru a procesa datele și a
executa actiuni specifice logicii aplicatiei. Cu ASP.NET MVC, acesta est e vazut mai ales ca un
Data Acces Layer – DAL – de un anumit tip, utilizand Entity Framework.
V: vizualizare (View User Interface) defineste cum va arata interfata aplicatiei. View este un
template pentru a genera în mod dinamic HTML.
C: controler (Control ler) este o clasă specială ce gestioneaza relațiile dintre View si Model.
Controller -ul răspunde la acțiunile utilizatorului, comunica cu modelul și decide ce vizualizare

– 39 –
va afisa (dacă există una). In ASP.NET NVC, numele acestei clase conține sufixul Cont roller.
[16]

Ceea ce am definit mai sus constituie modelul MVC pentru UI – User Interface. Acest model nu
specifică nimic despre modul în care se accesează datele, cum interactioneaza serviciile s.a.m.d.
Interactiunea într -o aplicatie ASP.NET MVC poate f i reprezentată astfel:

Figura 12 Interactiunea aplicatiei ASP.NET MVC [16]

În cadrul MVC, cererile utilizatorului sunt prelucrate de către Controller, acesta fiind responsabil
de operarea împreună cu Modelul. Acesta contine setul de date cu care operează aplicația.
Controller -ul este cel care alege View -ul care să îi fie afișat utilizatorului și îi pune la dispoziție
datele cerute din Model. Pentru aplicatia de asistența diagnozei și rezolvării problemelor auto
View -ul contine urm atoarele:
 MartoriBord
 Model
 ModRezolvare
 Motorizare
 Producator
 Service
 Shared
 Vehicul
Fiecare dintre cele de mai sus reprezintă o clasă care conține fisiere de tip cshtml. Pentru fiecare
Controller au fost create o serie de cinci View -uri diferite, care c orespund la cinci acțiuni
specifice:
 Create: crearea unei înregistrări noi;
 Delete: ștergerea unei înregistrări existente cu afișarea unui dialog de confirmare;
 Details: vizualizare detaliată a unei înregistrări;
 Edit: modificarea datelor unei înregistrări;
 Index: afișarea listei cu toate înregistrările.

– 40 –
Înainte de rularea aplicației se adăugă legături la View -urile existente din pagina principală a
aplicației. Aspectul View -urilor aplicației este influențat de pagina
/Views/ Shared/_Layout.cshtml . Aceasta definește, printre altele, antetul și subsolul comune
tuturor paginilor din aplicație. Astfel ca în meniul aplicației vom adăuga legături la paginile
pentru evidența modelelor si a producatorilor de masini, a anilor de fabric ație si motorizarea.
Modificările efectuate în pagina _Layout.cshtml sunt marcate cu galben:

Figura 13 Legaturi la paginile web ale aplicatiei
Legăturile indicate prin @Html.ActionLink indică pagina la care se face referire. De exemplu,
@Html.ActionLink("Model", "Index", "Model") va construi un link cu textul „Model” care indică
spre View -ul Index asociat Controller -ului Model. Legăturile sunt reprezentate în figura 13.

– 41 –
4.8 Logarea în aplicație

Aplicația poate fi folosit ă de catre utilizator printr -un cont propriu pe care îl poate crea în
momentul accesarii aplicației pentru prima dat ă sau poate sa foloseasc ă unul din conturile sale de
Facebook sau Google. Logarea poate fi posibil ă astfel, utilizand platforma ASP.NET MVC 5 de
aplicații web care permite utilizatorilor s ă se conecteze la aplicație cu credențialele proprii de la
un furnizor de autentificare extern precum: Facebook sau Google.
Aceast ă nouă setare în aplicația de faț ă, ofer ă un avantaj semnificativ, deoarece mi lioane de
utiliazatori au deja conturi create la acesti furnizori externi. Astfel utilizatorii vor fi inclinați s ă
foloseasc ă aplicația, f ără a mai fi nevoiți s ă iși creeze un nou cont. De aceea va putea economisi
timp și nu va mai fi necesar sa memoreze u n nou set de credentiale.
Pentru a se realiza conexiunea cu un furnizor extern este necesar de a seta serverul de IIS –
Express pentru a permite conectarea cu SSL -ul, astfel încat utilizatorul s ă se bucure de o
experienț ă care s ă îi permit ă securizare datel or. Pentru a fi posibil ă securizarea datelor este
utilizat protocolul HTTPS care comparativ cu protocolul HTTP, salveaz ă informațiile
utilizatorului doar în cache -ul local și nu permite trimiterea lor sub forma de text în retea, acestea
fiind criptate.
Figura 14 Modul de activare a SSL -ului.

În figura 14 este reprezentat modul de activare a SSL -ului în cadrul aplica ției create.

– 42 –
În figura de mai jos este descris modul de a importa prin intermediul pachetelor NuGet,
bibliotecile ext erne cum ar fi: Entity Framework, Microsoft. OAuth.Security. Google, Google
APIs Client Library, Microsoft ASP.Net, Identity Core, JQuery, Facebook SDK s.a.m.d:
Figura 15 Import biblioteci externe
Importul bibliotecilor externe se fac conform figurii 15 prezentate mai sus.
Dup ă stabilirea platformei, un pas foarte important îl reprezint ă stabilirea restricțiilor și anume:

– 43 –
Figura 16 API Manager Google [17]

 Autorizarea scriptului de JavaScript care trebuie setat pe portul 44391 în cazul nostru și
în general trebuie setat pe același port ca portul de pe SSL URL.
 Autorizarea URI –urilor de redirect, care reprezint ă ruta pe care este redirectat utilizatorul
după ce s-a autentificat cu Google dup ă cum se observ ă și în figura 16.

În figura 17 sunt reprezentate id de client, localhost -ul și parola criptată ‘Client Secret’ de pe
platforma de pe google developer care va fi aceeași cu cea din clasa Startup Auth.cs.
Figura 17 Clasa Startup.Au th.cs din folderul App_Start
‘Client id’ și ‘Client Secret’ sunt necesare pentru a face conexiunea utilizatorilor google.
În momentul în care clasa Startup.Auth.cs a fost configurat ă, se poate accesa aplicația prin
intermediul API -ului si utilizatorul se p oate loga cu ajutorul furnizorului extern.

– 44 –
Figura 18 Logare cont Google [17]

Figura 18 prezint ă modul de acces direct cu un cont de gmail al utilizatorului.
O alt ă modalitate de logare în aplicație poate fi și prin accesarea c ontului de Facebook. Îns ă,
pentru a fi posibil acest lucru, utilizatorul trebuie s ă se înregistreze în platforma de Faceebook
Developer cu contul s ău existent și codul standard de Securitate. Odat ă ce acesta este înregistrat
va avea propriul APP ID așa cum se poate observa în figura 18.

Figura 19 API Manager Facebook [18]

Odată ce platforma a fost stabilită ca website, se adaugă site -ul URL petru a testa aplicația iar
utilizatorului i se va stabili un identificator unic prin APP ID și o parolă prin APP Secret cum se
observă și în figura 20.

– 45 –
Figura 20 Clasa Startup.Auth.cs din folderul App_Start

Identificatorul unic dar și parola stabilită la început ale utilizatorului vor fi menționate și în clasa
Start up.Auth.cs. Însă, ca și în cazul utilizatorilor care se autentifică prin contul de google, parola
va fi criptată in clasa Startup.Auth.cs. Acest lucru poate fi văzut în figura 20.
Odată stabilite toate aceste lucruri, utilizatorul poate continua autentifi carea prin contul de
Facebook ca în figura 21.
Figura 21 Logare cont Facebook [18]

Aplicația curentă face parte din categoria arhitecturilor orientate pe servicii. Pentru a discuta
despre Arhitecturi Orientate pe Servicii (SOA), a r trebui să plecăm prima dată de la definiția
acestora. Din păcate, o definiție universală acceptată pentru SOA nu există. Astfel, se incearcă
descrierea unor arhitecturi bazate pe servicii slab interconectate care suportă modelarea
proceselor atat de busi ness cat și a necesitaților utilizatori lor. Resursele aflate într -o „rețea” sunt
expuse ca servicii independente care pot fi accesate fără cunostiințe exacte despre ceea ce se află
în spatele lor: algoritmi, platformă, implementare ș.a.m.d. Aceste concept e generice sunt valabile
fie că se vorbește despre afaceri, software sau alte tipuri de sisteme de tip consumator –
producator. După cum menționam anterior, arhitecturile de tip SOA nu impun utilizarea unei
anumite tehnologii precum REST, RPC, DCOM, CORBA sa u Servicii Web. Conceptul cheie
care permite acest lucru este faptul că serviciile sunt independente, și pot fi apelate într -un mod
standardizat pentru a -și indeplini sarcinile pentru care au fost proiectate și implementate, fără ca
serviciul să fie nevoit să știe în prealabil nimic despre aplicația care îl invoca, sau ca aplicația
care invoca serviciul să aibă nevoie să inteleaga mecanismele interne prin care serviciul își duce
la bun sfarsit rolul pentru care a fost definit. Putem astfel incearca să se de fineasca SOA ca fiind
o paradigmă pentru organizarea si utilizarea capabilitatilor distribuite care pot să fie sub

– 46 –
controlul unor entităti diferite. Această paradigmă oferă o modalitate uniformă de descoperire și
interactioanre. Conceptul de bază al SOA es te acela de interconectare slabă, realizat prin
constrangeri arhitecturale precum: [19]

 Între interfețele diferitelor servicii se schimb ă doar mesaje care respect ă o schem ă
predefinit ă, dar extensibil ă, prin intermediul c ărora se trimite doar conținut și nu descriere
comportamental ă a sistemului. Cu alte cuvinte mesajul trebuie să aibă o mare putere de
descriere și nu una de „comand ă”/instruire.
 Fiecare serviciu ofer ă un set de interfețe simple și care ofer ă doar o semantic ă general ă, și
care este accesib ilă de c ătre orice produc ător sau consumator interesat. [19]

Pe lâng ă conceptul de interconectare slab ă, exist ă și urm ătoarele concepte referitoare la
principiile unei arhitecturi de tip SOA:

 Contractul Serviciului – se refer ă la faptul c ă serviciile co munic ă pe baza unui acord
stipulat de c ătre unul sau mai multe servicii prin intermediul unor documente descriptive;
 Incapsularea Serviciului;
 Descoperirea Serviciilor – serviciile sunt concepute astfel încat să își descrie
funcționalitatea c ătre „exterior ”, ca să poat ă fi gasite și folosite prin intermediul unor
mecanisme de descoperire;
 Abstractizarea Serviciului – un serviciu expune ceea ce face si nu modul în care o
realizeaz ă;
 Refolosirea Serviciului – conceptul de serviciu implic ă reutilizarea. Servic iile au fost
concepte pentru a putea să fie reutilizate;
 Compunerea Serviciilor – colectii de servicii pot să fie coordonate și asamblate astfel
încat să formeze un nou serviciu, numit un serviciu compus;
 Autonomia Serviciului – un serviciu are control tot al asupra logicii pe care o
încapsuleaz ă. [19]

Avand bazele puse pentru conceptul de SOA, în cele ce urmează se va încerca definirea
Serviciilor Web pe baza acestor concepte. Serviciile Web reprezintă o modalitate prin care o
arhitectură SOA este realizat ă, folosind un anumit set de protocoale și restricții. In cazul concret
al Serviciilor Web, următoarele sunt impuse două restricții:

 Interfețele serviciilor trebuie să fie construite peste protocoale din Internet, precum
HTTP, FTP sau SMTP.
 Exceptand at așamentele binare alea unor mesaje, toat ă comunicarea între servicii trebuie
să fie făcută prin mesaje în format XML.

În momentul de față există două mari clase de Servicii Web, și anume: SOAP si REST.
SOAP este un acronim pentru Simple Object Access P rotocol. Clasa de Servicii Web de tip
SOAP aduce următoarele constrangeri fată de cele menționate mai sus:

 Cu excepția atasamentelor binare, toate mesajele trebuie să fie transportate prin
intermediul SOAP.

– 47 –
 Descrierea unui Serviciu Web se va face folosi nd un limbaj de markup numit WSDL –
Web Service Description Language.
 Existența registrelor UDDI (Universal Description Discovery and Integration) care au ca
scop indexarea Serviciilor Web. UDDI -ul permite interogarea să prin intermediul SOAP
și facilitea ză accesul la WSDL -ul Serviciilor Web pe care le indexeaz ă. SOAP nu face
altceva decât să defineasc ă un format pentru mesaje care pot fi trimise între servicii web
deasupra unui num ăr de protocoale internet. Cu alte cuvinte, SOAP se comport ă ca un
plic car e mut ă conținut dintr -un punct în altul. [19]

Aplicația constă într -o interfață grafică pentru a fi mai atractivă si mai usor de manipulat de către
utilizatori. Interfețele grafice poartă denumirea de GUI (Graphical User Interface). [20]
Componentele unei interfețe grafice se numesc elemente de control (widgets) ̧si pot fi activate de
către utilizator cu ajutorul mouse -ului sau al tastaturii. Activarea unui element de control
determină un anumit răspuns din partea programului, răspuns concretizat prin exec uția unei
anumite operații. Cele mai răspândite interfețe grafice sunt cele bazate pe ferestre, adică fiecarei
aplicații active la un moment dat i se aloca o zonă dreptunghiulară pe ecran, numită fereastra.
[21]

În interiorul ferestrei respective, se vor gasi toate elementele de control necesare dialogului
utilizator -aplicație, precum și informațiile afisate de aplicație.

Pentru că aplicația folosește interfața grafica, să poată funcționa, este necesară existența unei
platforme sau server grafic care să d etermine intrarea monitorului în regim grafic și care să ofere
funcțiile primitive necesare, ıntre altele, pentru desenarea componentelor GUI și pentru
receptarea semnalelor generate de mouse și tastatură. [22]

4.9 Unelte și resurse folosite în dezvoltare a aplicațiilor de tipul client -server

Aplicațiile de tip client -server, ca și modelul client -server, reprezintă o arhitectură a unei
apliacații distribuite care partajează procesarea între furnizorii de servicii numiți servere și
elementele care solicită servicii, numite clienți. Astfel, clienții și serverele comunică printr -o
rețea de calculatoare, de obicei prin intermediul Internetului, având suporturi hardware diferite,
dar pot rula și pe un același sistem fizic. [23]

Un server (fizic) rulează unul s au mai multe programe server, care partajează resursele existente
cu clienții. Clientul nu partajează niciuna dintre resursele proprii, ci apeleaza la resursele
serverului prin funcțiile specific server. Clienții inițiază comunicația cu serverele și așteap tă
mesajele acestora. Pentru menținerea legăturii între cei doi, indiferent de pauzele care intervin, se
folosește conceptul de sesiune, care de cele mai multe ori este limitată în timp. [23]

4.10 Exemplificarea modului de utilizare a aplicației

– 48 –
Conform cercetărilor făcute în legatură cu aplicația de asistență și diagnoză asupra problemelor
auto identificate prin observarea martorilor luminosi, în momentul de față utilizatorii am
identificat următoarele tipuri de scenarii.
Primul scenariu identificat est e că utilizatorii sunt nevoiți să confrunte cartea mașinii, de unde se
pot informa cu privire la definiția martorilor luminosi.

Scenariul acesta are următoarele dezavantaje:
 Se pot citi definițiile fiec ărui martor luminous f ără a identifica totalitatea s oluțiilor
posibile.
 Necesit ă timp în a identifica informațiile.
 Exist ă posibilitatea de a nu avea cartea mașinii la indeman ă.
Un alt scenariu existent poate fi considerat și faptul că utilizatorii pot accesa anumite forum -uri
bazate pe experiențele diverș ilor utilizatori care au întâmpinat una sau mai multe probleme în
momentul în care se aflau in trafic. Un exemplu de forum este cel de “clubaudi”, “reno.ro”,
“masini.ro”, “supercars.ro”.
Acest scenariu are urm ătoarele dezavantaje:
 Informațiile sunt greu d e identificat fiind discuții pe diferite teme;
 Nu toate întreb ările sunt relevante;
 Nu toți utilizatorii implicati pot fi cunoscatori;
 Informațiile pot fi eronate;
 Majoritatea forum -urilor conțin informații despre un anumit produc ător de mașini.
Există îns ă și aplicații în care utilizatorii pot afla definiția fiecărui martor luminos de pe bordul
mașinilor însă acestea sunt generalizate.
Astfel încât, după cercetările făcute, am decis ca toate informațiile să fie puse într -o aplicație
pentru a fi accesate d irect de către utilizatori printr -o căutare rapidă, de a avea la îndemână și
soluții eficiente și rapide iar problemele care pot apărea în funcție de martorii de pe bordul
masinii vor fi clasificați pe priorități astfel încât să poată realiza cât de repede este necesară
soluționarea problemei. Prioritățile sunt următoarele:
 Low
 Medium
 High
Scenariul pe care l -am creeat cu ajutorul aplicației AutoService, pe care îi poate parcurge un
utilizator în momentul în care accesează aplicația sunt următorii:

– 49 –
1. Utilizat orul va accesa localhostul și va trebui să își creeze un cont cu care să se conecteze
la aplicație. Posibilitățile de conectare sunt variate:

 Se poate conecta cu un cont creat imediat după ce acceseaza aplicația;
 Se poate conecta cu propriul cont de Faceb ook;
 Dacă nu are cont de Facebook și nici nu doreste să își creeze un nou cont,
se poate conecta cu propriul cont de Google.
Toate cele trei posibilități menționate mai sus, reprezintă cele trei variante de conectare la
aplicație.
2. După ce a fost creat c ontul, utilizatorul va avea posibilitatea de a accesa informațiile pe
care acesta le are pentru a începe diagnoza propriu -zisă asa cum se poate observa în
figura următoare:

Figura 22 Interfața aplicației

Pagina “Acasa” reprezintă pagina principală pe care utilizatorul va trebui să o acceseze imediat
după autentificare pentru a intra efectiv in aplicație.

– 50 –
3. Odată stabilită înregistrarea, utilizatorul poate începe să utilizeze aplicația pentru a putea
identifica posibilitătile de soluționare a problemelor existente. Pasul următor constă în
apăsarea butonului „Intră în Aplicație” unde va trebui să aleagă atat producatorul masinii
sale cât și modelul acestuia. În figura de mai jos este reprezentat modelul de alegere ale
celor două ca racteristici:
Figura 23 Alegerea Producatorului si a modelului masinii
4. Următorul pas este ca utilizatorul să aleagă unul sau mai multi martori luminoși de pe
bordul mașinii. Acest lucru reprezintă un avantaj al aplicației deoarece în cazul în care pe
bordul mașinii se aprind mai multi martori, aplicația oferă posibilitatea de a face mai
multe selecții în același timp ceea ce duce la micșorarea timpului de stabilire a pașilor de

– 51 –
rezolvare a potențialelor defecțiuni.
Figura 24 Alegerea martorilor luminoși
Alegerea martorilor reprezinta un pas important in identificarea problemelor auto.
5. În figura 24 este reprezentat pasul în care utilizatorul alege cei doi martori: “Lumini de
ceață față aprinse” și “Probleme la servodirecție”. Odată ce selecția a fost făcută, atunci
utilizatorul va putea apăsa pe butonul „Continuă” pentru a vedea atât numele cât și
descrierea martorului sau a martorilori selectați.

Figura 25 Descriere Martori

6. În figura 25 se poate vedea rezultatul în urma alegerii făcute de către utilizator. Această
etapă este urmată de posibilitățile de rezolvare a eventualelor probleme. Foarte important
ca și caracteristică a aplicației este ca există o prioritizare a problemelor astfel încât
utilizatorul să poată acționa in scopul soluționarii acestora cat mai repede posibil pentru
situațiile urgente.
În situația în care utilizatorul va avea o problema de grad ‘Low’ și o alta de grad ‘High’,
acesta va fi direcționat către un ser vice care să ii poată rezolva ambele probleme însă în
ordinea prioritaților de urgentare. Astfel după ce apar toate soluțiile care sunt propuse,
utilizatorul poate alege care este cea mai bună soluție pentru el. În cazul în care soluția
este aceea de a mer ge la service, aplicația îi oferă acestuia posibilitatea de a identifica cel
mai apropiat service față de locația acestuia actuală care are toate acreditările necesare
pentru al putea ajuta. Astfel va fi îndrumat cu ajutorul harții ce este incorporată în
aplicație.

– 52 –

4.11 Probleme înt âmpinate în dezvoltarea aplicației

Pe parcursul dezvolt ării aplicației, am întâmpinat numeroase constrângeri tehnice precum:
 În momentul în care se dorește autentificarea de pe același dispozitiv al unui alt utilizator
cu alt cont de Facebook este în mod obligatoriu necesar ă deconectarea de pe contul de
Facebook actual pentru a putea fi posibil ă autentificarea cu un alt cont.

 Aplicația nu poate fi folosit ă ca aplicație offline, fiind necesar ă conexiunea la internet.

 Utilizarea protocolului HTTPS afecteaz ă viteza de lansare fiind mai sc ăzută, faț ă de
viteza de lansare în momentul utiliz ării protocolului HTTP. HTTP este metoda cea mai
des utilizat ă pentru accesarea informațiilor în internet care sunt p ăstrate pe servere
WWW. Acesta ofer ă o tehnic ă de comunicare prin care paginile web se pot transmite de
la un calculator aflat la distanț ă spre propriul calculator. HTTP nu implic ă menținerea
nici unei informații de la o tranzacție la alta. De aceea serverul este degrevat de un
“efort” suplimentar pentru menținerea sesiunilor. Îns ă, un dezavantaj al acestui protocol
este faptul c ă nu putem identifica sesiunea de la o cerere la alta, mesajele neavând
informații ajutatoare. [20]

4.12 Extinderi viitoare ale aplicației

Ca și p osibilit ăți de extindere a aplicației pot fi:
 Aplicația va putea fi folosită și ca aplicație pe mobil.
 Functionalitățile aplicației pot fi extinse. Astfel încât pot fi adăugate mai multe
informații.
 În ceea ce privește harta service -urilor, aceasta poate fi extinsă pe mai multe orașe.
 Se poate extinde harta nu numai pentru service -uri specializate ci și pentru benzinarii în
cazul în care utilizatorul este atenționat că nu mai are suficientă benzină/motorină. În
cazul mașinilor electrice, harta va putea fi îmbunătățită cu benzinării care dețin priză de
alimentare pentru mașinile electrice cât mai aproape de locația utilizatorului.

– 53 –
 Aplicația va putea fi accesată direct prin bordul mașinii. Atunci când un martor se
aprinde, în bordul digital să genereze infor mațiile cu soluțiile posibile și prioritatea
problemei astfel încât să se diminueze timpul de căutare.
 Se va putea adăuga comandă vocală pentru aflarea soluțiilor în funcție de martorul
luminos din bordul mașinii utilizatorului.

– 54 –

Concluzii

În lucrarea d e față s -au realizat cercetări în domeniul auto pentru diagnosticarea și găsirea
soluțiilor rapide ale problemelor auto. În urma cercetarilor efetuate am observat că în zilele
noastre există site -uri ce oferă asistență tehnică prin forumuri și discuții cu proprietarii site -urilor.
Ca îmbunătățire lucrarea de față își propune:
 Crearea unei aplicații web ce conține o bază de date realizată prin comenzi SQL care să
conțină toate datele necesare și utile pentru o diagnoză completă si corectă. Această
diagnoză s e face pe baza simbolurilor de la bordul mașinilor și a erorilor indicate de
ecranul digital al mașinilor moderne.
 Crearea unei hărți cu service -uri disponibile ce pot fi astfel ușor de identificat de către
utilizatori pentru a le oferi acestora posibiliat atea de a rezolva problema cât mai rapid și
de a ajunge într -un timp cât mai scurt.
 Crearea unei aplicații web ușor de utilizat pentru toți utilizatorii de la cei mai tehnici până
la cei mai puțini tehnici.
 Să ofere cele mai bune și cele mai rapide soluții în analizarea soluțiilor legate de
problemele hardware si software auto.
 Implementarea unor metode diverse si eficiente de diagnosticare si de rezolvare a
problemelor auto pentru o gamă cât mai mare în ceea ce privește diversitatea de
mecanisme auto.
 Arhitectura serviciilor web ce vor fi folosite și create este de tip REST: resursele, diverse
fișiere, vor fi identificate prin URL, iar interfața comună este protocolul HTTP.
 Aplicațiile dezvoltate integrează mai multe servicii, hărți, direcții de navigare , oferirea de
date cu caracter informativ, într -o singură aplicație. Astfel se reduce timpul de căutare,
rezultatul obținut fiind disponibil imediat.

Această aplicație urmărește facilitarea rezolvării problemelor autoturismelor pentru utilizatorii
acestor a.
Este un produs software inovator deoarece se adresează unei piețe mai puțin exploatate în
momentul actual. Aplicația este dezvoltată folosind tehnologii Microsoft de actualitate: SQL
Management Studio și Visual Studio.

– 55 –

– 56 –

Similar Posts