Sunteți pe pagina 1din 44

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETICA STATISTICA SI INFORMATICA ECONOMICA SECTIA INFORMATICA ECONOMICA

LUCRARE DE DIPLOMA
PORTAL WEB ASE

Coordonator stiintific: Prof. univ. dr. ION SMEUREANU

Absolvent: STANCIU RADU VALENTIN

Bucuresti

-2006CUPRINS
Introducere ........................................................................................................................3 Capitolul I : Prezentarea ASE .........................................................................................4 1.1 Sistemul informatic al ASE-ului ......................................................................4 1.2 Prezentarea retelei din ASE .............................................................................6 Capitolul II : Portaluri web .............................................................................................8 2.1 Prezentare generala a conceptului de Portal Web .............................................8 2.2 Scurta istorie .....................................................................................................8 2.3 Conceptul de Portal Web ................................................................................10 2.4 Viitorul Portalurilor Web ................................................................................11 2.5 Portalul viitorului ............................................................................................11 Capitolul III : Prezentarea tehnologiilor web folosite .................................................12 3.1 Prezentare generala .........................................................................................12 3.2 Concept ...........................................................................................................13 3.3 Componente ....................................................................................................17 Capitolul IV : Studiul de caz ..........................................................................................21 4.1 Prezentarea aplicatiei ......................................................................................21 4.2 Analiza si proiectarea ......................................................................................22 4.2.1 Modelul cazurilor de utilizare ..........................................................22 4.2.2 Nivelul logic .....................................................................................23 4.2.3 Arhitectura sistemului ......................................................................25 4.3 Implementarea .................................................................................................26 4.3.1 Interfata ............................................................................................26 4.3.2 Structura paginilor ...........................................................................27 4.3.3 Tipuri de utilizatori ..........................................................................27 4.3.4 Structura bazei de date .....................................................................27 4.3.5 Arhitectura .......................................................................................32 Concluzii ..........................................................................................................................34

Bibliografie ......................................................................................................................35 Anexe ................................................................................................................................36 Introducere Scopul lucrarii de fata este de a oferi studentilor din cadrul ASE-ului un suport electronic pentru o serie de informatii foarte necesare care momentan nu sunt accesibile prin intermediul Internet-ului. Portal ASE isi propune sa completeze suportul online oferit de site-ul oficial ASE.ro prin posibilitatea consultarii unui orar virtual integral la nivelul ASE-ului, a stirilor globale, dar si particularizate de la nivel de Facultate pana la nivel de grupa. In acelasi timp prezinta si programarea examenelor normale, a examenelor restante dar si o lista a studentilor inscrisi la taxa care sunt restantieri de plata din diverse motive. Aplicatia este o unealta foarte utila atat studentilor din cadrul ASEului cat si a secretarelor facultatii, care vor administra in mare masura informatiile prezente pe site. Orarul este structurat astfel incat sa poate fi afisat la nivel de facultate/an, sectie, serie sau grupa. In sectiunea de stiri, va fi posibila atribuirea sarcinilor de organizare a stirilor, la niveluri inferioare celui global sau de facultate, anumitor studenti in mod special sefii de serie si de grupa, care pot comunica rapid colegilor stirile care ii vizeaza direct pe acestia, stiri de multe ori inaccesibile secretarelor. In cadrul acestui site web vor fi prezente si alte informatii generale si utile prin intermediul unui meniu structurat pe categirii ce contine link-uri catre anumite sectiuni din cadrul ASE.ro. Re-includerea acestor informatii in cardul acestui site ar fi o munca redundanta si implicit ineficienta. Prin aceste categorii ma refer direct la link-urile catre informatii referitoare la: abonamente, burse, camine, cadrele didactice, harta salilor, codificarea salilor, caserii in cadrul ASE-ului. Pe langa sectiunea accesibila tuturor utilizatorilor, exista si o sectiune foarte importanta, cea de administrare a informatiilor din cadrul acestui web-site referitoare la stiri, orar, codificarea grupelor din ASE si asocierea acestora facultatilor, anilor, sectiilor si seriilor, componenta grupelor de studentii, programarea examenelor si a restantelor. Pentru realizarea acestei aplicatii am folosit tehnologiile web PHP, HTML, CSS, JavaScript si SGBD-ul MySQL. Programele software utilizare pentru dezvoltarea proiectului sunt: Macromedia Dreamweaver 8.0 pentru editarea codului PHP, HTML, CSS si JavaScript dar si pentru integrarea designul paginilor web in codul HTML. MySQL-Front 3.2 pentru crearea in mod vizual a bazei de date MySQL, precum si pentru popularea tabeleleor. Adobe Photoshop CS 2.0 si Corel Draw 12 pentru crearea elementelor componente ale interfetei.

In cadrul acestei documentatii sunt prezentate informatii referitoare la sistemul informatic si al retelei ASE-ului in capitolul I, portaluri in general de la istorie, si concept pana la modul de formare al acestora, precum si idei de evolutie ale portalului viitorului, in cel de-al II-lea capitol. In capitolul al III-lea sunt prezentate tehnologiile folosite pentru realizarea aplicatiei la nivel de prezentare generala, concept si

componente. Ultimul capitol contine o scurta prezentare a aplicatiei urmata de o prezentare amanuntita a implementarii acesteia si apoi de un manual de folosire.

Capitolul I Prezentarea ASE


1.1 Sistemul informatic al ASE-ului In A.S.E exista la ora actuala mai multe sali predestinate asimilarii cunostintelor si studiului individual ce ofera conectare la Internet. Acestea sunt deschise in mod liber studentilor care pot astfel beneficia de cele mai moderne metode si mijloace de acces la informatiile dorite. Aceste sali dispun de echipamente de calcul moderne si legaturi suficient de puternice pentru asigurarea unei cat mai bune satisfacere a cerintelor utilizatorilor. Salile in cauza sunt: sala Victor Slavescu- compusa dintr-un numar de 44 PC-uri si 12 statii terminale, sala multimedia (Cihoschi)- detine 8 PC-uri si 48 de statii terminal si sala cantina Moxa care are 30 de statii terminal. Pe langa acestea mai putem adauga biblioteca multimedia aflata in Centrul de calcul, destinata insa studiului individual al studentilor facultatii de Cibernetica. Mai exista numeroase sali de seminar echipate cu PC-uri in cladirea Ciberneticii destinate tot studiului individual al studentilor facultatii de Cibernetica in afara orelor de seminar, precum si laboratoarele Microsoft de la etajul 6 cladirea Cibernetica si Sala Oracle de la parter, in cadrul aceleiasi cladiri. De curand s-a deschis un punct de acces internet destinat publicului larg prin reteaua din holul de la parter al Ciberneticii ca urmare a unei sponsorizari din Korea. Exista un nod central care coordoneaza accesul la toate aceste sali si care se afla in Centrul de Calcul din A.S.E. De la acesta pornesc toate legaturile catre salile de Internet, legaturi care sunt facute prin fibra optica si cablu UTP astfel incat informatia este bine gestionata pana la sursa. De asemenea, echipamentele Switch Intel Express utilizate sporesc performantele in conditiile unei securitati si fiabilitati ridicate. Interconectarea campusului Toate cldirile care fac parte din campusul ASE din Bucureti (zona Piaa Roman, Moxa i Serban Vod) sunt conectate prin magistrale de fibr optic ce opereaz la viteze de 1Gigabit pe secund. n cadrul cldirilor au fost instalate puncte de conectare pe fiecare etaj i au fost cablate cea mai mare parte a birourilor i spaiilor de nvmnt, pe msur ce au fost primite solicitri. S-au instalat n aceast perioad aproximativ 5000 porturi de acces la reea, pentru care au fost folosii aproximativ 200 kilometri cablu UTP i 10 kilometri fibr optic. Echipamentele active utilizate (swtich-uri, hub-uri, router-e) sunt toate produse de firme de prestigiu n domeniu (Cisco, Intel, 3Com), asigurnd astfel o fiabilitate i eficien ridicate, necesare n cadrul procesului didactic. Conexiuni la Internet 4

Pe lng conexiunile existente cu reeaua RoEduNet (2Mb/s) i ICI (64Kb/s), au fost contractate canale de date cu acces la reeaua la Internet i reeaua metropolitan. Academia dispune n acest moment de un canal de Internet de capacitate 40Mb/s i respectiv acces la reeaua metropolitan la viteza de 100Mb/s. Conectarea centrelor teritoriale IDD 13 Centre Teritoriale de Invmnt Economic Deschis la Distan au fost conectate la reeaua ASE prin conexiuni de minim 128Kb/s. Cmine A fost asigurat conectarea pentru cea mai mare parte a cminelor la reeaua ASE, fie prin conexiuni metropolitane cu viteze garantate de 128kb/s, fie, acolo unde distanele au permis acest lucru, prin fibr optic la viteze de minim 100 Mb/s (zona Moxa). Deasemenea, pentru o parte din cmine s-au instalat i porturi de acces la reea pe fiecare etaj sau n fiecare camer. Servicii reea Pe lng asigurarea accesului la resursele externe, din Internet, au fost dezvoltate n cadrul Departamentului o serie de servicii necesare pentru funcionarea corect a infrastructurii interne (DHCP, DNS, WINS). Deasemenea, sunt oferite personalului didactic i administrativ al Academiei i servicii de reea suplimentare, n vederea utilizrii facilitilor acestor tehnologii n activitatea de zi cu zi: a) Dial-Up & VPN Pentru a sprijini activitatea didactic i de cercetare, este permis accesul securizat de la distan ctre reeaua intern ASE (Intranet). Sistemul de dial-up (acces prin liniile telefonice comutate Romtelecom) este operaional de acum 4 ani, oferind 10 linii de acces simultan, non-stop. Se lucreaz acum la extinderea sistemului, urmnd ca acesta s suporte 30 de linii de acces simultan. Un alt proiect, aflat nc n faza de testare, va permite accesul la Intranet de la orice computer conectat la Internet, prin tunele n cadrul crora transmisiile de date vor fi criptate (tehnologia Virtual Private Networking). b) E-mail Implementat n urm cu 3 ani, sistemul gzduiete n acest moment 2500 csue potale, contribuind substanial la creterea eficienei comunicrii n cadrul i ntre diferitele compartimente ASE. Accesul la acest serviciu se poate face securizat, de la orice computer conectat la Internet, sistemul oferind i posibilitatea citirii mesajelor printr-un browser Web. c) Gzduire site-uri Web Departamentul ofera utilizatorilor reelei intranet serviciul de web hosting care este divizat in doua categorii si anume : Site-uri oficiale ale diferitelor compartimente ASE;

