Internet Si Multimedia

Internet și multimedia

CUPRINS

INTRODUCERE

CAPITOLUL 1

STUDIUL, ANALIZA ȘI PREZENTAREA PROIECTULUI

1.1. OBIECTIVE URMĂRITE

1.1.1. Factori determinanti

1.1.2. Obiectivele proiectului

CAPITOLUL 2

SISTEME INFORMATICE

2.1. COMUNICAREA ÎN SISTEMELE INFORMATICE

2.2. SOLUȚII EXISTENTE

CAPITOLUL 3

PROIECTAREA ȘI REALIZAREA SISTEMULUI INFORMATIC

3.1. CONCEPEREA SISTEMULUI INFORMATIC

3.1.1. Organizarea aplicației

3.1.2. Funcțiile sistemului

3.2. PROIECTAREA BAZEI DE DATE

3.2.1. Evoluția bazelor de date

3.2.2. Modelul entitate-relație

3.3. TEHNOLOGII FOLOSITE

3.3.1. HyperText Markup Language (HTML).

3.3.2. Serverul web Apache.

3.3.3. Cascading Style Sheets (CSS).

3.3.4. PHP: Hypertext Preprocessor.

3.3.5. MySQL

CAPITOLUL 4

PLATFORMA INTRANET

4.1. INSTALAREA ȘI EXECUȚIA APLICAȚIEI

4.2. DESCRIEREA FUNCȚIILOR

4.2.1. Descrierea funcției meniu

4.2.2.Descriere pagina acasă.

4.2.3. Descrierea funcției mesaje

4.2.4. Descrierea funcției fișiere

4.2.5. Descrierea funcției anunțuri

4.2.6. Descrierea funcției adăugare și modificare utilizator.

4.2.7. Descriere funcții speciale

4.3. FACILITĂȚILE PRODUSULUI (DESCRIERE CONCURENTĂ)

CONCLUZII

BIBLIOGRAFIE

Introducere

Internetul este un mediu care se află într-o continuă schimbare. Încă de la începuturile sale, internetul a avut rolul de a facilita atât comunicarea între persoane, cât și comunicarea mult mai rapidă a informațiilor. Prin multimedia se înțelege totalitatea fișierelor care oferă utilizatorilor opțiunea de a interacționa sau de a vizualiza un anumit tip de fișiere, cum ar fi fișierele text, audio sau video. Evoluția mediului internet s-a bazat pe introducerea unor metode noi în scopul de a facilita comunicarea între persoane/utilizatori și de a partaja informațiile multimedia, fie ca este vorba de fișiere text, prezentări powerpoint sau înregistrari în format audio sau video. Odată cu evoluția internetului au evoluat și dispozitivele care permit unui utilizator accesul în acest mediu. Dacă acum 20 de ani pentru ca un utilizator să poată vizualiza o pagină web era necesar să aibă acces la un calculator care era conectat la rețeaua internet, acum utilizatorul poate realiza acest lucru prin intermediul unui calculator portabil, telefon deștept (smartphone) sau a unei tablete și utilizând o rețea de unde radio (wireless).

Odată cu avansarea conexiunii la internet și dimensiunile fișierelor s-au marit, în principal pentru a oferi o calitate superioară fișierelor. Acest lucru a condus la nevoia unui spațiu de stocare mai mare. La ora actuală, spațiul de stocare încă este o problemă pentru multe companii. Pentru a rezolva această problemă, multe companii au recurs la utilizarea de intranet-uri pentru partajarea fișierelor. Cu toate acestea, acestă soluție nu este una optimă deoarece spațiul utilizat este achiziționat de la companii terțe. Soluția pentru această situație este dezvoltarea unei platforme special create pentru o companie, care să fie ușor de utilizat și să includă posibilitatea de partajare a documentelor între utilizatori din nenumărate locații și de ce nu, acces la anunțuri din interiorul companiei, facilitând astfel comunicarea între departamente și utilizatori în scopul realizării unui mediu de lucru productive.

CAPITOLUL 1

STUDIUL, ANALIZA ȘI PREZENTAREA PROIECTULUI

1.1. Obiective urmărite

În trecut soluțiile pentru comunicare între persoane erau foarte limitate, avansarea tehnologiei a venit în ajutorul acestui aspect. Lansarea rețelei Advanced Research Projects Agency Network sau pe scurt ARPANET a însemnat o nouă metodă de comuncare, până atunci cele existente fiind scrisă și verbală. Pentru două persoane aflate la o distantă mare, o comunicare mai rapidă și mai eficientă, singura metodă rămânea cea verbală, prin telefon. Avansarea tehnologică a dus la introducerea unei noi metode prin intermediul rețelelor de calculatoare. Prima rețea ARPANET a fost concepută de către departamentul de apărare al Statelor Unite și a fost mai întâit implementată în universități și laboratoare [12].

Proiectul a fost unul secret conceput în special pentru a fi folosit pentru transmiterea mai ușoară a informații sensitive [33]. Între timp, același tip de rețea era folosit și de către programatorii care se conectau la supercomputere pentru a putea lucra direct asupra algoritmilor și codurilor de programare. Până atunci ei lucrau într-o locație și apoi se conectau la un supercomputer, metodă foarte ineficientă deoarece erorile trebuiau corectate tot pe un calculator normal. Prin intermediul rețelei programatorii aveau posibilitatea să lucreze de pe calculatoarele lor direct pe supercomputere [31].

Un supercomputer în vremea aceea avea dimensiuni foarte mari și necesita o răcire constantă, deci lucrul direct pe aceste calculatoare nu era foarte plăcut [31]. Deși primul mesaj între două calculatoare membre ARPANET a fost transmis în 1969, se poate spune că apariția publică a internetului nu a avut loc decât douăzeci de ani mai târziu când a apărut conceptual de World Wide Web (WWW) [12].

În 1989 internetul era la început, paginile web puteau conține doar text și uneori poze, iar interfața era destul de similară cu prima pagină a unui ziar. Acest lucru s-a schimbat în 1993 când a fost lansat primul navigator (browser) intitulat Mosaic care putea reda și fișiere multimedia [10].

Fig. 1. Print screen a navigatorului Mosaic (Reprodus din referință [10]).

Pentru anul respectiv pagina web din Fig. 1 era ceva nemaivazut, dar în schimb în comparație cu paginile web actuale, ea este cu mult în urmă. Avansarea tehnologică a condus la crearea unor pagini web mai complexe și cu mai multe funcții. Astăzi, un utilizator are posibilitatea de a interacționa mult mai mult cu elementele grafice alei unei pagini web. Cu toate acestea, dezvoltarea exponențială a acestor elemente nu era posibilă fară existența unei conexiuni la internet și mai ales fără avansarea tehnologică a acesteia.

Acum 20 de ani, utilizatorii nu erau permanent conectați la internet și putine persoane avea acces la această tehnologie. Astăzi, utilizatorii de internet au posibilitatea de a fi permanent conectați, fie că esta vorba de un calculator, un telefon mobil sau o tabletă, iar viteza la care un utilizator poate încărca o pagină web este de multe ori mai mare, oferind și mai multe metode de comunicare.

Pentru o comunicare eficientă prin internediul internetului la început se folosea poșta electronică. Dar și aceasta era eficientă doar într-un grup restrâns de persoane. Atunci când un utilizator dorea să transmită fișiere voluminoase, cum ar fi de exemplul prezentări sau manuscript, acesta întâmpina probleme datorită spațiului limitat de stocare ce era alocat utilizatorului respectiv.

În momentul de față toate programele încep să aibă la bază o rețea (web), adică nu mai necesită un soft instalat pe calculator. Avantajul soluțiilor web este că pot fi accesate de pe orice calcuculator sau dispozitiv conectat la internet fără a necesita instalarea unui pachet software în prealabil, acestă soluție fiind foarte eficientă pentru orice tip de aplicație. O altă alternativă a poștei electronice a fost și tehnologia de mesagerie instanta (instant messageing) prin care fișierele puteau fi trimise instant, dar acest lucru necesită ca ambele persoane să fie conectate la rețeaua respectivă pentru ca fișierul să poată fi transferat. Această tehnologie nu foarte este folosită în interiorul companiilor, multe alegând să blocheze programele de acest tip, în special pentru că aceste programe sunt folosite în scopul socializării.

1.1.1. Factori determinanti

Internetul a avansat foarte mult în ultimii ani, de la căsuțele poștale care acum zece ani aveau o dimensiune de câțiva megabytes la casuțe poștale care promit spațiu nelimitat. Tehnologia a avansat și în privința conectării la internet, de unde utlizatorii aveau nevoie de un calculator pentru a accesa internetul și de un cablu telefonic, acum aceștia pot face acest lucru mult mai eficient, utilizând tehnologia wireless, adică fară să aibă un cablu atașat, și de pe dispositive mobile, cum ar fi: un telefon, o tabletă și multe alte device-uri. Ultimele tendințe în domeniu sunt cuplarea tuturor aparatelor electrice din casă la internet și actionarea lor prinr-o telecomandă universală, sau frigiderul care trimite proprietarului un e-mail în momentul în care acesta trebuie să achiziționeze ceva. Pe internet totul a devenit mai simplu, de la cumpărăturile care se pot realiza prin câteva click-uri până la comandarea unor excursii, unei mașini sau chiar a unei case.

Dacă internetul a avansat și aparatele care se conectează la el au facut acest lucru, la fel și softurile utilizate de acestea care au cunoscut o dezvoltare exponențială. În trecut, dacă un utilizator dorea să editeze un document word, nu se putea face acest lucru dacă pe calulatorul respectiv nu exista instalat Microsoft Office sau un alt program care să poată deschide acel tip de fișier. Singura problemă a companiilor dar și a utilizatorilor casnici în legătură cu programele de acest tip este costul. Pentru fiecare calculator fiind necesară o licența. În 2006 problema deschiderii și editarii acestui tip de fișiere a fost rezolvată de compania Google prin lansarea site-ului Google Docs.

Acesta pagină web oferă posibilitarea oricarui utilizator Google să creeze, editeze și stocheze fișierele care până nu demult necesitau un pachet software instalat. Utilizarea gratuită și disponibilitatea pe orice calculator au facut din Google Docs un partener de încredere pentru multe companii, iar pentru utilizatorii casnici care dorec doar sa creeze și să aibe acces la funcțiile de bază oferite de programlele plătite, a eliminat costul unui pachet software.

Acesta este doar unul din exemplele prin care stocarea online a venit în ajutorul utilizatorului și care indică tendința de a stoca totul pe internet pentru a putea fi accesate din orice locație. Pentru o companie care are agenți de vânzări acest lucru înseamnă accesarea fișierelor de către agenți de pe orice calculator și din orice locație unde au acces la internet. Cea mai mare problemă întâmpinată în accest sens este partajarea fișierelor mari (cum ar fi prezentările power point) către mai mulți utilizatori. Cea mai bună metodă de a partaja fișierele în interiorul firmei sunt rețelele intranet, adică o rețea la care au acces toți angajații și care nu are costuri mari de întreținere, dar acestă soluție nu poate fi aplicată în fiecare caz.

O rețea intranet este similară cu rețeaua internet, diferența majoră dintre cele două fiind conectivitatea. Internetul este liber pentru oricine, iar o rețea intranet este rețeauă interioară a unei companii la care au acces doar persoanele din interiorul ei. O rețea intranet este mult mai securizată decât mediul internet, de cele mai multe ori un utilizator obișnuit al rețelei nu are acces peste tot în rețea, și există programe sau aparatură de tip firewall care blochează accesul atacatorilor sau aplicațiilor în rețeaua internă.

Un firewall reprezintă un program sau un dispozitiv care permite sau blochează pachetele venite din mediul internet. Accessul se face pe pe baza unui set de reguli setat de către utilizator, iar controlul se realizează prin strictețea regulilor care în anumite cazuri pot duce și la blocarea accesului unui atacator.

Partajarea fișierelor în rețeaua intranet poate fi realizată destul de usor, astfel se pot selecta foldere la care să aibă acces toți utilizatorii. Cu toate acestea, apare problema fișierelor la care nu trebuie să aibe acces toți utilizatorii sau numărul prea mare de fișiere și sortarea acestora. În scurt timp ar fi prea încarcata și mai costisitoare din punct de vedere al timpului, fișierele neimportante fiind adăugate, iar sortarea acestora devenind dificilă. Deoarece este vorba de o rețeaua internă, accesul utilizatorilor este condiționat de prezența lor fizică în companie. Se din interiorul ei. O rețea intranet este mult mai securizată decât mediul internet, de cele mai multe ori un utilizator obișnuit al rețelei nu are acces peste tot în rețea, și există programe sau aparatură de tip firewall care blochează accesul atacatorilor sau aplicațiilor în rețeaua internă.

Un firewall reprezintă un program sau un dispozitiv care permite sau blochează pachetele venite din mediul internet. Accessul se face pe pe baza unui set de reguli setat de către utilizator, iar controlul se realizează prin strictețea regulilor care în anumite cazuri pot duce și la blocarea accesului unui atacator.

Partajarea fișierelor în rețeaua intranet poate fi realizată destul de usor, astfel se pot selecta foldere la care să aibă acces toți utilizatorii. Cu toate acestea, apare problema fișierelor la care nu trebuie să aibe acces toți utilizatorii sau numărul prea mare de fișiere și sortarea acestora. În scurt timp ar fi prea încarcata și mai costisitoare din punct de vedere al timpului, fișierele neimportante fiind adăugate, iar sortarea acestora devenind dificilă. Deoarece este vorba de o rețeaua internă, accesul utilizatorilor este condiționat de prezența lor fizică în companie. Soluțiile pentru accesare de la distanță, a datelor respective, sunt complexe și nu pot fi realizate de un utilizator obișnuit.

Pentru că soluțiile de mai sus nu puteau să acomodeze necesitățile tuturor utilizatorilor au apărut și programe care stochează fișierele pe serverele unei companii, care oferă spațiul de stocare contra cost. Câteva exemple de astfel de companii sunt Galaxy, Sales Force sau ERP. Aceste soluții din păcate nu sunt foarte convenabile, ele având un cost de utilizare destul de ridicat pentru servicii oferite. Dacă costul acestor servicii poate fi amortizat de companiile mari, acesta reprezintă un adevărat impediment pentru companiile de nivel mic sau mediu. De asemenea, companiile care ofera astfel de servicii readuc o problemă mai veche în discuție, cea a necesității instalării unui software pe calculator pentru a facilita accesul utilizatorilor la fișierele sau anunțurile stocate în spațiul respectiv. Sistemele existente au și restricții cu privire la numărul de utilizatori, dar și mai important numărul de fișiere care pot fi stocate și/sau dimensiunea acestora.

În cazul unei singure persoane care are mai mult de un calculator sau vrea să aibă acces la câteva fișiere de oriunde, există servicii gratuite cum ar fi Dropbox unde un utilizator poate uploda fișiere printr-un navigator (browser) și le poate accesa de oriunde. Un cont gratuit oferă utilizatorului un spațiu de stocare cu o capacitate de 2 gigabytes. În cazul serviciilor de tip Dropbox este important să avem în vedere faptul că această soluție poate fi folosită doar atunci când există un singur utilizator, astfel o singură persoană are acces deplin la fișierele respective. Pentru a partaja fișierele cu mai multi utilizatori, spațiul de stocare al fiecărui fișier ar fi contorizat pe fiecare cont, acest lucru înseamna că ar fi nevoie de spațiu de stocare mai mare.

În momentul de față portabilitatea este cel mai important lucru pentru utilizator, să poată avea acces la informații în cel mai ușor mod, din orice locație, fără să fie nevoit să piardă timp pentru a începe accesarea prin instalarea unui soft; astfe totul trebuie să fie instant. Dacă soluțiile actuale nu permit acest lucru, înseamna că este nevoie de o soluție nouă, una care să fie ușor de folosit încât să poată fi utilizată și de cei mai neexperimentați utilizatori.

1.1.2. Obiectivele proiectului

Principalul obiectiv al proiectului este dezvoltarea unuei pagini web care să poată fi accesată atât din intranet cât și din extranet de către angajații companiei. Dacă intranet este rețeaua din interiorul companiei, extranet reprezintă aceeași rețea de calculatoare dar care poate fi accesată și din exteriorul companiei. Doar pentru că este accesată din exteriorul companiei nu înseamna că este accesată ca orice altă retea sau website din internet, sau de orice persoană care are acces la internet. Site-urile care sunt accesibile din afara rețelei interne a unei companii nu pot fi accesate de orice utilizator, ci doar de un utilizator înregistrat din interiorul companiei. Acest tip de conexiune este de obicei folosită pentru relațiile între companii, universități sau de către angajații societății pentru a accesa resursele din interiorul companiei, atunci când nu sunt prezenți fizic în locație.

Site-ul va putea fi accesat de orice persoană care are deja un utilizator și o parolă aprobate de către administrator. Fără un nume de utilizator valid singura pagină care poate fi accesată este cea de contact. Motivul principal pentru dezvolatrea acestuei pagini web este costul redus de întreținere și funcționalitatea produsului. Pagina web nu are nevoie de o taxă lunară de utilizare spre deosebire de produsele concurente, iar interfața de utilizare va fi una mult mai uzuală. Funcțiile principale pe care va îndeplinini sunt partajarea fișierelor de orice tip și publicarea anunțurilor și mesajele către utilizatori. De asemenea, aplicația permite, în funcție de caz, tuturor utilizatorilor sau doar pentru un departament adăugarea de anunțuri și fisiere.

Singurul cost lunar care este posibil să apară ar fi hosting-ul, atunci când, compania nu dorește să utilizeze un calculator în interiorul sediului pentru a găzdui aplicația. Dar, acest cost ar fi mult mai redus decât achizitionarea unei soluții deja existente. De asemenea, costul conexiunii la internet ar fi deja suportat de companie în cazul în care site-ul ar fi ținut în interiorul companie. Lucrând în interiorul sediului toți utilizatorii ar avea acces la site cu o rată de transfer a fișierelor maximă.

Utilizatorii ar putea folosi acestă pagină web pentru a trimite mesaje între ei, acest lucru poate să elimine utilizarea programelor de socializare care au aceeași întrebuințare. Toate aceste funcții vor putea fi accesate din orice locație indiferent de tipul conexiunii.

CAPITOLUL 2

SISTEME INFORMATICE

2.1. Comunicarea în sistemele informatice

