visual basic

262
http://www.east.utcluj.ro/mb/mep/antal Universitatea Tehnica din Cluj-Napoca Catedra Mecanica si Programare Conf. Dr. Ing. ANTAL Tiberiu Alexandru Prefa- ta 7 Cartea îs - i propune sa 7 -i ini- tieze pe cei care doresc sa 7 cunoasca 7 realizarea paginilor Web dinamice folosind tehnologia Microsoft. Se prezinta 7 elementele de baza 7 pentru realizarea paginilor statice cu HTML. Urmeaza 7 limbajul Visual Basic Script, apoi, în final, tehnologia ASP s - i obiectele ei. Deoarece ASP poate interac- tiona cu bazele de date rela- tionale, cartea prezinta 7 conceptele specifice bazelor de date rela- tionale, într-o forma 7 simplificata 7 , împreuna 7 cu modalitatea de manipulare a datelor unei baze de date Microsoft Access prin ADO. Aduc mul- tumiri artistului plastic clujean Marin Leschian pentru lucra 7 rile "Vacan- ta 7 eterna 7 " (coperta 7 fa- ta 7 ) s - i "Armata lui Don Quijote" (coperta spate) pe care le-am folosit pentru a îmbra 7 ca aceasta 7 carte. Multe mul- tumiri Ramonei pentru lectura s - i corectura manuscrisului. Aceasta 7 edi- tie mai con- tine, fa- ta 7 de prima, o introducere în re- tele de calculatoare, explicarea conceptului de foaie de stil, o mai clara 7 descriere a conceptelor legate de bazele de date rela- tionale s - i mai multe exemple.

Upload: seitancalin

Post on 12-Aug-2015

134 views

Category:

Documents


5 download

DESCRIPTION

programare

TRANSCRIPT

Prefa-a t7Cartea si propune sa ini-ieze pe cei care doresc sa cunoasca realizarea paginilor Web 7-i t 7 7 dinamice folosind tehnologia Microsoft. Se prezinta elementele de baza pentru realizarea 7 7 paginilor statice cu HTML. Urmeaza limbajul Visual Basic Script, apoi, n final, tehnologia ASP 7 si obiectele ei. Deoarece ASP poate interac-iona cu bazele de date rela-ionale, cartea prezinta t t 7 conceptele specifice bazelor de date rela-ionale, ntr-o forma simplificata mpreuna cu t 7 7, 7 modalitatea de manipulare a datelor unei baze de date Microsoft Access prin ADO. Aduc mul-umiri artistului plastic clujean Marin Leschian pentru lucra t 7rile "Vacan-a eterna t7 7" (coperta fa-a si "Armata lui Don Quijote" (coperta spate) pe care le-am folosit pentru a mbra 7 t 7) 7ca aceasta carte. 7 Multe mul-umiri Ramonei pentru lectura si corectura manuscrisului. t Aceasta edi-ie mai con-ine, fa-a de prima, o introducere n re-ele de calculatoare, explicarea 7 t t t7 t conceptului de foaie de stil, o mai clara descriere a conceptelor legate de bazele de date 7 rela-ionale si mai multe exemple. t http://www.east.utcluj.ro/mb/mep/antal Universitatea Tehnica din Cluj-Napoca Catedra Mecanica si Programare Conf. Dr. Ing. ANTAL Tiberiu Alexandru

Celor care nc| mai cauta dei, deja, au cam obosit. 7

http://www.east.utcluj.ro/mb/mep/antal Universitatea Tehnica din Cluj-Napoca Catedra Mecanica si Programare Conf. Dr. Ing. ANTAL Tiberiu Alexandru

CUPRINS - 5

CUPRINSConcepte de reele de calculatoare i protocoale de reea. . . . . . . . . . . . . . . . . . . . 10 Modalit|i de clasificare a reelelor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Reele LAN (Local Area Networks). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Reele WAN (Wide Area Networks). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Reele MAN (Metropolitan Area Networks). . . . . . . . . . . . . . . . . . . . . . 11 Reele VPN (Virtual Private Networks). . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Condiiile de conectare a unui calculator la o reea. . . . . . . . . . . . . . . . . . . . . 11 Placa de reea.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Topologii de reea.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Despre protocoale de reea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Introducere n TCP/IP.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Configurarea conexiuni TCP/IP n Windows XP i 2000.. . . . . . . . . . 14 Protocolul HTTP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Ce este ASP?.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . De la HTML la ASP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CGI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Avantaje ASP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . http://www.east.utcluj.ro/mb/mep/antal Independena de limbajul de programare. . . . . . . . . . . . . . . . . . . . . ASP este simplu de nv|at. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Alte metode Universitatea Tehnica din Cluj-Napoca . . . . . . . . . . . . . . . . . . pentru crearea de pagini Web dinamic. Catedra . . . . . . . . . . . . . . . . . . Programe CGI. . Mecanica .si .Programare. . . . . . . . . . . . . . . . . . . . . . . Conf. Dr. Ing. . . . . . . . . . . . . . . . . . . . . . Ce este ISAPI?. . . ANTAL.Tiberiu .Alexandru. . . . . . . . . . . . . . . . . . . Aplicaii ISAPI.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Filtre ISAPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cnd se folosesc ASP i HTML mpreun|?. . . . . . . . . . . . . . . . . . . . . . . . . . . . Comparaie ntre ASP i alte tehnologii de dezvoltare a aplicaiilor Web . . Etapele desf|ur|rii dialogului, ntre client i server, pe Web. . . . . . . . . . . . . . . . . . Modul n care clientul trimite cererea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prelucrarea cererii de c|tre server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P|rile componente ale unui URL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modul n care server-ul r|spunde la o cerere. . . . . . . . . . . . . . . . . . . . . . . . . Modul n care clientul prelucreaz| r|spunsul. . . . . . . . . . . . . . . . . . . . . . . . . Prelucrarea cererilor ASP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ce este un Script?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modul n care server-ul separ| script-ul de coninutul HTML.. . . . . . . . . . . . Modul n care server-ul prelucreaz| script-ul. . . . . . . . . . . . . . . . . . . . . . . . . Navigatorul i codul ASP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Introducere n HTML.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ce este HTML?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sintaxa HTML - marcaje i atribute. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Structura unui document HTML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Marcajul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Marcajul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Marcajul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Marcajul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Marcajul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 20 20 21 21 22 22 22 22 22 22 23 23 25 25 25 26 27 27 28 29 30 30 30 31 31 31 33 33 33 34 34 34

6 - CUPRINS

Formatarea textului. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Stiluri de antete. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aliniere, tipuri de caractere. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Containere de text. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Paragraful. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Text preformatat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Stiluri de liste. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lista neordonat|.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lista ordonat|.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Definiii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Alte elemente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Includerea imaginilor n documentele HTML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Marcajul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Plasarea imaginilor n pagin|. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ocuparea cu text a spaiului din jurul imaginii. . . . . . . . . . . . . . . . . . . . . . . . Imagini de fond. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Realizarea hiperleg|turilor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Marcajul de ancorare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ancorarea la imagini. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . http://www.east.utcluj.ro/mb/mep/antal Tabele. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Marcajele , Tehnica din .Cluj-Napoca . . . . . . . . . . . . . . . . . . . . Universitatea i . . . . . . . . . . . . . Marcajele i ..si .Programare. . . . . . . . . . . . . . . . . . . . . . . Catedra Mecanica . . . . . . . . . . Conf. Dr. Ing. ANTAL Tiberiu Alexandru Cadre (FRAMEs). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Avantajele cadrelor.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dezavantajele cadrelor.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modalit|i de evitare a cadrelor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35 35 36 36 37 37 38 38 38 40 41 42 42 43 44 45 47 47 50 52 52 58 61 68 68 68

Foi de stil (Style Sheets).. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Stocarea regulilor de stil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Stocarea extern| a regulilor de stil. . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Stocarea intern| a regulilor de stil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Exemplu: Meniuri i fonduri cu CSS.. . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Exemplu: Tabele cu CSS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Formulare (Forms). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Definirea unui formular.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Elemente de intrare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Butonul Submit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Butonul Reset.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Introducerea textelor n formulare. . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Selectarea mai multor opiuni, dintre mai multe variante, prin butoane de validare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Selectarea unei singure opiuni, dintre mai multe variante, prin butoane de opiune . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Selectarea din liste. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Controale ascunse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Transmiterea datelor din formular prin e-mail.. . . . . . . . . . . . . . . . . . . . . . . . 86 Limbajul de programare VBScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

CUPRINS - 7

Cuvinte cheie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Variabile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Subrutine i funcii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Operatori VBScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Operatori aritmetici. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Operatori de comparaie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Operatori de concatenare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Operatori logici. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Instruciuni de ramificare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 If ... Then.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Select ... Case. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Instruciuni de ciclare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 For ... Next. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 While ... Wend. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Do ... While.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Operaii cu iruri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Funcii pentru manipularea irurilor . . . . . . . . . . . . . . . . . . . . . . . . . 107 Expresia de c|utare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Clase VBScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Definirea membrilor dat|.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Implementarea propriet|ilor clasei. . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Property Get. . . . . . . . . . . . . . . . . . . . http://www.east.utcluj.ro/mb/mep/antal . . . . . . . . . . . . . . . . . . . . 111 Property Let. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Crearea metodelor clasei. . . . . . . . . Universitatea Tehnica din Cluj-Napoca . . . . . . . . . . . . . . . . . . . . 112 Definirea evenimentelor clasei. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Catedra Mecanica si Programare Evenimentul Initialize. . . . . .Alexandru. . . . . . . . . . . . . . . . . . . 112 Conf. Dr. Ing. ANTAL Tiberiu . . . . . . . . Evenimentul Terminate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Obiecte client. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Inserarea script-ului n pagina Web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Ierarhia obiectelor de script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Obiectul Window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Propriet|ile obiectului Window.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Metodele obiectului Window.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Evenimentele obiectului Window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Obiectul Document. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Propriet|ile obiectului Document. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Coleciile obiectului Document. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Metodele obiectului Document. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Obiectul Navigator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Obiectul Form.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Propriet|ile obiectului Form. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Transferul (submit) formularelor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Manipularea controalelor unui formular. . . . . . . . . . . . . . . . . . . . . . 124 Propriet|ile controalelor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Metodele controalelor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Evenimentele controalelor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Exemplu: Utilizarea evenimentelor asociate controalelor.. . . . . . . . . . . . . . 127 Exemplu: Aplicaie pentru calculul dobnzii bancare. . . . . . . . . . . . . . . . . . 128 Exemplu: Accesul la coninutul paginii de Web, din VBScript, folosind obiectul Document. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

