Documente Academic
Documente Profesional
Documente Cultură
Dezvoltarea Unei Platforme e Learning
Dezvoltarea Unei Platforme e Learning
Coordonator:
Prof. dr. ing. Dorin Carstoiu
Absolvent:
- BUCURESTI 2008 1
Cuprins:
CAP. 1: CONCEPTE E-LEARNING..........................................................................................
1.1 EDUCATIA LA DISTANTA DEFINITII...................................................................................................
1.2 E-LEARNING CADRU CONCEPTUAL..................................................................................................
1.3 MODELE DE EDUCATIE LA DISTANTA..................................................................................................
1.4 TIPURI DE EDUCATIE LA DISTANTA.....................................................................................................
1.5 INSTITUTII VIRTUALE........................................................................................................................
1.6 CERTIFICARI ONLINE........................................................................................................................
1.7 ALEGEREA UNEI SOLUTII E-LEARNING.............................................................................................
1.8 AVANTAJE SI DEZAVANTAJE..............................................................................................................
2.2 PHP....................................................................................................................................................
2.3 POSTGRESQL..................................................................................................................................
2.3.1 Alegerea pachetului PostgreSQL...............................................................................................................
CONCLUZII................................................................................................................................
BIBLIOGRAFIE..........................................................................................................................
ANEXA 1 CLASA ADODB..................................................................................................................
ANEXA 2 - CLASA ADLDAP................................................................................................................
ANEXA 3 EXTENSII FPDF................................................................................................................
fluiditatea rolurilor
curriculum orientat spre necesitatile particulare ale studentului
resurse distribuite
facilitati virtuale
lectii asincron.
Paradigma noua este strns legata de efectele depasirii culturii tiparului, ntr-o
societate a comunicarii generalizate. Internetul devine, pe zi ce trece, arbitrul accesului la
educatie si cultura, iar forma cea mai potrivita de a veni n ntmpinarea nevoilor de
cunoastere si formare continua este eLearning.
Argumentele pentru un sistem educational constituit exclusiv pe criteriul instruirii la distanta sunt
urmatoarele:
Cerintele studentilor la distanta pot fi mai bine satisfacute daca institutia este dedicata n
ntregime cerintelor acestora.
Caracteristicile populatiei tinta sunt total diferite n sistemul conventional fata de cel la
distanta.
Pedagogia educatiei la distanta difera de cea a nvatamntului traditional.
Aceste institutii se clasifica n doua tipuri: multi-sectional - asigura pregatire n mai multe
domenii si uni-sectional - asigura pregatire ntr-un singur domeniu.
Materialele suport pentru nvatare pregatite de cadrele didactice pot servi n egala masura
studenti interni si externi de campus.
Materialele de autoinstruire ncurajeaza nvatarea independenta a ambelor categorii de
studenti.
Studentii pot opta pentru unul sau altul dintre sisteme.
Studentii la distanta beneficiaza de traditia si renumele institutiei si se supun standardelor
acesteia.
Cadrele didactice sunt ncurajate pentru practicarea unui nvatamnt mai interactiv.
3. Structuri cooperative
Diverse institutii lucreaza n comun, att n activitatea de educare ct si n ndeplinirea celorlalte
functii ce le revin (productie si distributie de suport pentru nvatare, administrative etc.). Aceste
institutii nu nscriu studenti n mod direct, ci ofera servicii pentru institutiile de nvatamnt
propriu-zise.
4. Structuri hibride
Ca rezultat al mbinarii diverselor structuri din modelele descrise anterior.
n afara descriptorilor modelelor de educatie la distanta de mai sus, care poarta cu sine
gradul de aplicabilitate practica n varii situatii, se mai pot enumera ctiva factori care
influenteaza alegerea unei structuri:
evidente n timp relativ scurt - o universitate nscriind de zeci de ori mai multi studenti dect pot
ncape n salile sale de curs - dar efectele pe termen lung sunt cele vizate, institutiile cu traditie
ocupnd un loc n spatiul educativ de mine, spatiul virtual, catre un viitor al "universitatilor fara
sedii, legate (mai nti) de oameni si de idei". (Dumitru Oprea, rectorul Universitatii "Al.I.Cuza"
din Iasi - martie 2000)
Similar este cazul educatiei prin televiziune, care preia, de asemenea, la un moment dat,
de la carte/manual si presa, multiple sarcini de stocare si transfer a informatiei aflate ntr-o
adevarata explozie. Prin mijloacele sale ample si variate si beneficiind de avantajul familiaritatii,
televiziunea contribuie la informarea culturala, dar poate fi utilizata si pentru educatie,
mentinndu-se ca alternativa pedagogica n centrul de interes al educatorilor din 1945 (cnd
Universitatea de Stat din Iowa obtine prima licenta) si pna spre mijlocul deceniului al optulea.
Cercetarile au demonstrat ca rezultatele obtinute prin televiziunea scolara nu sunt inferioare celor
obtinute prin nvatamntul traditional. Distinctia ce se impune este ntre 1. emisiunile TV cu
caracter educational general, care urmaresc obiective instructive prin influenta educativa difuza si
2. emisiunile proiectate si realizate n functie de programe de tip scolar, ca forma alternativa de
nvatamnt, ce beneficiaza de avantajele specifice educatiei la distanta: un profesor poate conduce
situatii de nvatare pentru un numar mai mare de elevi; sunt prezentate elevilor realitati
inaccesibile observatiei directe; atractivitatea materialelor prin mbinarea imaginii cu sunetul;
continuturile transmise pot avea girul unor personalitati prezente la lectie; anularea
impedimentului distantei; reutilizarea ulterioara a materialelor etc.
n ciuda raspndirii lor pe arie larga si fortei de seductie pe care o au pentru educatori
pentru acest atu, aceste mijloace moderne de comunicare n masa se abat de la prezenta n rndul
mijloacelor educative eficiente prin doua neajunsuri majore:
1. Receptorul fiind o masa mare si eterogena de oameni, a te adresa oricui comporta riscul
de a nu te adresa nimanui; nu exista siguranta receptarii mesajului de catre cei carora le
este adresat n mod special (nu putem fi siguri ca elevii vor recepta o emisiune despre
literatura, pregatita special pentru ei).
2. Comunicarea prin radio si televiziune are, n esenta, un caracter unidirectional, lipsind
conexiunea inversa; ntre emitator si receptor nu exista un dialog permanent si real.
10
Dupa o analiza a educatiei la distanta din 11 regiuni (Canada, SUA, Caraibe, America
Latina, Europa, Africa, India, Korea, Australia, Noua Zeelanda si Insulele Pacificului),
Departamentul pentru Dezvoltare Internationala din Londra a dat publicitatii, n 1999,
urmatoarele observatii generale privind educatia virtuala si institutiile virtuale :
11
Desi sunt foarte putine exemple de institutii virtuale n sensul pur, numarul
activitatilor de acest tip, n toate tipurile si la toate nivelele organizatiilor
instructiv-educative, publice sau private, este considerabil n toate partile lumii.
Nimeni nu pare sa se ndoiasca de faptul ca dezvoltarea tehnologiilor informatice
si de comunicare va avea un impact profund asupra accesului, functionarii
institutionale si proceselor predarii si nvatarii.
Sunt remarcabile cteva exemple (Korea) de transformari care pot avea loc atunci
cnd este dezvoltata o viziune clara asupra unui sistem educational si
implementarea acestuia este sustinuta de factorii de decizie.
12
Este cert ca n privinta cursurilor la distanta perceptia comuna este tributara multor
prejudecati. Revine practicienilor educatiei rolul de a mbunatati imaginea programelor de
formare la distanta printr-un efort sustinut de clarificare teoretica pe de o parte, iar pe de alta parte
de ridicare a standardelor n practica curenta. Cu att mai mult cu ct, prin eliminarea
obstacolelor de ordin spatial, temporal sau a impunerii unui ritm de nvatare, se asigura astfel
posibilitati de studiu unor categorii sociale largi, fara ntreruperea activitatii lor profesionale.
Aceasta este de fapt si caracteristica principala, care face ca sistemul sa fie deosebit de viabil
pentru ciclurile superioare, pentru educatia permanenta, pentru educatia vocationala si l situeaza
potential printre cele mai solicitate tipuri de sisteme de educatie ale viitorului.
Majoritatea rapoartelor de evaluare publicate puncteaza succint meritele reale si valoarea
sistemelor de eLearning. n schimb, acorda o mare atentie satisfactiei cursantilor (ca si
consumatori), impactului tehnologiilor utilizate sau conditiilor de ndeplinit pentru mentinerea
studentilor n programul de formare la distanta. Unele studii compara cursurile la distanta cu
formele traditionale. Dar, daca educatia la distanta nseamna eliminarea barierelor institutionale,
mai este nevoie sa-i demonstram eficienta, cnd este att de evident aspectul negativ al acestor
bariere? Nu, dar numai n privinta accesibilitatii. Ct priveste factorii pedagogici ce constribuie la
succesul unui program de educatie la distanta si modurile n care aceste programe pot fi
ameliorate - acestea sunt subiecte mai putin abordate sau detaliate.
13
n mod sigur, ncrederea deplina ntr-o astfel de inovatie va veni doar dupa stabilirea ct mai
exacta a gradului n care scopurile sunt atinse si asteptarile justificate. nsa deocamdata, eforturile
de clarificare a domeniului eLearning n Romnia sunt demersuri individuale. Toate referintele la
studii aprofundate se fac la surse straine. Baza teoretica si sustinerea legislativa pentru solutiile de
eLearning romnesti merg pe acelasi drum sinuos, prelungit pna n ultimul moment. Instruirea
pe tot parcursul vietii, nevoia de formare continua - sunt probabil realitati ale unor tari mai
dezvoltate si cu decidenti mai responsabili.
O analiz comparativ poate fi urmrit printr-un instrument simplu de tip gril. Se acord un
punctaj de la 0 la 4 pentru fiecare item luat n calcul, unde 0 nseamn absena caracteristicii, iar 4
nseamn c indicatorul satisface deplin ateptrile:
Solutia de eLearning:
Click2learn
Macromedia
Solutia X
scala
perceptie
simetrie
interactivitate
14
mijloace
control
integrare
costuri
timp
flexibilitate
TOTAL punctaj
38
32
26
Totalul pe fiecare coloan exprim, sintetic i aproximativ, diferenele dintre soluiile analizate.
n funcie de importana pe care instituia o acord unor anumii itemi, se poate trece la
analiz pe caracteristici. Dac flexibilitatea unui sistem este de maxim importan, datorit
cererii n continu schimbare de pe piaa de formare sau datorit perimrii rapide a informaiilor
n domeniul vizat, atunci se poate chiar renuna la ceilali itemi. Sau se poate alctui o alt gril,
cu punctaje maxime difereniate: pentru flexibilitate se acord o not ntre 0 i 20.
n primul rnd, toate resursele care constituie obiectul cursului pot fi accesibile ubicuu.
Scopul curriculumului va fi mai cuprinzator dect cel curent, curriculumul oferind
modalitati multiple pentru achizitii de cel mai nalt nivel n toate domeniile culturii.
Audienta este considerabil crescuta, educatia la distanta putnd cuprinde si studenti care
nu pot participa la cursurile din sistemul traditional. Accesul la retele locale, regionale si
nationale leaga studentii din diferite medii sociale, culturale, economice, si cu experiente
variate.
Este facilitata nvatarea ntr-un ritm propriu, ntr-un stil personal, parcurgerea sau
audierea cursurilor putnd fi facuta treptat si repetat. Computerele ncorporeaza variate
pachete de softuri extrem de flexibile, studentul avnd un control maxim al informatiilor
de continut.
Interactiunile sincrone si cele asincrone dintre profesor si studenti se pot
complementariza. Un corolar important aici l-ar constitui posibilitatea constituirii unui
grup pedagogic (team teaching) pentru transmiterea cunostintelor unui anumit domeniu si
antrenarea n activitati a unor educatori care n mod curent nu sunt disponibili din variate
motive.
Tehnologiile sunt interactive, permitnd un feed-back total, n timp real, si evaluari
formative sau sumative, cantitative sau calitative ntr-un mod facil si de catre evaluatorii
cei mai avizati.
15
Limite
Printre dificultatile la implementare, ce pot fi considerate si limite ale noului sistem se numara:
Costurile ridicate ale dezvoltarii sistemului, incluznd cheltuieli cu: tehnologia (hard si
soft); transmiterea informatiilor n retea; ntretinerea echipamentului; producerea
materialelor necesare.
Dificultatea sustinerii la implementarea sistemului a unui efort consistent si sustinut al
studentilor, profesorilor, intermediarilor ce ofera suport tehnic si personalului
administrativ.
Necesitatea experientei cursantilor n domeniul computerelor. ntretinerea propriului
computer va fi probabil una dintre responsabilitatile curente.
Studentii trebuie sa fie extrem de motivati pentru participare. Fenomenul de abandon
scolar este mult mai frecvent n educatia la distanta dect n cadrele traditionale ale
educatiei, interrelatiile instituite fiind relativ impersonale, facnd optiunea mai usoara
pentru cursant.
Relativa "dezumanizare" a cursurilor pna la dezvoltarea unor strategii optime de
interactiune si a focalizarii pe student si nu pe sistem.
nsa experienta sistemelor deja functionale ne asigura de faptul ca participantii la educatia prin
intermediul noilor tehnologii se familiarizeaza n scurt timp cu mediul virtual si intra relativ
curnd n ritmul natural al transmiterii si, respectiv, nsusirii de cunostinte.
16
17
18
SGBDR
Tabel
Linie
Coloan
Teoria relaional
Relaie
Tuplu
Atribut
Tabel 2.1
n general, conceptele utilizate la prezentarea SGBDR i a modelelor relaionale
operaionale difer de cele din cadrul teoriei relaionale. Tabelul de mai sus prezint comparativ
conceptele organizrii datelor n fiiere, concepte SGBDR i ale teoriei relaionale.
Faptul c se pot stabili analogii ntre conceptele organizrii datelor n fiiere i
conceptele relaionale, i-au determinat pe unii productori s prezinte sisteme fr nici o legtur
cu modelul relaional drept SGBDR, n scopul asigurrii succesului comercial al acestor sisteme.
19
aprut modelul de date orientat obiect (Object-Oriented Data Model - OODM) i modelul de date
relaional extins (Extended Relational Data Model - ERDM). Cu toate ca modelul de date ce sta
la baza noilor modele nu este atat de clar ca n cazul modelului relaional, se poate considera ca
aceste din urma dezvoltari reprezinta generatia a treia de SGBD.
In esenta, conceptul de baza de date poate fi definit ca fiind o colectie partajata de date
aflate n interdependenta logica (impreuna cu o descriere a acestor date i a relatiilor dintre ele),
colectie desemnata pentru a rezolva nevoia de informatizare a unei intreprinderi (sau organizatii).
Baza de date trebuie sa ndeplineasca urmatoarele conditii:
- sa asigure o independenta sporita a datelor fata de programe i invers;
- structura bazei de date trebuie astfel conceputa ncat sa asigure informatiile necesare i
suficiente pentru cerintele de informare i decizie;
- sa asigure o redundanta minima i controlata a datelor;
- sa permita accesul rapid la informatiile stocate n baza.
Bazele de date sunt extrem de variate n functie de criteriile luate n considerare. Prezentam
cateva criterii de clasificare:
- dupa orientare: generalizate, specializate;
- dupa modelul de date: ierarhice, retele, relaionale, orientate obiect;
- dupa amploarea geografica: locale, distribuite;
Numim SGBD (Sistem de Gestiune al Bazelor de Date) un sistem software care permite,
pe de o parte, definirea, crearea i n tretinerea bazei de date i pe de alta parte, permite accesul
controlat la informatiile din baza de date n cauza. SGBD este format din programe de software
care interactioneaza cu programele de aplicaie ale utilizatorilor i cu baza de date. Sistemul de
gestiune al bazei de date asigura realizarea urmatoarelor activitati:
- definirea structurii bazei de date;
- ncarcarea datelor n baza de date;
- accesul la date (interogare, actualizare);
- ntretinerea bazei de date (colectarea i reutilizarea spatiilor goale, refacerea bazei de
date n cazul unui incident);
- reorganizarea bazei de date (restructurarea i modificarea strategiei de acces);
- integritatea datelor;
- securitatea datelor.
Asadar, sistemul de gestiune al bazei de date apare ca un sistem complex de programe care
asigura interfata n tre o baza de date i utilizatorii acestuia.
Clasificarea SGBD se poate realiza din mai multe puncte de vedere.
1. Din punctul de vedere al sistemelor de calcul pe care se implementeaza. SGBD pot fi:
sisteme de gestiune pentru calculatoarele mari; sisteme de gestiune pentru
minicalculatoare; sisteme de gestiune pentru microcalculatoare.
20
2.2 PHP
Internet-ul a intrat deja in al treilea stadiu de dezvoltare, iar notiuni si facilitati precum
site-uri web dinamice si interactive au devenit atributele esentiale ale oricarei afaceri online de
succes implicand comert electronic (dar nu numai). Un studiu al Cyberatlas cu privire la comertul
prin Internet releva faptul ca activitatile de vanzari online au cel mai mare potential de dezvoltare
din intreg sectorul economic.
Principalul avantaj al unui site dinamic asupra unuia static este usurinta in administrare
(actualizare). Adaugarea sau modificarea de continut este foarte simpla datorita faptului ca acest
continut este stocat intr-o baza de date sau in fisiere text, astfel incat cei care se ocupa de continut
nu au nevoie sa posede cunostinte de HTML, CSS, JavaScript sau alte tehnologii specifice
domeniului "web design" si utilizate intens la construirea paginilor de prezentare. De asemenea,
daca trebuie sa schimbam logo-ul pe fiecare pagina a site-ului, este de ajuns sa facem modificarea
intr-un singur fisier in loc sa luam fiecare pagina in parte, sa o modificam si sa o uploadam inapoi
pe server.
Pe langa manipularea continutului paginilor web, PHP poate trimite headere HTTP pentru
autentificare, seta cookie-uri, redirectiona utilizatorii. Mai mult, cu ajutorul bibliotecilor externe
de functii poate parsa fisiere XML, crea si manipula imagini, animatii Shockwave, Flash, PDF-uri
sau se poate conecta la un server de mail. Iar acestea sunt doar cateva din functiile pe care le
poate indeplini.
Dezvoltarea exploziva a limbajului PHP din ultimii ani este in cea mai mare parte
datorata usurintei cu care acesta lucreaza cu bazele de date in Internet. Din multitudinea de solutii
de dezvoltare site-uri web, PHP ofera programatorului o multime de functii predefinite pentru
lucrul cu bazele de date in Internet. Aceasta inseamna ca din cadrul PHP putem executa toate
operatiunile aferente comenzilor Sql.
21
O prima pagina atractiva este vitala pentru succesul unui site. Menirea ei este sa ofere
utilizatorului motivele pentru a continua sa vada mai mult si eventual sa fie imediat interesat sa
cumpere un produs.
PHP este un limbaj de programare pe parte de server (in engleza "server-side") care
poate, printre altele, sa interactioneze cu o baza de date pentru a afisa sau a modifica informatiile
din ea. Mai exact, serverul stie sa furnizeze browser-ului clientului doar pagini HTML. Paginile
HTML pot fi deja pe server sau create tot acolo de catre alte aplicatii la cererea server-ului de
web, fiind apoi servite ca HTML browser-ului clientului.
PHP este un limbaj de programare destinat n primul rnd Internetului, aducnd dinamic
unei pagini de web. Este unul din cele mai importante limbaje de programare web open-source i
server-side.
PHP a fost nceput n 1994 ca o extensie a limbajului server-side Perl, i apoi de o serie
de CGI-uri compilate de ctre Rasmus Lerdorf, pentru a genera un curriculum vitae i pentru a
urmri numrul de vizitatori ai unui site. Apoi a evoluat n PHP/FI 2.0, dar proiectul open-source
a nceput s ia amploare dup ce Zeev Suraski i Andi Gutmans, de la Technion au lansat o nou
versiune a interpretorului PHP n vara anului 1998, aceast versiune primind numele de PHP 3.0.
Tot ei au schimbat i numele n acronimul recursiv de acum (Hypertext Preprocessor), pn
atunci PHP fiind cunoscut ca Personal Home Page Tools. Apoi Suraski i Gutmans au rescris baza
limbajului, producnd astfel i Zend Engine n 1999. n mai 2000 a fost lansat PHP 4.0, avnd la
baz Zend Engine 1.0. Pe 13 iulie 2004 a fost lansat PHP 5, cu Zend Engine II, ce a adus i o
orientare obiect mai pronunat i suportnd mai multe caracteristici ale acestui tip de
programare.
Exemple faimoase de utilizare a acestui limbaj sunt PhpBB (forum), PhpNuke(CMS),
chiar i MediaWiki, software-ul din spatele Wikipedia. Folosirea PHP poate fi vzut ca o
alternativ gratuit la utilizarea unor limbaje comerciale cum sunt ASP de la Microsoft,
ColdFusion de la Macromedia, sau chiar JSP de la Sun Microsystems.
PHP-ul este unul din cele mai folosite limbaje de programare server-side, conform unui
studiu efectuat de Netcraft n aprilie 2002, aprnd pe 9 din cele 37 milioane de domenii cercetate
n studiu. De asemenea, exist un grafic al creterii folosirii PHP-ului pe site-ul oficial.
Popularitatea de care se bucur acest limbaj de programare se datoreaz urmtoarelor
caracteristici :
Familiaritatea : sintaxa limbajului este foarte uoar combinnd sintaxele unora din cele
mai populare limbaje Perl sau C;
Simplitatea : sintaxa limbajului este destul de liber. Nu este nevoie de includere de
biblioteci sau de directive de compilare, codul PHP inclus ntr-un document executnduse ntre marcajele speciale;
Eficiena : PHP-ul se folosete de mecanisme de alocare a resurselor, foarte necesare
unui mediu multiuser, aa cum este Web-ul;
Securitatea : PHP-ul pune la dispoziia programatorului un set flexibil i eficient de
msuri de siguran;
Flexibilitatea : fiind aprut din necesitatea dezvoltrii Web-ului, PHP a fost modularizat
pentru a ine pasul cu dezvoltarea diferitelor tehnologii. Nefiind legat de un anumit server
web, PHP-ul a fost integrat pentru numeroasele servere web existente: Apache, IIS, Zeus,
etc.;
Gratuitatea : este probabil cea mai important caracteristic a PHP-ului. Dezvoltarea
PHP-ului sub licena open-source a determinat adaptarea rapid PHP-ului la nevoile Webului, eficientizarea i securizarea codului.
PHP este simplu de utilizat, fiind un limbaj de programare structurat, ca i C-ul, Perl-ul
sau ncepnd de la versiunea 5 chiar Java, sintaxa limbajului fiind o combinaie a celor trei.
22
Datorit modularitii sale poate fi folosit i pentru a dezvolta aplicaii de sine stttoare, de
exemplu n combinaie cu PHP-GTK sau poate fi folosit ca Perl sau Python n linia de comand.
Probabil una din cele mai importante faciliti ale limbajului este conlucrarea cu majoritatea
bazelor de date relaionale, de la PostgreSQL i pn la Oracle, trecnd prin MS Sql Server,
MySQL, sau DB2.
PHP poate rula pe majoritatea sistemelor de operare, de la UNIX, Linux, Windows, sau Mac OS
X i poate interaciona cu majoritatea servereler web. Codul dumneavoastr PHP este interpretat
de serverul WEB i genereaz un cod HTML care va fi vzut de utilizator (clientului
-browserului- fiindu-i transmis numai cod HTML).
Figura 2.1
2.3 PostgreSQL
PostgreSQL este un sistem de administrare al bazelor de date relationale folosit pentru
dezvoltarea aplicatiilor web. In acest subcapitol trebuie sa raspundem la intrebarea: De ce am
folosit PostgreSQL (in loc de MySQL,Oracle, FoxPro etc.) pentru a dezvolta aplicatia ELearning?. Tinand cont de faptul ca exista disponibile multe alte optiuni populare, este indicat sa
precizam de ce am facut aceasta alegere particulara. Pentru acest lucru, vom compara
PostgreSQL cu alte pachete de baze de date folosite pentru dezvoltarea aplicatiilor web: MySQL,
Oracle sau Microsoft SQL Server.
De asemenea, sunt disponibile baze de date desktop folosite pentru implementarea
aplicatiilor web: Access, FoxPro, FileMaker Pro si altele. Din moment ce aceste pachete de baze
de date sunt foarte ieftine si prietenoase pentru aplicatii desktop, ele sunt foarte rar utilizate in
dezvoltarea aplicatiilor web. Pentru a demonstra aceasta afirmatie, trebuie precizate urmatoarele
motive:
- bazele de date desktop permit unul sau un numar foarte mic de utilizatori. Din aceasta
cauza, ele sunt neutilizabile pentru aplicatiile web, unde este necesara conectarea simultana a
unui numar mare de utilizatori.
- bazele de date desktop nu sunt foarte sigure securitatea fiind un criteriu important in
alegerea pachetului de baze de date pentru aplicatiile web.
- arhitectura, scalabilitatea si performantele bazelor de date desktop nu sunt optimizate
pentru a fi folosite in dezvoltarea aplicatiilor web.
23
Tinand cont de aspectele de mai sus, sistemele desktop de baze de date nu sunt tocmai
potrivite pentru implementarea unei aplicatii complexe, asa cum este e-Learning, de aceeasi
parerea fiind mare majoritate a profesionistilor din domeniul IT.
Avantaje generale
Caracteristici
Performante
Suport comercial
Larga utilizare a pachetului
Experienta folosirii PostgreSQL
1. Avantaje generale
-
2. Caracteristici
In tabelul de mai jos sunt prezentate caracteristicile pentru cele mai importante pachete RDBMS
(Relational Database Management System)
Caracteristici
SQL Server
Oracle
PostgreSQL PostgreSQL
Open Source
ACID Compliant
Referential Integrity
Replication
Reguli
24
Vederi
Triggers
Unicode
Secvente
Mostenire
X
X
X
X
Outer Join
Sub-select
Open API
Proceduri stocate
Limbaj procedural
Indecsi
X
X
25
Concluzii
26
Prezentarea in mod standard a paginilor, prin HTML sau mai noul XHTML, si
CSS (Cascading Style-Sheets) pentru aranajrea in pagina a continutului;
Afisare dinamica si interactiune folosind DOM (Document Object Model),
accesat printr-un limbaj de scripting, pentru a modifica in mod dinamic si a
asigura interactiunea cu informatia prezentata;
Schimb bidirectional de date si manipulare prin XML intre client si server, desi
orice format poate fi folosit, inclusiv HTML, XSLT sau text simplu;
Schimbul de date asincron se realizeaza prin obiectul XMLHttpRequest, desi in
unele implementari AJAX se poate folosi un IFrame pentru schimbul de date, sau
chiar tag-uri <script> adaugate dinamic.
JavaScript folosit pentru a lega toate aceste elemente intr-un pachet puternic.
Modelul clasic al aplicatiilor web este urmatorul: actiunile utilizatorilor in interfata din
browser conduc la o cerere HTTP catre serverul web. Serverul efectueaza niste procesari (extrage
date din baze de date, efectueaza calcule, interogheaza alte sisteme) si apoi returneaza o pagina
HTML catre client. Este modelul clasic, sincron, dezvoltat odata cu aparitia Internetului ca retea
la nivel mondial. Este calea cea mai simpla, dar in timp ce serverul proceseaza cererea,
utilizatorul asteapta si nu poate interactiona in alt mod cu pagina web.
AJAX elimina aceasta modalitate de interactiune start-stop-start-stop a Web-ului
introducand un nivel intermediar intre utilizator si server motorul AJAX. Adaugarea unui nou
nivel intr-o aplicatia de obicei o face sa lucreze mai greu, dar in acest caz este adevarata afirmatia
opusa. In loc sa incarce pagina la inceputul sesiunii, browserul incarca un motor AJAX, scris in
JavaScript si plasat de obicei intr-un cadru (frame) invisibil. Acest motor este apoi responsabil
atat cu interfata pe care o afiseaza utilizatorului, cat si cu comunicatia cu serverul pentru folosul
utilizatorului. Motorul AJAX permite interactiunea utilizatorului cu aplicatia in mod asincron,
independent de comunicatia cu serverul. Prin urmare utilizatorul nu mai priveste o fereastra
goala, asteptand ca aceasta sa se incarce direct de pe server.
27
Figura nr. 2.3 diferenta dintre modelul clasic si cel AJAX, se observa nivelul suplimentar al
motorului AJAX in browserul clientului
2.4.2 Istoric
Prima utilizare a termenului AJAX in mod public a fost in februarie 2005. Jesse James
Garrett sustine ca a gandit aceasta denumire realizand necesitatea unui termen simplu, scurt si
usor de pronuntat in momentul cand urma sa prezinte unor clienti o suita de tehnologii propuse
pentru implementare.
Desi termentul AJAX are mai putin de trei ani, istoria tehnologiilor care au dus la
implementarea acestuia incepe acum 10 ani, cand Microsoft avea initiativa in a dezvolta Remote
Scripting. Tehnici pentru incarcarea asincrona a continutului intr-o pagina web, fara necesitatea
reincarcarii totale, au aparut de pe vremea elementului IFRAME (introdus in Internet Explorer 3
in 1996) si a elementului LAYER (introdus in Netscape 4 in 1997 si abandonat la aparitia
browserului Mozilla). Ambele elemente aveau campul src pentru incarcarea unui URL extern, si
prin utilizarea JavaScript se putea manipula pagina mama, obtinandu-se un efect asemanator cu
AJAX. Astfel de tehnici au fost implementate in DHTML, si chiar si produsul Macromedia Flash
putea incarca fisiere XML sau CSV de pe un server fara a necesita un refresh in browser. Remote
Scripting de la Microsoft functiona ca un inlocuitor mai elegant al acestor tehnologii, datele fiind
28
extrase de un applet Java cu care clientul comunica prin JavaScript, tehnica disponibila in IE
versiunea 4. Microsoft a creat pentru Internet Explorer 5 obiectul XMLHttpRequest si a aratat
avantajele lui in Outlook Web Access, care face parte din pachetul Microsoft Exchange Server
2000.
Comunitatea Web, suficient de dezvoltata la inceputul anilor 2000, a preluat initiativa in
dezvoltarea acestui tip de tehnologie. Prin colaborare publica, s-a imbunatatit tehnica de scripting
pentru a permite utilizarea pe alte browsere. In 2002 a fost modificat Remote Scripting pentru a
inlocui applet-ul Java cu XMLHttpRequest, care a devenit modelitatea preponderenta de
comunicare cu serverul. Microsoft a introdus tehnologia Callback in ASP.NET, dar
XMLHttpRequest a rmas cel mai folosit deoarece este bine implementat in toate browserele,
celelalte tehnologii nefiind folosite decat in cazuri de incompatibilitate.
2.4.4 Dezavantaje
Utilizarea butoanelor de Back si Forward, si a link-urilor
Paginile web ce utilizeaza AJAX pot sa impiedice functionarea comportamentului
normal, obisnuit si asteptat al butoanelor de Back dintr-un browser. Utilizatorii se asteapta ca
apasand aceste butoane sa fie dusi la aspectul anterior al paginii, dar acest lucru nu este mereu
29
adevarat cand se utilizeaza AJAX, deoarece browserul nu poate tine mereu socoteala
modificarilor produse in mod dinamic si asincron.
Dezvoltatorii de site-uri au introdus diverse rezolvari pentru aceasta problema, folosind
IFRAME-uri invizibile pentru a retine continutul paginii anterioare. Google Maps, de exemplu,
face cautarile intr-un IFRAME invizibil si apoi aduce rezultatele in partea vizibila a paginii. In
recomandarea XHTML 1.1 a World Wide Web Consortium, organismul care standardizeaza
metodele si limbajele utilizate in Internet, se recomanda folosirea elementului object.
O alta problema a paginilor dinamice este dificultatea crearii unui link sau bookmark
catre o stare particulara a aplicatiei. Solutii au fost gasite prin utilizarea de identificatoare de
fragmente URL (portiunea unui URL de dupa un semn #), deoarece prin JavaScript se poate
modifica adresa paginii prin schimbarea acestui identificator de fragment (se modifica nu doar
informatii si portiuni dintr-o pagina, ci si adresa ei). Aceasta solutie ajuta si la problema butonului
Back, dar nu este una completa.
Griji pentru timpul de raspuns
Modificarea doar a unor portiuni din pagini poate creste totusi timpul aparent de raspuns,
deoarece utilizatorul observa mai greu modificarile facute intr-o portiune mica a unei pagini deja
incarcate. Se recomanda utilizarea unor indicatori de activitate de procesare, de exemplu celebra
clepsidra.
Optimizarea paginilor pentru motoarele de cautare
Website-urile care utilizeaza pagini incarcate prin AJAX trebuie sa fie atente sa ofere
aceeasi informatie si intr-un format clasic, pentru a putea fi indexat de robotii de citire ai
motoarelor de cautare pe Internet. Daca anumite informatii (date, text, imagini) nu apar decat la
apelarea unor functii JavaScript prin AJAX, aceste informatii nu vor fi gasite de un motor de
cautare deoarece acestea citesc doar textul existent in pagina si nu ruleaza si functiile din ea.
30
HTML este un format text proiectat pentru a putea fi citit i editat de oameni utiliznd un
editor de text simplu. Totui scrierea i modificarea paginilor n acest fel solicit cunotine solide
de HTML i este consumatoare de timp. Editoarele grafice (de tip WYSIWYG) cum ar fi
Macromedia Dreamweaver, Adobe GoLive sau Microsoft FrontPage permit ca paginile web sa fie
tratate asemntor cu documetele Word.
HTML se poate genera direct utiliznd tehnologii de codare din partea serverului cum ar
fi PHP, JSP sau ASP. Multe aplicaii ca sistemele de gestionare a coninutului, wiki-uri i
forumuri web genereaz pagini HTML.
Stilurile interne
Mai intai vom aborda metoda stilurilor interne. Aceasa metoda inseamna ca veti plasa
codul CSS in interiorul fiecarei pagini html pe care doriti sa folositi stilurile respective, intre
tagurile <head> </head> .Acest lucru se face ca in exemplul ce urmeaza:
<head>
<title>titlu pagina</title>
<style type="text/css">Aici se definesc stilurile CSS</style>
</head>
Folosind aceasta metoda (stilurile interne), fiecare fisier (X)HTML va contine codul CSS
folosit la stilizare. Asta inseamna ca atunci cand doriti sa faceti o schimbare de stil (marimea
fontului, culoare, etc) va trebui sa operati modificarea in toate paginile ce contin acel stil. Metoda
descrisa pana acum este buna atunci cand avem de stilizat doua, trei pagini, insa cand avem de a
face cu siteuri de zeci sau sute de pagini este destul de neplacut sa modificam toate paginile.
Stilurile externe
In continuare vom explora metoda stilurilor externe. Un fisier CSS extern poate fi realizat
cu orice editor simplu de text (Notepad, Wordpad, etc) sau cu editoare avansate gen
Dreamweaver. Fisierul CSS nu contine sub nici o forma cod (X)HTML, ci doar cod CSS. Fisierul
trebie salvat cu extensia .css. Inserarea fisierului extern in paginile (X)HTML se face foarte usor,
prin plasarea unui link (legatura) in sectiunea <head> </head> a fiecarei pagini pe care dorim sa
folosim stilul respectiv. Iata un exemplu de inserare a unui fisier extern .css intr-o pagina
(X)HTML:
31
32
in cresterea initiala a Internetului din lumea intreaga. Cand a fost pentru prima data eliberat,
Apache a fost singura sursa alternativa viabila la Netscape Communications Corporation web
server ( in mod current cunoscut ca si Sun Java System Web Server ). De atunci a evoluat la
rivalul Unix- servere web in termeni de functionalitate si performanta. Din Aprilie 1996 Apache
a fost cel mai popular server HTTP din intreaga lume a internetului, servind ca platforma de
referinta impotriva careia alte server web sunt intentionate si apreciate; ca si in Ianuarie 2007,
Apache a servit la 60% din toate website-urile. Apache continua sa fie cel mai popular server web
care este utilizat.
Apache este dezvoltat si mentinut de o comunitate deschisa de dezvoltatori de aplicatii sub
auspiciile Fundatiei Apache Software. Eliberata sub licenta Apache, serverul Apache HTTP este
un program gratis.
Istoria
Prima versiune a web serverului Apache a fost creeata de Robert McCool, care a fost
serios implicat in Centru National pentru Supercomputing Applications web server, cunoscut
simplu ca si NCSA HTTPd . Cand Rob a parasit NCSA la mijlocul anului 1994 a lasat o varietate
de modele pentru a imbunatati circulatia prin email. Rob McCool nu a fost singur in eforturile
sale. Multi alti dezvoltatori de aplicatii au ajutat la formarea originalului "Apache Group": Brian
Behlendorf, Roy T. Fielding, Rob Hartill, David Robinson, Cliff Skolnick, Randy Terbush,
Robert S. Thau, Andrew Wilson, Eric Hagberg, Frank Peters, si Nicolas Pioch. FAQ afirma pe
site-ul oficial al proiectului: Numele Apache a fost ales din respect pentru Tribul nativ indian
American al apasilor , bine cunoscut pentru indemanarile superioare in strategia lor si
inepuizabila anduranta. Cea mai raspandita interpretare este aceea ca numele provine din faptul ca
atunci cand a aparut la inceputul anului 1995, web serverul a constat intr-un set de patches la
codul de baza al NCSA HTTPd 1.3 si de aceea a fost "a patchy" server .Aceasta a fost explicatia
initiala a website-ului acestui proiect.
Versiunea 2 a serverului Apache a fost o rescriere substantiala din codul Apache 1.x, cu o
mare concentrare asupra ulterioarei modulatii si dezvoltarea unei retele portabile ,Apache
Portable Runtime. Partea centrala din Apache 2 x are mai multe intensificari majore fata de
Apache 1.x . Acestea include filetarea UNIX, suport mai bun pentru platforme non-UNIX , (cum
ar fi Microsoft Windows), un nou Apache API, si suport IPv6 . Prima eliberare a Apache 2 a fost
in Martie 2000 cu prima disponibilitate generala in Mai 2002.
2.7 UML
Tendina actual din industria software impune dezvoltarea de sisteme extrem de
complexe i n cel mai scurt timp posibil. Se impune cu necesitate adaptarea procesului de
dezvoltare a sistemelor informatice la cerinele din ce n ce mai complexe fa de produsele
informatice.
n plus, odat cu impunerea pe pia a limbajelor orientate obiect i a mediilor vizuale de
programare, au aprut n ultimii ani mai multe propuneri de procese de dezvoltare orientat obiect
a sistemelor informatice, ceea ce a introdus nc o pictur de haos n ecuaie.
UML-ul reprezint o sintez a celor mai multe notaii i concepte utilizate n proiectarea
orientat obiect. A nceput ca o coroborare a activitii lui Grady Booch, James Rumbaugh, i Ivar
Jacobson, creatorii a trei dintre cele mai cunoscute metodologii orientate obiect.
UML propune notaii standard i semantic corespunztoare pentru modelarea sistemelor
orientate obiect. nainte de aceasta un proiect orientat obiect putea fi descris utiliznd una dintre
zecile de metodologii disponibile, ceea ce fcea ca n cazul unei revizuiri cei responsabili de
33
aceasta s piard mult timp cu analiza notaiilor i semanticii metodologiei nainte de a ptrunde
logica proiectrii. n acest moment, utiliznd UML, diferii proiectani ce lucreaz la diverse
sisteme pot nelege cu uurin munca celuilalt.
UML-ul prescrie un set standard de diagrame i notaii pentru analiza i proiectarea
orientat obiect a diverselor tipuri de sisteme (sisteme software, sisteme hardware sau
organizaii), descriind totodat i semantica acestor diagrame i simboluri.
Limbajul unificat de modelare ofer pentru aceasta zece tipuri de diagrame ce pot fi
grupate astfel:
Diagram pentru modelarea proceselor de afaceri, respectiv:
Diagrama cazurilor de utilizare n cazul metodologiilor orientate pe cazuri de
utilizare, aceast diagram dirijeaz ntreg procesul de dezvoltare al sistemului
Diagrame pentru modelarea structurii statice, respectiv:
Diagrama claselor pentru modelarea structurii statice a claselor sistemului
Diagrama obiectelor pentru modelarea structurii statice a obiectelor sistemului
Diagrame pentru modelarea dinamicii:
Diagrame de interaciune, respectiv:
Diagrama de secven pentru modelarea circuitului mesajelor ntre obiecte
Diagrama de colaborare pentru modelarea interaciunilor ntre obiecte
Diagrame de comportament, respectiv:
Diagrama de stare pentru modelarea comportamentului obiectelor din sistem
Diagrama de activitate - pentru modelarea comportamentului cazurilor de utilizare,
obiectelor sau operaiilor
Diagrame de implementare, respectiv:
Diagrama componentelor pentru modelarea componentelor
Diagrama de desfurare pentru modelarea distribuirii sistemului
Diagrama pachetelor mijloc de grupare a elementelor diagramelor n pachete
n figura de mai jos se prezint grafic aceast clasificare a diagramelor UML.
Mecanismele de extensibilitate incluse permit ca n UML s poat fi abordate aspecte
care nu sunt specificate n standard. Aceste mecanisme permit extinderea notaiilor i semanticii
UML.
Stereotipul este cel mai utilizat dintre mecanismele de extensibilitate ale UML-ului. Un
stereotip reprezint un mecanism de calificare din punct de vedere al utilizrii. El se poate aplica
oricrui element de modelare, inclusiv claselor, pachetelor, relaiilor de motenire, etc. De
exemplu, o clas cu stereotipul <<actor>> este o clas utilizat ca agent extern n modelarea
proceselor de afaceri. O clas ablon (template) este modelat ca o clas cu stereotipul
<<parameterized>>, cu semnificaia c aceasta cuprinde parametrii.
34
35
Figura nr 3.1
Tabela categorii
CAMP
id_categorie
id_parent
Nume
Activ
TIP
Integer
Integer
varchar(255)
integer
NULL
Nu
Nu
Nu
Nu
SETARE DE BAZA
0
1
Tabela intrebari
CAMP
TIP
NULL
id_intrebare
Continut
varianta_raspuns_1
varianta_raspuns_2
varianta_raspuns_3
varianta_raspuns_4
varianta_raspuns_5
id_raspuns_1
id_raspuns_2
id_raspuns_3
id_raspuns_4
id_raspuns_5
Activ
Utilizator
data_sistem
integer
text
text
text
text
text
text
char(1)
char(1)
char(1)
char(1)
char(1)
integer
varchar(100)
timestamp
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
SETARE DE BAZA
A
B
C
D
E
1
now()
36
raspuns_corect
char(1)
Nu
Scop: In tabela intrebari vor fi stocate intrebarile introduse de catre utilizatori (continut,
variante de raspuns, raspuns corect etc...)
Observatii:
1. id_intrebare este cheie primara;
2. continut reprezinta continutul intrebarii;
3. varianta_raspuns_1 .. varianta_raspuns_5 reprezinta variantele de raspuns;
4. activ in momentul in care o intrebare devine inactiva, ea nu va fi stearsa din baza
de date, in schimb campul activ va lua valoarea 0.
5. utilizator reprezinta username-ul utilizatorului care a introdus intrebarea.
6. raspuns_corect - reprezinta varianta de raspuns corespunzatoare
Constrangeri:
CONSTRAINT intrebari_pkey PRIMARY KEY (id_intrebare)
CONSTRAINT check_activ CHECK (activ = 0 OR activ = 1),
CONSTRAINT check_intrebari CHECK (raspuns_corect = 'A'::bpchar OR
raspuns_corect = 'B'::bpchar OR raspuns_corect = 'C'::bpchar OR
raspuns_corect = 'D'::bpchar OR raspuns_corect = 'E'::bpchar)
Indecsi:
Tabela istoric_intrebari
CAMP
TIP
NULL
id_istoric
integer
Nu
id_intrebare
Continut
varianta_raspuns_1
varianta_raspuns_2
varianta_raspuns_3
varianta_raspuns_4
varianta_raspuns_5
id_raspuns_1
id_raspuns_2
id_raspuns_3
id_raspuns_4
id_raspuns_5
Activ
Utilizator
Data_sistem
raspuns_corect
integer
text
text
text
text
text
text
char(1)
char(1)
char(1)
char(1)
char(1)
integer
varchar(100)
timestamp
char(1)
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
SETARE DE BAZA
A
B
C
D
E
1
now()
37
Indecsi:
Tabela relatie_categorii_supervizori
CAMP
Utilizator
id_categorie
TIP
varchar(100)
integer
NULL
Nu
Nu
SETARE DE BAZA
0
Tabela relatie_intrebari_categorii
CAMP
id_intrebare
id_categorie
TIP
integer
integer
NULL
Nu
Nu
SETARE DE BAZA
0
0
38
Tabela relatie_teste_angajat_intrebari
CAMP
id_test_angajat
id_intrebare
raspuns_corect
raspuns_angajat
TIP
integer
integer
char(1)
char(1)
NULL
Nu
Nu
SETARE DE BAZA
0
0
CONSTRAINT
fk_intrebari_angajat
FOREIGN
KEY
(id_intrebare)
REFERENCES intrebari (id_intrebare) MATCH SIMPLE ON UPDATE NO
ACTION ON DELETE NO ACTION;
39
Indecsi:
Tabela relatie_teste_categorii
CAMP
id_test
id_categorie
Pondere
TIP
integer
integer
float
NULL
Nu
Nu
Nu
SETARE DE BAZA
0
0
0.00
Scop: In tabela relatie_teste_categorii se vor stoca id-urile categoriilor din care este compus
un test definit de catre supervizor.
Observatii: In momentul care se defineste un test de catre supervizor, pentru fiecare categorie se
va preciza pondere (in procente), suma ponderilor fiind egala cu 100.
Constrangeri:
CONSTRAINT fk_id_categorie FOREIGN KEY (id_categorie) REFERENCES
categorii (id_categorie) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE
CASCADE;
CONSTRAINT
fk_id_test
FOREIGN
KEY
(id_test)
REFERENCES
teste_definite_supervizor (id_test) MATCH SIMPLE ON UPDATE NO ACTION
ON DELETE CASCADE;
Indecsi:
Tabela teste_angajat
CAMP
id_test_angajat
id_test
Data_inceput_test
Data_sfarsit_test
Utilizator
raspunsuri_corecte
Procentaj
current_session
Anulat
TIP
integer
integer
timestamp
timestamp
varchar(100)
integer
float
varchar(100)
integer
NULL
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
SETARE DE BAZA
0
now()
now()
0
0.00
0
40
Scop: In tabela teste_angajat se vor salva detaliile unui test efectuat de catre angajatul Credit
Europe Bank.
Observatii:
1. id_test reprezinta id-ul testului definit de catre Supervizor
2. data_inceput_test, data_sfarsit_test reprezinta data inceperii si terminarii testului.
3. utilizator username-ul angajatului care efectueaza testul.
4. raspunsuri_corecte numarul de raspunsuri corecte.
5. anulat default este setat pe 0. In momentul care un angajat doreste anularea testului,
atunci campul anulat va lua valoarea 1.
Constrangeri:
CONSTRAINT teste_angajat_pkey PRIMARY KEY (id_test_angajat);
CONSTRAINT teste_angajat_id_test_fkey FOREIGN KEY (id_test) REFERENCES
teste_definite_supervizor (id_test) MATCH SIMPLE ON UPDATE NO ACTION
ON DELETE NO ACTION;
Indecsi:
Tabela teste_definite_supervizor
CAMP
id_test
Denumire
data_start_interval
data_stop_interval
nr_intrebari
Activ
data_sistem
Utilizator
secunde_intrebare
activare_hr
TIP
integer
varchar(100)
date
date
integer
integer
timestamp
varchar(100)
integer
integer
NULL
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
SETARE DE BAZA
(now::text)::date
(now::text)::date
0
0
now()
60
0
41
Tabela utilizatori
CAMP
id_utilizator
utilizator
parola
denumire
email
tip_utilizator
id_categorie
activ
data_sistem
TIP
integer
varchar(100)
varchar(100)
varchar(100)
varchar(100)
integer
integer
integer
timestamp
NULL
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
SETARE DE BAZA
0
0
1
now()
Scop: In tabela utilizatori se vor stoca datele referitoare la conturile utilizatorilor care vor
folosi aplicatia e-Learning.
Observatii:
1. tip_utilizator reprezinta nivelul de acces al utilizatorului
2. id_categorie reprezinta id-ul departamentului in cazul in care nivelul de acces
este Sef Departament, in caz contrar campul va lua valoarea 0.
3. activ 1- utilizator activ
2- utilizator inactiv.
Constrangeri:
CONSTRAINT utilizatori_pkey PRIMARY KEY (id_utilizator);
CONSTRAINT utilizatori_tip_utilizator_key UNIQUE (tip_utilizator, utilizator);
Indecsi:
Tabela cursuri
CAMP
id_curs
Denumire
nr_slideuri
TIP
integer
varchar(300)
integer
NULL
Nu
Nu
Nu
SETARE DE BAZA
0
42
descriere
utilizator
activ
data_sistem
text
varchar(100)
integer
timestamp
Da
Nu
Nu
Nu
0
1
now()
Constrangeri:
Tabela cursuri_continut_detaliat
CAMP
id_pagina
id_curs
Continut
nr_pagina
TIP
integer
integer
text
integer
NULL
Nu
Nu
Nu
Nu
SETARE DE BAZA
0
1
2.
43
Tabela cursuri_materiale_auxiliare
CAMP
id_fisier
id_curs
Fisier
data_sistem
TIP
integer
integer
varchar(500)
timestamp
NULL
Nu
Nu
Nu
Nu
SETARE DE BAZA
0
now()
Tabela intrebari_quiz
CAMP
TIP
NULL
SETARE DE BAZA
id_intrebare_quiz
Continut
varianta_raspuns_1
varianta_raspuns_2
varianta_raspuns_3
varianta_raspuns_4
varianta_raspuns_5
id_curs
Activ
Integer
Text
Text
Text
Text
Text
Text
Integer
Integer
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
0
1
44
Utilizator
data_sistem
raspuns_corect
varchar(100)
Timestamp
char(1)
Nu
Nu
Nu
now()
Scop: In tabela intrebari_quiz vor fi stocate intrebarile introduse de catre utilizatorii Sef
Departament (continut, variante de raspuns, raspuns corect etc...) intrebarile vor alcatui testul
de verificare pentru fiecare curs.
Observatii:
1. id_intrebare_quiz este cheie primara;
2. continut reprezinta continutul intrebarii;
3. varianta_raspuns_1 .. varianta_raspuns_5 reprezinta variantele de raspuns;
4. activ in momentul in care o intrebare devine inactiva, ea nu va fi stearsa din baza
de date, in schimb campul activ va lua valoarea 0.
5. utilizator reprezinta username-ul utilizatorului care a introdus intrebarea.
6. raspuns_corect - reprezinta varianta de raspuns corespunzatoare
Constrangeri:
Indecsi:
Tabela subiecte
CAMP
id_subiect
id_curs
denumire
data_sistem
nivel
utilizator
TIP
integer
integer
varchar(500)
timestamp
Integer
Varchar(100)
NULL
Nu
Nu
Nu
Nu
Nu
Nu
SETARE DE BAZA
0
now()
1
45
1.
2.
Constrangeri:
CONSTRAINT subiecte_pkey PRIMARY KEY (id_subiect),
CONSTRAINT
subiecte_id_curs_fkey
FOREIGN
KEY
(id_curs)
REFERENCES cursuri (id_curs) MATCH SIMPLE ON UPDATE NO ACTION ON
DELETE CASCADE
Indecsi:
Tabela subiecte_detaliat
CAMP
id_comentariu
id_subiect
Comentariu
data_sistem
Nivel
Utilizator
TIP
integer
integer
text
timestamp
Integer
Varchar(100)
NULL
Nu
Nu
Nu
Nu
Nu
Nu
SETARE DE BAZA
0
now()
1
Scop: In tabela subiecte_detaliat se vor stoca comentariile introduse pentru fiecare subiect in
parte.
Observatii:
1.
46
Angajat
Vanzari directe
47
Administrator
Supervizor
Sef Departament
HR (Departamenul Resurse Umane)
Daca pentru ultimile cinci optiuni (Vanzari Directe ... HR), in momentul logarii
utilizatorul isi va introduce username-ul si parola(default este 123456) asa cum au fost definite
in tabela specifica utilizatorilor aplicatiei, pentru optiunea Angajat este necesara introducerea
username-ului si a parolei de windows.
Tinand cont de cele prezentate mai sus, pentru logarea in aplicatia e-Learning distingem
doua cazuri din punctul de vedere al functionalitatii:
a) logarea folosind username-ul si parola de windows (Active Directory)
Pentru a implementa aceasta functionalitate s-a folosit prin intermediul PHP-ului serviciul
LDAP care a fost configurat in prealabil in fisierul php.ini deoarece extensia php_ldap.dll este
default dezactivata.
LDAP (Lightweight Directory Access Protocol) este un protocol standard, stabilit de
Internet Engineering Task Force (IETF), care ofer utilizatorilor unei reele, posibilitatea de a
cuta i modifica informaiile dintr-un Directory Service. LDAP gestioneaz o baz de date
object-oriented. ntr-o astfel de baz de date, diferenierea se face cu ajutorul claselor de obiecte
si a obiectelor n sine. Baza de date are o structur de tip arbore, iar nivelul de pe cea mai nalt
poziie se numeste root. n cazul LDAP, root-ul este numit Root DN(Root Distinguished Name).
De regul, se adaug un sufix la acest root, pentru a defini numele companiei si un cod de ar.
Ex: DC=int, DC=finansbank, DC=ro
Pentru a putea utiliza acest serviciu, pe langa definirea DN-ului va trebui specificat si numele sau
adresa serverului pe care il vom folosi.
Ex: buc-ho-dc.int.finansbank.ro
Secventa tipica care trebuie folosita pentru a apela serviciul LDAP este urmatoarea:
ldap_connect()
Stabilirea
conexiunii cu
server-ul
ldap_bind()
Autentificare
cu username
si parola
ldap_close()
Inchiderea
conexiunii
48
Logat
Validare
Mesaj avertizare
49
DA
NU
Raspunde intrebare curenta
Nr curent<Nr
intreb test?
DA
NU
Afisare rezultat test
50
51
52
Adaugare/editare
utilizator
Vizualizare
istoric intrebari
Activare/
inactivare test
Administrator
Schimbare
setari cont
Rulare rapoarte
DA
Editeaza utilizator
Cu ajutorul acestui meniu, Administratorul aplicatiei e-Learning poate crea noi utilizatori
sau edita utilizatorii deja existentiNUin baza de date. Pentru crearea unui utilizator nou,
Administratorul va trebui sa completeze urmatoarele informatii:
username (denumirea utilizatorului)
Completare username, nume angajat, nivel acces
nume, prenume angajat
nivel acces (Sef Departament, Supervizor, HR si Vanzari
Directe)
in Nivel
cazulacces=Sef
in care nivelul de NU
acces este Sef Departament, va trebui
Departament
specificat
de asemenea departamentul pe care il coordoneaza. OBS.
NU
Utilizatorul Sef Departament va coordonaNivel
un singur
departament.
acces=Supervizor
in cazul in DA
care nivelul de acces este Supervizor, va trebui specificat
unul sau mai multe departamente pe care acest tip de utilizator le are in
Selecteaza Departament
subordine.
DA
Diagrama de activitate:
Salveaza utilizator
Selecteaza Departamentele
53
ID si continut intrebare
Variante de raspuns precum si raspunsul corect
Categoria de care apartine intrebarea
Utilizatorul care a adaugat intrebare
Data ultimei modificari.
54
Denumire test
Data inceput perioada test
Data sfarsit perioada test
Numar de intrebari
Numar de secunde per intrebare
Utilizatorul care a creat testul
4. rulare rapoarte
Administratorul va avea posibilitatea rularii unor rapoarte pentru fiecare test existent in
aplicatia e-Learning. Vom descrie functionalitatea acestor rapoarte in sectiunea dedicata
utilizatorului Supervizor, singura diferenta intre Administrator si Supervizor constand in
faptul ca utilizatorul Administrator va putea rula rapoartele pentru fiecare test, in schimb
utilizatorul Supervizor fiind restrictionat doar la testele introduse de el.
5. schimbare setari cont
Tinand cont de faptul ca in afara de utilizatorul Angajat, pentru celelalte nivele de
acces utilizatorii vor folosi pentru logarea in aplicatia e-Learning conturi existente in baza de date
(username si parola), este necesara existenta unei optiuni pentru schimbarea parolei si denumirii
utilizatorului.
55
primul nivel este format din departamente ce vor fi predefinite, fiecare departament
avand unul sau mai multi utilizatori (nivel acces - Sef Departament).
56
2. adaugarea/editarea/(in)activarea/stergerea de intrebari
-
In figura de mai jos este prezentata un exemplu de ramura pentru utilizator Sef Departament.
57
denumirea cursului
o scurta descriere a cursului (prefata)
prezentarea detaliata a cursului.Utilizatorul va fi nevoit sa introduca cursul
slide cu slide, ulterior avand posibilitatea editarii slide-urilor
introducerea testului de verificare.Fiecare intrebare va avea, ca si in cazul
testelor reale, 5 variante de raspuns si un singur raspuns corect, cu precizarea
ca se va indica si pagina unde se gaseste raspunsul. Scopul acestui test este
de a veni in sprijinul angajatilor pentru o rapida asimilare a cunostintelor.
58
uploadarea de fisiere (in format .pdf, .doc etc...) care sa vina in completarea
cursului.
59
Definirea de ponderi pentru fiecare nod frunza, suma tuturor ponderilor fiind
100%.
Stabilirea numarului total de intrebari ce va contine testul.
Stabilirea numarului de secunde per intrebare.
Specificarea faptului daca utilizatorii din cadrul departamentului de Resurse Umane
au sau nu acces la rezultatele acestui test.
60
Intervalul de timp ales pentru test va fi doar o sugestie pentru programarea de catre
administrator a testelor, deoarece exista posibilitatea ca in acelasi interval sa fie
mai multe teste cerute pentru activare.
In momentul realizarii structurii unui test (prin structura ne referim la nodurile
frunza alese), utilizatorul Supervizor va avea posibilitatea sa genereze un pdf cu
totalitatea intrebarilor ACTIVE din categoriile ales pentru test.
Diagram de activitate:
61
lista teste - In cadrul acestui raport, utilizatorul are posibilitatea vizualizarii tuturor
testelor efectuate de catre angajati precum si a detaliilor pentru fiecare test: nume
angajat, denumire test, numar total intrebari, procentaj obtinut, data incepere test,
durata. In cazul in care se doreste, lista poate fi filtrata dupa: interval de timp,
username angajat si denumire test. Utilizatorul Supervizor poate exporta rezultatele
filtrate intr-un fisier .csv. De asemenea pentru fiecare test efectuat de catre angajat,
Supervizorul are posibilitatea generarii unui pdf detaliat cu intrebarile
corespunzatoare testului in cauza. Pentru fiecare intrebare se prezinta raspunsul
corect si raspunsul dat de catre angajat.
ID intrebare
Corecte
Durata
62
bogdan.ciocan
Total intrebari
Total gresite
Raspuns A(%)
0
0
0
C
1
1
0.00
D
1
1
0.00
E
1
1
0.00
C
1
0
0.00
0
0
0
B
1
1
0.00
Raspuns B(%)
0.00
0.00
0.00
100.00
Raspuns C(%)
Raspuns D(%)
Raspuns E(%)
Fara
raspuns(%)
0
0
0
0.00
100.0
0
0.00
0.00
0.00
100.00
0.00
0.00
0.00
100.00
100.00
0.00
0.00
0
0
0
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
00:00:12
Tabel nr 4.1
Semnificatie tabel:
-
Rapoartele prezentate mai sus pot fi rulate doar pentru testele ce au fost definite de
catre supervizorul respectiv, neexistand posibilitatea rularii rapoartelor pentru teste
definite de catre alti supervizori.
4.2.6 utilizatorul HR
Utilizatorul HR reprezentat de catre angajati din cadrul departamentului de Resurse
Umane are posibilitatea rularii in aplicatia e-Learning de rapoarte similare celor destinate
utilizatorului Supervizor, cu mentiunea ca utilizatorul HR va rula rapoartele pentru testele care
au bifata optiunea Test prin HR. Utilizatorul HR va avea acces la toate testele care au bifata
aceasta optiune, indiferent de utilizatorul care a definit testul.
63
Figura nr 4.15
Sistemul conceput are urmtoarele componente:
- baza de date cu informaiile despre utilizatori, intrebari, teste si cursuri;
- proceduri ce sunt responsabile cu validarea datelor;
- formulare ce asigura nregistrarea intrebari,teste si cursuri noi, cat si formulare
specifice partii de administrare a aplicatiei(inregistrarea de utilizatori noi,
modificarea setarilor contului);
- interfaa prietenoasa cu utilizatorii, fie ca sunt angajati care efectueaza testele sau
parcurg cursurile existente sau administratorii aplicatiei care seteaza continutul
testelor sau a cursurilor;
- generatoare de rapoarte.
Diagrama de desfasurare
Figura nr 4.16
64
Exista numeroase imbunatatiri care pot fi aduse aplicatiei. Tinand cont de faptul ca
aplicatia e-Learning prezentata mai sus contine doar doua componente folosite la managementul
unui sistem de educatie la distanta:
- componenta e-Testing (administrarea continutului intrebarilor, variantelor de raspuns,
administrarea continutului unui test etc...);
- componenta de management a continutului educational;
se pot dezvolta si alte componente cum ar fi:
-
implementarea unei facilitati pentru uploadarea continutului unui test sau a unui curs
prin intermediul unui fisier XML.
Integrarea in cadrul aplicatiei a unui messenger online disponibil pentru cursanti.
Implementarea de noi rapoarte care sa evidentieze informatii precum: numarul si
timpul utilizarii aplicatiei de catre cursanti, timpul parcurgerii unui curs etc...
CONCLUZII
Cresterea continua a volumului de informatii si utilizarea tehnologiilor moderne necesita
acumularea si intelegerea unui numar tot mai mare de cunostinte si de informatii, de catre tot mai
65
multi oameni. Tehnicile moderne de invatare, pentru a fi eficiente, trebuie sa aiba un anumit grad
de interactivitate cu subiectul uman si sa transmita informatia pe mai multe canale (text, sunet si
imagine) intr-o maniera asociata. Forma nu trebuie sa fie excesiv de variata, dar suficient de
adaptata continutului, pentru a transmite ideile ct mai firesc.
Dezvoltarea exploziva a Internetului si a tehnologiilor Web a creat premisele unor
oportunitati si unor noi provocari pentru relatiile dintre oameni. In aceasta noua economie
digitala, exista pericolul ca o institutie sa constate ca nu poate face fata avalansei se informatii si
ca propria retea Intranet a ajuns la un nivel de saturare, care nu ii mai poate asigura gestionarea
eficienta a datelor. Pentru a ramne in business, o astfel de organizatie nu trebuie dect sa
implementeze un portal care sa ii permita optimizarea sigura si scalabila a accesului la informatie,
precum si o administrare centralizata a tuturor serviciilor prin intermediul unui simplu Browser.
Intr-un studiu IDC (International Data Corporation), se estimeaza ca din ce in ce mai
multe companii mari si de marime medie isi vor construi portaluri de corporatie. Astfel, aplicatiile
e-Learning vor deveni mai viabile si mai utile.
Particularitile specifice tehnologiilor de e-Learning aduc noi dimensiuni n educaie i
pot fi complementare sau alternative fa de metodele tradiionale din domeniul educaiei. Aceste
particulariti ofer posibilitatea organizrii nvmntului online pe subiecte sau teme, n timp
ce nvmntul tradiional este organizat pe grupe/clase de vrst.
Procesul de predare-nvare-examinare capt noi dimensiuni i caracteristici prin
utilizarea tehnologiilor e-Learning. Sistemul de nvmnt din ara noastr este n mod direct i
determinant implicat n fundamentarea i construirea societii informaionale. O societate
informaional se nate ntr-un mediu n care marea majoritate a membrilor ei are acces la
tehnologii IT&C i utilizeaz frecvent tehnologiile informaionale privind rezolvarea
unor probleme economice, sociale, etc.
Construirea unei societi informaionale, ce va reprezenta trecerea la societatea
cunoaterii, nu se poate realiza fr cercetare i proiecte de investiii, att n domeniul IT&C, ct
i n domeniul educaiei. Dezideratul final fiind competena, nici o tehnologie, nici o teorie, nici o
abordare nu va elimina sau neglija relaia profesor-elev/student. Toate vor fi instrumente comode
i eficiente la ndemn, att a profesorului, ct i a studentului.
BIBLIOGRAFIE
-
66
Meloni, Julie C., PHP, MySQL si Apache, Editura Corint, Bucureti, 2005.
www.php.net
www.postgresql.org
67
un sistem sau API, astfel nct detaliile s fie ascunse. Cei mai muli dintre noi folosim
abstractizri, fr s ne dm seama. Chiar si programatorii n C, si fac viaa mai usoar cu
ajutorul abstractizrilor. Fiecare funcie, expresie si afirmaie abstractizeaz anumite detalii
hardware ale procesorului fa de programator, prin intermediul limbajului C. Aceasta e o
abstractizare de nivel inferior.
Programarea de baze de date cu SQL este o abstractizare de nivel superior. Baza de date
(fie MySQL, PostgreSQL sau Oracle) poate funciona n orice mod, poate s aib orice algoritm
si pote folosi orice fisiere doreste. Alegnd un limbaj comun (SQL) pentru comunicare, nu mai
trebuie s ne facem griji pentru anumite detalii specifice. n schimb, ne putem dedica timpul unor
sarcini mai importante, cum ar fi crearea unor chestionare inner joins si select ct mai eficiente!
Aceast abstractizare nu se extinde la modul n care programm baza de date, deoarece
fiecare are propriul API. n PHP, putei iniia un dialog cu o baz de date MySQL numit
fredbloggs folosind,
$db = mysql_connect(localhost, myuser, mypass);
mysql_select_db(fredbloggs);
n timp ce PostgreSQL cere,
$db = pg_connect(host=localhost dbname=fredbloggs user=myuser password=mypass);
Desi cei mai muli dintre acesti parametrii sunt opionali, transferarea de cod ntre baze
de date este destul de dificil, deoarece fiecare handler connect, select si error trebuie rescris
pentru a corespunde bazei de date. i asta de fiecare dat cnd sunt folosite. Nu doar o modificare
a numelui funciei, ci si a structurii si a formatului argumentelor. La fel ca si codurile de eroare.
Soluia este abstractizarea funciei specifice database_connect dintr-o anumit baz de date si
folosirea unui apel API comun.
68
69
if ($user!=NULL){
if ($this->_ad_username!=NULL){ $this->rebind(); }
if ($this->_bind){
$filter="samaccountname=".$user;
if ($fields==NULL)
{ $fields=array("samaccountname","mail","memberof","department","displayname","telephonen
umber"); }
ldap_set_option($this->_conn, LDAP_OPT_REFERRALS, 0);
$sr=ldap_search($this->_conn,$this->_base_dn,$filter,$fields);
$entries = ldap_get_entries($this->_conn, $sr);
return $entries;
}
}
return false;
}
function user_groups($user){
if ($this->_ad_username!=NULL){ $this->rebind(); }
if ($this->_bind){
$info=@$this->user_info($user,array("memberof"));
$groups=$info[0][memberof];
$group_array=array();
for ($i=0; $i<$groups["count"]; $i++){
$line=$groups[$i];
$group_name="";
$line_length=strlen($line);
for ($j=3; $j<$line_length; $j++){
if ($line[$j]==","){
$j=$line_length;
} else {
$group_name.=$line[$j];
}
}
$group_array[$i]=$group_name;
}
return $group_array;
} else {
return false;
}
}
function user_ingroup($user,$group){
if (($user!=NULL) && ($group!=NULL)){
if ($this->_ad_username!=NULL){ $this->rebind(); }
70
if ($this->_bind){
$groups=$this->user_groups($user,array("memberof"));
if (in_array($group,$groups)){ return true; }
}
}
return false;
}
}
?>
Exemplu:
include ("lib/class/adLDAP.php");
//se creeaza o conexiune LDAP
$adldap = new adLDAP();
//autentificare utilizator
if ($adldap -> authenticate($user,stripslashes($password)))
{
$HTTP_SESSION_VARS['username'] = true;
session_register('username');
$_SESSION['username'] = $user;
$HTTP_SESSION_VARS['password'] = true;
session_register('password');
$_SESSION['password'] = md5($password);
$HTTP_SESSION_VARS['timplogin'] = true;
session_register('timplogin');
$_SESSION['timplogin'] = time();
$HTTP_SESSION_VARS['nivel'] = true;
session_register('nivel');
$_SESSION['nivel'] = 4;
header("Location:utilizatori/index.php");
}
else
{
$eroare_login="<font color=red>Parola este gresita</font><br>";
}
71
Descriere
Acest script PHP permite desenarea unui sector de cerc. De asemenea poate fi folosit pentru
generarea de grafice de tip pie.
function Sector(float xc, float yc, float r, float a, float b [, string style [, boolean cw [, float o]]])
xc: abscisa centrului.
yc: coordonata centrului.
r: raza.
a: unghi initial (in grade).
b: unghi final (in grade).
style: D, F, FD or DF (draw, fill, fill and draw). Default: FD.
cw: indica daca se foloseste sensul acelor de ceas (default: true).
<?php
require('fpdf.php');
class PDF_Sector extends FPDF
{
function Sector($xc, $yc, $r, $a, $b, $style='FD', $cw=true, $o=90)
{
if($cw){
$d = $b;
$b = $o - $a;
$a = $o - $d;
}else{
$b += $o;
$a += $o;
}
$a = ($a%360)+360;
$b = ($b%360)+360;
if ($a > $b)
$b +=360;
$b = $b/360*2*M_PI;
$a = $a/360*2*M_PI;
$d = $b-$a;
if ($d == 0 )
$d =2*M_PI;
$k = $this->k;
$hp = $this->h;
if($style=='F')
$op='f';
elseif($style=='FD' or $style=='DF')
$op='b';
else
$op='s';
if (sin($d/2))
$MyArc = 4/3*(1-cos($d/2))/sin($d/2)*$r;
//first put the center
$this->_out(sprintf('%.2f %.2f m',($xc)*$k,($hp-$yc)*$k));
72
73
}
function _Arc($x1, $y1, $x2, $y2, $x3, $y3 )
{
$h = $this->h;
$this->_out(sprintf('%.2f %.2f %.2f %.2f %.2f %.2f c',
$x1*$this->k,
($h-$y1)*$this->k,
$x2*$this->k,
($h-$y2)*$this->k,
$x3*$this->k,
($h-$y3)*$this->k));
}
}
?>
CLASA Diagrams
Descriere
Acest script permite generarea graficelor de tip pie si a diagramelor. Necesita clasa prezentata
mai sus.
PieChart(float w, float h, array data, string format [, array colors])
w: latimea maxima a diagramei.
h: inaltimea maxima a diagramei.
data: vector asociativ care contine etichetele si datele corespunzatoare.
format: folosit pentru legenda. Sir de caractere care poate contine urmatoarele valori: %l
(eticheta), %v (valoare) and %p (procent).
colors: vector ce contine culorile.
BarDiag(float w, float h, array data, string format [, array colors [, int maxVal [, int nbDiv]]])
w: latimea diagramei.
h: inaltimea diagramei.
data: vector asociativ care contine etichetele si datele corespunzatoare.
format: folosit pentru legenda. Sir de caractere care poate contine urmatoarele valori: %l
(eticheta), %v (valoare) and %p (procent).
color: vector ce contine culorile.
maxVal: valoarea maxima a scalei.
nbDiv: numar de subdiviziuni pentru scala.(default:4).
<?php
require('sector.php');
74
75
76
}
//Scales
for ($i = 0; $i <= $nbDiv; $i++) {
$xpos = $XDiag + $lRepere * $i;
$this->Line($xpos, $YDiag, $xpos, $YDiag + $hDiag);
$val = $i * $valIndRepere;
$xpos = $XDiag + $lRepere * $i - $this->GetStringWidth($val) / 2;
$ypos = $YDiag + $hDiag - $margin;
$this->Text($xpos, $ypos, $val);
}
}
function SetLegends($data, $format)
{
$this->legends=array();
$this->wLegend=0;
$this->sum=array_sum($data);
$this->NbVal=count($data);
foreach($data as $l=>$val)
{
$p=sprintf('%.2f', $val/$this->sum*100).'%';
$legend=str_replace(array('%l', '%v', '%p'), array($l, $val, $p), $format);
$this->legends[]=$legend;
$this->wLegend=max($this->GetStringWidth($legend), $this->wLegend);
}
}
}
?>
77
Dupa instalarea celor trei soft-uri de mai sus va rugam sa urmati urmatorii pasi:
1. Editarea fisierului php.ini
-
register_globals = Off (in cazul in care default este On va trebui setat pe Off)
short_open_tag = On
extension=php_ldap.dll
extension=php_pgsql.dll (in cazul in care aceaste linii sunt comentate, va trebui
decomentate)
78