Site-uri ale personalului ASE, ale studentilor si organizatiilor studentesti din ASE. Site-uri cu scop didactic (pentru predarea tehnologiilor de publicare de informaii pe Internet) d) Multimedia n ultimul an, au fost dezvoltate i servicii de reea n zona multimedia. Astfel, a fost asigurat transmisia live pe Internet a mai multor evenimente importante din viaa Academiei, precum i publicarea de interviuri, prezentri i alte materiale multimedia pe site-ul ASE. 1.2 Prezentarea retelei din ASE In momentul de fata in cadrul retelei intranet a ASE sunt folosite urmatoarele echipamente active: 1) Hub 3COM 2) Switch 3COM 3) Switch Intel 460T 4) Switch Intel Express 550T 5) Switch Intel 510T 6) Hub Intel 330T 7) Switch Intel 480T 8) Switch Intel 470T 9) Switch Intel 470F 10) Router CISCO 2500 11) Router CISCO 2500 dial-up 12) Router CISCO 3660 13) Router CISCO 1700 14) AT-MC media convertoare 15) Rack mediu 16) Rack 42U 17) Rack Servere 57 buc 12 buc 53 buc 24 buc 15 buc 3 buc 2 buc 1 buc 1 buc 1 buc 1 buc 1 buc 2 buc 18 buc 30 buc 5 buc 5 buc

Administratia Retelei ofera utilizatorilor retelei intranet serviciul de web hosting care este divizat in doua categorii si anume : - Site-uri oficiale ASE; - Site-uri ale personalului ASE, ale studentilor si organizatiilor studentesti din ASE. Un alt serviciu oferit de department este si serviciul de e-mail. Asfel exista server ul de posta electronica ASE.ro dedicat personalui ASE si servere de e-mail dedicate studentiilor de la toate facultatile si sectiile ASE. Utilizatorilor din reteaua ASE li se ofera accesul gratuit la internet printr-o legatura pe fibra optica pina in SUA de 2 MB/s. In vederea asigurarii unui trafic de cea mai buna calitate in cadrul retelei intranet majoritate segmentelor de retea au fost interconectate prin fibra optica, astfel de la nucleul central pleaca conexiuni pe fibra optica dupa cum urmeaza:

1. 2. 3. 4. 5. 6. 7. 8. 9.

Comert (multimode) Sala 2001 (multimode) Mezanin (multimode) Caderea Bastiliei (multimode) Cihoschi (multimode) Tache Ionescu (single mode) Moxa (single mode) INDE (single mode) Grivita (single mode)

In afara de legatura la internet pe fibra optica, exista inca doua legaturi la internet realizate prin linii inchiriate cu ROEDU si ICI care asigura traficul de mail si dns. Pina in present in cadrul retelei intranet s-au folosit aproximativ 100 Km de cablu UTP, 1400 de prize duble de retea. Fibra optica folosita prezinta urmatoarele caracteristici: - 62,5/125 micrometri - 50/125 micrometri - conectori ST. In momentul de fata este in desfasurare a doua etapa de extindere a retelei presupune pe linga marirea numarului de prize puse la dispozitia utilizatorilor din cadrul ASE si oferirea de serviicii intranet /internet si unor institutii de invatamint preuniversitar cum ar fi : - Liceul German, - Scoala germana, - Liceul economic Virgil Madgearu, - Scoala generala Nr.5. Este in dezvoltare si un segment al departamentului ce va oferi tuturor utilizatorilor din intranet servicii de streaming multimedia. In vederea realizarii broadcastului audio video se foloseste pentru codare un calculator cu urmatoarea configuratie: Procesor Pentium IV la 2 Ghz - 1 Gb Memorie Rimm - 4 Hdd SCSi de 36 GB la 15000 rot/min - placa de sunet Creative sound blaster Audigy Platinum - placa de editare si subtitrare video Miro DC2000 - unitate DVD - unitate DVD writer - statie audio creative PlayWorks DTT3500 Digital La acesta se adauga o linie audio video PANASONIC si un server de streaming cu doua procesoare INTEL, 1 GB memorie RAM, 4 HDD de 18 GB SCSI. In general in cadrul departamentului sunt folosite servere a caror configuratie este 2 4 procesoare Intel, 4 HDD 18Gb SCSI, 1 Gb memorie Ram. Pe server-ele principale din ASE sunt rulate ca sisteme operare Novell 5.5, Windows 2000 Server, iar pentru e-mail sunt folosite programele Groupwise 6.0, Microsoft Exchange 5.5 si Microsoft Exchange 2000.

Capitolul II Portaluri Web


2.1 Prezentare generala a conceptului de Portal Web. Portal Web este un termen folosit pentru un site internet a carui scop este sa fie un punct de pornire important pentru utilizatori atunci cand acestia acceseaza Internetul. Exista portaluri generale si portaluri specializate sau de nia. Yahoo, CNET, AOL si MSN sunt unele dintre cele mai importante portaluri generale pe plan mondial. In Romania, printre portalurile Web generale cele mai cunoscute se numara ROL.ro, Acasa.ro, etc. Exemple de portaluri specializate pe plan mondial accesibile publicului includ IMDB.com pentru cinematografie, Fool.com pentru inventatori, DPReview.com pentru fotografi, iar din Romania Copilul.ro pentru parinti, eJOBS.ro pentru locuri de munca, Sapteseri.ro pentru divertisment, etc. Portalurile nia private sunt cele folosite de angajatii unei companii. Companii precum IBM si MasterCard folosesc portaluri pentru a ajuta la distributia informatiei catre angajati intr-o maniera eficienta si oportuna. Un numar mare de furnizori de acces la internet ofera portaluri Web pentru proprii lor utilizatori. Cele mai multe portaluri au adoptat stilul Yahoo in ceea ce priveste categoriile continutului cu pagini usoare, bazate pe text care se incarca foarte repede. Companile cu portaluri Web au atras interesul a numerosi investitori se pe bursa de valori pentru ca portalurile sunt privite ca fiind capabile sa serveasca unei audiente vaste care la randul sau se traduce intr-un numar foarte mare de privitori de reclame. Serviciile obisnuite folosite de portaluri Web publice includ un director de site-uri Web, facilitatea de a cauta alte site-uri Web, stiri, informatii despre vreme, e-mail, valoarea actiunilor bursiere, informatii despre telefoane si harti, si uneori forumuri dedicate respectivei comunitati. Portalurile private adesea insclud acces la informatii despre plata salariilor, directoare de telefoane interne, stiri din cadrul companiei, documentatii destinate angajatilor, etc.1 2.2 Scurta istorie La inceputurile internatului, site-urile Web aveau de obicei foarte putine pagini si erau caracterizate in special ca pagini statice. Aceea era era publicarii Web. Structura informatiei pe un site Web era setata de autor si era in general fixa. Navigarea acestor site-uri ierarhice se facea cu ajutorul meniurilor si a barelor de navigare. Proprietarii site-urilor comerciale le considerau pe acestea drept publicatii de marketing. Aceasta mentalitate de marketing a condus la site-uri Web al caror continut
1

http://www.mariosalexandrou.com/glossary/web_portal.asp

era diferentiat in deosebi de produs sau de piata. Liderii in aceasta difereniere erau companiile de calculatoare (Dell, Gateway, 3com, etc) care au considerat Internetul ca o modalitate de a promova si vinde propriile produse. Un bun exemplu in acest sens a fost site-ul Dell (www.dell.com). Dell si-a diferentiat site-ul sau prin piata de desfacere: companii mici, comanii medii si mari, guvern si educatie. Aceasta diferentiere a permis proprietarilor de site-uri Web sa-si trateze vizitorii diferit. Produse, servicii, preturi, servicii pentru clienti si alte oferte puteau fi diferite pentru fiecare piata. Cand un utilizator selecta una dintre aceste piete nu puteau vedea detaliile asociate celorlalte piete. Acest model a devenit foarte atractiv pentru companii pentru ca era exact cum faceau afaceri in pietele care nu aveau la baza Internetul. Nu este greu de imaginat diferentierea site-urilor Web ca precursorul conceptului de Portal, mai ales cand ne gandim la Portal ca la o usa. Ne putem gandi chiar la un site Web nediferentiat ca fiind analog unei case cu mai multe usi. Indiferent de usa prin care intram, tot putem vizita toate camerele din casa. Site-urile Web diferentiate, pe de alta parte, sunt ca duplexurile. Cand intrii pe o usa, poti vizita numai acele camere la care poti ajunge in acea parte a cladirii. Putem vedea originile catorva componente ale definitiei Portalului Web.In primul rand, Portalul a preluat functia de usa sau poarta. Serveste ca punct de intrare. In al doilea rand, diferentierea permite dezvoltatorilor de site-uri Web sa creeze un mesaj concentrat destinat unei anumite categorii de utilizatori. Diferentierea filtreaza de asemenea si informatia care nu este relevanta sau menita sa fie ascunsa acelei categorii. In perioade de crestere, Internetul a suferit o crestere fenomenala in numarul siteurilor Web si al utilizatorilor. Dimensiunile unui site Web tipic ca numar de pagini de asemenea a crescut exponential. Una din problemele esentiale, dar si puncul forte al siteurilor Web este natura ad hoc a acestora. Oricine poate produce un site Web. Site-ul Web poate avea aproape orice continut si poate fi structurat in orice fel. Controalele Web sunt in mare parte voluntare si exista o lipsa clara a standardelor, arhitecturilor si stilurilor site-urilor Web. Rezultatul acestei lipse a unei structuri este un Internet compus din site-uri Web care sunt in mare masura burlane. Aceste site-uri au conectivitate slaba intre ele, determinata de legaturile posesorului de site. Nu exista o organizare globala a Internetului, si nici nu exista una astazi. Consecinta era o navigabilitate scazuta care ameninta dezvolarea ulterioara a Internetului. Raspunsul la aceste problema a fost motorul de cautare. Un serviciu de cautare are un software automat care scaneaza Internetul dupa site-uri Web. Acest soft analizeaza apoi site-urile web pe care le gaseste si stocheaza termenii pe care ii gaseste intr-un index cu o referinta catre pagina in care a aparut respectivul termen. Serviciul ofera o interfata catre acest index care permite utilizatorului sa introduca o cerere compusa din termeni de cautare. Serviciul apoi cauta indexul pentru termeni si raporteaza utilizatorului adresele paginilor Web care contin termenii cautati. Multe dintre aceste servicii de cautare au inceput in aceasta perioada. Printre acestea se numara AltaVista (www.altavista.com), Excite (www.excite.com) si Lycos (www.lycos.com). Cu timpul, au fost adaugate mai multe tehnici de indexare si cautare mai sofisticate. Caracteristicile motoarelor de cautare ofera mai multa substanta conceptului de Portal. Natura ad hoc a cautarii este o trasatura importanta a Portalurilor. Ideea ca in acelasi timp cu accesul este specificat si continutul este o idee centrala a ideii de Portal.