8 - CUPRINS

Marcajul .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Obiecte server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Obiectul Response. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Trimiterea unui r|spuns cu obiectul Respose. . . . . . . . . . . . . . . . . . 139 Utilizarea variabilelor n r|spunsul dat de server. . . . . . . . . . . . . . . 140 Colecia Response.Cookies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Metoda Response.AddHeader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Metoda Response.Redirect. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Propriet|ile Response.Expires i Response.ExpiresAbsolute. . . . . . . . . . . 144 Obiectul Request. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Colecia Request.ClientCertificates. . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Colecia Request.Cookies.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Colecia Request.Forms .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 Colecia Request.QueryString. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 Colecia Request.ServerVariables. . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Obiectul Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 Variabile ale aplicaiei - Application. . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Metodele Application.Lock i Application.Unlock. . . . . . . . . . . . . . . 163 Obiectul Session. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Fazele unei sesiuni. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 nceputul sesiunii. . . . . . . . . . . . . . . . http://www.east.utcluj.ro/mb/mep/antal . . . . . . . . . . . . . . . . . . . 165 Identificarea sesiunii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 Terminarea sesiunii. . . Cluj-Napoca Universitatea Tehnica din . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 Proprietatea Session.TimeOut. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Catedra Mecanica si Programare Metoda Session.Abandon.Tiberiu .Alexandru. . . . . . . . . . . . . . . . . . 166 Conf. Dr. Ing. ANTAL . . . . . . . . . . . . . . Fiierul global.asa.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Obiectul Server.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Proprietatea Server.ScriptTimeOut.. . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Metoda Server.HTMLEncode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Metoda Server.URLEncode.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 Metoda Server.CreateObject. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 Directiva include. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 Metoda Server.Execute.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Metoda Server.Transfer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Metoda Server.MapPath. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Metoda Server.GetLastError. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 Obiectul Scripting Dictionary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 Propriet|ile obiectului Dictionary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 Metodele obiectului Dictionary.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 Obiectul FSO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 Afiarea fiierelor dintr-un director. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 Verificarea existenei unui fiier.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Deschiderea unui fiier.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 Obiectul TextStream. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Scrierea ntr-un fiier.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 Citirea dintr-un fiier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 tergerea unui fiier.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 Realizarea unei aplicaii cu securitate la legare. . . . . . . . . . . . . . . . . . . . . . 190

CUPRINS - 9

Instruciuni pentru tratarea erorilor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instruciunea On Error Resume Next. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instruciunea On Error Goto 0.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Obiectul Err. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Stocarea erorilor n fiiere.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

196 196 196 197 200

E-mail. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Trimiterea unui e-mail cu obiectul NewMail.. . . . . . . . . . . . . . . . . . . . . . . . . 205 Folosirea componentei w3 JMail pentru trimiterea unui e-mail . . . . . . . . . 206 Accesul la baze de date relaionale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 Conceptul de dat|.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Modelul de date relaional.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Conceptul de redundan|. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 Terminologii alternative ale modelului relaional.. . . . . . . . . . . . . . . . . . . . . 210 Conceptul dependenei funcionale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Tipuri de dependene funcionale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Conceptul de normalizare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Etapele procesului de normalizare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Forma nenormal|.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 Prima form| normal|.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 Anomaliile relaiilor 1NF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 http://www.east.utcluj.ro/mb/mep/antal A dou| form| normal|. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 A treia form| normal|. . . . din . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 Universitatea Tehnica . . . Cluj-Napoca Introducere n SQL. . . . . Mecanica .si .Programare. . . . . . . . . . . . . . . . . . . . . . 217 Catedra . . . . . . . . . . . . . . . . . . Instruciunea Ing. ANTAL.Tiberiu .Alexandru. . . . . . . . . . . . . . . . . . 217 Conf. Dr. SELECT. . . . . . . . . . . . . . . . . . . SELECT cu un singur tabel. . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 SELECT cu mai multe tabele.. . . . . . . . . . . . . . . . . . . . . . . . . . 218 Instruciunea INSERT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 Instruciunea UPDATE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Instruciunea DELETE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Introducere n ADO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Set|ri specifice pentru deschiderea conexiunii. . . . . . . . . . . . . . . . . 220 Alegerea valorii propriet|ii Mode. . . . . . . . . . . . . . . . . . . . . 221 Setarea propriet|ii ConnectionString. . . . . . . . . . . . . . . . . . 222 Alegerea propriet|ii CursorLocation. . . . . . . . . . . . . . . . . . . 223 Deschiderea conexiunii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Gestiunea tranzaciilor cu obiectul Connection. . . . . . . . . . . . . . . . . 223 Obiectul mulime de nregistr|ri (Recordset). . . . . . . . . . . . . . . . . . . 224 Deschiderea unei mulimi de nregistr|ri.. . . . . . . . . . . . . . . 224 Parcurgerea unei mulimi de nregistr|ri.. . . . . . . . . . . . . . . 225 Metoda Connection.Execute. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 Obiectul Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Metoda Command.Execute.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 Crearea unei aplicaii ASP ce interacioneaz|, prin ADO, cu o baz| de date Microsoft Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Crearea bazei de date Microsoft Access. . . . . . . . . . . . . . . . . . . . . . 234 Formularele HTML i ASP ale aplicaiei. . . . . . . . . . . . . . . . . . . . . . . 237 INDEX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 BIBLIOGRAFIE.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

10 - Concepte de retele si protocoale de retea -

Concepte de reele de calculatoare i protocoale de reean domeniul reelelor de calculatoare, termenul dispozitiv utilizator este folosit pentru a defini un echipament electric care este conectat la ret ea (calculator, imprimanta, scanner etc.) n scopul schimbului de date cu un alt echipament al reelei. Denumirea e data din punctul de vedere al utilizatorului de ret ea (de exemplu daca discut ia nu ar fi la nivel de ret ea ci de calculator, dispozitive ar putea fi: disc, placa video, modem etc.). Termenul dispozitiv de reea este folosit pentru a descrie echipamentele electrice necesare pentru interconectarea dispozitivele utilizator n vederea schimbului de date. Aceste dispozitive sunt conectate prin cabluri electrice (sau, direct, prin unde radio - wireless) si asigura transmisia, recept ia, gestionarea datelor ce se doresc a fi transferate ntre dispozitivele utilizator. Cteva dintre numele de dispozitive vehiculate mai des sunt prezentate, pe scurt, n continuare: Repeater (repetor) - dispozitiv de ret ea care se foloseste pentru refacerea sau repetarea semnalelor (exista repetoare care pot face retransmisia datelor ntre doua ret ele care folosesc protocoale diferite). Hub (concentrator) - punct de conectare comun la nivelul unei ret ele, se folosesc pentru interconectarea segmentelor (segmentul este o port iune de ret ea ntre doua bridge-uri, router-e sau switch-uri) de LAN. Hub-ul are mai multe porturi (interfet e de plci de reea). Atunci cnd un pachet (mesajele de transmis sunt divizate n pachete, fiecare pachet se transmite individual si poate parcurge o ruta individuala catre destinat ie) ajunge pe un anumit port se copiaza pe toate http://www.east.utcluj.ro/mb/mep/antal celelte porturi pentru ca toate segmentele de LAN sa-l vada. Exista si hub-uri inteligente care citesc adresa destinat ie a pachetelor si le trimit numai Cluj-Napoca Universitatea Tehnica din unui singur port, acestea mai pot avea si diferite facilitat i de monitorizare si administrare asi Programare traficului. Catedra Mecanica Conf. Dr. Ing. ANTAL Tiberiu Alexandru Bridge (punte) - dispozitiv de ret ea ce conecteaza doua LAN-uri sau doua segmente de LAN ce folosesc acelasi protocol (de exemplu, Ethernet). Switch (comutator) - dispozitiv de ret ea ce filtreaza si expediaza pachete ntre doua segmente de LAN. Switch-ul opereaza la nivelul legaturii de date (nivelul 2 OSI - Open System Interconnection) eventual la nivelul numit ret ea (nivelul 3 OSI). Router - un dispozitiv ce transfera pachete de date ntre ret ele distincte. Tipic, router-ul este conectat la doua LAN-uri sau WAN-uri respectiv ntre un LAN si furnizorul de servicii Internet. Router-ele realizeaza dirijarea eficienta a pachetelor de date pe liniile cele mai convenabile. Gateway - un calculator din ret ea care se foloseste pentru accesarea unei alte ret ele, deoarece este unicul punct de interact iune cu alte ret ele, deseori, va fi si proxy server si firewall; daca ret eaua este subnetata (are subret ele) este router-ul care transfera traficul n afara subret elei din care face parte stat ia transmit atoare. - Proxy server - un server (un calculator care gestioneaza anumite resurse) care este asezat ntre un client de aplicat ie, de exemplu un navigator de Web, si un server real, de exemplu un server de Web. Proxy server-ul va intercepta cererile catre server-ul real si va ncerca sa le ndeplineasca singur, daca nu poate transfera cerererile server-ului real. Avantajele folosirii unui proxy stau n cresterea performant elor (rspunsul este dat imediat, nu mai ajunge la server-ul real care este bombardat de mii de cereri si cam ocupat cu ele) si filtrarea cererilor. Firewall - un sistem electric sau o aplicat ie ce gestioneaza accesul (filtreaz) la sau de la o ret ea privata.

Concepte de retele si protocoale de retea - 11 -

