Sistemul de Shopping Cart

Sistemul de shopping cart

Cuprins

Introducere

Capitolul 1. Introducere în tehnologiile Web

1.1 WORLD WIDE WEB

1.2 Serverul de Web Apache

1.3 Limbajul PHP (Hypertext Preprocessor)

1.4 Serverul de baze de date MySQL

1.5 Limbajul JavaScript

2. Evoluția comerțului electronic (e-commerce)

2.1 Comerț electronic și electronic business (afaceri electronice)

2.2 Tipurile de comerț electronic

2.3 Dezvoltarea comerțului electronic

3. Modele de business și locul comerțului electronic în acest context

3.1 Aplicarea și integrarea tehnologiilor Internet în procesele de business

3.2 Avantaje/dezavantaje comerț electronic

3.3 Natura internațională a comerțului electronic

3.4 Terminologie:

4. Infrastructura tehnologică pentru comerț electronic

4.1 Software pentru comerț electronic

4.2 Software și Hardware pentu Servere Web

5. Aspecte de securitate în comerțul electronic

5.1. Securitatea în comerțul electronic – canalul de comunicare

5.2 Elemente de bază în criptografia asimetrică (sau cu chei publice)

5.3 Certificate digitale

5.4 Protocolul SSL

Capitolul 6. Descrierea aplicației

6.1 Date generale

6.1.1 Detalii de utilizare și instrumente folosite în dezvoltare

6.1.2 Modulele aplicației

6.1.3 Detalii de implementare

6.2 Functionalități și facilități ale aplicației

6.2.1 Funcționalități și facilități generale (la nivel de site)

6.2 Structurarea bazei de date

6.3 Module ale aplicației

6.3.1 Modulul de administrare al bazei de date

6.3.2 Modulul de frontend

Concluzii

Introducere

Odată cu raspândirea web-ului și atingerea unei mase critice de utilizatori, firmele cu activitate de comerț, analiștii, specialiștii în marketing s-au gândit că merită investit efort în punerea la punct a unor tehnologii care să transforme surferii web în potențiali clienți.

Inițial, siturile web ale acestor firme conțineau doar informații de contact, oferte promoționale sau chiar cataloage de produse sub forma unor pagini HTML statice. Lansarea unei comenzi de cumpărare a unor produse se putea face eventual via fax, telefon sau email. Pentru a putea intra în posesia produselor, clientul trebuia să plătească contravaloarea produselor comandate iar banii să parcurgă drumul de la client la comerciant (vânzător). Plata se făcea de regulă prin mecanismele clasice, către un cont deschis de comerciant la o bancă; presupunea deplasarea clientului la sediul unei instituții cu profil bancar pentru a depune banii și pentru a iniția transferul acestora în contul comerciantului. În funcție de politica adoptată de comerciant pentru a demara procesul de livrare a produselor către client acesta cerea sau nu, confirmarea efectuări plăți prin fax. Fie că se folosea o rețea de distribuție proprie, fie că se apela la un serviciu poștal specializat (postă rapidă, DHL, etc), teoretic această ultimă fază era cea mai lungă.

Exista încă puține situri web de comerț care permit vizualizarea online a cataloagelor de produse și lansarea comenzilor; informația că un anumit comerciant oferă un anumit produs este obținută telefonic și/sau pe baza unei reclame în mass-media.

La fel ca si în comerțul tradițional, natura produsului vîndut va determina alegerea mijloacelor.

Tehnologia "shopping cart" stă la baza oricărui proces de comerț electronic. Cum funcționează această tehnologie și cum influențează natura produsului alegerea aplicației și a opțiunilor incluse? Sistemul de shopping cart este cel care permite să fie expuse imagini ale produselor, descrieri și prețuri. Furnizează, de asemenea, mecanismele prin care consumatorul să aleagă cantitatea de produse pe care dorește să o cumpere, face verificarea și înregistrarea datelor, calculează și afișează valoarea totală a cumpărăturilor, incluzînd și taxele de transport dacă este cazul. Pentru ca tot acest proces să funcționeze corect este necesar ca între toate informațiile introduse în bazele de date, atât de către cel care vinde cât și de către cel care cumpără să existe o concordanță perfectă.

Comerțul electronic este una dintre soluțiile complexe, "integrate" ca să folosim un termen la modă, pe care le oferă tehnologia Internet. Asta înseamnă că o multitudine de aplicații și de furnizori de servicii Internet trebuie să conlucreze într-o sincronizare perfectă pentru ca un site de comerț electronic să poată funcționa.

O definiție succintă și larg acceptată este următoarea: Comerțul electronic (e-commerce, pe scurt EC) este acea manieră de a conduce activitațile de comerț care folosește echipamente electronice pentru a mări aria de acoperire (locul în care se pot afla potențialii clienți) și viteza cu care este livrată informația.

EC oferă oportunitatea de a comercializa produse în întreaga lume, sporind numărul de potențiali clienți în primul rând prin eliminarea barierelor geografice dintre clienți și comercianți. Pentru a înțelege care este rolul și locul comunicațiilor și soluțiilor informatice (IT) într-un astfel de mecanism, să studiem puțin arhitectura unui sistem EC.

Arhitectura unui sistem de comerț electronic.

Pentru a construi un sistem de e-commerce, din punct de vedere arhitectural este nevoie de colaborarea a trei componente (subsisteme electronice/informatice) corespunzătoare urmatoarelor roluri:

(a) Client. Un echipament, clasic un PC, conectat direct (via un ISP) sau indirect (o rețea a unei corporații) la Internet. Cumpărătorul folosește acest echipament pentru a naviga și a face cumpărături.

(b) Comerciant. Sistem informatic (hard & soft), situat de regulă la sediul comerciantului, care gazduiește și actualizează catalogul electronic de produse disponibile a fi comandate on-line pe Internet.

(c) Sistemul tranzacțional. Sistemul informatic (hard & soft) responsabil cu procesarea comenzilor, inițierea plăților, evidența înregistrărilor și a altor aspecte de business implicate în procesul de tranzacționare.

Pe baza acestor trei componente de bază s-au implementat diverse arhitecturi de comerț electronic. Unele combina mai multe componente într-un singur (sub)sistem informatic, pe când altele implementează separat fiecare componentă în parte.

Pentru definirea arhitecturii, proiectanții de sisteme EC fac o proiectare de ansamblu a sistemului pe baza unei selecții a principalelor cerințe/funcții ale unui sistem EC. Detalii cum ar fi, de exemplu, funcția de agregare care permite asamblarea articolelor într-o comandă completă sunt lăsate pe seama proiectării de detaliu. Decizia de a integra această funcție de agregare la nivelul componentei client, comerciant sau tranzacționale se va lua în funcție de cerințele specifice ale fiecărei implementări în parte. Important este însă ca în cazul unui sistem de EC, ca de altfel în cazul oricărui sistem complex, arhitectura să fie clar definită la toate nivelele de detaliu.

Există mai multe opțiuni pentru expunerea produselor și trimiterea comenzilor online. Cea mai obijnuită este pagina simpla HTML (pentru expunerea produselor) și un formular electronic de comandă. Daca aveți un număr mic de produse aceasta este varianta de care aveți nevoie. Dacă numărul de produse pe care intenționați să le vindeți este mai mare și clienții cumpără în mod frecvent un număr mai mare de produse aveți nevoie de un sistem de scripturi mai complex.

Majoritatea furnizorilor de web hosting oferă însă pachete speciale de aplicații pentru comerț electronic – sisteme de shopping cart. Aceste aplicații au o interfață pentru baze de date și utilizează instrumente de programare complexe. Pot genera pagini dinamice pentru expunerea produselor, calcularea prețului și a taxelor (inclusiv a celor de expediere). Furnizează de asemenea rapoarte complete de urmărire a clienților și nenumărate opțiuni de întreținere și actualizare. Anumite componente permit chiar promoții speciale, promoții încrucișate sau personalizarea conținutului în funcție de preferințele clientului. Multe dintre aceste aplicații pot fi utilizate și în site-urile comerciale de tip "Business to Business" (B2B).

Sistemul de shopping cart pe care îl alegeți trebuie să poată furniza mecanismele pentru colectarea informațiilor necesare expedierii produsului și procesării tranzacției (inclusiv facturare, dacă este cazul).

Pentru a asigura succesul pe termen lung al unui proiect de e-commerce, arhitectura acestuia trebuie proiectată cu grijă ținând cont de toate aspectele de business cu care se va confrunta sistemul, lasând totodată portițe care să permită adaptarea sa în timp, pe măsură ce apar noi provocări iar tehnologiile evoluează.

În acest sens, aplicația dezvoltată, vine în sprijinul, celor afirmate mai sus – fiind un sistem complex de shoping chart, implementat prin mai multe module funcționale – care asigură o arhitectură flexibilă și o manipulare – prelucrare facilă a datelor cu care se operează în procesul de e-commerce.

Capitolul 1. Introducere în 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 răspândite pe mii de mațini din Internet, între care există legăturii. În 5 ani a evoluat de la o aplicație pentru transmiterea de date utile pentru fizica energiilor înalte la o aplicație despre care milioane de oameni cred ca este Internetul. Popularitatea sa enormă se datorează faptului că are o interfață grafică plină de culoare, ușor de utilizat de către utilizatori și în același timp oferă o cantitate imensă de informație despre orice subiect posibil.

WEB-ul a apărut din necesitatea de a permite cercetătorilor răspândiți în lume să colaboreze utilizând colecții de rapoarte, planuri, desene, fotografii și alte tipuri de documente aflate într-o continuă modificare. Propunerea inițială pentru crearea unei colecții de documente având legături între ele (WEB) a fost facută de fizicianul Tim Berners-Lee, fizician la CERN, în martie 1989. Primul prototip (bazat pe text) era operațional 18 luni mai tarziu. În decembrie 1991 s-a făcut o demonstrație publică la conferința Hypertext 1991, în San Antonio, Texas. Acțiunea a continuat în anul următor, fiind încununată cu realizarea primei interfețe grafică, Mosaic, în februarie 1993.

Mosaic a fost atât de popular încât un an mai târziu autorul său Mark Andreessen a părăsit 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.

În 1994 CERN și MIT au semnat o înțelegere de a forma consorțiul WORLD WIDE WEB, organizație care are ca obiectiv dezvoltarea WEB-ului, standardizarea protocoalelor și încurajarea interoperabilității între site-uri. De atunci, sute de universități și companii au intrat în consorțiu. MIT coordonează partea Americană a consorțiului, în timp ce centrul de cercetari INRIA coordonează partea europeană. Deși există foarte multe cărți despre WEB, cel mai bun loc pentru găsirea unor informații la zi despre el este (în mod natural) chiar WEB-ul. Pagina consorțiului are adresa htttp://www.w3.org. Cititorii intresați vor gasi acolo legături la pagini care acoperă toate documentele și activitățile consorțiului.

Descriere

Din punct de vedere al utilizatorului, WEB-ul se prezintă ca o colecție imensă de documente raspândite în toată lumea, numite pagini. Fiecare pagină poate să conțină legături (indicatori) la alte pagini, aflate oriunde în lume. Utilizatorii pot să aleagă o legătură (de exemplu prin execuția unui click) care îi va duce la pagina indicată de legatură. Acest proces se poate repeta la nesfârșit, fiind posibil să se traverseze în acest mod sute de pagini legate între ele. Despre paginile care indică spre alte pagini se spune că utilizează hypertext.

Paginile Web sunt vizualizate pe calculatorul client cu ajutorul unui program special numit browser. La început, Web-ul consta numai din pagini de text, fară nici o imagine.

Odată cu apariția primului browser Web grafic în anul 1993, Web-ul a început să se impună cu aware pe WEB.