In aceiasi idee cu aceasta este notiunea ca specificarea continutului printr-o cerere este facuta de utilizator. De asemenea, fiindca specificarea este o cerere, este relativ independenta cu fundamentul site-urilor Web. Cu alte cuvinte, proprietarii site-urilor Web isi pot actualiza continutul site-urilor proprii intr-o masura limitata si continutul care rezulta din cerere va fi, intr-o masura similara, actualizat. Faza de inceput si cea de expansiune a Internetului ocupa doar cativa ani din scurta existenta a Internetului. Faza de crestere s-a preschimbat rapid in ceea ce cunoastem ca faza de expansiune. In aceasta faza, Intenetul a crescut intr-un ritm fenomenal si din punctul de vedere al dimensiunii (numarul de servere si utilizatori) dar si al vastitatii (continutului). Evolutiile tehnologice au facut Internetul mai accesibil si mai robust. Succesut Internetului a creat unele probleme care ii ameninta cresterea ulterioara. Aceasca poate fi evidentiata de urmatorul exemplu. Mai jos avem rezultatul a trei cereri din cadrul serviciului de cautare AltaVista. In prima cerere, termenii White House (Casa alba) au fost folositi. Rezultatul contine peste 3 milioane de pagini web. Urmatoarele cautari folosind aceiasi termeni individual au gasit peste 17 milioane de pagini. Aceste tipuri de rezultate devin din ce in de mai orisnuite pe masura ce Internetul creste. Cercetatorii in regasirea informatiei folosesc doua masuratori pentru a evalua efectivitatea sistemelor de regasire a informatiei: regasirea si precizia. Acestea doua sunt definite astfel: Regasirea: numarul de rezultate relevante si recuperate / numarul total de rezultate relevante Precizia: numarul de rezultate relevante si recuperate / numarul total de recuperate Clar, in cazul cautarilor pe Internet, dimensiunea bruta a seturilor recuperate face evaluarea relevantei paginilor individuale impractica. In timp ce unele servicii de cautare au usurat aceasta situatie prin cautare avansata si tehnici de evaluare (Google), efectul general este ca efectivitatea unui motor de cautare ca unealta de accesare a Internetului au suferit un impact serios. Dezvoltarile in tehnologiile de servere Web si a tehnologiilor navigatoarelor si a protocoalelor care le servesc le-au condus la capabilitatea de a gazdui retele virtuale. Alte descoperiri au permis accesul web la baze de date. Beneficiile acestor descoperiri au fost culese de furnizorii de site-uri si de intermediarii care ofereau cautarea, accesul si serviciile de continut. In continuare avem o enumerare sumara a tipurilor de facilitati bazate pe Internet care au evoluat in faza de expansiue: Intermediari: motoare de cautare, portalurile verticaleservicii de informatii, filtre, personalizari ale site-ului Posesorii de site: diferentiere, continut dinamic, intraneturi/extraneturi, cautare, personalizare 2.3 Conceptul de Portal Web Printr-o explorare a evolutiei Internetului putem incepe incerca o catalogare a acelor caracteristici care contribuie la crearea conceptului de Portal. un Portal este o usa sau poarta. Ofera acces la informatii si legaturi specializate si directionate.

10

un Portal este un filtru. Elimina din calea noastra informatia care nu ne este de folos un Portal este ad hoc. Asta permite definirea lui sa aiba loc mai degraba la momentul folosirii, decat la momentul modelarii lui. Definita lui este specificata de utilizator. un Portal este personalizat. Un utilizator ii poate specifica comportamentul, infati-sarea si contunutul. un Portal este individualizat. Un portal este un canal unu la unu intre furnizor si audienta. Aceste trasaturi par a delimita o definitie robusta a Portalului. Aceasta este totusi o definire de jos in sus care a derivat dintr-o perspectiva directa asupra evolutiei Internetului si a tehnologiilor si paricipantilor sai. Ramane de vazut daca aceasta definire se va schimba pe viitor. 2.4 Viitorul Portalurilor Web Anumite aspecte ale Internetului viitorului sunt foarte clare: Vor fi mai multe siteuri Web. Site-urile Web vor fi mai mari. Continutul Internetului va fi mai divers si va necesita o banda de transfer a datelor tot mai larga. Site-urile Web vor fi mai active. Streaming-ul de constinut in timp real va fi mai raspandit. Noi servicii vor fi dezvoltate. Nici una dintre acestea nu este surprinzatoare din moment ce sunt doar proiectii ale tendintelor care se au loc in prezent. Daca credem in aceste tendinte , atunci putem considera definitia Portalului ca pe o descriere de tendinte. Cu alte cuvinte, Portalurile vor deveni mai ad hoc, mai personalizate, mai individualizate, cu filtre mai puternice, etc. 2.5 Portalul viitorului Consideram ca acele componente care compromit ideea noastra de Portal trebuie sa se schimbe. Aceste schimbari vor fi aduse de doua forte. Prima, pe masura ce Internetul continua sa creasca in dimensiuni, implementarile de Portal curente vor deveni suprasolicitate si vor ceda. Incepem sa vedem acest lucru observand cum motoarele de cautare isi pierd eficienta. A doua forta este motivatia de profit. Internetul este puternic pentru gasirea de informatie noua. Nu este la fel de folositor la desfasurarea activitatilor noastre zilnice. Portalul viitorului va fi: Centralizat pe utilizator: continutul, furnizarea sia ccesul trebuie sa nus e mai aflein controlul furnizorilor si al intermediarilor. Utilizatorii trebuie sa fie cei care determina continutul si organizarea. conceptul de portal se va departa de conceptul de poarta catre furnizori si intermediari spre a fi o fereastra din mediul utilizatorului. Orientat catre procesul de afacere: Adevarata valoare a informatiei consta in folosirea ei. Continutul Internetului trebuie sa se incadreze in munca utilizatorilor. Integrat: aproape toate situatiile de afaceri care pot beneficia de pe urma continutului Internetului necesita informatie si din mediul local. Aceste surse de informatii trebuie integrate intr-o modalitate insesizabila.

11

Adaptiv: Portalul trebuie sa fie sensibil la schimbarile din mediul utilizatorului precum si al schimbarilor din cadrul Internetului.2

Capitolul III Prezentarea tehnologiilor web folosite

Tehnologiile web folosite pentru realizarea acestui proiect sunt: HTML (Hyper si CSS (Cascade Style Sheet), JavaScript, PHP (Hypertext Preprocessor), MySQL (Open Source - Structured Querry Language). Aceste tehnologii web vor fi prezentate in acest capitol.
Text Mark-up Language)

3.1 Prezentare generala HTML Unul din primele elemente, fundamentale de altfel, ale WWW (World Wide Web) este HTML (HyperText Markup Language), standard ce descrie formatul primar in care documentele sint distribuite si vazute pe Web. Multe din trasaturile lui, cum ar fi independenta fata de platforma, structurarea formatarii si legaturile hipertext, fac din el un foarte bun format pentru documentele Internet si Web. Primele specificatii de baza ale Web-ului au fost HTML, HTTP si URL. CSS Descriind infatisarea paginilor Web prin pagini de stil (stylesheets), CSS-ul este o tendinta majora care cuprinde Internetul. Ideea de baza este ca fiind data structura unui document, descrisa prin HTML XHTML, o pagina de stil defineste asezarea, culorile, fonturile si alte caracteristici vizuale pentru prezentarea continutului. Aplicand un set diferit de definitii ale CSS-urilor asupra unui document, i se poate modifica radical aspectul, acesta putand deveni complet diferit, chiar daca textul si imaginile sunt aceleasi. Stilurile pun la dispozitia creatorilor de site-uri Web noi posibilitati de personalizare a paginilor HTML. JavaScript Cu cat intelegem mai mult despre scopul si limitarile JavaScript-ului, cu atat este mai probabil sa il folosim cand este unealta potrivita. In mod special, JavaScript trebuie ales in urmatoarele tipuri de solutii: daca se doreste ca paginile Web sa raspunda sau sa reactioneze direct la interactiunea utilizatorului cu elementele form-urilor si a link-urilor hypertext. pentru distribuirea unor colectii mici de date asemanatoare informatiilor bazelor de date, oferind o interfata prietenoasa pentru aceste date.
2

http://ltl13.exp.sis.pitt.edu/Website/Webresume/WebPortalPaper/WebPortals.htm 12

pentru controlarea navigarii pe cadrelor multiple, pluginuri, sau appleturi Java bazate pe alegeri ale utilizatorului in documentul HTML preprocesarea datelor pe partea clientului inainte de trimterea catre server pentru a schimba continutul si stilurile in navigatoarele moderne dinamic si instant ca raspuns la interactiunea utilizatorului. PHP La fel ca multe alte proiecte software importante, PHP s-a nascut sub forma unui mic utilitar cu care trebuia sa rezolve o problema simpla si foarte particulara. In 1995, un programator pe nume Rasmus Lerdorf si-a publicat CV-ul in pagina sa Web. Pentru ca sa poata sa urmareasca cine i-a vizitat pagina, Rasmus a introdus in pagina un tag special si a scris in Perl un script CGI care sa colecteze informatii despre vizitatori, pe care apoi le scria intr-un jurnal (log). A botezat acest cod PHP (Personal Home Page) tools. Mai apoi, in cadrul unui proiect "de serviciu", a trebuit sa realizeze o interfata intre clientii de pe Web si o baza de date. A recurs la aceeasi idee: taguri HTML proprii, procesate de un script CGI (de data aceasta scris in C) care le inlocuia cu continutul care trebuia inserat in pagina. A numit aceste taguri "Form Interpreters" (FI) deoarece rolul lor era de a prelua datele transmise prin formulare HTML si de a le transforma in variabile simbolice pe care le folosea apoi pentru interogarea bazei de date. Ce a urmat este destul de simplu: a reunit codul PHP cu FI si l-a facut public sub numele PHP/FI. Comunitatea programatorilor a facut restul. Programul a fost corectat, dezvoltat si extins In regim open source, depasind cu mult scopul sau initial. Desi numele PHP s-a pastrat, semnificatia sa a devenit alta (cea din titlul articolului - observati caracterul recursiv, similar cu GNU). Ajuns intre timp la versiunea 4, PHP este un limbaj de scripting server-side foarte solid, dotat cu peste 1000 de functii, implementat pe numeroase platforme, conlucrand cu toate serverele Web importante si dispunand de interfete pentru toate majoritatea bazelor de date utilizate. Popularitatea sa a crescut neincetat, statistici Netcraft (nu foarte recente) estimand ca PHP este folosit in circa 1,5 milioane de domenii Web. MySQL MySQL este cel mai popular sistem de management pentru bazele de date relationale deoarece este Open Source, adica poate fi utilizat fara restrictii de ordin financiar. MySQL Server a fost creat pentru a lucra cu baze de date mai rapid decat solutiile existente deja si este folosit de ani buni in medii foarte solicitante. Intr-o baza de date relationala datele sunt stocate in mai multe tabele separate, fiind astfel imbunatatite viteza si flexibilitatea. Tablele pot fi legate prin relatii definite de programator, fiind astfel posibil a combina datele din mai multe tabele la cerere. 3.2 Concept HTML