Modalit|i de clasificare a reelelor Exista multe criterii de clasificare a ret elelor, iata cteva posibilitat i: # extinderea geografica: LAN, MAN, WAN etc.; # topologie: stea, magistrala, inel etc.; # mediul de transmisie: cupru, fibra optic, radio, microunde, satelit; # proprietar: public, privat; # tehnologia folosita: comuntata (switched) / conexiune permanenta (permanent links), cu legatura fizica (physical link) sau virtuala (virtual link), orientata pe conexiune (connection-oriented) sau fara conexiune (connectionless), cu difuzare (broadcast) sau punct la punct (point-to-point) etc.; # viteza: banda larga (broadband), banda ngusta (narrowband). Nu voi discuta toate tipurile posibile, voi aminti nsa cele mai uzuale denumiri. Reele LAN (Local Area Networks) Ret eaua locala permite interconectarea unor calculatoare aflate la distanta mica (un birou sau mai multe birouri) n scopul partajarii fisierelor din calculatoare, a imprimatelor si a comunicat iei locale. Multe dintre LAN-urile actuale folosesc uzual tehnologia Ethernet. Alte tehnologii folosite pentru ret ele LAN sunt Token Ring si FDDI. Reele WAN (Wide Area Networks) http://www.east.utcluj.ro/mb/mep/antal Ret eaua WAN este, tipic, raspndita pe o arie geografica mai mare dect LAN-ul (distant a ntre procesoare este de ordinul kilometrilor sau mai mult). WAN-ul se formeaza prin conectarea mai Universitatea Tehnica din Cluj-Napoca multor LAN-uri si asigura accesul la calculatoarele locale, server-e, imprimate de la o distant a - Catedra Mecanica si Programare mare respectiv comunicat ia ntre calculatoare. Cteva dintre tehnologiile specifice WAN-urilor Conf. Dr. Ing. ANTAL Tiberiu Alexandru sunt: modem-urile, ISDN (Integrated Service Digital Network), DSL (Digital Subscriber Line), SONET (Synchronous Optical Network). Reele MAN (Metropolitan Area Networks) MAN este o ret ea de date ce are o ra spndire geografica ntre LAN si WAN, cel mai des la nivelul unui oras. Majoritatea MAN-urilor beneficiaza de conexiuni private dar foarte rapide pe fibra optica sau alte medii de comexiune digitala rapida. Se formeaza prin legarea mai multor LAN-uri, eventual si prin unde radio pentru a oferi aceste servicii n spat ii publice (aeroport, magazine, etc.) Reele VPN (Virtual Private Networks) VPN este o ret ea care foloseste un mediu de transmisie public pentru a forma o ret ea privata de calculatoare. Oricine are acces la aceasta ret ea va putea lucra cu toate facilitat ile ei, n condit ii de securitate buna, chiar daca se afla la distant a fizic mare de ret ea si se leaga la ea folosind o - - conexiune clasica la Internet (care este nesecurizata). Diferite metode de criptare si mecanisme de securizare sunt folosite pentru a permite doar accesul utilizatorilor autorizat i la ret ea si pentru - evitarea interceptarii datelor. Condiiile de conectare a unui calculator la o reea Pentru ca un calculator s poat fi legat la o reea, prin care s putem avea acces la Internet i la WWW, acesta trebuie s: # aib cel puin o plac de reea; # folosesc un sistem de operare ce tie lucra cu protocoale TCP/IP (Transmission Control Protocol/Internet Protocol); # aib instalate aplicat iile ce interpreteaza si afiseaza datele transferate prin reea - ntr-o forma inteligibila pentru oameni.

12 - Concepte de retele si protocoale de retea -

Placa de reea Pentru conectarea unui calculator la o reea de calculatoare acesta trebuie s conin, la nivel fizic, un dispozitiv de reea numit placa de ret ea (NIC - Network Interface Card). Acesta asigura comunicat ia electrica ntr-o ret ea. Placa de reea foloseste o linie de ntrerupere (IRQ - Interrupt ReQuest), un spat iu de adrese I/O (Input/Output - Intrare/Iesire) si o zona de RAM (Random Access Memory - memorie volatila) pentru a interact iona cu SO (Sistemul de Operare). O linie de ntrerupere este o linie electric special n calculator prin care acesta poate fi oprit din funct ionare normala de catre un dispozitiv care transmite un semnal electric pe linia respectiv. Semnalul ntrerupe temporar funct ionarea curenta a calculatorului pentru ca acesta sa poate decida ce urmeaza sa faca. Daca procesul care prezinta date este rapid, atunci calculatorul va prelua datele, altfel acestea risca sa se piarda, dupa care si va relua activitatea din care a fost oprit. Deoarce mai multe semnale de ntrerupere pot sosi pe rnd sau simultan pe o singura linie de ntrerupere, fiecarui dispozitiv ce poate ntrerupe calculatorul trebuie sa i se dea un numar unic pentru a putea fi identificat de calculator. Aceasta valoare este specificata atunci cnd respectivul dispozitiv este intodus fizic n calculator s i se poate face manual sau automat (asta daca dispozitivul este PnP - Plug and Play). Placa de reea este un astfel de dispozitiv ce trebuie sa primesca un numar de IRQ. Aceasta trebuie instalat pe orice echipament ce va accesa ret eaua deoarece asigur cuplarea la nivel electric cu aceasta. Exista mai multe tipuri de plci de reea: notebook-urile pot avea placa de reea ncorporat sau ataata extern pe prin PCMCIA; http://www.east.utcluj.ro/mb/mep/antal PC-urile pot avea si ele placa de baza cu plac de reea ncorporat sau pot fi atasate ca placi distincte. Universitatea Tehnica din Cluj-Napoca Catedra Mecanica si Programare Fiecare plac de reea are un numar de identificare unic numit adresa MAC (Media Access Conf. Dr. Ing. ANTAL Tiberiu Alexandru Control). Acest numar este folosit (de exemplu, n foarte raspndita tehnologie de reea Ethernet o arhitectura de ret ea locala dezvoltata de firma Xerox) pentru a derula comunicat ia de date a stat iei (numita host) prin ret ea. Reeaua Ethernet apare n 1976, trecnd ulterior prin mai multe revizii i standardizri. Aceasta folosea pentru conectarea fizic a plcilor de reea un singur cablu coaxial (cablul de reea). Datele transmise n aceast reea erau sparte n pachete. Denumirea de pachet este, azi, un termen generic, reprezentnd unitatea de date ce se transmite ntr-o reea. Pachetele de date erau transmise pe baza unui algoritm CSMA/CD (Carrier Sense Multiple Access / Collision Detection). n situaia n care mai multe pachete de date ncercau s fie transmise simulan de calculatoare diferite ale reei pe cablul de reea aprea o coleziune (coleziune era detectat i pachetul era retransmis dup un timp aleator). Implementarea unei astfel de reele este simpl, dar ca urmare a competiiei calculatoarelor n vederea accesului la cablul de reea (mediul de transmisie), caracteristicile de transmisie nu sunt deterministe. Viteza tipic a transferului de date pe aceast reea era de 10 Mbps. Ca urmare a simplitii, tehnologia Ethernet a evoluat repede mrindu-i viteza transferului de date la 100 Mbps (Fast Ethernet) respectiv 1 Gbps (Gigabit Ethernet). Topologii de reea Topologia se refera la modul de aranjare a legaturilor fizice ntre calculatoarele ret elei. Cteva dintre ele se vd n Figura 1 (star - stea, bus - magistrala, ring - inel). Topologia stea conecteaza toate cablurile (pe fiecare cablu este un singur calculator) la un singur punct central (hub-ul). Topologia magistrala foloseste un singur cablu pe care se leaga toate calculatoarele, cea inel leaga doua cte doua calculatoare si primul cu ultimul rezultnd o ret ea de cablu n forma inelara . Termenul de topologie logica este folosit pentru de defini modul de comunicat ie n ret ea si poate - -

Concepte de retele si protocoale de retea - 13 -

fi cu difuzare (broadcast) sau cu transfer de jetoane (token passing). n cazul difuzarii, un calculator transmite mesaje catre toate celelalte calculatoare ale ret elei, prin cablul de ret ea. -

Figure 1 Topologii de ret ea -

Nu exista o ordine specifica n care calculatoarele folosesc mediul de transmisie, din acest motiv pot sa apara si conflicte (dup cum am spus deja, Ethernet funct ioneza dup acest model). n http://www.east.utcluj.ro/mb/mep/antal cazul lucrului cu jeton, acesta este transmis secvent ial fiecarui calculator din ret ea. Calculatoul care are jetonul (token-ul) poate transmite date n ret ea, daca acesta nu are date de transmis va Universitatea Tehnica din Cluj-Napoca pasa jetonul mai departe (nu-l t ine). Acest proces se repeta cu parcurgerea tuturor calculatoarelor Catedra Mecanica si Programare din ret ea. TokenRing este o ret ea care lucreaza dupa aceasta procedura. Conf. Dr. Ing. ANTAL Tiberiu Alexandru Despre protocoale de reea Reelele de comunicaie ntre calculatoare pot fi organizate ca o grupare de protocoale aproape independente, fiecare dintre acestea opernd la un anumit nivel. Tipic, nivelul cel mai de jos asigur comunicaia fizic ntre calculatoare, n timp ce nivelul cel mai nalt const n aplicaiile utilizatorului. Fiecare nivel curent, se folosete de nivelul inferior, pentru a pune la dispoziia nivelului superior, un grup de servicii. La fiecare nivel, programe rulate pe calculatoarele reelei folosesc protocoale corespunztoare nivelului pentru a comunica ntre ele. Avantajul protocoalelor pe nivele const n specificaiile clare ale metodelor de transmitere a informaiilor de la un nivel la altul ca parte a protocolului. Astfel, orice modificare la nivelul protocolului nu afecteaz celelalte nivele, aceast independen simplificnd proiectarea i ntreinerea programelor de comunicaie. Pentru cele ce urmeaz voi considera c suita de procoale TCP/IP este organizat pe 5 nivele de protocoale. Prezentarea este mult simplificat fiind meinute numai acele concepte care au fost deja discutate, respectiv cele ce vor fi utilizate mai departe la Web i Internet. Anumitor nivele le corespund anumite concepte i dispozitive de reea, dup cum urmeaz: Nivel TCP/IP Descriere Dispozitive de reea i concepte specifice nivelului

5 - Aplicaie

Asigur transparena reelei, alocarea de resurse etc. la nivelul utilizatorului reelei.

14 - Concepte de retele si protocoale de retea -

4 - Transport (TCP)

Asigur realizarea unei conexiuni un punct A i unul B, pentru ca datele s ajung fr erori i n ordinea corect. Asigur determinarea rutei pachetelor de date de la transmitor la receptor. Asigur fragmentarea datelor n pachete ce conin informaii de indentificare i urmrire n vederea transmiterii la nivelul fizic. Corespunde conexiunilor electrice i mecanice. router, subreea, adres IP switch, adres MAC, Ethernet

3 - Internet (IP) 2 - Plac de reea

1 - Fizic

hub