Prima comunicare între sisteme informatice prin intermediul unei conexiuni a avut loc în anul 1969 în Statele Unite ale Americii, atunci când două universități au încercat să scrie cuvântul "login" (“înregistrare”) prin intermediul unei conexiuni de 50 kbps [12]. Până atunci mesajele care puteau fi transmise erau între utilizatori care erau conectați la acealși supercomputer sau mainframe, iar acest lucru a fost utilizat încă de la începutul anilor '60 [12]. Mesajele erau necesare deoarece supercomputerele din vremea respectivă erau deja capabile să permită accesul simultan al mai multor utilizatori, dar și executarea concomitentă a mai multor programe [12]. La începutul anilor ‘70 Ray Tomlison a dezvoltat sistemele numite SNDMSG (
"send message", adică "trimite mesaj") și READMAIL ("citește mesaj") [30] Cu toate acestea, sistemele SNDMSG și READMAIL aveau posibiliatea de a transmite mesaje care conțineau doar text, dar prin adăugarea unei extensii numite CPYNET aceste sistme au evoluat [42]. Acest program oferea utilizatorilor posibilitatea transmiterii de fișiere în interiorul rețelei, astfel fișierele puteau fi trimise de un utilizator de pe un calculator și accesate de alt utilizator de pe alt calculator.

Soluția aceasta din păcate nu putea fi aplicată și pentru calculatoarele conectate la rețele diferite, mesajele între rețele trebuie să aibe un destinatar bine definit ca să poata să fie transmise. Pentru a rezolva această problemă, în 1972, Ray Tomlinson a pus bazele poștei electronice (e-mail) pe care îl folosim și în ziua de azi [38]. La început mesajele erau trimise către un anumit calculator și un anumit utilizator. Pentru a face legătura între cele două Ray Tomlinson a folosit simbolul ‘@’ care este folosit și acum pentru a adresa un email unui anumit utilizator al unui domeniu. Tot în același an comanda MAIL a fost adaugată protocolului pentru transfer de fișiere, file transfer protocol (FTP).

Prin intermediul acestui protocol, puteam să trimitem o copie a unei scrisori electronice către mai mulți utilizatori, oferind funcționalitatea de bază a poștei electronice din zilele noastre. Protocolul FTP este utilizat pentru transmiterea fișierelor între calculatoare, în principal de la un calculator care rulează un server FTP pe portul 21 și un client care se conectează la serverul respectiv. Pentru că soluția trimiterii unei copii a unui mesaj către fiecare adresă din domeniu nu era soluția perfectă, consumând destul de mult timp din partea persoanei care trimitea scrisoarea, această problemă a fost rezolvată la începutul anilor '80 când a fost lansat protocolul Simple Mail Transfer Protocol (SMTP) care este folosit și în ziua de azi [36, 38]. SMTP oferă încă de la început posibilitatea trimiterii unui mesaj către mai multi utilizatori ai unui domeniu fără a mai fi necesar ca mesajul să fie trimis către fiecare adresă de către persoana care îl trimite, în momentul acesta serverul se ocupă de copierea mesajului către fiecare utilizator al unui domeniu.

În 1975 a aparut și primul program pentru organizarea poștei electronice [38]. Până la apariția sa mesajele electronice puteau fi citite doar cu funcția READMAIL, care avea multe deficiențe, cum ar fi ordinea citirii mesajelor. Astfel, mesajele puteau fi citite strict în ordinea venirii, iar acestea nu puteau fi salvate, și nici nu se putea trimite un raspuns direct. Din cauza metodei rudimentare prin care putea fi citită poșta electronică a fost dezvoltat primul soft pentru organizarea mail-urilor. Acesta se numește RD și a introdus sortarea poștei electronice după subiect sau dată, dar și capabilitatea de a citi, șterge sau răspunde unui mesaj în ordinea dorită de către utilizator.

Poșta electronică este unul din principalele motive pentru care ARPANET a devenit internet, oricine avea nevoie de acest serviciu. După ce internetul a devenit public, au apărut și programele care stocau email-ul pe calculator încât acesta să fie citit fără ca utilizatorul să fie conectat la internet, pe vremea respectivă conexiunile fiind dial-up. O conexiune de tip dial-up se conectează la internet prin intermediul liniei telefonice. Astfel a apărut Microsoft Outlook și multe alte programe similare. Programele de acest tip care stochează poșta electronică pe un calculator folosesc următoarele protocoale pentru a primi și trimite email-uri, și anume Post Office Protocol (POP) și Internet Message Access Protocol (IMAP) pentru primirea corespondenței și Simple Mail Transfer Protocol (SMTP) pentru trimiterea ei [38].

Post Office Protocol este un standard folosit pentru a primi poștă electronică, cu toate că are o funcție care îi permite să păstreze mesajele pe server după ce ele au fost transferate, funcția sa de bază este să se conecteze la server, să primească toate fișierele găsite în casuța poștală, să le șteargă și apoi să se deconecteze. POP a ajuns la versiunea numărul trei în anul 1988, versiune care este folosită în continuare într-o formă puțin modificată. Aceasta folosește portul numărul 110 pentru o autentificare normală și portul 995 pentru o autentificare securizată prin secure socket layer (SSL), metodă de conectare folosită de exemplu de Gmail [4].

Al doilea protocol folosit pentru a copia mesajele de pe serverul de mail este Internet Message Access Protocol (IMAP) care a fost lansat în anul 1986 și acum se află la versiunea numărul patru [35]. De obicei IMAP lasă toate mesajele pe server, chiar dacă ele au fost retrase, și în calculatorul persoanei, ele fiind șterse doar în momentul în care sunt șterse manual de către utilizator. IMAP se conectează pe portul 143 pentru o conexiune normală și pe portul 993 pentru o conexiune SSL [4].

Simple Mail Transfer Protocol este protocolul folosit pentru transmiterea poștei electronice. Lansat în anul 1982, a trecut prin mai multe schimbari, ultima având loc în anul 2008 [28]. Deoarece este singurul protocol pentru transmiterea de date, acesta este folosit împreuna cu POP sau IMAP pentru primirea mesajelor. Comparativ cu POP și IMAP, acesta folosește portul 25, atât pentru o conexiune normal, cât și pentru una securizată (SSL) [4].

De la lansarea publică a internetului și apariția programelor pentru gestionarea poștei electronice, sistemul a avansat foarte mult, în momentul de față oricine poate să aibă mai multe adrese de e-mail. Singura problemă care incă este întampinată a rămas mărimea atașamentelor. Serviciile gratuite de e-mail cum ar fi Gmail, Yahoo sau Live oferă posibilitatea de a atașa fișiere până la 25 de megabytes, însă acest spațiu nu este suficient în toate cazurile. Multe companii optează pentru servicii de mail care nu sunt gratuite, dar care permit angajaților companiei să trimită și atașamente mai mari.

Cu toate acestea, căsuțele poștale nu sunt nelimitate și apare din nou problema spațiului. Dacă angajații unui întreg departament trebuie să aibă acces la câteva fișiere acest lucru este e dificil deoarece implică trimiterea tuturor fișierelor pe mail. Cu toate acestea, este mult mai simplu ca angajații să poată să le descarce de pe un website. În acest fel se elimină problema spațiului individual de stocare și chiar al mărimii.

Dacă ne gândim că acum 10 ani o casuță poștală avea dimensiunea totală de 6 megabytes, observăm cât de mult, dar și mai important, cât de repede a evoluat acest concept. Pentru că utilizatorii acestor servicii nu puteau trimite fișiere mari prin e-mail ei au început să se folosească programele oferite de către provideri pentru chat și transfer de fișiere, pentru a le transmite. Companiile, în schimb, au văzut din acest lucru o mare problemă, care mai târziu a dus și la blocarea acestui tip de programe în corporații. Dacă ar fi putut să trimită strict fișiere, atunci probabil programele nu ajungeau să fie blocate în companii, în schimb aceste programe sunt folosite în principal pentru a socializa, iar un angajator nu urmarește acest lucru, considerînd că duce la scăderea productivității muncii. Încă o mare problemă a folosirii acestor programe pentru a transfera fișierele mai mari este că trebuie trimise la fiecare utilizator în parte, lucru care nu este deloc eficient, în special pentru că utilizatorul trebuie să fie conectat la programul respectiv pentru a putea primi fișierul.

Dacă e-mail-ul nu poate să fie eficient în toate cazurile, iar programele cum ar fi Galaxy sau programele folosite pentru a socializa pot fi considerate că sunt și mai ineficiente dacă utilizatorul dorește să trimită un fișier către mai multe persoane, atunci există încă o opțiune, și anume, site-urile de transfer. Desigur există multe site-uri de acest tip. Unul din cele mai folosite în țară este Transfer.ro, unde orice persoană cu acces la internet poate să uplodeze fișierele pe pagina web respectivă, totuși și această opțiune nu este una prea fericită din mai multe puncte de vedere. Fișierele pot avea o mărime maximă de 1 Gigabyte pe un cont gratuit, iar fișierele sunt șterse după 10 zile, deci nu este deloc o opțiune fiabilă pentru o companie care are nevoie de acces continuu la fișiere. Pentru a păstra fișierele 30 de zile de exemplu se percepe o taxă, la fel ca acest serviciu și cele similare funcționează pe aceleași principii, fișierele sunt șterse în maxim o lună de când au fost puse acolo. O altă mare problemă este confidențialitatea, un link la care oricine poate să aibă acces nu este de dorit atunci când este vorba despre fișiere senzitive, date contabile spre exemplu sau contracte. Până acum am observat că nici una din soluțiile gratuite nu poate să ofere toate facilitățile de care avem nevoie, să fie ușor de folosit, securizat și nu în ultimul rând să poată fi accesat din orice locație la orice oră.

2.2.1. Istoria Calculatoarelor

Istoria calculatoarelor a început acum mai bine de o sută de ani, la mijlocul anilor 1800 [17]. Primul calculator a fost unul mecanic, care nu semăna deloc cu un calculator al zilelor noastre, în schimb o parte din tehnologia folosită stă la baza tehnologiei care se folosește în zilele noastre. O parte din conceptele tehnologice încă folosite sunt:

separarea spațiului de stocare de partea de procesare;

structura logică a calculatoarelor;

modul în care instrucțiunile sunt preluate și afișate;

În anii 1930 componente electronice au fost introduse în calculatoare [32]. Tot atunci a fost efectuată și prima accesare de la distanță a unui calculator de catre George Stibitz [17]. Acesta a accesat calculatorul pe care îl avea în New York de la o conferință prin intermediul unui teleprinter.

Primul calculator comercial a fost lansat abia în anul 1951, el se numea Leo și a fost conceput pentru a efectua diverse calcule bancare sau pentru contabilitate [17]. Până în acel moment calculatoarele au fost folosite strict în partea științifică. Tot în același an, a aparut și primul calculator, care a fost produs în masă, el purta denumirea UNIVAC (Universal Automatic Computer) [17]. UNIVAC a fost achiziționat la început de instituții ale statului apoi si de companii private, fiind folosit chiar pentru a prezice cu succes câștigătorul alegerilor prezidentiale din 1952 în Statele Unite. Tot UNIVAC a fost primul calculator, care a venit echipat cuo unitate pentru benzinle magnetice, dar și primul calculator care a fosit memorie buffer [29]. În Fig. 2 se poate observa dimensiunea pe care o avea acest calculator.

Fig. 2. Calculatorul UNIVAC [29]

În anii 1950, IBM a intrat pe piața calculatoarelor prin IBM 650 Fig. 2 și IBM 701. După intrarea pe piață a firmei IBM a apărut și primul limbaj de programare numit Fortran, care a fost lansat cu IBM 704 [17].

Fig. 3. IBM 650 [17]

Calculatoarele aveau dimensiuni foarte mari și erau foarte grele, dar acest lucru urma să se schimbe în anii 1960 prin dezvoltarea microprocesorului [32]. Odată cu trecerea de la tranzistori la microprocesoare, dimensiunile și prețul calculatoarelor a scăzut. Acest lucru a dus la apariția calculatoarelor personale în anul 1974, la vremea respectivă calculatoarele venind asamblate sau sub forma unui chit pentru a fi asamblat de către compărător [17]. Primele calculatoare care au fost cumpărate în masă au fost Commodore, TRS-80 și Apple II. Spre deosebire de calculatoarele dezvoltate înainte de existența microprocesorului, acestea au dimensiuni foarte reduse. Commodore PET a fost considerat calculatorul personal al anilor '70. Aceste calculatoare erau dotate puțină memorie Random Access Memory (RAM) în comparație cu un calculator modern. Calculatoarele aveau între 4 kB RAM și 48 kB RAM. Apple II era singurul calculator din acea perioadă cu un afisare integrală color, acest lucru fiind un avantaj care a dus la vânzarea a peste 4 milioane de unități [17].

Fig. 4. Calculatorul Commodore PET [17].

Expansiunea a continuat în anii 1980 prin apariția MS-DOS și Windows, calculatoarele devenind din ce în ce mai performante [32].

2.2. Soluții existente

Dacă în subcapitolul trecut am putut să ne convingem că soluții gratuite perfecte nu există, poate o aplicție plătită poate rezolva aceste probleme. Aplicația Galaxy a celor de la Singular Logic poate fi customizată pentru aproape orice tip de afacere, fiind una mai complexă, care de fapt înglobează mai multe tehnologii folosite și de alte companii. Soluțiile lor sunt bazate pe Enterprise Resources Planning (ERP) și oferă posibilitatea companiei de a introduce orice tip de anunț.

Galaxy este defapt o suită de aplicații care sunt înglobate într-o singură aplicație. Spunem o suită pentru că aplicațiile sunt făcute pentru diferite departamente sau tipuri de afaceri, de la afaceri mici cum ar fi un restaurant până la fiecare departament dintr-o firmă foarte mare. Folosind bazele de date de la MySQL sau ORACLE, Galaxy reusește să înglobeze toate funcțiile și orice tip de activitate imaginabil. Un minus al acestei aplicații, precum și a celorlalte aplicații similare este prețul, care este destul de ridicat, ofertele fiind făcute în funcție de fiecare afacere.

Ofertele sunt personalizate, toate datele fiind ținute pe serverele celor de la Singular Logic, iar un număr mai mare de angajați înseamnă mai mult spațiu de stocare, datorită diversității fișierelor, lafel se poate întampla și cu o aplicație mai complexă. Din start programul are, să îi spunem, un mic defect, și anume faptul că trebuie neaparat să fie instalat pe calculatorul de pe care utilizatorul dorește să acceseze rețeaua, iar pentru orice funcție adaugată este necesar ca utilizatorul să reinstaleze programul pentru a încorpora funcția respectivă. Acesta este un program conceput pentru mail ales pentru intranet, dar poate fi accesat și din afara acestuia, aceasta fiind una dintre cerințele pe care le cautam.

La început totul pare foarte simplu de folosit, dar cand vom intra în detaliu vom vedea că nu este chiar așa, spre exemplu un anunț este foarte dificil de postat, iar trimiterea unui fișier către mai multi utilizatori se bazează tot pe e-mail. La orice modificare de date a unui anunț cei care trebuie să fie notificați primesc un email dat automat de sistem. Problema aparută aici este și cea despre care am discutat în capitolul precedent, spațiul de stocare al căsuței poștale este limitat, iar un utilizator este posibil să nu primească email-ul respectiv din cauza lipsei de spațiului.

Punctele negative nu se opresc aici, lucruri care normal ar trebui să fie foarte simplu de realizat durează foarte mult. Astfel, pentru adăugarea unui anunț este necesar ca utilizatorul să dea foarte multe detalii și din nefericire anunțul respectiv nu poate să aibă nici un fișier adăugat, în principiu pentru că singura metoda de a transmite fișierele a ramas tot prin e-mail sau prin transmiterea unor adrese fizice, același e-mail care are o dimensiune limitată. Soluțiile de acest tip cu o stocare pe serverele companiei de la care este achiziționat serviciul nu oferă unul dintre cele mai de bază servicii, și anume stocarea de fișiere în mediul online.

Fig. 5. Adăugare activitate nouă în Galaxy (print screen)

Chiar dacă acest program oferă foarte multe opțiuni la adăugarea unui anunț acestea sunt foarte multe detalii care de multe ori mai mult încurcă un utilizator decât îl ajută. De exemplu, adăugarea unui anunț nu este atât de ușoară, nu doar pentru că utilizatorul trebuie să alegă dintr-o listă tipul de activitate, dar completarea efectivă a anunțului este foarte laborioasă, lucru care pentru un utilizator obișnuit sau care vrea să adauge mai multe anunțuri deja pierde foarte mult timp numai până ajunge să selecteze exact tipul activitații și să introducă toate datele. Activitațile pot fi legate de vânzări, achiziții, chitanțe, livrări, etc. Pentru o companie mai dezvoltată poate acest lucru este necesar dar pentru o companie mică sau medie care are nevoie de un intranet care să poată sustine fișierele și anunțurile companiei, este deja prea mult. În imaginea de mai sus observăm tipurile de anunțuri care pot fi adăugate. Fig. 5.

Dacă a durat puțin pentru ca utilizatorul să ajungă la punctul de a adăuga anunțul, situația stă altfel atunci când trebuie să îl și completeze. Imaginea din Fig. 6 prezintă un ecran foarte încărcat, care prelungește un process, care normal trebuie să dureze 1-2 minute, la 10 minute sau chiar mai mult în funcție de cât de multe detalii trebuie utilizatorul să completeze. Anunțuri generale nu pot fi publicate decât dacă adăugăm toate persoanele sau departamentele individual.

Fig. 6. Adăugare activitate nouă în Galaxy (print screen)

De asemenea funcția de search a programului funcționează numai pe baza unor date ale fișierului; astfel, nu poate fi căutat un fișier după nume pur și simplu, utilizatorul trebuie să caute după data adăugării numeului și tipul fișierului. Aceeași situație o intâlnim și dacă vrem să modificăm un anunț mai vechi de o saptămână, el trebuie căutat după cuvintele cheie din el, deoarece nu mai apare în lista de anunțuri recente.

O altă problemă majoră mai este conexiunea la serverele celor de la Singular Logic, dacă stăm să completăm toate detaliile din ecranul de mai sus, avem foarte multe șanse până terminăm să treacă timpul alocat de ei pentru inactivitate și să fim deconectați de la server. În momentul respectiv se pierd toate datele care au fost introduse și suntem nevoiți să o luăm de la capăt. La fel se întamplă și dacă un utilizator dorește să scrie un anunț mai lung. Astfel, există posibilitatea ca utilizatorul să fie deconectat de la server până să termine să scrie mesajul și/sau în momentul în care utilizatorul trece la salvarea mesajului respectiv să fie delogat automat de la server și toate informațiile din ultima sesiune să fie șterse.

