|
Cuprins
Introducere
Capitolul 1- Introducere in tehnologiile WEB
1.1 World Wide Web
1.2 Serverul de Web IIS
1.3 Limbajul ColdFusion
1.4 Baze de date
Capitolul 2 - Descrierea aplicatiei
2.1 Date generale
2.2 Functionalitati si facilitati
2.3 Structura bazei de date
2.4 Descrierea modulelor aplicatiei
Capitolul 3 - Exemplu de rulare
Concluzii
Anexa
Introducere
Odata cu raspandirea web-ului si atingerea unei mase critice de utilizatori, firmele cu activitate de comert, analistii, specialistii in marketing s-au gandit ca merita investit efort in punerea la punct a unor tehnologii care sa transforme surferii web in potentiali clienti.
Initial, siturile web ale acestor firme contineau doar informatii de contact, oferte promotionale sau chiar cataloage de produse sub forma unor pagini HTML statice. Lansarea unei comenzi de cumparare a unor produse se putea face eventual via fax, telefon sau email. Pentru a putea intra in posesia produselor, clientul trebuia sa plateasca contravaloarea produselor comandate iar banii sa parcurga drumul de la client la comerciant (vanzator). Plata se facea de regula prin mecanismele clasice, catre un cont deschis de comerciant la o banca; presupunea deplasarea clientului la sediul unei institutii cu profil bancar pentru a depune banii si pentru a initia transferul acestora in contul comerciantului. In functie de politica adoptata de comerciant pentru a demara procesul de livrare a produselor catre client acesta cerea sau nu, confirmarea efectuari plati prin fax. Fie ca se folosea o retea de distributie proprie, fie ca se apela la un serviciu postal specializat (posta rapida, DHL, etc), teoretic aceasta ultima faza era cea mai lunga.
Exista inca putine situri web de comert care permit vizualizarea on-line a cataloagelor de produse si lansarea comenzilor; informatia ca un anumit comerciant ofera un anumit produs este obtinuta telefonic si/sau pe baza unei reclame in mass-media.
La fel ca si in comertul traditional, natura produsului vindut va determina alegerea mijloacelor.
Tehnologia 'shopping cart' sta la baza oricarui proces de comert electronic. Cum functioneaza aceasta tehnologie si cum influenteaza natura produsului alegerea aplicatiei si a optiunilor incluse? Sistemul de shopping cart este cel care permite sa fie expuse imagini ale produselor, descrieri si preturi. Furnizeaza, de asemenea, mecanismele prin care consumatorul sa aleaga cantitatea de produse pe care doreste sa o cumpere, face verificarea si inregistrarea datelor, calculeaza si afiseaza valoarea totala a cumparaturilor, incluzind si taxele de transport daca este cazul. Pentru ca tot acest proces sa functioneze corect este necesar ca intre toate informatiile introduse in bazele de date, atit de catre cel care vinde cit si de catre cel care cumpara sa existe o concordanta perfecta.
Comertul electronic este una dintre solutiile complexe, 'integrate' ca sa folosim un termen la moda, pe care le ofera tehnologia Internet. Asta inseamna ca o multitudine de aplicatii si de furnizori de servicii Internet trebuie sa conlucreze intr-o sincronizare perfecta pentru ca un site de comert electronic sa poata functiona.
O definitie succinta si larg acceptata este urmatoarea: Comertul electronic (e-commerce, pe scurt EC) este acea maniera de a conduce activitatile de comert care foloseste echipamente electronice pentru a mari aria de acoperire (locul in care se pot afla potentialii clienti) si viteza cu care este livrata informatia.
EC ofera oportunitatea de a comercializa produse in intreaga lume, sporind numarul de potentiali clienti in primul rand prin eliminarea barierelor geografice dintre clienti si comercianti. Pentru intelege care este rolul si locul comunicatiilor si solutiilor informatice (IT) intr-un astfel de mecanism, sa studiem putin arhitectura unui sistem EC.
Arhitectura unui sistem de comert electronic.
Pentru a construi un sistem de e-commerce, din punct de vedere arhitectural este nevoie de colaborarea a trei componente (subsisteme electonice/informatice) corespunzatoare urmatoarelor roluri:
(a) Client. Un echipament, clasic un PC, conectat direct (via un ISP) sau indirect (o retea a unei corporatii) la Internet. Cumparatorul foloseste acest echipament pentru a naviga si a face cumparaturi.
(b) Comerciant. Sistem informatic (hard & soft), situat de regula la sediul comerciantului, care gazduieste si actualizeaza catalogul electronic de produse disponibile a fi comandate on-line pe Internet.
(c) Sistemul tranzactional. Sistemul informatic (hard & soft) responsabil cu procesarea comenzilor, initierea platilor, evidenta inregistrarilor si a altor aspecte de business implicate in procesul de tranzactionare.
Pe baza acestor trei componente de baza s-au implementat diverse arhitecturi de comert electronic. Unele combina mai multe componente intr-un singur (sub)sistem informatic, pe cand altele implementeaza separat fiecare componenta in parte.
Pentru definirea arhitecturii, proiectantii de sisteme EC fac o proiectare de ansamblu a sistemului pe baza unei selectii a principalelor cerinte/functii ale unui sistem EC. Detalii cum ar fi, de exemplu, functia de agregare care permite asamblarea articolelor intr-o comanda completa sunt lasate pe seama proiectarii de detaliu. Decizia de a integra aceasta functie de agregare la nivelul componentei client, comerciant sau tranzactionale se va lua in functie de cerintele specifice ale fiecarei implementari in parte. Important este insa ca in cazul unui sistem de EC, ca de altfel in cazul oricarui sistem complex, arhitectura sa fie clar definita la toate nivelele de detaliu.
Exista mai multe optiuni pentru expunerea produselor si trimiterea comenzilor online. Cea mai obisnuita este pagina simpla HTML (pentru expunerea produselor) si un formular electronic de comanda. Daca aveti un numar mic de produse aceasta este varianta de care aveti nevoie. Daca numarul de produse pe care intentionati sa le vindeti este mai mare si clientii cumpara in mod frecvent un numar mai mare de produse aveti nevoie de un sistem de scripturi mai complex.
Majoritatea furnizorilor de web hosting ofera insa pachete speciale de aplicatii pentru comert electronic - sisteme de shopping cart. Aceste aplicatii au o interfata pentru baze de date si utilizeaza instrumente de programare complexe. Pot genera pagini dinamice pentru expunerea produselor, calcularea pretului si a taxelor (inclusiv a celor de expediere). Furnizeaza de asemenea rapoarte complete de urmarire a clientilor si nenumarate optiuni de intretinere si actualizare. Anumite componente permit chiar promotii speciale, promotii incrucisate sau personalizarea continutului in functie de preferintele clientului. Multe dintre aceste aplicatii pot fi utilizate si in site-urile comerciale de tip 'Business to Business' (B2B).
Sistemul de shopping cart pe care il alegeti trebuie sa poata furniza mecanismele pentru colectarea informatiilor necesare expedierii produsului si procesarii tranzactiei (inclusiv facturare, daca este cazul).
Pentru a asigura succesul pe termen lung al unui proiect de e-commerce, arhitectura acestuia trebuie proiectata cu grija tinand cont de toate aspectele de business cu care se va confrunta sistemul, lasand totodata portite care sa permita adaptarea sa in timp, pe masura ce apar noi provocari iar tehnologiile evolueaza.
In acest sens, aplicatia dezvoltata , vine in sprijinul ,celor afirmate mai sus - fiind un sistem complex de shoping chart , implementat prin mai multe module functionale - care asigura o arhitectura flexibila si o manipulare - prelucrare facila a datelor cu care se opereaza in procesul de e-commerce.
Capitolul 1. Introducere in tehnologiile Web
1.1 WORLD WIDE WEB
Scurt istoric
WORLD WIDE WEB (sau mai simplu WEB sau WWW) este un context arhitectural pentru accesul la documente raspandite pe mii de masini din Internet , intre care exista legaturi . In 5 ani a evoluat de la o aplicatie pentru transmiterea de date utile pentru fizica energiilor inalte la o aplicatie despre care milioane de oameni cred ca este Internetul. Popularitatea sa enorma se datoreaza faptului ca are o interfata grafica plina de culoare, usor de utilizat de catre utilizatori si in acelasi timp ofera o cantitate imensa de informatie despre orice subiect posibil
WEB-ul a aparut din necesitatea de a permite cercetatorilor raspanditi in lume sa colaboreze uytilizand colectii de rapoarte, planuri, desene, fotografii si alte tipuri de documente aflate intr-o continua modificare. Propunerea initiala pentru crearea unei colectii de documente avand legaturi intre ele (WEB) a fost facuta de fizicianul Tim Berners-Lee, fizician la CERN, in martie 1989. Primul prototip (bazat pe text) era operational 18 luni mai tarziu. In decembrie 1991 s-a facut o demonstratie publica la conferinta Hypertext '91, in San Antonio, Texas. Actiunea a continuat in anul urmator, fiind incununata cu realizarea primei interfete grafica, Mosaic, in februarie 1993.
Mosaic a fost atat de popular incat un an mai tarziu autorul sau Mark Andreessen a parasit NCSA unde Mosaic-ul a fost dezvoltat, pentru a forma o noua companie, Netscape Communication Corp. care se ocupa de dezvoltarea de software pe WEB.
In 1994 CERN si MIT au semnat o intelegere de a forma consortiul WORLD WIDE WEB, organizatie care are ca obiectiv dezvoltarea WEB-ului, standardizarea protocoalelor si incurajarea interoperabilitatii intre site-uri. De atunci, sute de universitati si companii au intrat in consortiu. MIT coordoneaza partea americana a consortiului, in timp ce centrul de cercetari INRIA coordoneaza partea europeana. Desi exista foarte multe carti despre WEB, cel mai bun loc pentru gasirea unor informatii la zi despre el este (in mod natural) chiar WEB-ul. Pagina consortiului are adresa htttp://www.w3.org. Cititorii interesati vor gasi acolo legaturi la pagini care acopera toate documentele si activitatile consortiului.
Descriere
Din punct de vedere al utilizatorului, WEB-ul se prezinta ca o colectie imensa de documente raspandite in toata lumea, numite pagini. Fiecare pagina poate sa contina legaturi (indicatori) la alte pagini, aflate oriunde in lume. Utilizatorii pot sa aleaga o legatura (de exemplu prin executia unui click) care ii va duce la pagina indicata de legatura. Acest proces se poate repeta la nesfarsit, fiind posibil sa se traverseze in acest mod sute de pagini legate intre ele. Despre paginile care indica spre alte pagini se spune ca utilizeaza hypetext.
Paginile Web sunt vizualizate pe calculatorul client cu ajutorul unui program special numit browser. La inceput, Web-ul consta numai din pagini de text, fara nici o imagine. Odata cu aparitia primului browser Web grafic in anul 1993, Web-ul a inceput sa se impuna cu adevarat. Nu cu mult timp in urma, browserul Navigator al firmei Netscape era cel mai popular program de navigare, insa browser-ul Internet Explorer de la Microsoft ocupa in momentul de fata mai mult de jumatate din piata.
Programul de navigare aduce pagina ceruta, interpreteaza textul si comenzile de formatare continute in text si afiseaza pagina, formatata corespunzator, pe ecran. Majoritatea paginilor de WEB incep cu titlu, contin informatii si se termina cu adresa de posta electronica a celui care mentine pagina. Sirurile de caractere care reprezinta legaturi la alte pagini se numesc hyperlegaturi, sunt afisate in mod diferit, fiind subliniate si/sau colorate cu o culoare speciala. Pentru a selecta o legatura, utilizatorul va plasa cursorul pe zona respectiva (utilizand mouse-ul sau sagetile de pe tastatura) si comanda selectia (cu ajutorul mouse-ul sau apasand tasta ENTER). Desi exista programe de navigare fara interfata grafica, ca de exemplu lynx, ele nu sunt atat de utilizate ca programele de navigare grafice.
Tehnologia folosita de Worl Wide Web este cea client-server, care presupune urmatoarele etape:
Un calculator (clientul) formuleaza o cerere
Cererea clientului este expediata unui server
Serverul analizeaza aceasta cerere, o executa, formuleaza raspunsul si il expediaza clientului
Clientul receptioneaza raspunsul la cererea solicitata
Modelul de comunicare intre serverul WEB si clientul care acceseaza informatia este urmatorul (sa zicem ca aceseaza http://www.w3.org/hypertext/WWW/TheProject.html) :
· Programul de navigare determina URL (pe baza selectiei)
· Programul de navigare intreaba DNS care este adresa IP pentru masina care se numeste www.w3.org.
· DNS raspunde cu 18.23.0.23
· Programul de navigare realizeaza conexiunea TCP cu portul 80 al 18.23.0.23
· Trimite o comanda GET /hypertext/WWW/TheProject.html
· Serverul www.w3.org transmite fisierul 'TheProject.html'
· Conexiunea TCP este eliberata
· Programul de navigare afiseaza formatat textul din 'TheProject.html'
· Programul de navigare aduce si afiseaza toate imaginile din 'TheProject.html'
HTML si URL
'Limbajul' in care sunt descrise paginile WEB se numeste HTML. El este derivat din SGML, si este format din seturi de tag-uri inserate in text, care dau directive asupra modului in care sa se formateze textul. In functie de posibilitatile hard ale sistemului pe care se vizualizeaza pagina, si de posibilitatile browserului, pagina va fi afisata cu mai multe sau mai putine caracteristici de formatare (un browser in mod text nu va putea folosi fonturi de marimi diferite). Tagurile sunt texte cuprinse intre '<' si '>'. Textul va trebui sa nu contina aceste caractere, aparitia lor trebuind inlocuita cu metacaractere inlocuitoare ('<' si '>') la randul lui, '&' trebuie si el inlocuit cu metasecventa '&'. Si alte caractere se pot specifica prin metasecvente (de exemplu caractere care nu sunt in setul standard ASCII).
Numele tagurilor nu sunt 'case sensitive', doar optiunile si argumentele pot face distinctie in anumite cazuri intre literele mari si mici (de exemplu calea intr-un URL care se gaseste in tagul <a>)
Textul este cuprins intre tagurile <html> si </html>. El cuprinde o sectiune de 'head' si una de 'body'. Sectiunea de 'head' contine informatii despre document care nu se vor afisa in pagina (eventual se va afisa pe bara de titlu a ferestrei browserului). Textul din sectiunea de 'body' contine descrierea paginii propriu zise. In cadrul textului caracterul de sfarsit de linie este ignorat, la fel si taburile sau aparitile multiple de spatii (se retine numai unul).
URL (Uniform Resource Location) reprezinta o conventie de localizare a unei resurse informationale. El cuprinde (de la dreapta la stanga) identificarea fisierului referit pe masina pe care se afla, numele masinii pe care se gaseste si modul (protocolul) de accesare a acesteia. De exemplu in URL-ul: http://home.ro/iordache din exemplu protocolul este http (acces prin portul 80 prin protocolul HTTP), masina este home.ro iar identificarea paginii este 'pclaude' - adica pagina personala a userului pclaude. Serverul HTTP va rezolva acest identificator la calea interna /home/iordache/public_html/index.html. Se observa ca sarcina localizarii pe server este sarcina serverului, care cunoaste propriul mod de identificare a resurselor sale publice.
Nu toate fisierele de pe un server WEB pot fi accesate prin HTTP. De obicei paginile publice se afla in directoare speciale, identificarea lor facandu-se cu calea relativa la acel director. Daca nu se specifica decat calea relativa a unui director, serverul intoarce un fisier cu nume implicit (de obicei numit index.html). Exista si alte conventii (de exemplu /~user/ reprezinta directorul radacina al informatiilor publice ale userului 'user'. URL-ul este un caz particular de mai putin cunoscutul URI (Uniforme Resource Identifier) care identifica unic pe Internet resursele care se pot accesa prin diferite protocoale
Paginile WEB pot contine imagini (tagul <img>), tabele (tagul <table>) , etc. In sectiunea de 'head' se pot specifica prin tagul '<meta>' informatii despre autor, firma de care apartine si chiar informatii destinate motoarelor de cautare (descriere, cuvinte cheie, etc).
Server de Web
Serverul web este un calculator care gazduieste un site web si care e capabil sa raspunda cererilor de pagini web din partea clientilor. Pentru a realiza acest lucru, server-ul trebuie sa ruleze o aplicatie speciala numita httpd (HyperText Transfer Protocol Demon). Ca servere Web, cele mai intalnite sunt: Apache Server , Microsoft Web Server , Oracle Web Server
In momentul de fata se folosesc foarte multe tipuri de calculatoare si sisteme de operare, majoritatea oferind software server Web de buna calitate. Cele mai cunoscute sisteme de operare pentru calculatoare ce deservesc pagini Web sunt UNIX si Microsoft Windows NT/2000.
Unix este folosit de la crearea Web-ului si majoritatea serverelor Web ruleaza in continuare acest sistem. Windows NT /2000 este mai nou in domeniu, dar si-a castigat rapid popularitatea. Din punctul de vedere al designer-ului Web, server-ul utilizat pentru livrarea unei pagini este in general irelevant, cu anumite exceptii:
. UNIX este dependent de tipul de litera folosit (litera mica sau majuscula), in timp ce Windows NT nu
. UNIX este folosit de mai mult timp si este relativ stabil. Windows NT sufera actualizari majore si de aceea poate avea probleme in acest sens
. Exista foarte multe companii care au baze de date Microsoft Access pe care vor sa le integreze in site-ul lor, acest lucru putandu-se face numai in mediul Windows NT
. Furnizorii de servicii Internet (Internet Service Provider - ISP) percep in general taxe mai reduse pentru servere bazate pe UNIX, pentru ca intretinerea sistemului este mai putin costisitoare dacat Windows NT.
Intre calculatoarele interconectate informatia circula in pachete. Pachetele contin adresa expeditorului si cea a destinatarului, informatia, numele aplicatiei client care a formulat cererea si numele aplicatiei de pe server care va primi cererea. Aceste pachete sunt sunt dirijate pentru a ajunge la destinatie prin anumite mijloace de dirijare precum Internet Protocol (IP). Reteaua Internet dispune de asemenea si de mijloace de corectie a erorilor de transmitere a pachetelor. Un astfel de mijloc este Transfer Control Protocol (TCP) - Protocolul de Control al Transferului.
Site-urile Web reprezinta o serie de pagini Web care sunt interconectate. Site-urile pot contine legaturi catre alte site-uri, lucru care duce la obtinerea unor panze de informatii. Primul document dintr-un site se numeste Home Page (pagina de pornire). Ea contine legaturi catre toate celelalte documente.
Site-urile Web sunt publicate prin transferul fisierelor HTML si al fisierelor multimedia asociate pe servere Web. Protocolul de transfer al fiserelor (FTP) este un standard care permite mutarea, redenumirea sau stergerea fisierelor de pe un calculator la distanta.
1.2 Limbajul ColdFusion MX
ColdFusion MX ruleaza ca o serie de trei servicii: ColdFusion MX Application Server, ColdFusion MX ODBC Agent si ColdFusion MX ODBC Server. In momentul in care serverul Web primeste o cerere catre o pagina ColdFusion va trece cererea aceasta catre Application Server, unde vor fii realizate operatiile cerute de codul respectiv. In urma rularii acestei pagini de catre ColdFusion va rezulta o pagina HTML care va fii reintoarsa ca raspuns la cererea primita.
Administrarea server-ului ColdFusion se realizeaza dintr-o consola web centrala. Aceasta consola poate fii accesat de oriunde din lume prin intermediul Internet-ului, permitind o administrare descentralizata a serverului ColdFusion MX.
Setarile sint structurate in patru categorii:
1. Setari ale server-ului:
Se pot modifica informatiile referitoare la numarul simultan de conexiuni permise, timpul de time-out, numarul maxim de pagini ce va fi tinut in cache-ul servarului precum si numarul maxim de queri-uri care vor fi stocate. Cind acest numar va fi atins, queriurile mai veci vor fii scoase din cache si vor fi inlocuite cu cele noi. Deasemenea se poate modifica localizarea variabilelor client. Acestea spot fi stocate in cookie-uri pe masinile client, in registrii serverului sau se poate definii o baza de date care va mentine aceste variabile. Pentru a putea implementa o politica de securitate a site-urilor construite cu ColdFusion MX, acesta ofera posibilitatea definirii unor variabile ce vor fi stocate in memoria server-ului. Variabilele vor putea fi modificate doar in urma prelucrarilor realizate de server, pe baza codului scris de programator. Ele se impart in 2 categorii: variabile sesiune si variabile aplicatie. Cele din urma vor stoca informatii ce vor fi disponibile intregii aplicatii. Prima categorie, variabilele sesiune, vor purta informatii disponibile doar in cadrul unei sesiuni (o conexiune server - masina client). Prin intermediul acestora va putea fi implementata politica de securitate, si vor putea fi realizate personalizari ale site-ului in functie de anumiti utilizatori. Pentru aceste variabile sotcate in memorie se pot seta timpii de time-out: cel implicit si cel maxim. Deasemenea ele pot fi dezafectate, astfel o anumita categorie de variabile memorie sa nu fie disponibila pe serverul respectiv.
Se pot definii o serie de mapari de directoare, usurind astfel lucrul programatorilor, care nu vor mai fii nevoiti sa scrie toata calea unor fisiere, ci vor putea folosii denumiti sugestive catre anumite directore in care sint stocate informatii de aceiasi natura.
Pentru a putea trimite mail-uri direct din interiorul site-urilor va putea defini o cenexiune la un server de mail, aceasta conexiune fiind folosita de tag-urile specifice pentru a trimite mail-uri.
2. Setari referitoare la date si servicii:
Pentru a putea accesa datele din interiorul bazelor de date vor trebuii create niste conexiuni catre aceste date. ColdFusion puten la dispozitie o serie de drivere proprii pentru cele mai populare aplicatii de baze de date (Oracle, Microsoft SQL Server, MySQL, Informix, Microsoft Access, Sybase, DB2 precum si posibilitatea de conectare prin intermediul ONBC. Prin aceasta tehnica conexiunile catre bazele de date sint mentinute permanent, aplicatiile ColdFusion nemafiind nevoite sa astepte deschiderea unei conexiuni pentru a li se servii datele necesare, ceea ce duce la un cistig subsantial de timp.
Facilitatea Verity Collection permite dezvoltarea usoara a unui motor de cautare ni interiorul aplicatiei. Colectiile sint formate dintr-un grup de informatii ce pot fii indexate si cautate ca un set de informatii. Pot fii indexate informatii continute in cimpurile bazelor de date, dar si continutul fisierelor de pe hard-disk-uri. Deasemenea pot fi definite conexiuni catre servicii web, acestea devenind disponibile aplicatiei respective.
3. Debug-ing si log-uri
Aici se defineste modul in care vor arata paginile de debug: clasic (in paginile respective, dupa terminarea afisarii informatiilor din pagina) sau in pagini separate. Informatiile de debug pot fi suprimate, sau pot fi trimise doar spre anumite adrese de IP. Deasemenea pot fi selectate informatiile ce vor fi afisate in paginile de debug.
Serverul ColdFusion MX pune la dispozitie un numar de trei log-uri pentru a usura munca administratorilor de sistem. Aceste loguri contin informatii despre server, exceptiile aparute si despre aplicatiile definite pe respectivul server
Se pot definii task-uri ce vor fi rulate in mod repetat sau la anumite momente si probe ce vor fi realizate, pentru a verifica buna functionare a serverului. In cazul in care sint intimpinate erori se pot trimite mail-uri automate catre administratorii de sistem
Pentru a facilita migrarea aplicatiilor din versiunile anterioare este pus la dispozitie un analizor de cod care va verifica paginile ColdFusion si va informa despre inadvertentele aparute in paginile respective.
4. Setari pentru extensiile limbajului
Limbajul permite extinderea facilitatilor oferite. Astfel se pot definii tag-uri personale, scrise in ColdFusion sau in Java si C++. Pentru tag-urile scrise in ColdFusion va fi definit directorul in care vor fii stocate.
Tag-urile scrise in Java sau C++ vor trebuii inregistrate pentru a putea fi folosite in aplicatii. Pentru aceasta vor primii un nume care va incepe in mod obligator cu cfx_ si vor fi indicate caile catre dll-urile sau clasele respective. Pentru fiecare tag in parte se pod defini descrieri care sa contina informatii despre ce realizeaza tag-ul respectiv si despre atributele disponibile si valorile pe care acestea le pot primii.
5. Securitate
In aceasta sectiune se poate seta parola de administrator pentru serverul ColdFusion MX. Pentru a marii securitatea site-urilor exista posibilitatea definirii unor "celule de securitate". In acest fel se definesc dreptrui pe directoare si fisiere si in functie de aceste drepturi paginile respective vor avea acces la resursele server-ului. Se aleg conexiunile la bazele de date disponibile, tag-urile si functiile ColdFusion care vor fi rulate de paginile respective, porturile pe care se va permite accesul la paginile respective, precum si drepturile de scriere citire asupra fisierelor.
Limbajul ColdFusion este format din tag-uri si functii. Toate tag-urile dispun de atribute, prin intermediul carora vor fi introduse informatiile care directioneaza prelucrarea datelor. Ca si in cazul tag-urilor HTML, cele ColdFusion au un tag de inceput si un tag de sfirsit. Functiile se structureaza in mai multe categorii:
Dupa valoarea returnata:
functii care intorc rezultate
functii vide (nu intorc nici un rezultat)
Dupa numarul parametrilor:
functii cu parametrii
functii fara parametrii
Dupa datele pe care le manipuleaza:
functii pe stringuri
functii pentru variabile de tip data
functii pentru manipularea numerelor (intregi si reali)
Accesul la informatiile din bazele de date se realizeaza folosind interogari scrise in sql. Aceste interogari sint inserate in interiorul tag-ului <CFQUERY>. Ca atribute minime acesta primeste numele conexiunii la baza de date precum si numele sub care vor fi adresate mai departe datele aduse. Suplimentar se pot definii o serie de atribute cum ar fii parola si user-ul cu care se va conecta la baza de date, numele server-ului unde este localizata baza de date si numele acelei baze, modalitatile de mentinere a datelor in cache si altele.
Variabilele pot fii declarate oriunde in interiorul unei pagini sau pot fi mostenite din alte pagini. Variabilele pot fi declarate in doua moduri. Fara verificarea existentei variabilei, initializarea facindu-se cu valoarea ceruta de programator. Acest lucru este posibil prin intermediul tag-ului <CFSET>. Tot prin intermediul lui se vor realiza atribuirile de valori. O alta modalitatea este declararea unei variabile cu ajutorul tag-ului <CFPARAM>. In acest caz mai intii se verifica existenta variabilei. In cazul in care aceasta exista ea nu va mai fii initializata, raminind cu valoarea actuala, in caz contrar, daca nu exista, variabila va fi initializata cu valaorea primita de atributul VALUE.
La initializare, in mod implicit variabilele vor fi creeate local, ele fiind disponibile doar in pagina in care au fost declarate. Ele pot fi declarate si ca variabile session fiind disponibile pe tot timpul unei sesiuni, in toate paginile site-ului, sau de tip application aceste variabile viind disponibile in toate paginile aplicatiei, indiferent de sesiune. Prin intermediul acestor tipuri de variabile se va putea implementa o politica de securitate in cadrul site-ului, precum si o modalitate de a accesa usor valori constante in cadrul unei sesiuni sau a intregii aplicatii.
La inceputul fiecarei pagini ColdFusion se va procesa mai intii codul continut in pagina Application.cfm. Daca aceasta nu este definita va fi procesat un cod implicit pus la dispozitie de macromedia. Scriptul nu este accesabil din browser, codul din el fiind acesabil doar in cadrul server-ului. Prin aceasta tehnica se vor putea realiza autentificari ale utilizatorilor si dreptrurilor acestor utilizatori. Pagina Application.cfm va fi cautata in directorul curent, daca nu este gasita se va cauta in directorul parinte si tot asa pina la directorul radacina al aplicatiei. Prima pagina Application.cfm gasita va fi rulata, cautarea incetind in acel moment.
2.1 Date generale
Pentru a oferii un grad sporit de securitate si pentru a asigura introducerea cit mai multor comenzi ferme in baza de date, utilizatorii sint nevoiti sa se logheze de la inceupt in sistem. Conturile nu se pot creea de catre utilizator. Acesta trebuie sa se inscrie, oferind cit mai multe informatii despre respectiva companie. Clientul va fi contactat si i se va furniza numele contului si parola pe care va fi nevoit sa le foloseasca pentru a se loga in sistem. In acest fel se asigura existenta comenzilor ferme.
2.1.1 Detalii de utilizare si instrumente folosite in dezvoltare
Aplicatia dezvoltata reprezinta implementarea unei solutii web pentru un magazin virtual ce foloseste comertul electronic pentru comercializarea produselor sale: in cazul de fata fiind vorba de bicicletesi accesorii pentru biciclete.
Aplicatia poate rula pe un server de web IIS 4.0, 5.x, Apache 1.3.12-1.3.22, Apache 2.x, JRun HTTP Server, Sun ONE 6.x, Sun ONE 4.x, Netscape 3.6x instalate pe unul din sistemele de operare: Windows (orice versiune), Red Hat Linux 6.2 - 7.2, SuSE Linux 7.2, 7.3, TurboLinux 8 Server, Red Hat Linux AS 2.1, Solaris 7, 8, si 9 precum si HP-UX 11.00. Deasemenea este necesara functionarea pe serverul de web a unei versiuni Macromedia ColdFusion MX.
Partea executabila a aplicatiei este constituita de scripturi ColdFusion MX, care sunt rulate pe serverul de web si al caror rezultat este vizualizat de catre utilizatorul client pe calculatorul sau, prin intermediul unui browser local.
Site-ul web a fost dezvoltat folosind urmatoarele limbaje de programare si aplicatii Web:
Pentru partea de programare s-a utilizat: ColdFusion MX si HTML 4
Pentru partea de design s-a utilizat: HTML, CSS, Adobe Photoshop 6.0
- Pentru partea de baze de date s-a utilizat Microsoft Access.
Aplicatia a fost dezvoltata , in mai multe etape , si anume:
1 proiectarea structurii si implementarea bazei de date.
2 proiectarea si implementarea moduluilui de administrare al site-ului , care sa gestioneze
aceasta baza de date si care sa permita - intr-un mod facil - adaugarea datelor in cadrul
tabelelor bazei de date .
3 introducerea datelor si a imaginilor corespunzatoare acestora in baza de date.
4 proiectarea si implementarea modulului de interfata al site-ului
5 proiectarea si implementarea modulului de inregistrare-autentificare a utilizatorilor
6 proiectarea si implementarea modulului de preluare si prelucrare a comenzilor de la utilizator.
7 implementarea facilitatilor puse la dispozitia utilizatorului si integrarea acestora in cadrul modulelor de care apartin.
8 Proiectarea si implementarea modulului de comunicare cu utilizatorii
9 Definitivarea aspectului grafic al site-ului
10 Testarea functionalitatii site-ului si a facilitatilor puse la dispozitie in cadrul sau .
Aplicatia a fost structurata pe 2 compnente. Prima se refera la functionalitatile oferite clientilor, iar cea de a doua la functionalitatile angajatilor, care vor trebuii sa administreze comenzile, ceea ce duce pina la urma la administrarea bazei de date. Din aceasta perspectiva functionalitatile se refera in primul caz la usurarea cautarii printre produse si managementul usor al casului de cumparaturi, iar in cel de al doilea caz la facilitati de update-are si administrare a bazei de date, precum si la regasirea rapida a informatiilor despre clienti.
2.2.1 Facilitati oferite clientilor
Facilitatile disponibile pot fi impartite in doua categorii: facilitati la nivel de site sau generale si facilitati la nivel de produs (pagina a produsului) . Urmeaza o scurta descrierea a acestora , informatii mai detaliate si modul de implementare pentru aceste facilitati, fiind specificate in cadrul descrierii modulului comercial al site-ului - de care si apartin.
Functionalitati si facilitati la nivel de site
Din aceasta categorie pot fi mentionate , in ordine, urmatoarele:
1. Facilitati de cautare in cadrul site-ului
Rolul acestora este acela de a facilita accesul la anumite informatii mai detaliate din cadrul site-ului pe baza unor informatii de start ,mai putin detaliate, specificate de catre utilizator
Sunt posibile urmatoarele tipuri de cautari:
* cautare dupa criterii predefinite: sint mai multe cimpuri din care se pot selecta informatiile dorite, din combinarea acestor cimpuri rezultind criteriile de interogare a bazei de date.
* cautare dupa cuvinte cheie: in modul acesta sint scanate toate cimputile bazei de date pentrua cauta informatia ceruta de utilizator. Aceasta cautare se realizeaza cu ajutorul functionalitatilor ColdFusion MX care va mentine niste indexi ai bazei de date pentru o cautare mai rapida.
2. Vizualizarea si modificarea in orice moment a cosului de cumparaturi
Acest lucru este posibil prin plasarea unui link in header-ul aplicatiei, link care, in acest fel, va fi vizibil in toate paginile. Pagina tinta a link-ului ofera posibilitatea de a modifica cantitate comandata sau de a scoate din cosul de cumparaturi a produselor dorite.
2.2.2 Facilitai pentru angajati
Si in acest caz putem vorbii de mai multe categorii de facilitati:
1. Referitoare la stocul de produse si administrarea lui: adaugarea de noi categorii de produse, de noi produse, aducerea la zii a preturilor si cantitatilor disponibile.
2. Referitoare la vizualizare a si administrarea comenzilor: comenzile care sint in curs de procesare (nou primite, livrate si neachitate sau achitate sau nelivrate) sint oferite angajatilor existind facilitatea de actualizare a informatiilor despre aceste comenzi (daca au fost platite sau au fost livrate). Deasemenea pentru fiecare comanda in parte se pot vizualiza detaliile (produsele comandate si cantitatile din aceste produse), precum si informatiile despre clientii care au reailzat respectivele comenzi.
3. Referitoare la oferirea de informatii despre angajatii companiei: aici sint oferite informatiile despre angajatii companiei.
2.3 Structura bazei de date
Descriere:
Baza folosita este una relationala de tip Microsoft Access, denumita Xtreme.mdb. Ea contine urmatoarele zece tabele:
Customer: aceasta tabela contine informatii despre clientii companiei
Employee: tabela stocheaza datele angajatilor din companie (seful direct, nume, functie, salariu)
Employee_Addresses: sint inregistrate datele despre adresele angajztilor
Orders: aici sint mentinute datele despre comenzile clientilor si depsre stadiul in care sint aceste comenzi
Orders_Detaile: contine detaliile comenzilor, produsele comandate, cantitatile comandate
Product: tabela contine informatiile despre produsele aflate in stoc
Product_Tupe: in aceasta tabela sint tinute date despre tipurile de produse
Suplier: aici sint regasite informatiile despre companiile de al care se aprovizioneaza depozitul
Utilizatori: tabela contine numele si parolele utilizatorilor care au drept de administrare a bazei de date
Xtreme_Info: aici sint stocate informatiile despre companie.
Tabela Customer
Aici se regasesc informatiile despre clientii companiei
Field
Type
Key
Descriere
Customer_ID
Number
Primary key
ID-ul clientului. Este unic pentru fiecare client in parte. Permite identificarea clientilor in baza de date
Customer_Name
Text
Numele clintului
Contact_First_Name
Text
Informatiile despre persoana de contact
Contact_Last_Name
Text
Contact_Title
Text
Contact_Position
Text
Last_Year_Sales
Cuurency
Vinzarile in ultimul an catre clientul respectiv
Address1
Text
Informatii despre localizarea clientrului
City
Text
Region
Text
Country
Text
Postal_Code
Text
Text
Email-ul de contact
Web_Site
Text
Adresa site-ului clientrului
Phone
Text
Numerele de telefon si fax
Fax
Text
User
Text
Numele de utilizator cu care se va loga in site
password
Text
Parola necesara pentru logare
Cimpul Customer_ID este cheia principala, acest cimp fiind folosit in legaturile cu celelalte tabele. El va identifica unic clientii companiei. Pentru o clasificare in functie de profitul adus de fiecare client a fost introdus cimpul Last_Year_Sales, tot in aceasta tabela tinindu-se informatiile de logare ale clientilor (parola si utilizatorul)
Tabela Employee
In aceasta tabela se regasesc informatiile despre angajatii companiei
Field |
Type |
Key |
Descriere |
Employee_ID |
Number |
Primary Key |
ID-ul unic al angajatilo |
Supervisor_ID |
Number |
|
ID-ul srfului |
Last_Name |
Text |
|
Numele si prenumele angajatului |
First_Name |
Text |
|
|
Position |
Text |
|
Pozitia ocupata |
Birth_Date |
Date/Time |
|
Data de nastere |
Hire_Date |
Date/Time |
|
Data angajarii |
Home_Phone |
Text |
|
Telefonul de acasa |
Extension |
Text |
|
Interiorul la care raspunde |
Photo |
Text |
|
Fotografia |
Notes |
Memo |
|
Informatii despre angajat |
Reports_To |
Number |
|
ID-ul celui carauai ii raporteaza despre activitatile sale |
Salary |
Number |
|
Salariul anual primit de angajat |
Aici se regasesc detalii despre angajati, legate de companie. Fiecare angajat fa fi identificat unic in functie de cimpul Employee_ID, care este cheie principala. Informatiile despre fiecare angajat vor fi completate in tabela Employee_Adrress, in care se gasesc detalii despre locuinta angajatilor.
Tabela Employee_Address
Field |
Type |
Key |
Descriere |
Employee_ID |
Number |
Primary Key |
ID-ul angajatului, cimp folosit pentru legatura cu tabela Employee |
Address1 |
Text |
|
Informatiile legate de adresa de acasa a angajatului |
City |
Text |
|
|
Region |
Text |
|
|
Country |
Text |
|
|
Postal_Code |
Text |
|
Tabela Xtreme_Info
Sint stocate informatiile despre compania Xtreme pentru o accesare mai usoara a acestor informatii.
Field |
Type |
Key |
Descriere |
Xtreme_Name |
Text |
Primary Key |
Numele companiei, care va fi si cheie principala in tabela |
Address |
Text |
|
Adresa sediului central, precum si numarul de telefon si fax. |
City |
Text |
|
|
Province |
Text |
|
|
Country |
Text |
|
|
Postal_Code |
Text |
|
|
Phone |
Text |
|
|
Fax |
Text |
|
|
Logo |
Text |
|
Poza cu logo-ul companiei |
Tabela Orders
Vor fi stocate informatiile despre comenzile primite. Pentru o accesare mai rapida si mai usoara aceste informatii au fost "sparte" in doua. In aceasta tabela se regasesc informatii despre costul total al comenzii, clientul care a comandat, numarul comenzii, detaliile despre produsele comandate si cantitatea acestora vor fi tinute in tabela Orders_Detail
Field |
Type |
Key |
Descriere |
Order_ID |
AutoNumber |
Primary Key |
ID-ul comenzii, care va identifica unic fiecare comanda. Pentru a fi indeplinita conditia de identificare unica acest numar va fi asignat automat de catre baza de date |
Order_Amount |
Currency |
|
Costul total al comenzii |
Customer_ID |
Number |
|
ID-ul clintului. Prin acest cimp se face legatura cu tabela Customer |
Employee_ID |
Number |
|
ID-ul angajatului care a procesat comanda. Prin acest cimp se face legatura cu tabelele Employee si Employee_Address |
Order_Date |
Date/Time |
|
Datele la care a fost realizata, livrata si dorita cererea |
Required_Date |
Date/Time |
|
|
Ship_Date |
Date/Time |
|
|
Shipped |
Yes/No |
|
Aici se stie daca respectiva comanda a fost livrata sau nu |
Payment_Received |
Yes/No |
|
Aici se tine informatia daca a fost primita plata comenzii |
Dupa cum am spus mai sus, detaliile despre comanda sint tinute in tabela Orders_Detail. S-a plecat de la ideia ca fiecare comanda avea mai multe linii de comanda, exact ca in cazul unei facturi, aceste linii de comanda fiind tinute in tabela urmatoare
Orders_Detail
Field |
Type |
Key |
Descriere |
Order_ID |
Number |
|
Prin acest cimp se face legatura cu tabela Orders pentru a se identifica numarul comenzii din care face parte respectivul produs comandat |
Product_ID |
Number |
|
Prin acest cimp se face legatura cu tabela Products pentru a se identifica produsul comandat |
Unit_Price |
Currency |
|
Pretul unui produs |
Quantity |
Number |
|
Cantitatea comandata |
Datele despre produse se regasesc in tabelele Product si Product_Type. Prima tabela stocheaza informatii detaiate despre produse, iar cea de a doua Informatii despre tipurile de produse comercializate. Legatura intre cele doua tabele se realizeaza prin intermediul cimpului Product_Type_ID continut de ambele tabele.
Product
Field |
Type |
Key |
Descriere |
Product_ID |
Number |
Primary Key |
Fiecare produs va fi identificat unic prin acest cimp. |
Product_Name |
Text |
|
Numele prosusului |
Color |
Text |
|
Detalii despre produs (culoare, marime, tip) |
Size |
Text |
|
|
M_F |
Text |
|
|
Price |
Currency |
|
Pretul |
Product_Type_ID |
Number |
|
Cimpul care face legatura cu tabela Product_Type. Identifica tipul de produs |
Product_Class |
Text |
|
Clasa produsului (bicicleta sau accesoriu pentru biciclete) |
Supplier_ID |
Number |
|
ID-ul furnizorului. Prin acest cimp se face legatura cu tabela Supplier |
Quantity |
Number |
|
Cantitatea aflata in stoc din produsul respectiv |
Product_Type
Field |
Type |
Key |
Descriere |
Product_Type_ID |
AutoNumber |
Primary Key |
Cimp care identifica unic fiecare tip de produse. |
Product_Type_Name |
Text |
|
Numele respectivei categorii |
Description |
Memo |
|
Detalii despre produsele continute in categoria curenta |
Picture |
Text |
|
Numele fisierului cu poza respectivului tip de produs |
Supplier
Pentru un acces facil la datele despre furnizorii de produse, a fost gindita aceasta tabela.
Field |
Type |
Key |
Descriere |
Supplier_ID |
AutoNumber |
Primary Key |
Cimp care identifica unic fiecare furnizor |
Supplier_Name |
Text |
|
Numele furnizorului |
Address1 |
Text |
|
Datele de contact ale furnizorului |
City |
Text |
|
|
Region |
Text |
|
|
Country |
Text |
|
|
Postal_Code |
Text |
|
|
Phone |
Text |
|
Numarul de telefon |
Tabela User
In aceasta tabela se stocheaza datele despre utilizatorii care au dreptul de a accesa modulul de administrare al site-ului
Field |
Type |
Key |
Descriere |
User |
Text |
Primary Key |
Fiecare nume de utilizatoru va fi unic |
Password |
Text |
|
Parola asociata utilizatorului |
2.4 Descrierea modulelor aplicatiei
2.4.1 Modulul de administrare a bazei de date
Are un rol esential in buna functionarea a site-ului , dar mai ales in gestionarea eficienta a resurselor si a activitatii de comert electronic desfasurate - punind la dispozitia utilizatorilor cu drepturi de administrator o interfata de control puternica si usor de utilizat.
Modulul de administrare este format din urmatoarele sectiuni :
Administrare furnizori: se ocupa de administrarea tabelei Supplier
Administrare produse: modulul administreaza tabelele Product si Product_Type
Admiinstrare comenzi se ocupa de gestionarea tabelelor Orders si Orders_Detail
Administrare angajati: gestioneaza tabelele Employee si Employee_Address
Administrare utilizatori:: gestioneaza tabela User
Modulul de administrare furnizori administreaza tabela Supplier. Ofera facilitati de update al informatiilor despre acesti furnizori precum si de introducerea noilor furnizori. Este alcatuit din scripturile:
addfurnizor.cfm: scriptul permite adaugarea unui nou furnizor. Facilitatea este disponibila prin apasarea link-ului Adauga Furnizor din pagina cu furnizori. In urma acestei actiuni se va deschide o pagina in care vor fi colectate informatiile ce vor fi introduse in baza de date. Dupa terminarea introducerii acestor informatii se va apasa butonul Add. In cazul in care toate informatiile necesare au fost introduse se va continua cu inserarea lor in baza de date, in caz contrar utilizatorul fiin instiintat de necesitatea introducerii anumitor informatii, oferindu-i-se numele cimpurilor necesare
furnizori.cf: acest script are mai multe atributii. In primul rind el va afisa lista cu toti furnizorii, dat va avea si rolul de a sterge furnizorii doriti. Cum se realizeaza acest lucru? In functie de variabilele pe care le primeste scriptul, el va realiza una din cele doua actiuni. Tot din acest script se va accesa pagina in care se realizeaza update-ul informatiilor. Fiecare furnizor are asociat un buton GO care va trimite utilizatorul catre pagina de update.
Updatefurnizor.cfm: va primii id-ul furnizorului de la pagina furnizori.cfm. Informatiile vor fi afisate in browser permitind utilizatorului sa le modifice. La terminarea modificarii se va apasa un alt buton, care va trimite datele mai dearte (de fapt catre acelasi script) pentru a fi modificata baza de date.Din nou scriptul are 2 atributii: afisarea informatiilor ce vor fi modificate si updatare-a efectiva a datelor. Aceste actiuni vor fi realizate in functie de variabilele din sistem.
Modulul de administrare prosuse
Acest modul se va ocupa de administrarea tabelelor Product si Product_Type. Practic este modulul care administreaza stocul depozitului. Acest modul nu poate fi delimitat exact, deoarece pe linga scripturile care realizeaza efectiv managementul stouclui mai exista legaturi si cu scripturile care admistreaza comenzile. Astfel, in momentul in care o comanda estelivrata, o portiune din script are ca atributie modificarea contitatilor din stocul de produse. Pe linga aceste legaturi, modulul permite modificarea informatilor din tabele precum si adaugarea de noi informatii. Scripturile care alcatuiesc acest modul:
product_type.cfm: acest script va afisa tipurile de produse din stoc. Va oferii facilitatea de a adauga o noua categorie de produse in baza de date. Deasemenea permite navigarea rapida in interiorul stocului de produse, prin afisarea produselor din categoriile respective
products.cfm: acest script va afisa produsele din categoria dorita de utilizator. El va primi id-ul tipului de produse dorit si va afisa aceste produse sub forma unor link-uri prin intermediul carora se vor putea afisa produsele respective pentru a fi modificate informatiile. Deasemenea permite adaugarea de noi produse in stoc prin intermediul link-ului Add
detalii.cfm : scriptul primeste id-ul produsului dorit si va afisa detaliile despre respectivul produs. El va permite modificarea acestor informatii, realizind update-ul in baza de date. Pentru o administrare usoara si pentru nu a ingreuna lucrul utilizatorilor se vor putea modifica din browser doar informatiile despre pret si cantitatea aflata in stoc, informatii care se modifica cel mai des la un anumit produs.
Administrarea comenzilor
Acest modul va permite vizualizarea comenzilor aflate in curs de procesare. Deasemenea se vor putea modifica informatiile despre respectivele comenzi. O comanda se poate afla in una din urmatoarele stadii:
comanda noua
comanda livrada dar neplatita
comanda platita dar nelivrata
comanda procesata in totalitate
Obiectul acestui modul il reprezinta doar primele trei categorii, comenzile terminate nefiind foarte interesante pentru utilizatorii de rind, atributiile lor fiind acelea de a rezolva cit mai repede comenzile in curs de procesare. Din acest punct de vedere aplicatia va afisa doar caomenzile aflata in una din cele trei categorii, aratind si stadiul in care se afla comanda respectiva. Utilizatorul ca putea vizualiza atit informatiile despre clientul care a realizat comanda cit si detaliile despre comanda respectiva (prodsele comandate si cantitatea dorita). In mementul in care va dorii livrarea unei comenzi, aplicatia va verifica existenta stocului necesar de produse. In cazul in care acest stoc este suficient va modifica datele din tabela Product. Daca stocul nu este suficient aplicatia va afisa informatii despre produsele care nu pot fi livrate, cantitatea aflata in stoc din aceste produse si cantitatea comandata de client. In acest caz nu se va realiza modificarea datelor in baza de date.
Acest modul este format din scripturile:
comenzi1.cfm: este pagina principala a acestui modul deoarece afiseaza comenzile care trebuiesc procesate, modifica informatiile din baza de date si instiineteaza utilizatorul in cazul in care nu exista cantitati suficiente in stoc. In functie de variabilele pe care le primeste aceasta pagina, ea va realiza actiunile necesare.
order.cfm: permite vizualizarea detaliilor despre comanda. Scriptul va primii id-ul comenzii de la pagina comenzi1.cfm si va afisa informatiile detaliate despre comanda respectiva
customer.cfm: acest script va primii id-ul clientului care a realizat comanda si va afisa informatiile detaliate despre acest client.
Administrarea Angajatilor
Modulul permite vizualizarea si modificarea informatiilor despre angajati. Este alcatuit din doua scripturi:
employee.cfm: aici vor fi afisati toti angajatii, in ordine ierarhica, permititnd astfel accesul rapid la informatii
empliyee_det.cfm: scriptul afiseaza informatiile despre angajati, permitind si modificarea acestor date. El va primii de la scriptul anterior id-ul angajatului. Pentru administrarea usoara vor putea fi modificate datele despre salariul angajatului, ID-ul superiorului, numarul de interior la care raspunde si pozitia ocupata in cadrul companiei.
Modulul de administrare utilizatori
Aici se vor putea modifica datele de logare ale utilizatorilor. In functie de drepturile utilizatorului logat in sistem anumite facilitati vor fii vizibile sau nu. De exemplu doar administratorul site-ului va putea creea noi conturi, va putea vizualiza toti utilizatorii inregistrati si va putea sterge acele conturi. Un utilizatori de rind nu va putea decit sa isi schimbe parola. Scripturile care alcatuiesc acest modul:
conturi.cfm: va afisa datele in functie de drepturile respectivului utilizator. In caul in care utilizatorul logat este administrator el va putea sterge din aceasta pagina conturile.
inregistrare.cfm: este accesibila doar administratorului, permitind creearea unui nou cont
updatecont.cfm: pagina permite schimbarea numelui de cont sau a parolei.
2.4.2 Modulul de interfata cu clientii
Acest modul ofera clientilor posibilitatea de a naviga printre produsele aflate in stoc, de a comanda produsele dorite si de a modifica "cosul de cumparaturi" si de a cauta informatiile dupa criterii prestabilite sau dupa cuvinte cheie. La rindul sau acest modul are mai multe submodule care realizeaza diferite functii:
1. Modulul de afisare a informatiilor: acest modul a fost conceput in scopul cautarii usoare a diferitelor produse si pentru a oferii informatii detaliate despre aceste produse. Deasemenea paginile ofera un link prin care produsul poate fi adaugat in cosul de cumparaturi, facindu-se astfel legatura intre acest modul si cel de administrare si vizualizare a comenzii. Pemrament se pot vizualiza categoriile de produse, precum si link-urile catre cosul de cumparaturi si informatiile de contact. Deasemenea vor fi vizibile permanent criteriile de cautare.
Cum se realizeaza parcurgerea catalogului de produse? In partea stinga vor fi afisate permanent categoriile de prosuse sub forma unor link-uri. Prin apasarea acestora se vor trensmite id-urile respectivelor categorii catre scriptul care va afisa produsele din acea categorie. Si aceste produse sint prezentate ca niste link-uri catre pagina de detalii. Aceasta pagina va primii numele produsului cautat si va afiasa detaiile despre respectivul produs. Fiecare produs va avea asociat un buton care permite adaugarea lui in cosul de cumparturi, buton care face legatura cu modulul de administrare a comenzii. Apasarea acestuia va duce la deschiderea pagii in care va cere cantitatea dorita.
2. Modulul de administrare si vizualizare a comenzii: aici clientul va putea vizualiza in orice moment comanda realizata si va putea modifica cantitatile comandate sau va putea sterge de tot anumite produse din cosul de comanda. Acest modul poate fii accesat prin apasarea link-ului Vizualizare comanda aflat in bara de navigare. Aceasta actiune va duce la deschiderea paginii de vizualizare a comenzii. In dreptul fiecarui produs comandat vor exista butoane care permit cresterea sau scaderea cantitatii comandate cu o unitate precum si stergerea produsului din cosul de cumparaturi. Daca nu s-a comandat nici un produs pina in momentul respectiv, se va afisa doar un text care instiinteaza clientul de acest lucru. Daca se scade cantitatea comandata pina se ajunge la 0, respectivul produs va fii sters automat din cos.
Cind este apasat butonul de adaugare in cos a unui produs, va fii deschisa o fereastra unde se cere introducerea cantitatii dorite din acel produs. In cazul in care se introduce altceva decit un numar natural pozitiv utilizatorul va fii instiintat de acest lucru si va fii nevoit sa introduca din nou informatia ceruta. Clientul va putea comanda o cantitate mai mare decit cea existenta in stoc. Dupa ce a introdus corect cantitatea dorita va apasa butonul ce va introduce cantitatea in stoc.
Cosul de cumparaturi este tinut intr-o variabila sesiune de tip array bidimensional. Aceasta variabila nu va putea fii modificata din browser, ci doar in urma procesarilor realizate de server in functie de actiunile realizate de catre client. Variabila va fii resetata in mementul in care utilizatorul isi va termina comanda, si va apasa butonul respectiv (terminare comanda) sau cind acesta va inchide browser-ul, astfel sesiunea fiind inchisa. Introducerea unui nou produs in cosul de cumparaturi corespunde adaugarii unei noi perechi id produs, cantitate dorita in variabila sesiune.
Cind se doreste terminarea comenzii se va apasa link-ul Terminare comanda din pagina de vizualizare a comenzii. Acest lucru va implica urmatoarele actiuni:
aplicatia va parcurge intregul array pentru a introduce informatiile in cele 2 tabele implicate Orders si Orders_Detail. Deoarece id-ul clientului este tinut intr-o variabila sesiune, acesta nu va fii nevoit sa introduca datele de contact necesare pentru a fii inroduse in tabela Orders. Ele vor fi luate automat de catre aplicatie din tabela Customer. Dupa ce a fost introdusa noua comanda in tabela Orders, se va retine id-ul comenzii, necesar pentru introducerea liniilor de detaliu in cealalta tabela implicata Orders_Detail. Pentru fiecare pereche produs, cantitate dorita aflat in variabila "cos" se va insera o noua inregistrare in tabela Orders_Detail.
dupa terminarea introducerii de informatii in celel doua tabele, aplicatia va redirectiona utilizatorul catre pagina de logare.
3. Modulul de cautare: acest modul permite cautarea informatiilor in functie de criterii prestabilite sau dupa cuvinte cheie. Cautarea dupa cuvinte cheie se realizeaza prin creearea unei colectii in cadrul sererului ColdFusion MX in care vor fii indexate informatiile din mai multe tabele. Serverul permite si indexarea fisierelor, dar in aceasta aplicatie nu a fost cazul pentru asa ceva. Cind utilizatorul va dorii sa caute un anumit cuvint cheie, aplicatia va accesa colectia de indexi. Daca informatia este gasita se vor afisa link-urile catre pagina de detaliu, in cazul fiecarui link fiind oferite informatiile care identifica produsul cautat (sub forma de variabile URL). Deasemenea aplicatia va calcula automat un scor in functie de creiteriile prestbilite cind a fost creeata colectia, datele find afisate in ordinea scorurilor respective.
In cazul cautarii dupa criterii prestabilite se realizeaza o selectie mai complicata in cadrul interogarii bazei de date. Cautarea se poate face dupa numele produsului, culoarea dorita si marimea acestuia. Orice combinatie a acestor cimpuri este permisa (se pot selecta toate cele trei criterii, sau nu se poate selecta nimic, caz in care vori fi afisate toate inregistrarile din tabela Product). In cazul in care nu a fost regasit nici un pordus care sa corespunda criteriului cautat utilizatorul va fii instiintat de acest lucru. Daca au fost gasite produse, acestea for fi afisate sub forma de link-uri catre pagina de detalii, fiecare link avind asociate informatiile de identificare a produsului respectiv (sub forma de variabile URL).
2.4.3 Modulul de autentificare
Serverul ColdFusion MX va procesa inaintea fiecarui script, instructiunile aflata in scriptul Application.cfm. Serverul va cauta in directorul curent acest script, daca nu este gasit va cauta in directorul parinte si tot asa pina ajunge la directorul parinte al site-ului. In cazul in care nu este gasit nici un script Application.cfm, serverul va rula o pagina implicita, dupa care va trece la procesarea instructiunilor di pagina care i-a fost ceruta. Prin aceasta tehnica poate fi implemantata o politica de autentificare in cadrul paginilor, scriptul respectiv, Application.cfm, nefiind accesibil din browser.
In cazul acestei aplicatii modulul de autentificare este reprezentat de trei scripturi Application.cfm care vor autentifica fiecare sectiunea proprie a aplicatiei. La nivel de localizare a scripturilor, fiecare sectiune este reprezentata de un director. Aplicatia are trei sectiuni, acestora corespunzindu-le directoarele:
cea publica care va permite logarea clientilor, a angajatilor si inscrierea: directorul radacina al site-ului
sectoimea disponibila clientrilor: directorul clienti
sectiunea de administrare a bazei de date, disponibila angajatilor: directorul logat
Modul cum se realizeaza autentificarea: fiecare script Aplication.cfm va verifica o variabila sesiune de tip boolean corespunzatoare directoruliu propriu. Daca aceasta variaila nu este true va redirectiona automat aplicatia catre pagina de loghin. Variabila respectiva nu poate fii modificata decit de serverul ColdFusion in urma procesarii scripturilor, nefiind accesibila din browser. Variabila va fii modificata numai in urma introducerii unei perechi corecte de informatii utilizator - parola.
Capitolul 3. Exemplu de rulare
Sa presupunem ca un client doreste sa achizitioneze un anumit produs. In primul rind el va trebuii sa se autentifice in cadrul aplicatiei:
Dupa ce a introdus informatiile de login va apasa butonul Submint. Aplicatia va procesa informatiile si in caz de autentificare corecta va seta variabila logat1 cu TRUE, permitind astfel accesul in sectiunea clientilor. O alta variabila sesiune va tine minte id-ul clientului pentru a putea accesa datele din tabela Customer. Urmatoarea fereastra va fi afisata:
Ea va afisa implicit produsele din categoria bicilcete de competitie. Aceasta este structura de pagina ce va fi afisata permanent in cadrul acestei sectiuni. Ea este alcatuita din trei zone distincte:
zona de sus: zona care nu se modifica pe parcursul navigarii prin site. Ea prezinta logo-ul companiei, bara de butoane si optiunile de cautare
zona din stinga: nici continutul acestei portiuni nu se va modifica pe parcursul navigarii. Aici sint prezentate categoriile de produse.
Zona dinamica: continutul acestei regiuni se va modifica dinamic in functie de actiunile utilizatorului. Aici vor fii afisate detaliile despre produse, produsele dintr-o anumita categorie, rezultatele cautarilor, continutul cosului de cumparaturi s.a.
In continuare sa presupunem ca acest client doreste sa achizitioneze o bicicleta de tim Montain realizata de catre Nicros. Va trebuii sa apese link-ul Mountain din stinga pentru a fii afisate produsele din acea categorie, dupa care link-ul Nicros pentru a vedea toate produsele acetui furnizor
Rezultatul va fii urmatoarea fereastra:
De aici poate sa aleaga oricare produs. Apasind poza reprezentind un cos, asociata produsului dorit va incepe procedura de adaugare a produsului in cosul de cumparaturi, afisindu-i-se pagina in care este ceruta cantitatea dorita:
Dupa ce a introdus cantitatea dorita va apasa butonul Go pentru a termina procedura de adaugare a produsului in cos. Daca nu introduce o informatie corecta (un numar intreg, pozitiv) i se va afisa urmatoarea fereastra, fiind nevoit sa reintroduca cantitatea:
In cazul in care a introdus o valoare corecta, produsul va fii adaugat la cosul de cumparaturi, utilizatorul fiind redirectionati spre pagina implicita, in care ii sint prezentate bicicletele din categoria Competition.
Daca doreste vizualizarea cosului de cumparaturi va apasa link-ul Visualizare comanda din cadrul barei de navigare. Urmatoarea fereastra va fii afisata:
Aici va putea vizualiza continutul cosului de cuparaturi. Ii sint oferite informatii despre numele prosudului comandat, cantitatea ceruta si pretul unei unitati. Deasemenea i se afiseaza pretul total al comenzii. Pentru fiecare produs are la dispozitie trei butoane care permit cresterea cantitatii cu o unitate, scaderea cantitatii cu o unitate sau stergerea produsului din cosul de cumparaturi. Daca scade cantitatea dorita pina la 0, produsul respectiv va fii sters automat din cosul de cumparaturi.
Cind utilizatorul va termina de comandat ceea ce dorea va apasa link-ul Terminare comanda, actiune ce va duce la introducerea informatiilor in baza de date, resetarea variabilei logat1 la valoarea FALSE si redirectionarea catre pagina de autentificare.
In cazul in care doreste sa caute anumite produse are la dispozitie doua posibilitati:
1. sa cautae dupa criteriile prestabilite, fiind acceptata orice combinatie a acestor criterii. Sa presupunem ca doreste sa vada toate produsele cu numele Descent de o anumita dimensiune. Va trebuii sa aleaga la primul criteriu Descent, dupa care la ultimul dimensiunea dorita. Urmatoarea fereastra ii va aparea:
Accesind una din cele doua link-uri vizualizeaza detaliile despre produsul respectiv.
2. Cea de a doua posibilitate este introducerea de cuvinet cheie. Aici este permisa si introducerea de expresii regulate. Dupa introducerea cuvintului ce se doreste cautat se va apasa butonul Go alaturat cimpului unde a fost introdus cumintul. Urmatoarea fereastra va aparea:
Prin accesarea link-ului se vor afisa detaliile despre ceea ce s-a cautat.
Acum sa presupunem ca un angajat va dorii sa acceseze partea de administrare a site-ului. Sin pagina de intrare in site va trebuii sa apese link-ul Login aflat in partea stinga jos. Urmatoarea fereastra ii va aparea
Va trebuii sa introduca o un nume de utilizatori si o parola dupa care sa apese submit. In cazul in care are loc o autentificare corecta, aplicatia va seta variabila sesiune logat cu TRUE aceasta variabila este corespunzatoare sectiunii de administrare), precum si o alata variabila care va tine minte id-ul utilizatorului logat. Urmatoarea fereastra va fii afisata:
In mod implicit sint prezentate comenzile in curs de procesare. Se pot observa butoanele prin care se modifica starea unei anumite comenzi (noua, livarata sau pentru care s-a primit plata). In cazul in care se doreste modifica informatia cu privire la livrarea unei comenzi, se vor realiza o serie de verificari pentru a exista in stoc cantitatile necesare din produsele respective. In cazul in care nu sint disponibile aceste cantitati se va afisa urmatoarea fereastra, in care vor fi oferite informatii despre produsele la care nu exista stocul necesar, cantitatea comandata precum si cantitatea existenta in stoc.
Pein accesarea link-ului cu id-ul comenzii vor fi afisate informatiile despre comanda respectiva:
Accesind link-ul de la nume client vor fi vizualizate informatiile despre clientrul care a realizat respectiva comanda:
Daca se doreste modificarea informatiilor despre angajati si acceseaza link-ul Angajati din bara, afisindu-se fereastra:
Aici sint prezentati toti angajatii in mod ierarhic. Pentru fiecare in parte va aparea o fereastra cu detalii despre el:
Aici se pot modifica datele despre id-ul superiorlui, pozitia ocupata, numarul de interior la care raspunde si salariul anual primit.
In cazul in care se va dorii modificarea informatiilor despre furnizori se va accesa link-ul Furnizori care va afisa lista cu toti furnizorii.. De aici se va trece in pagina in care se vor putea modifica informatiile despre fiecare furnizor in parte:
Pentru administrarea stocului de produse se va accesa link-ul Stoc. Urmatoarea fereastra va aparea:
Se vor putea modifica informatiile despre pretul produsului si cantitatea din stoc. Prin apasarea butonului corespunzator id-ului produsului se va realiza updatarea bazei de date. Daca se doreste alegerea altui produs se procedeaza astfel:
Se apasa link-ul coresunzator categoriei, afisindu-se astfel numele de poroduse din acea categorie. Dupa care se apasa link-ul corespunzator anumitui produs pentru a se modifica datele.
Daca se adauga un nou produs se acceseaza link-ul Add, afisindu-se urmatoarea fereastra:
Aici vor trebuii intorduse datele referitoare la noul produs.
Link-ul Conturi va permite modificarea datelor de logare ale utilizatorilor. Deoarece in mementul rularii pentru demo s-a folosit contul administrator, toate oprtiunile vor putea fii accesate. In alt caz nu ar fi fost vizibil decit contul utilizatorului respectic, putindu-se modifica doar numele utilizatorului si parola.
In afara de contul administrator, toate celelalte conturi pot fii sterse prin accesarea butonului corespunzator acelui cont.
Prin apasarea butonului corespunzator unui utilizator va aparea fereastra in care se modifica datele despre acel utilizator:
Aici se poate modifica numele utilizatorului si parola. Trebuie stiuta parola veche pentru a fii permisa aceasta actiune.
In cazul crearii unui nou cont se afiseaza urmatoarea fereastra:
Link-ul Update index cautare va realiza modificarea indexilor din caoectia de cautare. In urma acestei actiuni aplicatia va realiza updat-area si va revenii la pagina implicita (cea in care sint aratate comenzile in curs de procesare).
Concluzii
In ultimii ani prezenta unei firme pe internet a devenit o chestiune la ordinea zilei, pentru unele din ele fiind chiar o necesitate. Costurile relativ mici (si in continua scadere) au permis chiar si firmelor mici sa aiba site-ul propriu. Dupa realizarea site-ului, in care firma se prezenta si isi descria oferta de produse si servicii, aparea imediat nevoia de a le face publice. Astfel, marketingul a fost rapid extins si adaptat chestiunilor specifice sectorului internet.
Trebuie mentionat ca toate acestea au fost posibile datorita extinderii internetului si in sectorul utilizatorilor (surfer-ilor), fara acestia site-urile pierzandu-si din importanta. Totodata a crescut spectaculos si numarul de calculatoare conectate la internet prin sistemul clasic (dial-up). In aceste conditii lumea virtuala a internetului a devenit o realitate ce tinde chiar sa se substituie metodelor clasice de a afla informatii, de a comunica, de a vinde/cumpara, etc.
In acest sens, aplicatia dezvoltata - constituie o solutie moderna si viabila pentru pentru implementarea unui magazin virtual ,ce are ca obiectiv comercialiarea on-line a produselor sale.
Ca trasaturi definitorii ale aplicatei, se pot mentiona :
Baza de date proiectata si utilizata este una relationala continand 10 tabele, cu o structura complexa si intre care exista legaturi complexe . S-a acordat o atentie deosebita - proiectarii bazei de date , astfel incat organizarea informatiilor sa fie cat mai logica si accesul la date sa se faca intr-um mod optim .
Deasemenea s-a acordat atentie aspectului grafic al aplicatiei , prin folosirea de cod CSS intercalat in cadrul programelor-script si prin folosirea unor aplicatii specifice pentru prelucrareaa grafica a imaginilor utilizate.
Modulul de autentificare al utilizatorilor - ofera prin mecanisme specifice securitatea necesara procesului de comercializare a prodeselor.
Modulul de interfata al aplicatiei - ofera modalitati de acces la informatiile si datele din cadrul site-ului.
1. The macromedia ColdFusion 5 Web Application Construction Kit, Forth Editon, Ben Forta and Nate Weiss
2. programming ColdFusion, O'Reilly, Rob Brooks-Bilson
3. Programarea in Web, Kris Jamsa, Steve Weakley
4. Specificatia de referinta pentru CSS-level1 (pusa la dispozitie la www.w3.org)