Introducere n TCP/IP Aceast protocol a devenit interesant atunci cnd proprietarii de LAN-uri au neles c poate fi utilizat att pentru transportul datelor ntr-o LAN ct i pentru interconectarea mai multor LAN-uri. La interconectarea LAN-urilor datele pot fi transferate ntre calculatoarele unor LAN-uri distincte, dar numai cu ajutorul unor dispozitive de reea de tipul router sau gateway. TCP este un protocol de comunicaie sigur (garanteaz c toate datele ajung la destinaie fr erori, n ordinea n care s-auhttp://www.east.utcluj.ro/mb/mep/antal trimis), asigur controlul fluxurilor (atunci cnd receptorul nu mai poate accepta date acesta va opri transmisia cu un semnal, iar cnd recepia devine din nou Universitatea Tehnica (mai multe semnale posibil o va reporni cu un semnal), este multiplexatdin Cluj-Napoca electrice sunt combinate Catedra Mecanica Programare pentru a partaja mediul de transmisie respectivsicablul de reea) i orientat pe conexiune Conf. Dr. Ing. face ntr-un flux continuu, (transportul de date ntre calculatoare seANTAL Tiberiu Alexandru n trei faze bine definite: stabilirea conexiunii, transferul de date i eliberarea conexiunii). Protocolul IP este fr conexiune, ce lucreaz cu prioriti (tipurilor de trafic li se atribuie prioriti, n funcie de prioritate traficul poate sau nu tolera ntrzieri, de exemplu videoconferinele trebuie s mearg n timp real, n timp ce e-mail-ul poate fi ntrziat) i comutare de pachete (pachetele de date sunt expediate individual ntre calculatoare, fr existena unei rute prestabilite). IP asigur transportul pachetelor pe diferite rute, fragmentarea (proces prin care un pachet este divizat n poriuni mai mici numite fragmente, cu scopul adaptrii acestora la cerinele reelei fizice prin care pachetele trebuie s treac; procesul invers se numete reasamblare) i reasamblarea pachetelor. Configurarea conexiuni TCP/IP n Windows XP i 2000 Sistemul de operare Windows trebuie sa fie configurat sa lucreze cu TCP/IP pe fiecare calculator al reelei pentru ca sa poate exista o comunicat- ie ntre acestea. Pentru

Figure 2 - Start>Run>Cmd>ipconfig

Concepte de retele si protocoale de retea - 15 -

vizualizarea setarilor TCP/IP, n Windows 95, 98 si Me se foloseste aplicat ia NT/2000 si XP se foloseste ipconfig . -

winipcfg ,

n

Calculatorul trebuie sa fie conectat la ret ea pentru ca datele (vezi Figura 2) cu privire la conexiune sa poata fi afisate. Pentru ca un grup de calculatoare sa fie ntr-o ret ea locala trebuie ca la: # IP Address: primele 3 grupe de numere sa fie aceleasi, iar numerele din ultima grupa se fie, toate, distincte; # Subnet Mask: sa fie aceeasi; # Default Gateway: sa fie aceeasi. Funct ionarea conexiunii la ret ea se face cu aplicat ia ping (Packet InterNet Groper). Aceasta verifica daca o adresa de IP exista si daca accepta cereri. ping lucreaza trimit nd un pachet special numit ICMP (Internet Control Message Protocol Echo Request) catre o anumita destinat ie. Fiecare pachet trimis este o cerere de raspuns, ping se foloseste pentru a verifica dac funct iile de transmisie si recept ie ale NIC, configurarea TCP/IP si a ret elei sunt funct ionale. - 127.0.0.1 este o adresa rezervata pentru testare a conexiunii ntre client si server (loop back address test). Aceasta permite realizarea unei conexiuni ntre client si server prin TCP/IP pe acelasi calculator (nu este nevoie de alte elemente de ret ea). Fiecare calculator http://www.east.utcluj.ro/mb/mep/antal are adresa 127.0.0.1 asignata interfet ei de loop back care mai poarta si numele de local host, majoritatea NIC-urilor au implementata aceasta bucla de testare interna. Orice transmisie pe acest Tehnica din Cluj-Napoca Universitatea port nu iese din NIC pe cablul de ret ea Mecanica si Programare Catedra ci este redirectata spre interfat a de testare si ajunge din nou n coada de intrare ip. Se emite o Ing. ANTAL TiberiuAlexandru cerere de ecou si un raspuns la acesta prin mesaj ICMP prin Conf. Dr. care se verifica condit iile de funct ionare ale NIC-ului si a instalarii respectiv ale configurarii corecte ale TCP/IP.ping 127.0.0.1

- verifica daca configurarea TCP/IP a ret elei este corecta, adica daca IP-ul este adaugat corect ret elei locale si daca dispozitivul de ret ea la care este legat calculatorul este activ (pornit).ping IP_adresa_calc_local ping IP_adresa_default_gateway - verifica daca conexiunea cu router-ul (default gateway-ul)

functioneaza corect si daca se poate face lega tura cu alte calculatoare din ret eaua locala. p i n g IP_adresa_calc_a

- verifica d a c a se poate comunica prin router cu calculatorul aflat la distana ntr-o alta ret ea. lta_retea

Dac a totull funct- ioneaza bine ping ntoarce adresa Figure 3 - ping www.utcluj.ro

16 - Concepte de retele si protocoale de retea -

verificata. Daca raspunsul este Request timed out atunci nu s-a primit raspuns n timpul alocat de la calculatorul ping-uit. Durata de timp alocata as teptarii raspunsului se modifica folosind opt iunea w, de exemplu pentru asteptare de 5 secunde scriem ping -w 5000 adr_IP . Pe Windows XP i 2000 mai putet i utiliza si pathping care face mult mai multe (determina IP-ul unui calculator dintr-o alta ret ea, ntrzierile si pierderile de pachete de date). n ret elele bazate pe potocoalele TCP/IP (aici este inclus si Internet-ul) calculatoarele se mai numesc si gazde (host), fiecare gazda trebuie sa aiba o adresa de IP-unica. TCP permite stabilirea unei conexiuni ntre doua host-uri cu scopul interschimbarii unor fluxuri de date. TCP garanteaza transferul de date si recept ia pachetelor n aceeasi ordine n care s-au transmis. Protocolul IP se ocupa numai de pachete. Aici este specificat formatul pachetelor de date (numite si datagrame) si schema de adresare. IP se aseamana cu sistemul postal. Permite adresarea si punerea unui pachet la posta, dar fara sa faca o legatura directa ntre expeditor si destinatar. TCP este cel care - face aceasta legatura virtuala ntre sursa si destinat ie. mpreuna, TCP/IP, permit stabilirea unei conexiuni ntre doua gazde n scopul trasferului de mesaje pentru o durata limitata de timp. Versiunea curenta a protocolului IP este 4, de aceea se mai foloseste si scrierea IPv4. Ca urmare - cerinelor de crestere a Internetului, att n numar de gazde ct si de trafic, a fost creat noul standard IPv6. Adresa de IP identifica unic un calculator sau alt dispozitiv (imprimanta) al ret elei TCP/IP. http://www.east.utcluj.ro/mb/mep/antal adresei IP a destinatarului. Ret elele ce folosesc protocolul TCP/IP dirijeaza mesajele pe baza Forma unei adrese IP este un numar de 32 de bit i, scrise ca 4 numere ntregi separate prin puncte. Fiecare numar poate fi ntre Universitatea Tehnica din Cluj-Napoca 0 si 255, de exemplu 168.212.226.204 poate fi o adresa de IP. ntr-o Catedra Mecanica se poate face ret ea izolata de Internet atribuirea acestor adrese si Programarealeator, condit ia fiind aceea ca Conf. Dr. aceasta ret Tiberiu Alexandru numerele folosite sunt unice. DacaIng. ANTALea privata va fi nsa legata la Internet este obligatorile folosirea unor adrese de IP nregistrate (pentru evitarea dublurilor). Cele patru numere se folosesc pentru a identifica o anumita ret ea si o gazda particulara. 168.212.226.204 se scrie n - binar 10101000.11010100.11100010.11001100. Daca subnet mask-ul este 255.255.255.000, adica 11111111.11111111.11111111.00000000 n binar, primii 24 de bit i din IP se folosesc pentru identificarea ret elei, iar ultimii 8 identifica calculatorul gazda (host-ul) din ret ea. Dimensiunea ret elei este funct ie de numarul de bit i folosit i la definirea gazdelor. Daca subnet mask-ul are 8 bit i pot exista cel mult 256 de adrese de gazde pentru o anumita ret ea. Daca subnet mask-ul are 16 bit i (255.255.0.0) atunci sunt 65536 de adrese de gazde disponibile n ret ea. n concluzie, adresa IP este formata din doua regiuni, una care identifica ret eaua, alta care identifica gazda (nodul din ret ea). Clasa adresei determina care parte a adresei apart ie de ret ea si care apart ie de gazda. Toate gazdele unei ret ele trebuie sa aiba acelasi prefix de ret ea si trebuie - sa aiba o valoare de gazda unica. Exista mai multe organizat ii (de exemplu, pentru Europa avem Rseaux IP Europens Network Coordination Centre.) care nregistreaza si administreaza adresele de IP din urmatoarele clase: Clas Cei mai semificativi bii ai adresei 0xxx Domenii de adrese posibile Adresa de subnet mask Reele pe clas Gazde pe clas Utilizare

A

0.0.0.0 - 127.255.255.255

255.0.0.0

128

16.777.214

Reele foarte mari, ntotdeauna subnetate Reele mari, tipic, subnetate

B

10xx

128.0.0.0 191.255.255.255

255.255.0.0

16,384

65,535

Concepte de retele si protocoale de retea - 17 C 110x 192.0.0.0 223.255.255.255 224.0.0.0 239.255.255.255 255.255.255.0 2,097,152 254 Reele mici

D

1110

255.255.255.255

268,435,456

0[2]

Grupuri de adrese de multicast (nu exist gazde) Rezervate n scopuri experimentale

E

1111

240.0.0.0 255.255.255.255

nedefinit

nedefinite

nedefinite

Este posibil ca administratorul unei ret ele sa divizeze o ret ea n mai multe ret ele virtuale numite subret ele (procesul este numit subnetare). Pentru aceasta bit ii din subnet mask care t in de gazda se mprumuta adresei de ret ea prin trecerea bit ilor dorit i din 0 n 1. De exemplu, fie adresa de ret ea 192.168.10.0 cu subnet mask-ul 255.255.255.0. Pentru a face din aceasta ret ea doua ret ele subnet mask-ul se face 255.255.255.128 (adica din 11111111.1111111.11111111.00000000 acesta devine 11111111.11111111.1111111.10000000). Aceasta nseamna ca n loc de 24 de bit i se folosesc 25 de bit i pentru ret ea si numai 7 pentru host-uri. Rezulta doua ret ele distincte cu 128 - de adrese de host posibile fiecare. Prima ret ea va avea domeniul de adrese n 192.168.10.0 192.168.10.127, iar cea de-a doua 192.168.10.128 - 192.168.10.255. Toate ret elele trebuie sa rezerve orice adresa de gazda ce are tot i bit ii 0 respectiv 1 pentru ret ea. - Astfel fiecare subret ea va avea o adresa specifica de ret ea si una de difuzare (broadcast). ntr-o - ret ea cu 256 de gazde, 0 si 255 vor fi adrese rezevate, deci, vor fi numai 254 de adrese de gazde posibile. Pentru exemplul de mai sus, cnd numai 7 bit i se folosesc pentru adresele de gazde, http://www.east.utcluj.ro/mb/mep/antal numarul maxim ar fi de 126 din 128 (pentru prima subret ea 192.168.10.0 este adresa de ret ea iar 192.168.10.127 adresa de difuzare). Universitatea Tehnica din Cluj-Napoca Catedra Mecanica si Programare Toate gazdele care dorim sa comunice direct n retTiberiu Alexandruaceeasi ret ea, adica s aiba - Conf. Dr. Ing. ANTAL -ea trebuie sa fie n acelasi subnet mask. Daca se folosesc subnet mask-uri diferite vor crede ca sunt n ret ele diferite si nu vor putea comunica direct, ci doar indirect, cu ajutorul unui router. Fra a intra n prea multe detalii, protocolul TCP/IP este cel ce st la baza Internetului. Acesta asigur trasportul datelor ntre aplicaiile, rulate pe calculatoarele unor reele distincte. Ceea ce numim generic Internet, este cea mai mare (n sensul rspndirii geografice) grupare de reele de calculatoare. Are o structur ierahic cu trei nivele: reele de tranzit cum sunt ARPAnet, NSFNet, MILNET - asigur traficul de volum foarte mare ntre reele pe care le leag , reele de mijloc reele intermediare, care conecteaz reelele mici la cea de tranzit, reele mici - la nivelul unei astfel de reele traficul este de tipul local. Protocolul HTTP Protocolul HTTP este ASCII i folosete protocolul TCP/IP pentru a realiza transmisia datelor prin Internet. Definiiile care urmeaz v formeaz cadrul necesar nelegerii celor ce se vor prezenta n continuare. # Protocol - un set de reguli formale ce descriu modul de transmitere al datelor, deseori, ntr-o reea. # Port - un canal logic ntr-un sistem de comunicaie. Protocolul TCP folosete numere de port pentru demultiplexarea mesajelor. Fiecare aplicaie are un numr de port unic asociat cu aceasta. Numrul de port al server-elor de Web este 80. # Server - un program care furnizeaz un serviciu unor alte programe (clienii). Legtura ntre client i server se realizeaz prin intermediul unor mesaje transferate, deseori, printr-o reea i folosete un protocol oarecare pentru codificarea cererilor clienilor i a rspunsurilor date de server. Server-ul este rulat continuu ateptnd sosirea cererilor sau poate fi pornit ca urmare a unei cereri lansate de un program special.

18 - Concepte de retele si protocoale de retea -

#

# #

Web server - un program server rulat pe un site de Web care trimite ca rspuns pagini Web la cererile HTTP ale navigatoarelor. Cteva nume de astfel de programe sunt: Apache, HTTPd, Personal Web Server i IIS. Site de Web - un calculator pe Internet pe care se ruleaz un server de World Wide Web (WWW). Un site particular este identificat printr-un nume de gazd (hostname ). WWW (World Wide Web) - sistem informaional client-server, hipertext, distribuit, iniiat de Laboratorul European de Fizica Particulelor din Geneva, Elveia. Pe WWW totul (documente, meniuri, etc.) se reprezint prin obiecte hipertext n formatul HTML. Legturile hipertext refer documente prin URL (standard pentru specificarea locaiei obiectelor pe Internet). Acestea pot referi o resurs local sau una aflat la distan accesibil prin FTP, Gopher etc. sau via protocolul HTTP folosit pentru transferul documentelor hipertext. Un program client, dintre cele care urmeaz, se ruleaz pe calculatorul utilizatorului (deseori, numit i navigator de Internet) - NCSA Mosaic, Netscape Navigator, Internet Explorer, Mozila FireFox etc. - furniznd dou servicii de navigare de baz: urmrirea unei legturi i transmiterea unei cereri server-ului.

Figure 4 Dialog HTTP

http://www.east.utcluj.ro/mb/mep/antal Universitatea Tehnica din Cluj-Napoca Catedra Mecanica si Programare Conf. Dr. Ing. ANTAL Tiberiu Alexandru

HTTP este un protocol de aplicaie, n situaia concret, se folosete de ctre clientul de Web i de ctre server-ul de Web pentru a comunica. n vederea realizrii legturii ntre client i server trebuie s cunoatem adresa IP a serverului i portul TCP asociat aplicaiei server (numrul de port sau, mai pe scurt, portul, asigur identificarea aplicaiei sau procesului de pe calculator). Unele dintre aceste informaii pot fi calculate (adresa de IP se poate determina din numele serverului, care este coninut n URL, cu ajutorul unui server de nume de domenii), altele sunt implicite (am spus deja c numrul de port implicit, pentru server-ele de Web, este 80). O tranzacie ntre clientul i serverul de Web este declanat de client prin emiterea unei comenzi de cerere (request), apoi server-ul trimite clientului un rspuns (response) la comand (vezi Figura 4). De exemplu, comanda GET a protocolului HTTP trimite server-ului de Web numele fiierului pe care dorim s-l vizualizm. Server-ul va rspunde cu fiierul cerut, dar l va preceda cu un grup de informaii care descriu transferul i formatul informaiilor transferate. Astfel, HTTP/1.0 este versiunea protocolului HTTP, 200 este codul de stare succes iar OK un mesaj ce

Concepte de retele si protocoale de retea - 19 -

explic codul de stare. Dup Content-Type , urmeaz coninutul fiierul cerut. Cea mai simpl metod de vizualizare a rspunsului transmis de server ctre client este utilizarea unei aplicaiie de tip terminal (de ex. telnet sau netcat ). Server-ul de Web monitorizeaz portul 80 pentru a vedea dac sunt clieni ce doresc s se lege la el. n Figura 5, se iniiaz o conexiune cu server-ul de Web mare , ce are adresa IP 127.0.0.1. Aplicaia netcat (nc ) este gratuit i permite conectarea de la distan la un calculator, folosind TCP/IP. Modul de utilizare este cel de emulare de terminal respectiv acest calculator apare la nivelul celui la care http://www.east.utcluj.ro/mb/mep/antal s-a c o n e c t a t Figure 5 - Utilizarea netcat-ului pentru descarcarea unei pagini de a s e m e n e a u n u i Web Universitatea Tehnica din Cluj-Napoca simplu terminal de la care se pot introduce caractere,Catedra Mecanica si Programare terge ecranul etc. Pentru a se poate poziia cursorul, se poate Conf. Dr. Ing.Web cu netcat se Alexandrulinia nc -v -v IP port . realiza aceast conectare la server-ul de ANTAL Tiberiu introduce Utilizarea lui -v asigur afiarea detailat a tuturor informaiilor legate de conexiune. Dup realizarea conexiunii, tot ceea ce se scrie pe ecranul terminalului va fi trimis exact server-ului. Deoarce ne legm la un server de Web, trebuie si trimitem o comand a protocolului HTTP. Prin GET /poze/t.htm HTTP/1.0 i se cere server-ului s trimit clientului coninutul paginii cu numele t.htm stocat n directorul virtual poze . Tasta trebui apsat de dou ori, dup care acesta va trimite rspunsul lui clientului. Deoarece clientul nostru nu este un navigator, ci doar un emulator de terminal (nu tie interpreta limbajul HTML n care s-a scris pagina), pe ecran, rspunsul apare afiat n ASCII. Se observ c rspunsul are trei pri distincte: # prima linie care ne spune starea rspunsului (HTTP/1.1 200 OK); # antetul (header): o regiune format din perechi nume: valoare terminat cu o linie vid; # corpul (body): coninului scris n limbajul HTML al paginii cerute. Aceast descriere a dialogului ntre sever-ul de Web i client a fost prezentat prin prisma protocolului HTTP, deoarece nvarea se face mai comod dac cititorul vede mcar o parte a descrierii. Etapele acestui dialog vor fi ns reluate, ntr-un context mai general i mai puin tehnic, pentru asigurarea percepiei golbale asupra procesului.

20 - Introducere n ASP

Ce este ASP?Active Server Pages (ASP) este o combinaie de tehnologii ce permit crearea unor documente care conin poriuni de HTML i de program. Utilizarea ASP oblig la nvarea unor colecii de instrumente de dezvoltare, limbaje de programare, tehnici i tehnologii de programare. ASP, de asemenea, necesit folosirea unui Web server care prelucreaz cererile clienilor i formuleaz rspunsurile n mod dinamic, individualizate pe baza unui proces logic, a unui fiier, a unor date dintr-o baz de date i prelucreaz datele individuale ale clientului utilizator. ASP permite tratarea fiecrui utilizator ca o entitate unic, dei toi utilizatorii ruleaz acelai program pe un singur calculator care este Web server-ul. De la HTML la ASP HyperText Markup Language (HTML) este un format de fiiere text folosit pentru definirea modului de afiare a coninutului unei pagini de Web, de obicei ntr-un navigator. Acesta este motivul pentru care HTML a devenit att de popular. Pn la apariia HTML singura modalitate prin care un novice n calculatoare putea s afieze text i grafic pe ecran erau editoarele de texte care puteau lucra n modul WYSIWYG (What-You-See-Is-What-You-Get). ns i aici erau probleme. Pentru pstrarea compatibilitii ntre documente toi utilizatorii trebuiau s foloseasc acelai sistem de operare i acelai editor de texte. HTML a schimbat acest calvar, prin simplitatea lui oferind n plus posibilitatea de navigare ntre fiiere fr a ti locul n care se afl acestea. Acest mod de navigare se numete hipertext, iar conceptul a fost inventat de Ted Nelson http://www.east.utcluj.ro/mb/mep/antal cu 30 de ani nainte de apariia HTML. Datorita simplitii HTML, n scurt timp de la scoaterea lui pe pia, acesta a devenit limbajul folosit pentru afiarea informaiilor pe WWW. Dup ce Universitatea Tehnica din Cluj-Napoca milioane de pagini au fost publicate pe Internet, unii dintre cititori au nceput s se plng de Catedra Mecanica si Programare faptul c informaiile nu erau suficient de specifice. Ei doreau o posibilitate de personalizare a Conf. Dr. Ing. ANTAL Tiberiu Alexandru paginilor, interactivitate, posibilitatea de memorare a paginilor sau, mai pe scurt, doreau aplicaii i nu doar simple pagini de informaie. CGI HTML, fiind un limbaj foarte simplu, nu putea ndeplini aceste condiii fr a avea n spate un motor de aplicaii. # Terminologie CGI (Common Gateway Interface) - un standard pentru rularea unor programe externe pe un server WWW HTTP. CGI specific modalitatea de transfer pentru argument ctre programul n execuie ca o parte a unei cereri HTML. De asemenea, definete o mulime de variabile de mediu. Deseori, programul va avea ca rezultat text HTML care va fi retrimis ctre navigatorul care a transmis cererea, dar este posibil i redirectarea ctre un alt URL. CGI permite ca textul HTML ntors s depind ntr-un mod arbitrar de cerere. Programele CGI accept argumentele prin linia de comand. Perl este un limbaj de script des folosit la scrierea programelor CGI. Cnd server-ul primete o cerere de execuie CGI creeaz un nou proces pentru execuia programului extern. Dac dintr-un oarecare motiv programul "crap" sau cererile ctre server vin ntr-un numar mult prea mare, acesta nu va putea retrimite rspunsurile n timp util si se va "mpotmoli" n procese, performanele lui scznd mult. URL (Uniform Resource Locator) - un standard pentru specificarea unui obiect pe Internet. Se utilizeaz n documentele HTML pentru specificarea sursei unei hiperlegturi. Iat cteva exemple:ftp://wuarchive.wustl.edu/mirrors/msdos/graphics/gifkit.zip ftp://spy:[email protected]/pub/topsecret/weapon.tgz

#

Introducere n ASP - 21

http://www.w3.org/default.html news:alt.hypertext telnet://dra.com mailto:[email protected] http://wombat.doc.ic.ac.uk/?Uniform+Resource+Locator http://www.w3.org/default.html#Introduction

Partea din faa caracterului : specific schema de accesare sau protocolul. Partea de dup : se interpreteaz n funcie de schema de acces. n general, cele dou caractere // descriu un nume de host (host - un nume care identific unic un calculator pe Internet; alte forme folosite mai sunt: host:port sau pentru FTP utilizator: parola @host sau utilizator@host ). Schemele includ ftp, http, gopher sau WAIS. Schema fiierului poate fi folosit numai pentru referirea unui fiier aflat pe host. Scheme mai puin folosite sunt news, telnet sau mailto (e-mail). Numarul de port poate fi omis din URL, caz n care acesta ia valoarea implicit de 80. Ultima parte, opional, din URL poate fi un ir de caractere precedat de ? sau un fragment de identificare precedat de # pentru specificarea unei poziii particulare n document. # hiperlegtur - o referin dintr-un punct al unui document hipertext ctre un alt document sau o alt poziie din acelai document. Navigatoarele afieaz hiperlegturile dintr-un document ntr-o form i culoare distinct de textul obinuit al acestuia. Atunci cnd utilizatorul activeaz o hiperlegtur (printr-un clic de mouse pe aceasta) navigatorul va afia destinaia stocat n hiperlegtur. # limbaj de script (script language) - un limbaj de programare relativ mic, deseori http://www.east.utcluj.ro/mb/mep/antal interpretat (nu compilat). Universitatea Tehnica din Cluj-Napoca HTML a fost ajutat de CGI s poat rspunde cerinelor tot mai dure formulate de utilizatori. O Catedra Mecanica si Programare aplicaie CGI se ruleaz peConf. Dr. Ing. ANTAL Tiberiu Alexandru server. Cnd navigatorul contacteaz server-ul i formuleaz cererea, aplicaia CGI va ntoarce text HTML navigatorului. La nivelul aplicaiei CGI se pot realiza prelucrri ale informaiilor trimise prin cererea navigatorului i se poate genera un rspuns care difer n funcie de anumite condiii. Dei aplicat iile CGI pot fi scrise n aproape orice limbaj de programare, majoritatea programatorilor au folosit limbajul Perl (Practical Extraction and Report Language, deseori numit n lumea bun a programatorilor Pathologically Eclectic Rubbish Lister) datorit posibilitilor avansate a lui de prelucrare a textelor. Programele CGI folosesc formulare pentru a interaciona cu utilizatorul n vederea realizrii unor cutri i pentru a ntoarce rspunsuri personalizate. Din pcate CGI avea cteva probleme. Primele versiuni de CGI trebuiau s ncarce n memorie aplicaia CGI pentru fiecare cerere. n cazul unor site-uri cu trafic mai mare aceasta nsemna aproximativ 100 de cereri pe secund. ncrcarea i descrcarea aplicaiilor lua ns mult din timpul de lucru al Web server-ului. Acesta este motivul pentru care firmele serioase de software de Web au cutat alte soluii. Noile concepte au fost standardizate sub numele de Internet Server Application Programming Interface (ISAPI) sau, n cazul server-elor Netscape, Netscape Server Application Programming Interface (NSAPI). n acest caz aplicaiile CGI puteau fi rulate ca o parte a server-ului de Web (nu mai erau aplicaii externe lui) fr a mai trece prin ncrcarea i descrcarea lor cu fiecare cerere. Avantaje ASP Cteva dintre avantajele principiale ale ASP sunt prezentate n continuare. Independena de limbajul de programare Motorul ASP nu depinde de un anumit limbaj de programare. Motorul ASP nu ruleaz codul scris de programator. El este o gazd independent de limbajul de script folosit. n acest fel, el poate folosi orice limbaj care este compatibil cu cerinele descrise n Microsoft Scripting Host. Dac este cazul, cod n mai multe limbaje de programare poate fi scris pe aceeai pagin. Motorul ASP

22 - Introducere n ASP

va separa codul script de HTML, apoi va cere motorului corespunztor s-l ruleze. Majoritatea codului care urmeaz va fi scris n limbajul VBScript, cu except ia unei pa rt i scurte care va fi scrisa n JavaScript (n secvent ele de cod urmatoare caracterul E are semnifica o linie ntrerupta din motive de spat iu). ASP este simplu de nv|at Una dintre problemele calculatoritilor este gsirea unui limbaj de programare pe care ne-programatorii s-l poat nelege n vederea implementrii unor operaii tipice anumitor munci. Ideea reutilizrii codului scris de cineva n alt parte permite crearea unor aplicaii funcionale chiar i de ctre neprofesionitii n programare. ASP face legtura ntre mai multe tehnologii. Astfel, componente software scrise de programatori profesioniti pot fi integrate n orice aplicaie fr mult efort de catre programatorii ne-profesionisti. Alte metode pentru crearea de pagini Web dinamic ASP este cea mai nou modalitate de creare a paginilor Web dinamice, dar nu este singura modalitate de lucru. Prin anii '90 cea mai utilizata tehnologie Web era programarea CGI. Programe CGI Programele CGI sunt aplicat ii executabile pe care server-ul de Web le ruleaz atunci cnd navigatorul lanseaz o astfel de cerere. Programul CGI prelucreaz cererea prin codul scris i ntoarce text HTML navigatorului. Diferena dintre un program CGI i o pagin de Web static http://www.east.utcluj.ro/mb/mep/antal este aceea c textul HTML ntors navigatorului poate fi diferit n funct ie de utilizatorul care face cererea, a locului de unde o face i a momentului ales. Microsoft a observat c programele CGI Universitatea Tehnica din Cluj-Napoca nu sunt cel mai eficient mod de prelucrare a cererilor pentru generarea unui coninut activ. Catedra Mecanica si Programare Motivul ineficienei este necesitatea ncrcrii i descrcrii programului CGI la fiecare cerere. Conf. de lucru const n protocolul de transfer hipertext (HTTP Explicaia folosirii acestui mod Dr. Ing. ANTAL Tiberiu Alexandru HyperText Transfer Protocol). O cerere HTTP este o tranzacie scurt ntre un client i un server. Att server-ul ct i clientul vor uita c tranzacia a avut loc dup derularea ei. La fiecare tranzacie HTTP clientul i server-ul, pe baza unui protocol fix, vor derula aceeai comunicaie. Apoi, ntruct server-ul uit cine a fost clientul va descrca din memorie programul CGI ncrcat ca urmare a cererii navigatorului. Dac apare o nou cerere programul CGI trebuie rencrcat, iar aceast rencrcare este deseori mai nceat dect execuia programului n sine. Din punctul de vedere al server-ului de Web activitatea de ncrcare a programelor CGI este neproductiv. Soluia la aceast problem s-a numit ISAPI. Ce este ISAPI? Pentru eliminarea acestei probleme legate de aplicaiile CGI, Microsoft a introdus o nou interfa numit ISAPI (Internet Server Application Programming Interface). Aici, timpul necesar pentru ncrcarea programului CGI se pstreaz, dar acesta nu mai este descrcat din memorie la terminarea rezolvrii cererii. El va rmne ncrcat n memorie att timp ct server-ul funcioneaz sau pe o durat de timp predefinit. Exist dou tipuri de programe ISAPI: aplicaii ISAPI i filtre ISAPI. Aplicaii ISAPI Aplicaiile ISAPI se ruleaz dup ce server-ul de Web a primit cererea. Aplicaiile ISAPI permit adugarea de noi funcii server-ului de Web cu pstrarea facilitilor deja existente ale server-ului. Motorul ASP este o aplicaie ISAPI. IIS (Internet Information Server) transfer cererile de fiiere ASP motorului ASP care prelucreaz cererea pentru a ntoarce coninutul dinamic. Filtre ISAPI Filtrele ASP sunt aplicaii care se ruleaz nainte ca server-ul de Web s primeasc o cerere n

Introducere n ASP - 23

acest scop. Acestea, deseori, permit monitorizarea sau interceptarea unor cereri de prelucrri speciale. Cnd se folosesc ASP i HTML mpreun|? HTML este un limbaj simplu i flexibil pentru organizare i formatare, dar nu are integrat un limbaj de programare. Dac se dorete afiarea de texte statice, HTML este perfect. Dac ns coninutul de afiat se schimb des sau acesta trebuie personalizat pentru grupe de utilizatori HTML nu poate face fa ntruct la nivelul lui nu se pot lua decizii. Pentru acest scop este nevoie de un limbaj de programare. Scripturile ASP ofer mecanisme care permit lucrul cu baze de date, luarea unor decizii, accesul la resursele hard ale calculatorului server etc. pentru generarea de pagini HTML cu un coninut actualizat n mod dinamic. Comparaie ntre ASP i alte tehnologii de dezvoltare a aplicaiilor Web Terminologie # component ActiveX - o unitate de cod executabil (.exe, .dll sau .ocx) care respect specificaiile ActiveX pentru crearea obiectelor. Tehnologia ActiveX permite ca programatorii s asambleze componente software reutilizabile ntr-o aplicaie sau ntr-un serviciu software. # COM (Component Object Model) - tehnologie inventat de Microsoft pentru dezvoltarea aplicaiilor prin componente software. COM definete principiile pentru implementarea cu succes a ncapsulrii, polimorfismului i a motenirii mpreun cu o structur pentru http://www.east.utcluj.ro/mb/mep/antal distribuirea acestor componente # DLL (Dynamic Link Library) - o grupare de rutine dintr-o bibliotec ce pot fi apelate din Universitatea Tehnica din Cluj-Napoca proceduri i care se ncarc i se leag n aplicaie, n momentul execuiei acesteia. Catedra Mecanica si Programare Conf. n Ing. ANTAL celelalte tehnologii ASP are cteva avantaje majore Dr. comparaie cuTiberiu Alexandru i medii folosite pentru dezvoltarea aplicaiilor de Web: 1. codul ASP este stocat n fisiere text - fiierele text sunt uor de modificat inclusiv dup depunerea pe server. Au uriaul avantaj de a putea rezolva orice problem folosind un editor de texte simplu. Aplicaiile Web ce depind de cod compilat sau de obiecte ActiveX sunt mult mai greu de ntreinut i de actualizat. codul ASP expira n timp - IIS (Web server-ul firmei Microsoft) oprete execuia codului ASP automat dup 90 de secunde (durata de timp se poate modifica). Dac dintr-o eroare scriem un cod care are o bucl infinit sau dac cineva cere milioane de nregistrri, server-ul nu va fi blocat dect n perioada celor 90 de secunde. Muli furnizori de internet nu folosesc aplicaii compilate pentru motivul c cele ASP expir dup un anumit timp. codul ASP nu blocheaza server-ul - codul ASP are limitri dure, de exemplu nu vei putea citi sau scrie fiirere binare direct cu ASP. Este foarte dificil ca sever-ul IIS s fie blocat, acesta este nc unul dintre motivele pentru care muli furnizori de servicii internet prefer s lucreze cu tehnologia ASP. codul ASP nu necesita nregistrare - Programul de instalare al IIS va instala DLL-urile motorului ASP, cele de script, Microsoft ActiveX Data Objects DLL (ADO) i Microsoft Scripting Runtime DLL. Acestea sunt toate componentele necesare rulrii unei aplicaii ASP. Celelalte instrumente de dezvoltare necesit instalri de componente adiionale pe server i operaii cu registrul de Windows.

2.

3.

4.

24 - Introducere n ASP

5.

aplica-iile ASP sunt mici - ntruct majoritatea DLL-urilor sunt deja instalate pe server t este necesar doar copierea fiierelor cu cod, a imaginilor i a fiierelor de suport pentru ca aplicaia ASP s devin funcional. Pe msur ce aplicaiei i se adaug tot mai multe componente ActiveX compilate ne ndeprtm tot mai mult de o aplicaie mic. aplica-iile ASP pot fi actualizate fa oprirea IIS - la prima vedere nu pare s fie un t ra avantaj mare atunci cnd se ruleaz o singur aplicaie pe server. Atunci ns cnd se ruleaz zeci de aplicaii nimeni nu dorete oprirea server-ului numai pentru c una dintre ele va fi actualizat.

6.

http://www.east.utcluj.ro/mb/mep/antal Universitatea Tehnica din Cluj-Napoca Catedra Mecanica si Programare Conf. Dr. Ing. ANTAL Tiberiu Alexandru

Dialogul client-server pe Web - 25

Etapele desf|ur|rii dialogului, ntre client i server, pe WebCu fiecare introducere a unui URL nou n cutia de adrese a navigatorului, selectarea unei legturi, sau a transferului unui formular, navigatorul va mpacheta informaii despre el nsui, URL i uneori despre utilizator i le va trimite server-ului de Web sub forma unei cereri. Motorul ASP este o colecie de obiecte care conin informaii despre cerere, tehnologia de script folosit pentru luarea deciziilor, despre modul de tratare a cererii ct i despre server-ul de Web. nainte de a detalia modul de lucru a motorului ASP s vedem anatomia unei cereri. Orice cerere pe Web necesit dou componente, clientul i server-ul de Web. Clientul este, deseori, un navigator dar poate fi i un spider (program care parcurge legturile de pe Web pentru a culege informaii) sau un agent (un program nsrcinat cu gsirea unor informaii specifice care foloseste de regula motoare de cutare). De obicei, server-ul i clientul sunt pe dou calculatoare diferite, dar se poate ca acestea s fie rulate i pe acelai calculator. Att server-ul ct i clientul trebuie s foloseasc acelai protocol pentru a comunica. Protocolul este o convenie cu privire la desfurarea unei sesiuni de comunicaie (iniializare, transfer de informaie i terminare). Exist mai multe protocoale folosite la transferul de informaie pe Web; cele mai comune sunt HTTP i FTP (File Transfer Protocol). Indiferent de protocolul folosit pentru cererile pe Web acestea se rezolv printr-un serviciu de transfer de baz numit, TCP/IP (Transmission Control Protocol/Internet Protocol). Acesta este standardul de comunicaie global pentru dou calculatoare ce schimb informaie prin Internet. Server-ul ruleaz o bucl infinit n care verific http://www.east.utcluj.ro/mb/mep/antal iniializarea comunicaiei. Clientul, trimite o secvena de iniializare pentru a marca nceputul unei sesiuni. Cnd server-ul primete cererea de iniializare valideaz transmisia printr-un rspuns Universitatea Tehnica din Cluj-Napoca ctre client. Apoi, conversaia ntre client i server continu n ambele sensuri pn cnd Catedra Mecanica si Programare rspunsul dat la cerere se termin. Conf. Dr. Ing. ANTAL Tiberiu Alexandru Modul n care clientul trimite cererea Clientul trimite toate cererile unui server de nume (naming server). Acesta are o baz de date cu nume ce sunt asociate unor adrese de IP. Acest server traduce numele adresei de accesat n cifre. O adres de IP este format din patru numere n domeniul 0-255 separate prin caracterele punct. De exemplu: 207.225.123.37. Fiecare adres de IP identific n mod unic un calculator dintr-o reea. Dac primul server de numer nu cunoate adresa dorit atunci o va transmite urmtorului dintr-o ierarhie prestabilit. Dac nici un server de nume nu poate traduce numele adresei ntr-o adres de IP cererea va ajunge la un server de nume mai puternic care stocheaz lista tuturor adreselor publice de IP. Dac nici aici traducerea nu se poate realiza, atunci rspunsul negativ va fi transmis pe baza ierarhiei server-elor de nume pn cnd ajunge napoi la navigator. Acesta este momentul n care navigatorul va afia un mesaj de eroare. n caz de succes, server-ul de nume ntoarce adresa de IP navigatorului, iar acesta va folosi adresa de IP pentru a contacta server-ul de Web asociat numelui respectiv. Multe pagini conin referine la alte pagini sau imagini pe care server-ul de Web trebuie s le cear din alta parte pentru ca pagina s poat fi complet. Astfel, procesul de afiare a unei pagini Web se face prin mai multe conversaii scurte ntre navigator i server. Tipic, navigatorul primete pagina principal, apoi caut referinele ctre alte fiiere, continu cu afiarea paginii principale n timp ce i formuleaz cererile cu privire la referinele ctre fiierele necunoscute. Prelucrarea cererii de c|tre server Din punctul de vedere al server-ului de Web fiecare conversaie este un contact nou. Server-ele de Web nu rein un anumit navigator ntre dou cereri ale acestuia (protocolul HTTP 1.1 are deja

26 - Dialogul client-server pe Web

posibilitatea meninerii unei conexiuni cu cereri multiple). P|rile componente ale unui URL Linia pe care o introducem ca adres n navigator este un URL. Server-ul descompune acest ir n mai multe componente care sunt separate prin dou puncte, slash, punct etc. Fie URL-ul:http://www.unsite.ro/Programe/default.htm?Pagina=1&Paragraf=2