Dacă soluția nu este excelentă din punct de vedere tehnic, lucrurile nu stau mai bine nici în partea hardware. Programul are nevoie de un calculator destul de performant pentru a fi rulat, în momentul inițializării având nevoie de circa 250 megabytes de ram. Dacă utilizatorul ajunge să deschidă cateva e-mail-uri în acest program, valoarea resectivă crește, iar dacă resursele nu sunt disponibile în sistem aplicația se blochează. Aceeași situație este întâlnită și în momentul încărcării activității zilnice.

Fișierele prezente în acest sistem sunt deschise prin intermediul aplicației Galaxy, chiar dacă avem un program specializat pentru a deschide acel tip de fișier. De exemplu un fișier Microsoft Word nu este deschis prin intermediul acestei aplicații ci este deschis în aplicația Galaxy. De multe ori este nevoie de mai multe încercări pentru a lista (printa) un fișier, din cauza aplicației care se blochează.

Noțiunea de fișiere generale nu există, pentru a adăuga un fișier, acesta trebuie să fie pus pe serverele celor de la Singular Logic și apoi trebuie adăugat în sistem. După ce a fost adăugat putem trimite o torificare către utilizatori cu adresa fizică a fișierului respectiv.

CAPITOLUL 3

PROIECTAREA ȘI REALIZAREA SISTEMULUI INFORMATIC

3.1. Conceperea sistemului informatic

Realizarea unui sistem informatic presupune o proiectare a ansamblului pe mai multe nivele. Pentru început este vorba despre o prezentare generală, care conține și cele mai importante funcții ale sistemului, astfel încât obiectivele proiectului să fie îndeplinite. Următoarea parte a dezvoltării sistemului conține o detaliere completă a tuturor funcțiilor și a legăturilor dintre ele.

3.1.1. Organizarea aplicației

Aplicația este organizată pe mai multe nivele de acces, de la un utilizator normal până la un administrator care va putea modifica orice. Din motive de securitate, un administrator al site-ului trebuie să adauge manual conturile utilizatorilor, în acest fel avem certitudinea că numai persoane din interiorul companiei sunt înregistrate. Este un procedeu mai simplu decât este înregistrarea automată urmată de o activare manuală a fiecărui cont de către un administrator. Fiind o pagină web care poate fi accesată din exterior oricine ar putea folosi formularul de înregistrare și munca administratorilor ar dura mai mult.

Un utilizator normal are acces la aproape toate funcțiile, printre ele se numără:

Adăugare anunțuri;

Folosirea sistemului de mesajerie, trimite și primește mesaje de la orice utilizator al sistemului;

Adăugare fișiere publice și private pentru departamentul său pe site;

Căutare în baza de a utilizatorilor precum și listarea tuturor fișierelor sau anunțurilor existente pe pagina web.

Următorul nivel de acces este cel pentru managerii de sistem, aceștia sunt în principal persoanele cu funcții mai înalte. Pe lânga funcțiile tipice ale unui utilizator obișnuit, aceste persoane pot avea următoarele funcții suplimentare:

Editarea sau ștergerea oricărui anunț adăugat pe site;

Ștergerea oricărui fișier adăugat pe site.

Listarea utilizatorilor și a departamentelor.

Ultimul nivel este cel al administratorilor, pe lângă celelalte două nivele de acess, aceștia mai au următoarele funcții:

Adăugarea utilizatorilor în sistem;

Ștergerea utilizatorilor din sistem;

Modificarea nivelului de acces a unui utilizator;

Adaugă sau modifică sau șterge departamente.

Pentru a se înregistra este obligatoriu ca utilizatorii să aibe completate următoarele câmpuri:

Numele și prenumele;

Adresa de email folosită pentru autentificare;

Parola temporara a utilizatorului;

Numărul de telefon din interiorul companiei;

Departamentul în care lucreză;

Funcția pe care este angajat;

Sediul în care lucrează;

Nivelul de acces pe pagina web al utilizatorului;

Data nașterii;

Numărul de telefon mobil.

Orice utilizator poate avea acces la detaliile altui utilizator, cum ar fi numărul de telefon, adresele de e-mail sau departamentul în care lucrează. Singurul lucru la care au acces doar managerii și administratorii este listarea tuturor utilizatorilor.

3.1.2. Funcțiile sistemului

Pentru a oferi funcțiile pe care programe precum Galaxy nu le oferă, toate fișierele care vor fi puse în cadrul site-ului vor putea fi accesate din orice locație. De asemenea, fișierele pot avea mai multe nivele de securitate:

Pe departament – un fișier dedicate unui departament. De exemplu, un fișier de la departamentul contabilitate nu o să poată fi accesat de către departamentul marketing;

Fișiere publice – pot fi accesate de orice utilizator care are acces la site, adică un utilizator cu o adresă e-mail și o parolă validă.

De asemenea fișiere pot fi de mai multe tipuri, o pictogramă pentru extensia fiecărui fișier este afisată în stanga acestuia. Tiputile de fișiere acceptate sunt:

Documentele .doc sau .docx (microsoft word);

Fișiere .xls sau xlsx (Microsoft Excel);

Fișiere .ppt sau pptx (Microsoft Powepoint);

Fișiere .txt (fisiere text);

Fișiere .rtf (Wordpad);

Fișiere .jpg, .png, .gif (fișiere foto);

Fișiere .avi, .mpeg, .flv, .mp4 (fișiere video);

Fișiere .mp3, .wav (fișiere audio);

Arhive WinRar (.rar) sau WinZip (.zip).

Fișierele adăugate nu pot fi șterse decât de utilizatorii cu funcții avansate, adică managerii de sistem și administratorii paginii web.

Funcția de mesagerie internă, permite trimiterea unui mesaj către un anumit utilizator. După trimitere, mesajul este salvat în secțiunea ’mesaje trimise’. Utilizatorul căruia îi este adresat mesajul va avea indicat numărul de mesaje necitite la accesarea secțiunii ’Acasa’. Utilizatorul poate să șteargă mesajele oricând prin funcția ’șterge’. Un mesaj deschis pentru a fi citit, oferă posibilitatea trimiterii unui răspuns către utilizatorul care a trimis mesajul sau ștergere a mesajului.

Fiecare utilizator poate să seteze o poză personală pentru profilul acestuia. Poza este afișată atunci când utilizatorul este autentificat pe pagina web. Poza poate să aibă orice dimensiune de până la 16 megabytes cu extensia jpg, este de preferat rezolutia sa fie până într-un megabyte pentru a nu solicita inutil banda de internet a serverului.

După autentificare, utilizatorul este redirectionat automat pe pagina ’acasa’, unde poate să vadă câte mesaje necitite are, ultimele anunțuri adăugate pe site, dar și ultimele fișiere adăugate în sistem. Tot din prima pagină, utilizatorul are acces și la funcția de căutare a unui utilizator, anunț sau fișier. Căutarea unui utilizator, se face după numele acestuia. Funcția ’căutare’ poate fi accesată din partea dreaptă a site-ului.

Deoarece înregistrarea pe site este restricționată prin adăugarea manuala a conturilor noi de către un administrator al site-ului, acestă metodă asigură că fiecare utilizator este angajat. Tot un administrator este responsabil și de răspunsurile pentru formularul de contact, formular care poate fi accesat și fără ca utilizatorul să fie autentificat pe site. Pentru a modifica nivelul de acces al unui utilizator, administratorul trebuie să acceseze utilizatorul respectiv și să acceseze funcția "modifică acces". Numai un administrator poate să dea drepturi unui utilizator pentru a avea acces la un nivel mai înalt.

Funcția "adaugă anunt" listează opțiunile anunțului, el poate fi unul doar pentru departamentul din care face parte utilizatorul sau poate fi un anunț general care poate fie vizualizat de toți utilizatorii. Anunțurile ramân permanent în baza de date, ele putând fi șterse doar de către un manager de sistem sau un administrator. Fișierele adăugate pe pagina web au parte a aceeași opțiune, pot fi adăugate pentru toti utilizatorii sau doar pentru utilizatorii unui departament.

Pentru cele două categorii care apar pe pagina principală, opțiunea automată este vizualizarea ultimelor 10 anunțuri adăugate pe pagina web și a ultimelor 10 anunțuri. Alternativ utilizatorii pot să listeze toate fișierele și anunțurile existente în sistem.

3.2. Proiectarea bazei de date

Bazele de date au fost definite ca un "ansamblu structurat de date coerente, fără redundanță inutilă, astfel încât acestea pot fi prelucrate eficient de mai mulți utilizatori într-un mod concurent" [7].

Pentru a realiza un sistem informatic care să raspundă în cel mai facil mod dorințelor utiliatorilor, în urma prelucrării automate a datelor, o importanță deosebită trebuie acordată bazei de date. Fără această bază de date întreg sistemul nu ar putea stoca detaliile fiecarui fișier, utilizator și așa mai departe. Structura bazei de date este exemplificată prin modelul entitate-relație, unde fiecare atribut este explicat, pentru a se asigura indepența logică a fiecărui câmp din baza de date respectivă. Conținutul bazei de date poate fi șters doar printr-o cerere explicită, pentru că odată acceptate datele nu se șterg automat decât dacă există o regulă în acest sens.

3.2.1. Evoluția bazelor de date

O bază de date reprezintă o colecție de date aflate în formă digitală, organizată pentru a putea fi cât mai relevantă pentru obținerea de informații. Până în anul 1950 când calculatoarele au început să susțină și bazele de date, toate datele erau ținute pe hârtie, odată cu apariția calculatoarelor ele fiind mutate pe benzi magnetice [14].

Această metodă nu era deloc eficientă, era nevoie de foarte mulți oameni pentru a introduce și/sau căuta date, ceea ce ducea la o utilizare ineficientă a resurselor existente. Evoluția bazelor de date este formată din trei parți și anume:

Sistemele ierarhice și rețea;

Sistemele relaționale;

Sistemele orientate pe obiect.

Sistemele ierarhice Fig. 7 și de rețea funcționeaza pe modelul arbore (modelul părinte-copil) sau de tip graf și au fost introduse în ani '60 [7]. Pentru o bază de date de dimensiuni reduse acest model nu reprezintă o problemă, în schimb pentru bazele de date mai complexe, conceperea și actualizarea lor era foarte dificilă. În momentul respectiv, sistemele nu erau atât de avansate; astfel, un programator trebuia să seteze manual căile de acces ale unui program către baza de date și nu numai. Din această cauză utilizatorii nu puteau avea acces decât la informația din baza de date proprie, și nu puteau folosi alte informații din bazele de date decât cele aflate în sistem. Pentru a folosi modelul ierarhic datele trebuie să aibă un numitor comun, cu alte cuvinte, nu putem aveam mai multe seturi de date complet diferite. Fiecare nod de tip părinte conține o informație la care unul sau mai multe noduri de tip copil se pot atașa, modelul fiind parcurs de sus în jos. În acest tip de schemă pot să apară și duplicate, deci putem iniția de două ori aceeași entitate.

Modelul ierarhic este foarte ușor de folosit pentru că putem extrage datele din el cu ușurința. Cu toate acestea, utilizatorul trebuie să cunoască baza de date, căutarea unui obiect pornind de la rădăcina și mergând pe fiecare nivel până la obiectul căutat. Problema modelului vine atunci când se dorește introducerea unui element copil care nu are un corespondent părinte, la fel, atunci când se dorește ștergerea un tabel părinte, în momentul respectiv și tabelele copil vor fi șterse.

Fig. 7. Exemplu model ierarhic

Modelul rețea Fig. 8 introdus în aceeași perioadă este puțin diferit față de modelul ierarhic. În principal acest model era conceput pentru baze de date mai mari, suportă relații mai complexe și rezolvă unele probleme ale modelului ierarhic. Metoda de a comunica între fișiere prin intermediul unor indicatori numiți pointer a fost introdusă pentru a rezolva probleme comunicării pe care o avea modelul ierarhic [7]. Structura modelului rețea se reprezintă prin noduri și seturi. Un nod reprezintă o colecție de înregistrari, iar un set reprezintă orice relație din cadrul bazei de date. Tot atunci a fost introdusă și metoda unu la mai mulți sau one to many, adică la un nod se pot lega mai multe noduri, dar unei singure înregistrări, din al doilea membru, nu îi este valabilă decât o înregistrare.

Spre exemplu, un departament al unei companii are mai mulți angajați, în același timp un angajat este membru al unui singur departament. Pentru a căuta ceva în acest tip de bază de date utilizatorul trebuie să o cunoască foarte bine, chiar dacă modul de căutare pare a fi mai simplu. Modificarea bazei este una foarte dificilă, deoarece totul este definit în seturi și prin modificarea unui set modificăm și funcția de căutare pe care o folosesc programele.

Fig. 8. Exemplu model rețea

Modelul relațional a fost introdus în anul 1970 și se bazează atât pe modelul entitate-relație cât și pe modelul conceptual [14]. Acest model permite extinderea bazelor de date și pe calculatoarele persoanele, ne mai fiind necesare servere sau supercomputere pentru a folosi o bază de date, acesta fiind unul din motivele pentru care în momentul de față este cel mai folosit model. Deși sistemul relațional a dezvoltat sistemele precedente, fiind construit tot pentru același tip de aplicații cum ar fi contabilitatea sau gestiunea stocurilor, acest sistem rezolvă problemele de actualizare și căutare ale modelelor anterioare [7].

Modelul relațional a schimbat modul de așezare și gândire a bazelor de date, acum acestea sunt mult mai simple, fiind concepute din:

Relații (structuri cu proprietăți speciale);

Rânduri (datele aflate în interiorul relațiilor);

Coloane (datele rândurilor);

Chei (asociează și identifică rândurile aflate în mai multe tabele).

O relație între două tabele înseamnă asocierea înregistrarilor cu valori identice care sunt membre ale ambelor tabele. Deoarece este vorba despre un tabel relațional, datele sunt independente și nu conțin pointeri pentru a face legătura între tabele. Fiecare tabel are o coloană care este numită cheie primară și care are o valoare unică în acest tabel.

Avantajele modelului relațional [37, 41]:

Structura independentă față de programe (putem modifica baza de date fără a fi nevoiți să modificăm și programele care o accesează);

Securitate sporită, administratorul bazei de date poate impune reguli de acces și modificare a bazei de date;

Utilizarea SQL, un limbaj care este foarte ușor de înteles și pentru utilizatorii neexperimentati;

Scalabilitate și flexibilitate, putem modifica și adăuga informații care pot să nu aibe legatura între ele;

Viziunea dinamică, dacă datele dintr-un tabel se schimbă, în același moment se schimbă și datele care depinde de valoarea precedent schimbată;

Vizibilitatea unor conexiuni care în alte tipuri nu pot fi vizualizate, oricât de multe date am avea în sistem, acestea se pot vedea generând un raport.

Dezavantajele modelului relațional:

Complexitate;

Necesită cunoștiințe avansate de programare.

Există mai multe nivele de acces pentru bazele de date relaționale, acestea sunt [7]:

Utilizator normal, persoană care are acces limitat la baza de date și nu au nevoie de o pregatire în acest sens, drepturile de modificare sunt minime sau inexistente, aceștia accesează baza de date printr-un pachet software;

Utilizator special, persoane care trebuie să adauge produse noi în sistem sau să actualizeze informații, aceștia au acces tot printr-un program software;

Administrator bază de date, persoană care are acces total la baza de date și cunoaște în întregime structura bazei de date, aceștia au posibilitatea de a adăuga și a ștearge orice.

Bazele de date orientate pe obiect vin în continuarea bazelor de date relaționale, fiind numite și a trei a generație de baze de date. Sistemul este unul mai avansat care permite utilizarea obiectelor complexe și dinamice. Bazele de date orientate pe obiect unesc bazele de date cu programarea orientată pe obiect pentru a facilita organizarea obiectelor partajate între utilizatori [7].

Câteva avantaje ale bazelor orientate pe obiect sunt [7]:

Prelucrarea îmbunătățită a datelor;

Îmbunătățirea interfeței pe care lucrează utilizatorii;

Deducerea raspunsurilor îmbunătățită (ierarhie pe clase);

Pot lua în considerare și astepectele dinamice ale bazei de date;

Aplicabilitate pentru bazele de date avansate.

Dezavantaje ale bazelor de date orientate pe obiect:

Necesită cunoștiințe avansate despre bazele de date și programare orientată pe obiect;

Lipsa unui model de date universal.

Modelul relațional cuprinde date statice cu un comportament dinamic dar cu ajutorul unor programe care le modifică, spre exemplu stocurile unui magazin se modifică odată cu vânzarea unui aticol. Astfel, acest sistem nu poate modela obiecte complexe cum ar fi listele sau grafurile. În schimb, modelul bazelor de date orientat pe obiect pot face acest lucru datorită programării orientate pe obiect. Definirea obiectelor este un pas foarte important, dar același timp un pas dificil, fiind nevoie de cunoștiințe bogate ale ambelor domenii. Mai departe obiectele de același tip formează o clasă unde sunt incluse alături de date și metodele de acces. Pentru a introduce sau șterge un obiect programatorul se folosește de constructori și destructori [7].

3.2.2. Modelul entitate-relație

Relația sau asocierea din modelul entitate-relație este o comunicare între două sau mai multe entitați. Modelul entitate-relație contine un set de constructori folosiți pentru a interpreta și specifica documentele logice, dar și specificațiile hardware. Acest model este unul conceptual și nu poate fi folosit pentru a implementa direct baza de date [7].

Structura bazei de date diferă în funcție de complexitatea cerințelor, totul fiind variabil în funcție de metoda de rezolvare. De asemenea baza de date nu este niciodată statică, pe langă faptul că informații noi sunt adăugate zilnic în ea, oricând poate să apară o nouă cerință a sistemului care ar duce la schimbarea unor atribute în baza de date.

Arhitectura bazei de date conține mai multe elemente importante [7]:

sistemul de gestiune a bazei de date (program prin care interacționăm cu baza de date, pentru a prelucra datele mai complexe);

un mic dicționar care include schema bazei de date, dar și fiecare entitate explicată;

mijloacele hardware;

permisiunile administrative;

baza de date propriu-zisă unde se memorează datele.

Orice informație care urmează să fie salvată în baza de date trebuie să aibă un corespondent în aceasta. De obicei, acest lucru înseamnă un câmp care are mai multe atribute. Mai multe atribute reprezintă o entitate. Entitatea în același timp este o activitate, un concept sau un eveniment semnificativ pentru baza noastră de date. O entitate este unică, nu pot exista mai multe entități cu același nume, sau mai multe entități cu nume diferite dar care să posede aceeași funcție.

