Udrea Emanuel Sistem Integrat

download Udrea Emanuel Sistem Integrat

of 93

Transcript of Udrea Emanuel Sistem Integrat

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    1/93

    Universitatea Politehnica BucuretiFacultatea de Automatic i Calculatoare

    Sistem Integrat pentruManagementul unei Companii

    Conductor tiinific:Sl. Dr. Ing. Mdlin Vlad

    Absolvent:Udrea Emanuel

    Bucureti2009

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    2/93

    1

    Cuprins

    Cuprins......................................................................................................................1

    1. Introducere............................................................................................................3

    1.1 Definirea problemei ........................................................................................4

    1.2 Scopul proiectului...........................................................................................4

    2. Tehnologii i nouti n domeniu...........................................................................5

    2.1 World-Wide Web n ziua de azi .....................................................................5

    2.1.1 HTML....................................................................................................6

    2.1.2 CSS ........................................................................................................7

    2.1.3 Web 2.0..................................................................................................9

    2.2 Programare server side.................................................................................13

    2.2.1 Hypertext Preprocessor (PHP) ............................................................13

    2.2.2 SQL......................................................................................................14

    2.2.3 Apache .................................................................................................16

    2.3 Programare client side..................................................................................21

    2.3.1 Javascript.............................................................................................21

    2.3.2 Javascript asincron i XML (AJAX)....................................................242.4 Securitatea aplicaiilor web ..........................................................................30

    2.4.1 Validarea mai sigur a datelor din formulare.......................................30

    2.4.2 mbuntirea securitii sesiunilor......................................................31

    2.4.3 Asigurarea securitii SQL...................................................................32

    2.4.4 Criptarea i securitatea bazelor de date ............................................... 33

    3. Analiza i proiectarea aplicaiei...........................................................................35

    3.1 Descrierea cazurilor de utilizare ................................................................... 35

    3.2 Alegerea modelelor de dezvoltare ................................................................. 38

    3.3 Nucleul aplicaiei..........................................................................................403.4 Modulele aplicaiei .......................................................................................42

    3.5 Seciunea Utilizatori.....................................................................................43

    3.5 Seciunea multilingvistic.............................................................................43

    3.5 Descrierea unor moduri de lucru .................................................................. 44

    3.6 Mrirea nivelului de abstractizare................................................................50

    3.7 Portarea modelului aplicaiei........................................................................52

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    3/93

    2

    4. Instalarea aplicaiei .............................................................................................53

    4.1 Configurarea aplicaiei .................................................................................53

    4.2 Descrierea componentelor.............................................................................54

    4.4 Descrierea managementului aplicaiei...........................................................55

    4.3 Gzduirea aplicaiei web ..............................................................................56

    4.3.1 Alegerea unei companii de gzduire web..............................................56

    4.3.2 Crearea bazei de date pe serverul de gzduire......................................57

    4.3.3 Copierea aplicaiei pe serverul web ......................................................59

    5. Prezentarea aplicaiei .......................................................................................... 61

    5.1 Elemente de configurare ...............................................................................61

    5.2 Conectarea la baza de date ..........................................................................62

    5.3 Autentificarea n aplicaie ............................................................................62

    5.4 Administrarea utilizatorilor..........................................................................64

    5.5 Meniuri, navigare i interfaa cu utilizatorul................................................655.5.1 CSS Sprite............................................................................................66

    5.5.2 Roll over offect.....................................................................................67

    5.5.3 Ajax loading effect ...............................................................................69

    5.5.4 Design-ul aplicaiei...............................................................................70

    5.6 Descrierea unor moduri de lucru .................................................................. 73

    5.7 Suport multilingvistic...................................................................................77

    5.8 Baza de date.................................................................................................79

    5.9 Structura directoarelor i a fiierelor ............................................................82

    6. Dezvoltri ulterioare............................................................................................84

    6.1 Evoluia tehnologic.....................................................................................84

    6.2 Extinderea funcionalitilor ........................................................................85

    7. Concluzii..............................................................................................................87

    Bibliografie..............................................................................................................89

    Index figuri..............................................................................................................91

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    4/93

    3

    Capitolul 1Introducere

    Astzi Internetul i n general univertsul IT a ptruns mai mult ca niciodat nviaa noastr, mbogind-o cu fiecare link accesat, cu fiecare email primit.

    Depinde n totalitate de noi cum vom folosi acest cadou pentru a ne bucura devia i a mbogi i pe alii cu experiene placute i interesante.

    Internetul deschide noi oportuniti de a pstra i mbogi relaiile dintreoameni, iar lumea computerelor devine mai abordabil i mai puin glacial prinprisma aplicaiilor ei. Aceast lucrare se dorete a fi de asemeni o dovad amodului n care putem folosi tehnologia pentru a da un plus de valoare relaiilorinterpersonale i a optimiza n acest mod i procesele business.

    n domeniul afacerilor, fiecare lucru fcut n exces, orict de mic ar prea la o

    prim analiz, poate fi vital. Acel lucru mrunt poate cpta o importansporit n coroborare cu celelalte elemente i astfel s fac diferena ntre locul Ii II. De cele mai multe ori, a fi locul II este pur i simplu insuficient.

    Lucrarea de fa vine n sprijinul acestei idei prin combinarea i extindereaconceptelor de CRM (Customer Relationship Management) i CMS (ContentManagement System) i a modului n care o astfel de abordare tehnologic arelaiei cu partenerii de afaceri poate mbuntii legturile cu acetia i, implicit,volumul vnzrilor.

    Dezvoltarea continu a internetului i creterea masiv a numrului de persoanecare interaconeaz online a determinat un interes masiv n acest domeniu nultimii ani. Privit prin prisma potenialului imens de expunere comercial a unuiprodus sau companii sau din punctul de vedere al ratei de cretere, circulaie i

    mprosptare a informaiei, web-ul reprezint n acest moment locul ideal depublicare a diverselor tipuri de informaii disponibile.

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    5/93

    4

    Scopul aplicaiei prezentate n aceast lucrare este dezvoltarea unei platformeexhaustive de publicare a unor resurse simple. Prin utilizarea unor paradigme dedesign al interfeei, se intenioneaz oferirea unei platforme utilizabile de ctreoricine, indiferent de cunotinele web dobndite, o platform cu un foarte scurttimp de nvare i un cost redus de mentenan.

    1.1 Definirea problemei

    Accesul la informaie precum i controlul acesteia este mai important ca oricnd,i cu att mai mult n lumea afacerilor unde situaiile de criz se succed mult mairapid i de cele mai multe ori cu repercursiuni mult mai dure. Prin urmare aparenecesitatea existenei unei aplicaii care s satisfac necesitile unei companii(tratarea i fidelizarea clienilor, uurina folosirii i nvrii, managementulstocurilor, chitanelor, facturilor etc.) ntr-un cadru securizat i de maxim

    ncredere.

    1.2 Scopul proiectului

    Acest proiect dorete a fi o soluie viabil la problema firmelor de a i pstraclienii n portofoliu, fidelizndu-i, de a obine ali clieni prin recomandrile celordeja existeni, i, n acelai timp, de a avea o imagine clar, de asamblu, atendinei pieii, mai exact a ceea ce i dorete un client n general, i, nu n

    ultimul rnd, a modului n care angajaii se ocup de problemele clienilor iinsufl filosofia firmei prin aciunile lor.

    O asemenea aplicaie dorete s uureze, i, mai important, s mbunteascmunca personalului de marketing prin standardele care le-ar impune. n acelaitimp ar restrnge procentul de erori umane la un minimum acceptabil prinnepermiterea abaterii de la un set de reguli simple, uor de urmat i uor deverificat.

    Astfel, personalul ar ti n permanen ce anume trebuie s ntrebe i ce anumes i spun clientului, indiferent de experiena sa anterioar. Procedurile deverificare a randamentului angajailor permit supervizorilor s fie n permanentalert privitor la calitatea sprijinului acordat de ctre acetia clienilor.

    Delegarea de sarcinii se face astfel i cu ntiinarea unei/unor persoane decontrol, astfel c eventualele erori de comunicare ntre departamentul demarketing i clieni s fie prentmpinate cu succes, sau, n caz de conflict,abordate cu profesionalism de ctre personalul avizat n luarea unor astfel dedecizii.

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    6/93

    5

    Capitolul 2

    Tehnologii i nouti n domeniu

    2.1 World-Wide Web n ziua de azi

    Foarte des ntlnit pe Internet, acronimul www vine de la World Wide Web.Iniial,www (sau web) a fost conceput pentru a permite fizicienilor s comunicerezultatele experimentelor desfurate de fiecare. n 1989 o echip de cercettoride la Laboratorul European de Fizic a Particulelor din Elveia a elaborateprimele standarde pentru mediul World Wide Web. Unul dintre cele maiimportante elemente a fost hiper-legtura, o bucat dintr-un document onlinecare ghideaz utilizatorul, n momentul utilizrii ei, ctre un alt document online.

    Un alt moment important n istoria Internetului s-a desfurat n 1992, cnd

    programatorii de la National Center of Supercomputing (NCSA) de laUniversitatea din Illinois au realizat browserul Mosaic, un program care arta nudoar textul unui document web, dar i elementele grafice incluse n acesta.

    Astzi exist o mare diversitate de browsere pentru aproape toate computereleutilizate: Internet Explorer, Mozilla, Opera, Netscape, Amaya, Lynx, Safari.Hipertextul i elementele multimedia sunt cele mai importante dou aspecte aleInternetului. Un alt avantaj este dat de faptul c www este construit pe bazaunor standarde publice care permit accesibilitatea vizualizrii paginilor peaproape orice computer care are o conexiune la Internet i un browser. Pentru aaccesa informaia, tot ceea ce trebuie fcut este un click pe o hiper-legtur. Esteatt de simplu.

    Postarea informaiilor pe Internet prezint un set impresionant de avantaje. nprimul rnd aceast metod de publicare este mult mai ieftin dect metodelealternative. Mai mult dect att, un document web poate fi citit i actualizat laorice moment.

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    7/93

    6

    World Wide Web ofer o gam larg de posibiliti de conectare la Internet. Pescurt, oricine folosete un computer se poate conecta la Internet. Informaia estetransmis n format ASCII, far un mecanism intern de codificare n cod main.Necesarul tehnic al clientului este minimal, de fapt Internetul nsui nu are niciunstandard legat de cum ar trebui un browser s funcioneze i astfel s-au dezvoltat

    tipuri multiple de browsere pentru mai multe Sisteme de Operare. Este greu sne imaginm astzi c Internetul a fost conceput pentru a trimite pagini simple,text, cu poze i linkuri incluse n ele.

    Povestea ultimilor 20 de ani ai programrii Internetului este cea a unui efortcolosal de a oferi sofisticare i complexitate utilizatorului, fr a contraziceregulile www care necesit o simplitate extrem de realizare a paginilor web.Utilizatorul ateapt o experien pe Internet ct mai apropiat de aceea afolosirii aplicaiilor desktop, dar un astfel de nivel de complexitate nu a fost uorde implementat n mediul web, dat fiind complexitatea sa minimal.

    Web-ul face un singur lucru: ofer informaii. Dac avem informaii despre cevaanume, putem s le mprtim lumii prin crearea unui website. Pe parcursuldezvoltrii site-ului, putem da peste dou tipuri de probleme: site-ul nostru areatt de mult informaie nct vizitatorii nu pot gsi rapid ceea ce caut ivizitatorii vor s ofere informaii;

    Ambele probleme pot fi soluionate prin crearea unei baze de date pe un website.Bazele de date se regsesc peste tot n www. Google, Yahoo! i eBay sunt baze dedate. Amazon.com este o baz de date uria cu milioane de cri, CD-uri i alte

    produse.

    2.1.1 HTML

    HTML (HyperText Markup Language) este limbajul folosit de aplicaiile de tipbrowser Internet pentru a recunoate i a prezenta structura unei pagini web.Realizarea unui pagini web presupune cunoaterea limbajului HTML. Acesta esteun limbaj de marcare, introdus de Tim Berners-Lee. Numeroase tutoriale deHTML se gsesc pe Internet, cele mai utile fiind ns cele bazate pe exemple

    concrete, coninnd articole despre frames (cadre), metatag-uri, inserarea deimagini i de fiiere sonore.

    n plus, exist i articole despre tabele, care joac un rol important n paginaweb: tabele simple (tag-urile table, td, td, th) precum i tabele complexe(atributele colspan, rowspan .a.m.d.). Etapa de proiectare a unui site web,promovarea acestuia, upload-ul, webhosting-ul sunt de asemeni tratate nnumeroase articole de pe blogosfer.

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    8/93

    7

    2.1.2 CSS

    CSS (Cascading Style Sheets) este limbajul de programare folosit pentrudescrierea prezentrii unui document structurat. Un document structurat esteacel document ale crui seciuni sunt definite clar i sunt categorizate. Un

    program de genul CSS poate prezenta un document n diverse stiluri deoarececoninutul a fost categorizat. CSS este utilizat pentru stilizarea documentelorscrise n limbaje precum HTML, XHTML, SVG, XUL i numeroase altele.

    Unul dintre cele mai atractive aspecte ale documentelor structurate este acela datde posibilitatea reutilizrii coninutului n diverse contexte i prezentrii acestuia

    n diverse metode. Diverse stiluri pot fi ataate structurii logice pentru a produceprezentri diferite.

    Pentru a fi prezentat coninutul din documentele structurate trebuie aplicat unset de reguli de stil descriind, spre exemplu, culori, fonturi i moduri de aezare

    n pagin. O colecie de reguli din acestea de stil este numitfoaie de stil.

    Foile de stil n forma documentelor scrise au o lung istorie, fiind folosite deeditori i de tipografi pentru a asigura consistena prezentrii, a scrierii corecte acuvintelor i a punctuaiei. n publicaiile electronice foile de stil sunt folosite maimult pentru vizualizarea prezentrii i mai puin pentru celelalte aplicaii ale lor.

    Exist trei elemente de baz ale unei pagini web dinamice moderne: coninutuleste administrat prin utilizarea limbajului HTML, modul de prezentare a acestuia

    i revine CSS-ului, JavaScript rmnnd s se ocupe de comportarea dinamic i

    de interaciunea paginii web cu utilizatorul.

    Prima specificaie CSS, CSS1 a fost recomandat n 1996 de W3C, i includeaproprieti pentru controlul elementelor tipografice, precum cea a fonturilor,alinierii textului, spaierea, marginile i a formatarea listelor; permitea deasemeni designer-ului s specifice dimensiunea cutiilor de tip block i s ncadrezecutiile cu margini. Totui, cnd venea vorba de aezarea n pagin i de design,CSS1 nu avea prea multe de oferit, putnd specifica culorile de fundal i celeutilizate pentru text, precum i pozele de fundal. Permitea de asemeni stabilireade cutii plutitoare la stnga i la dreapta i poziionarea de text n jurul acestora.

    CSS2 a aprut n 1998 i coninea o mulime de opiuni mult dorite de ceva timpde designeri. Cutiile puteau fi fcute s se comporte ca celulele tabelelor dinHTML, sau puteau fi poziionate n diverse moduri, selectori mai puterniciputeau fi utilizai, stilurile puteau fi importate n alte stiluri, regulile de stilputeau fi specificate pe anumite tipuri de elemente media i multe alte opiuni deacest gen. S-au fcut mari optimizri i n direcia printrii i generrii deconinut pornind de la o foaie de stil.

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    9/93

    8

    Cum s-a observat mai trziu, unele pri ale CSS2 erau foarte greu deimplementat, iar W3C a decis s revizuiasc specificaiile i s le adapteze lasituaiile concrete din realitate. Majoritatea opiunilor speciale pentru elementelede tip media au fost anulate. Crearea coninutului generat a fost restrns lapseudoelementele :beforei :afteri s-au pus de asemenea restricii privitoare la

    cum poate fi prezentat coninutul generat.

    Sintaxa CSS nu este rigid: spaiile albe pot fi de obicei adugate farrepercursiuni ntre elementele de sintax, iar ntreruperile de linie nu au valoaresemantic. CSS este insensibil la modul n care scriem, cu litere mici sau mari.Totui, unele lucruri nu depind de acesta i pot sau nu fi tratate diferit n funciede cum sunt scrise, de limbajul de marcare i de sistemul de operare folosit.

    Numele tipurilor elementelor, spre exemplu, sunt insensibile la modul de scrieren limbajul HTML, dar sensibile pentru XML(incluznd i XHTML servit ca

    XML). Numele de fonturi, cu excepia cuvintelor generice folosite n CSS, pot ficazuri sensibile pe unele sisteme de operare.

    Pentru clarificarea unor elemente de baz de nomenclatur, n figura de mai joseste prezentat un exemplu simplu de descriere de stil de tip CSS:

    Figura 1. Descrierea unui stil n CSS

    Limbajul CSS este astfel deosebit de util pentru a oferi claritate i consistenprezentrii unei pagini web. Din pcate nc exist incompatibiliti ntre modulde interpretare a stilurilor CSS de ctre diverse browsere Internet, aa numiteleCSS bugs. Aceasta se traduce direct n costuri suplimentare aduse programriiCSS, fiind necesare testri cross-browsing, adic testarea stilurilor pe mai multetipuri de browsere, i, din pcate, de cele mai multe ori crearea unui stil specialpentru fiecare browser care ar putea accesa respectivul document.

    La ora actual exist o concuren acerb ntre motorul de rendare MozillaGecko, WebKit folosit n browserul Safari de la Apple, motorul similar KHTMLutilizat n browserul KDE Konqueror, Presto Layout Engine de la Opera, fiecaredintre ele lider n diverse aspecte legate de CSS.Din 2007, motorul Trident de laIE rmne cel mai slab la rendarea css-urilor, lucru judecat de W3C. Anul acestInternet Explorer 8 a fixat multe din neajunsurile acestea i rendeaz CSS2.1.

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    10/93

    9

    Aproape c trece i testul ACID2, unde celelalte browsere, Mozilla Firefox, Opera9 sau safari se comport mult mai bine.

    2.1.3 Web 2.0

    Articolul lui Tim O'Reilly What Is Web 2.0 - Design Patterns and Business

    Models for the Next Generation of Software, aprut n septembrie 2005, este unuldin articolele de baz, ce fundamenteaz conceptele Web 2.0.

    Tim O'Reilly explic faptul c termenul de Web 2.0 a aprut n 2004, n timpulunui brainstorming ntre O'Reilly Mediai MediaLive International, n pregtireaorganizrii unei conferine legate de Web. n cutarea numelui, organizatorii auremarcat c n ciuda colapsului .com, o serie de aplicaii web noi, apar curegularitate, caracterizate prin colaborarea utilizatorilor la crearea coninutului.

    Tabelul de mai jos, prezentat n articol i discutat la brainstorming, conineperechi de aplicaii similare, cu implementri caracteristice web1.0 i web 2.0:

    Web 1.0 Web 2.0DoubleClick Google AdSense

    Ofoto Flickr

    Akamai BitTorrentmp3.com Napster

    enciclipedii dedicate Wikipediasite-uri personale blogging

    clasificare dup calitatea domeniului Optimizare motoare de cutare

    publicitate la numrul de afiari publicitate pe aciune (click)screen scraping web services

    coninut prin publicare coninut prin participare

    content management systems wikisarhviare tip director arhivare tip etichete

    stickiness syndicationFigura 2. Tabel celebru privind evoluia internetului

    Web 2.0 poate fi caracterizat prin: include o palet foarte larg de aplicaii i servicii care folosesc Web-ul caplatform unitar i organizat de comunicare; este construit pe baza unei arhitecturi care ncurajeaz participarea activ autilizatorilor; permite interaciunea facil ntre utilizatorii care au aceleai interese; ofer utilizatorilor posibilitatea de a produce coninut, de a-l partaja cu alii,deci o mai puternic interactivitate;

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    11/93

    10

    o experien mult mai apropiat de aplicaiile desktop, cu interfee graficeintuitive, plcute, programabile i, mai ales, transparente; faciliteaz accesul public la baze de date, prin API-uri; are abilitatea de a conecta ntre ele diverse aplicaii sau servicii i de a agregadate din diverse surse - RSS, bloguri;

    vorbete despre: socializarea informaiei - un concept despre aplicaii ioameni; apariia instrumentelor colaborative de genul wiki-urilor, a platformelorde socializare ca MySpace, Hi5, LinkedIn sau Second Life, a blogurilor, astructurilor de comunicare de date i documente, a coleciilor de bookmarkuri (cadel.icio.us sau Digg), de clipuri video (YouTube, Metacafe, DailyMotion) sau deimagini (Flickr, Picassa) etc.; o sindicalizare - RSS i structuri de taguri: eliminarea clasificrilor tip arborei aplicarea de etichete astfel nct un anumit lucru nu mai e strict descendentdintr-un altul ci poate face parte din mai multe categorii; creterea uzabilitii mbuntirea experienei utilizatorilor, coninutului idistribuia acestuia (coninut creat de utilizatori i distribuit liber; folosete puterea comunitilor de internaui; indic o schimbare de paradigm n ceea ce privete Web-ul.Termenii caracteristici Web 2.0 apar n imaginea de mai jos Web2.0 extendedmindcloudmap, publicata de Markus Angermeier la flickr; notele pe imagineconduc la diferite aplicatii.

    Figura 3. Tag cloud: Universul Web 2.0 - cuvinte cheie

    Denumirea de Web 2.0 reprezint a doua etap n dezvoltarea www i nglobeazutilitarele i serviciile lui. Multe din tehnologiile i conceptele dezvoltate n

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    12/93

    11

    trecutul apropiat le putem include aici, de exemplu: bloguri, podcast, RSS, wiki,sisteme de bookmark colaborativ, LoL (publicate de ctre muli pentru muli),web APIs, servicii web online, Ajax, Ruby on Rails, etc.Imaginea de mai jos ofer o perspectiv asupra noilor tehnologii i momentulapariiei a fost publicat n septembrie 2006 de Jrgen Schiller Garca n

    nsemnarea Web 2.0 Buzz Time Bar din blogul Scill web2.0 repository; suntmulte referiri la imagine n articole despre Web 2.0.

    Figura 4. Distribuia Web 2.0 n viaa de zi cu zi

    Despre Web 2.0, partizanii momentului tehnologic actual spun c: este mai degrab o noua viziune asupra Web-ului dect o tehnologie; este mai mult o atitudinedect o tehnologie; este un fenomen cultural, mai mult dect unul tehnic; este un termen de marketing; este un nou val de tehnologie avansat; este un amalgam logic de tendine; un Internet la ndemna oricui.Dac totui ar trebui s facem o descriere a Web 2.0, atunci aceasta se regsete

    n principalele sale trsturi latura social, aspectul interactiv si ingredientelesale de baz: coninutul postat de utilizator, aplicaia n sine i indexareainformaiilor.

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    13/93

    12

    Printre marii jucatori care au implementat aceast tehnologie se numar: Microsoft; Amazon; Yahoo: aplicaia de webmail Yahoo!MailBeta, marcare social del.icio.uscumparat n decembrie 2005, partajare fotografii Flickr cumprat n martie2005, portal personalizat my.yahoo.com, Yahoo Instant Search, .a.m.d.; Google care, la nceputul anului 2005, prin folosirea Ajax-ului, a introdus pescar larg versiunea 2.0 a Web-ului n aplicaiile sale: GMail, Google Calendar,Google Google Docs & Spreadsheets lansat la 10 octombrie 2006, dupa ce n 9martie, Writelyfusese cumprat, Google Reader, Google Scholar, Google Suggest depit ns n performane de SurfWax LookAhead, Google Book Search,Blogger, YouTube cumprat n octombrie 2006, Google Maps, etc.

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    14/93

    13

    2.2 Programare server side

    2.2.1 Hypertext Preprocessor (PHP)PHP este un limbaj de programare ce ofer dinamism paginilor web. Este unul

    din cele mai importante limbaje de programare web open-source i server-side.Numele PHP provine din limba englez i este un acronim recursiv: PhpHypertext Preprocessor.

    Exemple faimoase de aplicaii web care utilizeaz acest limbaj sunt Wordpress,Blogger (blogging i pagini personale), PhpBB(forumuri de discuii), PhpNuke,Joomla (Content Management Systems), Phpld, ESyndicat (directoare web),MediaWiki(engine pentru Wikipedia).

    Creterea masiv a numrului programatorilor PHP a condus la includerea n

    mediilor de dezvoltare ale giganilor internetului precum Yahoo, Google,Microsoft, Adobe, Amazon etc. a unor API-uri special create pentru ainteraciona cu PHP.

    Folosirea PHP poate fi vzut ca o alternativ gratuit la utilizarea unor limbajecomerciale precum ASPde la Microsoft, ColdFusionde la Macromedia, sau chiarJSPde la Sun Microsystems.

    PHP a fost nceput n 1994 ca o extensie a limbajului server-side Perl, i apoi deo serie de CGI-uri compilate de ctre Rasmus Lerdorf. Pe 18 iunie 2008 a fostlansat ultima versiune stabil, PHP 5.2.10. ncepnd cu versiunea 5.2 datoritincluderii modulului Zend Engine II, acest limbaj de programare s-a bucurat deun suport puternic pentru OOP, zon neexplorat pn n acel moment i careera considerat veriga lipsa a PHP.

    Popularitatea de care se bucur acest limbaj de programare se datoreazurmtoarelor caracteristici: familiaritatea sintaxa limbajului este foarte uoar combinnd sintaxeleunora din cele mai populare limbaje, Perli C;

    simplitatea sintaxa limbajului este destul de liber; nu este nevoie deincludere de biblioteci sau de directive de compilare, codul PHP inclus ntr-undocument executndu-se ntre marcajele speciale; eficiena folosete mecanisme de alocare dinamic a resurselor, un lucruextrem de important n mediile multi-utilizator, aa cum este web-ul; securitatea pune la dispoziia programatorului un set flexibil i eficient demsuri de siguran;

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    15/93

    14

    flexibilitatea fiind aprut din necesitatea dezvoltrii web-ului, PHP a fostmodularizat pentru a ine pasul cu dezvoltarea diferitelor tehnologii; nefiind legatde un anumit server web, PHP-ul a fost integrat pentru numeroasele servere webexistente: Apache, IIS, Zeusetc.; gratuitatea este probabil cea mai important caracteristic a PHP-ului;dezvoltarea PHP-ului sub licen open-sourcea determinat o adaptare rapid lanevoile web-ului, eficientizarea i securizarea codului i rspndirea de proporii.

    2.2.2 SQL

    Structured Query Language, sau prescurtat, SQL, are o istorie care a nceput nlaboratoarele IBM din San Jose, unde limbajul a fost dezvoltat n ultimii ani aideceniului opt. SQL este un limbaj neprocedural. SQL este ceea ce face funcional

    un sistem de gestiune a bazelor de date relaionale. Pentru majoritatea sistemelorde administrare a bazelor de date relaionale, acest limbaj este SQL.

    Structured Query Language (SQL limbaj structurat de interogare) estelimbajul standard de facto folosit pentru manipularea i regsirea datelor dinaceste baze de date relaionale. Utiliznd SQL, un programator sau unadministrator de baze de date poate face urmatoarele lucruri: s modifice structura unei baze de date; s schimbe valorile de configurare pentru securitatea sistemului; modifice drepturi utilizatorilor asupra bazelor de date sau asupra tabelelor; interogheze o baz de date asupra unor informaii actualizeze coninutul unei baze de dateCel mai bun exemplu pe care l tim despre cum arat o baz de date este undocument Microsoft Excelcu rndurile i coloanele aferente. La fel ca i n Excelse pot face calcule, sortri, adunri i chiar mai mult... MySQL este cel maipopular sistem de management pentru baze de date relaionale deoarece esteopen-source. ntr-o baz de date relaional datele sunt stocate n mai multetabele separate, fiind astfel mbuntit viteza i flexibilitatea. Tabelele pot filegate ntre ele prin relaii definite de proiectantul bazei de date, fiind astfel

    posibile combinri la cerere de date din mai multe tabele. SQL

    Pentru a ne putea face o baz de date trebuie ca serverul MySQL s fie pornit.n continuare va trebui s folosim o aplicaie cu ajutorul creia s comunicm cuserverul. Aplicaia se numeste mysql.exei se gsete n c:\mysql\bin\. Pentru arula, din prompul so scriem: c:\mysql\bin\mysql.exe -p -u rootiar cnd ni se cereparola apsm enter(sau scriem parola dac am introdus la instalare vreuna).

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    16/93

    15

    Dac serverul nu este pornit vom primi mesajul de eroare Can't connect toMySQL server on localhost. n cazul de fa am optat pentru utilizarea aplicaieiEasy PHP, care administrez fr intervenia noastr serverul de MySQL.

    Dei MySQL are suport pentru diacritice i setul de caractere 8859-2, este

    preferabil s nu folosim diacritice n numele bazelor de date, a tabelelor sau acmpurilor. De asemeni, nu putem folosi ca nume de tabel sau de cmp cuvinterezervate (nume de funcii, tipuri de caractere din MySQL precum create, dropsau column). Se pot folosi nume de tabele care conin spaii dar n practictrebuie s ncadrai numele ntre back-ticks` (semul pe care l localizm pe tastaaflat imediat sub escapei nainte de 1). Exemplu:

    CREATE TABLE `tabel al carui nume are spatii` (`camp 1`, TEXT);SHOW COLUMNS FROM `tabel al carui nume are spatii`;

    Semnul * este definit n MySQL ca nsemnnd tot/toate. Semnul % este folosit n

    interogrile MySQL dac vrem s gsim cuvntul oriunde n cadrul textului. Maiexact:

    %cuvant_cautat - dac vrem s afieze toate cuvintele care se termin n'cuvntul_cutat'(pot fi i cteva caractere); cuvnt_cutat%- afieaz toate cuvintele care ncep cu 'cuvntul_cutat'; %cuvant_cautat% - afieaz toate cuvintele care conin 'cuvntul_cutat'oriunde n text.

    Putem afla cte nregistrri sunt pentru un criteriu de selecie cu ajutorul lui

    count(). Putem afla astfel cte nregistrri sunt n total n tabel sau ctenregistrri sunt n tabel al cror cmp este cel cutat...

    Cu ajutorul instruciunii group by putem grupa rezultatele astfel nct s nuvedem duplicatele. Pentru a limita numrul de rezultate folosim instruciunealimit. Dac avem 10.000 de nregistrri i nu dorim s vedem dect primele 3,folosim limit 0,3(adic de la prima nergistrare afieaz 3 nregistrri) sau limit10,5(afieaz ncepnd de la nregistrarea 10 nc 5 nregistrri).

    Pentru tergerea nregistrrilor dintr-un tabel se folosete comanda delete. Pentru

    tergerea unui tabel sau a unei baze de date comanda este drop. Comanda updatese foloeste cnd vrem s modificm coninutul unei nregistrri fr a o terge.Dac dorim s schimbm structura unui tabel existent sau s adugm altecoloane folosim comanda alter table.

    Indeci cel mai folosit tip de index este id. Id-ul este un numr unic deidentificare pentru un element distinct (un rnd) al unui tabel. Un exemplu de iddin viaa real este numerotarea cd-urilor. Cnd avei un cd nou l numerotai i

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    17/93

    16

    l punei n raft la sfrit, iar n catalog putei s l punei sortat dupa titlu saudup numrul de ordine. La fel i ntr-o baz de date, putei crea un cmp cares introduc automat un numr pentru fiecare rnd nou adugat n baza de datei la afiare putei s l folosii (de exemplu la vizualizarea ultimilor 10 vizitatorifolosii id-ul). n continuare vom prezenta comenzile utilizate pentru crearea unui

    index. S presupunem c avem o baz de date numit listcu un cmp casetiadugm cmpul id_casete comanda este urmtoarea:

    ALTER TABLE `caseta` ADD `id_caseta` INT;ALTER TABLE `caseta` CHANGE `id_caseta` `id_caseta` INT(11)

    UNSIGNED NOT NULL;ALTER TABLE `caseta` ADD PRIMARY KEY (id_caseta);ALTER TABLE `caseta` CHANGE `id_caseta` `id_caseta` INT(11)

    UNSIGNED DEFAULT "0" NOT NULL AUTO_INCREMENT;

    Din acest moment, orice caset nou introdus va avea automat un numr deordine. Este posibil ca toat niruirea de comenzi de mai sus s se poata face

    printr-o singur linie de cod, dar este mai sigur s facei cte o modificare nparte dect toate odat, pentru a detecta eventualele erori. Este bine s creai unid la nceputul tabelului, cnd nu avei ntrri n baza de date, pentru a faceincrementarea automat, altfel e posibil s v dea erori. Cu ajutorul id-ului puteiafia de exemplu noutile, cu o comand de genul - afieaz ultimele 10 intrrisortate dup id tiind c ntotdeauna ultima intrare are numarul cel mai mare...

    MySQL stocheaz fizic datele unui tabel ntr-un fiier pe hard disc i cu cttabelul este mai mare, cu att mrimea acestui fiier va crete. Versiunea 3.22 aMySQL are o limit de 4 GB pentru mrimea unui tabel. n versiunile superioare

    aceast limit este extins pn la 8 milioane TB pentru tipul de tabel MyISAM.Cu toate acestea, sistemele de operare pot avea propriile limitri ale mrimiifiierelor. Mrimea impicit a tabelelor MySQL este de aproximativ 4 GB. Puteiverifica mrimea maxim pentru un tabel cu ajutorul comenzilor show tablestatus sau myisamchk -dv table_name. Pe platforma Windows va trebui sfolosim sistemul de fiiere NTFS dac dorim s avem tabele mai mari de 4 GB.

    2.2.3 Apache

    Apache este un server HTTP flexibil, care implementeaz ultimele protocoale,fiind foarte configurabil, extensibil cu module strine i care ofer codul surscomplet. Apache este gratuit, avnd o licen nerestrictiv. Ruleaz pe sistemeWindows, Netware, OS/2 i aproape toate versiunile de UNIX. ncurajeazutilizatorii pentru a veni cu idei noi, reportri de bug-uri i ofer pachete pentru

    mbuntiri.

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    18/93

    17

    Serverul HTTP Apache poate fi descrcat gratuit de pe Internet de la adresahttp://httpd.apache.org, unde se mai pot gsi documentaii i toate informaiilenecesare utilizrii i configurrii.

    Principalele diferene ntre vesiunile Apache pentru cele mai des folosite sistemede operare, Windows i Unix, sunt: deoarece Apache pentru Windows este de tip multithread, nu folosete unproces separat pentru fiecare cerere, aa cum face Apache sub Unix. n modcurent, sunt doar dou procese Apache care ruleaz, un proces printe i un copilcare se ocup de cereri. n interiorul procesului copil, fiecare cerere estecontrolat de un thread separat. directivele care accept ca argument nume de fiier trebuie s foloseascnumele de fiier din Windows. Dar, deoarece Apache folosete intern nume de tip

    Unix, trebuie folosit slash n loc de backslash; Apache pentru Windows poate ncrca modulele la runtime, fr recompilareaserverului. Dac Apache este compilat manual, va instala unele module opionale

    n directorul modules. Pentru activarea acestora trebuie folosit directiveLoadModule. Apache pentru Windows versiunea 1.3 este implementat cu apeluri sincrone.Aceasta este o problem pentru autorii de scripturi CGI, care nu vor vedearezultatele de tip unbufferedtrimise imediat la browser; Apache poate ncrca extensiile ISAPI, ca cele folosite de Microsoft IIS.Apache nu poate ncrca filtrele ISAPI; La rularea scripturilor CGI, metoda folosit de Apache pentru a gsiinterpretorul pentru scripturi este configurabil folosind directiveScriptInterpreterSource.

    Dac este instalat pe sistemul de operare Windows, Apache-ul este rulat n modnormal ca un serviciu pe Windows NT, Windows 2000, Windows XP sau ca oconsol de aplicaie pe Windows 98. n sistemele de operare Microsoft Windowsexist dou posibiliti n care poate fi rulat Apache ori ca un serviciu: aceastaeste cea mai bun opiune dac se dorete ca Apache s porneasc automat la

    pornirea Windows ori dintr-o fereastr de consol: nchiderea acestei ferestre vaduce la nchiderea Apache.

    Pentru a porni Apache ca un serviciu, trebuie mai nti instalat ca un serviciu.Aceasta se face prin selectarea la instalare a opiunii Install as Service for AllUsers. Astfel, serviciul va aprea n lista de servicii din Windows. Dup pornirea

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    19/93

    18

    serviciului Apache, acesta va aprea n lista de procese active, cu denumirea deapache.exe.

    n Unix programul httpdeste executat ca un daemon care se execut continuu nbackground i se ocup de cereri. Dac portul specificat n fiierul de configurareeste lsat pe default, adic pe portul 80, atunci este necesar s avem privilegii deroot pentru a putea porni Apache. Odat pornit, serverul va executa ctevaactiviti preliminare i apoi va lansa n execuie procese fii care practic ascultorice cerere venit de la clieni. Primul lucru pe care l face httpd cnd esteinvocat este s citeasc fiierul de configurare httpd.conf.

    Ca o alternativ la invocarea httpd, este pus la dispoziia administratorilorscriptul shell apachectl, controlnd procesul daemon cu comenzi simple caapachectl startsau apachectl stop. n mod implicit, Apache folosete portul 80(dac nu s-au schimbat directivele Port, Listensau BindAddressdin fiierele de

    configurare). Pentru conectarea la server i accesarea paginii de start se deschideurmtorul URL ntr-un browser de Internet: http://localhost/. n cazul n careserverul este instalat i configurat, va fi afiat o pagin de start i un link ctremanualul cu documentaii Apache. Dac exist o eroare, va fi creat o

    nregistrare n fiierul error.logdin directorul logs.

    Deoarece Apache nu poate folosi acelai port cu o alt aplicaie TCP/IP, estenevoie s fie oprite sau dezinstalate unele servicii (anumite servere web, anumiteaplicaii firewall). Configurarea Apache se face prin modificarea directivelor dinfiierul httpd.conf. Pe lng acest fiier mai exist alte dou fiiere, access.confi

    srm.conf, dar acestea sunt mai vechi i nu mai sunt folosite de majoritateaadministratorilor.

    Apache are trei modaliti de a asigura c cererea pentru o anumit resurs va findeplinit. Acestea se numesc Authorization, Authenticationi Access control.Authentication este procesul prin care se verific faptul c cineva este chiar cinepretinde a fi. Aceasta implic de obicei un nume utilizator i o parol asociatacestuia, dar poate include i alte metode. Authorization nseamn c, odatidentificat persoana, se verific dreptul acesteia de a accesa resursa. Acesta seacord dac persoana aparine unui grup sau dac are un nivel de autorizare

    corespunztor. Access control este un mod mai general de a vorbi despre accescontrolat la o resurs web. Accesul poate fi permis sau nu n baza unor criteriivariate, cum ar fi adresa clientului sau browser-ul folosit.

    Autentificarea de baz este cea mai simpl metod de autentificare i pentrumult timp a fost i cea mai comun. Recent i alte metode de autentificare au

    nceput s fie folosite n mod curent. Cnd o resurs a fost protejat folosindautentificarea de baz, Apache trimite un header de cerere de autentificare 401

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    20/93

    19

    cu rspunsul la cerere pentru a anuna clientul c este nevoie de autentificripentru a folosi corespunztor resursa respectiv.

    Cnd primete un header de rspuns 401, browser-ul clientului, dac suportautentificarea de baz, va cere utilizatorului s introduc un nume utilizator i oparol care vor fi trimise serverului. Dac este folosit un browser grafic va apreao fereastr n care se va introduce nume utilizatori parola, care vor fi trimise

    napoi la server. Dac nume utilizator este n lista permis i parola este corect,resursa va fi returnat clientului.

    Fiecare cerere va fi tratat la fel, chiar dac vine de la acelai client. Pentrufiecare resurs cerut va trebui s introducei datele de autentificare pentru a oprimi. Din fericire, browserul are grij de detalii n acest caz, astfel nct vatrebui s introducei datele o singur dat pe sesiune.

    O dat cu rspunsul 401 vor fi trimise napoi clientului i alte informaii. nparticular, un nume care este asociat cu zona protejat a site-ului web. Acesta senumete realm. Browser-ul clientului preia numele de utilizator i parolaintroduce i le pstreaz mpreun cu realm-ul, astfel nct atunci cnd suntcerute alte resurse aceleai informaii vor putea fi trimise fr a mai fi nevoie cautilizatorul s le introduc iari.

    Exist trei pai de configurare care trebuie parcuri pentru a proteja o resursfolosind autentificarea de baz:

    se creaz un fiier de parole; se seteaz configuraia pentru a folosi acest fiier de parole; opional, se creaz un fiier de grup.

    Dei parola este pstrat pe server n format criptat, ea este transmis de laclient la server necodat. Astfel, oricine poate intercepta numele de utilizator iparola cnd sunt transmise. n plus, numele de utilizator i parola sunt transmisecu fiecare cerere, nu doar atunci cn utilizatorul le introduce prima dat.

    Autentificarea digest ofer o metod alternativ pentru protejarea coninutuluiweb. Totui, i ea are cteva bug-uri. Autentificarea digest este implementat

    prin modulul mod_auth_digest. Exist un modul mai vechi mod_digest darprobabil c nu va funciona pe browserele mai noi. Folosind autentificarea digest,parola nu este transmis niciodat necriptat prin reea, ci este transmis

    ntotdeauna ca un digest md5al parolei utilizatorului.

    Dei autentificarea digest are marele avantaj c nu trimite parola necriptat prinreea, nu este suportat de majoritatea browserelor folosite astzi i nu ar trebuifolosit pe un site pe care nu putei controla browserele utilizatorilor. n

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    21/93

    20

    particular autentificarea digest este suportat de o versiune de browser InternetExplorer mai mare de 5.0. Dac avem un coninut care trebuie asigurat foartebine, vom folosi ssl.

    Autentificarea de baz i autentificarea digest au ambele acelai mare defect:folosesc fiiere text pentru memorarea informaiilor de autentificare. Problemaeste dat de faptul c o cutare ntr-un fiier text este foarte greoaie.Autentificarea trebuie fcut de fiecare dat cnd este cerut un anumit coninut.Apache trebuie s deschid fiierele text de parole i s caute linie cu linie pngsete utilizatorul care ncearc s se logheze i s verifice parola acestuia.

    Alternativa o reprezint o varietate de baze de date. Bazele de date suntoptimizate pentru cutarea unei anumite informaii ntr-un set mare de date.Sunt mai multe module disponibile pentru Apache pentru autentificare folosind ovarietate de baze de date. Mod_auth_db i mod_auth_dbm sunt module care

    pstreaz parolele n fiiere DB sau DBM.

    Pentru aplicaia noastr, am folosit utilitarul Easy PHP sub Windows 7 RC1,care se ocup de administrarea serverului Apache fr a fi nevoie de implicareadirect a administratorului.

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    22/93

    21

    2.3 Programare client side

    2.3.1 Javascript

    JavaScript este un limbaj de scripting dezvoltat la origine de Netscape,permind scrierea de secvene de program care se execut la apariia unuieveniment utilizator. Vom prezenta n continuare fundamentele JavaScript i,mult mai important, modaliti de valorificare i integrare n propriile paginiweb a tehnologiei JavaScript.

    JavaScript nu este Java! Trebuie fcut distincia ntre limbajul de programare

    Java i limbajul de scripting JavaScript. Spre deosebire de JavaScript, Java esteun limbaj de programare considerat "de nivel nalt" (foarte apropiat de gndireautilizatorului i mai puin de arhitectura calculatorului) care permite scrierea deaplicaii de aproape orice tip i grad de complexitate.

    Pentru rularea programelor scrise n limbajul JavaScript avem n primul rndnevoie de un browser care suport JavaScript de exemplu NetscapeNavigator(ncepnd cu versiunea 2.0) sau Microsoft Internet Explorer (MS. I.E. - ncepndcu versiunea 3.0). Din moment ce aceste browsere sunt extrem de largrspndite, muli utilizatori (peste 95%) au posibilitatea de a rula fr probleme

    programele JavaScript. Pentru a utiliza n paginile proprii evenimente tratabileprin JavaScript avem bineneles nevoie i de cunoterea - cel puin la nivelmediu - att a limbajului HTML, ct i a limbajului de scripting JavaScript

    Codul JavaScript poate fi introdus direct n pagina HTML. Pentru a vedea cumfunctioneaza JavaScript, s lum n considerare urmtorul exemplu simplu:

    Pagina H TML cu JavaScript

    Hello user!

    document.write("Acesta este JavaScript!");

    Din nou text si cod HTML.

    La prima vedere aceast secven de cod arat ca un fiier HTML normal,singura noutate o constituie blocul ... :

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    23/93

    22

    document.write("Acesta este JavaScript!")

    Acesta este JavaScript-ul nostru! Pentru a observa modul de funcionare ascriptului vom salva codul HTML de mai sus ca i fiier normal HTML lansndpagina astfel salvat n browserul nostru cu suport JavaScript. Daca browserulsuport JavaScript vom vedea trei linii:

    Acesta este un document HTML continand JavaScript.Acesta este JavaScript!Din nou text si cod HTML.

    Este perfect adevrat c acest script extrem de simplist nu este unul foartefolositor acelai rezultat l puteam obine mult mai simplu utiliznd codHTML. Am dorit doar s exemplificm utilizarea tagului . Tot ceea cese afl ntre eticheta i eticheta este interpretat drept codJavaScript. Putem observa folosirea document.write() una dintre cele mai

    folosite comenzi n programarea JavaScript. document.write() este o rutinJavaScript folosit pentru a scrie text, imagini, etc... ntr-un document. Aadar,scurtul nostru program JavaScript scrie textul Acesta este JavaScript! ndocumentul HTML n care a fost inserat.

    Libraria script.aculo.useste prima colecie de efecte vizuale realizate cu ajutorulJavaScript. Alternativa estejQuery, care functioneaz puin altfel, n sensul csuport cascade de instruciuni. Script.aculo.us este uor de neles, avnd doartrei funcii de baz: efecte- newEffect.effectName() icontroale drag&drop new Control.controlName() event-uri new Event.observe( [ click, mouseover, mouseon, etc. atenie,

    fara on-ul din fa ], id-ul elementului, functia de executat ) call-uri AJAX new Ajax.Update()Tag-urile folosite pentru ncadrarea scripturilor sunt i .Tag-ul care deschide scriptul ar trebui s arate aa:

    Codul JavaScript

    Se pot folosi cte astfel de tag-uri dorii n fiierul HTML, ca i cnd ar fi un tagnormal. Doar amintii-v s-l nchidei. Dac urmrii s folosii funciiJavaScript, acestea trebuie plasate ntre i ale documentului. nacest fel, funciile sunt ncrcate nainte ca pagina s nceap s fie afiat i nuvor aprea nici un fel de erori ale codului. Mai este un lucru de care trebuie inutcont nainte s trecem la scrierea scripturilor: browserele vechi nc sunt folosite,dar ele nu recunosc tag-ul . Dect s scriei scriptul i s vi-l afieze ca

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    24/93

    23

    pe un simplu text, mai bine "pclii" browserul. Vei face asta ignornd textuldin tag-ul . Acest lucru se face folosind un comentariu HTML.Browserele vechi vor ignora textul dinuntrul comentariilor, dar un browser caresuport JavaScript va procesa totui scriptul. Cum se face asta? Un exemplu:

    Asta inchide partea comentariilor,iar browserul va procesa scriptul.

    n continuare vom analiza un script care folosete evenimentele mouse-ului.

    Pune mouse-ul aici!

    Acest script nu necesit tagurile i fiind foarte simplu. Ceea

    ce face este s modifice statusul ferestrei la mutarea de ctre utilizator a mouse-ului peste un link. n rest, programarea n JavaScript este, privitor la sintax,foarte asemntoare cu cea n limbajul Java i C++. Ce este necesar n plus estecunoaterea proprietilor ce pot fi ataate fiecrui element.

    Scripturile realizate n JavaScript acioneaz asupra unui ansamblu de obiecteconinute n pagina Web sau aparinnd browserului. Aciunea va presupuneapelul unor metode definite n acest scop pentru obiectele respective sauatribuirea unor valori membrilor date ai obiectelor. Obiectele care pot fi accesatepot fi definite prin structura ierarhic din figur:

    Figura 5. Structura ierarhic JavaScript

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    25/93

    24

    2.3.2 Javascript asincron i XML (AJAX)

    Ajax este prescurtarea pentru Asynchronous JavaScript and XML (JavaScript iXML asincron) i reprezint o colecie de tehnologii utilizate n dezvoltarea

    aplicaiilor web. Scopul principal este de a aduga o interactivitate mai mare npaginile web i de a micora timpul de ncrcare al acestora. n msura n careinternetul este n continu dezvoltare unde numrul de pagini web se dubleaz lao perioad de cteva luni, se dezvolt foarte mult servicii de comer electronic,magazine virtuale sau site-uri sociale, tehnologia Ajax devine o component debaz pentru orice astfel de site.

    Ajax presupune un schimb mic de date ntre client i server, astfel nct s numai fie necesar rencarcarea ntregii pagini web de fiecare dat cnd utilizatorulinteraoneaz cu aceasta. Ajax reprezint o colecie de tehnologii, fiecare utilizat

    i dezvoltat n mod de sine-statator, dar care combinate permit obinerea uneiunelte foarte puternice, din car dorim s amintim cele mai importante: prezentarea n mod standard a paginilor, prin HTML sau mai nou XHTML,i CSS pentru aranajrea n pagin a coninutului; afiare dinamic i interaciune folosind DOM, accesat printr-un limbaj descripting, pentru a modifica n mod dinamic i a asigura interaciunea cuinformaia prezentat; schimb bidirecional de date i manipulare prin XML ntre client i server,dei orice format poate fi folosit, inclusiv HTML, XSLTsau text simplu; schimbul de date asincron se realizeaza prin obiectul XMLHttpRequest, dei nunele implementari AJAX se poate folosi un iFrame pentru schimbul de date,sau chiar tag-uri adugate dinamic; JavaScript folosit pentru a lega toate aceste elemente ntr-un pachet puternic.Modelul clasic al aplicaiilor web este urmtorul: aciunile utilizatorilor ninterfaa din browser conduc la o cerere HTTP ctre serverul web; serverulrealizez nite procesri i ulterior returneaz o pagin HTML ctre client. Estemodelul clasic, sincron, dezvoltat odat cu apariia internetului ca reea la nivelmondial. Este calea cea mai simpl, dar n timp ce serverul proceseaz cererea,

    utilizatorul ateapt i nu poate interaciona n niciun alt mod cu pagina web,acest lucru crend un blocaj care de cele mai multe ori este foarte neplcut.

    AJAX elimin aceast modalitate de interaciune start-stop-start-stop a Web-ului introducnd un nivel intermediar ntre utilizator i server motorul AJAX.Adugarea unui nou nivel ntr-o aplicaie de obicei o face s lucreze mai greu,dar n acest caz este adavarat afirmaia invers. n loc s ncarce pagina la

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    26/93

    25

    inceputul sesiunii, browserul ncarc un motor AJAX, scris n JavaScript iplasat de obicei ntr-un cadru invizibil.

    Acest motor este apoi responsabil att cu interfaa pe care o afieazutilizatorului, ct i cu comunicaia cu serverul pentru folosul utilizatorului.

    Motorul AJAX permite interaciunea utilizatorului cu aplicaia n mod asincron,independent de comunicaia cu serverul. Prin urmare utilizatorul nu mai priveteo fereastra goal, ateptnd ca aceasta s se ncarce direct de pe server.

    Prima utilizare a termenului AJAX n mod public a fost n februarie 2005. JesseJames Garrett susine c a gndit aceasta denumire realiznd necesitatea unuitermen simplu, scurt i usor de pronunat n momentul cnd urma s prezinteunor clieni o suit de tehnologii propuse pentru implementare.

    Dei termentul AJAX are mai puin de doi ani de la apariie, istoria tehnologiilor

    care au dus la implementarea acestuia ncepe cu 10 ani n urm, atunci cndMicrosoft avea iniiativ n a dezvolta Remote Scripting.

    Tehnici pentru ncrcarea asincrona a coninutului ntr-o pagina web, frnecesitatea rencrcrii totale, au aprut de pe vremea elementului iframei aelementului layer. Ambele elemente aveau cmpul srcpentru ncrcarea unui urlextern, i, prin utilizarea JavaScript se putea manipula pagina mam, obinndu-se un efect asemanator cu AJAX.

    Astfel de tehnici au fost implementate n DHTML, i chiar i produsul

    Macromedia Flash putea ncrca fiiere XML sau CSV de pe un server fr anecesita o rencrcare a paginii n browser. Remote Scripting de la Microsoftfunciona ca un nlocuitor mai elegant al acestor tehnologii, datele fiind extrasede un applet Javacu care clientul comunica prin JavaScript, tehnic disponibil

    n IE4. Microsoft a creat pentru IE5 obiectul XMLHttpRequest i a aratatavantajele lui in Outlook Web Access, care face parte din pachetul MicrosoftExchange Server 2000.

    Comunitatea Web, suficient de dezvoltat la nceputul anilor 2000 a preluatiniiativa n dezvoltarea acestui tip de tehnologie. Prin colaborare public s-a

    mbuntit tehnica de scripting pentru a permite utilizarea i pe alte browsere.n 2002 a fost modificat Remote Scripting pentru a nlocui applet-ul Java cuXMLHttpRequest care a devenit modalitatea preponderent de comunicare cuserverul.

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    27/93

    26

    Microsoft a introdus tehnologia Callback n ASP.NET, dar XMLHttpRequest armas cel mai folosit deoarece este foarte bine implementat n toate browserele,celelalte tehnologii nefiind folosite dect n cazuri de incompatibilitate.

    Figura 6. Modelul AJAX, cerere-rspuns

    Prin generarea de HTML local, n browser, i aducnd de pe server doar apelriJavaScript i date, paginile realizate cu AJAX se ncarc mai repede deoareceinformaia necesar este mai mic. De exemplu se pot aduce doar datele dintr-untabel, iar afiarea tabelului n sine, tag-urile , si se genereazlocal, n browser, nefiind necesar i transferul acestora de pe server. Structuragenerala a unei pagini, titlu, meniu lateral, subso de pagin, se genereaza o

    singur dat, iar la navigarea acelui site se aduc doar datele noi din coninutulpaginii respective, titlul i meniurile rmnnd neschimbate.Aplicaiile AJAX sunt n principal executate n computerul utilizatorului, prinmanipularea paginii curente de ctre browser folosind DOM. AJAX poate fiutilizat pentru o serie de funcii precum actualizarea nregistrrilor, expandareaformularelor, returnarea unor cutari simple, editarea de elemente, trimiterea deformulare, toate fr nevoia de a rencarca ntreaga pagina web n momentulcnd aceasta este modificat. Se trimit doar cereri scurte ctre server i seprimesc rspunsuri de dimensiuni mici. Acest lucru crete interactivitatea i

    apropie paginile web de posibilitile aplicaiilor desktop. Pentru magazinvirtuale, site-uri de eBanking sau eCommerce, sau pentru implementarea unuichat ntr-o pagina web tehnologia AJAX este foarte potrivit.

    n condiiile n care un studiu recent a artat c un client prsete site-ul unuimagazin online n favoarea altuia dac ncrcarea unei pagini dureaz mai multde 4 secunde, interaciunea oferita de Ajax privind posibilitatea de a modificadoar anumite aspecte ale paginii (de exemplu apariia prerilor altor cumprtori

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    28/93

    27

    despre un anumit produs sau calculul sumei totale din coul de cumprturifr a rencrca toat pagina, ci doar acea zona) este foarte important.Paginile web ce utilizeaz Ajax pot s mpiedice buna funcionare acomportamentului normal, obinuit i ateptat al butoanelor de Backi Forwarddintr-un browser. Utilizatorii sunt obinuii ca apsnd aceste butoane s fie duila aspectul anterior al paginii, dar acest lucru nu este mereu adevrat cnd seutilizeaza Ajax, deoarece browserul nu poate ine mereu evidena modificrilorsurvenit n mod dinamic i asincron.

    Dezvoltatorii de site-uri au introdus diverse rezolvri pentru aceast problem,folosind iframe-uri invizibile pentru a reine coninutul paginii anterioare. GoogleMaps, de exemplu, face cutarile ntr-un iframe invizibil i apoi aduce rezultatele

    n partea vizibil a paginii. n recomandarea XHTML 1.1 a World Wide WebConsortium, organismul care standardizeaza metodele si limbajele utilizate in

    Internet, se recomanda folosirea elementului object.

    O alt problem a paginilor dinamice este dificultatea crerii unui link saubookmark ctre o stare particular a aplicaiei. Soluii au fost gsite prinutilizarea de identificatoare de fragmente url, deoarece prin JavaScript se poatemodifica adresa paginii prin schimbarea acestui identificator de fragment.Aceast soluie ajut i la problema butonului Back, dar nu este una complet.

    Modificarea doar a unor poriuni din pagini poate crete totui timpul aparent derspuns, deoarece utilizatorul observ mai greu modificrile fcute ntr-o poriune

    mic a unei pagini deja ncrcate. Se recomand utilizarea unor indicatori deactivitate de procesare, de exemplu celebra clepsidra.

    Website-urile care utilizeaz pagini ncrcate prin AJAX trebuie s fie atente sofere aceeai informaie i ntr-un format clasic, pentru a putea fi indexat deroboii de indexare ai motoarelor de cautare pe Internet. Dac anumite informaii(date, text, imagini) nu apar dect la apelarea unor funcii JavaScript prin Ajax,aceste informaii nu vor fi gsite de un motor de cutare deoarece acestea citescdoar textul existent n pagin i nu ruleaz i funciile din aceasta.

    Google a fcut pai imeni n implementarea acestei tehnologii n site-urile propriii a dus astfel la popularizarea ei. Toate produsele Google folosesc din plin Ajax,ncepand cu Gmail, Google Groups, Google Suggest, Google Read. GoogleAnalytics, Google AdWords i Google Maps.

    Cel mai mare site de fotografii online, Flickr, recent achiziionat de Yahooutilizeaz Ajax pentru a permite utilizatorilor s noteze, voteze, cataloghezefotografii, s scrie comentarii i s organizeze aspectul general al interfeei fr a

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    29/93

    28

    rencarca pagina. Magazine online precum Amazon, eBay utilizeaz Ajax pentrua prezenta cumprtorilor informaia cerut de acetia fr a fi nevoii s atepterencrcarea paginii dupa fiecare click.

    Recent Yahoo a anunat integrarea elementelor de Yahoo Messenger n fereastra

    web a serviciului de webmail Yahoo Mail Beta. Chat-ul cu contactele din lista deYahoo Messenger se va face direct din browser, mesajele noi aprnd fr a finecesar rencarcarea paginii.

    Un alt exemplu foarte bun este Google Analytics considerat cel mai bun serviciude analiz a traficului unui site. Google Analytics prezint informaii precumsite-ul de pe care au venit vizitatorii, browserul folosit, rezoluia ecranului,sistemul de operare, adncimea de culoare, prezena tehnologiei Java sau Flash,pagini citite, timpul petrecut pe site, ce reclame din site au atras cel mai mareinteres pentru vizitatori. Aceste informaii sunt prezentate prin grafice, tabele i

    alte reprezentri dinamice n funcie de specificului fiecrui raport.

    Cnd deintorul site-ului evaluat dorete s treac de la informaiile desprerezoluia ecranului la versiunea browserului folosit, n pagin sunt ncarcate prinAJAX un nou grafic i un nou tabel cu numele browserelor i procentele deutilizare folosind date extrase din baza de date, deci doar dou elemente, toatecelelalte elemente din pagina (titlu, meniul de opiuni din stnga, textele dinsubsol i din dreapta) ramnnd neschimbate. Doar graficul se schimb chiar iatunci cnd se modific perioada dorit pentru afiare (numrul de zile, afiare

    pe luni, trimestriala, etc), culorile, tipul de grafic i alte astfel de elemente deinterfa.

    Informaia cerut la o apelare prin Ajax este de cteva ori mai mic dect dacar fi fost vorba de relaia client-server clasic, i, prin urmare, timpul ctigat imulumirea fa de eficiena i rapiditatea serviciului Google Analytics creteproporional, totul datorits tehnologiei Ajax.

    n cele ce urmeaz prezentm un exemplu simplu Ajax, o pagina HTML carecomunic dinamic cu un script PHP.

    Pagina HTML:Exemplu AJAXfunction xmlhttpPost(strURL) {

    var xmlHttpReq = false;var self = this;// Mozilla/Safariif (window.XMLHttpRequest) {self.xmlHttpReq = new XMLHttpRequest();

    }

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    30/93

    29

    // Internet Explorerelse if (window.ActiveXObject) {self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");

    }self.xmlHttpReq.open('POST', strURL, true);self.xmlHttpReq.setRequestHeader('Content-Type',

    'application/x-www-form-urlencoded');self.xmlHttpReq.onreadystatechange = function() {

    if (self.xmlHttpReq.readyState == 4) {updatepage(self.xmlHttpReq.responseText);

    }}self.xmlHttpReq.send(getquerystring());

    }function getquerystring() {

    var form = document.forms['f1'];var word = form.word.value;qstr = 'w=' + escape(word);return qstr;

    }function updatepage(str){

    document.getElementById("result").innerHTML = str;

    }cuvnt:

    fiier PHP:

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    31/93

    30

    2.4 Securitatea aplicaiilor web

    Securitatea aplicaiilor web este un subiect foarte important nct acesta trebuietratat separat i inclus chiar de la primele etape din proiectarea aplicaiei.

    Cel mai important concept pe care trebuie s-l nelegem despre securitate esteacela c o aplicaie web nu va fi nici sigur, nici nesigur. Aplicaia va fi mai sigursau mai puin sigur. Securitatea nu este un comutator, cu poziiile pornit ioprit, ci un cursor pe care l deplasm mai sus sau mai jos. De asemeni, n mod

    normal, un nivel mai nalt de securitate este obinut cu preul reduceriicomoditii n utilizare (att pentru programatori ct i pentru utilizatorul final)i a performanelor.

    Creterea securitii nseamn, de obicei, mai mult cod, mai multe verificri incrcarea suplimentar a serverului. Ca urmare, atunci cnd dezvoltm aplicaiiweb, trebuie s inem seama de aceste aspecte i s lum deciziile corecte nc dela nceput, n funcie de situaia concret.

    2.4.1 Validarea mai sigur a datelor din formulare

    Regula de baz pentru validarea oricror date primite de o pagina PHP este spresupunem c datele sunt invalide, pn cnd trec de testele care aratcontrariul. La un nivel minim, ar trebui: s folosim variabile superglobale (precum $_POST['id'] sau $_GET['id']) nlocul variabilelor globale nregistrate ($id); s verificm completarea rubricilor de text i parole din formulare folosindfuncia empy(); s verificm completarea celorlalte elemente de intrare din formulare folosindfuncia isset(); s verificm dac lungimea tuturor elementelor de intrare din formulare are ovaloare pozitiv.

    O cale mai bun de validare a datelor din formulare este s verificm dacacestea sunt de un anumit tip. O metod i mai exact de validare a datelor din

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    32/93

    31

    formulare necesit folosirea expresiilor regulate, sau folosirea Javascript-uluipentru operaii elementare de validare a datelor pe partea de client, n browserulweb, nainte ca datele s fie transmise ctre server.

    Prevenirea transmiterii multiple a formularelor

    Un asemenea eveniment poate fi considerat un disconfort minor sau o problemmajor pentru orice aplicaie web, n funcie de modul n care se facetransmiterea repetat accidental sau intenionat. Exist mai multe soluiipentru prevenirea transmiterilor multiple din care prezentm un exemplu.

    n primul rnd, dac folosim deja sesiuni, o soluie la ndemn este s crem ovariabil de sesiune prin care s indicm dac un anumit formular a fost dejatransmis.

    if (isset($_SESSION['nume_formular'])){

    // nu prelucrez formularul

    } else {

    // prelucrez formularul

    // indic faptul c formularul a fost deja prelucrat

    $_SESSION['nume_formular']=TRUE;

    }

    Aceast soluie tehnic este foarte simpl, dar impune folosirea sesiunilor.

    2.4.2 mbuntirea securitii sesiunilor

    Deoarece, n mod normal, informaiile importante sunt stocate ntr-o sesiune (nuntr-un modul cookie), securitatea devine un aspect critic. Trebuie s ne amintimfaptul c n cazul sesiunilor trebuie s tinem seama de dou lucruri:identificatorul sesiunii, care reprezint un punct de referin pentru datelesesiunii, i sesiunea propriu-zis, care este stocat pe server. Este mai probabil cao persoan ruvoitoare s ncerce ptrunderea ntr-o sesiune prin identificatorulsesiunii, nu prin datele stocate pe server, aa c n continuare ne vom concentra

    asupra acestui aspect.

    Stocarea identificatorului unei sesiuni ntr-un modul cookie este considerat ometod mai sigur de folosire a sesiunilor, n contrast cu transmitereaidentificatorului prin adresele URL sau stocarea acestuia ntr-un element deintrare ascuns al formularului. Aceste alternative sunt mai puin sigure, deoarecesesiunea poate fi deturnat cu uurin de un alt utilizator. Dac se poate aflaidentificatorul de sesiune al unui utilizator, se poate pcli serverul pentru a

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    33/93

    32

    crede c acela este identificatorul sesiunii noastre. Din acel moment, am preluatcomplet ntreaga sesiune a utilizatorului original i avem acces la toate dateleacestuia. Ca urmare, stocarea identificatorului unei sesiuni ntr-un modul cookie

    l face ceva mai greu de furat.O metod de prevenire a deturnrilor este s stocm un identificator al

    utilizatorului n sesiune, apoi s verificm n mod repetat aceast valoare.Variabila HTTP_USER_AGENT este un candidat potrivit pentru scopulurmrit. Acesta este un nivel suplimentar de securitate, deoarece nu se poatedeturna sesiunea unui alt utilizator dect dac se ruleaz pe aceaiai combinaiede browser i sistem de operare. De exemplu, pagina de autentificare ar puteaconine linia:

    $_SESSION['agent']=$_SERVER['HTTP_USER_AGENT'];

    Paginile ncrcate ulterior ar putea apoi s compare valoarea agent stcat cuvaloarea HTTP_USER_AGENT a utilizatorului.

    if ($_SERVER['HTTP_USER_AGENT']!=$_SESSION['agent']){

    /* sesiune deturnat */

    }

    Sugestii de mbuntire a securitii sesiunilor: criptarea informaiilor $_SERVER['HTTP_USER_AGENT'], folosindfuncia md5(), pentru a le face mai dificil de nlocuit. Pentru utilizrile critice ale sesiunilor, trebuie s impunem folosireamoduleleor cookie i transmiterea acestora print conexiuni sigure; dac se folosete un server partajat cu alte domenii, este mai sigur smodificm valoarea prestabilit a opiunii session.save_path - care permiteaccesul tuturor utilizatorilor - cu ceva mai specific; din punctul de vedere al securitii pe partea de server, datele sesiunii pot fistocate ntr-o baz de date, nu ntr-un fiier text. Aceasta este o metod maisigur, dar necesit un efort suplimentar de programare; adresa IP a utilizatorului (adresa de reea de la care s-a conectat utilizatorul)nu este un bun identificator unic, din dou motive. n primul rnd, adresa IP aunui utilizator se poate schimba frecvent (i, in mod normal, chiar se ntmplacest lucru, deoarece furnizorul ISP i aloc dinamic adresa pentru o scurtperioad de timp). n al doilea rnd, mai muli utilizatori care au acces la un site

    din aceeai reea (cum ar fi o reea la domiciliu sau dintr-un birou) pot aveaaceeai adresa IP.

    2.4.3 Asigurarea securitii SQL

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    34/93

    33

    Securitatea bazelor de date, n privina scripturilor PHP, poate fi mprit ndou domenii largi: protejarea informaiilor de acces la baza de date; precauiile la rularea interogrilor, n special a celor care implic datefurnizate de ctre utilizatori.

    Primul obiectiv poate fi ndeplinit prin stocarea scriptului de conectare laMySQL undeva n afara directorului web, astfel nct s nu poat fi vizualizatprintr-un browser web.

    Pentru al doilea obiectiv, exist numeroi pai pe care i putem parcurge. nprimul rnd, trebuie folosii vectorii $_POST sau $_GET n detrimentulvariabilelor globale definite. n al doilea rnd, verificm dac au fost transmisedate din formular i dac datele transmise sunt de tipul corespunztor. n altreilea rnd, trebuie folosite expresii de cutare pentru a verifica dac datele

    transmise respect formatul la care ne ateptm.

    A patra recomandare este de a folosi funcia specific mysql_real_escapestring().Aceast funcie insereaz secvene escape pentru caracterele care ar putea cauzaprobleme. Aceast funcie este asemntoare cu funcia addslashes() i trebuiefolosit pentru orice text transmis din formulare dar este conceput specialpentru bazele de date. Deoarece este posibil ca serverul s aib activat opiuneaMagic Quotes, scriptul trebuie s se asigure c n datele transmise din formularnu sunt adugate prea multe secvene escape.

    2.4.4 Criptarea i securitatea bazelor de date

    Dac deinem drepturi administrative asupra bazei de date, trebuie s inemseama de urmtoarele recomandri: s nu permitem conectarea utilizatorilor anonimi la MySQL; s impunem ntotdeauna introducerea unei parole pentru conectare; s solicitm utilizatorilor s specifice i un nume gazd; n acest felrestricionm calculatoarele de la care utilizatorii au acces la MySQL;

    s atribuim fiecrui utilizator numai privilegiile minime necesare; s restricionm accesul utilizatorului rootnumai de la calculatorul local; s tergem baza de date de test, la care, n mod prestabilit, au acces toiutilizatorii; atunci cnd stocm ntr-un tabel date confideniale, i n special parole,trebuie s protejm datele prin folosirea funciilor de criptare; trebuie s validm datele transmise de utilizatori nainte de a le insera ntr-obaz de date;

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    35/93

    34

    s folosim extensia .php pentru fiierele care conin informaii pentruconectarea la baza de date; dac este posibil, s stocm scriptul de conectare la baza de date n afaradirectorului web rdcin;

    MySQL are cteva funcii de criptare i decriptare ncorporate n software. O

    funcie foarte asemntoare cu sha() i md5() este encrypt() care este folositpentru criptarea datelor, dar difer prin faptul c permite adugarea unuiparametru, numit sare care mbuntete caracterul aleatoriu al procesului decriptare.

    Funcia encrypt() folosete programul Unix crypt(), care s-ar putea s nu fiedisponibil pe orice sistem (n special sub Windows). MySQL include i o altfuncie de criptare, numit des_encrypt(), care poate fi folosit pentru ssl.

    Funcia sha() i encrypt() creeaz un ir de caractere criptat care este aproape

    imposibil de decriptat. Aceasta este o msur de securitate foarte puternic,deoarece nseamn c datele stocate nu mai pot fi regsite sub o forminteligibil.

    Dac dorim ca datele s fie stocate ntr-o form criptat care s poat fidecriptat, trebuie s folosim perechile de funcii encode() i decode() sauaes_encrypy() i aes_decrypt(). i aceste funcii primesc un parametru sare, care

    mbuntete caracterul aleatoriu al procesului de criptare. Funciaaes_encrypt() este considerat cea mai sigur opiune ce criptare, dar estedisponibil numai ncepnd cu versiunea MySQL 4.02.

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    36/93

    35

    Capitolul 3

    Analiza i proiectarea aplicaiei

    n faza faza iniial de proiectare a aplicaiei ncercm s realizm o lista cuprincipalele cerine ale acesteia. Lista reprezint un ghid pentru alegereaarhitecturii utilizate i pentru dezvoltarea conceptual a entitilor incluse nproiect. Aplicaia dezvoltat n cadrul lucrrii de fa trebuie s ndeplineascurmtoarele cerine funcionale i nefuncionale:

    s permit accesul restrictiv la sistemul de administrare; s permit dezvoltarea unui produs multilingvistic; s permit adugarea unor noi limbi de circulaie internaional; s permit crearea de pagini de coninut; s permit manipularea facil a datelor de ctre utilizatori; s permit modificarea vizual a produsului finit; s menin modificrile efectuate unei nregistrri; s permit organizarea structurii produsului finit pe mai multe nivele; aplicaia s fie securizat; aplicaia s ofere un grad ridicat de ncredere i robustee;

    3.1 Descrierea cazurilor de utilizare

    Accesul la module de ctre un utilizator se face prin interfaa de privilegii, altfelspus, utilizatorul are acces la o seciune care ii permite ulterior s accesezemetodele modulelor la care are nevoie pe baza privilegiilor pe care le deine.

    n continuare trebuie analizat sistemul din dou perspective:

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    37/93

    36

    elemente necesare pentru realizarea aciunilor specifice lucrului cu resurseleunei companii: intrri, ieiri, contracte, facturi, chitane, casierie, companii; elemente necesare pentru integrarea celor mai sus menionate ntr-o aplicaieweb care are specifice: managementul utilizatorilor, elemente de configurare,elemente de securitate, acces n sistem pe baza de privilegii;

    n figura de mai jos este prezentat diagrama cazurilor de utilizare:

    Figura 7. Diagrama cazurilor de utilizare

    Trebuie avut n vedere dezvoltarea urmtoarelor module privind procedurilespecifie unei companii:

    intrri este nevoie de o seciune care s gestioneze toate intrrile ncompanie; pentru fiecare nregistrare trebuie s se rein un index consecutiv iconsistent denumit registru, o desriere scurt, i alte date specifice precumcompania de la care s-a primit intrarea, numele utilizatorului care a efectuat-o;

    ieiri asemntor seciunii intrri, trebuie s inem evidena tuturorevenimentelor care ies din companie; avem de reinut un registru, descriere,compania ctre care s-a efectuat i numele utilizatorului care a efectuat;

    contracte trebuie conceput astfel nct s reinem date precum compania cucare se efectueaz contractul, datele de contact ale persoanei responsabile din

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    38/93

    37

    exterior, descriere, numele persoanei care a ncheiat contractul; de asemenitrebuie s avem un registru special pentru contracte;

    facturi trebuie ca pe lng datele privitoare la o factur n general: numrregistru, sum, descriere detaliat, persoana care o emite, s avem i ocoresponden cu contractele existente, mai precis putem avea facturi emisepentru orice contract existent, dar i facturi fr contract; chitane avem nevoie de gestionarea datelor privitoare la numrulregistrului, sum, tipul chitanei, numele persoanei care a emis-o mpreun culegtura cu facturile existente n sistem; o chitan nou poate s fie emispentru dou mulimi distincte: mulimea facturilor emise fr contract precum imulimea facturilor care au asociate un contract;

    casierie n cadrul unei companii avem nevoie de un modul care s inaevidena traseelor banilor, cu alte cuvinte acest modul va inventariza chitane,bonuri fiscale, mprumuturi de tip asociat; va conine de asemeni un registru,

    detalii privind nregistrarea, suma;

    Dup cum am putut observa toate modulele trebuie s aib un cmp numitnume utilizatorcare este foarte util deoarece tim cine este responsabil pentruacea nregistrare. Un alt aspect este acela c, existnd posibilitatea ca o

    nregistrare s fie eronat realizat sau trebuie s sufere mici modificri, sistemulva oferi posibilitatea editrii acesteia doar de ctre persoana care a realizat-o.

    Pe partea de aplicaie web, vom avea nevoie de urmtoarele seciuni:

    utilizatori seciune care s permit gestionarea persoanelor care au voie sfoloseasc aplicaia; aici discutm de posibilitatea adugrii, editrii i tergeriiunui utilizator: nume, prenume i privilegii;

    cereri tergeri seciune care gestioneaz aciunea utilizatorilor; este posibilca utilizatorii s nu-i exercite n mod corect drepturile, din acest motiv putndca la un moment sistemul s conin nregistrri eronate;

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    39/93

    38

    3.2 Alegerea modelelor de dezvoltare

    Pentru Sistemul integrat pentru Managementul unei Companiam ales un modelde dezvoltare incremental deoarece aceasta este tendina n momentul de fa nceea ce privete dezvoltarea aplicaiilor web de dimensiuni medii. Aceast elegereeste sustenabil deoarece:

    procesul de specificare, proiectare i implementare este un proces concurent;nu exist o specificaie detaliat i documentarea proiectrii este minimalizat; sistemul este dezvoltat ntr-o serie incremental; utilizatorii finali evalueazfiecare variant incremental i fac propuneri pentru urmtoarea variant; interfeele utilizator ale sistemului sunt dezvoltate de obicei ntr-un procesinteractiv; prezint urmtoarele avantaje:

    livrarea accelerat de servicii clienilor; fiecare variant incrementallivreaz cea mai prioritar funcionalitate ctre client; implicarea utilizatorului vis-a-vis de sistem; utilizatorul trebuie s seimplice n dezvoltare ceea ce duce la un sistem care se modeleaz mai bine pecerinele sale; etapele de testare i acceptare sunt mai rapide; elementele mai importantesunt dezvoltate primele i prin urmare sunt testate mai mult timp;

    Figura 8. Modelul incremental de dezvoltare software

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    40/93

    39

    n cadrul unui increment, pentru implementarea diverselor procese am alesmodelul funcional de tip pipeline: proceseaz intrrile n ieiri conform unor transformri funcionale; este asemntor modelului pipe din shell-ul Unix; variante ale acestui concept sunt des ntlnite; cnd transformrile suntsecveniale, acesta este un model de prelucrare a loturilor de date foarte comun

    n sistemele de procesare a datelor; avantajele modelului pipeline:

    sprijin reutilizarea transformrilor; organizare intuitiv; uor de adugat noi transformri; relativ uor de implementat att concurent ct i secvenial;

    Exemplu de folosire a modelului pipe-line:

    Figura 9. Modelul pipeline de dezvoltare al unui proces

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    41/93

    40

    3.3 Nucleul aplicaiei

    Aplicaia de fa va trece prin trei ciclii de via pentru a putea ajunge laversiunea final care s respecte toate cerinele impuse. n figura de mai jos este

    prezentat nucleul sistemului care conine cele mai importante elemente, a crorinterdependen este foarte puternic. Aceste elemente asigur un minimum defuncionaliti pentru ca aplicaia s mearg.

    Figura 10. SIMC nucleu, primul ciclu de via

    n continuare este prezentat ciclul 2 de viaa n care sunt ataate dou module,mai precis Intrrii Ieiri. Aceste din urm dou module sunt opionale, ele nualtereaz modul de funcionare al nucleului.

    Figura 11. SIMC, al doilea ciclu de via

    n figura urmtoare este prezentat ciclul de viaa final n care s-au adugat toatecomponentele necesare bunei funcionri n conformitate cu cerinele impuse.

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    42/93

    41

    Aceste module sunt independente de sistem, dar pot exist interdependene nconfigurarea unora dintre ele; spre exemplu modulul de chitane nu poatefunciona dac nu este instalat modulul de facturi, care n schimb esteindependent de celelalte module.

    Figura 12. SIMC, ciclul de via final

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    43/93

    42

    3.4 Modulele aplicaiei

    Deoarece nu putem prevedea cu exactitate numrul i tipul modulelor pe care levor solicita ulterior clienii, precum i datorit faptului c ne dorim oimplementare ct mai cursiv i uoar a acestora, ne punem problema crerii

    unui ablon.

    n dezvoltarea acestui ablon am identificat urmtoarele elemente de care trebuies inem cont; orice nregistrare: tebuie s fie unic; s poat returna id-ul utilizatorului care a creat-o (id unic care se reflect nmodul utilizatorii care ulterior ne poate oferi numele i prenumele); s permit schimb de referine (de exemplu n modulul chitane trebuie scunoatem referina facturii chitanate din modululfacturi) s permit adugarea unei descrieri care s ajute ulterior utilizatorul nidentificarea nregistrrilor pe baza unor cutri prefereniale; s permit extinderea de la ablon prin tipuri structurale simple.

    Figura 13. ablon realizare module

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    44/93

    43

    3.5 Seciunea Utilizatori

    Aplicaia asigur un management complet n ceea ce privete utilizatorii.Adugarea unui utilizator se realizeaz prin completarea unui formular cu datele

    de autentificare ale noului utilizator, date personale cum ar fi vrsta, codnumeric personal, caliti i experiena n domeniu etc. precum i alegerea unordrepturi de autorizare pentru acesta.

    Pentru definirea unui grup sau rol se va completa formularul aferent i se voralege drepturile pe care un utilizator din acest grup le va avea. n formularul deadugare a unui grup nou sunt prezentate principalele aciuni pe care unutilizator le poate ntreprinde n cadrul seciunii de administrare. Se vor selecta oserie de aciuni pe care le va putea efectua utilizatorul i se va salva respectivulgrup. Odat cu salvarea acestuia se va atribui noul rol utilizatorilor noi sau

    existeni ai aplicaiei.

    Trebuie luat n considerare posibilitatea de a dezvolta ulterior seciuneautilizatorilor, mai precis fiecare utilizator s-i poate particulariza panoul delucru central, s-i poate modifica singur username-ul i parola de acces naplicaie. Se dorete ca aplicaia s fie robust cu un nivel ridicat de securitate;aplicaia trebuie s fac fa tentativelor ce acces neautorizat i de atacinformatic, rejectarea unor atacuri de tip dos sau sql injection.

    3.5 Seciunea multilingvistic

    n cadrul acestei seciuni se va lucru cu limbile care vor fi ulterior disponibilentregului sistem. Se poate aduga o nou limb sau se poate modifica/editastarea unei limbi deja instalate. Parametrul default descrie limba care esteselectat implicit n momentul n care un utilizator viziteaz aplicaia, iaraciunea de publicare modificpermite administratorului setarea unei alte limbiexistente.

    Prin aceast funcionalitate se permite administratorului controlarea procesului

    de publicare a coninutului ntr-o noua limb, un administrator cu drepturile deacces aferente avnd posibilitatea s fac public noua limb doar n momentul

    n care coninutul acesteia este completat n totalitate.

    Instalarea unei noi limbi trebuie s fie facil, selectandu-se limba strin dorit iapsnd doar instaleaz. Seciunile de editare ale unei pagini de coninut sau deredirectare se vor modifica n mod corespunzator, permind editareaconinutului n noua limb strin instalat.

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    45/93

    44

    3.5 Descrierea unor moduri de lucru

    3.5.1 Autentificarea unui utilizator

    Accesul unei persoane la sistem se face prin intermediul paginii de autentificare

    unde va fi ntmpinat de un formular de autentificare. Dac i se valideazformularul, sistemul va genera o sesiune unic i ii va permite accesul n sistem;

    n caz contrar va naviga ctre pagina de log-inunde i se vor afia mesaje deeroare; n acest moment utilizatorul are posibilitatea de a ncerca din nouvalidarea formularului sau de a prsi sistemul.

    Figura 14. Autentificare unui utilizator

    3.5.2 Adugarea unui utilizator

    Doar administratorii au posibilitatea de a crea utilizatori noi i acest lucru dupce au parcurs pasul prezentat la punctul de mai sus. Ulterior vor trebui snavigheze n seciunea utilizatoriunde vor trebui s completeze un formular deadugare utilizator, fiind necesar completarea cmpurilor nume, prenume,username i bifarea privilegiilor care i se acord respectivului utilizator.

    Figura 15. Adugarea unui utilizator

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    46/93

    45

    3.5.3 Editarea privilegiilor unui utilizator

    Sistemul trebuie s fie flexibil n ceea ce privete gestionarea utilizatorilor. Astfel,sistemul trebuie s permit modificare privilegiilor unui utilizator, existnd dou

    cazuri majore: restricionarea unui utilizator de a mai folosi nite module sauextinderea privilegiilor ctre alte module.

    Figura 16. Editarea privilegiilor unui utilizator

    3.5.4 tergerea unui utilizator

    Pe parcursul funcionrii unei companii este destul de probabil ca mulimeaangajailor s sufere mereu modificri. n continuare ne vom referi la cazul cndanumii utilizatori prsec compania, i, evident, trebuie s le tergem contulpentru ca acetia s nu se mai poat conecta la sistem. Acest lucru este detaliat

    n figura urmtoare.

    Figura 17. tergerea unui utilizator

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    47/93

    46

    3.5.5 Adugarea unui contract

    Una din cele mai frecvente activiti desfurate ntr-o companie este adugareaunor noi contracte. Acest lucru trebuie s fie extrem de facil, s se navigheze n

    pagina de contracte de unde printr-un singur click trebuie apelat procedura deadugare contracte. Ulterior se va completa un formular. Dac acesta este validatse va produce nregistrarea contractului, altfel se poate opri din aceastprocedura.

    Figura 18. Adugarea unui contract

    3.5.6 Editarea unui contract

    Editarea unui contract se face navignd n pagina de contracte, cutnd i

    selectnd contractul int i fcnd click pe butonul de editare din dreptulnregistrrii. La pasul urmtor se va deschide un panou n care vor fi adusedatele deja existente pentru acel contract utilizatorul putnd modifica acestedate.

    Figura 19. Editarea unui contract

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    48/93

    47

    3.5.7 tergerea unui contract

    Pentru a terge un contract trebuie s mergem n seciunea contracte. Odatidentificat contractul vizat, se va face click pe butonul de tergere din dreptul

    nregistrrii. Aceast operaie este exemplificat n figura de ma jos:

    Figura 20. tergerea unui contract

    3.5.8 Adugarea unei facturi

    O alt procedur foarte frecvent printre operaiile unei companii este crearea denoi facturi. Trebuie tiut faptul c o factur poate fi sau nu asociat unuicontract. Prin urmare, navignd n pagina de contracte i acionarea unui butonde creare factur nou trebuie s vizualizm un formular intuitiv cu care printr-un minimum de interacionare s completm datele necesare, sum, tipul facturii,numr registru etc.

    Figura 21. Adugarea unei facturi

  • 7/30/2019 Udrea Emanuel Sistem Integrat

    49/93

    48

    3.5.9 Editarea unei facturi

    Editarea unei facturi se face navignd n pagina facturilor, cutnd i selectndfactura int i fcnd click pe butonul de editare din dreptul nregistrrii. ncontinuare se va deschide un panou n care vor fi aduse datele deja existentepentru acea nregistrare utilizatorul putnd edita aceste date.

    Figura 22. Editarea unei facturi

    3.5.10 tergerea unei facturi

    Se poate ntmpla ca o anumita factur s fie creat n mod eronat, caz n carese poate proceda ca la punctul precedent prin simpla editare sau ca aceast s numai fie valabil. tergerea trebuie s fie foarte simpl, printr-un simplu click pebutonul de tergere din dreptul facturii vizate.

    Figura 23. tergere factur

    3.5.11 Soluionarea cererilor de tergere

    Ori de cte ori n sistem se va ncerca tergerea unei nregistrri, fie ea intrare,

    ieire, contract sau factur, n prealabil se va crea o cerere de tergere care vatrebui validat de ctre un administrator. Odat fcut cererea de tergere, acea

    nre