13

HTML-ul a fost dezvoltat initial de Tim Berners-Lee la CERN in 1989. HTML este un limbaj bazat pe SGML (Standard Generalized Markup Language), o asa-numita aplicatie a acestuia. SGML este un standard international (ISO-8879) aprobat n 1986. HTML a fost initial vazut ca o posibilitate pentru fizicienii care utilizeaza computere diferite sa schimbe intre ei informatie prin mijlocirea Internetului. Erau prin urmare necesare cateva conditii esentiale: independenta de platforma, posibilitati hipertext si structurarea documentelor. Independenta de platforma semnifica faptul ca un document poate fi afisat in mod asemanator (sau aproape identic) de computere diferite (deci cu font, grafica si culori aidoma), lucru vital pentru o audienta numeroasa si extrem de variata. Hipertext se traduce prin faptul ca orice cuvint, fraza, imagine sau element al documentului vazut de un utilizator (client) poate face referinta la un alt document sau chiar la paragrafe din interiorul aceluiasi document, ceea ce usureaza mult navigarea intre partile componente ale unui document sau intre multiple documente. Structurarea riguroasa a documentelor permite convertirea acestora dintr-un format in altul precum si interogarea unor baze de date ingloband aceste documente. In acest moment, HTML 4.0 este larg utilizat si au fost deja publicate specificatiile HTML 4.01. Limbajul HTML da proiectantilor de pagini web posibilitatea: sa publice documente cu headere, texte, tabele, liste, fotografii, etc... sa regaseasca on-line informatii prin intermediul hiperlink-urilor accesate printr-un simplu click de mouse sa proiecteze formulare pentru realizarea tranzactiilor cu servere aflate la distanta, pentru cautari de informatie sau pentru activitati specifice comertului sa includa foi de calcul tabelar, clipuri video, sunete si alte aplicatii direct n documente. Elementul esential diferit adus de versiunea 4.0 si mai ales 4.01 fata de versiunea 3.2 este posibilitatea separarii structurii unui document de prezentarea lui prin introducerea stilurilor de documente (style sheet). Utiliznd limbajul HTML pentru structurarea unui document si style sheet-urile pentru a stiliza prezentarea acestuia, proiectantii pot obtine mult mai usor independenta de periferic/ computer/ platforma hard-soft, lucru care a facut HTML-ul att de popular. Un document cu o structura complexa poate fi prezentat in diferite moduri pe medii diferite, permitand documentului insusi sa se adapteze mai usor noilor tehnologii (cum ar fi, de exemplu, browserele capabile sa vorbeasca, cititoarele braille, etc...). In plus, separarea continutului de partea de prezentare permite modificarea infatisarii chiar a unui intreg site doar prin modificarea unui style-sheet (a unui document care descrie stilul). Experienta a demonstrat ca o astfel de abordare poate reduce dramatic costurile de deservire a unui spectru larg de platforme si probleme, facilitnd si o intretinere ulterioara si modificari mult mai usoare. CSS Un stil reprezinta un mod de formatare exacta a unui bloc de text (spre exemplu anumite caracteristici pentru font, marime, culoare, aranjare in pagina, distantare fata de margini etc). Exista doua modalitati de a defini un stil: sintaxa CSS (Cascading Style Sheets) si sintaxa Javascript. 14

Tehnologia CSS faciliteaza oricarui proiectant de pagini web posibilitatea de a creea un stil pentru fiecare tag HTML intrebuintat la un moment dat, putand ulterior sa aplice implicit acest stil in toate paginile site-ului pentru elementul de pagina respectiv (adica pentru tagul HTML stilizat). Standardul CSS permite informatiilor cu privire la stil sa fie specificate si referite in mai multe feluri. Stilurile pot fi specificate in interiorul fiecarui tag HTML in parte, in cadrul sectiunii HEAD a documentelor HTML sau intr-un fiser extern cu extensia ".CSS". In interiorul aceluiasi document HTML pot fi referite mai multe fisiere CSS externe. JavaScript Este un limbaj script orientat obiect folosit pentru dezvoltarea de aplicatii Internet bazate pe partea clientului. Declaratiile JavaScript incluse intr-o pagina HTML pot recunoaste si raspunde la evenimente ale utilizatorului precum click-uri de mouse, elemente ale formularelor si navigarea paginii. Javascript-ul deriva din limbaje mici, cu cod dinamic precum HyperTalk si dBASE. Aceste limbaje de scripting ofera programatorului unelte pentru o mai mere audienta deoarece au o sintaxa simpla, o functionalitate specializata inclusa si un necesar minim pentru crearea de obiecte. JavaScript este suportat de toate browserele importante precum Netscape, Internet Explorer, FireFox si Opera. Limbajul JavaScript seamana cu Java, insa fara codul static si validarea codului prezente la Java. PHP Reprezinta o solutie simpla pentru a genera pagini dinamice. Exista mai multe metode pentru a realiza in mod dinamic pagini Web insa limbajul PHP are insa avantajul simplitatii si a independentei de sistemul de operare. Sa consideram urmatorul cod:
<HTML><BODY> <? print("Salut, $REMOTE_ADDR !<br>") ?> </BODY></HTML>

Sa admitem ca fisierul se afla intr-un subdirector al serverului Web (pornind de la document root) si ca poate fi accesat de un navigator web la o anumita adresa (de pilda "http://www.php_ex.ro/Ex1.php"). Procesul este urmatorul: browserul trimite catre serverul Web o cerere HTTP pentru fisierul Ex1.php. Serverul stie ca fisierul cerut contine cod PHP, asa ca va lansa preprocesorul PHP, care va primi la intrare fisierul Ex1.php. Preprocesorul va identifica secventele PHP (cuprinse intre marcajele <? si ?>) si le va interpreta. Tot ce nu este cod PHP este trimis spre iesirea standard fara nici o prelucrare. Codul PHP poate scrie la randul sau in iesirea standard (prin echo sau print). In fine, serverul Web intercepteaza iesirea standard a preprocesorul si trimite totul catre browserul care a cerut pagina (de fapt scriptul).

15

In exemplul de mai sus, serverul Web va trimite intai header-ele HTTP, dupa care va lansa preprocesorul PHP. Acesta va trimite la iesire (deci spre browser) sirul de caractere "<HTML><BODY>", dupa care va interpreta secventa PHP. Aceasta va trimite la randul ei spre browser un sir de caractere (ceva de genul "Salut, 184.200.100.40 !"), dupa care se trimite restul fisierului. In final, browserul va primi un fisier HTML "curat", pe care il va transpune pe ecran in mod absolut obisnuit. Exista posibilitatea de a cuprinde totul in codul PHP:
<? echo "<HTML><BODY>"; echo "Salut, $REMOTE_ADDR !"; echo "<br></BODY></HTML>" ?>

A doua varianta pune in evidenta faptul ca se poate "sparge" codul PHP in bucati:
<HTML><? echo "<BODY>" ?>Salut, <? print(" $REMOTE_ADDR !") ?> <br></BODY><? echo "<HTML>" ?>

Rezultatul final este acelasi in toate variantele. MySQL Odata cu dezvoltarea calculatoarelor, cantitatea de informatie vehiculata in cadrul diverselor firme, institutii, organizatii sau intre persoane fizice a crescut exponential. Orice aplicatie software prelucreaza un volum mai mic sau mai mare de informatie si necesita stocarea acestuia pe disc. Algoritmii dezvoltati de-a lungul timpului au oferit solutii din ce in ce mai bune pentru problemele legate de stocarea si readucerea datelor dar si pentru prelucrarea lor - mergand pana la a oferi modele standardizate de lucru. Punctul culminant al teoriei structurilor de date a fost atins in momentul definirii conceptului de baze de date relationale. Acesta descrie metode de modelare a problemelor reale in scopul definirii unor structuri care sa elimine redundantele in stocarea datelor si sa permita cu usurinta modificari cerute de evolutia problemei reale. Cu aceasta ocazie sunt identificate operatiile comune efectuate de marea majoritate a aplicatiilor, fapt care ii indreptateste pe teoreticieni sa puna bazele unui limbaj accesibil oricui si care sa permita implementarea cu usurinta a tuturor metodelor de lucru intalnite in aplicatiile ce necesita baze de date. Definirea lui s-a facut doar la nivel teoretic, implementarea fiind lasata in sarcina companiilor ce dezvolta motoare de baze de date. Acest limbaj a fost denumit SQL (Structured Query Language) si este implementat de toate motoarele existente in prezent. Avantajul principal al acestui limbaj s-a dorit sa fie simplitatea. Spre deosebire de un adevarat limbaj de programare ce necesita invatarea unor sintaxe stricte si usor de confundat, SQL are o sintaxa foarte apropiata de limbajul uman natural, usor de inteles si de utilizat. O fraza in acest limbaj trebuie sa fie lizibila pentru oricine cunoaste cele cateva cuvinte din limba engleza care compun vocabularul SQL: SELECT, FROM,

16