În 1994 CERN și MIT au semnat o înțelegere de a forma consorțiul WORLD WIDE WEB, organizație care are ca obiectiv dezvoltarea WEB-ului, standardizarea protocoalelor și încurajarea interoperabilității între site-uri. De atunci, sute de universități și companii au intrat în consorțiu. MIT coordonează partea Americană a consorțiului, în timp ce centrul de cercetari INRIA coordonează partea europeană. Deși există foarte multe cărți despre WEB, cel mai bun loc pentru găsirea unor informații la zi despre el este (în mod natural) chiar WEB-ul. Pagina consorțiului are adresa htttp://www.w3.org. Cititorii intresați vor gasi acolo legături la pagini care acoperă toate documentele și activitățile consorțiului.

Descriere

Din punct de vedere al utilizatorului, WEB-ul se prezintă ca o colecție imensă de documente raspândite în toată lumea, numite pagini. Fiecare pagină poate să conțină legături (indicatori) la alte pagini, aflate oriunde în lume. Utilizatorii pot să aleagă o legătură (de exemplu prin execuția unui click) care îi va duce la pagina indicată de legatură. Acest proces se poate repeta la nesfârșit, fiind posibil să se traverseze în acest mod sute de pagini legate între ele. Despre paginile care indică spre alte pagini se spune că utilizează hypertext.

Paginile Web sunt vizualizate pe calculatorul client cu ajutorul unui program special numit browser. La început, Web-ul consta numai din pagini de text, fară nici o imagine.

Odată cu apariția primului browser Web grafic în anul 1993, Web-ul a început să se impună cu adevărat. Nu cu mult timp în urmă, browserul Navigator al firmei Netscape era cel mai popular program de navigare, însă browser-ul Internet Explorer de la Microsoft ocupă în momentul de față mai mult de jumătate din piață.

Programul de navigare aduce pagina cerută, interpretează textul și comenzile de formatare conținute în text și afișează pagina, formatată corespunzător, pe ecran. Majoritatea paginilor de WEB încep cu titlu, conțin informații și se termină cu adresa de poștă electronică a celui care menține pagina. Șirurile de caractere care reprezintă legături la alte pagini se numesc hyperlegături, sunt afișate în mod diferit, fiind subliniate și/sau colorate cu o culoare specială. Pentru a selecta o legătură, utilizatorul va plasa cursorul pe zona respectivă (utilizând mouse-ul sau săgețile de pe tastatură) și comandă selecția (cu ajutorul mouse-ul sau apasând tasta ENTER). Deși există programe de navigare fără interfață grafică, ca de exemplu lynx, ele nu sunt atât de utilizate ca programele de navigare grafice.

Tehnologia folosită de World Wide Web este cea client–server, care presupune urmatoarele etape:

– Un calculator (clientul) formulează o cerere

– Cererea clientului este expediată unui server

– Serverul analizează această cerere, o execută, formulează răspunsul și îl expediază clientului

– Clientul recepționează răspunsul la cererea solicitată

Modelul de comunicare între serverul WEB și clientul care accesează informația este următorul (să zicem că acesează http://www.w3.org/hypertext/WWW/TheProject.html) :

· Programul de navigare determină URL (pe baza selecției)

· Programul de navigare întreabă DNS care este adresa IP pentru mașina care se numește www.w3.org.

· DNS raspunde cu 18.23.0.23

· Programul de navigare realizează conexiunea TCP cu portul 80 al 18.23.0.23

· Trimite o comanda GET /hypertext/WWW/TheProject.html

· Serverul www.w3.org transmite fișierul "TheProject.html"

· Conexiunea TCP este eliberată

· Programul de navigare afișează formatat textul din "TheProject.html"

· Programul de navigare aduce și afișează toate imaginile din "TheProject.html"

HTML si URL

"Limbajul" în care sunt descrise paginile WEB se numește HTML. El este derivat din SGML, și este format din seturi de tag-uri inserate în text, care dau directive asupra modului în care să se formateze textul. În funcție de posibilitățile hard ale sistemului pe care se vizualizează pagina, și de posibilitățile browserului, pagina va fi afișată cu mai multe sau mai puține caracteristici de formatare (un browser în mod text nu va putea folosi fonturi de mărimi diferite). Tagurile sunt texte cuprinse intre '<' și '>'. Textul va trebui să nu conțină aceste caractere, apariția lor trebuind înlocuită cu metacaractere înlocuitoare ("&lt;" și "&gt;") la rândul lui, "&" trebuie și el înlocuit cu metasecvența "&amp;". Și alte caractere se pot specifica prin metasecvențe (de exemplu caractere care nu sunt în setul standard ASCII).

Numele tagurilor nu sunt "case sensitive", doar opțiunile și argumentele pot face distincție în anumite cazuri între literele mari și mici (de exemplu calea într-un URL care se găsește în tagul <a>).

Textul este cuprins între tagurile <html> și </html>. El cuprinde o secțiune de "head" și una de "body". Secțiunea de "head" conține informații despre document care nu se vor afișa în pagină (eventual se va afișa pe bara de titlu a ferestrei browserului). Textul din secțiunea de "body" conține descrierea paginii propriu zise. În cadrul textului caracterul de sfârșit de linie este ignorat, la fel și taburile sau aparițile multiple de spații (se reține numai unul).

URL (Uniform Resource Location) reprezintă o convenție de localizare a unei resurse informaționale. El cuprinde (de la dreapta la stânga) identificarea fișierului referit pe mașina pe care se află, numele mașinii pe care se găsește și modul (protocolul) de accesare a acesteia. De exemplu în URL-ul: http://home.ro/pclaude din exemplu protocolul este http (acces prin portul 80 prin protocolul HTTP), mașina este home.ro iar identificarea paginii este "pclaude" – adică pagina personală a userului pclaude. Serverul HTTP va rezolva acest identificator la calea internă /home/pclaude/public_html/index.html. Se observă că sarcina localizării pe server este sarcina serverului, care cunoaște propriul mod de identificare a resurselor sale publice.

Nu toate fișierele de pe un server WEB pot fi accesate prin HTTP. De obicei paginile publice se afla în directoare speciale, identificarea lor făcându-se cu calea relativă la acel director. Dacă nu se specifică decât calea relativă a unui director, serverul întoarce un fișier cu nume implicit (de obicei numit index.html). Există și alte convenții (de exemplu /~user/ reprezintă directorul rădăcină al informațiilor publice ale userului "user". URL-ul este un caz particular de mai puțin cunoscutul URI (Uniforme Resource Identifier) care identifică unic pe Internet resursele care se pot accesa prin diferite protocoale

Paginile WEB pot conține imagini (tagul <img>), tabele (tagul <table>), etc. În secțiunea de "head" se pot specifica prin tagul "<meta>" informații despre autor, firma de care aparține și chiar informații destinate motoarelor de căutare (descriere, cuvinte cheie, etc).

Server de Web

Serverul web este un calculator care găzduiește un site web și care e capabil să răspundă cererilor de pagini web din partea clienților. Pentru a realiza acest lucru, server-ul trebuie să ruleze o aplicație specială numită httpd (HyperText Transfer Protocol Demon). Ca servere Web, cele mai întâlnite sunt: Apache Server , Microsoft Web Server , Oracle Web Server

În momentul de față se folosesc foarte multe tipuri de calculatoare și sisteme de operare, majoritatea oferind software server Web de bună calitate. Cele mai cunoscute sisteme de operare pentru calculatoare ce deservesc pagini Web sunt UNIX și Microsoft Windows NT/2000.

Unix este folosit de la crearea Web-ului și majoritatea serverelor Web rulează în continuare acest sistem. Windows NT /2000 este mai nou în domeniu, dar și-a câștigat rapid popularitatea. Din punctul de vedere al designer-ului Web, server-ul utilizat pentru livrarea unei pagini este în general irelevant, cu anumite excepții:

• UNIX este dependent de tipul de litera folosit (litera mica sau majuscula), în timp ce Windows NT nu

• UNIX este folosit de mai mult timp și este relativ stabil. Windows NT sufera actualizari majore și de aceea poate avea probleme în acest sens

• Există foarte multe companii care au baze de date Microsoft Access pe care vor să le integreze în site-ul lor, acest lucru putându-se face numai în mediul Windows NT

• Furnizorii de servicii Internet (Internet Service Provider – ISP) percep în general taxe mai reduse pentru servere bazate pe UNIX, pentru că întreținerea sistemului este mai putin costisitoare decât Windows NT.

Între calculatoarele interconectate informația circulă în pachete. Pachetele conțin adresa expeditorului și cea a destinatarului, informația, numele aplicației client care a formulat cererea și numele aplicației de pe server care va primi cererea. Aceste pachete sunt sunt dirijate pentru a ajunge la destinație prin anumite mijloace de dirijare precum Internet Protocol (IP). Reteaua Internet dispune de asemenea și de mijloace de corecție a erorilor de transmitere a pachetelor. Un astfel de mijloc este Transfer Control Protocol (TCP) – Protocolul de Control al Transferului.

Site-urile Web reprezintă o serie de pagini Web care sunt interconectate. Site-urile pot conține legături către alte site-uri, lucru care duce la obținerea unor pânze de informații. Primul document dintr-un site se numește Home Page (pagina de pornire). Ea conține legături către toate celelalte documente.

Site-urile Web sunt publicate prin transferul fișierelor HTML și al fișierelor multimedia asociate pe servere Web. Protocolul de transfer al fișierelor (FTP) este un standard care permite mutarea, redenumirea sau ștergerea fișierelor de pe un calculator la distanță.

1.2 Serverul de Web Apache

Istoric și caracteristici

Unul dintre cele mai utilizate servere de web, Apache Web Server este un efort de a oferi o alternativă viabilă necomercială, în domeniul serverelor de web. Reușita acestui proiect este în mare măsură legată de fenomenele inițiate prin oameni ca Linus sau Stalman, ce au avut ca rezultat produse extraordinare, puternice și eficiente cum ar fi Linux, Emacs precum și toate pachetele software aparute sub licența GNU.

Crearea unui proiect de sine stătător – The Apache Project este rezultatul reunirii unui mare numar de voluntari, comunicând prin intermediul Internet-ului. Aceștia sunt cunoscuți sub numele de Apache Group. În plus, sute de utilizatori din întreaga lume au contribuit la proiect prin cele mai diverse mijloace, de la cod sursa pâna la documentație HTML.

Apache își are originea din ideile și codul aflat în cel mai popular server HTTP al timpului NCSA . În 1995 cel mai performant server de web era practic cel dezvoltat la NCSA , University of Illinois, de catre Rob McCool. În momentul în care acesta a plecat și nu a mai continuat dezvoltarea serverului sau, au început să apară o mulțime de programatori ce produceau versiuni modificate și îmbunatățite ale acestui server. Un grup de asemenea programatori au decis în februarie 1995 să se reunească într-un proiect de dezvoltare și îmbunătățire a serverului inițial. Pornind de la NCSA httpd 1.3 ei au construit, prin adaugarea celor mai bune patch-uri, versiunea Apache 0.6.2 care a fost lansată în aprilie 1995.

Deși NCSA și-a reînceput dezvoltarea serverului în aceeași perioada, Apache a continuat să devină cel mai utilizat server de web din comunitatea unix în următorii doi ani. Acesta a fost implicat mai departe în cele mai multe sisteme UNIX care conțin servere HTTP.

Designul unei noi arhitecturi și rescrierea serverului într-o manieră extrem de modulară și eficientă a dus la o popularitate crescândă serverului. Apache este, din ianuarie 1997, cel mai utilizat server WWW de Internet. Deasemenea Apache a arătat a fi cel mai rapid dintre serverele de tip free.

Serverul oferă desigur majoritatea facilităților găsite în cazul oricarui server de web modern. O îndelungată perioadă de timp acesta chiar a stabilit standardele în domeniu. Astfel, din punct de vedere al securității găsim suport SSL, protecție de tip username/password asupra directoarelor, HTTPS etc.

Server-side includes a fost o inovație a Apache Group. Suportul modular de adăugire a unor noi facilități la server, content handlers, persistent connections, online statistics (incluzând aici chiar și broadcastingul de informație de logging) etc, toate acestea sunt elemente în care Apache a adus elemente mai mult sau mai puțin noi.

Detalii de instalare și configurare

În prezent serverul se prezintă sub forma unui pachet software de tip tar-gzip (există și o versiune pentru Windows NT ) ce conține sursele complete precum și un set de documentație pentru server. Compilarea serverului este extrem de facilă și nu s-a întâlnit nici o platforma uzuală care să aibă vreo problemă la compilare. .

Rezultatul compilării va fi în principal un fișier binar executabil numit în principal httpd, localizat în directorul src/. Se recomandă copierea acestui binar într-un loc mai sigur, eventual crearea unui director bin/ (de exemplu) și copierea în acel director. În unele versiuni mai vechi, calea (path-ul) către locul unde este instalat serverul va trebui inserată în unele fișiere sursa, înainte de compilare. Deoarece acest fapt nu mai este de actualitate nu îl vom comenta însă se recomandă instalarea serverului la o locație destul de comună, de exemplu: in /usr/local/http, /usr/http sau chiar /etc/http/. NU instalați serverul (fișierul binar) în sistemul de fișiere principal. (/usr/bin, /bin, etc.)

După instalarea binarului (vom presupune /usr/http ca director principal de instalare și /usr/http/bin directorul în care se găsește fișierul binar executabil httpd) va trebui configurat serverul prin modificarea unor fișiere de configurare. Acestea se găsesc în acest caz în /usr/http/conf. Ele sunt httpd.conf, access.conf, srm.conf. Fiecare dintre ele stabilesc parametri diferiți pentru serverul de web. Se recomandă citirea documentației de configurare. Nu trebuie modificate direct fișierele de configurare existente în acel director. De obicei numele acestora are o extensie. ?-dist'. (Ex. httpd.conf-dist) . Se copiează acestea în fișiere cu nume fără extensia respectivă (Ex. cp httpd.conf-dist httpd.conf) și abia apoi se va modifica fișierul copie.

Configurarea serverului în cazul cel mai simplu impune doar modificarea, în httpd.conf, a numelui serverului precum și, în toate fișierele, a cailor (path) ce definesc locul de instalare a serverului precum și a documentelor html.

Dupa configurarea serverului se impune pornirea acestuia. Există două moduri de rulare a serverului. Modul implicit și cel mai utilizat de rulare este modul daemon. În mod daemon acesta este pornit și ruleaza în background, activându-se de la sine de mai multe ori, asigurând astfel un bun timp de raspuns la cereri HTTP. Al doilea mod ar fi rularea serverului prin intermediul daemonului inetd. În acest caz, inetd are grijă de interceptarea unei cereri HTTP și pornirea unei copii a unui server de web pentru tratarea acelei cereri. Nu se recomandă acest mod de rulare decât în cazuri speciale.

Pornirea serverului (modul daemon) se rezumă la executarea binarului cu parametrii adecvați (în principal stabilirea căii fișierului primar de configurare httpd.conf) după care acesta va raporta orice erori sau probleme precum și accesele de web în cazul rularii, prin intermediul unor fișiere de log localizate în directorul logs/. În cazul unor erori sau porniri defectuoase se recomandă analizarea fișierului error-log din logs/.

Dupa ce ați pornit serverul există posibilitatea accesării unei documentații complete chiar prin serverul proaspat instalat.

1.3 Limbajul PHP (Hypertext Preprocessor)

Prezentare

PHP (Hypertext Preprocessor) este unul din cele mai populare limbaje de scripting folosite în dezvoltarea site-urilor de comerț electronic, știri online sau a site-urilor cu volume mari de informații. Ajuns la versiunea 5.4, limbajul PHP castigă în popularitate datorită ușurinței de programare, a rapidității codului și a multitudinii de facilități oferite. În prezent, majoritatea site-urilor care includ diverse forme de interacțiune cu utilizatorul se bazează pe PHP. Limbajul PHP este absolut gratuit, oferind facilități de portare pe Windows, Linux și în majoritatea mediilor Unix.

PHP (Hypertext Preprocessor) este un mediu de programare pe server care este folosit pentru crearea paginilor Web interactive și construirea aplicațiilor Web puternice. Principiul de funcționare este foarte simplu: cand serverul Web primește o cerere pentru un fișier PHP, prelucrază scriptul conținut în fișier pentru a crea pagina Web care este trimisă în cod HTML pur către browser. Scripurile scrise în PHP sunt o cale ușoară pentru a crea aplicații Web foarte puternice.Dacă ați dorit vreodată să stocați informația dintr-un formular HTML într-o bază de date, să realizați un catalog de produse sau să oferiți acces într-o zonă a site-ului numai anumitor persoane veți găsi în PHP soluții pentru toate aceste probleme.

Este de notat diferența cu alte limbaje script CGI scrise în limbaje precum Perl sau C: în loc de a scrie un program cu o multitudine de linii de comandă afisate în final într-o pagina HTML, se va scrie o pagină HTML cu codul inclus pentru a realiza o acțiune precisă . Codul PHP este inclus între tag-urile speciale de început și de sfârșit care permit utilizatorului să treacă din "modul HTML" în "modul PHP". Este posibil să se configureze serverul de Web astfel încât acesta să prelucreze (analizeze) toate fișierele HTML ca fișiere PHP. Astfel nu există nici un mijloc de a distinge paginile care sunt produse dinamic de paginile statice.

Față de alte limbaje scriptuale, precum Javascript, la PHP codul se execută pe server, pe când JavaScript este executat pe calculatorul clientului (de navigatorul de Internet).

Scripturile scrise în PHP sunt rulate pe server astfel codul sursă nu poate fi copiat pentru ca la client ajunge numai rezultatul, fără a vedea în nici un fel codul din spatele acestuia. Acest lucru și multitudinea de funcții care sunt înglobate în PHP fac din acesta unul din limbajele cel mai des folosite pentru realizarea aplicațiilor de tip e-commerce, e-business sau e-school. Un alt avantaj care a determinat evoluția rapidă a acestui limbaj de script este documentația foarte bogată care se află pe Internet (manuale,tutoriale,cod sursa).

Utilizarea PHP

Cele mai bune lucruri în folosirea PHP-ului sunt că este foarte simplu pentru un începător, dar oferă o mulțime de facilități avansate pentru un programator profesional.

PHP este în principal axat pe partea de scripting ce ruleaza pe server, deci se poate face orice poate face și un program CGI, cum ar fi colectarea de date de la formulare, generarea de conținut dinamic sau trimitere și primire de cookie-uri. Dar PHP poate face mult mai multe.

Există trei domenii principale unde sunt folosite scripturile PHP:

1) Scripturi ce rulează pe server. Acesta este cel mai tradițional și cel mai important pentru PHP. Sunt necesare trei lucruri pentru a face să meargă. Interpretorul PHP (CGI sau modul de server), un server de web și un navigator de web. E nevoie ca serverul de web să fie pornit, cu o conexiune PHP instalată. Se poate accesa rezultatul programelor PHP cu un navigator prin intermediul serverului de web.

2) Scripting la linia de comandă. Se poate face ca PHP să ruleze fără a fi nevoie de server și de browser, ci doar de interpretorul PHP. Aceasta metodă este ideală pentru scripturile ce se vor a fi executate regulat folosind cron (task scheduler în Windows), sau sarcini simple de procesare a textelor.