Fiecare entitate are nevoie de o cheie primară pentru a fi unic identificată. Cheia primară are o valoare care este inconfundabilă pentru acea entitate, de exemplu id-ul unui utilizator poate să fie o cheie primară pentru entitatea utilizatori, nu pot exista doi utilizatori cu același id. Caracteristicile unei chei primare sunt [7]:

este stabilă (nu este o valoare care se poate schimba);

este controlată doar de administratorii bazei de date, un utilizator normal nu își cunoaște valoarea cheii primare;

este unică (nu pot exista două intrări cu aceeași valoare);

este simplă și nu conține informații descriptive.

Cheia primară a fiecărei entități este la rândul ei un atribut al entității respective. Fiecare atribut trebuie să conțină tipul de date pe care îl poate salva (cum ar fi: numere, caractere, etc.) dar și valorile posibile pe care le poate avea (spre exemplu: număr limitat de caractere sau cifre, o valoare implicită, reguli de validare, etc.).

Principale entități ale modelului nostru relațional sunt:

utilizatori;

fișiere;

anunțuri;

contact;

departamente;

mesaje.

Fiecare entitate trebuie să posede minim o cheie primară, care o defiește. Cheia primară este unică pentru acea entitate.

Entitatea utilizatori definește toate informațiile pe care sistemul le are pentru orice utilizator, atributele sale fiind:

id: cod unic al fiecarui angajat (cheie primară);

Nume: numele utilizatorului;

Prenume: prenumele utilizatorului;

Parola: parola utilizatorului (este criptată prin intermediul unui hash de 32 de caractere, administratorii sau orice alt utilizator care accesează baza de date nu pot vedea parola exactă);

Funcție: Funcția sau poziția pe care este angajat utilizatorul;

Nivel_acces: nivelul de acces al utilizatorului în sistem;

Sediu: locația în care lucrează utilizatorul;

Departament_id: departamentul în care este angajat;

Interior: numărul de telefon din interiorul firmei;

Data_nastere: data nașterii utilizatorului;

Mobil: numărul de telefon personal;

Email: Adresa de email personală;

Poza: Poza de profil.

Entitatea Fișiere conține toate atributele posibile pentru a introduce un fișier în baza de date:

id: id-ul unic al fișierului (cheie primară);

Nume: numele fișierului;

Extensie: extensia fișierului folosită pentru a determina tipul fișierului;

Dimensiune: mărimea fișierului;

Data_adaugare: data adăugării fișierului;

Departament_id: id-ul departamentului pentru care fișierul a fost urcat pe pagina web, folosit pentru a indica existența fișierului doar departamentului respectiv;

Utilizator_id: utilizatorul care a adăugat fișierul;

Nr_descarcari: de câte ori a fost descarcat fișierul.

Entitatea Anunțuri conține toate atributele folosite pentru a introduce un anunț în baza de date:

id: id-ul unic al anunțului (cheie primară);

Utilizator_id: numele utilizatorului care a adăugat fișierul;

Data_adaugare: data adaugării anunțului;

Departament_id: definește dacă fișierul este public sau pentru întreaga companie;

Subiect: subiectul mesajului;

Continut: textul mesajului.

Entitatea Contact conține toate atributele folosite pentru salvarea unui mesaj din această secțiune în baza de date. Aceste atribute sunt:

id: numărul unic al mesajului;

Expeditor: numele persoanei care a trimis mesajul;

Mesaj: conținutul mesajului;

Data_trimitere: data și ora la care a fost trimis mesajul;

Subiect: subiectul mesajului.

Entitatea Departamente conține toate atributele unui department, cum ar fi:

id: codul unic al fiecărui departament;

Nume: numele departamentului.

Entitatea Mesaje conține toate atributele posibile pentru a introduce un anunț în baza de date, ele fiind:

id: numărul unic al mesajului;

Expeditor_id: id-ul persoanei care a trimis mesajul privat;

Destinatar_id: id-ul persoanei care primește mesajul;

Statut: indică dacă mesajul a fost citit sau necitit;

Subiect: subiectul mesajului;

Conținut: textul mesajului.

Data_adaugare: data la care a fost trimis mesajul;

Localizare: folosit pentru vizualizarea mesajelor trimise și primite.

3.3. Tehnologii folosite

Pentru dezvoltarea website-ului vom folosi mai multe tehnologii și anume:

HyperText Markup Language (HTML);

Cascading Style Sheets (CSS);

Hypertext Preprocessor (PHP);

My Structured Query Language (MySQL).

Începutul unuei pagini web este întotdeauna reprezentat de partea de asezare în pagina, design sau layout a acestuia. Totul pornește de la o idee a dezvoltatorului sau a persoanei care solicită site-ul respectiv. De multe ori până la finalizarea completă a unui site acest element evoluează, modificările fiind destul de ușor de realizat prin intermediul cascading style sheets (CSS). My Structured Query Language (MySQL) nu este necesar pentru orice website, un site care nu necesită o bază de date nu are de ce sa folosească MySQL, în schimb un website care stocheză informații despre utilizatori, de exemplu, nu poate funcționa fără acest program. Dacă nu folosim funcții complicate și avem un website static, care nu necesită informații din partea utilizatorilor și nici nu stochează așa ceva, website-ul poate să folosească doar Hypertext Markup Language și Cascading Style Sheets. Totul depinde de nevoia utilizatorului și de funcționalitatea pe care website-ul trebuie să o îndeplinească.

3.3.1. HyperText Markup Language (HTML).

HyperText Markup Language (HTML) este un limbaj de marcare folosit pentru a creea site-uri web care pot fi afișate într-un navigator [18]. Un browser sau navigator este o aplicație software care permite vizualizarea site-urilor web ce conțin text, imagini și/sau video. De asemenea prin intermediul unui navigator utilizatorul poate să trimită informații către un site, nu doar să primească. Cele mai cunoscute navigatoare sunt Internet Explorer, care este dezvoltat de compania Microsoft și vine preinstalat pe orice calculator cu sistemul de operare Windows, Mozilla Firefox, Chrome, Opera și Safari. Navigatorul interpretează paginile web în funcție de configurația fiecărui calculator, pentru o afișare cât mai optimă în funcție de rezoluția și mărimea spațiului de afișare. HTML-ul a apărut pentru prima dată la începutul anilor '80, fiind numit ENQUIRE, un sistem realizat de un fizician numit Tim Burns [18].

Sistemul a fost conceput pentru cercetătorii de la CERN, pentru a avea o metodă cât mai ușoară de a partaja fișierele. În 1989, Tim Burns a depus o propunere pentru a standardiza acest sistem ceea ce a pus bazele sistemului HTML-ului care îl folosim azi [9]. Primele documente legate de internet și HTML au apărut abia în 1991, acestea descriu câteva elemente pe care încă le folosim și în ziua de azi [9]. Elementele sunt puse între semnul mai mic (<) și mai mare (>). Toate elementele deschise în HTML trebuie să fie și închise; pentru a face acest lucru utilizăm semnul slash (/), după cum este presentat în Exemplul 1 [6].

Exemplul 1[6]:

<html> începutul elementului html;

</html> sfarșitul elementului html.

De la prima versiune de HTML au mai fost lansate încă 5 versiuni, ultima (HTML 5.0) fiind lansată în 2008 în versiunea "working draft". Versiunea HTML 4.0.1, care este defapt varianta finală a versiunii 4.0 este momentan cea mai folosită versiune. Aceasta a fost cuplată cu limbajul Extensible Markup Language (XML) și a condus la lansarea primei versiuni de Extensible HyperText Markup Language (XHTML) pentru a crea un limbaj mai restricționat, dar cu o funcționalitate mai dezvoltată [40]. Odata cu apariția XHTML comenzile depreciate au fost scoase din uz, deși acestea încă funcționează folosirea lor nu este indicată. Câteva exemple ar fi:

<b> tag care era folosit pentru a face text-ul bold, acum acest lucru se face prin intermediul CSS;

<font> folost pentru a modifica tipul fontului, culoarea sau mărimea, acest lucru se face tot prin intermediul CSS.

Toate paginile web conțin link-uri (legaturi) către alte pagini, fie din același website (link-uri interne), fie către alte site-uri (link-uri externe). Pentru a accesa un site un navigator trebuie să urmeze patru pași:

conectare;

cerere;

răspuns;

închidere sesiune.

HyperText Markup Language (HTML) conține text și informații despre acel text (acest lucru definește un limbaj de marcare) [18]. Acest limbaj îl ajută pe utilizator să afișeze conținutul unui website într-un mod mai ingenios; astfel, fără utilizarea acestui limbaj, site-urile ar avea textul aliniat la stânga și nu ar exista pic de formatare, nici macăr un spațiu, după cum se vede în Fig. 9.

Fig. 9. Exemplu site web fără html.

Pentru a ajunge de la exemplul din Fig. 9, un website care arată așa cum suntem obișnuiți, trebuie să folosim HyperText Markup Language (HTML) și Cascading Style Sheets (CSS). Până la apariția Cascading Style Sheets (CSS) toate elementele existente în acel fișier, erau puse în fișierul HTML, ceea ce ducea la o muncă laborioasă pentru a modifica un singur font, deoarece acest lucru trebuia făcut manual în fiecare pagină. Prin utilizarea fișierul CSS este necesară o simplă modificare în acest fișier, modificare care se reflectă în toate paginile. Revenind la fișierele HTML, ele pot fi editate cu un editor text cum ar fi Notepad, conținutul lor fiind strict text. Chiar dacă avem și imagini, pe site ele apar în fișierul HTML sub forma text, și anume un link către locația pozei respective, Exemplul 2 [6].

Exemplul 2 [6]:

<img src="imagine.jpeg" alt="Imagine" width="150" height="150" />.

În Exemplul 2 folosim mai multe atribute:

img: obligatoriu pentru orice poză, este un tag gol, care conține doar atribute;

src: conține locația imaginii pe care vrem să o afișăm;

alt: în cazul în care imaginea nu poate fi încarcată textul respectiv este afișat;

width: reprezintă lățimea pozei;

height: reprezintă înălțimea pozei.

La începutul oricărui fișier HTML trebuie să avem câteva rânduri folosite de navigator pentru a încărca cât mai corect pagina. Această declarație de document (Document Type Declaration sau pe scurt DOCTYPE), are trei versiuni pentru HTML 4, în funcție de nivelul de strictețe pe care utilizatorul doriește să îl folosească [1]. Până la apariția acestei declarații primul lucru care apărea într-un fișier HTML era tag-ul <html> care indică folosirea începutul acesui tip de cod. În momentul de față, tot <html> este prima linie de cod dintr-un fișier, declarația Document Type Declaration (DOCTYPE) fiind informativă pentru navigator. Acesta indică versiunea HTML în care este scrisă pagina web, pentru a asigura o vizualizare identică pe fiecare navigator. Cele trei tipuri care sunt utilizate în versiunea HTML 4 sunt [20]:

strict;

transitional;

frameset.

Versiunea strict este cea mai restrictivă, nu permite folosirea nici unui tag care este inclus în lista celor neacceptate. Acest tag este marcat ca fiind scos din folosință din cauza practicilor mai noi care sunt îmbunătățite. De asemenea, nu permite folosirea frame-urilor sau a elementelor de prezentare. Câteva elemente care sunt considerate scoase din folosință sunt:

<font> folosit pentru a schimba tipul fontului utilizat sau

<b> folosit pentru a face textul selectat bold (îngrosat).

Similar cu strict, transitional tot nu ne permite folosirea frame-urilor. Ceea ce face diferența între strict și transitional este ca cel din urmă permite folosirea elementelor scoase din uz sau a elementelor de prezentare.

Tipul frameset este cel mai permisiv, acesta permite folosirea tuturor elementelor indiferent dacă sunt depreciate sau nu. Această versiune include modul transitional dar îi permite utilizatorului să folosească și frame-uri. Printr-un frame se înțelege înglobarea mai multor fișiere HTML pe aceeași pagină. Pe scurt, un utilizator poate avea două sau mai multe secțiuni pe o pagină web, ele fiind independente una de alta, exact ca și cum acesta ar avea mai multe navigatoare deschise. În Fig. 10 putem observa o pagină web care încarcă alte două pagini în interiorul acesteia. Utilizatorul poate interacționa cu paginile web încărcate în pagina web principală, este ca și cum ele ar fi încărcate direct în navigator [5].

Fig. 10. Exemplu frame.

Dacă unui frame i se aplicăm o margine, utilizatorul poate modifica singur dimensiunea acestui frame. În cazul în care frame-ului i se întroduce o regulă numită noresize, utilizatorul nu mai poate ajusta dimensiunea. Acest DOCTYPE nu este foarte întrebuințat, în special pentru că nu aduce nimic în plus fată de modul transitional, singura diferență fiind frame-urile care au câteva defecte destul de importante, cum ar fi [21]:

Pe viitor frame-urile nu vor mai fi suportate de către noile versiuni de HTML și implicit și de navigatoare;

Sunt foarte greu de folosit, mai ales dacă utilizatorul dorește să imprime pagina respectivă;

Atunci când un utilizator lucrează cu frame-uri trebuie să țină cont de mai multe fișiere HTML în același timp, lucru care poate să devină confuz.

După declarația DOCTYPE orice fișier HTML trebuie să aibă la începutul tag-ul <html> care marchează începutul codului HTML. Orice tag deschis trebuie închis, acest lucru se face de obicei punând un slash "/" în fața cuvântului; de exemplu, tag-ul html care semnifică închiderea arată astfel </html>. O altă modalitate pentru a închide spre exemplu tag-ul care semnifică o linie nouă (break line) este că el se închide la sfârșitul sintaxei (<br />). Această metodă este folosită pentru mai multe elemente și este singura metodă standardizată rămasă în funcțiune de când s-a trecut la XHTML.

Doar pentru că tag-ul <html> este folosit, aceasta nu înseamnă că un utilizator poate începe imediat să scrie și totul va aparea pe ecran, așa cum își dorește acesta, din contră acest lucru are loc doar după ce mulți alți pași sunt urmați. Următorul pas este ca utilizatorul să deschidă secțiunea de sus numită head. În continuare acesta poate să introducă numele paginii web prin intermediul tag-ului <title>Nume website</title> și link-ul către fișierul Cascading Style Sheets, dacă folosește unul. Pentru a încărca un fișier CSS utilizatorul trebuie să folosească tag-ul style, pentru a defini acest lucru, după cum se poate observa în Exemplul 3. Pe langă aceste două scripturile java de exemplu care mai sunt folosite pe pagina sunt încărcate tot în secțiunea head. În această secțiune nu există nici o modificare între HTML și XHTML [19].

Exemplul 3 [19]:

<link rel=StyleSheet href="teme/style.css" rel="stylesheet" type="text/css" />.

După închiderea secțiunii head, începe secțiunea de conținut numită body. Aici se va află conținutul paginii de la link-uri până la text sau tabele.

3.3.2. Serverul web Apache.

Un site în format HTML poate fi vizualizat doar pe calculatorul unde se află fișierele, cât timp nu există un server web care să permită accesarea de la distanță. Unul dintre cele mai utilizate programe care pot să creeze un server web, folosind un calculator obișnuit, este programul Apache. Acest program este disponibul gratuit, la el lucrând persoane din întreaga lume care comunică prin intermediul internetului. La început, proiectul se numea httpd, și pentru că avea multe imperecțiuni, mulți dezvoltatori de aplicații și pagini web, din întreaga lume, au decis să își facă singuri extensii pentru acest program. La început, totul se afla într-un stadiu de testare. Cu toate acestea, câteva luni mai târziu, programul a trecut pe o structură modulară care aloca mult mai bine memoria disponibilă și lucra mult mai bine cu extensiile. Lansarea oficială a primei versiuni oficiale a progarmului Apache a avut loc în 1995 [11].

De atunci, programul a fost continuat de comunitatea online, formată din programatori din întreaga lume. Acest program a rămas un program de tip open-source, adică poate sa fie utilizat gratuit de orice persoană și poate sa fie modificat, codul sursa al aplicației fiind public. Având un cod sursă public oricine poate să își configureze și optimizeze acest program după cum dorește astfel încât să își satisfacă nevoile; deci putem spune că acest program este într-o continuă dezvoltare. Comunitatea proiectului Apache s-a dezvoltat și către alte proiecte prezente pe site-ul de web al acestora, fie că este vorba de extensii pentru serverul web sau de cu totul alte programe, ele rămân gratuite.

Datorită dezvoltării extraordinare pe care a cunoscut-o programul Apache, se poate considera că acest program este cel mai bine testat sistem pentru a server web. În anul 2010, programul era folosit pentru a deservi peste 120 de milioane de site-uri web, număr care astăzi este cu siguranță mai mare [34]. În mare parte acest succes se datorează faptului că Apache este un program care rulează pe mai multe platforme, cum ar fi Windows, MAC OS X, Unix, FreeBSD, Linux, OS/2Solaris, Novell NetWare, și Solaris [34].

Instalarea acestui program nu este tocmai cea mai ușoară, în special pentru că utilizatorul trebuie să facă câteva setări după instalare pentru a asigura funcționarea programului cu tehnologia PHP. Din această cauză, mulți utilizatori aleg pachete software care includ și Apache și care pot fi instalate direct. Pentru a putea utiliza și fișiere PHP pe pagina noastră trebuie să modificăm fișierul de configurare Apache. Acesta este localizat în C:\apache\conf\httpd.conf. Fișierul se poate deschide cu orice editor text, cum ar fi de exemplu Notepad. Liniile care trebuie modificate sunt cele legate de încărcarea modulului PHP. Pentru un server cu sistemul de operare Windows, schimbările sunt indicate in Exemplul 4.

Exemplul 4:

LoadModule php5_module e:/web/php/php5apache2_2.dll

PHPIniDir "e:/web/php/"

AddType application/x-httpd-php .php

Întâi utilizatorul trebuie să completeze locația fișierului de tip dll localizat în folderul de instalare al aplicației PHP. În continuare, acesta trebuie să completeze locația directorului de instalare al aplicației PHP, și nu în ultimul rând, este necesar ca acesta să adăuge extensia php.

Pentru a putea citi fișierele cu extensia php, o simplă modificare trebuie făcută în fișierul "httpd.conf", după cum se poate observa în Exemplul 5. Astfel, după instalarea programului Apache citește numai fișierele cu extensia html, cu toate acestea prin modificarea extensiei html cu extensia php, fișiere php pot fi citite.

Exemplul 5:

<IfModule dir_module>

DirectoryIndex index.php index.html

</IfModule>

3.3.3. Cascading Style Sheets (CSS).