Elementele componente ale URL-ului de mai sus se prezint n tabelul urmtor: Compoment URLhttp

Funcie Protocol Numele domeniului

Descriere Spune server-ului protocolul care l va folosi pentru a rspunde la cerere. Aceast parte din URL se traduce ntr-o adres de IP. Numele de domeniu este format din mai multe pri separate prin caracterele punct.

www.unsite.ro

Programe

default.htm

Server-ul transform acest nume ntr-o cale fizic pe hard disc. http://www.east.utcluj.ro/mb/mep/antal Nume fiier Server-ul va ntoarce coninutul acestui Universitatea Tehnica din Cluj-Napoca fiier. Dac fiierul este unul executabil Catedra Mecanica si(de exemplu fiier ASP) server-ul l va Programare Conf. Dr. Ing. ANTAL Tiberiu Alexandruntoarc coninutul executa n loc s fiierului. Separator Acest caracter separ cererea de fiier de parametrii adiionali trimii mpreun cu cererea. n exemplul prezentat URL-ul are doi parametri Pagina=1&Paragraf=2 . Programele scrise, cum sunt i paginile ASP, pot citi parametrii i-i pot folosi pentru a obine informaii adiionale. Separ numele parametrului de valoarea dat acestuia. Parametrul cu numele Pagina ia valoarea 1 . Toate valorile de parametri se transfer ca iruri de caractere. Programele scrise pot interpreta aceste valori ca numere numai n urma conversiei lor de la ir la numr. Separa perechile parametru=valoare ntre ele. Al doilea parametru cu valoarea lui.