3) Scrierea de aplicații ce rulează de partea clientului în mod grafic (GUI). Probabil ca PHP nu este limbajul cel mai bun de a scrie aplicații cu ferestre pentru Windows sau alte sisteme de operare, dar daca se dorește folosirea unor facilități avansate ale PHP-ului în aplicațiile proprii ce rulează de partea clientului se poate totuși folosi PHP-GTK pentru a scrie astfel de programe. Deasemenea există posibilitatea de a scrie aplicații ce rulează pe platforme diferite folosind această metodă. PHP-GTK este o extensie a PHP-ului, nedisponibilă în distribuția principală de PHP.

PHP poate fi folosit pe aproape toate marile sisteme de operare, incluzând Linux, multe variante de Unix (incluzând HP-UX, Solaris și OpenBSD), Microsoft Windows, Mac OS X, RISC OS, probabil și altele. PHP are deasemenea suport pentru majoritatea serverelor de web din prezent. Acestea includ serverele Apache, Microsoft Internet Information Server, Personal Web Server, Netscape și iPlanet, serverul Oreillz Website Pro, Caudium, Xitami, OmniHTTPd, și multe atele. Pentru ca majoritatea serverelor PHP au un modul, iar pentru celelalte suportă standardul CGI, PHP putând sa lucreze ca un procesor CGI.

Deci, cu PHP, există libertatea de a alege un sistem de operare și un server de web. Chiar mai mult, există posibilitatea de a alege programarea procedurală sau programarea orientată obiect, sau chiar amestecarea lor. Cu toate acestea, nu orice facilitate a standardului POO este prezentă în versiunea curentă a PHP-ului, multe librării de cod și aplicații mari (incluzând și librăria PEAR) sunt scrise folosind doar cod POO.

Facilități în PHP

Una dintre cele mai puternice și importante facilități în PHP este suportul său pentru o gamă largă de baze de date. Scrierea une pagini de web ce interacționează cu o bază de date este incredibil de simplă. Sunt suportate o mare varietate de formate de baze de date (dBase, Informix, MySQL, mSQL, Oracle, PostgreSQL, Solid, Sybase, ODBC etc.)

Deasemenea avem o extensie abstractă a bazei de date DBX ce îți permite într-un mod transparent folosirea oricărei baze de date ce suportă această extensie. Mai mult, PHP suporta ODBC, standardul Open Database Connection, deci este posibilă conectarea la orice altă bază de date ce suportă acest standard mondial

Cu PHP nu există limitarea de a scoate rezultat HTML. Posibilitățile PHP-ului includ afișarea de imagine, fișiere PDF și chiar filmulețe Flash (folosind librariile libswf și Ming) toate generate instant. Este posibil deasemeanea ca rezultatul săa fie orice fișier text, cum ar fi XHTML sau orice alte fișiere XML. PHP poate genera automat aceste fișiere și să le salveze în sistemul de fișiere în loc să le afișeze, formând un cache de partea serverului pentru conținutul dinamic.

PHP are deasemeanea suport pentru a conversa cu alte servicii folosind protocoale cum ar fi LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (pe Windows) și multe altele. Se pot deasemenea deschide deasemenea socket-uri de rețea și să se interacționeze între aproape toate limbajele de programare Web. Apropo de interconectare, PHP are suport pentru instanțierea obiectelor Java și utilizarea lor într-un mod transparent ca obiecte PHP. Este posibilă deasemenea folosirea extensiilor CORBA pentru a accesa obiecte aflate la distanță.

PHP are capabilități extrem de folositoare pentru procesarea textului, de la POSIX Extins sau expresii regulare Perl până la parsarea documentelor XML. Pentru parsarea și accesarea documentelor XML, sunt suportate standardele SAX si DOM. Este posibilă în PHP folosirea extensiei XSLT pentru a transforma documentele XML.

Folosind PHP în domeniul comerțului electronic, foarte folositoare pentru programe de plăți online sunt funcțiile de plata Cybercash, CyberMUT, VeriSign Payflow Pro și CCVS.

În cele din urmă, dar nu ultimul rând, există și alte extensii interesante, cum ar fi funcții ale motorului de căutare mnoGoSearch, funcții pentru accesarea IRC-ului, multe utilitare de compresie (gzip, bz2), conversie de calendar, traducere și multe altele.

1.4 Serverul de baze de date MySQL

Scurtă descriere

MySQL este un server de baze de date SQL (Structured Query Language) foarte rapid. O bază de date reprezintă o colecție de date organizate după anumite criterii. Pentru a accesa, adăuga sau procesa date conținute în baza de date este nevoie de un sistem de administrare a bazelor de date precum MySQL.

MySQL este foarte rapid, dar și usor de învățat. În plus, este și gratuit; pachetul MySQL este disponibil la www.mysql.com sub forma unei arhive zip care trebuie despachetată într-un folder, de regulă – C:/MySQL. MySQL a fost dezvoltat pentru a lucra cu baze de date foarte complexe. Conectivitatea, viteza și securitatea îl fac foarte potrivit pentru accesarea bazelor de date în Internet.