Cascading Style Sheets sau pe scurt CSS este un limbaj de programare care se ocupă de partea vizuală a unei pagini web. Acest limbaj a fost dezvoltat pentru a completa lipsurile pe care le are Hyper Text Markup Language (HTML). Spre exemplu, pentru a modifica mărimea fontului pe un site format din mai multe pagini web este nevoie de o singură comandă scrisă in fișierul CSS. Aceeași schimbare, dar fără existența fișierului CSS, necesită o modificare manuală pentru toate paginile afectate de schimbarea respectivă. Cu alte cuvinte, timpul de modificare al unei pagini web a fost scurtat foarte mult.

Odată cu introducerea Cascading Style Sheets a devenit posibil ca un utilizator să își poată alege o temă pentru o pagină web; spre exemplu, utilizatorul poate alege să folosească altă culoare de fond, schimbarea efectuându-se prin simpla smodificare a fișierului CSS [1]. Dezvoltarea acestui limbaj a fost necesară pentru a separa interfața grafică a unui site web de partea de informații a acestuia.

Limbajul de programare folosit de Cascading Style Sheets este tot un limbaj care poate fi aplicat oricărui document Extensible Markup Language (XML), adică un document care poate să fie ințeles și de un calculator dar si de o persoană. Întrebuințarea acestui limbaj de programare este fercvent întâlnită în limbajul HyperText Markup Language (HTML) sau Extensible HyperText Markup Language (XHTML), dar mai poate fi întâlnită și în fișiere Extensible Markup Language (XML) sau Scalable Vector Graphics (SVG) [15].

Conceptul Cascading Style Sheets a început în ani '80 din nevoia pentru a crea site-urile web mai atragătoare și mai ușor de vizualiat [15]. La început, se putea vorbi despre in-line CSS, adică partea de structură vizuală nu era despărțită de partea de informații a site-urilor, totul era pus în fișierul HTML. Idea care a stat la baza dezvoltării unui sistem care să permită utilizarea mai multor tipuri de stilizare ale unui site web a fost diferențierea modului de printare de modul de editare. Din punctul de vedere al utilizatorilor și programatorilor este nevoie de trei moduri de vizualizare [15]:

Un mod de vizualizare pentru printarea unui site web;

Un mod de vizualizare pentru prezentarea site-ului web, acesta este modul în care un utilizator vede pagina web;

Un mod special pentru funcția de editare a site-ului web.

Cele trei moduri de vizualizare enumerate anterior au stat la baza dezvoltării a nouă propuneri cu privire a modalitatea în care utilizatorii vor putea vizualiza o pagină web [15]. Cele nouă propuneri ale programatorilor au fost prezentate celor de la World Wide Web Consortium (W3C), iar din ele au fost alese două [9]. În final, stilul Cascading Style Sheets a fost adoptat. World Wide Web Consortium este o organizație internațională care se ocupă de toate standardele folosite pe internet.

Avantajele utilizării Cascading Style Sheets:

Independență, codul pentru partea vizuală a paginii web nu mai trebuie sa fie prezent pe fiecare pagină;

Consitență, partea vizuală a website-ului este persistentă, astfel utilizatorul poate fi sigur că are același fond, imagine de fundal sau așezare în pagină pe tot site-ul, și că nu este nevoit să copie codul pe fiecare pagina;

Eficiență, traficul de date este scăzut; astfel, de la prima accesare a unei pagini web, fișierul CSS este pastrat pe calculator și ultilizat la o nouă încărcare a pagini respective;

Flexibilitate, acest limbaj de programare este ușor de modificat comparativ cu folosirea directă a fișierul HTML, unde utilizatorul ar întâlni și partea de informații a paginii web, ceea ce i-ar îngreuna activitatea;

Transparență, orice modificare este transmisă către întreg site-ul;

Facilitate; partea vizuală a site-ului web este separată de partea informațională; astfel, este mai ușor pentru motoarele de căutare, cum ar fi Google, să caute strict printre informații decât să selecteze informațiile dintre liniile de cod;

Utilitate, existența unui mod separat pentru printare, mod care nu include toate reclamele sau navigatia paginii web;

Compacticitate, reducerea numărului liniilor de cod ceea ce duce la reducerea timpului de programare a unui site.

Ca orice alt sistem, Cascading Style Sheets are și dezavantaje, o parte dintre ele sunt:

Ineficiență primară; prima accesare a site-ului durează mai mult, fișierul CSS conține așezarea în pagină, împreună cu toată partea vizuală pentru întreg website-ul, dar acest lucru, nu mai este o problemă dacă utilizatorul continuă navigarea pe site, fișierul respectiv fiind deja descărcat;

Public, fișierul CSS poate să fie copiat de orice persoană, nu există nici un fel de securitate, oricine poate vedea locația fișierului pe server prin simpla vizualzare a sursei paginii web încărcate;

Unicitate, formatarea Cascading Style Sheets este diferită față de cea a HyperText Markaup Language, sintaxa și așezarea fiind puțin diferite.

Personalizare, nu toate programele folosite pentru a naviga pe internet interpretează la fel Cascading Style Sheets, în special programele mai vechi, cum ar fi Internet Explorer 6, care au nevoie de anumite linii de cod speciale pentru a face pagina web să arate identic în toate navigatoarele;

Deficiență, controlul poziționării pe verticală este foarte dificil, spre deosebire de cel pe orizontală.

Există trei metode pentru a introduce codul Cascading Style Sheets pentru o pagină web [1]:

Fișier extern;

Fișier intern;

În dreptul liniei de cod.

Fișierul extern este cel mai uzual, în principal pentru că este cel mai ușor de modificat și implică doar o linie de cod în fișierul HTML care menționează adresa fișierului CSS, după cum este exemplificat în Exemplul 6. Prin adăugarea liniei de cod din Exemplul 6 în secțiunea head a fișierului HTML, navigatorul utilizatorului știe că trebuie să încarce și fișierul respectiv. De asemenea navigatorul utilizatorului cunoște că acesta conține partea vizuală a paginii web.

Exemplul 6:

<link rel=StyleSheet href="teme/style.css" rel="stylesheet" type="text/css" />.

Fișierul intern este folositor pentru o pagină web care trebuie să aibă un design unic față de restul site-ului web. Tot în secțiunea head, utilizatorul poate deschide tag-ul <style> unde pot fi inserate toate elementele care normal ar exista în fișierul extern, după cum se poate observa în Exemplul 7. Cu noate acestea, această metodă nu este indicată pentru a fi utilizată pentru mai multe pagini identice ale unui site web, deoarece orice modificare trebuie facută manual pe fiecare pagină, spre deosebire de fișierul extern unde modificarea este automat propagată pe toate paginile.

Exemplul 7:

<head>

<style type="text/css">

p {text-aling:left;}

</style>

</head>

Ultima metodă de a stiliza un site web este adăugarea codului de stilizare exact acolo unde este necesar. Acest lucru poate fi realizat de utilizator prin folosire elementalui (tag-ului) pe care dorește să îl modifice. Această metodă nu separă partea de stilizare de cea a informațiilor, după cum este exemplificat în Exemplul 8. Pentru a alinia toate paragrafele la dreapta, prin această metodăar fi necesar ca utilizatorul să scrie style="text-align:right, în dreptul fiecărui paragraf.

Exemplul 8:

<p style="text-align:right">Text paragraf</p>.

Deoarece utilizatorul poate folosi mai multe tipuri de Cascading Style Sheets, stilurile au o prioritate în momentul încărcării. Navigatorul utilizatorului ia în considerare întâi elementele de stilizare prezente în interiorul codului HTML, apoi elementele din fișierul intern și la sfârșit elementele prezente in fișierul extern.

Pentru a stiliza un element, de exemplu un paragraf într-un fișier extern sau intern utilizatorul trebuie să mentionționeze elementul, apoi să deschidă o acoladă “{“ și apoi să pună toate elementele de stilizare. La sfârșitul elementelor de stilizare, utilizatorul trebuie să închidă acolada “}“, după cum este exemplificat în Exemplul 9.

Exemplul 9. Stilizare cu ajutorul CSS.

body {

font-family: Arial, Helvetica, Verdana, Sans-serif;

font-size: 12px;

background: #eae8e5;

width: 960px;

margin: 0 auto;}

În Exemplul 9 partea de conținut a paginii web este stilizată. Acest proces începe prin restrictionarea la câteva font-uri și o singură mărime prin font-family și font-size. Prin funcția background culoarea de font poate fi modificată. Lățimea paginii web poate fi fixată la 960 de pixeli, iar marginea acestia este raportată automat în funcție de rezolutia ecranului pe care este vizualizată pagina web.