Director virtual

? (semul de ntrebare)

Pagina

Nume parametru

= (semnul egal)

Separator Valoare parametru

1

&

Separator

Paragraf=2

Pe Web, referirea la fiiere nu se face printr-o cale fizic, ci prin una virtual. Dup transferarea

Dialogul client-server pe Web - 27

URL-ului, server-ul transform calea virtual n una fizic. De exemplu, calea numeCale din URL-ul http://numeSever/numeCale/fisier.asp , este una virtual. Directorul virtual numeCale va fi transformat ntr-o cale ctre un director local de exemplu de forma c:\inetpub\wwwroot\asp\fisier.asp . Server-ul verific existena fiierului cerut. n cazul n care acesta nu exist el va ntoarce mesajul de eroare HTTP 404 - File not found . Dup localizarea resursei cerute server-ul verific dac contul care cere informaiile are drepturile de accesare a resursei. Dac de exemplu, contul de pe care s-a fcut cererea este unul anonim i utilizatorul a cerut un fiier pentru care acel cont nu are drepturi de citire, server-ul va ntoarce mesajul de eroare HTTP 403 - Access Denied . Mesajele de eroare 403 sunt organizate pe subnivele. Se poate, deci ca textul mesajului s fie diferit de cel de sus n funcie de motivul exact care a condus la imposibilitatea deservirii cererii (coninutul la majoritatea mesajelor de eroare poate fi personalizat). Modul n care server-ul r|spunde la o cerere Server-ele difereniaz tipurile de fiiere cerute prin mai multe metode. IIS face aceast difereniere pe baza extensiei fiierului (de exemplu: asp, htm, exe etc.) la fel cu Windows Explorer. Atunci cnd se face clic dublu pe un fiier, Windows Explorer caut extensia fiierului n registru (o baz de date special n care se stocheaz informaii legate de sistem i de aplicaii). http://www.east.utcluj.ro/mb/mep/antal Registrul conine cte o intrare pentru fiecare extensie de fiier nregistrat. Fiecare extensie are asociat o intrare de tip de fiier. Fiecare tip de fiier are asociat un fiier executabil sau o Universitatea Tehnica din Cluj-Napoca modalitate prin care se prelucreaz. Server-ul extrage extensia de fiier din numele lui apoi caut Catedra Mecanica acel program programul asociat acesteia i lanseaz n execuie si Programarepentru a ntoarce fiierul. Conf. Dr. Ing. ANTAL Tiberiu Alexandru Majoritatea server-elor de Web folosesc extensia fiierelor pentru a determina modul de prelucrare a cererii, dar nu folosesc asociaii din registru ci au o list proprie de perechi (extensie, aplicaie), n acest scop. Intrrile n aceste liste poart denumirea de tipuri MIME (Multipurpose Internet Mail Extensions) ntruct programele de e-mail trebuie s cunoasc tipul coninutului fiierului inclus n mesaj. Fiecare tip MIME, asemenea asocierilor din registru, este asociat unui program sau unei aciuni. Server-ul de Web caut lista pentru a gsi extensia corespunztoare fiierului cerut. Majoritatea server-elor care nu gsesc extensia ceruta trateaz problema permind descrcarea fiierului n cauz pe client. Unele server-e au predefinite aciuni n cazul n care se cere un URL care nu are nume de fiier. Deseori, un fiier implicit, cu numele default.htm sau index.htm , va fi ntors. Numele fiierelor implicite de ntors este configurabil, la nivel de server sau, la nivel de director virtual. Server-ul poate trimite informaia cerut pe msur ce genereaz rspunsul sau l poate stoca ntr-un buffer pentru a-l trimite tot, ntr-o singur bucat, atunci cnd acesta este formulat complet. Rspunsul este format din dou pri: antetul (header) i corpul (body). Antetul conine informaii legate de tipul rspunsului. Aici apar: codul rspunsului, tipul de MIME, data i ora dup care rpunsul devine invalid, un URL pentru redirectare, orice valori de cookie (un ir de caractere pe care navigatorul l salveaz pe discul clientului) pe care server-ul dorete s le stocheze. Un cookie poate exista pe durata unei sesiuni de navigare, pn la o anumit dat de expirare sau poate fi permanent. Navigatorul trimite server-ului un cookie asociat unui site pentru fiecare cerere ulterioar adresat pentru acel site. Modul n care clientul prelucreaz| r|spunsul Clientul, deseori un navigator, trebuie s cunoasc tipul coninutului transmis ca rspuns de ctre server. El citete tipul de MIME din antet pentru a determina tipul coninutului. La majoritatea