Server-ul MySQL poate fi gestionat manual cu urmatoarele linii de comanda:

• mysqld.exe – pornește server-ul

• mysqladmin.exe – oprește server-ul

• mysql.exe – afisează consola MySQL

Server-ul MySQL permite lucrul cu mai mulți utilizatori, existând in mod predefinit utilizatorul:

user: root

password: ""

Comenzi uzuale în MySQL

O bază de date este formată din mai multe tabele, acestea fiind divizate în înregistrări (records), înregistrări ce pot fi considerate liniile tabelului. O linie a unui tabel este împărțită în mai multe câmpuri, care pot stoca diferite tipuri de date.

Gestionarea tabelelor pentru a crea o bază de date la consola MySQL:

create database nume_baza; – creează baza de date

use nume_baza; – comandă folosirea unei anumite baze de date

drop database nume_baza; – șterge o bază de date

show databases; – afișează bazele de date existente pe server

create table nume_tabel; – creează un tabel atunci cand baza de date este deschisă

show tables; – afișează tabelele din baza de date curentă

drop table nume_tabel; – șterge un tabel din baza de date

desc nume_tabel; – arată informații despre structura unui tabel

Primary key este o instrucțiune folosită pentru definirea cheii primare. Aceasta creează un index pe baza coloanei al cărei nume a fost specificat. Această coloană este considerată ca fiind cea mai importantă, des folosită, fiind văzuta drept cheia de sortare a tabelului. Primary key este o coloană de tip AUTO_INCREMENT.

insert into nume_tabel values ("val_1", "val_2",…..); – adaugă date în tabel

select * from nume_tabel; – afisarea datelor dintr-un tabel specificat.

1.5 Limbajul JavaScript

Generalitați

JavaScript este un limbaj de tip script dezvoltat de firma Netscape cu ajutorul căruia putem adăuga foarte ușor efecte spectaculoase paginilor de Web , codul JavaScript introducându-se direct în pagina HTML. Pentru a rula script-uri scrise în JavaScript este necesar un browser de Web capabil să interpreteze cod JavaScript – cum ar fi Netscape Navigator (de la versiunea 2.0 în sus) sau Microsoft Internet Explorer (de la versiunea 3.0 în sus).

Spre doesebire de scripturile CGI, care se execută pe calculatorul gazdă (server), script-urile JavaScript sunt încărcate de pe server pe calculatorul local. Interpretatorul va decodifica instrucțiunile script-urilor și le va executa la momentul potrivit: la încarcarea paginii pe server, la apăsarea unui buton, la miscarea mouse-ului, etc. Script-urile JavaScript fac parte din codul sursa HTML al paginilor Web, dându-le acestora un aspect dinamic, interactiv și mult mai atractiv.

JavaScript este cel mai cunoscut și ca urmare firească, cel mai folosit limbaj pentru crearea de script-uri pe web. Bineînțeles, că este vorba despre un limbaj obiectual și foarte important, multi-platformă – idea de bază este că același cod este sau ar trebui să fie interpretat la fel indiferent de platforma pe care rulează browser-ul.

Spre deosebire de limbajele C++ sau Java care sunt limbaje orientate obiect , JavaScript este un limbaj scriptual bazat pe obiecte – și aceasta deoarece obiectelor JavaScript le lipsesc 3 caracteristici ale teoriei OOP(Object Oriented Programming): moștenirea , încapsularea și abstractizarea. Corporația Netscape Communicațion a definit propriul concept – cunoscut sub numele de JavaScript Object Model – ce conține totalitatea obiectelor , proprietăților, metodelor dar și variabilelor și funcțiilor din universul Netscape . Obiectele Netscape nu trebuie totuși confundate cu cele ale limbajului JavaScript.

JavaScript posedă o serie de obiecte ale sale. Toate obiectele organizează-ierarhizează o serie de date, dar și funcții (metode) care operează asupra acestor date. Aceste obiecte – unele deja existente în JavasScript (predefinite) ,altele create de utilizator explicit – pot fi cuplate, respectiv sunt legate de elementele HTML și dau posibilitatea efectuării diverselor calcule matematice sau a creării diferitelor resurse: text, ferestre , formulare ,cadre , etc.

Pe osătura unui document HTML recurgându-se la facilitățile limbajului JavaScript se pot afișa o serie de ferestre, cadre, casete de dialog, unde să apară tot felul de mesaje, resurse grafice, se pot valida sau chiar evalua expresii în care apar variabile, date numerice, literali.

Evoluția limbajului Javascript

Ca tot ceea ce are legatură cu Web-ul, JavaScript este o tehnologie noua – mai nouă chiar decât însuși limbajul Java. Inițial, JavaScript a fost dezvoltat de Netscape sub denumirea LiveScript, un limbaj de scriptare care intenționa să extindă capacitățile HTML și să ofere o alternativă parțială la utilizarea unui număr mare de scripturi CGI pentru prelucrarea informațiilor din formulare și pentru a adăuga dinamism în paginile utilizatorilor. După lansarea limbajului Java, Netscape a început să lucreze împreuna cu firma Sun pentru a oferi un limbaj de scriptare a cărui sintaxă și semantică erau strâns legate de Java – motiv pentru care denumirea a fost schimbata în JavaScript. Dupa finalizarea limbajului, Netscape și Sun l-au lansat împreună.

Una dintre motivațiile care au stat la baza limbajului JavaScript a fost recunoașterea necesității ca logică și inteligență să existe și pe partea de client, nu doar pe partea de server. Dacă toată logica este pe partea de server, întreaga prelucrare este dirijată la server, chiar și pentru sarcini simple, așa cum este validarea datelor. În fapt, lipsit de suport logic pe parte de utilizator, mediul Web ar intra în arhitectura demodată “de la terminal spre calculatorul gazdă”, care a fost înlocuită de revoluția PC din anii '80. Asigurarea de logică în interiorul browserului îl înzestrează pe client și face ca relația să fie un adevărat sistem client/server.

Java a însemnat un pas în această direcție dar a fost implementat ca auxiliar al HTML în sine și nu se intenționase integrarea sa din punctul de vedere al unui limbaj. Fiind un limbaj strict în privința tipului de date, Java nu este optim ca liant pentru numeroasele tehnologii de care Webmasterii au nevoie în crearea paginilor lor și necesită capacități de programare de nivel redus – ceva ce majoritatea programatorilor HTML preferă să nu exercite exclusiv pentru a oferi logică în spatele elementelor unui formular. Un limbaj de scriptare de nivel ridicat, pe parte de client, părea a fi piesa lipsă din arena instrumentelor de programare pentru Web.

De la lansarea sa, în decembrie 1995, JavaScript și-a atras sprijin din partea principalilor distribuitori din domeniu, printre care Apple, Borland, Sybase, Informix, Oracle, Digital, HP si IBM. A continuat să se dezvolte, obținând recunoaștere nu numai în majoritatea browserelor actuale, ci și în alte aplicații pe care le-au lansat aceste companii, dar și altele.

Situația s-a complicat însă atunci când a intervenit Microsoft. Întelegând importanța scriptării Web, Microsoft a dorit să ofere suport și pentru JavaScript. Când Netscape a preferat să acorde licența de tehnologie companiei Microsoft în loc să o vândă, Redmond a analizat JavaScript, bazându-se pe documentația publică, și a creat propria sa implementare, JScript, care este recunoscută de Microsoft Internet Explorer versiunile 3.0 și ulterioare. JScript 1.0 este aproximativ compatibil cu JavaScript 1.1, care este recunoscut în Netscape Navigator 3.0 si browserele ulterioare. Totusi, numeroasele versiuni JavaScript și diversele bizarerii specifice platformelor de operare le-au dat dureri de cap programatorilor pentru Web, atunci când au încercat să desfășoare situri Web capabile de JavaScript.

Din fericire, Netscape, Microsoft și alți distribuitori au acceptat să predea limbajul unei organizații internaționale de standardizare, ECMA. De atunci, ECMA a finalizat o specificație de limbaj, cunoscutăa ca ECMAScript, pe care o recunosc toți distribuitorii. Deși standardul ECMA este util, atât Netscape cât și Microsoft au propriile lor implementări ale limbajului (JavaScript si JScript) și continua să extindă limbajul dincolo de standardul de bază.

Pe lânga JScript, Microsoft are propriul său concurent pentru JavaScript, numit VBScript, realizat pentru a ușura pătrunderea pe Web a actualilor programatori VB. În esență, VBScript este un subset al limbajului Visual Basic. Deoarece Netscape nu recunoaște VBScript, principalele sale utilizări sunt pentru intraneturile (sau siturile Internet) unde se înregistreazăa o abundență de utilizatori de Microsoft Internet Explorer.

Chiar ținând seama de VBScript, JavaScript a devenit cunoscut ca limbajul de scriptare standard pentru Web. Întrucât distribuitorii produc instrumente de dezvoltare Web care necesită un limbaj de scriptare, JavaScript este frecvent folosit în acest scop; astfel, Netscape folosește limbajul cunoscut ca Server-Side JavaScript (SSJS) pe parte de server.

Desigur, Microsoft nu a rămas în urmă și, când a emis tehnologia Active Server Pages (ASP), ea includea și recunoașterea motorului JScript.

Java si JavaScript

Una dintre cele mai întâlnite întrebări referitoare la Javascript este legată de "gradul de rudenie" cu limbajul Java. Afinitățile între cele doua limbaje se recunosc la nivelul sintaxei, al structurilor de control și într-o anumită măsură, la securitate (nu este permisă, spre exemplu, citirea fișierelor de pe calculatorul-client). În rest, Java este un limbaj mult mai polivalent(ca majoritatea limbajelor orientate-obiect). Diferențe există inclusiv în legatură cu rularea codului .

Limbajul JavaScript a fost făcut de către firma Netscape. Spre deosebire de Java, care este un limbaj compilat (programele sunt compilate pe server și executate apoi local pe calculatorul client), JavaScript este un limbaj interpretat (interpretarea limbajului se execută de către browsere, care au încorporate un interpretător ce analizează instrucțiunile JavaScript și le execută pe calculatorul client). Limbajele interpretate sunt mai simple decât cele compilate și mai usor de învățat. Ca atare, modificarea și depanarea este mult mai ușor de realizat pentru că nu mai este nevoie de compilare de fiecare dată.

După cum s-a specificat mai înainte, script-urile JavaScript sunt încărcate de pe server pe calculatorul local. Interpretatorul va decoda instrucțiunile script-urilor și le va executa la momentul potrivit: la încărcarea paginii pe server, la apăsarea unui buton, la mișcarea mouse-ului, etc. ( deci mai general la producerea unui eveniment ) .Script-urile JavaScript fac parte din codul sursa HTML al paginilor Web, dându-le acestora un aspect dinamic, interactiv și mult mai atractiv. Acest lucru însă are un mare neajuns: aceste script-uri pot fi copiate, modificate și reutilizate. În cazul applet-urilor Java nu apare această problemă, întrucât codul sursă al acestora nu este transferat de pe server pe calculatorul client. Ambele limbaje creează aplicații independente de platforma pe care se execută. Programele Java sunt executate de mașina virtuală Java iar script-urile de către interpretator, ambele fiind incluse în navigator.

În timp ce Java este un limbaj complex, orientat obiect, JavaScript este un limbaj mai puțin robust; are foarte multe asemănări cu Java, însă sintaxa este mai simplă, iar regulile mai puțin complexe. Chiar daca Java și JavaScript au o sintaxă asemănătoare, aceste limbaje sunt folosite în scopuri diferite. Se poate mai degrabă spune ca sunt complementare decât concurente.

* Caracteristici ale limbajului JavaScript

Meritul principal al JavaScript este că pune la dispoziția creatorilor de pagini web o metoda excelentă de "a dinamiza" paginile create. Și aceasta fără a apela la programarea pe partea de server (server-side programming). Fără a înlocui acest gen de programare menționat, script-urile pot rezolva o serie de probleme (e drept, nu foarte complexe; cu toate aceste complexitatea e relativă, depinzând de abilitățile programatorului) cum ar fi validarea unui câmp dintr-o formă sau afișarea unui mesaj după un click pe un buton (în general, programarea evenimentelor). Iar avantajul integrării complete în paginile HTML a căpătat o nouă dimensiune acum cu explozia interfețelor HTML .