WHERE, ORDER BY etc. Complexitatea sistemului care implementeaza algoritmii necesari lucrului efectiv cu datele, metodele de stocare, cautare etc, precum si optimizarile sunt perfect transparente pentru utilizator. Acest limbaj nu este considerat un limbaj de programare deoarece a fost conceput pentru a spune calculatorului CE date sunt necesare si nu CUM trebuie obtinute. Sunt necesare cunostinte minime de calculator pentru utilizarea SQL; acesta este de fapt si idealul urmarit de marile firme producatoare de motoare de baze de date: comercializarea unui sistem complex care sa permita implementarea oricarei baze de date; datele se pot apoi manipula doar cu ajutorul utilitarelor anexate sistemului, fara a mai fi nevoie de scrierea de aplicatii specifice. Al doilea mare avantaj il constituie portabilitatea. O aplicatie utilizeaza o baza de date prin intermediul acestor fraze SQL care nu sunt altceva decat simplu text. Orice motor de baze de date accepta astfel de fraze, facand posibila migrarea unei aplicatii de pe un motor pe altul mai performant fara nici o modificare. Faptul ca SQL este un standard unanim recunoscut confera un mare avantaj aplicatiilor care isi pot alege oricand pe ce sistem sa ruleze. Standardizarea a fost intotdeauna o sursa de progres; stabilirea unui limbaj comun a permis producatorilor din intreaga lume sa isi sumeze eforturile si sa isi bazeze munca pe rezultatele anterioare. 3.3 Componente HTML HTML este un limbaj client-side (orientat client), adica toate evenimentele din spetele aparitiei pe ecran a paginii cerute se executa numai pe calculatorul utilizatorului. Tag-urile HTML se inscriu in una dintre categoriile de mai jos. Cu ajutorul acestora se stabileste modul de prezentarea a informatiilor in cadrul paginii: marcaje de baza, marcaje de formatare a caracterelor, marcaje pentru imagini, marcaje pentru liste, marcaje pentru tabele, marcaje pentru cadre, marcaje pentru formulare, marcaje pentru carcatere speciale CSS La modul general putem afirma ca toate stilurile utilizate pentru elementele HTML ale unei pagini web vor fi "cascade" intr-un fiser de stil virtual atot cuprinzator, in care precedenta diferitelor tipuri de stiluri aplicate tag-urilor din pagina va fi urmatoarea (de la precedenta cea mai mica la precedenta cea mai mare): Prima precedenta: Stilul specificat in setarile Browserului (exemplu in IE: View -> Text Size -> Largest); A doua precedenta: Stilul specificat in cadrul setarilor din fisierul de stil extern; A treia precedenta: Stilul intern specificat in sectiunea HEAD a documentului HTML; A patra precedenta: Stilul intern specificat in cadrul tagului curent.

17

Stilurile se pot atasa documentelor ce urmeaza a fi afisate in mai multe maniere. Aceste metode de atasa a stilurilor sunt: stiluri dedicate, clase de stiluri, stiluri identificate, stiluri inline, stiluri definite in fisiere externe, pseudo clase de stiluri JavaScript Limbajul JavaScript, lucrand in tandem cu alte facilitati legate de navigatoare, este o tehnologie de imbunatatire a experientei Web. Cand este activata pe calculatorul clientului, limbajul ajuta la transformarea unei pagini cu continut static intr-o experienta interactiva si inteligenta. Aplcatiile pot fi subtile precum salutarea utilizatorului cu Buna dimineata cand este dimineata pe calculatorul clientului, chiar daca este seara unde este localizat serverul. Aplicatiile pot fi mult mai clare, precum oferirea unui continut de slide-show intr-o singura pagina, in timp ce Javascriprul controleaza secventierea de ascundere, afisare si a tranzitiilor intre imagini in timp ce navigam in cadrul prezentarii. JavaScriptul ofera designerilor de pagini Web o unealta de programare autorii HTML nu sunt de obicei programatori, dar JavaScript este un limbaj scriptic cu o sintaxa foarte simpla. El poate pune text dinamic intr-o pagina HTML. , reactiona la evenimente, citi si scrie elemente HTML sau valida date. Componenta esentiala a JavaSriptului modern este DOM (Document object model), mai exact prezentarea unei pagini Web ca o colectie de obiecte, ierarhizate. Acest mod revolutionar de a privi dinamic si obiectual o pagina clasica HTML usureaza si structureaza munca dezvoltatorilor de pagini Web. In partea superioara se afla obiectul principal fereastra. Apoi la acelasi nivel vin urmatoarele obiecte: navigatorul, ecranul, istoria si locatia si documentul. Subordonat obiectului document este obiectul Formularului, la randu-i fiindu-i subordonate obiectele ce reprezinta elemente ale acestuia precum controlerele de formular, butonul, checkbox, radio, selectul, dar si imagini, sunete. Fiind un limbaj scriptic ce are la baza un limbaj de programare, Javascriptul are multe din elementele acestuia: variabile, siruri de caractere, tablouri, functii matematice, variabile de tip data, operatori, expresii si evaluatori, convertori intre diferitele tipuri de date, decizii, structuri alternative, repetitive, de decizie, functii. Javascript-ul este un limbaj inclus intr-o pagina HTML astfel: in interiorul unor taguri (delimitatoare) <SCRIPT> si </SCRIPT> asociate unui eveniment in cadrul unui obiect din cadrul formularului: <td onMouseOver="ch_im('','s_im','s_4');> </td> ca o referinta: < SCRIPT src="scripts/meniuDD.js"></ SCRIPT > PHP PHP este, in cele din urma, un limbaj de programare in toata regula, asa ca dispune de variabile, structuri de control, functii de biblioteca, functii definite de utilizator si chiar clase. Din fericire, sintaxa este foarte simpla, fiind in buna masura preluata din C. Variabilele sunt prefixate de caracterul "$" si - ca in majoritatea limbajelor interpretate - sunt tipizate dinamic. In exemplul de mai sus, singura variabila folosita a 18

fost $REMOTE_ADDR, o variabila de mediu, care primeste automat ca valoare adresa IP a clientului care a expediat cererea HTTP. Variabilele de mediu sunt importate de preprocesorul PHP din mediul in care acesta ruleaza, deci pot sa difere in functie de sistemul de operare si de serverul Web (in general se poate miza pe variabilele de mediu disponibile in CGI). Din pacate, variabila $REMOTE_ADDR este specifica serverului Apache, asa ca s-ar putea ca sub alte servere sa nu fie definita. Pe de alta parte, valoarea ei nu este intotdeauna cea corecta (se poate sa primim adresa serverului de cache utilizat de ISP). O varianta imbunatatita a scriptului ar putea arata astfel:
<HTML><BODY> <? if (getenv("HTTP_X_FORWARDED_FOR")) { $ip=getenv("HTTP_X_FORWARDED_FOR"); } else { $ip=getenv("REMOTE_ADDR"); } echo "Salut, $ip !<br>"; ?> </BODY></HTML>

In primul rand, trebuie remarcat faptul ca variabilele de mediu nu mai sunt referite direct, ci printr-o functie specializata numita getenv. Aceasta returneaza valoarea variabilei daca ea exista sau sirul vid ("") in caz contrar. Pe de alta parte, exista si o variabila proprie: $ip. O alta noutate o reprezinta structurile de control. Constructia if este similara cu cea din C, cu diferenta ca testul se evalueaza false si in cazul in care rezultatul evaluarii expresiei este sirul vid (sau chiar sirul "0"!). Echo este o constructie speciala, echivalenta cu functia print; Sirurile de caractere pot fi cuprinse intre ghilimele sau intre apostrofuri. Diferenta este ca in al doilea caz se inhiba evaluarea variabilelor. In afara de structuri de control, variabile si functii, PHP dispune si de constante simbolice. Acestea de definesc prin functia define, nu mai pot fi redefinite iar vizibilitatea lor este globala. Exista si un set de constante predefinite, printre care TRUE, FALSE, PHP_VERSION etc. Structurile de control (if-else-elseif, while, do..while, for si switch) dispun si de o sintaxa alternativa. De exemplu while (cond): instructiuni endwhile; Operatorii folositi in expresii sunt cei din C. Astfel, atribuirea se noteaza cu "=" (egal) iar egalitatea se testeaza cu "==" (dublu egal), negatia este "!" (semnul exclamarii), exista operatorii de pre si post incrementare/decrementare, la fel si operatorii inlantuiti (a

19

+= 4 este echivalent cu a = a + 4 si asa mai departe). Concatenarea sirurilor se marcheaza cu "." (punct). O mentiune speciala merita functiile include() si require(), care permit includerea fisierelor externe in codul PHP. Datorita lor organizarea unui proiect poate fi structurata in mod logic. MySQL Odata autentificat, utilizatorul va putea comunica cu server-ul MySQL folosind comenzi SQL. Trimiterea unei comenzi SQL catre baza de date se mai cheama si interogare. SHOW DATABASES; - afiseaza bazele de date existente pe server; USE baza_de_date; acceseaza o anumita baza de date; SHOW TABLES; - afiseaza tabelele din baza de date selectata; CREATE DATABASE baza_de_date; - creaza o baza de date; CREATE TABLE tabel(camp1 Tip_camp1,); - creaza un tabel in cadrul bazei de date curente cu campurile indicate; DROP TABLE tabel; - sterge tabelul indicat din baza de date; DROP DATABASE baza_de_date; - sterge baza de date indicata; INSERT INTO tabel(camp1, camp2,) VALUES (val1, val2, ); - introduce in tabel valorile date in campurile aferente; SELECT * FROM tabel; - afiseaza continutul tabelului indicat; SELECT camp1, FROM tabel; - afiseaza numai campurile de interes din tabelul indicat; SELECT * FROM tabel WHERE conditie; - afiseza numai inregistrarile ce indeplinesc conditia; SELECT * FROM tabel ORDER BY camp ASC/DESC; afiseza inregistrarile din tabel ordonate crescator/descrescator; DELETE FROM table WHERE conditii; - sterge inregistrarile din tabel care indeplinesc conditiile; UPDATE tabel SET coloana1 = noua_coloana1, coloana2 = noua_coloana2 WHERE conditii; - modifica inregistrari fara a le sterge; ALTER TABLE tabel CHANGE camp1 camp2 tip; - modifica structura tabelei; In ceea ce priveste indexii, cel mai utilizat tip de index este ID-ul. Acesta este un numar unic de identificare pentru un element distinct (un rand) al unui tabel. SET INSERT_ID = #; ALTER TABLE carti ADD id_carte INT USIGNED NOT NULL AUTO_INCREMENT FIRST, ADD INDEX (id_carte); - este folosit ca pentru fiecare carte deja adaugata sa fie pus un ID unic. De asemenea, pentru toate cartile ce vor fi adaugate de acum inainte va exista un ID unic, incrementat automat.

20