28 - Dialogul client-server pe Web

cererilor tipul de MIME este text/html sau image/gif , dar ar putea fi i fiier editor de texte, fiier video, fiier audio, o animaie sau orice alt tip de fiier. Asemenea server-ului, navigatorul folosete i el registru i liste de tipuri de MIME pentru a determina modul de afiare a fiierului. Pentru HTML i imagini navigatorul va folosi motorul lui intern. Pentru alte tipuri de fiiere el va apela serviciile de interfaare cu aplicaiile sau plug-ins-urile care pot afia informaiile corect. Navigatorul va asigna toat fereastra lui sau o parte din ea aplicaiei sau plug-ins-ului pentru ca aceasta s-i genereze coninutul. Atunci cnd corpul fiierului conine HTML navigatorul va analiza fiierul pentru a extrage marcajele din coninut. Apoi, marcajele vor fi folosite pentru a determina modul de afiare a coninutului pe ecran. Noile fiierele HTML pot include mai multe tipuri de coninuturi n plus faa de marcaje, text i imagini. Navigatorul le va trata pe fiecare diferit, n funcie de tip, dup cum urmeaz: Cascading Style Sheets (CSS) - CSS conin informaii despre modul de formatare a documentului. Navigatoarele moderne folosesc CSS pentru specificarea culorilor, marginilor, vizibilitii, poziiei etc. elementelor de pe pagin. Script - toate navigatoarele moderne pot rula cod JavaScript, dei, deseori, nu-l ruleaz n acelai mod. Termenul de JavaScript este folosit pentru secvent ele de cod scrise n limbajul de script JavaScript a lui Nestcape, dei el are dou variante n esen identice (aceeai sintax i suport), JScript a lui Microsoft i ECMAScript. n plus, fa de JScript, Internet Explorer permite programarea i n VBScript care este un subset a lui http://www.east.utcluj.ro/mb/mep/antal Visual Basic for Application (un subset a limbajului Visual Basic). Universitatea Tehnica din Cluj-Napoca Componente ActiveX sau Java Applets - acestea sunt programe mici care se ruleaz pe Catedra Mecanica si Programare calculatorul clientului si nu pe server. Componentele ActiveX ruleaz numai pe Internet Conf. Dr. Ing. ANTAL Tiberiu Alexandru Explorer i sub Windows, n timp ce Java Applets ruleaz aproape pe toate navigatoarele i platformele. XML (eXtensible Markup Language) - este un limbaj asemntor cu HTML, ambele au marcaje i coninut, fiind derivate din SMGL (Standard Generalized Markup Language). Marcajele HTML descriu modul de afiare a coninutului i ntr-o msura mai limitat, funciile coninutului. Marcajele XML descriu funciile coninutului. HTML este un limbaj de formatare i afiare n timp ce XML este un limbaj pentru descrierea coninuturilor. Prelucrarea cererilor ASP O cerere de fiier ASP parcurge aceleai etape cu un fiier HTML obinuit pn cnd ajunge la server. Mai departe ns server-ul va dirija cererea ctre motorul ASP n locul motorului implicit IIS. Motorul ASP va citi fiierul cerut fie de pe disc, fie din cache-ul server-ului de IIS dup care va analiza fiierul. Trei dintre etapele prelucrrii codului ASP de ctre server sunt importante din punctul de vedere al programatorului ASP: # motorul ASP va insera toate fiierele include . Aceste fiiere sunt separate de cel cerut iniial i IIS poate insera coninutul lor n fiierul cerut. Dup inserare, IIS prelucreaz fiierul ca i cnd fiierele inserate ar fi parte a celui cerut. Inserarea fiierelor cu include se face nainte ca motorul ASP s prelucreze codul. # motorul ASP ncepe s interpreteze codul. Codul este prelucrat secvenial n ordinea scrierii instruciunilor din fiier, cu excepia seciunilor marcate cu Function sau Sub . motorul ASP ntoarce rspunsul. Se poate controla dac rspunsul ntors de server