JavaScript este "case sensitive", adică se face discriminarea între literele mari și cele mici întâlnite în numele identificatorilor (nume de variabile, funcții, obiecte etc.).

JavaScript e un limbaj slab-tipizat în comparație cu Pascal, C++ sau Java. Astfel tipul unei variabile nu este determinat în momentul creării variabilei, iar pe parcursul execuției programului se poate schimba în funcție de context. Acest fapt poate fi un avantaj, în sensul unei libertăți în conceperea programului, dar și un dezavantaj legat de ambiguitatea ce poate să apară, codul fiind mai greu de înțeles. Totuși, dacă la un moment dat, doriți să aflați tipul unei variabile aveți la dispoziție operatorul typeOf. Prin aplicarea lui se obține un string ce conține tipul variabilei (inclusiv undefined sau object, pe lângă tipurile standard).

Raportat la variabile, există așa-numita facilitate de "type-casting" (convertire automată a tipului). În acest caz, în funcție de context, tipul variabilelor se modifică automat. În JavaScript casting-ul este parțial. Astfel o variabilă numerică se convertește automat la string, însă reciproca nu este valabilă. De aceea, în multe script-uri veți întâlni funcția parseInt care convertește, în măsură posibilului, unui string în număr.

Există o valoare specială în JavaScipt și anume null. Adică, după cum îi spune și numele, nimic. Există diverse situații când o veîi întâlni cum ar fi folosirea de variabile nedefinite dar și unele rezultate de funcții. Null nu este același lucru cu șirul vid (''), de pildă. De aceea, uneori trebuie să fie testate cu grijă anumite rezultate etc.

JavaScript permite folosirea expresiilor condiționale (existente, de atfel, și în alte limbaje de programare), ce se pot dovedi foarte utile. Exemplu: isNS = (document.layers) ? 1 : 0;

Dacă browserul recunoaște această colecție de obiecte (specifică Netscape Navigator) atunci expresia se evalueazaă true și variabila noastră va lua valoarea 1, altfel 0. Aceasta este o metodă extrem de simplă de a identifica un browser. Pentru Internet Explorer: isIE = (document.all) ? 1 : 0.

Cuvântul cheie this se poate dovedi extrem de util, căci întotdeauna se referă la obiectul curent. Cred ca puteți intui și acum cât de important e să puteți folosi o expresie de genul self.Proprietate pentru a accesa proprietatea obiectului curent (mă rog, formularea suportă critici), fără a ști care obiect este efectiv. Data fiind caracteristică multi-platforma a JavaScript este important să dispunem de funcții care să asigure compatibilitatea în diverse situații. Două asemenea funcții complementare sunt escape și unescape. Șirul de caractere primit ca argumet este convert la codificarea standard ISO Latin-1 și invers. Este necesară mai ales în cazul cookie-urilor pentru a converti caractere depinzând de setul de caractere (dependent, la rândul său, de platforma).

Macrosubstituția este o facilitate puternică a unor limbaje de programare (din fericire, întâlnită și la JavaScript). Poate ca în acest caz e vorba de o mini-implementare a unei asemenea facilități (prin funcția eval), însă este foarte utilă. Astfel eval execută string-ul primit ca argument ca și cum ar fi o linie de cod JavaScript: eval('alert(strA)') va genera o fereastră (prompt window) care va afișa valoarea string-ului strA. Utilitatea este dată și de incompatibilitațile dintre browsere la nivelul referirii obiectelor suportate. În acest caz eval() ne ajută în scrierea unui cod elegant.

Toate variabilele și obiectele sunt distruse la reîncarcarea paginii web sau la încarcarea unei pagini noi. Singura solușie în acest caz (pentru crearea unei aplicații mai complexe) rămâne folosirea frame-urilor și, în speță, a unui frame ce nu îăi reîncarcă conținutul.

2. Evoluția comerțului electronic (e-commerce)

2.1 Comerț electronic și electronic business (afaceri electronice)

Pentru foarte mulți, termenul comerț electronic înseamnă sa efectuezi cumpărături online, în World Wide Web. Însa, comerțul electronic (electronic commerce sau e-commerce) este mai mult decât procesul de vânzare/cumpărare de servicii și produse peste rețele de comunicații, în particular Internet. Ele includ numeroase alte activități, cum ar fi: negocieri și schimburi efectuate între instituții / companii, protocoale interne ale companiilor pe care acestea le desfășoară ca suport pentru activitățile de cumpărare/ aprovizionare, planificare, angajări, vânzare etc. Uneori se folosește termenul de afaceri electronice (electronic business sau e-business) pentru a constitui comerțul electronic văzut în acest sens larg. Cei doi termeni se folosesc interșanjabil. Convenim să întrebuințăm termenul comerț electronic în sensul său larg, pentru a supranumi toate activitățile de business (afaceri) care folosesc tehnologii Internet (rețeaua Internet, World Wide Web-ul, transmisii wireless pentru telefoane mobile etc).

Definiție: e-business = “dezvoltarea proceselor cheie de afaceri indusă de întrebuințarea tehnologiilor Internet” (IBM).

Definiție: e-business = folosirea noilor tehnologii, în particular cele Internet și Web, pentru a înlesni/sprijini persoanele fizice, companiile și alte organizații să evolueze în afaceri mai eficient.

2.2 Tipurile de comerț electronic

O clasificare obișnuită se face după tipurile de entități care asista în tranzacții sau procese de business. Cele cinci clase generale de comerț electronic sunt: business-to-consumer, business-to- business, procese de business, consumer-to-consumer și business-to-government. Cele mai obișnuite trei dintre acestea sunt:

Achiziționare de produse și servicii, facută de către clienți pe Web, cunoscută ca business-to-consumer (B2C);

Afaceri efectuate între companii pe Web, denumită business-to-business (B2B);

Afaceri și procese de business în care companiile, guvernele și alte organizații utilizează tehnologii Internet pentru a sprijini activitățile de vânzare/cumpărare (procese de business).

Exemplu: o companie care produce soundbar-uri. Firma X:

vinde produsele finite pe Web B2C

achiziționează materialele din care se fabrică soundbar-urile de la alte firme, pe Web B2B

execută alte activități pentru a converti materialele procurate în boxe: gestiune resurse umane, închirieri/cumpărări de spații de lucru și stocare, menținerea unor registre contabile, dezvoltarea de campanii publicitare etc. Multe din aceste tranzacții și activități de business se desfășoară pe Internet/Web – aceste procese de producție, activități de comunicare și control sunt denumite procese de business de bază sau suport în comerțul electronic.

O reprezentare a dimensiunilor relative ale acestor componente ale comerțului electronic, ca și volum valoric și număr de tranzacții:

Alte două tipurii de comerț electronic:

persoane fizice care cumpără și vând bunuri între ei (licitații pe Web între persoane fizice) – C2C. Se poate include în categoria B2C.

tranzacții ale companiilor cu agenții guvernamentale, ca de exemplu plata taxelor sau completarea unor formulare; portalul CAL-Buy permite companiilor să facă tranzacții online cu statul California – B2G. Se poate include în categoria B2B.

2.3 Dezvoltarea comerțului electronic

De-a lungul timpului, cei angajați în activități de comerț au adoptat noile tehnologii și unelte, pe măsură ce acestea au devenit disponibile, și care au schimbat modul în care se făcea comerțul. Internetul a schimbat modul în care se vând, cumpără, angajează și organizează activitățile de business mai repede și mai profund decât orice altă tehnologie.

Forme timpurii de comerț electronic, anterioare dezvoltării Internetului:

Electronic Funds Transfer (transferuri electronice de fonduri) – efectuate de peste 30 ani între bănci; sunt transmisii electronice de informații despre transferuri între conturi, peste rețele private de comunicații.

Electronic Data Interchange sau EDI – constau în transmiterea, între companii, de date în format electronic, conforme cu un format standard, despre: facturi, ordine de plată etc. Fiecare astfel de categorie de documente conține relativ aceleași date, permițând crearea unor standarde și “mutarea” lor în format electronic. Inițial EDI se făceau pe linii închiriate sau folosind serviciile unor firme care ofereau conexiuni si servicii de transmisie celor angajați în EDI (VAN – Value Added Network). EDI diminuează/elimină cheltuielile pe care le presupun completarea formularelor respective, listarea, expedierea, re-introducerea în sistemele informatice la destinatar; totodată, se elimină și erorile frecvente rezultate din introducerea repetată a datelor.

Etape (valuri) în dezvoltarea comerțului electronic:

o primă etapă caracterizată de o creștere masivă (dublare sau triplare valorică anuală), 1997-2000;

o “cădere” 2000-2003, când au dispărut, sau au fost înghițite, multe dintre companiile care au pornit în primul val afaceri legate de Internet;

un nou val de creștere, dar mai stabilă și la o rată mai mică, începând cu 2003.

Există multe diferențe între caracteristicile primului și ale celui de-al doilea val, la nivel de: caracter internațional, finanțare, tehnologii de conectare la Internet ale participanților în activități de comerț electronic. Câteva dintre ele:

Se preconizează mai multe valuri în dezvoltarea comerțului electronic, similar cu revoluția industrială.

3. Modele de business și locul comerțului electronic în acest context

3.1 Aplicarea și integrarea tehnologiilor Internet în procesele de business

Experiența primului val în comerțul electronic a demonstrat că fiecare companie trebuie să identifice între activitățile și procesele sale de business pe acelea care pot fi îmbunătățite, eficientizate, sau înlocuite folosind noile tehnologii.

Exemple: unele companii au creat noi produse și servicii, altele au îmbunătățit promovarea, marketingul sau livrarea unora existente; identificarea unor noi clienți; îmbunătățirea operării finanțelor lor, a gestiunii resurselor umane.

Diferă de la caz la caz locul unde se poate integra comerțul electronic în activitățile de business ale companiilor.

Exemplu: nu toate produsele pot fi comercializate online. Există unele produse care se pretează la vânzare online, anume cele care corespund din punct de vedere al mai multor caracteristici:

produsele de primă necesitate, ale căror caracteristici sunt bine cunoscute și standardizate, și care sunt greu de diferențiat de alte produse similare furnizate de alți vânzători: săpun, computere, bilete de avion, cărți, CD-uri etc. Prin contrast, alte produse nu sunt adecvate acestui gen de vânzare: bijuterii antice, haine high-fashion etc.