Pentru a stiliza o întreagă secțiune cu ajutorul CSS utilizatorul trebuie să folosească tag-ul <div>, acesta delimitează secțiunea pe care acesta dorește să o stilizeze. Utilizatorul poate folosi un număr nelimitat de div-uri, acestea fiind diferențiate între ele prin clase și id-uri. O clasă poate fi folosită în CSS pe mai multe elemente, la fel cum utilizatorul poate folosi mai multe clase pe același element. Folosirea unei clase este indicată atunci când este necesar ca utilizatorul să aplice aceeași stilizare pentru mai multe elemente. Linia de cod pentru folosirea unei clase este următoarea: <div class="test"></div>, identificarea clasei în fișierul CSS fiind următoarea: .test {}. Id-urile, în schimb,sunt unice; astfel nu poate exista decât un element cu id-ul respective, iar un element poate avea un singur id. Singura diferență pe partea de cod este schimbarea cuvântului class cu id și anume: <div id="test"></div>, următoarea diferență fiind apelarea din CSS unde în loc de un punct (.) este necesar ca utilizatorul să întrebuințeze simbolul diez (#): #test {}.

3.3.4. PHP: Hypertext Preprocessor.

PHP este un limbaj de programare, numele său fiind la rândul lui un acronim recursiv PHP: Hypertext Preprocessor. Acest limbaj de programare este folosit pentru a crearea unei pagini web dinamice, dar și a aplicații web. Liniile de cod PHP sunt înglobate în fișiere care, conțin și HyperText Markup Language (HTML), dar codul este interpretat diferit față de cel HTML. Pentru a rula codul PHP, nu mai este nevoie doar de un navigator și un server web care să transmită informațiile utilizatorului; astfel, pe lângă serverul Apache deja existent, utilizatorul mai trebuie să instaleze și un server PHP folosit pentru interpretarea datelor și generarea dinamică a site-ului care este trimis către utilizator.

Fondatorul acestui limbaj de programare se numește Rasmus Lerdorf, el în 1994 a creat un set de instrucțiuni scris în limbajul de programare C. Instrucțiunile respective aveau o utilitate banală pentru zilele noastre dar ceva nemaivazut în vremea respectivă, ele puteau să contorizeze numărul de vizite pe care Curriculum Vitae (CV) al său le avea [26]. Acronimul PHP a venit de la Personal Home Page Tools (instrumente pentru pagina acasă), prescurtat PHP Tools (instrumente PHP). Cu timpul cerința acestor instrumente a crescut, dar odată cu acesta a crescut și nevoia de lucruri noi, ceea ce a dus la rescrierea unei suite de instrumentele PHP, asigurând astfel cu o funcționalitate mai mare. Aceasta a oferit utilizatorilor posibilitatea de a creea o pagina dinamică, datorită realizării conexiunii cu o bază de date. După dezvoltarea acestei opțiuni codul a fost facut public, el fiind gratuit și încurajând utilizatorii să vină cu soluții pentru problemele întâmpinate [26]. În toamna lui 1994, numele PHP a fost schimbat în FI prescurtat pentru Forms Interpreter (interpretator de formulare) [26]. Acest lucru s-a întamplat tot printr-o rescriere a limbajului de programare, care a dus la introducerea unor funcții de bază pe care le folosim și în ziua de azi.

Prin apariția capabilității de interpretare a datelor din formulare și înglobarea în codul HTML, limbajul de programare a obținut variabile similare cu cele Perl, un limbaj de programare procedural și dinamic, dar care nu putea fi folosit pentru a creea funcții pentru paginile web [24]. Introducerea codului HTML nu a fost primită cu succes de către toți programatori, liniile de cod fiind introduse drept comentarii. După aproximativ o lună Rasmus Lerdorf a lansat o altă versiune a limbajului de programare, una complet rescrisă, aducând înapoi și numele PHP, dar de această dată, acesta fiind un acronim pentru Personal Home Page Construction Kit (Chit de construcție pentru o pagină personală) [26].

Acum, limbajul de programare nu mai semăna atât de mult cu Perl, fiind conceput să fie mai uzual și totodată, similar cu limbajul C. În acest fel programarea era mult mai simplă, limbajul de programare fiind mai ușor de înțeles și utilizat. PHP era limitat pentru sistemele de operare UNIX și POSIX, implementarea pentru Windows fiind considerată. Abia de la a doua versiune a limbajului de programare PHP, lansată în aprilie 1996, se poate spune că acesta a devenit un limbaj de programare unic, redenumit încă odată, de această dată ca PHP/FI [26]. În această versiune au fost introduse multe funcții pe care le regăsim și astăzi.

Dintre aceste funcții de mare importanță sunt abilitatea de conectare cu o bază de date mySQL sau funcțiile definite de utilizator. În 1997, o nouă versiune PHP a fost lansată, versiune care prezintă schimbări radicale comparativ cu vesiunile precedente. Cu toate acestea datorită limitarii acestui sistem el nu a foarte popular; în 1998 doar 1% din domeniile active pe internet foloseau funcții PHP pe pagina web [3]. Abia la versiunea a treia a limbajului de programare PHP se poate vorbi despre un limbaj similar cu limbajul actual. Numele a revenit la PHP acronimul fiind cel folosit și astăzi unul recursiv Hypertext Preprocessor. De această dată, Rasmus Lerdorf mai lucra cu încă doi programatori, Andi Gutmans și Zeev Suraski din Tel Aviv, Israel [3].

Prin dezvoltarea sistemului, îmbunătățirea interfeței pentru bazele de date, dar și o sintaxă mai consistentă prin introducerea programării orientate pe obiecte, PHP a atras mulți alți dezvoltatori de extensii și aplicații. Prin suportul mai multor sisteme de operare inclusiv Windows, PHP 3.0 a ajuns să fie instalat pe aproximativ 10% din serverele web existente în 1998 [26]. Imediat după lansarea oficială a acestei versiuni, noul grup de programatori a început încă o rescriere a codului de bază pentru a îmbunătății performanțele pentru aplicațiile mai complexe. Doi ani mai târziu versiunea a patra a fost lansată, cuprinzând inclusiv o metodă mai securizată pentru datele introduse de către utilizatori. În momentul de față, versiunea a cincea a acestui limbaj de programare este utilizată. Aceasta versiune a fost lansată oficial în 2004 și a fost urmată de multe actualizări pentru a face față necesităților utilizatorilor [3].

Fig. 11. Statistică utilizare PHP (Reprodus din referința [27]).

Numărul de utilizatori a limbajului de programare PHP este într-o continuă creștere după cum se poate observa din Fig. 11. În 2007, numărul de servere web care îl utilizează acest limbaj de programare a depășit două milioane. Astazi, aproape orice pagină web unde utilizatorului îi este cerut să se autentifice folosește acest limbaj de programare.

Pentru ca un utilizator să poată folosi limbajul de programare PHP, trebuie să facă anumite lucruri, cum ar fi:

Instalare Apache și PHP pe server;

Transferarea fișierelor pe server în folderul destinat;

Redenumirea extensiei fișiereor HyperText Markup Language (HTML) de la nume.html la nume.php, altfel serverul utilizatorului nu se va mai folosi de codul PHP, livrând pagina doar în formatul său HTML;

Dechiderea tag-ul PHP prin utilizarea sintaxei <?php;

Completarea funcțiile necesare;

Inchiderea PHP prin tag-ul ?>;

Dacă fișierul utilizatorului conține și elemente HyperText Markup Language (HTML), este necesar ca tag-ul de deschidere HTML să fie completat.

Una din cele mai importante funcții ale PHP este funcțtia coockie, fără această funcție utilizatorul nu ar putea să se autentifice pe o pagina de internet. În momentul în care navigatorul încearcă să încarce o anumită pagină a unui site web unde utilizatorul este autentificat, navigatorul trimite și acest fișier pentru a atesta autentificarea [25]. Fișierul este automat codat și decodat de către serverul unde este stocată pagina web, respectiv navigatorul nostru. Prin intermediul acestui fișier utilizatorul poate să rămână autentificat pe un site web mai multă vreme, chiar dacă închide navigatorul. Acest tip de fișier este șters de obicei în momentul dezautentificării sau dacă site-ul permite menținerea acestui cookie pentru o limită de timp, după cum se poate observa în Exemplul 10.

Exemplul 10. Metoda setcookie.

<?php
setcookie('id', $utilizator['id'], ( time() + 24 * 60 * 60 ), '/');

setcookie('parola', md5( $utilizator['parola'] ), ( time() + 24 * 60 * 60 ), '/');
?>
<html> …

În Exemplul 10 este decrisă funcția setcookie și sintaxa acesteia. Prima valoare este clasa, în cazul fiind “id”, iar apoi "utilizator" , deoarece acestea sunt datele utilizatorului, ambele variabile sunt preluate de PHP în momentul generării fișierului cu ajutorul datelor din baza de date. La sfârșit, utilizatorul are un timpul de expirare, care este în Exemplul 10 setat la o zi. Următoarea linie seteaza parola valabilă pentru id-ul utilizatorului autentificat. Parola nu este introdusă în baza de date sub forma unui text, ci este criptata cu ajutorul algoritmului de criptare md5. Această funcție criptează parola sub forma unu hash cu 32 de caractere. În momentul dezautentificării data din fișierul existent este înlocuita printr-o metodă destul de simplă modificarea timpului de expirare de la o valoare pozitivă la o valoare negativă sau inexistentă. Astfel, navigatorul utilizatorului poate șterge automat fișierul atunci când este primit de la server. Alternativ se poate folosi o funcție existentă în PHP numită "session_destroy" care elimină fișierele aferente autetificării.

Desigur, nu poate exista un cookie și un utilizator dacă nu suntem autentificați, acest lucru necesită cateva linii de cod PHP și o conectare la o bază de date cum este cea oferită de MySQL, după cum se poate observa din Exemplul 11.

Exemplul 11. Cod autentidicare PHP.

<?php

function autentificare_utilizator( $email, $parola )

{ $utilizator = extrage("SELECT * FROM `utilizatori` WHERE `email` = '". escape( $email ) ."'", 'single');

if(! $utilizator )

eroare_generala("Utilizator necunoscut!");

if( $utilizator['parola'] != hash_parola( $parola ) )

eroare_generala('Parola incorecta.');

setcookie('id', $utilizator['id'], ( time() + 24 * 60 * 60 ), '/');

setcookie('parola', md5( $utilizator['parola'] ), ( time() + 24 * 60 * 60 ), '/');

header("Location: /index.php?modul=utilizator&actiune=profilul-meu");

}?>

În Exemplul 11 este prezentată o funcția de autentificare pe pagina web, acest lucru se face cu ajutorul adresei de e-mail și a parolei utilizatorului. Se începem prin extragerea datelor despre utilizatorul căruia îi corespunde adresa de e-mail introdusă în formularul de autentificare. Aceasă operațiune poate returna un singur utilizator. Dacă nu este găsit nici un utilizator cu adresa de e-mail respectivă atunci mesajul ‘Utilizator necunoscut!’ este afișat. Următorul pas este compararea parolei introduse în formularul de autentificare cu parola existentă în baza de date, pentru a face acest lucru parolei introdusă este făcută hash și valoarea acesteia comparată cu cea existentă în baza de date. Dacă valoarea nu este identică mesajul ‘Parola incorecta’ este afișat. Trecerea cu succes peste acest pas însemnă că utilizatorul este autentificat, fișierul de autentificare (metoda "setcookie") din Exemplul 10 este aplicată și utilizatorul este redirecționat către profilul său.

PHP include în regulile de configurare și dimensiunea maximă a unui fișier ce poate fi postat pe un site prin intermediul serverului. Valoarea implicită a acestei variabile este 2M (2 megabytes). Fiind o valoare mică, chiar pentru o poză, o prezentare powerpoint cu sigurantă depășeste această dimensiune. Fișierul de unde poate fi modificată valoarea este fișierul de configurare al PHP, numit php.ini și localizat în directorul de instalare al PHP. Dimensiunea maximă a fișierului este legată și de alte două valori, cum ar fi: limita de memorie alocată și valoarea maximă care poate fi postată [31]. Pentru a schimba dimensiunea maximă de la 2 mebabytes la 100 megabytes, este ncesesar ca utilizatorul să modifice următoarea linie din fișierul php.ini: upload_max_filesize = 2M schimbând valoarea de la sfarșit. Linia noua arată astfel: upload_max_filesize = 100M.

Valoarea memory_limit indică dimensiunea maximă de memorie care poate fi alocată unui script, cum ar fi cel de adăugare a fișierelor. Această dimensiune are o valoare implicită 128 Megabytes, care trebuie mărită doar daca utilizatorul dorește să lucreze cu fișiere mai mari de această valoare. În cazul de față nu este necesar să o modificăm această valoare, deoarece valoarea este mai mare decât valoarea maximă a unui fișier care poate fi postat pe pagina web [8].

Ultima valoare care trebuie modificată este post_max_size. Această valoare controlează dimensiunea maxim admisă care poate fi transmisă prin intermediul PHP. Valoarea implicită este de 8 Megabytes. Pentru a putea accepta un fișier cu o dimensiune maximă setată (upload_max_filesize), post_max_size trebuie să aibă o valoare mai mare decat upload_max_filesize.

Funcții PHP folosite:

mysql_connect: initializează conexiunea către serverul MySQL, folosindu-se numele hostului și, acolo unde este cazul, IP-ul serverului MySQL, portul, utilizatorul și parola;

mysql_select_db: selectarea bazei de date din MySQL (serverul MySQL poate avea n baze de date, nu doar cea a paginii web);

mysql_real_escape_string: convertește caracterele speciale dintr-un șir de caractere (string) în secvențe escape astfel încat intergoarea sa poata fi executată;

mysql_query: trimite o interogare către baza de date;

mysql_fetch_assoc: funcție folosită în extragerea rezultatelor sub forma de tablou (array) dintr-o bază de date, folosind ca argument o variabila de tip resursa, precum rezultatul returnat de funcția mysql_query();

trigger_error: folosit pentru a genera mesajele de eroare de tip utilizator, dacă ele apar;

preg_match: verifică daca o expresie conține caracterele definite (de exemplu caracterele acceptate într-o adresa de e-mail);

include: evaluează și introduce în pagină o altă pagină;

file_exists: verifică dacă un fișier sau un director există.

Comenzi exprimate prin cuvinte rezervate:

function: definirea unei funcții, pe care mai târziu o apelăm, raspunsul funcției fiind afișat (pentru funcția autentificare raspunsul este cooki-ul);

if: la fel ca și în alte limbaje de programare, funcția if reprezintă executarea condiționată a unor fragmente de cod;

return: încheie rularea funcției (cum ar fi if ) și returnează valoarea acesteia;

while: execută o secvență de cod până în momentul în care aceasta ajunge la o valoare care nu mai este acceptată;

foreach: rularea unei matrici cu date (de exemplu, introducerea datelor de la căutarea utilizatorulor în tabelul de afișare);

isset: verifică dacă o variabilă este stabilită;

switch: funcție similară cu funcția if, ea este folosită pentru a compara o expresie cu mai multe valori;

$_GET: este predefinit în PHP pentru a prelua datele introduse într-un formular HTML prin metoda get, metodă prin care toate variabilele sunt scrise în link (Adresă uniformă pentru localizarea resurselor, abreviat URL);

$_POST: este predefinit în PHP pentru a prelua datele introduse într-un formular HTML prin metoda post;

$_FILES: este predefinit în PHP pentru a prelua fișierul dintr-un formular HTML prin metoda post;

global: prin aceasta comandă se preia valoarea unei variabile în cadrul unei funcții, variabila ce poate fi considerată ca fiind o variabilă globală;

die: face același lucru cu funcția exit, incheie rularea scriptului.

3.3.5. MySQL

MySQL este un sistem relațional folosit pentru gestiunea bazelor de date (Data Base Management System – SGBD). Un sistemul de gestiune al bazelor de date acționează ca o interfață între utilizator unei baze de date și aceasta. Acest sistem asigură următoarele funcții [7]:

Interogarea bazei de date;

Verificarea și actualizarea datelor din baza de date;

Controlarea tuturor cerințelor de acces a bazei de date;

Utilizarea simultană a bazei de date de mai mulți utilizatori;

Sincronizarea bazei de date în cazul în care sunt mai mulți utilizatori care acceseaza și modifică baza de date simultan;

Asigurarea securitătii bazei de date prin accese diferite pentru fiecare tip de utilizator.

MySQL este utilizat în principal împreună cu limbajul de programare PHP pentru a susține baza de date a site-urilor web. Cu toate acestea un utilizator poate scrie programe care să asigure utilizarea unei baza de date și prin intermediul altor limbaje de programare, cum ar fi: Java, FreeBasic sau C++. Programul este distribuit în mod gratuit, însă acest lucru nu este valabil și pentru încorporarea programului în softuri comerciale. Accest tip de licență de utilizare se numește Licență Publică GNU. Această licență este cea mai folosită licență pentru programele gratuite, fiind o licență pentru uz general. O licență permisiva care dă dreptul utilizatorul să instaleze și să folosească programul licențiat gratuit [16].

Pentru funcționarea împreună cu PHP, deși softul nu este încorporat, utilizarea este gratuită. În utilizarea alături de PHP administrarea bazei de date este asigurată de o altă aplicație gratuită numită phpMyAdmin sau prin intermediul interfeței liniei de comandă (CLI). Datorită strânsei legături dintre PHP și MySQL acest sistem relațional rulează pe aproape orice sistem de operare, cum ar fi: Windows, Linux, SunOS, Solaris, FreeBSD, Mac OS X [2].

Printre site-urile web cunoscute, care utilizează bazele de date MySQL se pot enumera: www.facebook.com, www.twitter.com, www.google.com, www.wikipedia.com sau popularul site video www.youtube.com [22].

Avantajele MySQL [2]:

Gratuit pentru majoritatea utilizărilor interne;

Rapid, fiind decris de programatorii drept cel mai rapid sistem pentru gestiunea bazelor de date;

Simplu, comparativ cu alte sisteme similare, acest sistem este mult mai simplu de utilizat și administrat, repezentând în același timp o performanța ridicată;

Versatil, întelege limbajul structurat de interogare (SQL), acesta fiind preferat de toate sistemele de baze de date;

Facil, permite conectarea mai multor clienți la un server; acești utilizatori pot accesa mai multe baze de date simultan;

Portabil, acest sistem rulează pe aproape orice sistem de operare;

Structurabil, acest sistem prezintă nivele separate de acces; astfel, un utilizator obișnuit care accesează o pagină web nu are acces la baza de date cu utilizatori, de exemplu;

Accesibil, această bază de date poate fi accesată de oriunde prin intermediul internetului.

Dezavantaje MySQL [2]:

MySQL nu suportă o bază de date de dimensiuni mari atât de eficient cum suportă o bază de date cu dimensiuni reduse sau medii;

Nu suportă proceduri de tip ROLE, COMMIT sau Stored până la versiunea 5.0.

Sistemul de gestiune al bazelor de date MySQL prezintă diferite tipuri de baze de date versiunea comericială, cum ar fi: MyISAM și InnoDB. MyISAM este o versiune mai evoluată a bazei de date de tip ISAM (Indexed Sequential Access Method). Acest tip de bază de date este foarte rapid, ea fiind utilizată mai ales pentru operațiunile de citire, dar având posibilitatea de a fi optimizată pentru stocarea datelor sau utilizarea resurselor. MyISAM este optimizat pentru scrieri și citiri simultane ale bazei de date; pe langă acestea, acest tip de bază de date vine și cu un set de extensii folosit pentru repararea unei baze de date. Consumul scăzut de resurse și viteza foarte rapidă pentru citirea datelor au făcut ca acest tip de bază de date să ajungă cel mai utilizat mod pentru paginile web [39].

InnoDB vine în completarea bazelor de date MyISAM, care nu sunt flexibile. Cu toate că acest mod este mult mai versatil decât MyISAM, viteza de operare este mult mai scăzută. Baza de date InnoDB este folosită pentru suportul cheilor externe și pentru modul tranzițional, care va fi descris în paragrafele următoare [39].

În momentul configurării unui server MySQL utilizatorul trebuie să aleagă tipul bazei de date pe care dorește să o folosească. Astfel, utilizatorul trebuie să selecteze una dintre următoarele opțiuni [23]:

Bază de date multifuncțională (Multifunctional Database);

Bază de date strict tranzițională (Transactional Database Only);

Bază de date strict netranzițională (Non-Transactional Database Only).

Opțiunea bază de date multifuncțională este opțiunea care permite configurarea bazei de date pentru o pagină web generală. Această opțiune structurează serverul pentru ambele tipuri de baze de date, InnoDB și MyISAM, permițând utilizarea amândurora [23].

Opțiunea bază de date strict tranzițională configurează serverul pentru o bază de date de tip InnoDB. Deși această structurare permite utilizarea modului MySAM, serverul nu este optimizat pentru el [23].

Baza de date netranzițională este folosită strict pentru aplicații web de monitorizare sau logare a activității. Acest mod folosește numai modul MySAM.

După instalarea MySQL utilizatorul este prezentat cu două opțiuni cu privire la administrarea baza de date. Asftel, structurarea bazelor de date se poate realiza prin intermediul Command Promt (CMD) acesta fiind o interfață linie de comanda(Command Line Interface – CLI) sau prin intermediul unui program gratuit numit PhPMyAdmin.

Acest program rulează în navigator și este scris în PHP. Prin intermediul PhpMyAdmin utilizatorul poate creea, modifica și șterge baze de date, tabele, rânduri sau date existente în baza sa de date. De asemenea, utilizatorul poate scrie și rula comenzi SQL, cum ar fi: crearea unei baze de date, crearea unui tabel și modificarea acestuia, introducerea datelor în tabel și selectarea acestora, dar și rulea comenzilor SQL (Exemplele 12-17).

Pentru ca un utilizator să creeze o bază de date numită exemplul, este necesar ca acesta să folosească sintaxa descrisă în Exemplul 12.

Exemplul 12. Creare bază de date

CREATE database exemplul

În baza de date creată utilizatorul poate insera un tabel utilizând procedeul descris în Exemplul 13. Tabelul creat de utilizator poate conține două tipuri de date:

numar, care este definit ca INT(Integer) și poate conține 4 cifre;

text care poate conține până la 100 de caractere.

Exemplul 13. Creare tabel nou

CREATE table exemplul1 (numar INT(4),text VARCHAR(100));

Pentru a avea o coloană care își modifică singură valoarea, utilizatorul trebuie să adauge textul AUTO_INCREMENT după tipul de date, această metoda este folosită pentru id-ul utilizatorului sau al departamentului. Prin intermediul setării AUTO_INCREMENT ne asigură că nu există două valori identice în același tabel, valoarea fiind automat incrementată de baza de date.

Dacă utilizatorul dorește să modifice un tabel prin adăugarea sau ștergerea unei tabele, este necesar ca acesta să utilizeze comanda alter table, descrisă în Exemplul 14. Astfel, pentru a adăuga o coloană numită ’e-mail’ tabelului exemplul1, utilizatorul trebuie să folosească comanda ADD, iar pentru a o șterge utilizatorul trebuie să folosească comanda DROP.

Exemplul 14. Modificare tabel.

ALTER TABLE exemplul1 ADD column email varchar(20);

ALTER TABLE exemplul1 DROP column email;

Pentru a adăuga o cheie primară sintaxa este următoarea:

ALTER TABLE exemplul1 add primary key (id);

O cheie primară reprezintă o coloană care nu poate avea valori identice, acest lucru este similar cu unique (unic). Diferența dintre cele două este faptul că o bază de date poate conține o singură cheie primară, dar numărul cheilor unice este nelimitat.

Pentru a introduce valori în mai multe coloane, utilizatorul trebuie să enumere coloanele respective în paranteză, și apoi să adăuge valorile aferente fiecărei coloane. Pentru a introduce valorile dorite este imperativ ca textul să fie scris între ghinimele sau apostrof. Modificarea datelor ce au fost deja introduse se face conform Exemplului 15 și necesită utilizarea funcției UPDATE.

Exemplul 15. Introducere date.

INSERT INTO exemplul1 (id,text) VALUES (0001,'texttexttext');

Paginile web folosesc bazele de date mai ales pentru citirea informațiilor. Odată ce datele au fost introduse, acestea pot fi selectate pentru afișare prin intermediul funcției SELECT, descrisă în Exemplul 16. Acest exemplu prezintă trei tipuri diferite de a selecta datele. Pentru a selecta toate coloanele dintr-o tabelă este necesar ca utilizatorul să folosească simbolul asterix (*) urmat de numele tabelului din care selectează datele.

Pentru a selecta doar o coloană utilizatorul trebuie să înlocuiască asterix-ul cu numele coloanei respective. În multe cazuri utilizatorul poate avea o coloană cu același nume în mai multe tabele, pentru a selecta coloana din tabelul dorit acesta trebuie să descrie calea spre tabelul respectiv. În Exemplul 16 baza de date se numește exemplu și tabela este denumită exemplul1.

Exemplul 16. Selectarea datelor.

SELECT * FROM exemplul1;

SELECT text FROM exemplul1;

SELECT id FROM exemplu.exemplul1;

Tipul de funcție SELECT din Exemplul 16 este utilizat doar în situațiile în care datele sunt selectate din același tabel. În situația în care un utilizator trebuie să selecteze date din două tabele diferite, alegerea datelor se realizează tot cu funcția SELECT, dar prin intermedul unirii cu un alt tabel, fapt ce se realizează prin intermediul funcției JOIN (unește).

De exemplu, dacă un utilizator dorește să caute în baza de date alți utilizatorii după nume și departament, acesta poate prin intermediul aceleiași funcții să selecteze mai intâi utilizatorii, iar apoi folosind funcția JOIN să creeze o legătură cu tabelul departament.

Accesarea bazei de date prin intermediul PHP nu poate fi realizată fără existența unui script de logare. Acest fișier conține adresa bazei de date, utilizatorul bazei de date, parola și numele acesteia, după cum este exemplificat în Exemplul 17, unde este definită conectarea la baza de date.

Exemplul 17. Setări conectare bază de date.

define('DB_HOST', 'localhost');

define('DB_USER', 'root');

define('DB_PASW', 'licenta');

define('DB_NAME', 'licenta2012');

Conectarea unui utilizator la baza de date se realizează prin funcția DEFINE din PHP. Între apostrof sunt corespondenții fiecărui element după cum urmează:

Definim adresa bazei de date ca DB_HOST, adresa fiind propriul calculator (localhost);

Utilizatorul folosit pentru autentificare este asociat DB_USER, utilizatorul fiind root;

Parola este următorul element definit prin DB_PASW, parola fiind licenta;

Numele bazei de date utilizate este definit ca DB_NAME și este licenta2012.

MySQL poate salva în baza de date inclusiv imagini, pentru a face acest lucru este nevoie de un alt tip de date, diferit de cele utilizate mai sus. Stocarea se face prin intermediul tipului de date blob, un obiect binar care poate stoca o variabilă de date. La fel ca și coloanele de tip text coloanele blob nu pot avea o valoare implicită (default).

Pentru a creea o coloană în care utilizatorul poate stoca poze există mai multe opțiuni în funcție de dimensiunea pe care utilizatorul dorește să o stocheze, optiunile fiind identice cu cele text: tinyblob, blob, mediumblob și longblob. În exemplul 18 folosim mediumblob, acesta poate stoca imagini cu o dimensiune maximă de 16 megabytes [13].

Exemplul 18. Tabelă imagine.

CREATE TABLE `exemplu_imagine` ( `id` int(4) NOT NULL AUTO_INCREMENT,

`titlu` varchar(32) character SET utf8 NOT NULL, `poza` mediumblob NOT NULL,

PRIMARY KEY (`id`) );

Exemplul 18 prezintă o tabelă nou adăugată numită exemplu_imagine destinată imaginilor. Fiecare coloană din baza de date beneficiează de un id unic, un titlu și nu în ultimul rând de o poză. Nici un element nu are voie să lipsească la introducerea datelor, elementul id fiind introdus automat, el fiind incrementat la fiecare adăugare nouă. Prin intermediul id-ului este preluată pentru fiecare utilizator.

Aplicația oferă și posibilitatea afișării unei poze pentru fiecare utilizator. Poza poate fi încărcată din pagina de modificare a profilului fiecărui utilizator. La afișare, aplicația va testa printr-o secvență de tip IF câmpul pozei de profil a utilizatorului autentificat. Dacă acesta este gol, va afișa o imagine standard; în celălalt caz, se va apela un fișier care va extrage datele pozei de profil din baza de date și va afișa imaginea.

CAPITOLUL 4

PLATFORMA INTRANET

4.1. Instalarea și execuția aplicației

Pentru a putea accesa pagina web trebuie să indeplinim următoarele condiții:

Instalarea și configurarea programului Apache;

Instalarea PHP si PhpMyAdmin;

Instalarea și configurarea bazei de date MySQL;

Copierea fișierelor aferente paginii web în directorul htdocs al aplicației Apache;

Importarea bazei de date prin intermediul aplicației PhpMyAdmin.

Accesarea pagini web se face prin intermediul unui navigator, accesând adresa http://127.0.0.1 sau http://localhost/. De asemenea dacă mărimea maximă a fișierului care poate fi urcat pe pagina web nu a fost schimbată în fișierul php.ini aceasta trebuie schimbată, altfel nu se vor putea punr fișiere cu o dimensiune mai mare de 2 megabytes pe pagina web.

4.2. Descrierea funcțiilor

După instalarea aplicației putem începe navigarea prin pagina web prin intermediul navigatorului. Primul ecran pe care utilizatorul îl va observa este cel de autentificare. Pagina web poate fi accesată doar de utilizatorii autentificați, în cazul în care un utilizator are probleme cu autentificarea sau nu deține un cont de utilizator acesta poate accesa formularul de contact. În cazul introducerii greșite a adresei de e-mail sau a parolei mesajul "Eroare! Utilizator necunoscut!" este afisat. Apăsarea butonului de login fară introducerea unuia din câmpurile obligatorii mesajul "Eroare! Trebuie sa completati datele formularului." este afișat.

Fig. 12. Formular Login.

Autentificarea se face pe baza adresei de e-mail și a parolei, după cum se observă în Fig. 12. Nu folosim autentificare pe baza de nume din simplul motiv că pot apărea duplicate, două persoane pot să aibă același nume dar nu pot avea aceeași adresa de email.

Fig. 13. Formular Contact.

Formularul de contact Fig. 13 este aproape identic și pentru utilizatorii autentificați și pentru cei care nu își pot accesa contul, pentru utilizatorii autentificați dispare linia în care trebuie introdusă adresa de email această valoare fiind preluată automat.

4.2.1. Descrierea funcției meniu

Pagina web conține două meniuri, un meniu situat în partea de sus și un scurt meniu poziționat în partea dreaptă, denumite meniu principal, respectiv meniu secundar sau meniul dreapta.

Fig. 14. Meniu Principal.

Din meniul principal, ilustrat în Fig. 14, un utilizator poate accesa următoarele pagini:

Acasă, este pagină de pornire a paginii web;

Anunțuri, este o pagină dedicată anunțurilor/știrilor adăugate pe site;

Mesaj, de aici utilizatorul poate vedea mesajele trimise și mesajele primite. De asemenea, utilizatorul poate răspunde mesajelor sau le poate șterge;

Profil, este pagina de unde utilizatorul poate schimba parola, e-mail-ul sau poza de profil;

Contact, este secțiunea folosită pentru a trimite un mesaj administratorilor paginii web, aceasta funcție este similară cu funcția contact de la secțiunea "Autentificare", adresa de e-mail a persoanei fiind preluată automat;

Administrare, această pagină este în principal dedicată administratorilor și managerilor, dar și utilizatorilor pentru a lista toate anunțurile și toate fișierele de pe pagina web, funcție necesară daca trebuie să caute ceva în arhiva.. De aici, persoanele autorizate pot modifica anunțuri, adăuga utilizatori sau departamente.

În partea dreaptă se poate vedea poza de profil, numele utilizatorului, un link către mesaje și profilul utilizatorului și funcția de dezautentificare. Poza de profil nu este setată, cea din Fig. 14 fiind poza de generală.

Meniul secundar sau meniul dreapta este prezentat în Fig. 15. Meniul secundar indică dacă utilizatorul a primit un mesaj nou sau dacă există fișiere adăugate în ultimele 24 de ore pe departament sau pentru tot colectivul. Tot în Fig. 15, se pot observa butoanele pentru adăugarea unui fișier și a unui anunț pe site. Ultimul element al acestui meniu este funcția de căutare a unui utilizator.

Fig. 15. Meniu Dreapta.

4.2.2.Descriere pagina acasă.

Pagina intitulată "Acasa" Fig. 16, este pagina pe care utilizatorul este redirecționat după ce se autentifică pe pagina web. De aici el poate vizualiza ultimele mesaje adăugate pe pagina web, ultimele fișiere și dacă are mesaje private necitite. Fiind prima pagină încărcată ea îi oferă utilizatorului toate informațiile de care are nevoie, dar îi oferă acces și către celelalte funcții ale site-ului.

Fig. 16. Pagina Acasă.

4.2.3. Descrierea funcției mesaje

Folosind funcția "Cauta Utilizator" utilizatorii pot fi găsiți în funcție de numele acestora sau adresa de e-mail. Formularul afișat ca raspuns al interogării este prezentat în Fig. 17.

Fig. 17. Interogarea funcției căutare.

Pentru ca un utilizator să îi poată trimite un mesaj unui alt utilizator, acesta trebuie să îl caute pe cel din urmă în baza de date, să selecteze numele acestuia efectuând un click pe el și să intre pe profilul acestuia. După selectarea persoanei dorite, utilizatorul ajunge la ecranul ilustrat în Fig. 18.

Fig. 18. Detalii utilizator căutare.

Detaliile afișate în Fig. 18 sunt cele necesare pentru a contacta persoana dorită în mai multe moduri, cum ar fi: telefon, telefon interior, email sau mesaj prin intermediul paginii web. Pentru a trimite un mesaj persoanei dorite, utilizatorului trebuie să efectueze un click pe textul "Trimite mesaj".

Fig. 19. Pagina compunere trimitere mesaj privat.

După efectuarea click-ului pe actiunea "Trimite mesaj" din Fig. 18, utilizatorul ajunge la pasul de compunere și trimitere a mesajului, pas care este ilustrat în Fig. 19. Toate mesajele au nevoie de un subiect și de conținut. După completarea celor două câmpuri, utilizatorul poate trimite mesajul efectuând un click pe butonul "Trimite mesaj". După apăsarea acestui buton, site-ul îl va informa pe utilizator că mesajul a fost trimis cu succes. Utilizatorul căruia i s-a trimis mesajul va observa că are mesaje necitite în partea dreaptă a paginii web. Acest lucru va fi indicat de modificarea textului referitor la numărul de mesaje necitite. Spre exemplu, utilizatorul are în momentul de față două mesaje necitite Fig. 20.

Fig. 20. Afișare mesaje necitite.

Pentru a citi mesajele utilizatorul trebuie doar să dea click pe butonul din Fig. 20. După încărcare mesajelor în ecranul principal al aplicației, secțiunea mesaje se va modifica din nou, indicând de această dată faptul că mesajele au fost citite. Astfel, mesajul sugerând prezența mesajelor necitite dispare până la primirea unui mesaj nou. Pagina dedicată mesajelor are trei opțiuni de vizualizare Fig. 21:

Toate mesajele, aici vor fi afișate și mesajele trimise precum și cele primite de la cel mai nou la cel mai vechi;

Mesaje expediate, selectând aceasta opțiune vor fi afișate doar mesajele trimise de utilizator;

Mesaje primite, aici vor fi afișate doar mesajele primite de la alți utilizatori.

Pentru a vedea detaliile unui utilizator care a trimis un mesaj, utilizatorul trebuie să dea click pe numele acestuia, urmând să fie redirecționat către pagina de detalii a utilizatorului respectiv Fig. 18 de unde pot fi vizualizate adresa de e-mail a persoanei, numărul de telefon sau se poate opta pentru trimiterea unui mesaj privat.

Fig. 21. Funcția mesaje.

În momentul citirii mesajelor primul rând indică utilizatorului tipul de mesaj, primit sau trimis, numele utilizatorului și data la care a fost trimis mesajul. Următorul rând îi prezintă utilizatorului subiectul mesajului, urmat de conținutul acestuia. În final, utilizatorul are opțiunea de a șterge mesajul sau de a răspunde utilizatorului care i-a trimis mesajul respectiv.

4.2.4. Descrierea funcției fișiere

Pentru a adăuga un fișier pe pagina web, utilizatorul trebuie doar să dea click pe butonul "Adauga Fisier", ilustrat în Fig. 15.

În pagina dedicată adăugării unui nou fișier Fig. 22, pentru ca utilizatorul să introducă un nou fișier acesta trebuie să selecteze fișierul dorit prin efectuarea unui click pe butonul "Browse". Apoi utilizatorul trebuie să alegă dacă fișierul este unul destinat unui anumit departament sau este un fișier general pentru toate departamentele. După această selecție este suficient ca utilizatorul să acționeze butonul "Trimite". Dacă fișierul respectă cerintele tipului de fișier și dimensiunii, atunci el o să fie trimis anexat siteului. În cazul în care fișierul nu are o extensie acceptată atunci utilizatorul va primi un mesaj de eroarea care îi va indica acest lucru, același mesaj enumerând tipurile de fișiere acceptate. În cazul în care fișierul satisface condițiile necesare, este adăugat pe site, iar utilizatorul este informat prin mesajul "Fișierul a fost adaugat pe site!".

Fig. 22. Metodă adăugare fișier pe site.

Pentru a vizualiza fișierele adăugate pe site, utilizatorul trebuie să acționeze butonul care indică numărul de fișiere noi, în cazul în care ele există Fig. 15 sau să dea click pe pagina "Acasă" unde sunt afișate ultimele 10 fișiere adăugate în sistem. Pagina "Acasă" este acceași pagină pe care ajung utilizatorii după ce se autentifică.

Fig. 23. Listare fișiere.

Fișierele sunt ordonate de la cel mai nou la cel mai vechi, detaliile lor fiind următoarele:

Pictogramă în funcție de extensia fișierului;

Numele fișierului și extensia acestuia;

Dimensiunea fișierului și data la care a fost adăugat în sistem;

Numele persoanei care a adăugat fișierul;

Numărul descărcarilor pe care le are fișierul.

Pentru o listare care îi permite utilizatroului și opțiunea de a șterge fișierul, acesta trebuie să mergă la meniul "Administrare" Fig. 14. Din acest meniu, utilizatorul are acces la mai multe funcții speciale descrise în Fig. 24. Aceste funcții sunt împărțite în trei categorii, cele la care au acces doar administratorii ("Funcții Administratori") și cele la care au acces și moderatorii ("Funcții Moderatori"), ultima clasă fiind cea la care au acces inclusiv utilizatorii, de aici ei pot vizualiza toate fișierele și anunțurile existente pe pagina web.

Fig. 24. Listare funcții speciale.

Listarea tuturor fișierelor de pe site poate fi făcută dacă utilizatorul selectează printr-un click textul "Listare Fișiere" din Fig. 23. După ce a listat fișierele utilizatorul ajunge la conținutul din Fig. 25, unde este ilustrată listarea tuturor fișierele de pe site ordonate în funcție de data adăugării. Pentru a șterge un fișier utilizatorul trebuie să efectueze un click pe opțiunea "Șterge Fișier", opțiune la care au acces doar utilizatorii din clasa manageri și administratori, un angajat poate doar să vizualizeze toate fișierele existente pe pagina web.

Fig. 25. Listare Fișiere cu opțiune de ștergere.

Pentru a descărca un fișier utilizatorul trebuie doar să efectueze un click pe fișierul dorit. În momentul descărcării unui fișier numărul descărcarilor afișat pe pagina web este incrementat cu unu.

4.2.5. Descrierea funcției anunțuri

O altă funcție importantă este secțiunea anunțuri. Utilizatorul poate accesa aceasta secțiune prin selectarea butonului "Anunțuri" din meniul principal Fig. 14. De asemenea ultimele 10 anunțuri adăugate pe pagina web se regăsesc și în secțiunea "Acasă", fiind prima pagină pe care sunt redirecționați utilizatorii în momentul autentificării. Imaginea din Fig. 26 ilustreză listarea simplă a anunțurilor. Acest tip de listare indică următoarele lucruri:

Subiectul anunțului;

Numele utilizatorului care a adăugat anunțul;

Data și ora la care a fost adăugat anunțul;

Conținutul anunțului.

Fig. 26. Listare anunturi.

Imaginea din Fig. 26 dă posibilitatea utilizatorului să citească anunțurile adăugate pe pagina web dar nu să și adauge un anunț nou. Pentru a adăuga un anunț utilizatorul trebuie să selecteze butonul "Adaugă Anunț" din meniul din dreapta al site-ului Fig. 15 și să efectueze un click pentru a intra pe formularul de adăugare ilustrat în Fig. 27.

Fig. 27. Adaugă Anunț

Pentru a adăga cu succes un anunț utilizatorul trebuie să completeze subiectul acestuia, să scrie mesajul și să alegă tipul anunțului, dacă este un anunț pentru un departament în care lucrează sau dacă este un anunț general, pentru toate departamentele.

Anunțurile pot fi modificate doar prin intermediul unei funcții speciale accesibilă doar managerilor și administratilor. Astfel, prin accesarea meniul "Administrare" Fig. 14 și selectarea funcției "Listare Anunturi" Fig. 28, disponibile în cadrul funcțiilor pentru Manageri Fig. 24, mesajele pot fi alterate. Funcția "Listare Anunțuri" poate fi accesată și de un utilizator cu nivelul de acces 1, însă doar de manageri și administratori pot modifica datele.

Fig. 28. Listare Anunturi din funcții speciale

Opțiunile disponibile pentru mesaje sunt "Modifica Anunț" și "Șterge Anunț" Fig. 28. Pentru a acționa una din opțiunile disponibile, utilizatorul trebuie să selecteze opțiunea dorită. În cazul în care utilizatorul dorește să ștergă un anunț este necesar ca acesta să efectueze un click pe "Șterge Anunț" Fig. 28. După selectarea acestei opțiuni utilizatorul primește mesajul "Elementul a fost sters din baza de date". În schimb, dacă utilizatorul selectează modificarea unui anunț, atunci acesta ajunge pe pagina dedicată acestui lucru ilustrată în Fig. 29.

Fig. 29. Formular modificare anunț.

Prin intermediul formularului din Fig. 29, utilizatorul poate schimba subiectul unui mesaj și conținutul acestuia. Dacă utilizatorul nu este mulțumit de modificările făcute, acesta poate efectua un click pe butonul "Reset", situație în care anunțul este adus înapoi la forma inițială. Pentru a salva modificările utilizatorul trebuie să efectueze un click pe butonul "Modifică".

4.2.6. Descrierea funcției adăugare și modificare utilizator.

Pagina intitulată "Profil" Fig. 30 este unică pentru fiecare utilizator, de aici utilizatorul poate să efectueze următoarele operațiuni:

Setarea unei poze de profil;

Schimbarea adresei de e-mail care este folosită la logare și care apare pe profilul utilizatorului;

Schimbarea parolei folosită la autentificare pe site; această operațiune necesită introducerea parolei noi de două ori pentru a fi siguri că nu s-a produs o eroare.

Pentru orice schimbare efectuată în cadrul acestei secțiuni, utilizatorul trebuie să introducă parola actuală, altfel schimbările nu vor fi salvate.

Fig. 30. Pagină de profil.

Modificarea accesului unui utilizator se poate face doar de un Administrator. Pentru a face acest lucru administratorul site-ului trebuie să acceseze meniul "Administrare" Fig. 24 și să selecteze funcția "Listare Utilizatori". Funcția "Listare Utilizatori" Fig. 31 poate fi folosită și de Managerii site-ului, dar aceștia nu pot modifica utilizatorii, ci doar observa care angajați sunt înregistrați și pot utiliza programul.

Fig. 31. Listare utilizatori

Pentru a șterge un utilizator, administratorul siteului trebuie doar să efectueze un click pe "Șterge Utilizator" Fig. 31. Dacă dorește să modifice nivelul de acces pe care îl are un utilizator, cum ar fi, să acorde funcția de moderator al paginii web unui angajat sau unui administrator funcția de moderator, este necesar ca administratorul să selecteze opțiunea "Modificare Acces" Fig. 31 pentru utilizatorul căruia se dorește să îi se modifice accesul. Pagina de modificare a tipului de acces (Fig. 32) este foarte simplu de utilizat.

Fig. 32. Modificare Acces utilizator

Nivelul de acces este simbolizat printr-un număr după cum urmează:

1 este nivelul de acces de bază și reprezintă Angajații;

2 este nivelul de acces corespondentul funcției Manager;

3 este nivelul cel mai mare de acces și este corespondentul funcției Administrator.

Pentru a schimba această valoare este necesar ca administratorul paginii web să selecteze o valoare din cele trei disponibile și să apese butonul "Modifică". Butonul "Reset" aduce valoarea inițială pe care o avea utilizatorul în momentul în care pagina a fost încărcată, dacă butonul "Modifica" este apăsat atunci valoarea nouă este setată și nu se mai poate reveni la valoarea veche decât prin selectarea manuală a valorii și apăsarea butonului "Modifica". Prin schimbarea nivelului de acces utilizatorul are acces la mai multe funcții ale paginii web dacă nivelul de acces este unul mai mare, sau la mai puține funcții daca nivelul de acces este schimbat cu unul mai restrictiv.

4.2.7. Descriere funcții speciale

Pe lângă funcțiile speciale descrise anterior mai există trei funcții: "Listare Departamente", "Adăugă Departament" și "Modifică Departament", "Adaugă Utilizator" și nu în ultimul rând "Mesaje contact".

Funcția "Listare Departamente" poate fi accesată din funcțiile managerilor Fig. 24. Prin intermediul acestei funcții Managerii pot vedea toate departamentele existente în companie, iar administratorii pot șterge sau modifica numele unui departament, după cum este ilustrat în Fig. 33.

Fig. 33. Listare departamente.

Pentru a modifica un departament este necesar ca administratorul să selecteze funcția "Modifica Departament" pentru a ajunge pe pagina care îi permite modificarea numelui acestuia Fig. 34. Odată modificat numele unui departament, acesta se modifică și pentru utilizatorii membrii ai departamentului respectiv. Fiind o actualizare a bazei de date (prin intermediul comenzii UPDATE) utilizatorii ramân membri ai departamentului, id-ul unic al acestuia fiind neschimbat.

Fig. 34. Modificare departament.

Modificarea numelui se efectuează prin schimbarea numelui curent și apăsarea butonului "Modifica" din Fig. 34. După apăsarea butonului administratorul este informat că elementul a fost modificat cu succes.

Dacă este necesar ca un nou departament să fie anexat listei, acest lucru poate fi făcut prin utilizarea funcțiilor administratorilor din Fig. 24; cu alte cuvinte, un administator trebuie să aleagă funcția "Adauga departament". După selectarea funcției printr-un click administratorul este direcționat către pagina de adăugare expusă din Fig. 35.

Fig. 35. Adaugă departament.

Pentru a adăuga un nou departament, administatorul trebuie doar să scrie numele dorit și să apese butonul "Adaugă" Fig. 35.

Funcția "Adaugă utilizator" este o altă funcție la care doar Administratorii au acces Fig. 24. Selectarea se face printr-un click pe secțiunea respectivă, apoi Administratorul este direcționaționat către pagina din Fig. 36 unde trebuie să completeze detaliile utilizatorului inclusiv setarea unei parole, pe care utilizatorul o poate schimba după prima autentificare pe pagina web.

Fig. 36. Funcția adaugă utilizator.

Adăugarea unui utilizator nou necesită completarea câmpurilor din Fig. 36. Toate datele pot fi configurate pentru utilizatorul respectiv în afară de funcție, nivelul de acces și departamentul în care lucrează, acestea urmând sa fie selectate din lista celor existente. Butonul "Reset" șterge toate datele introduse în formular, iar butonul "Adaugă" introduce utilizatorul în sistem.

Ultima funcție la care au acces doar Administratorii este vizualizarea mesajelor trimise prin formularul de contact. Accesarae lor se face prin selectarea funcției mesaje contact din meniul "Administrare" Fig.24. Funcția "Mesaje Contact" indică toate mesajele primite prin formularul de contact și detaliile acestora, după cum este ilustrat în Fig. 37:

Adresa de e-mail a persoanei care a trimis mesajul sau numele, în cazul unui utilizator autentificat;

Data la care a fost transmis mesajul;

Conținutul mesajului.

Fig. 37. Vizualizarea mesajelor trimise prin formularul de contact.

4.3. Facilitățile Produsului (descriere concurentă)

Spre deosebire de produsele concurente soluția prezentată oferă unei companii o flexibilitate mult mai mare. Pentru început dimensiunea maximă a fișierelor ce pot fi puse pe pagina web este una mult mai mare, iar schimbarea acesteia se poate face de către un administrator prin modificarea dimensiunii în fișierul "php.ini", metoda deschisă în Secțiunea 3.3.4. Utilizarea sistemului este de asemenea mai simplă, spre deosebice de softul Galaxy, acestă pagină web nu necesită foarte mulți pași pentru a adăuga un anunț. Comparativ cu Galaxy, mesajul din softul descris în acest proiect, inițial, nu are la fel de multe opțini, dar acestea pot fi introduse în conținut dacă este nevoie. Cu toate acestea, pentru un simplu anunț lucrurile sunt simplificate foarte mult, acest lucru fiind observat în Fig. 24. Căutarea fișierelor este de asemenea foarte ușoară, fiind nevoie de o simplă accesare a meniului fișiere sau de o listare din funcțiile speciale.

Opțiunile de bază sunt valabile pentru toți utilizatorii, singurele funcții pentru care este nevoie de un nivel de acces mai mare (manager sau administrator) sunt cele care implică modificarea sau ștergerea unor date de pe pagina web. Din punct de vedere al securității se poate spune că este un mediu sigur, utilizatorii care nu dețin o adresă de e-mail și o parolă validă nu pot accesa pagina web ci doar un formular de contact care este trimis către administratori.

Un alt beneficiu este disponibilitatea spațiului și a serverului. Pentru o soluție achiziționată de la Singular Logic sau de la o altă companie similară spațiul de stocare este limitat iar achizitionarea lui este foarte scumpă. Soluția actuală nu depinde de un provider de internet sau de un server, aceasta poate fi găzduită în interiorul companiei sau în orice altă locație, oferte pentru hosting fiind extrem de multe. Prețul cel mai redus poate fi obținut prin găzduirea în interiorul companiei, o conexiune la internet fiind deja disponibilă, iar pentru mărirea spațiului de exemplu, fiind nevoie doar de o unitate de stocare mai mare.

Resursele necesare pentru un calculator care să acceseze pagina web și să poată accesa toate funcțiile acesteia nu trebuie sunt mult mai reduse în comparatie cu programul Galaxy, soluția fiind cu mult diferită față de cea oferită de Singular Logic, care se blocheză pe un sistem neperformant. De asemenea accesarea nu este condiționată de un pachet software, este nevoie doar de un natigator, acest program fiind inclus pe toate sistemele de operare încă de la instalarea sistemului.

Concluzii

Comunicarea într-o companie este foarte importantă, pentru a fi eficientă, acesta de multe ori se face prin mediul internet. Pentru a rezolva problemele legate de folosirea rețelelor de socializare, soluția cea mai simplă este utilizarea unei platforme de comunicare în interiorul companiei. În acest fel productivitatea companiei poate crește, comunicarea fiind mai ușoară decât prin utilizarea rețelelor precum Yahoo Messenger unde utilizatorii (angajații) pot interacționa și cu alte persoane în interes personal.

O soluție intranet poate să fie costisitoare, dar dacă aceasta este dezvoltată în interiorul companiei sau este achiziționată și poate rula fară costuri mari de intreținere lunară, poate reprezenta o alegere mult mai profitabilă. Soluția prezentată în acest proiect este un intranet care poate fi accesat și din interiorul dar și din exteriorul companiei. Funcțiile de comunicare fiind cele de bază, de la partajarea fișierelor pe departamente sau pentru întreaga companie până la anunțuri sau mesaje private între utilizatori. Utilizarea sistemului este foarte intuitivă și ușoară, deci orice utilizator, oricât de mult sau puțin știe despre utilizarea unei pagini web poate să o folosească. De exemplu adăugarea unui simplu anunț nu necesită decât câteva click-uri și completarea subiectului și a conținutului.

Comparativ cu soluțiile existente pe piata, programul prezentat de acest proiect ilustrează o pagină web mai ușor de utilizat. Introducerea datelor în sistem se face într-un mod mult mai facil, iar pe viitor această pagină poate fi folosită și ca un sistem de conversare în timp real între angajați dacă angajatorul consideră necesară și benefică această funcție.

BIBLIOGRAFIE

[1] Castro, E., "HTML, XHTML, and CSS, Sixth Edition: Visual QuickStart Guide", Pearson Education, Spania, 2006.

[2] DuBois, P., "MySQL", Teora, București, Romania, 2001.

[3] Lerdorf, R. and Tatroe, K., "Programming PHP", O'Reilly Media Inc, Sebastopol, SUA, 2002.

[4] Odom, W., "CCNA ICDN Official Exam Certification Guide", Cisco Press, Indiana, SUA, 2008.

[5] Popa, M., "Curs HTML".

[6] Taylor, D., "Crearea paginilor www cu HTML4", Teora, București, Romania, 1998.

[7] Velcescu, L., "Curs Baze de date".

[8] Welling, L. and Thomson, L. , "PHP and MySQL Web Development", Pearson Education Inc, SUA, 2009.

[9] Raggett, D., et al., "Raggett on HTML 4", Addison Wesley Longman, Londra, Marea Britanie, 1998.

[10] Savetz, K., Randall, N., and Lepage, Y., "MBONE: Multicasting Tomorrow's Internet", IDG Books Worldwide, Londra, Marea Britanie, 1996.

[11] "About the Apache HTTP Server Project – The Apache HTTP Server Project:" <http://httpd.apache.org/ABOUT_APACHE.html>.

[12] "ARPANET, Internet", <http://www.livinginternet.com/i/ii_arpanet.htm>.

[13] "The BLOB and TEXT Types", <http://dev.mysql.com/doc/refman/5.5/en/blob.html>.

[14] "Brief History of Database Systems for Database System Notes", <http://www.scribd.com/doc/50421807/3/Brief-History-of-Database-Systems>.

[15] "Cascading Style Sheets", <http://en.wikipedia.org/wiki/Cascading_Style_Sheets>.

[16] "The GNU General Public License v3.0 – GNU Project – Free Software Foundation (FSF)", <http://www.gnu.org/licenses/gpl.html>.

[17] "The History of Computers in a Nutshell", <http://sixrevisions.com/resources/the-history-of-computers-in-a-nutshell/>.

[18] "HTML", <http://en.wikipedia.org/wiki/HTML>.

[19] "HTML <head> Tag", <http://www.w3schools.com/tags/tag_head.asp>.

[20] "HTML doctype declaration", <http://www.w3schools.com/tags/tag_doctype.asp>.

[21] "HTML Iframes", <http://www.w3schools.com/html/html_frames.asp>.

[22] "MySQL", <http://en.wikipedia.org/wiki/MySQL>.

[23] "MySQL 5.6 Reference Manual", <http://dev.mysql.com/doc/refman/5.6/en/index.html>.

[24] "PHP", <http://en.wikipedia.org/wiki/PHP>.

[25] "PHP Cookies", <http://www.w3schools.com/php/php_cookies.asp>.

[26] "PHP: History of PHP – Manual", <http://php.net/manual/en/history.php.php>.

[27] "PHP: PHP Usage Stats", <http://php.net/usage.php>.

[28] "Simple Mail Transfer Protocol ", <http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol>.

[29] "UNIVAC", <http://www.thocp.net/hardware/univac.htm>.

[30] "Who Invented Email, Email History, How Email Was Invented", <http://www.livinginternet.com/e/ei.htm>.

[31] Bellis, M., "ARPAnet – The First Internet", <http://inventors.about.com/library/weekly/aa091598.htm>.

[32] "The History of Computers", <http://inventors.about.com/library/blcoindex.htm>.

[33] Berners-Lee, T., "The History of the Internet", <http://inventors.about.com/od/istartinventions/a/internet.htm>.

[34] Fielding, R., "Apache HTTP Server Wiki", <http://wiki.apache.org/httpd/>.

[35] Kozierok, C.M., "IMAP Overview, History, Versions and Standards ", <http://www.tcpipguide.com/free/t_IMAPOverviewHistoryVersionsandStandards-3.htm>.

[36] "The TCP/IP Guide – SMTP Overview, History and Standards", <http://www.tcpipguide.com/free/t_SMTPOverviewHistoryandStandards.htm >.

[37] Oak, M., "Advantages of Relational Databases", <http://www.buzzle.com/articles/advantages-of-relational-databases.html>.

[38] Peter, I., "History of email", <http://www.nethistory.info/History%20of%20the%20Internet/email.html>.

[39] Sanders, K. Jr., "A fast and furious guide to MySQL database engines", <http://www.techrepublic.com/article/a-fast-and-furious-guide-to-mysql-database-engines/1058872>.

[40] Shannon, R., "The History of HTML", <http://www.yourhtmlsource.com/starthere/historyofhtml.html>.

[41] Thomas, J., "What Are the Advantages of Relational Databases?", <http://www.buzzle.com/articles/advantages-of-relational-databases.html>.

[42] Tschabitscher, H., "The First Email Message – Email History – About Email", <http://email.about.com/cs/emailhistory/a/first_email.htm>.

BIBLIOGRAFIE

[1] Castro, E., "HTML, XHTML, and CSS, Sixth Edition: Visual QuickStart Guide", Pearson Education, Spania, 2006.

[2] DuBois, P., "MySQL", Teora, București, Romania, 2001.

[3] Lerdorf, R. and Tatroe, K., "Programming PHP", O'Reilly Media Inc, Sebastopol, SUA, 2002.

[4] Odom, W., "CCNA ICDN Official Exam Certification Guide", Cisco Press, Indiana, SUA, 2008.

[5] Popa, M., "Curs HTML".

[6] Taylor, D., "Crearea paginilor www cu HTML4", Teora, București, Romania, 1998.

[7] Velcescu, L., "Curs Baze de date".

[8] Welling, L. and Thomson, L. , "PHP and MySQL Web Development", Pearson Education Inc, SUA, 2009.

[9] Raggett, D., et al., "Raggett on HTML 4", Addison Wesley Longman, Londra, Marea Britanie, 1998.

[10] Savetz, K., Randall, N., and Lepage, Y., "MBONE: Multicasting Tomorrow's Internet", IDG Books Worldwide, Londra, Marea Britanie, 1996.

[11] "About the Apache HTTP Server Project – The Apache HTTP Server Project:" <http://httpd.apache.org/ABOUT_APACHE.html>.

[12] "ARPANET, Internet", <http://www.livinginternet.com/i/ii_arpanet.htm>.

[13] "The BLOB and TEXT Types", <http://dev.mysql.com/doc/refman/5.5/en/blob.html>.

[14] "Brief History of Database Systems for Database System Notes", <http://www.scribd.com/doc/50421807/3/Brief-History-of-Database-Systems>.

[15] "Cascading Style Sheets", <http://en.wikipedia.org/wiki/Cascading_Style_Sheets>.

[16] "The GNU General Public License v3.0 – GNU Project – Free Software Foundation (FSF)", <http://www.gnu.org/licenses/gpl.html>.

[17] "The History of Computers in a Nutshell", <http://sixrevisions.com/resources/the-history-of-computers-in-a-nutshell/>.

[18] "HTML", <http://en.wikipedia.org/wiki/HTML>.

[19] "HTML <head> Tag", <http://www.w3schools.com/tags/tag_head.asp>.

[20] "HTML doctype declaration", <http://www.w3schools.com/tags/tag_doctype.asp>.

[21] "HTML Iframes", <http://www.w3schools.com/html/html_frames.asp>.

[22] "MySQL", <http://en.wikipedia.org/wiki/MySQL>.

[23] "MySQL 5.6 Reference Manual", <http://dev.mysql.com/doc/refman/5.6/en/index.html>.

[24] "PHP", <http://en.wikipedia.org/wiki/PHP>.

[25] "PHP Cookies", <http://www.w3schools.com/php/php_cookies.asp>.

[26] "PHP: History of PHP – Manual", <http://php.net/manual/en/history.php.php>.

[27] "PHP: PHP Usage Stats", <http://php.net/usage.php>.

[28] "Simple Mail Transfer Protocol ", <http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol>.

[29] "UNIVAC", <http://www.thocp.net/hardware/univac.htm>.

[30] "Who Invented Email, Email History, How Email Was Invented", <http://www.livinginternet.com/e/ei.htm>.

[31] Bellis, M., "ARPAnet – The First Internet", <http://inventors.about.com/library/weekly/aa091598.htm>.

[32] "The History of Computers", <http://inventors.about.com/library/blcoindex.htm>.

[33] Berners-Lee, T., "The History of the Internet", <http://inventors.about.com/od/istartinventions/a/internet.htm>.

[34] Fielding, R., "Apache HTTP Server Wiki", <http://wiki.apache.org/httpd/>.

[35] Kozierok, C.M., "IMAP Overview, History, Versions and Standards ", <http://www.tcpipguide.com/free/t_IMAPOverviewHistoryVersionsandStandards-3.htm>.

[36] "The TCP/IP Guide – SMTP Overview, History and Standards", <http://www.tcpipguide.com/free/t_SMTPOverviewHistoryandStandards.htm >.

[37] Oak, M., "Advantages of Relational Databases", <http://www.buzzle.com/articles/advantages-of-relational-databases.html>.

[38] Peter, I., "History of email", <http://www.nethistory.info/History%20of%20the%20Internet/email.html>.

[39] Sanders, K. Jr., "A fast and furious guide to MySQL database engines", <http://www.techrepublic.com/article/a-fast-and-furious-guide-to-mysql-database-engines/1058872>.

[40] Shannon, R., "The History of HTML", <http://www.yourhtmlsource.com/starthere/historyofhtml.html>.

[41] Thomas, J., "What Are the Advantages of Relational Databases?", <http://www.buzzle.com/articles/advantages-of-relational-databases.html>.

[42] Tschabitscher, H., "The First Email Message – Email History – About Email", <http://email.about.com/cs/emailhistory/a/first_email.htm>.

Similar Posts

  • Șabloane de Proiectare în Aplicații Web

    CUPRINS CAPITOLUL I. INTRODUCERE………………………………………………………………………………………. 1.1. Motivația temei………………………………………………………………………………….. 1.2. Scopurile lucrării………………………………………………………………………………… 1.3. Structura………………………………………………………………………………………….. CAPITOLUL II. Șabloane de proiectare in aplicații web……………………………………………….. 2.1. Generalități (ce sunt șabloane de proiectare, clasificare, elementele unui șablon)…………………………………………………………………………………………………. 2.2. Șabloanele ale aplicației web……………………………………………………………. CAPITOLUL III. Descrierea aplicației…………………………………………………………………………… 3.1. Domeniul de interes………………………………………………………………………… 3.2. Analiză…………………………………………………………………………………………… CAPITOLUL IV. Aplicarea șabloanelor de proiectare in aplicații web…

  • Aplicatie Web cu Baza de Date Pentru Promovarea Si Vanzarea Produselor Traditionale Dintr O Gospodarie

    LUCRARE DE LICENȚĂ „LaNana” Aplicație Web cu bază de date pentru promovarea și vânzarea produselor tradiționale dintr-o gospodărie CUPRINS 1.Introducere Aplicațiile Web cu baze de date sunt la ora actuală cea mai ușoară cale pentru toți membrii din spațiul economic pentru a își prezenta și gestiona produsele. Indiferent că vorbim de aplicații de gestiune, magazine…

  • Reproiectarea Sistemului Informational

    REPROIECTAREA SISTEMULUI INFORMATIONAL LA BIROUL VAMAL BUCURESTI SUD 1.PREZENTAREA GENERALA A BIROULUI VAMAL BUCURESTI SUD Denumirea Institutiei Ca proces, importanța managementului poate fi evidențiată prin comparația dintre managementul birocratic impus de regimurile totalitare înainte de 1989 și managementul japonez. În timp ce managementul birocratic se caracterizează prin planificare excesivă, lipsa marketingului, ignorarea unor elemente cum…

  • Tehnici de Compresie a Imaginilor

    Capitolul 1. Prezentarea problemei compresiei de imagini 1.1 Fundamente 1.1.1 Reprezentarea imaginii 1.1.2 Cuantificarea imaginii 1.1.3 Modelarea matematică a imaginii 1.1.4 Introducere în problema compresiei de date Tipuri de redundanță 1.1.5.1 Redundanța în codificare 1.1.5.2 Redundanța spatială . 1.1.5.3 Redundanța psihovizuală 1.1.6 Criterii de fidelitate 1.2. Modelarea procesului de compresie de imagini 1.3. Elemente de…

  • Mediul de Virtualizare

    Introducere în temă Virtualizarea este un cuvânt foarte des întâlnit în toate domeniile sau mediile care au fost informatizate, dar conceptul nu este nou însă este unul generalist fiind o metodă clara de emulare al unui program informatic sau al unei componente și chiar a unui sistem complet informatic. Mediul de virtualizare este dominat de…