Normalizarea inseamna structurarea tabelelor bazei de date in asa fel incat datele din aceasta sa ocupe cat mai putin spatiu pe hard disc, fiind astfel deosebit de utila. Chiar daca spatiul nu poate parea o problema, trebuie luata in considerare posibilitatea ca la un anumit moment sa fie necesara extinderea la un numar de megabiti ce depaseste valoarea stipulata in constractul cu ISP-ul. In aceasta situatia intervine tehnica normalizarii. Ideea este aceea a crearii in unei tabele auxiliar ce pastreaza datele consumatoare de spatiu. El va fi legat de tabela initiala prin intermediul ID-urilor. De exemplu, in loc sa existe o tabela cu carti in care alaturi de titlu, desciere, pret sa existe si un camp autor, putem crea tabela cartilor dupa structura urmatoare: (id_autor - INT, titlu TEXT, descriere TEXT, pret INT). In afara de acesta se creaza si o tabela al autorilor (id_autor INT, nume_autor TEXT) unde sunt stocate efectiv numele autorilor. Legatura dintre cele doua tabele se face, in mod evident, prin intermediul campului id_autor. In maniera aceasta se econimiseste un mare spatiu de pe hard disc.

Capitolul IV Studiul de caz


4.1 Prezentare aplicatiei Aplicatia Web Portal A.S.E. a fost conceputa cu scopul de a umple o nisa in cazul suportului online pentru studentii din ASE Bucuresti, si anume prezenta, in special, a unui orar virtual, cu posiblitatea unei administrari facile. Pe langa orarul virtual, mai sunt prezente stiri, structurate pe diferite nivele la nivelul ASE-ului, la nivelul facultatii, al anului, al specializarii si al grupei, precum si alte informatii utile studentilor din ASE: lista cu componenta grupelor de studenti lista cu restantierii de plata ai studentilor inscrisi la invatamantul cu taxa programarea examenelor si a restantelor linkuri catre pagini din site-ul ASE.ro cu informatii despre: cadre didactice, abonamente, burse, camine, harta si codificarea salilor si caseriile din ASE. sectiunea suport de curs ce contine cursuri, seminarii, proiecte, si produse software freeware. Proiectul contine doua mari parti:

21

cea publica, destinata utilizatorilor obisnuiti care acceseaza acest site cea de administrare, destinata celor care gestioneaza informatiile prezente pe site, sau gestionarea administratorilor acestuia. In partea publica, utilizatorul poate avea posiblitatea de a cere crearea unui cont prin intermediul formularului din sectiunea Inregistrare. Trebuie sa isi completeze numele, grupa si adresa de e-mail. Un administrator va verifica daca datele sunt corecte si ii va crea un cont. Prin intermediul acestui cont ii este permisa operatia de administrare a meniului personalizat din dreapta paginii prin care se pot defini un numar limitat de link-uri personalizate din interiorul site-ului. Alt avantaj ar fi ca toate link-urile din seciunea de stiri si cea a orarului se incarca direct cu informatiile legate direct de grupa din care face parte utilizatorul autentificat. Ex: daca am grupa 1101 (CSIE, An5, Informatica) si dau click pe Stiri de specializare imi vor fi afisate direct stirile de la specializarea mea. Altfel, ar fi trebuit sa selectezi manual specializarea care ma intereseaza. In cazul orarului, avem o situatie similara. In partea de administrare, exista mai multe tipuri de utilizatori care pot gestiona diferite sectiuni are informatiilor, in functie de nivelul de acces si de felul utilizatorului. Pot exista administratori care sa gestioneze utilizatorii, altii care sa gestioneze orarul, altii stirile, etc. Pot exista de asemenea administratori de stiri care sa aiba posibilitatea de a gestiona numai stiri la nivelul seriei sau grupei lor. Ca interfata, sectiunea de administrare se rezuma la un meniu lateral situat in partea stanga care va avea listate tabelele la care are acces utilizatorul. Cand se va accesa un link din acest meniu se va incarca o pagina specifica tabelei prin intermediul careia se pot efectua operatiile necesare de listare, modificare, adaugare, stergere. In continuare va voi prezenta analiza, proiectarea si implementarea aplicatiei. 4.2 Analiza si proiectarea 4.2.1 Modelul cazurilor de utilizare Cazul de utilizare principal este prezentat in figura de mai jos:

Figura 4.1 : Diagrama Cazului de Utilizare principal

22

Cazurile de utilizare ce pot fi identificate sunt : Administrare aplicatie si Vizitare site. Actorii care intra in interactiune cu sistemul sunt : administratorul, care se ocupa de toate operatiunile legate actualizarea si intretinerea bazei de date si a aplicatiei, si clientul care este de fapt beneficiarul acestei aplicatii. Aceste doua cazuri de utilizare vor fi detaliate in cele ce urmeaza. a) Cazul de utilizare administrare aplicatie Dupa cum se poate observa din Figura 4.2: Diagrama cazului de utilizare administrare aplicatie din Anexa 1, actorul care participa la acest caz de utilizare este administratorul. Scopul acestuia este de a actualiza toate tabelele bazei de date si de a intretine aplicatia in bune conditii. Administrare tabele: presupune actualizarea - adaugarea, modificarea, stergerea si listarea de informatii din totate tabelele existente in baza de date, scopul acestei actualizari fiind tinerea la zi a tuturor datelor. Preconditie: date neactualizate. Postconditie: date actualizate. Autentificare administrator: presupune autentificarea administratorului folosind user-ul si parola proprie. Scopul autentificarii se reflecta in capacitatea ulterioara a administratorului de a actualiza si intretine aplicatia si tabelele. Preconditie: utilizatorul nu este autentificat. Postconditie: utilizatorul s-a autentificat. Logout administrator: presupune parasirea modului activ de administrare al aplicatiei. Scopul actiunii de logout este de a parasi aplicatia in conditii de maxima securitate. Preconditia: administratorul doreste sa renute la statutul de administrator autentificat. Postconditia: utilizatorul nu este logat.

b) Cazul de utilizare administrare tabele A se vedea Figura 4.3: Diagrama cazului de utilizare Adminsitrare tabele din Anexa 1. c) Cazul de utilizare vizitare aplicatie Dupa cum se poate vedea din Figura 4.4: Diagrama cazului de utilizare Vizitare site din Anexa 1, actorul principal este vizitatorul, bebeficiarul aplicatiei. El foloseste aplicatia cu scopul de a se informa cu privire la stirile ASE, orarul virtual, lista restantierilor de plata, programarea examenelor, programarea restantelor. Cazurile de utilizare aferente acestei diagrame vor fi prezentate in cele ce urmeaza. Afisare orar: presupune interogarea bazei de date (tabela orar si tabela grupe) cu ajutorul unei cereri simple sau complexe. Pentru o mai buna intelegere rezultatul va fi prezentat sub forma de tabel. Preconditie:

23

Vizitatorul doreste sa afle informatii despre orar. Postconditie: Vizitatorul a aflat toate informatiile de care a avut nevoie. Vizualizare examene: presupune interogarea bazei de date (tabela progrex si tabela grupe) cu ajutorul unei cereri simple sau complexe. Pentru o mai buna intelegere rezultatul va fi prezentat sub forma de tabel. Preconditie: Vizitatorul doreste sa afle informatii despre examene. Postconditie: Vizitatorul a aflat toate informatiile de care a avut nevoie. Vizualizare restante: presupune interogarea bazei de date (tabela progrerx si tabela grupe) cu ajutorul unei cereri simple sau complexe. Pentru o mai buna intelegere rezultatul va fi prezentat sub forma de tabel. Preconditie: Vizitatorul doreste sa afle informatii despre restante. Postconditie: Vizitatorul a aflat toate informatiile de care a avut nevoie. Vizualizare restantieri plata: presupune interogarea bazei de date (tabela restantierip si tabela studenti) cu ajutorul unei cereri simple sau complexe. Pentru o mai buna intelegere rezultatul va fi prezentat sub forma de tabel. Preconditie: Vizitatorul doreste sa afle informatii despre orar. Postconditie: Vizitatorul a aflat toate informatiile de care a avut nevoie. Vizualizare stiri: presupune interogarea baszi de date (tabela stiri si tabela grupe) cu ajutorul unei cereri simple sau complexe. Pentru o mai buna intelegere rezultatul va fi prezentat sub forma de tabel. Preconditie: Vizitatorul doreste sa afle informatii despre orar. Postconditie: Vizitatorul a aflat toate informatiile de care a avut nevoie. Autentificare: ofera vizitatorului posibilitatea de a accesa unele pagini personale si/sau personalizate: modificarea meniului mersonal, modificarea parolei, afisarea informatiilor personale, vizualizarea meniului personalizat. Toate acestea se realizeaza cu ajutorul unor interogari in baza de date. Preconditie: clientul nu este autentificat. Postconditie: clientul a fost autentificat si are acces la facilitatile prezentate mai sus.

d) Diagrama de activitate asociata cazului de utilizare orar Pentru o mai buna intelegere a cazului de utilizare orar a fost realizata urmatoarea diagrama de activitate din Figura 4.5: Diagrama de activitate orar din Anexa 1. e) Diagrama de activitate asociata cazului de utilizare autentificare administrator Pentru o mai buna intelegere a cazului de utilizare autentificare administrator a fost realizata urmatoarea diagrama de activitate din Figura 4.6: Diagrama de activitate autentificare administrator din Anexa 1. 4.2.2 Nivelul logic a) Diagrama principala de clase

24

Pe baza cunostintelor dobandite pana acum putem identifica urmatoarele clase ilustrate in Figura 4.7: Diagrama de clase din Anexa 1: clasa Studenti: contine date referitoare la studentii inscrisi in ASE. clasa Utilizatori: contine informatii referitoare la autentificarea utilizatorilor clasa Meniul meu: contine date necesare generarii meniului personalizat clasa Restantieri plata: contine informatii pentru identificarea restantierilor de plata si comentarii asupra situatiei acestora clasa Activitati: contine datele activitatilor diferitelor discipline, necesare generarii orarului clasa Grupe: contine informatii referitoate la grupele din cadrul ASE-ului clasa Examen: contine datele necesare generarii tabelului cu examene clasa Restante: contine datele necesare generarii tabelului cu restante clasa Stiri: contine informatii foloste la afisarea stirilor din cadrul ASE-ului. clasa Administratori: contine date folositoare la autentificarea administratorilor precum si a nivelelor acestora de acces la baza de date.