produse care au un adecvat (profil de expediere = colecție de atribute ale produselor care condiționează cât de ușor poate fi împachetat și livrat produsul. De obicei e favorabil un raport mare valoare/(dimensiune și greutate); există și excepții (bijuterii).

produsele dintr-un brand puternic, deoarece reputația brandului reduce preocuparea cumpărătorului referitor la calitatea produsului cumpărat fără a-l analiza fizic în prealabil.

(Exemplu negativ, Pets.com – comerțul online în domeniu oferea prea puține avantaje față de cel tradițional. Produsele cele mai vândute prezentau un raport valoare-greutate prea mic => cheltuielile de expediere depășeau încasările).

3.2 Avantaje/dezavantaje comerț electronic

Avantaje:

Pentru firmele care participă în comerț electronic, avantajele se pot rezuma pe scurt într-o frază : ”comerțul electronic poate cauza creșterea vânzărilor și micșorarea costurilor”.

Câteva oportunități în comerțul electronic pentru vânzător:

Publicitatea online poate atinge publicul țintă de oriunde, chiar și pentru firme mici, și cu costuri reduse.

Comunitățile virtuale care se creează pe Web sunt piețe țintă ideale pentru anumite tipuri speciale de produse și servicii.

Și pentru cumpărător, comerțul electronic aduce oportunități legate de cumpărare:

Identificarea de furnizori și parteneri de afaceri, pentru firme.

Negocierea facilă de prețuri și termene de livrare.

Creșterea vitezei și acurateții cu care companiile schimbă informații duce la reducerea costurilor de ambele părți ale tranzacției.

Acces la o sferă mai largă de alternative, produse și servicii, de la diverși furnizori, față de comerțul tradițional.

Distribuirea online pentru produse digitale

Lucrul la distanță (telecommute)

Accesul la produse/servicii din zone aflate la distanță; exemplu: învățământ la distanță.

Dezavantaje:

Unele procese de business, inclusiv vânzarea și livrarea anumitor produse/servicii, nu vor putea fi niciodată transferate online cu succes. De exemplu: produse alimentare perisabile, bijuterii unicat, alte produse imposibil de inspectat la distanță, indiferent de tehnologiile curente sau viitoare.

Unele produse/servicii necesită o masă critică de cumpărători potențiali din Internet, pentru a realiza profit.

Dificultatea integrării bazelor de date și a software-ului de procesare a tranzacțiilor tradițional cu software pentru comerț electronic. Aceste servicii de integrare pot fi extrem de costisitoare.

Pe lângă problemele tehnologice și legate de software, există obstacole și:

de natură culturală și legală, derivate din natura internațională a comerțului electronic;

legate de securitatea comerțului și plăților electronice;

legate de asigurarea secretului datelor individuale (ce tranzacții efectuează, ce site-uri vizitează, ce preocupări are fiecare persoană etc).

3.3 Natura internațională a comerțului electronic

Deoarece Internetul este o rețea globală, orice companie care se angajează în comerț electronic devine o afacere internațională. Problemele cheie pe care la întâmpină orice companie care desfășoară activități de comerț internațional apar la capitolele: încrederea clienților, cultură, limbă, infrastructură.

Încredere: vizitatorii site-ului unei companii care oferă comerț electronic nu vor deveni clienți decât în măsura în care au încredere în compania care e în spatele acelui site (identificare!).

Limba: traduceri automate vs traducător uman.

Cultură (combinația limbă + obiceiuri): Wine.com, General Motors ‘nova’, “OK” sign.

Autorități/guvernare: există diverse forme de control care pot limita dezvoltarea comerțului electronic. Exemplu: țări din Orientul Mijlociu, Africa de Nord (materiale cu conținut sexual sau care contravin viziunii tradiționale asupra rolului femeii în acele societăți), China (accesul cetățenilor la informație externă).

Infrastructură: pentru livrare internațională, plăți, taxe vamale etc.

3.4 Terminologie:

Activitate = o sarcină (task) efectuată de un lucrător ca parte din activitatea sa.

Tranzacție = un schimb (exchange) al unei valori: o cumpărare, o vânzare, o conversie a unor materiale brute în produs finit. O tranzacție are întotdeauna asociate activități; a activitate poate să nu fie asociată nici unei tranzacții

Proces de business = grup de activități și tranzacții secvențiale, logic relaționate. (Exemplu: procesul de expediere a bunurilor către clienți format din mai multe activități sau tranzacții, inspectarea bunurilor, împachetarea, negocierea cu o companie pentru distribuirea produselor, etc).

Model de business = un set de procese care se combină pentru a produce un profit.

Model de venit = un set de procese folosite pentru identificarea clienților, pentru a face marketing acestora, și a genera vânzări către acești clienți.

4. Infrastructura tehnologică pentru comerț electronic

La aducerea/transpunerea online a unei afaceri trebuie luate decizii legate de aspectele de infrastructură tehnologică, respectiv tehnologiile hardware și software care se vor folosi.

Dimensiunea și obiectivele sistemelor (site-urilor) de comerț electronic variază mult – la fel și tehnologiile software și hardware folosite la construirea acelor sisteme. Sistemul de comerț electronic implementat trebuie, în final, să fie capabil să gestioneze toate acele procese de business ale companiei care s-a decis să fie transpuse online. Deciziile relativ la soluțiile software și hardware se eau în raport cu aceste necesități constatate.

La o extremă se găsesc soluțiile puțin costisitoare: site-uri Web de vânzare cu amănuntul a unor produse/servicii, găzduite extern. La cealaltă extremă sunt soluțiile extrem de costisitoare: suite de software sofisticat de comerț electronic și arhitecturi hardware puternice, dezvoltate și gestionate în interiorul companiei. Tipul de software pentru comerț electronic și hardware-ul folosit depind de mai mulți factori, cel mai important fiind dimensiunea așteptată al afacerii, trafic și vânzări.

În cazurile cele mai complexe, o companie va avea nevoie de un sistem integrat care să realizeze: procesarea online a tranzacțiilor (vânzări), a plăților, monitorizarea inventarului, contabilitate, păstrarea altor informații rezultate din procese interne ale companiei etc. Se disting în acest sistem subpărți ale sale:

Sisteme front-end = acele aspecte ale afacerii cu care clienții interfațează și asupra cărora aceștia pot exercita un anumit control: site-ul Web și alte elemente pe care clienții le pot utiliza pentru informare și pentru a achiziționa produse și servicii (ex, servicii Web).

Sisteme back-end = acele aspecte ale afacerii care nu sunt direct accesate de clienți: gestiunea contabilă, a producției, al inventarului, a distribuției, urmărirea comenzilor, suport clienți etc.

Sistemele front-end e probabil să partajeze cu cele back-end o porțiune semnificativă din datele companiei: de exemplu prețuri, disponibilitatea produselor.

Sisteme front-end și back-end

În plus, eficiența multora dintre procesele de business ale companiei depinde de integrarea reușită a celor două tipuri de sisteme: de exemplu, autentificarea și autorizarea plăților cu cărți de credit, informații referitoare la comenzi în scopul onorării acestora necesită circularea datelor între sistemele front-end și cele back-end sau chiar în afara respectivului sistem de comerț electronic, către furnizori și transporatori de pildă. Această integrare e importantă pentru companiile marii și ale căror vânzări se realizează, într-un procent semnificativ, online (Amazon, Dell, Cisco).

Exemplu de procesare online a unei tranzacții

4.1 Software pentru comerț electronic

În funcție de ce sarcinii trebuie să îndeplinească soluția de comerț electronic care se dezvoltă, se pot folosi / e necesar să se folosească mai multe categorii de sisteme software de gestiune pentru comerțul electronic:

Storefront Software

În cazul în care compania pentru care se dezvoltă soluția de comerț electronic face vânzare cu amănuntul a unor produse/servicii (e-retailer), atunci , este nevoie să fie construit și menținut un magazin online. Produsele software de tip storefront sunt unelte care pot fi folosite pentru crearea unui astfel de magazin online. Soluțiile storefront trebuie să ofere, cel puțin:

prezentarea unui catalog cu produsele și/sau serviciile disponibile (catalog display);

funcționalități coș de cumpărături (shopping cart capabilities);

procesarea tranzacțiilor (transaction processing).

(Soluțiile storefront realizează de fapt construirea și menținerea paginilor Web și a bazelor de date, care să implementeze și să suporte aceste funcționalități!)

Catalog de produse = organizarea și prezentarea bunurilor și serviciilor care se vând.

Software coș de cumpărături = gestionează cumpărăturile clienților, stocând temporar informații despre produsele selectate pentru cumpărare; apoi tratează procesul complex de check-out, care include în general calculul costului livrării, taxelor, autorizarea folosirii cărții de credit, procesarea plății. Uneori procesul de check-out e considerat separat, sub numele de procesare a tranzacției.

Software storefront: GoEcart, Yahoo ! Small Business etc.

Exemplu: PDG Software – compania vinde, printre altele, software de tip shopping cart. În principal, vânzarea se face nu direct clienților care-l folosesc în sistemul lor de comerț electronic, ci unor firme care dezvoltă soluții Web de comerț electronic, pe care le vând altor companii. Produsul software respectiv prezintă vulnerabilități, permițând să se acceseze fișiere unde erau stocate date referitoare la carduri, dar și site-urile care foloseau acest software. Accesul intruder-ului a fost mai rapid decât contactarea de PDG a firmelor care foloseau software-ul respectiv, fără a avea cunoștință că este înglobat în soluția lor de comerț electronic.

Web Services

Sisteme software modulare, de sine stătătoare, care pot interacționa pentru a furniza anumite funcționalități, peste o rețea, în speță în Internet.

În mod comun, termenul se referă la acele servicii cu care comunicarea se realizează în format în XML și au interfețele descrise în format WSDL. Specificații:

.SOAP: protocol pentru transmiterea mesajelor bazate pe XML, încapsulat HTTP

.WSDL: format XML pentru descrierea interfețelor serviciilor

.UDDI: protocol de publicare și descoperire de metadata despre servicii Web.

(Integrare cu) sistemele Enterprise Resource Planning

Multe dintre site-urile Web, B2B dar nu numai, este necesar să fie capabile să interacționeze cu sistemele informatice care funcționează în intraneturile companiilor respective, ca de exemplu software-uri de tip ERP (Enterprise Resource Planning).

Pachetele software ERP sunt sisteme care integrează toate fațetele unei afaceri, inclusiv logistică, planificarea producției, producție, marketing, gestiunea proiectelor, resurse umane, contabilitate, finanțe, vânzări. Furnizorii de top de sisteme ERP sunt Oracle și SAP.

Content Management Systems (CMS)

Sunt sisteme folosite pentru gestiunea (stocarea, editarea, versiuni, auditarea, programarea – timeline, publicarea) unor colecții mari și dinamice de materiale Web, de exemplu: articole cu știri, manuale de operare, manuale tehnice, cataloage, etc. Funcționalități:

Creare de template-uri (vizuale) care pot fi apoi aplicate automat unui conținut nou sau existent, asigurând o prezentare unitară întregului conținut al unui site.

Conținutul devine ușor editabil, fiind separat de prezentare; CMS furnizează unelte de editare WYSIWYG în acest sens.

Posibilitatea de a instala module sau plug-in-uri care extind funcționalitatea site-ului.

Gestiunea fluxului documentelor; se pot crea secvențe de task-uri care trebuie îndeplinite, de exemplu, un document nu va fi publicat imediat ce a fost creat de o persoană, ci trebuie întâi corectat și apoi aprobat pentru publicare.

Gestiunea documentelor, de la momentul creării, revizii, publicare, arhivare, distrugere.

(de exemplu in contextul unui site Web pentru un ziar)

Producători: Eprise, OpenText Corporation, Vignette, PaperThin

Knowledge Management (KM) Systems

Deși CMS au realizat “mutarea”datelor de pe hârtie în format electronic, reducând costurile, aceste sisteme ajută doar la organizarea documentelor care conțin informații/cunoștințe, nu a cunoștințelor în sine. Sistemele KM permit “citirea” unor documente în format electronic, și includ motoare de căutare puternice care permit apoi utilizatorilor regăsirea conținutului, experților umani, sau a altor resurse care pot să le fie utile.

Producători: IBM Lotus Discovery Server, Microsoft SharePoint Technologies

Customer Relationships Management (CRM)

Aplicațiile CRM prelucrează date acumulate despre clienți (referitoare la cumpărări, rezultalele unor campanii de marketing și activitatea lor pe site-ul companiei) și folosesc această informație pentru, armonizarea/asortarea nevoile și preferințele acestora cu produsele și serviciile.

De exemplu, prin învățarea anumitor șabloane și comportamente, clienții pot fi de exemplu anunțați privind disponibilitatea unor produse și servicii de interes pentru ei. Efectul poate fi creșterea vânzărilor, păstrarea clienților, reducerea costurilor pentru a găsi noi clienți.

Producători: Oracle CRM, MySAP CRM, Salesforce

Supply Chain Management Systems (SCM)

Software care asistă companiile în coordonarea planificării și operațiilor cu partenerii.

Sisteme de comerț electronic pentu companii vs software pentru comerț electronic:

Companii mici – site-uri Web (care includ funcționalități storefront, eventual capabilități data mining), care nu sunt coordonate (complet) cu celelalte activități ale companiei.

Companii mijlocii – site-uri Web, în plus integrare cu bd de produse și tranzacții, cu sistemele ERP, software CMS. (Microsoft Commerce Server 2002, IBM WebSphere Commerce Professional Edition).

Companii marii – suportă volume de tranzacții mult mai marii, B2C și B2B, integrare cu o largă varietate de sisteme existente ale companiei și exterioare, software CRM, CMS, KM. (Oracle E-Business Suite, IBM WebSphere Commerce Business Edition – enterprise-class e.c. software).

Exemplu: în cazul unui sistem pentru companii mijlocii, administratorul va trebui să verifice manual nivelul inventarului și să plaseze explicit ordine pentru produsele / materialele necesare; în cazul sistemelor enterprise-class e.c., aceste operații se fac automat.

4.2 Software și Hardware pentu Servere Web

Ne referim la tehnologiile de bază care permit dezvoltarea unui site Web pentru un sistem de comerț electronic al unei companii: hardware, sisteme de operare, servere Web. Acestea sunt componente esențiale ale sistemului de comerț electronic, alături de: sistemele de bd, de procesare a plăților etc.

Tipuri de site-uri Web:

De dezvoltare – pentru evaluarea unor alternative de design Web.

Intranet – pentru găzduirea unor documente ale companiei (memo-uri, bugete, manuale etc).

Extranet – anumite părți ale informațiilor din sistem sunt accesibile anumitor părți autorizate (exemplu furnizori, parteneri).

De procesare a tranzacțiilor: site-uri pentru comerț electronic, B2C și B2B, care trebuie să fie funcționale 24h și să gestioneze volume mari de trafic.

De livrare de conținut (știri, rezumate, alte informații digitale): trebuie, să fie similar cu cele de procesare a tranzacțiilor, funcționale 24h și să permită localizarea și prezentarea rapidă a conținutului căutat.

Sisteme de operare pentru servere Web: familia Microsoft Windows Server, Linux, distribuții comerciale de Linux (Caldera, Mandrake, Red Hat), Solaris.

Software server Web:

Apache HTTP (a patchy ) – pe so Linux, FreeBSD, Windows, SCO-UNIX, Solaris, HP-UX.

Microsoft Internet Information Server (IIS) – pe so Windows.

Sun Java System Web Server (Sun ONE, iPlanet, Netsacpe) – pe so HP-UX, Solaris, Windows.

Netcraft ofera pe site-ul sau Web posibilitatea de a determina ce SO si server Web folosesc diverse site-uri. Folosirea serverelor Web pentru site-urile active (raport Netcraft, octombrie 2005):

What's that site running?

Situația diferă pentru intranet-uri: IIS+servere

Web Sun acoperă 75% (PC Magazine).

Alte programe: server e-mail, server FTP, utilitare gen finger, ping, programe de indexare și căutare, pentru analiza datelor, pentru verificarea link-urilor (link-checking).

Hardware pentru servere Web

Calculatoarele care se folosesc în sistemele de comerț electronic, în particular pentru site-urile Web, pot avea diverse configurații, de la desktop PC până la calculatoare server (diverse configurații și costuri și aici).

În plus, sistemele de comerț electronic sunt de obicei organizate ca arhitecturi 2, 3, n-tier, pentru divizarea sarcinilor de livrare de pagini Web, gestiunea bazelor de date, procesarea tranzacțiilor. Fiecare nivel poate necesita mai multe calculatoare. Tipuri de arhitecturi:

Centralizată se folosește doar câteva calculatoare marii, extrem de puternice.

Descentralizată sau distribuită (server farms), care implică un număr mare de calculatoare mai puțin puternice, eventual împreună cu sisteme pentru echilibrarea încărcării.

Fiecare gen de arhitectură prezintă avantaje/dezavantaje, relativ la funcționarea sistemului, costuri.

Evaluarea performanțelor serverelor Web (benchmarking)

Elementele care afectează performanța unui server includ: hardware, so, server Web, viteza conexiunii, numărul de vizitatori simultani, dimensiunea și tipul resurselor livrate (pagini statice, dinamice).

Definiție: throughput = numărul de cereri HTTP pe care o combinație particulară hardware/ software le poate procesa într-o unitate de timp.

Definiție: timp de răspuns = durata necesară unui server pentru a procesa o cerere.

Exemple: EBay (arhitectură descentralizată), Land’s End (“my virtual model”)

5. Aspecte de securitate în comerțul electronic

Securitatea comunicațiilor (secțiunea A)

În egală măsură trebuie asigurată securitatea datelor pe mașinile server unde sunt stocate (începând de la serverul Web), nu doar în trafic → (firewall-uri, mecanisme de securitate la nivelul so, securitatea scripturilor) (secțiunea B).

Securitatea pentru calculatoarele client (secțiunea C).

Există și alte riscuri care trec dincolo de securitatea comunicației sau cea la nivelul serverului Web și a mașinilor client.

Din perspectiva clientului :

Cardul de credit este taxat, dar produsele comandate să nu fie livrate (există sisteme de urmărire a comenzilor!).

Riscul ca informația personală furnizată să fie folosită necorespunzător. De exemplu, adresa de mail/e-mail comunicată să fie "bombardată" de mesaje nedorite electronice (spam) sau fizice.

Riscul ca vânzătorul să experimenteze cu prețul, adică să determine care sunt magazinele virtuale vizitate ce client și să stabilească un preț al produselor puțin sub prețurile practicate de acele magazine (programe spyware = care colectează informații personale despre utilizatori, fără consimțământul acestora).

Pe de altă parte, și vânzătorul este supus unor riscuri:

”Clientul” poate fi un competitor care scanează prețurile.

”Clientul” folosește un card de credit furat.

5.1. Securitatea în comerțul electronic – canalul de comunicare

Maniera uzuală de comandare online și procesare al unei comenzi online:

Probleme de securitate ce pot apare legat de comunicarea în Internet :

Confidențialitate: păstrarea infomațiilor inaccesibile utilizatorilor neautorizați. 

Exemplu de încălcare a confidențialității în scenariul anterior: informațiile referitoare la cardul de credit cu care se face plata pot fi interceptate pe parcursul etapei de cumpărare de către un intrus. Acesta poate să folosească informațiile interceptate pentru a comite fraude. Iar proprietarul cardului poate să nu sesizeze furtul decât în momentul în care primește extrasul de cont.

Autentificare: posibilitatea identificării persoanei/procesului cu care se comunică înainte de a transmite informații sensibile sau a începe o tranzacție.

Ne-repudiere: furnizarea unei dovezi incontestabile privind originea și destinatarul unui mesaj.

Controlul integrității: protecția relativ la alterarea / modificarea datelor transmise.

Pentru asigurarea securității comunicațiilor în Internet o practică obișnuită este ca, la transmiterea unor informații sensibile, cei doi parteneri de comunicație să comute într-o stare sigură. Cea mai populară metodă de a obține un canal de comunicație sigur este folosirea HTTPS (HTTP peste SSL).

5.2 Elemente de bază în criptografia asimetrică (sau cu chei publice)

Asigură confidențialitatea, integritatea mesajelor schimbate peste SSL și autentificarea partenerilor de comunicație.

Notă: Trebuie făcută distincție între:

autentificare: verificarea identității unui proces la distanță și

autorizare: a permite executarea unei anumite acțiuni.

Fie E și D algoritmii de criptare, respectiv decriptare și Kpu, Kpri cheile publică și respectiv privată.

Se fac publice: E, D, Kpu (oricine poate cripta). Se păstrează secret: Kpri (numai posesorul cheii secrete poate decripta un mesaj criptat cu cheia sa publică). Criptarea asimetrică e descrisă de următoarea relație:

DKpri(EKpu((M)) = M.

Important în criptarea cu chei publice este următoarea proprietate: rolul cheilor publică și privată poate fi inversat. Cheia privată poate fi folosită pentru criptarea mesajului, iar mesajul criptat produs poate fi decriptat folosind cheia publică corespunzătoare.

EKpu(DKpri((M)) = DKpri(EKpu(M)) = M.

Această proprietate a multora dintre algoritmii de criptare asimetrici stă la baza a ceea ce se cheamă semnături digitale. Acestea funcționează similar semnăturilor obișnuite (“de mână”), pentru a dovedi originea unui document: dacă M e criptat (D) cu cheia privată a lui S, atunci M va putea fi recuperat prin decriptare (E) folosind cheia publică a lui S; și documentul e sigur că a fost produs de S.

Justificăm cele trei proprietăți. Fie A și B partenerii de comunicație.

Confidențialitatea: un mesaj criptat incerceptat nu are sens decât dacă poate fi decriptat, ceea ce este imposibil în lipsa cheii private corespunzătoare.

A aplică EKpu_B(M)  numai B poate obține M prin DKpri_B(EKpu_B(M)).

Autentificarea:

A  EKpu_B (DKpri_A (M) ) ; A e sigur că numai B poate citi mesajul

B  DKpri_B (EKpu_B (DKpri_A (M) ) )  DKpri_A(M)

B  EKpu_A (DKpri_A (M) )  (în virtutea proprietății precizate) M ; B e sigur că numai A a putut trimite mesajul

Integritatea:

Prin aplicarea unor algoritmi numiți “funcții hash” se obține o amprentă (message digest) a mesajului; aceasta se criptează, ceea ce rezultă fiind o semnătură digitală a mesajului. Se procedează în felul următor:

La A: M amprenta semnătura

M + semnătura se trimit lui B

La B: M + semnătura

o semnătură o semnătură

M e valid dacă cele două semnături corespund

În plus, B e sigur că A a trimis mesajul (semnătură digitală)

5.3 Certificate digitale

Sunt folosite în stabilirea identităților într-o rețea (autentificare).

Certificatele digitale conțin:

informații de identificare a entității: nume, URL;

cheia publică a entității pe care o identifică, care va fi folosită în comunicarea peste SSL;

o semnătură a unei autorități de certificare (CA), criptată cu cheia privată a acelei autorități; cheia publică a CA e disponibilă, astfel încât se poate stabili cu exactitate că acea CA a semnat certificatul în cauză. (Cheile publice ale celor mai cunoscute CA sunt de obicei păstrate de browsere).

informații legate de data emiterii și durata de valabilitate a certificatului.

Certificatele se obțin de obicei de la aceste autorități de certificare, organizații comerciale care prezintă încredere pentru ambele părți aflate în comunicare: AT&T Certification Authority, GTE CyberTrust, KeyWitness International, Microsoft, Thawte Consulting, Verisign. Responsabilitatea de bază a unei CA este, să confirme identitatea entității căreia i s-a eliberat certificatul, deci să asigure validitatea informației de identificare furnizată în certificat. Există certificate cu diverse nivele de încredere, pentru care CA verifică doar anumite informații.

În cele din urmă, succesul mecanismului de certificare depinde de faptul că partea care primește un certificat are sau nu încredere în autoritatea care l-a semnat, și de faptul că verificarea efectuată de CA asupra identității căreia i-a fost eliberat certificatul a fost adecvată. Dincolo de aceste elemente de certificare, un certificat nu oferă o dovadă decisivă de identitate, încredere sau intenții ale entității certificate.

Există două tipuri de certificate: pentru server și pentru client. Cele pentru server sunt obligatorii în protocolul SSL.

5.4 Protocolul SSL

A fost construit pentru asigurarea securității operațiilor implicate în comerțul electronic și alte tranzacții Internet: securitatea comunicațiilor și autentificare.

Scurt Istoric:

Netscape a considerat aspectele de securitate pentru browserele sale începând încă de la primele versiuni, prin introducerea suportului pentru protocolul Secure Sockets Layer. In 1994 a fost proiectată versiunea SSL 1.0. In 1995 apare implementarea versiunii SSL 2.0 pe browserele Netscape. In 1995 se publică versiunea 1.0 a PCT (Private Communication Technology) – concepută de Microsoft ca o extensie minoră a SSL 2.0 și care se baza pe unele puncte slabe ale SSL 2.0. Aceste puncte slabe au fost remediate odată cu versiunea SSL 3.0, tot în 1995.

Începând din 1996, dezvoltarea SSL, deși e patentată de Netscape, a trecut în responsabilitatea organizației Internaționale pentru standarde Internet, IETF (Internet Engineering Task Force). IETF a redenumit SSL în TLS (Transport Layer Security). Prima specificație oficială TSL a apărut în 1999.

Suportul pentru SSL este implementat în aproape toate browserele. Majoritatea serverelor suportă de asemenea comunicare peste SSL .

Elemente de bază:

Protocolul SSL adaugă un nou nivel în stiva de protocoale TCP/IP:

Fiind un protocol independent, inserat între HTTP și TCP, nu s-au impus modificări pentru protocoalele adiacente. Protocolul HTTP are aceeași interfață cu protocolul SSL ca și cu protocolul TCP. Din punctul de vedere al protocolului TCP, SSL este doar o altă aplicație care îi folosește serviciile.

Tot din independența SSL ca și protocol decurge și alt avantaj, anume că SSL poate fi folosit în conjuncție și cu alte protocoale, nu doar cu HTTP.

SSL asigură îndeplinirea celor trei deziderate de securitate în comunicație, astfel:

confidențialitate – prin folosirea unui algoritm de criptare;

autentificare – prin folosirea certificatelor digitale;

controlul integrității – prin folosirea unor algoritmi pentru integritatea mesajelor.

Stabilirea tuturor elementelor menționate, algoritmul de criptare (ex. DES – Data Encryption Standard), schimbul de chei publice între server și client, algoritmul pentru integritatea mesajelor (ex. MAC – Message Authentication Code), se negociază la începutul comunicării SSL.

Scenariul de negociere a unui canal sigur de comunicație:

C S

C S – C verifică certificatul și extrage cheia publică a lui S.

C S – certificatul lui S poate fi găsit pe Internet, e necesar să se

asigure că nu e folosit de altcineva.

C S – C verifică faptul că mesajul vine de la S.

C S

Limitările protocolului SSL trebuie înțelese și protocolul exploatat adecvat, deoarece o arhitectură de securitate greșit concepută poate avea consecințe la fel de grave ca și lipsa oricărei arhitecturi de securitate.

limitări fundamentale: deși SSL a fost conceput pentru diferite aplicații, totuși scopul său principal vizează securizarea tranzacțiilor Web. Astfel, SSL necesită un protocol de transport precum TCP. SSL nu poate folosi un protocol precum UDP (recent s-a dezvoltat o versiune TLS ce este proiectată pentru protocolul UDP, numită WTLS (wireless)).

limitări ale algoritmilor criptografici utilizați: SSL se bazează pe algoritmi criptografici. Deși încă nu se cunosc puncte slabe ale unor algoritmi precum DES, există posibilitatea “depășirii” acestora la un moment dat.

limitări ale mediului: SSL singur nu poate asigura securitatea integrală a sistemelor comunicante.

Capitolul 6. Descrierea aplicatiei

6.1 Date generale

6.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 aplicații si jocuri pentru Android si IOS.

Aplicatia poate rula pe un server de web Apache instalat pe unul din sistemele de operare: Linux, Unix sau Windows . Deasemenea este necesara functionarea pe serverul de web a unei versiuni mai noi de PHP – utilizat ca modul al serverului Apache si a unei versiuni recente de MySQL ca server de baze de date.

Partea executabila a aplicatiei este constituita de scripturi PHP ,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: PHP versiunea 5.4 , HTML si JavaScript

Pentru partea de design s-a utilizat: HTML, CSS, Adobe Photoshop CS2

Pentru partea de baze de date s-a utilizat MySQL versiunea 5.5.27

6.1.2 Modulele aplicatiei

Din punct de vedere al functionalitatii , aplicatia este constituita din urmatoarele module :

Modulul de administrare al site-ului – are un rol crucial in intretinerea site-ului, in a asigura buna functionare a site-ului si fluenta si coerenta datelor vehiculate in activitatea de comert electronic desfasurata.

Modulul de inregistrare/autentificare a utilizatorilor – asigura securitatea procesului de comercializare a produselor , prin utilizarea autentificarii utilizatorilor si a altor mecanisme specifice. Deasemenea pune la dispozitia utilizatorului – care a parcurs procesul de autentificare, o serie de optiuni si facilitati speciale

Modulul de interfata al site-ului – contine totalitatea scripturilor programelor ce permit comunicarea cu utilizatorul client , constituind o interfata prin intermediul careia utilizatorul poate naviga prin vizualiza ierarhia de produse comercializate de catre magazinul web.

Modulul de preluare/prelucrare a comenzilor de la utilizator – are un rol dublu: pe de o parte permite pastrarea optiunilor de produse pentru care a optat utilizatorul la un moment dat in decursul procesului de cumparare si in acelasi timp permite preluarea si prelucrarea in conditii de securitate, a comenzii finale de cumparare lansata de catre utilizator .

Modulul de comunicare a ofertelor si informari catre utilizatori – implementeaza o serie de facilitati suplimentare, care vin in sprijinul utilizatorului ,asigurand buna comunicare intre comerciant si clienti , dezbaterea si rezolvarea problemelor acestora si nu in ultimul rand contribuind la formarea si dezvoltarea unui cerc de clienti fideli care apreciaza calitatea produselor comercializate.

Modulul de cautare in site

6.1.3 Detalii de implementare

Aplicatia a fost dezvoltata , in mai multe etape, si anume:

proiectarea structurii si implementarea bazei de date.

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 .

introducerea datelor si a imaginilor corespunzatoare acestora in baza de date.

proiectarea si implementarea modulului de interfata al site-ului

proiectarea si implementarea modulului de inregistrare-autentificare a utilizatorilor

proiectarea si implementarea modulului de preluare si prelucrare a comenzilor de la utilizator.

implementarea facilitatilor puse la dispozitia utilizatorului si integrarea acestora in cadrul modulelor de care apartin.

proiectarea si implementarea modulului de comunicare a ofertelor si informari catre utilizatori

proiectarea si implementarea modulului de cautare in site

definitivarea aspectului grafic al site-ului

testarea functionalitatii site-ului si a facilitatilor puse la dispozitie in cadrul său.

Baza de date proiectata si utilizata este una relationala continand 8 tabele. 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 administrare al aplicatiei – prin dimensiunile si complexitatea sa – poate fi considerat ca un site-web de sine-statator. Modularizarea aplicatiei – a condus la o structura flexibila a site-ului , fiind posibil astfel ca si alte componente ale aplicatiei – secțiuni ale celor cinci module principale , sa fie adaugate ulterior – in procesul de dezvoltare a aplicatiei.

6.2 Functionalitati si facilitati ale aplicatiei

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.

6.2.1 Functionalitati si facilitati generale (la nivel de site)

Din aceasta categorie pot fi mentionate , in ordine, urmatoarele:

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 o categorie de produse : se selecteaza o categorie si ca rezultat vor fi afisate toate produsele din categoria indicata

* cautare dupa produs : se introduce un sir text si ca rezultat sunt afisate toate produsele care contin in numele/descrierea lor sirul indicat .

6.2 Structurarea bazei de date

* Descriere generala

Baza de date folosita este o baza de date relationala de tip MySQL, denumita wordpress.

Ea contine urmatoarele 20 tabele:

app_commentmeta

app_comments

app _links

app _options

app _postmeta

app _posts

app _terms

app _term_relationships

app _term_taxonomy

app _usermeta

app _users

app _woocommerce_attribute_taxonomies

app _woocommerce_downloadable_product_permissions

app _woocommerce_order_itemmeta

app _woocommerce_order_items

app _woocommerce_tax_rates

app _woocommerce_tax_rate_locations

app _woocommerce_termmeta

app _wpclone

app _wpeditor_settings

6.3 Module ale aplicatiei

6.3.1 Modulul de administrare al bazei de date

* Descriere

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 secțiuni:

Administrare Categorii – se ocupa de gestionarea tabelei categories

Administrare Produse – se ocupa de gestionarea tabelelor: produse, caracteristici si product_ofertanti

Administrare Comenzi – se ocupa de gestionarea tabelelor de comenzi

* Sectiunea Administrare Categorii

In cadrul aplicatiei , ierarhia de categorii existenta este structurata pe mai multe nivele:

– categorii principale;

– subcategorii (caracterizate de faptul ca au ca “parinte” o alta categorie).

Aceasta structura arborescenta de organizare a categoriilor de produse a fost preferata datorita structurarii mai organizate a informatiilor si datorita faptului ca asigura un acces mai eficient la informatiile dorite ( acestea fiind de obicei despre unul dintre produse – care pot fi astfel “asimilate” ca fiind frunze ale acestui arbore).

Din cadrul acestei secțiuni se poate modifica/edita ierarhia de categorii existenta. In principiu ,la accesarea acestei secțiuni, este afisata ierarhia de categorii si sunt puse la dispozitie comenzi de: adaugare, de stergere si de redenumire a unei categorii.

* Sectiunea Administrare Produse

Pentru fiecare produs – sunt afisate urmatoarele informatii:

nume, descriere, pret produs, id-ul categoriei – date preluate din tabela produse

* Sectiunea Administrare Comenzi

In aceasta sectiune se pot vizualiza comenzile primite de pe site de la utilizatorii care au fost interesati de cumparaturi si au comandat produsele.

6.3.2 Modulul de frontend

Catalogul de produse

Una dintre necesitatile oricarui magazin on-line este sa permita vizitatorilor sa parcurga cu usurinta produsele. Un exemplu foarte bun este Amazon.com care are un excelent catalog de produse. Daca este vorba despre un magazin mic o impartire pe cateva categorii poate fi suficienta, daca este vorba despre un magazin online complex atunci structura de categorii si subcategorii joaca un rol foarte important pentru vizitatori sa poate ajunge cat mai repede la un produs dorit. De asemenea cautarea in site joaca un rol foarte important in catalogul de produse pentru ca produsele sa poate fi gasite cat mai repede si mai usor.

Catalogul de produse este compus din meniul de categorii, listele de produse aferente categoriilor si pagina cu detaliile produsului.

Cand se selecteaza o categorie se obține lista cu produsele din categoria selectată. Toate listele de produse au o caracteristică de paginare care-i permite vizitatorului sa parcurga o lista lunga de produse cu usurinta, împărțindu-le pe mai multe pagini secundare. Legaturile pentru trecerea de la o pagina la alta sunt afișate doar pentru listele de produse ce conțin mai mult decât un număr de produse prestabilit.

Numele si imaginea fiecărui produs de pe listă vor fi legăturile la paginile cu produse care vor prezenta descriere completă a produselor.

Modulul de preluare/prelucrare al comenzilor de la utilizator

Are un dublu rol: pe de o parte permite pastrarea optiunilor de produse pentru care a optat utilizatorul, in diverse momente, in decursul procesului de cumparare si in acelasi timp permite preluarea si prelucrarea in conditii de securitate, a comenzii finale de cumparare lansata de catre utilizator .

Cosul de produse

Accesarea Cosului de Cumparaturi

Cosul de cumparaturi va afisa continutul numai dupa adaugarea produselor in cos. Se poate intra in Cosul de Cumparaturi prin click pe link-ul Cosul de cumparături din header-ul paginii

Adaugarea produselor in Cosul de Cumparaturi

Produsele pot fi adaugate in cos din pagina de detalii produs, se selecteaza cantitatea de produs si se apasa butonul „Adauga in cos”.

Ștergerea produselor din Cos

Pentru a sterge produsele din cos, accesati cosul de cumparaturi apoi apasati butonul Sterge produ pentru fiecare produs in parte.

Modificarea cantitații produselor din Cos

Pentru a modifica cantitatea produselor din cos, introduceti cantitatea dorita in campul corespondent pentru fiecare produs in parte, apoi apasati butonul Actualizare Cos.

Modulul pentru newsletter

Un utilizator se poate abona pentru a primi diverse informații de la magazinul online. In sectiunea de newsletter a site-ului exista si posibilitatea pentru dezabonare pentru a intrerupe primirea emailurilor

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, 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 comercializarea on-line a produselor sale si aplicarea modelului „Business to customer”.

Similar Posts