#

Explicarea termenului de script 29

este imediat (rspuns nebuffer-at) sau dac este stocat ntr-un ir pn cnd el este complet (rspuns buffer-at) prin setrile IIS. Navigatorul nu tie nimic despre tehnologia folosit de server pentru a rspunde cererii. Din punctul lui de vedere toate rspunsurile sunt iruri de caractere sau numere. Tipul de MIME din rspuns determin modul n care navigatorul va trata irul. Ce este un Script? Terminologie # Limbaj main - reprezentarea unui program care poate fi citit i interpretat de un calculator. # Limbaj de programare - un limbaj formal folosit pentru programarea calculatoarelor. Definiia unui limbaj particular se face prin sintax (modul n care simbolurile limbajului pot fi combinate) i semantic (semnificaia construciilor din limbaj). # Compilator - un program care convertete un program dintr-un limbaj surs (sau limbaj de programare) n limbaj main (cod obiect). # Interpretor - un program care ruleaz (execut) un alt program. Compilatorul nu ruleaz programul de intrare (programul surs) ci l traduce n cod executabil al mainii. Acest cod constituie ieirea compilatorului (rezultatul compilrii), el fiind stocat ntr-un fiier de unde poate fi ulterior rulat. Acelai program surs poate fi rulat direct de un interpretor sau poate fi compilat, dup care codul rezultat va fi rulat. Un program rulat pe un http://www.east.utcluj.ro/mb/mep/antal interpretor este mai ncet dect unul compilat, dar se poate ca timpul de interpretare s fie mai scurt dect cel de compilare. Interpretarea codului este mai nceat dect rularea Universitatea Tehnica din Cluj-Napoca codului compilat deoarece interpretorul trebuie s analizeze fiecare linie de program la Catedra s regenereze aciunile dorite, n timp ce codul compilat, fiecare reluare a rulrii i trebuie Mecanica si Programare Conf. face aciunea imediat. Dr. Ing. ANTAL Tiberiu Alexandru n cele discutate pn acum am folosit de mai multe ori termenul de script. Din pcate nu exist un rspuns foarte clar pentru acest termen el depinznd de documentaia consultat. Pentru Microsoft, un script este orice limbaj de programare ActiveX care expune o interfa compatibil cu Windows Scripting Host. Dou dintre cele mai comune limbaje de script ale lui Microsof