Diagrame de interactiune b) Diagrama de secventa autentificare Atunci cand administratorul aplicatiei doreste sa faca modificari la nivelul bazei de date sau la nivelul aplicatiei el va trebuie sa se autentifice intr-o zona speciala a aplicatiei numita Autentificare. Acesta va introduce numele sau de utilizator si parola proprie care vor fi verificate. In situatia in care datele sunt corecte utilizatorul va fi autentificat. Diagrama de secventa autentificare este ilustrata in Figura 4.8: Diagrama de secventa autentificare din Anexa 1. Pe baza diagramei de mai sus se poate intocmi si diagrama de colaborare ilustrata in Figura 4.9: Diagrama de colaborare pentru autentificare din Anexa 1. c) Diagrama de stare pentru clasa administrator Diagrama de stare pentru clasa administrator: Un utilizator solicita crearea unui cont utilizator. Cererea ramane in asteptare pe parcursul verificarilor. Daca cererea este neconfirmata atunci cererea de creare a unui nou utilizator este respinsa. In situatia in care este confirmata se trece la crearea acelui utilizator. Diagrama care scoate in evidenta tranzitia starilor clasei adminsitrator este prezentata in Figura 4.10: Diagrama de stare pentru clasa administrator din Anexa 1. 4.2.3 Arhitectura sistemului a) Diagrama de desfasurare

25

Serverul de baza de date stocheaza toate datele necesare functionarii aplicatiei. Serverul web Apache este masina pe care se gazduieste aplicatia si care proceseaza cererile utilizatorilor, se ocupa de generarea paginilor, compilarea codului PHP si returneaza rezultatul paginii in formatul destinat cliantului (HTML, CSS, Javascript). Computerul local este utilizatorul care se conecteaza la aplicatie.

Figura 4.11: Diagrama de desfasurare din Anexa 1. 4.3 Implementarea 4.3.1 Interfata Datorita unei diversitati mari a utilizatorilor care acceseaza acest site, am urmarit realizarea unei interfete cat mai prietenoase, intuitive si usor de folosit. O structurare a paginilor si a informatiei cat mai clara. Informatia este distribuita bine proportionat in cadrul fiecarei pagini, cu contraste cromatice si de structura pentru a fi cat mai usor de identificat. Meniurile de navigare verticale si orizontale sunt usor de urmarit, continutul acestora fiind clar si bine structurat. Astfel, s-a realizat o interfata care permite atat utilizatorilor experimentati cat si a celor incepatori sa acceseze cat mai rapid si eficient informatia pe care o doresc. Un element de personalizare si in acelasi timp de usurare a navigarii utilizatorilor a fost conceput. Si anume meniul personal Meniul meu din partea dreapta a paginii. Acesta, odata ce un utilizator se va autentifica, este prezent in toate paginile si contine link-urile cele mai folositoare ale utilizatorui. Spre exepmlu, contine un link orarul meu care ii va permite utilizatorului sa acceseze dintr-un singur click orarul grupei sale. La fel si stirile mele sa acceseze direct stirile grupei sale. Meniul poate fi si personalizat, utilizatorii putand sa adauge la alegere un numar limitat de link-uri din cadrul site-ului pentru a le putea accesa direct, fara a accesa mai multe pagini intermediare prin metoda

26

standard precum afisarea sesiunii de restante sau a listei colegilor de grupa, dar si orarul altor grupe in afara de cea a lor sau a stirilor din cadrul unei anumite facultati, grupe etc. In cadrul seciunii de administrare, datorita existentei mai multor tipuri de utilizatori, pentru a ascunde accesul in zone restrictionate lor sau irelevante functiei pe care o indeplinesc, s-a generat un meniu lateral de navigare contextual. Daca am ascuns accesul la aceste pagini ale sectiunii de catre anumiti utilizatori nu inseamna ca acestia le pot accesa daca stiu URL-ul corect. Exista functii de restrictionare a accesului pe mai multe nivele, care impiedica accesul neautorizat. Aceasta functie de generare a meniului de navigare contextual este intentionata sa usureze identificarea si accesarea functiilor de manipulare a informatiilot necesare respectivului tip de utilizator. Mai multe despre tipurile de utilizatori in sectiunea alocata acestora. Pentru a ajuta si corecta anumite erori contextuale s-au folosit functii JavaScript pentru a atentiona utilizatorii asupra anumitor erori sau pentru confirmarea anumitor opriuni cu grad mai mare de importanta. Pentru aspectul modern si pentru o interfata dinamica s-au folosit tehnologiile CSS (Cascade Style Sheet) si Javascript (pentru generarea meniurilor si a unor elemente vizuale). Interfata este compatibila cu toate tipurile importante de browsere: Internet Explorer, FireFox, Netscape, Opera. Rezolutia optima este de minim 1024x768 pixeli. In Anexa 2 sunt prezetate imagini ale aplicatiei in ambele sectiuni. 4.3.2 Structura paginilor Fiind un site complex, am decis o codificare a paginilor din cadrul site-ului. Pentru fiecare tip de pagina exista o variabila in URL cu denumirea de pid (Page ID). Aceasta va fi prezenta oriunde pe parcursul navigarii cu exceptia primei pagini, cand este nula. Ambele sectiuni cea publica si cea de administrare functioneaza dupa acelasi principiu. In functie de variabila pid modulul de selectare a includerii continutului paginilor selecteaza secventele de cod corecte ce vor fi incluse. De asemenea prin intermediul acestei variabile sunt incluse si anumite functii de restrictionare a accesului la anumite pagini sau la accesarea diverselor functii necesare interogarii bazei de date. Pentru sectiunea publica, variabila pid va fi un numar compus din 5 cifre. Codificarea paginilor pentru seciunea publica se va face astfel: paginile ce sunt imdiat accesibile din prima pagina (link-urile din meniul principal si meniurile secundare) vor avea codul de forma 0XXYY, unde XX reprezinta cifrele primului nivel, iar YY cifrele celui de-al doilea nivel. De exemplu: pagina Orar va avea codul 00200, iar pagina Programare examene/Restante va avea codul 00602. De asemenea pentru meniul stanga pagina Contact va avea codul 02400 (cifra zecilor incepe de la doi pentru meniul din stanga). In acest fel se permite extinderea meniului principal, a celui lateral, dar si adaugarea altor meniuri sau linkuri in pagina principala. pentru accesarea paginilor ulterioare, de exemplu a orarului unei grupe, se va folosi pagina 1XXZZ. 1 inseamna ca nu descende direct din pagina principala, XX reprezinta meniul din care descende, iar ZZ este numarul de

27

ordine al paginii. Asltel, pagina de afisare a orarului anului este 10201, al orarului de serie 10211, al orarului de grupa 10221. Pagina 10200 fiind reservata selectarii tipului de orar ce se doreste afisat (la nivel de an, serie, grupa, precum si selectarea facultatii) 4.2.3 Tipuri de utilizatori Pentru ca exista doua sectiuni distincte, vor exista bineinteles minim doua tipuri de utilizator: utilizator obisnuit si utilizatorul administrator. Utilizatorul obisnuit poate fi anonim sau poate avea un user/parola, astfel beneficiind de unele facilitati descrise la inceputul acestei sectiuni. Insa in cazul utilizatorilor de tip administrator, lucrurile sunt ceva mai complicate. Exista mai multe tipuri de administratori. Sarcinile de administrare si privilegiile de acces trebuie impartite si gestionate diferit in functie de caz. Astfel am hotarat crearea campului Acces care contine o insiruire de cifre ce pot lua valoarea 0 sau 1 egala ca numar cu numarul tabelelor. Fiecare utilizator are acces la diferitele tabele din cadrul bazei de date. Se pot impune mai multe restrictii in sensul ca se poate limita ca un administrator sa poate gestiona doar stirile din cadrul unei grupe/serii/an. Sau o restrictionare pe nivelul de facultate/an. Metoda de restrictionare va fi prezentata in detaliu in prezentarea campurilor tabelei admin in sectiunea imediat urmatoare. 4.2.4 Structura bazei de date Pentru baza de date s-a folosit SGBDR-ul MySQL. Baza de date a fost creata cu ajutorul aplicatiei MySQL-Front v3.2. In continuare voi prezenta cele 10 tabele si unde este nevoie voi explica unele dintre campuri care au o semnificatie ce nu poate fi intuita. Tabela orar Tabela orar a fost creata pentru a include toate campurile necesare tinerii evidentei orarului la nivelul ASE. Indiferent de facultate, an, specializare sau grupa. Pentru a se face asocierea intre grupa curenta si Facultatea, anul, seria/specializarea se foloseste tabela grupe prin cheia extarna Grupa. campul Tip poate lua doua valori c si s, de la curs respectiv seminar campul Ora poate lua valori de la 1 la 9. Fiecarei valori corespunzandu-i un interval orar. Ex: pentru 1 se asociaza 7:30-8:50. Aceste intervale orare se pot modifica de catre administratorul site-ului, fiind stocate intr-o variabila array in php. Campul SemParte are formatul XY, unde X este semestrul curent (cu valoarea 1 sau 2), iar Y partea curenta (cu valoarea 1 sau 2).

Tabela stiri

28

Tabela stiri contine campurile necesare stocarii, identificarii si afisarii stirilor. Din nou se observa cheia externa Grupa care asigura legatura cu tabela orar. campul Tip poate lua valori de la 0 la 4 (in momentul curent) si reprezinta felul stirilor pentru 0 stiri la nivelul ASE-ului, pentu 1 la nivel de facultate, pentru 2 la nivel de an, pentru 3 la nivel de specializare si pentru 4 la nivel de grupa. campul IdAutor este cheie externa pentru campul Id din tabela admin pentru a putea prelua numele autorului.

Tabela studenti campul GrupaC reprezinta grupa curenta a studentului, fiind tot odata si cheie externa catre tabela grupe.

Tabela grupe Tabela grupe are rolul foarte important de a identifica distributia grupelor in an, facultate, specializare, serie. Tabela grupe va fi actualizata la inceputul fiecarui an scolar de administratorii de tip 11 - secretarele (vezi sectiunea Tipuri utilizatori). campul Grupa serveste dept cheie externa de asociere pentru tabelele: stiri, orar, progrex, studenti campul AnScolar are valori de la 1 la 999. Cifra 1 reprezinta anul initial al infiintarii ASE Bucuresti. Astfel, anul scolar curent (2005-2006) are valoarea 92

Tabela progrex Aceasta tabela are rolul de a stoca datele privitoare la programarea sesiunii de examene.

29

campul Ora are aceeasi functie ca si in cazul tebelei orar. campul Grupa este cheie externa catre tabela grupe.

Tabela progrexr Are acelasi rol ca si tabela progrex, doar ca are in plus campurile Facultate, An, Specializare pentru o identificare la nivel de specializare/serie. campul Comentariu este optional si poate contine informatii suplimentare referitoare la respectivul examen. campul Ora de aceasta data va contine ora propriu-zisa de preferat in formatul HH:MM.

Tabela restantierip O tabela foarte importanta in deosebi pentru secretare pentru a putea afisa lista cu restantierii de plata. campul IdStud este cheie externa catre tabela studenti. Astfel se pot afisa toate informatiile referitoare la studentul respectiv.

Tabela utilizatori Foloseste la autentificarea utilizatorilor din sectiunea publica a site-ului. De aici, utilizatorii pot edita continutul meniului personalizat (meniul meu), precum si a parolei. campul IdStud serveste aceluiasi scop ca si in tabela restantierip. campul User va contine adresa de e-mail a utilizatorului

30

Tabela meniulmeu Contine campurile necesare personalizarii meniului individual.

Tabela admin Cea mai importanta tabela pentru sectiunea de administrare. Foloseste atat autentificarii si restrictionarii administratorilor, dar si selectarea lor si in consecinta modificarea corespunzatoare a interfetei meniului de administrare. campul Acces este cel mai important al acestei tabele. Este o insiruire de caractere de forma ABCDEFGHIJ care iau valoarea 0 sau 1. Fiecare caracter este asociat unei tabele din baza de date. 1 permite accesul la acea tabela, iar 0 il restrictioneaza. Ordinea tabelelor reprezentate de acest camp este: A - admin, B - grupe, C - meniulmeu, D - orar, E - progrex, F - progrexr, G - restantieri, H - stiri, I studenti, J - utilizatori. In cazul extindetii numarului de tabele, se pot adauga cifre in coada sirului existent, restrictia de valor fiind aceeiasi. Restrictionarea administratorilor se poate restrictiona prin valorile campurilor Facultate, An, Specializare, Serie, Grupa pentru a putea gestiona stiri doar din anumite categorii. Voi ilustra in continuare asocierile dintre tabele. Tipul asocierilor este intuitiv.

31

4.2.5 Arhitectura Conceputa in ideea de flexibilitate dar si robustete, am urmarit ca aplicatia sa aiba o structura modulara, usor de adminstrat si bine structurata. Astfel am creat un modul pentru interfata, unul pentru functiile de acces la Baza de date, altul pentru autentificarea si restrictionarea accesului utilizatorului etc. Toate aceste module sunt organizate prin intermediul paginii de index a site-ului in mod transparent si usor de urmarit. Structura aplicatia este gandita pe ideea de sablon (template) ce are la baza pagina de index. Prin intermediul acestei pagini, in functie de context si variabile se vor genera toate celelalte pagini sau se pot include diferite componente ale modulelor necesare in contextul respectiv. Exista componente care trebuie incluse permanent, precum meniul principal, meniul lateral sau headerul la design, dar si modulul de generare de nume al paginii sau cel de includere al altor pagini secundare de cod php, html, javascript pentru generarea continutului efectiv al paginii la un moment dat. Exista doua pagini de index una pentru sectiunea publica a site-ului si una pentru cea de administrare. Fiecare dintre cele doua pagini de index va contine componente din modulele specifice, dar ideea de baza va ramane aceeiasi. Indexul sectiunii publice de exemplu, nu va include functii din modulul de autentificare si restrictionare pe diferite nivele de acces, spre deosebire de sectiunea de administrare.

32

Principalele module ale paginii de index a sectiunii publice sunt: modului de generare a numelor paginii. Este folosita variabila pid si un case in functie de valorile acesteia care vor afisa numele corespunzator. modulul de header, meniu lateral stanga, meniu principal de sus, meniul personalizat - care includ in principiu fisiere php cu cod care genereaza aceste zone. modulul de autentificare (login) o serie de functii care verifica daca utilizatorul exista in baza de date (tabela utilizator), in caz afirmativ va compara valoarea parolei introduse cu cea din baza de date corespunzatoare utilizatorului. Daca rezultatul este negativ, se va redirectiona accesul catre o pagina care afiseaza eroarea de autentigicare. In cazul autentificarii cu succes, se vor crea 2 variabile de sesiune, una a utilizatorului si alta a parolei acestuia necesare restrictionarii accesului in anumite sectiuni cum ar fi editarea meniului personal, si apoi se va redirectiona accesul catre o pagina de confirmare a autentificarii. modulul de log out va sterge variabilele de sesiune create la autentificare si va redirectiona catre pagina de start. modulul de restrictionare al accesului contine rutine de verificare a existentei variabilelor de sesiune destinate resrictionarii accesului user in cazul nostru, dar poate fi de exemplu si nivelul pentru cazurile in care existe utilizatori cu nivele diferite de acces. modulul de autentificare/inregistrare care dupa autentificare va fi inlocuit cu modulul de afisare al informatiilor utilizatorului autentificat in functie de existenta variabilei de sesiune user. modulul de includere a corpului paginilor foloseste acelasi principiu ca si cel de generare al numelor, doar ca in loc sa afiseze un text, include un fisier php cu codul paginii selectate. Pentru selectie se foloseste tot valoarea variabilei pid si o structura case.

Pagina de index a sectiunii de administrare are in principiu aceiasi structura ca si pagina de index a sectiunii publice insa exista doua module suplimentare care: gestioneaza generarea meniului lateral mai precis a listei de tabele din componenta acestuia in functie de valoarea campului Acces din tabela admin. Valoarea acestuia este descompusa intr-un vector si in functie de valorile 0 sau 1 din fiecare componenta se va afisa sau nu tabela respectiva in meniu. restrictionarea accesului la paginile din cadrul seciunii de administrare se face, de asemenea cu ajutorul valorii campului Acces.

Inca o deosebire ar fi crearea la autentificare a mai multor variabile de sesiune necesare pentru restrictionarea suplimentara a accesului la anumite informatii.

33

Concluzii Avand convingerea ca aceasta aplicatie a acoperit un segment de maxima importanta, oferind posibilitatea consultarii online a unui orar virtual la nivelul ASE-ului, foarte bine structurat pe nivele multiple de la nivelul facultatii/anului pana la nivelul grupei. De asemenea prezenta unui avizier virtual in care sunt publicate stiri atat de secretare dar mai ales si de un grup de studenti consider ca este un element de noutate si de utilitate. O alta facilitate este aceea de creare a utilizatorilor ce pot accesa partea publica a site-ului. Acestia trebuie sa fie studenti ai ASE-ului si prin inregistrare au facilitatea de navigare personalizata si de creere a unui meniu propriu. Intr-o stare funcionala si bine structurata, prin natura arhitecturii sale flexibila, aplicatia poate fi in continuare dezvoltata, putand sa se opereze imbunatatiri multiple precum si adaugatea de noi facilitati. O serie de imbunatatiri ce se pot aduce, dar care din diferite considerente nu au putut fi incluse in aceasta versiune ar putea fi: informatia orarelor care nu mai sunt de actualitate sa ramana intr-o arhiva ce poate fi consultata ulterior. la informatiile referitoare la studenti sa existe posibilitatea memorarii grupelor din care acesta a facut parte in diferitii ani de studiu. o functie de cautare a studentilor

34

posibilitatea de evaluare a cadrelor didactice insotite de un comentariu optional ce explicatie evaluarea. o lista a materiilor asociate cu diferitele facultati din care fac parte, insotita de posibilitatea de cautare a acestei informatii dupa materie sau dupa facultate. informatii referitoare la profesori si asocierea acestora cu disciplinele pe care le preda, precum si a sectiilor din care fac parte respectivele materii. posibilitatea de cautare a informatiilor prezentate la cele 2 puncte anterioare un mini motor de cautare in cadrul stirilor restrictionarea utilizatorilor in raportat la operatiile permise asupra unei tabele (scriere, citire, adaugare, modificare), mai precis combinatii ale acesotora.

Daca se va decide implementarea practica a aceste aplicatii, atunci lista ar putea continua, dar pentru moment, ma voi opri aici, considerand ca scopul acestei lucrari a fost atins. Va multumesc pentru timpul acordat.

Bibliografie

[LUNG03] [MIHA03] [STIG04]

Lungu, Sabau, Velicanu, Muntean, Ionescu, Posdarie, Sandu, SI. Analiza, proiectare si implementare, Ed Economica, 2003 Rodica Mihalca, Adina U, Csaba Fabian, Iulian ntorsureanu, Realizarea produselor program aplicative, Editura ASE, 2003 Stig Sther Bakken, Alexander Aulbach, Egon Schmid, Jim Winstead, Lars Torben Wilson, Rasmus Lerdorf, Andrei Zmievski, Jouni Ahto, PHP Manual, the PHP Documentation Group, 2004 Danny Goodman with Michael Morrison, JavaScript Bible 5th Edition, Wiley Publishing, Inc., 2005

[DANN05]

35

[JANK04] [ROBE04] [OANA03]

Jan Kabili with Donna L. Baker, Adobe Photoshop CS Complete Course, Wiley Publishing, Inc., 2004 Robert Reinhardt and Snow Dowd, Flash MX 2004 Bible, Wiley Publishing, Inc., 2004 Oana Saulescu, Revista Chip Special, Nr.2 2003

http://www.mysql.com http://www.php.com http://www.ase.ro http://www.w3schools.com http://www.mariosalexandrou.com/glossary/web_portal.asp http://ltl13.exp.sis.pitt.edu/Website/Webresume/WebPortalPaper/WebPortals.htm

Anexe
Anexa 1 Imagini din caitolul "analiza si proiectarea"

Figura 4.2: Diagrama cazului de utilizare administrare aplicatie

36

Figura 4.4: Diagrama cazului de utilizare Vizitare site

37

Figura 4.3: Diagrama cazului de utilizare Adminsitrare tabele

38

Figura 4.5: Diagrama de activitate orar

39

Figura 4.6: Diagrama de activitate autentificare administrator

40

Figura 4.7: Diagrama de clase

Figura 4.8: Diagrama de secventa autentificare

41

Figura 4.9: Diagrama de colaborare pentru autentificare

Figura 4.10: Diagrama de stare pentru clasa administrator

42

Anexa 2 Imagini ale aplicatiei Figura 5.1: Intarfata aplicatiei din perspectiva utilizatorului

43

Figura 5.2: Intarfata aplicatiei din perspectiva administratorului

44

S-ar putea să vă placă și