Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie

Embed Size (px)

DESCRIPTION

management

Citation preview

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-d

    Introducere1

    n volumul intitulat Ghidul managerului pentru noile tehnologii informaticei

    de comunicaie2

    , elaborat de aceiai autori, care a aprut n editura Lucman nnoiembrie 2002, am vizat n partea a cincea doar o prezentare frugal atehnologiei ASP. Am acordat mai multatenie XML.

    Aici vom avea n vedere aplicaii elaborate cu trei tehnologii: JSP, ASPi PHP,deci ne vom ntlnii cu limbajele respective.

    Ideea c un sit comercial poate fi realizat doar cu ajutorul pachetului MicrosoftFrontPage este greitdin start. Un sit comercial este mult mai complex dect un sitobinuit. i el se bazeazpe unul dintre limbajele de tip script, deci pentru scenarii:

    Java, JavaScript, VBScript, JScript, PHP sau PERL (Practical Extraction ReportLanguage), PerlScript.

    PHP i PERL merg pe filozofia Common Gateway Interface. Acest CGI se bazeazpeun formular completat de vizitator dar atenie, pentru fiecare client Web care accede unsit elaborat cu PHP sau PERL, se ncarcn memoria serverului att programele ct icte o copie a interpretorului. Este o risipde memorie!

    ASP i JSP au schimbat puin filozofia CGI. Avem tot timpul svlmurim cum!

    Stimate manager, vei fi nevoit scitii aceastcarte sau sapelai la un cunosctor alunuia din aceste limbaje. Oricum, vmai trebuie ceva bani pentru achiziionarea unuimediu de dezvoltare serios (vezi mai jos, medii IDE) i pentru un pachet software pentruadministrarea bazelor de date.

    Java i VBScript sunt limbajele de baz ale tehnologiilor JSP, Java Server Pages irespectiv ASP, Active Server Pages.

    Medii IDE pentru proiectarea siturilor comerciale

    Mai oportun este ca situl comercial sse realizeze cu ajutorul unui mediu de dezvoltareaa-zisul IDE, Integrated Development Environment. Un astfel de mediu are

    1Cursul Aplicaii de comer electronic i tehnologii predat de profesorul dr. Somnea Dan, lafacultatea R.E.I. an II, din anul 2002/2003 n locul cursului de Internet.

    2Putei comanda la editura Lucman (tel./fax: 021-223-7755, sau [email protected]) un exemplar.Editura are depozitul la adresa: Bucureti, str. Sevastopol nr.24. Mai sunt cca- 30 exemplare. Daclucrarea s-a epuizat, suntei trecut n lista de ateptare. Rotativa se pornete dacse aduncel puin300 comenzi ferme. Pnacum s-au scos dou tiraje, unul de 250 (sept. 2002) i al doilea de 330exemplare (nov. 2002). Urmeazca n luna sept. 2003 sse scoatun numr de cca. 350 exemplare,

    plus cte comenzi ar apare ntre timp. Exemplarele au fost destinate n principal formelor denvmnt de zi i distan, pentru facultatea R.E.I. Au fost i cumprtori izolai care au ... apucat

    cartea, pentru ctiau de aceti autori de la editura tehnic, cnd publicau acolo.

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-d

    instrumente pentru crearea unui proiect, scrierea programelor, depanarea lor (punerea lapunct) . Programele sunt componentele sitului.

    Exist medii care sunt orientate spre suprafee grafice. Iat cteva denumiri: AllaireJRun Studio, Apache Tomcat Servlet and JavaServer Pages Development with

    VisualAge for Java, Borland /Inprise JBuilder, Microsoft Visual InterDev, seria deservere .net Microsoft Entreprise (vezi mai jos), Macromedia Dreamweaver MX etc.

    Containere pentru servleturi/pagini JSP alias servere de aplicaii Web

    Ca sdezvoltai i stestai un sit comercial trebuie i o reea de PC-uri pentru ncercare.Ultima condiie este extrem de greu de simulat. De aceea s-au scris diverse simulatoarede ncercare pentru a afla cum se comportsitul la diverse trafice de ncrcare i condiiide reea.

    Pentru producia de situri comerciale dinspre platforma JSP sunt containerele pentru

    servleturi i pagini JSP: Allaire JRun, Apache Tomcat, BEA Weblogic EntrepriseServer, iPlanet Web Server Entreprise Edition, Sun NetObject, IBM WebSphereApplication Server, Oracle Application Server, Inprise Application Server.

    Lumea serverelor Microsoft .Net Entreprise i Visual Studio

    Dinspre platforma ASP citm strategia materializatde Microsoft Distributed NetworkArchitecture, adicarhitectura unui sistem distribuit de la corporaia cu acelai nume, cea stat la baza unei serii de zece servere plus serverul Windows 2000.

    Despre aceste servere nu putem emite pretenii de a le avea n A.S.E.! Instrumentul de

    dezvoltare al acestora a fost precis mediul IDE Microsoft Visual Studio InterDev!Sunt n total vreo zece servere. Pentru alte detalii, vezi i Epilog i referina /8/, odocumentaie plin de fraze ditirambice, aa cum sunt majoritatea comunicrilor i

    brourilor celor care caut s se fac nelei posibililor lor consumatori de produsesoftware. Pentru conformitate redm o mostrde fraz: Microsoft Commerce Server2000 permite afacerilor ?! din diferite domenii construirea de soluii e-commercescalabile (Sic !) personalizate, care optimizeaz experiena clientului i le ofermanagerilor un timp real (hopa !!!) de analizi control al afacerilor online. Spunei idumneavoastr domnule profesor Pruteanu ce ditrambi sunt aceti ! Ai nelesceva stimai actuali i posibil viitori manageri? Stii cnu nvinuim pe traductor ci,

    pe creatorii unor atari fraze cu salarii sfidtoare. Dar mai bine sne oprim ! i ce estemai grav este ccei ndrituii a-i face public marfa , i bat joc de munca celor careconcep aceste produse software din interiorul corporaiei Microsoft !

    Iatdeci o veritabil dilempentru un potenial administrator de sit comercial ca lumea! Nu este cazul sfii dezorientai!

    Srevenim pe pmnt !

    Ca s aflai ceva despre efortul de realizare al unui sit comercial mai nepretenios,ncercai sparcurgei acest manual, jumtate scris n limba romni jumtate n limba

    francez.

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-d

    n capitolele scrise n limba romnne ocupm de tehnologiile JSP i ASP, plecnd dela instrumente freeware fra avea acces la pachetul Macromedia Dreamweawer MX.Capitolele scrise n limba francez constituie o parte din cursul predat studeniloreconomiti de ctre profesorul dr. Mihai Calciu la Universitatea Lille I i, care are n

    vedere tocmai acest pachet alturi de aplicaiile EasyPHP, phpMyAdmin sub Windowsi mai ales Linux.

    Afirmam mai sus ceva legat de acel soft pentru bazele de date. Fiecare din siturilecomerciale trebuie s apeleze la baze de date. Deci trebuie s avei n vedere ca

    programatorul pe care l angajai s mai tie i unele comenzi ale limbajului deinterogare structurat, SQL, Structured Query Language.

    Dac vrei s recurgei la tehnologia PHP, deci i la limbajul mySQL (tot SQL),examinai i referina /5/, dar mai ales saruncai un ochi n capitolele scrise n francezdin aceastcarte.

    Pentru partea dedicattehnologiei ASP parcurgei capitolele 7-10, unde am explicat unexemplu de sit comercial testat n stadiul preliminar i care poate fi mbuntit.

    Pentru o privire asupra fiecreia dintre tehnologiile JSP, ASP i PHP, bazate peMacromedia Dreamweaver MX, citii i capitolele din partea a doua. n ce ne privete,n A.S.E. nu avem acces la Dreamweaver i ne mulumim i cu ce avem. i avem uneleinstrumente din platforma Windows!

    Am fi avut mai multe i pe partea de dezvoltare a aplicaiilor de e-commerce, dacam fiacceptat instalarea pe staiile din laboratoarele studeneti a unuia dintre dialectele Linuxn varianta WorkStation, de pildSuse, cu o suprafagraficKDE!

    n partea dedicat prezentrii tehnologiei JSP vei afla c, cu modestul cadru dedezvoltare (se folosete termenul kit n englez) J2SE, Java 2.0 Standard Edition alcorporaiei Sun MicroSystems, cu un container pentru servleturi i pagini JSP Resin1.1.4 sau JRun Standard 3.0, ambele cu regim de freeware, frdrept de folosire pentru

    producia de situri comerciale aductoare de profit i, cu un programator cunosctor allimbajului Java, nzestrat cu multrbdare, putei ncropi un sit comercial. Pentru acestacitii capitolele 1-6.

    ntre pachetele cu funcia de container pentru servleturi i pagini JSP citm n primul

    rnd pe Jakarta Tomcat. Un serios concurent este nsJRun, al firmei Allaire n douvariante: Standard i Studio. Ultimul este pe bani! Primul este shareware! Vezi i maijos.

    Tehnologia JSP a fost i este dezvoltatcu asiduitate de corporaia Sun Microsystems,n timp ce tehnologia ASP este opera celor de la Microsoft.

    Cadrul de lucru J2SE se poate descrca de la adresa: http://java.sun.com/products/jdk.Mai indicat este ns s procurai ediia Entreprise a aceluiai cadru i anume J2EE.Aceasta este nsdistribuitsub licencu prealabila perioadde testare (shareware).Att J2SE ct i J2EE nu folosesc suprafaa grafic. Tot atunci se instaleazautomat i o

    bibliotecde pachete cu clase Java, denumitJRE, Java Runtime Environment, adic

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-d

    maina virtualJava, Java Virtual Machine (vezi capitolul 1). Existcte un JRE pentrufiecare cadru de lucru.

    Cadrele de lucru J2SE i J2EE mai sunt denumite i SDK 2 Standard Edition, respectivpentru SDK 2 Entreprise Edition.

    Versiuni de motoare servlet

    Recomandm n ordine pe: Tomcat. Acesta a ajuns la versiunea 5. Merg foarte bine iversiunile mai vechi 3.1 sau 3.2, care au regimul de licendeschis.

    Existapoi aplicaia firmei Caucho Technologies denumitResin. Prin anul 2000 a fosto versiune distribuit sub licen deschis cu numrul 1.1.4. Pe aceasta o vomimplementa pe staiile studeneti din corpul 1000, etajul 4. Pachetul este creaia luiFerguson Scott. Dacai vizita portalul www.Caucho.comai constata cversiunile mainoi sunt pe bani cu trecere prin perioada de evaluare.

    n sfrit, compania Allaire posed pachetul JRun (versiunile Standard i Studio).Regimul de open source nu are dect versiunea 3.0 standard. Intrai i la:http://www.allaire.comca svconvingei ctotul este acum shareware deci pe bani!

    Pentru a crea cu trudun sit n ASP, recurgem la Microsoft FrontPage, MS Access,editorul wordpad i cam att!

    Ar fi fost mai bun Microsoft Visual InterDev. Nu emitem pretenii la Microsoft SQLServer n loc de MS Access.

    Acasavei de regulWindows 98. Sub acesta existMicrosoft Personal Web Server,

    versiunea a patra. Sub Windows 2000 Workstation Professional, dacl avei, se recurgela Microsoft Information Internet Server 5.0. IIS a aprut pe vremea sistemuluiWindows NT/4 varianta Server. IIS nu este acceptat i de Windows NT/4 Workstation!

    Din pcate toate acestea nu suport servleturi Java, dect daccumprai de la firmadausurile de rigoare! Folosesc ns cu dezinvoltur limbajul VBScript i obiecteleActiveX Data, ADO. ActiveX este dezvoltat dupmodelul obiectelor din componente,COM, Component Object Model. Acest ActiveX cruia n romglez i se spunecontroale ActiveX este accesibil att pe partea client (deci MSIE, nu i Netscape) cti pe partea de server.

    Insistm! Sub browserul Netscape obiectele ActiveX sunt ignorate!nainte de a trece mai departe, Windows 98 etc. permit instalarea motorului CauchoResin 1.1.4.

    Dar ce oferalii n materie de motoare servlet?

    ncepem cu AOL / Netscape. Pnde curnd a tronat Netscape Java Web Server caserver Web. El a fost nlocuit ns de ctre mai noul iPlanet Web Server EntrepriseEdition. Acesta a nlocuit i un alt server Web de la Netscape, denumit NetscapeEntreprise Server.

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-d

    Exist piese software i pentru platforme Unix, AIX/Linux. Despre aceste platformevezi referina /2/. Sub Linux troneazTomcat.

    Pro XML!

    Toate browserele se feresc srmnn urm i ncearcsse alinieze la standardul ilimbajul XML i la standardele XSL, XLST, Xpath etc. n mod tot mai hotrt. Conducdetaat doar editorul/browserul Mozilla de la NCSA i total necunoscutul editor/browserInDelv de la www.indelv.com. Sunt singurele care se descurc n XSLT, adicXLSTransformations.

    Nici nu ndrznim a vindica sprocurai i rsfoi o altreferinde peste 800 pagini,cu fraze ntortocheate, chiar din limba n care a fost conceput, englez. Este totui omuncmeritorie i enormdepusde ctre doamna sau domnioara Lee Anne Phillips,un exeget n materie de documentare asupra standardelor XML / XHTML. Este vorbade: XML, XPath, XLink, Xpointer, de limbajele de stil, precum: CSS1, CSS2, DSSSL,XSL, XSLT. Cartea s-a numit n original Special Edition Using XML i a fost tradusla editura Teora sub denumirea de XML. A aprut la editura americanQUE, n anul2000 iar la noi, un an mai trziu. Bravii notri traductori nu au desclcit i unele fraze

    prea lungi din lucrarea original! What a pitty!

    Am presupus poate greit cai rsfoit referina /1/, pag. 208-233. Ai fi aflat destuledespre folosirea intens a limbajului XML n schimburile electronice de documentefinanicar-contabile dintre verigile implicate n tranzacii din siturile: B2B, B2C, C2C.Vezi totui i partea a doua din limba francez.

    Pentru ai fi independeni ntructva de referina /1/ am alctuit anexa A. Aici tratmHTML, DHTML i o scurt iniiere n XHTML, ca s depim aceast referin. nIT&C intervalul de timp ideal pentru actualizarea documentaiilor este semestrul! Anuleste prea lung!

    Spornim la drum ntr-o manierct de ct metodic.

    Conveniile de scriere

    Textul obinuit este cules cu acest set de caractere (font). Listele de programe suntculese cu acest corp de liter:

    Razboiul din Irak!

    cnd nu sunt numerotate sau aa:

    01.

    02. Razboiul din Irak!

    cnd sunt numerotate.

    Procedeele de operare sunt anunate prin pictograma alturat.

    Observaiile importante sunt anunate prin pictograma alturat

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-d

    Universul termenilor platformei

    JavaVom explica pe nelesul dumneavoastro serie de termeni din universul Java.

    Au trecut destul de muli ani de cnd acest limbaj concureazcu deosebit succes

    familia de limbaje C/C++. Java este adulati de ctre IBM et. Co, n ciuda

    efortului venerabilei corporaii Microsof. Din cauza proliferrii unui numr

    imens de pachete de clasei componente, se poate spune cJava i triete a

    doua tineree, acum n perioada programrii orientate spre componente.

    Client Web i server Web

    adar sintrm n universul termenilor platformei Java!

    Sadncim fade referina /1/ dounoiuni i anume, cea de client Web i ceade server Web. Dou calculatoare comandate fiecare de cte un program,

    comunicntre ele. Unul dintre programe servete la rsfoirea spaiului Web. I se maispune program de vizitare, de navigare. Cine nu a folosit Microsoft Internet Explorer(MSIE)! Acestuia si spunem client Web sau browser.

    Pe cellalt calculator, gazda sitului vizitat, se aflun alt program denumit server Web.El este specializat n executarea programelor scrise ntr-unul din limbajele pentru

    scenarii.Scomplicm puin lucrurile! Exist i un server Web dar poate exista i un aa-zisserver de aplicaii Web. I-am spus mai sus motor servlet.

    Dei tratm tehnologia JSP, admitei o parantez! n tehnologia ASP, serverul MS IISeste i gazda aplicaiilor. Acest IIS interpreteaz pe loc instruciunile programelor cuextensia .asp, componente ale unei aplicaii i genereazdinamic un document tip htmlcare ajunge la PC-ul gazda browserului MSIE. Terminat paranteza!

    Aici este vorba nsde tehnologia JavaServer Pages. Serverul de aplicaie poate prelua

    i sarcina serverului Web clasic, pe lngaceea de container pentru servleturi. Mai poate

    Capitolul

    1

    A

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-d

    s se ntmple ns i aa: s trimit serverului Web clasic servleturile ca s legestioneze, adicsle punla dispoziia cererilor clienilor Web. Oricum, serverul deaplicaii are n aceasta doua ipostazdoar funcia productor de servleturi.

    Protocolul http i dialogul dintre client Web server Web. Lanul

    slbiciunilor !

    Spuneam mai sus cserverul Web dialogheazcu clientul Web pe baza unui protocol.Cel mai adesea acesta este http. Acesta nu este legat de servleturi. Vizitatorul vede peecranul PC-ului gazda browserului MSIE un formular. Cum credei ca aprut el aici?A fost generat de ctre programul servlet. Vizitatorul completeazdatele n rubricileformularului. Ele pleacla server, cnd s-a recurs la butonul pentru trimitere. Datoritunui alt program dinainte proiectat i anunat n servlet, ce este asociat acestui formular,se analizeazaceste date i se construiete rspunsul. El este expediat napoi la clientulWeb tot sub forma unui document generat n HTML.

    Acest schimb de replici client server respectoricum protocolul http deci formatulHyperText Transport Protocol, care nu ne intereseazpe noi nespecialitii IT!

    n lumea browserelor i din nou obsesia XML!

    Apropo, pe lngprogramul de navigare (sau vizitare) browser MSIE, se folosesc cuaplomb i altele cum sunt: Netscape Navigator sau Communicator. Poate ai auzit i de

    NCSA Mozilla sau venerabilul NCSA Mosaic. Ultimul este opera celor de la Centrulpentru Arhitecturi de Supercomputere al Universitii Minnesota, Illinois. La NCSA,(National Center for Supercomputing Architecture) cu un deceniu n urm, Mark

    Andersen a conceput i elaborat Mosaic. Era primul browser grafic. Mai nainte TimBerners Lee a conceput Viola, un browser de tip text orinetat spre emultaor de terminalVT-xxx. Studenii din anii terminali, urmaii lui Mark, dezvolt cu dezinvoltur nreferatele lor, nucleul unei noi versiuni de browser denumit Mozilla. Este aliniat lastandardul XML 1.0! Cunoate i interpreteazcorect structurile acestui limbaj extins

    pentru marcaje, eXtensible Markup Language i chiar i abloanele limbajului de stiluri,XSL, eXtensible StyleSheet Language.

    Ce este XSL?

    Szicem cam descris n XML (vezi i: /1, 2, 9, 16/) un articol de revisti descriereaaratastfel:

    LISTA 1.1 Aspectul documentului de intrare (scris n XML)

    01. 02. 03. XML Style Sheets04. January 199905. 1999, Benoit Marchal06. Style sheets add flexibility to document viewing.07. XML, SXL 08.

    09. Styling

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-

    10. 11.

    Style sheets are inherited form SGML, an XML ancestor. Style sheets

    originated in publishing and document management applications. XSL is XMLsstandard style sheet, see http://www.w3.org/Style.

    12.

    13. 14. How XSL Works15.

    An XSL style sheet is a set of rules where each rule specifies how to format

    certain elements in the document. It has rules for title, paragraphs andkeywords.

    16.

    With XSL, these are powerful enough not only to format the document butalso to reorganize it, e.g. by moving the title to the front of page or extractingthe list of keywords. This can lead to exciting applications of XSL outside therealm of traditional publishing. ...

    17. 18. 19.

    20. 21.

    Am reprodus o parte din exemplul clasic al lui Benoit Marchal (referina /9/) care l-apasionat tocmai acest XSL i XSLT mai mult dect XML n sine. Observai o serie debalize inventate pentru descrierea componenei unui articol. E vorba de titlul articolului(liniile 02 i 03), de data apariiei sale (linia 04) etc. Mai jos vedem baliza abstract carenfoarconinutul (liniile 06 i 21), de o serie de titluri de seciuni i de seciunile nsine. n fine intrm i pe teritoriul oarecum al HTML, unde apar balize pentru paragrafe,deci pentru frazele textului.

    Acum spresupunem cdispunem de un procesor XT, cum este cel al lui James Clark,vezi /14/, care citete la intrare documentul de mai sus de tip XML. Procesorul are untransformator XSL, deci un XSLT. Acesta folosete un limbaj cu instruciuni n toatregula! Iatpentru cazul nostru acest transformator de aspect de document:

    LISTA 1.2 Instruciunile de transformare (scrise n limbaj XSLT)

    01. 02. 03. 04.

    05. 06. 07. About Style Sheets08. 09. 10. 11. 12. 13. 14. 15.

    16.

    17.

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-d

    18.

    19. 20. 21. 22.

    23. 24. 25. 26. 27. 28. mailto :29. 30. 31. 32. 33. 34.

    35. 36. 37.

    Pe scurt ce se realizeazmai sus! A fost scris conform regulilor limbajului XSLT ungrupaj de instruciuni de comandare a procesorului XSLT. Privii documentul iniial.Acolo am ntlnit categoriile sintactice: article/title adictitlu de articol, date, copyright,abstract, keywords, article/section, url i href. Pentru fiecare n lista de mai sus stscrisce sse genereze n XHTML cnd se ntlnete o atare categorie sintactic.

    Pe baza acestor reguli de producie, transformatorul a generat la ieire un document custructura XHTML (vezi i anexa A). Mai mult nu detaliem.

    Iatacest document XHTML:

    LISTA 1.3 Documentul rezultat la ieirescris n limbaj XHTML)

    01. http://www.w3.org/Style.

    07.

    How XSL Works

    08.

    An XSL style sheet is a set of rules where each rule specifies how to format

    certain elements in the document. It has rules for tile, paragraphs andkeywords.

    09.

    With XSL, these are powerful enough not only to format the document butalso to reorganize it, e.g. by moving the title to the front of page or extractingthe list of keywords. This can lead to exciting applications of XSL outside therealm of traditional publishing. ...

    10. 11. 12.

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    Dacprivii cu atenie lista 1.2, toate balizele sunt scrise cu litere mari! Cum arta laintrare documentul XML (lista 1.1) i cum aratacum, duptransformare (lista 1.3).

    Toate browserele MSIE 5.x, nu cunosc versiunea 1.0 XML ci, una din versiunileanterioare: 0.91 i 0.92 care impuneau i respectarea unor alinieri canonice la marginea

    stng, fade versiunea 1.0!Ca snu rmnem datori la ntrebarea Ce este XML? vspunem pe scurt ceste unfel de limbaj pentru marcaje, n care ns inventm propriile balize (tags). Stricteeasintacticvva stresa. Orcie scriei, trebuie verificat sintactic cu un document ... pe postde veritabil ... grmtici, acel DTD adicdefiniia tipului de document, Document TypeDefinition!

    n fiierul XML spunei care document va fi verificatorul i aici ncepe chinul, dacscriei dumneavoastr n XML. Noroc c sunt generatoare automate de documenteXML (vezi : /13/) ca i convertoare de structuri XML XHTML(vezi : /14/).

    XML este limbajul n care comuniccurent verigile implicate n lanul unei tranzacii decomerelectronic (vezi i /3/).

    Protagonitii lanului unei tranzacii de comerelectronic.

    Primul este cumprtorul secolului XXI, posesorul unei cartelele de credit. i spunem nenglez consumer. Este vorba apoi de banca care a emis acest card, denumit nenglez issuer, apoi de banca verificatoare, acquirer, de banca creditoare a reelei dedepozite, merchant bank i n sfrit, de angrosistul sistemului de depozite denumit nenglez, merchant. Toate documentele financiar-bancare circulntre aceste verigi graie

    mijloacelor de comunicaie i calculatoarelor cuplate la aceasta, nzestrate cu programeadecvate. Programele instalate la diversele sedii ale acestor verigi vorbesc n XML,deci nfoar (balizeazspun snobii XML) datele documentelor fianciar-contabile n haina preteniosului XML. Etapa XML a reprezentat transpunerea birocraieiunificate EDIFACT a rilor din defuncta Pia Comun. EDIFACT nseamnExchange Data Interface for Administration, Commerce, and Transport. Evident, serespectntr-un mod riguros rigida sa sintax.

    Modelul master slave cu trei straturi

    Sinsistm puin asupra comunicrii dintre programele client i server. n jargon i sespune model cu dou, trei sau n starturi, 2-tier, 3-tier, respectiv n-tier master-slave. Sneoprim la modelul 3-tier: stratul client, client tier, stratul intermediar, middle tier i nsfrit, stratul final, data tier, unde se aflfiierele bazei de date.

    La nivelul client, programul de vizitare trimite cererea (adic datele completate nrubricile formularului) la serverul Web. Acesta are acum rol de strat intermediar. El nu

    poate interoga direct baza de date. Poate ai solicitat ca svi se furnizeze sortimentele dearticole vndute de depozitele acelui sit comercial vizitat. Atunci se adreseaz unuiserver specializat de baze de date.

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    Lumea bazelor de date

    Bazele de date sunt deservite de alte sisteme specializate precum: Oracle, IBM DB2,Ingres, Informix, mySQL, PostGRES, etc.

    Serverul intermediar nu traduce el cererea ntr-un limbaj tiut serverul specializat ncutri de informaie prin bazele de date. Este instruit prin program (servlet n jargonJSP). ntrebarea ajunge la stratul data tier. Aici se alctuiete un rspuns. I se spune tabelcu rezultatele gsite.

    Revenim la servlet. Acesta primete tabelul rezultat i construiete un alt tabel cu balizeHTML dupcare, cu ajutorul serverului Web, l trimite mai departe clientului Web. Peecranul staiei gazda browserului se redacest document i vizitatorul aflceea ce asolicitat. n fine acum ve clar!

    Applet, servlet, container

    n tehnologia JSP, limbajul folosit este Java vezi figura 1.1. Fluxul de caractere(rspunsul) ajunge la client, unde este interpretat de ctre MSIE. Datorit unei piesesoftware de care nu am vorbit, browserul MSIE interpreteazi aa-zisele miniaplicaiiJava, applets.

    n dreptunghiul startului intermediar observai dousubnivele, unul pentru prezentare ialtul pentru accesul la bazele de date. Este nivelul denumit EJB, Entreprise Java Bean.Aici se aflun servlet construit cu un veritabil arsenal de mijloace EJB!

    FIGURA 1.1Cele trei niveluri ale modelului 3-tier master-slave(reproducere din manualul devapp.pdf al Allaire JRun, varianta standard)

    Cum am spus mai sus termenul applet, un diminutiv de la application, este tradus lejerprin miniaplicaie. Avei unul mai bun? Pngsii dumneavoastro traducere mai bunsvspunem ce este!

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    Este un program scris iniial n limbajul Java, care a fost compilat, deci tradus, din formasurs ntr-o form intermediar, cea de cod de octei (bytecode). Acest cod esteinterpretat pe PC-ul care gzduiete clientul Web. O condiie ns! Pe acest PC trebuiesfi fost instalat n prealabil un component software, alturi de browserul MSIE. Este

    aa numita mainvirtualJava.Servlet este tot o miniaplicaie rulat la server. I se mai spune i miniaplicaie server.Termenul are dousensuri.

    Primul se referla o ntreagactivitate desfuratn spatele serverului Web i ai aflatmai sus care este aceasta.

    Al doilea sens, este acesta: dac aplicaia este complex (deci cuprinde clasele tipEntreprise Java Bean), ea va include programe care converseaz optim cu bazele dedate.

    Noi nu ne-am permis n acest manual s ajungem pn la nivelul cadrului de lucruJ2EE, oprindu-ne la J2SE. Motivul ? Un software cu regim shareware nu are ce cuta laun laborator studenesc.

    Component, pachet, clas, metod, et. Co.

    Un component este o parte a aplicaiei. Pe de alt parte, n diversele locuri alecomponentului se apeleaz la metodele i clasele unor pachete. Pachetul nu este osubdiviziune a componentului! Un pachet are mai multe clase gata dezvoltate.

    Dacaplicaia sitului comercial nu conine clase simandicoase tip EJB, ne mulumimcu clasele cadrului de lucru J2SE. Containerul care o execut

    nu este container EJB ci

    unul simplu ! Dac am avut fericita ocazie de a dezvolta aplicaii de e-commercepornind de la J2EE, avem ocazia de a ne ntlni i cu containerul EJB!

    n 1999, firma BEA Systems a oferit aplicaia Weblogic pe CD-ul care a nsoit referina/4/, pentru o perioadlimitatde timp ancoratabsolut la acea perioadcalendaristic.Era o demonstraie a unei aplicaii de tip EJB. Acum ea este neoperaionaldin motivulartat mai devreme!

    Tot pe acelai CD sunt nstrei motoare servlet open source: Caucho 1.1.4, Allaire Jrun3.0 Standard i Tomcat 3.0. Ele pot fi folosite n compania fiierelor cadrului JDK2

    varianta SE i este totui ceva dect nimic!JDK este un instrument pentru dezvoltarea de programe scrise n limbajul Java. Manierade lucru este primitiv! Instrumentele sale din care este alctuit acest cadru nu sunt

    pregtite pentru suprafee grafice de lucru. Programatorul care le folosete trebuie smemoreze tot felul de comenzi lungi i greoaie. Este un adevrat chin pentru cel cruiai-ai trasa sarcina construirii sitului comercial!

    Vei remarca la partea scris n limba francez, recomandarea just de folosire aaplicaiei Macromedia Dreamweaver MX, ca substitut al acestei primitive abordri.ntre altele acest Dreamweaver tie Java, VBScript, VBasic i PHP!

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    Diferena dintre servlet, scriptlet i pagina JSP

    Un program scris n limbajul Java este un fiier de tip text cu extensia .java.

    Pagina JSP este tot un program scris conform regulilor sintactice ale limbajului JSP. i

    ea este tot un fiier de tip text dar are extensia .jsp.n lipsa unui mediu de dezvoltare (Dreamweaver nu este un mediu de dezvoltare nadevratul sens al cuvntului) recurgem la editorul Wordpad. n corpul paginii JSP se

    pot ntlni i instruciuni Java. Sunt aa-zisele scenarii, scriptlets. Comenzile dinlimbajul JSP mpreunporiuni de cod Java pur din acete scenarii sunt transformate dectre motorul servlet (Tomcat, Caucho, JRun etc.) n fiiere cu extensia .java. Decimotorul este un programator automat, care va genera cod surs Java. Tot acestacomand compilarea n cod de octei, deci v scutete de a memora complicatelecomenzi ale cadrului JDK2!

    Maina virtualJava

    Maina virtualJava (n englezJava Virtual Machine JVM) reprezintmarea revoluiea platformei Java Sun Microsystems. A ajuns pnn cuptoarele cu microunde, celulare,PDA-uri. Este ntr-un cuvnt cheia portabilitii platformei! AceastJVM a fost scrisntr-un limbaj tradiional, de regulC. JVM este n fond un program i nu un dispozitivhardware. Este un fel de mediu de execuie. Pentru fiecare platformhard/soft existcte o mainJVM. Este implantatntr-o memorie flash a unui terminal portabil. LaPC-ul staionar sau la laptop, notebook, nu este nevoie de memorie flash! Rostul su

    este s ronie codul de octei de care vorbeam mai sus.Gazda mainii JVM poate fi un:

    PC al platformei IBM (bazatpe Pentium IV, III, II) ;

    Laptop cu microprocesor Pentium IV, III Mobile sau Pentium II MMX ;

    PDA Palm, Compaq sau HP, cu microprocesor de tipul Motorola sau ;

    Apple model iBook, IMac, cu microprocesor PowerPC.

    Pentru fiecare existcte o mainvirtualJava!

    Notai csunt destule sisteme de operare. Amintim:

    Familia Windows, 95, 98, Me, NT/4, 2000, 2002;

    Linux cu cele vreo apte dialecte ale sale: Caldera, Red Hat, Debian, SuSE,Mandrake, Turbo, Slackware;

    n lumea celularelor: GeOS, Palm OS, Windows CE, actualul Pocket PC;

    Pentru platforma Macintosh: Apple OS i MacOS;

    Pentru staii Sun, Solaris,

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    Pentru mainframes IBM ES 9000, multe sisteme de operare pe care nu le maienumerm ;

    Pentru megaminicalulatoare IBM AS/400 la fel ;

    Pentru arhitecturi IBM RISC/6000, AIX-ul, Unix-ul corporaiei IBM ; Pentru defuncta corporaie DEC cu ale sale miniuri PDP-11, megamini-uri

    VAX 780, Ultrix, etc.

    Citii prile a doua i a treia a referinei /1/. Lumea nu stpe loc.

    Att codul sursct i codul de octei sunt coduri absolut independente de platform.Maina virtual este dependent de idiosincraziile sistemului de operare ca i dearhitectura hardware! Cei mai mari realizatori de maini virtuale Java sunt corporaiileSun Microsystems i IBM. Ei i ofergratis mainile JVM!

    n platforma IBM PC, unul din fiierele cadrului JDK instaniaz maina virtualJava. Nu ne intereseazcare este acea componenta JDK. Cum o instaniaz? JVM setrezete n clipa n care i dai sexecute un applet sau un servlet.

    Dar oare nu este mai lent sse interpeteze un cod de octei dect sse ruleze un codmain nativ! Aa este, dar nu uitai c dispunem azi de microprocesoare teribil de

    puternice i mai sunt i atia bolnavi mintali amatori de creare de virui informatici!

    Applet i servlet

    Att appletul ct i servletul sunt programme, adicaplicaii. Sunt stocate n fiiere cu

    extensia .class. Nu mai sunt de tip text ci binar! Appletul este interpretat la PC-ul gazdde ctre browser (MSIE etc.) graie faptului c acest browser colaboreaz cu mainaJVM. Servletul rezidla calculatorul gazda serverului Web. i aici se afl o mainJVM.

    Clase Java beans

    Clasa, instanierea, constructorul, obiectul

    Clasa este un tipar, aa cum folosete croitorul ! Dar este mai mult de atta! n ea s-aunmagazinat datele, parametrii dar i inteligen! Inteligena este gzduitde metodele,algoritmele dacvrei, care opereazcu aceste date i parametri trimii din exterior prininterfaa clasei.

    ablonul clasei nate obiectul clasei. A instania spun programatorii i neleg ce amafirmat adineaori.

    La instaniere, fiecare clasrecurge la un aa-zis constructor. Este tot un program. Elproduce obiectul. Asimilai rezultatul constructorului cu imaginea memorat, dupfolosirea declanatorului aparatului foto!

    Ce vor snsemne aceste clase tip Java Beans. Mai nti etimologia cuvntului: Bean

    l traducem prin pstaie (de fasole sau mazre dar este prea grotesc). Butrii nrii de

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    cafea ce lucreaz la sediul general al corporaiei Sun Microsystems au adoptatdenumirea Bean, fiindctot ncepusercu Java. Java este denumirea cafenelei unde se

    prepar la nisip cafeaua. Probabil cnu e a unui romn! Dac era, i-ar fi spus Ada-Kaleh-ul iar corporaia poate l-ar fi adoptat n loc de Java!

    Clasele Beans sunt tot clase Java care respect un tipic de programare (vezicapitolul 6).

    Program, subprogram

    Ca sexplicm afirmaia de mai sus, sfolosim jargonul generaiei a treia de limbaje deprogramare. Fie douprograme P1 i P2. P1 cheamP2 de multe ori. Spunem cP2este o subrutin, o funcie, un subprogram. La generaia a patra, deci aceea a limbajelororientate spre obiecte, i se spune metod. P1 trimite date lui P2. Nu intrm n detaliicum! n jargon spunem acestor date, parametri reali, argumente reale. P2 aplicalgoritmul, adic i face numrul su i prelucreaz aceste valori, i ntoarcerezultatele. C le transmite sau nu lui P1 i cum le transmite, aceasta este mai puinimportant. Algoritmul este conceput i scris dinainte. El trebuie s se refere la acestedate prin adrese de memorie. Adresele nu sunt cele din spaiul programului P1 ci suntzone de memorie interne lui P2. Sunt deci locuri din memorie, crora li s-au asociat nmod convenional denumiri simbolice dac vrei. Aceste locuri le numim argumentefictive, parametri fictivi. Aici se aduc valorile parametrilor reali.

    Ce conine o aplicaie complexde sit

    comercial

    n figura de mai jos, reproducere din manualul de firm al pachetului Allaire JRunvarianta Standard, se disting doucategorii de componente.

    Primele sunt aplicaiile care conin obinuitele pagini JSP i servlet-uri. Motorul servletJRun mai are destule alte fiiere ablon (template). Evident, existi alte componentedar din motive didactice nu mai le enumerm. i aa nu ne ocupm aici de bibliotecitaglib i de abloane.

    A doua categorie este constituit din aa-zisele clase tip Entreprise Java beans, EJB.Sunt tot fiiere. Li se spun i biblioteci de clase EJB. Accesul se efectueaz prin

    intermediul unei interfee adecvate EJB. Aceasta, la rndu-i, este alctuitdintr-o suitde fiiere parametru, care conin valorile unei proprieti (considerai-le un fel deparametri fictivi).

    Faptul csunt mai multe aplicaii Web, nu trebuie sconstituie o nelmurire! Un motorservlet JRun (dar i alte tipuri de motoare servlet) este n stare sse ocupe simultan demai multe situri comerciale.

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    FIGURA 1.2Osatura unor aplicaii complexe de tipul sitului comercial(reproducere din manualul devapp.pdf al Allaire JRun, varianta standard)

    Relaia dintre serverul Web i motorul servletPn acum nu a aprut poate prea clar aceast nuan. Caucho Resin este un motorservlet ca de altfel i Allaire JRun.

    JRun poate s funcioneze ca server propriu Web clasic i, n acelai timp pe post decontainer pentru servleturi i pagini JSP, deci de server de aplicaie.

    De asemeni, admite ca treaba serverului Web clasic snu o mai facel ci un server Webextern. Deci comuniccu unul dintre serverele Web clasice.

    Tomcat este mai comod dect Jrun ! Nu se obosete ci, recurge la serviciile serverului

    clasic extern Apache Web Server.n figura de mai jos se vd care servere Web clasice pot fi folosite de ctre motorulservlet JRun. Este vorba de: Personal Web Server (PWS, Windows 95/98), InformationInternet Server (IIS, Windows 2000, 2002), Netscape Entreprise Server (NES) sau, nsfrit de Apache. Mai observai acele dreptunghiuri mici denumite conector, connector.Ei bine conectorul este un program specializat (i se mai spune n englezi driver). Nudivagm!

    Serverul propriu Web al aplicaiei JRun apare pe figur sub numele de JRun WebServer. Aceasta pe de o parte. Pe de altparte, remarcai cpe acelai PC pot funciona

    mai multe motoare servlet JRun.Ele sunt procese (tasks, vezi mai jos). Unul dialogheaz datoritrulrii aplicaiilor decomerelectronic cu Apache, NES i cu IIS, iar cellalt, cu serverele Web Apache iJRun.

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    FIGURA 1.3Relaia dintre diversele categorii de servere implicate(reproducere din manualul devapp.pdf al Allaire JRun, varianta standard)

    Deci :

    Existpe de o parte un container pentru servleturi i pagini JSP, cruia i spun uniipe scurt server JRun i prodcu confuzie. Mai bine spunei-i server de aplicaiiWeb.

    Existun alt server denumit server Webcare se ocupde prelucrarea cererilor de laPC-uri ce gzduiesc clieni Web i administreazuneori i servleturile.

    Coninutul unui rspuns al serverului este fie o paginstatic, fie una dinamic.

    Pagina static este un fiier cu extensia .html, adicp un docmuent anost de tipHTML. Poate avea una sau mai multe appleturi sau nici un applet.

    Pagina dinamiceste ceva generat. Este un fiier cu una dintre extensiile .jsp, .asp,.php etc. Cnd se solicitaceastpagin, are loc mai nti o prelucrare la server.Rezultmai nti un flux de caractere HTML care, odatajuns la PC, este redat peecran.

    Arhive de fiiere ale unui sit comercial

    Fiierele care au extensia .jar sunt de fapt arhive. tii poate de zip, arj sau rar. Suntarhive construite cu winzip, arj sau winrar!

    i n cadrul de lucru JDK existun program pentru crearea i administrarea arhivei de

    fiiere, cum poate folosii cu dezinvolturpe WinZip sau WinRAR.

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-d

    Apropo, WinZip tie structura tip JAR. Nu am informaii daci aplicaia WinRAR aaflat de aceaststructur! Un sit comercial are fiiere care au diverse extensii.

    Ce tipuri de documente pot intra ntr-o arhiv:

    Fiierele cu pagini statice de cas. Fiiere cu extensia .java (servlet-uri java).

    Fiiere executabile .class.

    Documente care descriu structura aplicaiei sitului comercial, dup rigoarealimbajului XML. Acestea au extensia .xml.

    i alte tipuri dar preferm pentru motive didactice a le ignora.

    Toataceastcolecie de fiiere alctuiesc o anume ierarhie de directoare. Fiecare firmrealizatoare de motor servlet a cutat si impunpropria structurde desfurare. Vafi acceptat pnla urmtipicul structurii grupului Jakarta. Vei observa uneori n acestmanual doutipuri de ierarhii, pe de o parte aceea proprie firmei Allaire i pe de alta,aceea a firmei Caucho.

    Ei bine, aceste fiiere sunt comprimate i arhivate cu un utilitar denumit jar, ce se aflnJ2EE i J2SE. JAR nseamnJava ARchive.

    Development phase, Deployment phase

    Desigur de la maina pe care s-a conceput situl pnla maina int, deci gazda sitului,aplicaia este transportat n mod comprimat. Faza de punere la punct se numete n

    englez development. Componentele aplicaiei sunt nglobate ntr-o arhiv. Aici seconserv ntreaga ierarhie. Aceasta trebuie n prealabil desfurat (n englez,deployment). Rezultierarhia de directoare cu fiierele sitului.

    Desfurarea trebuie efectuatmai nainte de momentul lansrii n exploatare a sitului.

    Cei de la Allaire au voit ca extensia sse cheme WAR i nu JAR, adicWeb Archive.De fapt un fiier cu extensia .war este o structurde date .jar. (J de la Java).

    Fake-root directory

    Nu este cazul sintrm n amnunte tehnice de genul unde este directorul de implantaretip rdcindeplasabil, fake-root, ce se poate planta n undeva n ierarhia generalasistemului de operare. Fiecare motor servlet are propriul su fake-root.

    Nu pe dumneavoastrstimate manager trebuie svintereseze unde se aflexact acestdirector ci, pe cel care se ocupde implementarea i ntreinerea programelor situluicomercial. Poate suntei chiar dumenavoastri, vfelicitm atunci, fiindcsuntei unmanager modern!

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-d

    Proces, multitasking, multithreading, soclu i

    port

    Dei am explicat primele dounoiuni n referina /1/, le relum i aici.

    Proces

    Sconsiderm cfolosii editorul Winword ca spunei la punct un document. La unmoment dat, fiindcsuntei cuplat prin modem la linia telefonic, vine un caracter (litersau cifr) prin linie. Acesta nu trebuie pierdut, altfel s-ar altera nelesul mesajului. Estegrija sistemului de operare existent pe maina dumneavoastrde calcul sntrerupexecutarea programului WinWord fr s simii i s transfere controlul spre

    programul care se ocup de recepia caracterelor. S zicem c acest program esteclasicul dialer.exe. Winword trebuie snu i piardcontextul pnunde ai ajuns cu

    punerea la punct a documentului, ca s fii n stare svcontinuai treaba. Existunplanificator de aa-zise procese, task scheduler, care se ocupde aceasttrecere de la unproces la altul.

    Procesul (task) este un program ajuns ntr-un anume context.

    Multitasking

    Sistemul de operare a alocat zona de memorie pentru pstrarea acestui context. Aici afost salvat, adic s-a memorat coninutul registrelor microprocesorului, dup careacelai task scheduler s-a ocupat de aplicaia dialer.exe. i ea ajunsese ntr-un anumecontext. El este pstrat altundeva, nu peste contextul lui WinWord ! n consecin,

    planificatorul va rencarca registrele microprocesorului cu valorile specifice de lacontextul anterior unde rmsese dialer.exe. Apoi se va ocupa de preluarea caracterului.Duppreluare, va dezactiva aplicaia dialer.exe, pstrndu-i noul context, dupcareva reface contextul aplicaiei WinWord, .a.m.d. i aceasta poate de sute de ori ntr-osecund, frca dumneavoastrssesizai!

    Acesta este mediul tipic de lucru denumit multitasking, multiproces.

    MultithreadingJava permite i multithreading-ul. Este un fel de multitasking care face risipde spaiu

    de memorie. De data aceasta, microprocesorul apelaz la o instruciune special deschimbare a spaiului de adresare. Are loc o comutare ultrarapid de coninut deregistre ale microprocesorului spre spaiile de adres. Deci descarc-ncarc acesteregistre speciale. Se zice cse trece de la un fir de execuie la altul. Un program ocupun anume spaiu din memoria operativ. Contextul acum nu se mai limiteazla doar ceiciva zeci sau sute de octei, cum era n cazul multitasking-ului. Pur i simplu aplicaiaX are mai multe astfel de spaii mari rezervate n memorie

    Portul soclulPortul i soclul sunt cu totul altceva O aplicaie tip server dialogheazcu o aplicaie tipclient prin mesaje. Mesajele aparin protocolului ntrebuinat: http, ftp, smtp etc. Trebuie

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    neaprat o zonde memorie, un bite de lettre. S-i zicem i pe romnete, cutie potal.Acesta este soclul. Soclul are un numr, o adres. Este portul. Nu intrm n alteamnunte tehnice, dar soclul respect cerinele protocolului respectiv. De pild ftpfolosete porturile 20 (pentru handshaking) i 21, http recurge la portul 80. Sau Allaire

    Jrun ascult la portul 8100, n timp ce serverul Web Apache, portul 80, Tomcat iResin folosesc portul 8080 etc.

    Dupce lansm browserul vom anuna n fereastra de adresare a sa (n cazul Netscapese opereazcu noiunea de Location, nu Address) cvrem slansm un sit, de pildaa:

    http://localhost:8080/test/mysit.jsp

    Aici situl comercial se afla pe aceiai mainde calcul, dar bine mersi putea ca sse afleundeva pe alt fus orar i atunci, n loc de localhost trebuia s menionm adresaserverului gazda sitului comercial.

    Jalonul alias cookieProtocolul http este unul care nu are posibilitatea snregistreze faptul cun vizitator aefectuat mai multe intrri tip cerere/rspuns la acelai sit. Specialitii numesc acest

    protocol HTTP drept unul frstri.

    Cnd s-a nscut acest sistem Web (vezi detalii n referina /1/), cam tot atunci a aprut iHTML. Era pe la nceputul anilor 90. HTTP a avut un succes formidabil, dei nu s-a

    preocupat smemoreze la serverul Web starea unei sesiuni. Att clientul ct i serverulfolosesc protocolul http. Internatutul cere. Serverul cauti gsete documentul. Apoitrimite rspunsul.

    S-a urmrit ca HTTP sfie ct mai rapid, mai simplu, deci ct mai compact. De aicisuccesul!

    Fiecare cerere a clientului Web este tratatseparat de ctre server. Este un evenimentizolat. HTTP nu tie cinternautul a mai vizitat acel sit i nu i propune smemorezeacest istoric al vizitelor sale.

    Atunci, undeva trebuie pstrate aceste jaloane, identificatoare de sesiune, cookies! Maideparte, vezi n capitolul 6 i n cazul aplicaiei complexe a sitului comercial din parteadedicattehnologiei ASP (capitolele 7-10).

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    Primii pai cu tehnologia JSP

    JSP, Java Server Pages este o tehnologie de vrf. Stla baza celor mai mari

    situri comerciale. Este concuratde tehnologia ASP. Prima a fost dezvoltatdectre corporaia Sun Microsystems, a doua, de ctre corporaia Microsoft.

    Paii procesului de generare ai unui servlet

    Modurile de solicitare a servletului de la serverul Web de ctre clientul Web

    entru nceput s contemplm figura 2.1. Ce observm din ea? Faptul c clientulWeb solicitservletul fie:

    n modul indirect, prin adresarea clasic n stilul URL, aa cum am artat

    http://adresa-sit/dir/.../dir/pagina.jsp, fie n mod direct, prin schema de adresare tot tip URL, dar n forma urmtoare:

    http://adresa-sit/dir/.../dir/servlet.

    Nu descriem aplicaii lansate prin schema a doua n cartea de fa. Faptul c sentrebuineaz una sau alta din cele dou scheme de mai sus, i este total indiferentserverului Web, aflat la mijloc n figura 2.1.

    Pagina JSP poate conine linii cu text tip HTML i scenarii (scriptlet n englezete),scrise n limbaj Java, mai rar n JavaScript. La prima apelare a unei pagini JSP are loc

    generarea unui fiier surs.java i traducerea n foma .class. Toate accesele ulterioareefectuate de ctre clientul Web sunt rezolvate imediat, deoarece imaginea servletului(.class) rmne n memoria cache a serverului Web (vezi referina /1/ pentru termenulcache). Deci se vor ocoli paii de compilare i ncrcare.

    FIGURA 2.1Cei trei protagoniti implicai ntr-o sesiune la un sit comercial(reproducere din manualul devapp.pdf al Allaire JRun, varianta standard)

    Capitolul

    2

    P

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    i paii enumerai mai sus:

    FIGURA 2.2 Paii de transformare ai unei pagini jsp (reproducere din manualul

    devapp.pdf al Allaire JRun, varianta standard)

    Un prim exemplu de paginJSP n cteva

    variante

    1. Mai nti de toate s reinem c trebuie pornit unul din motoarele

    servlet. La staii am implementat doar motorul Caucho 1.1.4, acestafiind cel mai rapid n comparaie cu JRun i cel mai mic consumator despaiu. Totui paii urmtori vor releva i cazul motorului JRun 3.0.

    2. Crem apoi cu editorul Notepad (Windows) urmtorul document n care aparbanalele balize ale limbajului pentru hipertexte. Este bine svreamintii acestlimbaj. Vrecomandm scitii anexa A.

    LISTA 2.1 Un prim exemplu banal, welcome1.jsp

    Welcome!Welcome to our store!We sell the products!

    3. Stocm (salvm) pagina n directorul dedicat aplicaiilor curent testate.

    n cazul motorului JRun, directorul de cas (fake-root) va fi notat cu. Concret acesta va fi c:\Program Files\Allaire\JRun.n cazul motorului Caucho Resin l vom nota i, concret se afln directorul c:\Resin1.1.4\doc. Snu confundm nsaceste directoare decascu directoarele aplicaiilor curent testate. Directorul aplicaiei curente estela:

    (JRun ) /servers/default/default-app

    (Resin)/test

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    Ultimele observaii:

    Nu vom intra n amnunte de implementare a motoarelor. Semnalm doar cJRuni Resin, la pornirea lor la cald, ruleaz automat un aa numit scenariu deconfigurare. n cazul JRun el se cheamlocal.properties, iarn contextul

    motorului Resin, httpd.conf. El conine tot felul de comenzi i valori necesareiniializrii motorului respectiv.

    V rugm s nu tergei din greeal aceste fiiere cu scenarii sau, s salvaiexemplele n alte directoare. n caz contrar, ar trebui snvai cum smodificaiaceste scenarii pentru configurare!

    Lansm browserul MSIE. Schemele URL vor fi urmtoarele:

    http://localhost:8080/test/welcome2.jsp(pentru Resin1.1.4), respectivhttp://localhost:8100/welcome2.jsp(pentru JRun)

    Fiecare motor va genera n mod automat servletul sub forma unui cod sursJava,dacpagina conine una sau mai multe poriuni cu scenarii (scriptlets n englez).Motorul va realiza de asemeni traducerea (compilarea) codului surs n cod deoctei (.class). Va avea aceiai denumire.

    Pentru aplicaia de mai sus nu a existat nici un scenariu. Deocamdat!

    Fiindcfiierul a avut extensia .jsp, motorul a generat n mod automat un program scrisn limbajul Java n directorul:

    /work/_test/_jsp

    n urma compilrii, alturi de fiierul surs va fi nregistrat i fiierul cu denumirea_welcome1__jsp.class.

    FIGURA 2.3 Aspectul documentului din lista 1.1

    Rostul su a fost screeze i s trimitla clientul Web acel text din lista de mai sus.Deci pagina a fost generatdinamic!

    Primul scriptlet

    Fiierul welcome1.jsp putea foarte bine s aib una dintre extensiile .html sau .htm,deoarece este un document tip html, frnici un scriptlet. n acel caz ar fi fost o paginstatic, moart! Fiierul welcome2.jsp n schimb are un scenariu, scriptlet.

    Scriptletul e delimitat de separatorii: .Privii aplicaia welcome2.jsp.

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    LISTA 2.2 Fiierul welcome2.jsp

    01. 02. 03. Welcome!04.

    05. 06. 10. 11.

    Explicaii

    n cazul de fa, scriptletul este alctuit din douinstruciuni 07 i 08. Denumirea out sereferla obiectul implicit out al JSP. El are misiunea de a reda un flux de caractere lafiierul logic de ieire al aplicaiei (de regulecranul). Denumirea println se refer lametoda pentru realizarea dezideratului amintit. n lista aplicaiei welcome1.jsp erauaceste linii:

    Welcome to our store!We sell the products!

    Cu ce difer? Prin mai multe lucruri. Primul lucru care sare n ochi este faptul capare o

    parantezronddeschis, apoi un grup de aa-zis literali, delimitai de semne plus i lafinal de o paranteza rond nchis. n sfrit, totul se terminprin caracterul punct ivirgul. Orice instruciune Java se termincu acest caracter ; .

    Literalul este un ir de litere i cifre (caractere) flancate de ghilimele. Semnul plusservete la alipirea acestor literali.

    Argumente reale i fictive (parametri reali i fictivi)

    Metoda println() este un fel de subprogram, aa cum afirmam mai sus. n consecin,acest subprogram va avea o listde parametri reali (argumente reale). O astfel de listeste nconjuratde parantezele ronde. n cazul exemplului nostru s-a folosit un singur

    parametru. Dac lista ar fi avut mai multe argumente, atunci ar fi avut forma: (arg1,arg2, ... ). Deci virgulele urmau fiecrui parametru, excepie fcnd ultimul.

    Sdescifrm acum acest lung ir de caractere al unicului argument. Observai existenabalizelor din HTML dar i a textului obinuit. Vrecomandm totui srecitii sau scitii anexa A, pentru a vexplica mai departe la ce se referaceste balize i secveneescape (adic notaiile: < , > ).

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    Iato parte din textul generat de ctre Caucho pentru pagina welcome2.jsp:

    LISTA 2.3 Codul generat de ctre motorul servlet Resin la prima executare

    a fiierului welcome2.jsp

    /*

    * JSP generated by Resin 1.1.4 -- Thu Sep 7 09:00:17 PDT 2000*/

    package _jsp._test;import java.io.*;import javax.servlet.*;import javax.servlet.jsp.*;import javax.servlet.jsp.tagext.*;import javax.servlet.http.*;

    public class _welcome2__jsp extends com.Caucho.jsp.JavaPage{

    public void_jspService(javax.servlet.http.HttpServletRequest request,

    javax.servlet.http.HttpServletResponse response)throws IOException, javax.servlet.ServletException

    {javax.servlet.jsp.PageContext pageContext =

    com.Caucho.jsp.QJspFactory.create().getPageContext(this, request, response, null, true, 8192,true);

    javax.servlet.jsp.JspWriter out = (javax.servlet.jsp.JspWriter) pageContext.getOut();com.Caucho.jsp.ByteWriteStream _jsp_raw_out;_jsp_raw_out = (com.Caucho.jsp.ByteWriteStream) out;javax.servlet.ServletConfig config = getServletConfig();javax.servlet.Servlet page = this;javax.servlet.http.HttpSession session = pageContext.getSession();javax.servlet.ServletContext application = pageContext.getServletContext();

    com.Caucho.jsp.QBodyContent _jsp_endTagHack = null;try {_jsp_raw_out.write(_jsp_string0, 0, _jsp_string0.length);

    out.println("" + "Welcome to our store!" + "");out.println("" +"We sell the products!" + "");_jsp_raw_out.write(_jsp_string1, 0, _jsp_string1.length);

    } catch (Exception e) {pageContext.handlePageException(e);

    } finally {JspFactory.getDefaultFactory().releasePageContext(pageContext);

    }

    }. . .\r\n\r\nWelcome!\r\n\r\n\r\n".getBytes();

    _jsp_string1 = "\r\n\r\n\r\n".getBytes();}

    }

    Nu vvom cere s scriei aa ceva niciodat! Citii nscu luare aminte observaiileextrem de importante de la sfritul acestui prim capitol.

    Aspectul ferestrelor document ale ambelor aplicaii welcome1.jsp i welcome2.jsp suntidentice din punct de verdere al browserului. El este redat n figura 2.3.

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    Fereastra tip document a browserului

    Programul de vizitare, navigatorul sau browserul, cum vrei si spunei, este o aplicaie.O aplicaie poate exista la un moment dat sub forma a unuia sau mai multe procese.Fiecrui proces i este asociato fereastrde tip document. La urma urmei, browserul

    poate gestiona una sau mai multe fiiere cu extensia .htm/.html. Fiecrui fiier icorespunde o fereastrdocument, un anume context. Fereastra document este n cadrulferestrei de aplicaie.

    Expresii

    Iaturmtorul caz :

    LISTA 2.4 Fiierul welcome3.jsp

    01. 02. 03. Welcome!04. 05. 06. 07.

    08. 09.

    Explicaii i parafraze

    Ce observm acum? Faptul cn pagina welcome3.jsp apar douscenarii n loc de unul.Pot fi oricte! Mai remarcm apoi cse folosete cte un semn egal.

    Sne fixm atenia asupra textelor ce urmeazsemnelor egal (liniile 06 i 07). Textelesunt aproape identice cu ce am scris mai sus la welcome2.jsp. Este totui o diferen!Privii acele bare inverse ce apar din loc n loc n faa ghilimelelor.

    Am fost obligai sfolosim aceti dublei de caractere \" din motivul urmtor: HTMLfolosete ghilimelele pentru atributele balizelor sale. Deoarece limbajul Java folosetetot ghilimele pentru literali (nu numai apostrofii), trebuie adaugat sistematic aceastbarinvers(backslash) naintea ghilimelei care delimiteazo valoare de atribut HTML.

    Forma echivalenta textului de mai sus se exprimdin punct de vedere sintactic n felulacesta:

    Semantica, adic nelesul acestei transcrieri este: evalueazpe loc expresia aflat ndreapta semnului egal i executce se cere n cadrul ei. Expresia de mai sus este oalipire (concatenation, concatenare cum spun informaticienii) de literali.

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    Sapardata i ora!

    LISTA 2.5 Pagina welcomets0.jsp n care apar data i ora

    01.

    02. Welcome!03. 04. 05. 08.

    Today is: 09. 10.

    FIGURA 2.4Aspectul documentului

    Explicaii i parafraze

    Constatm pe prima linie a listei directiva page. Limbajul JSP este alctuit din: etichete,directive i comenzi din cadrul scenariului JSP.

    Scenariul JSP l-am ntlnit pnacum sub forma expresiei i instruciunii din limbajul

    Java. Unii le spun declaraii. Dar snu ne pierdem n terminologie!Directivele stabilesc proprietile unei pagini JSP. Una dintre directive este i page(pagin). Ea are multe funcii. Nu ne propunem a le nfia ca ntr-un manual dereferin.

    n cazul de fa, directiva page asumclimbajul va fi Java (lipsete atributul language= nume-limbaj), dar anunmotorul spreia informaiile deja definite dintr-o serie de

    pachete externe aplicaiei.

    ntregul eafodaj de clase Java se bizuie pe o ierarhie de clase grupate n pachete.

    Pachetele sunt ataate unor noduri ale ierarhiei.Ce nseamna importa ?

    S traducem: preia tot ce este nevoie n acest exerciiu din nodul java.text.* i dinclasa java.util.Date. Aadar cuvntul import este al doilea atribut al directivei page.Prezena asteriscului indic faptul cvor fi motenite datele i metodele claselor carecuplate la nodul ierarhic java.text.

    n al doilea caz, se va prelua exact clasa java.util.Date, care se ocupde tratarea dateicalendaristice. Acum urmeazceva cu totul nou! Scenariul din liniile 06-08 conine o

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-d

    instruciune de atribuire Java. Mai nti i nti se declaro variabildenumitdata_ora.Ea are tipul ir de caractere (adicString). Instruciunea de atribuire are forma sintactic:

    tip variabila = expresie;

    Tipul ei poate lipsi. n dreapta semnului egal se aflo expresie cam ciudat, care constdintr-o nlnuire de denumiri separate prin puncte. DateFormat este numele unei clasecare aparine clasei printe java.text.Format.

    n schimb, getInstance() este denumirea uneia dintre metodele acestei clase. Faptul cdupdenumirea aceasta urmeazparanteze, ne dm seama ceste o metod. Ea va

    prelua o instan a obiectului Date, deci un ir cu data i ora momentului. Acestinstantaneu are un anumit tipic de scriere anglo-saxon. Denumirea format este numeleunei metode a clasei java.text.Format, clasa printe a clasei java.text.DateFormat. Deciobservai ce afirmam mai sus cu privire la motenire.

    Clasa java.text.Format estefiicaclasei printe java.lang.Object. Aadar obiectul Formatmoteneteo parte din caracteristicile obiectului generic Object, cruia i ataeazi altensuiri specifice!

    S relum firul explicaiei simpliste. Mai observm c imediat dupcuvntul formaturmeazparanteze, dar nu una dupalta, ca la getInstance(). ntre paranteze apar doucuvinte newi Date(). Dateeste un obiect? Nu! Fiindceste scris cu litermare! itotui este urmat de paranteze, deci ar trebui s fie o metod. i aa i este! Este ometodspecial.

    Orice clas are o metod specialdenumit constructor, care are respect denumirea

    exacta clasei. Momentul vizitrii sitului comercial este exprimat printr-un numr cuzecimale (n jargon Java double). Este o valoare cu un format anume, cruiaprogramatorii i spun double (vezi i capitolul urmtor). Metoda format converteteaceastvaloare ntr-un ir de caractere (String), ca informaia sdevininteligibil. Serespect tipicul fusului orar pe care a fost generat sistemul de operare la mainarespectiv. PC-ul pe care am alctuit acest manual avea un Windows NT instalat pefusul orar GMT+2, deci ora Balcanilor. De aceea observai n figura 2.4 un mod mai familiar nou, anume: zz.ll.aaaa. Nu s-a asumat tipicul anglo-saxon (adic: aaaa.mm.ddhh:mm:ss, unde aaaa este anul din patru cifre, mm, a cta lundin an, dd, a cta zi dinlun, hh a cta ordin zi, al ctelea minut, a cta secund).

    Odatadusaceastvaloare a momentului la forma de ir, din el prelum cu metodagetInstance() partea referitoare la dati cea referitoare la or.

    Iati o altmanierde anunare a momentului vizitrii sitului (vezi figura 2.5).

    FIGURA 2.5Aspectul ferestrei documentului browserului MSIE, pentru fiierul wts.jsp

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-d

    Adicn loc de 04 apare denumirea aprilie. Mai mult chiar, apar i patru iniiale : EESTba chiar i secunda! Ca s realizm un aspect similar celui din figura 2.5, aplicaia atrebuit sfie modificatastfel:

    LISTA 2.6 Pagina wts.jsp, o altmanierde publicare a datei i orei vizitrii sitului

    01. 02. Welcome!03. 04. 05. 10.

    Today is:

    11. 12.

    Explicaii

    Apar douvariabile FULLTIME i FULLDATE, fiecare iniializate cu zero. MetodagetInstance() s-a nlocuit cu metoda getDateTimeInstance(), ca sse preia ntregul fluxde caractere. Anterior, am ignorat n mod deliberat secundele i tipul orei standard!Observai secundele i iniialele EEST, adicora standard a Europei de Est. Denumireaaprilie a aprut ca urmare a faptului cFULLDATE a fost egal cu zero.

    Acum s facem s apar semnificaia prescurtrii EEST. Privii lista i aspectul

    corespunztor din figura 2.6.LISTA 2.7 Lista fiierului wts1.jsp

    01. 02. Welcome!03. 04. 05. 11.

    Today is:

    12.

    Acronim means Eastern Europe Standard Time!

    13. 14.
  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    FIGURA 2.6 Aspectul ferestrei documentului browserului MSIE, pentru fiierul wts1.jsp

    Explicaii

    Scenariul nu s-a complicat dect cu cteva linii. Am declarat variabila acronim.Limbajul Java cere obligatoriu ca o variabilsfie nu numai declaratci, i iniializatcu o valoare! Obiectului data_ora i-am ataat metoda substring. Metodei i-am dat dou

    jaloane i anume de la ce literi pnla ce litersextrag o poriune de literal. Aiciam punctat exact locul celor patru litere, EEST. irul este reprezentat n memorie din

    caractere care ocupfiecare cte un octet. Indexul ncepe de la zero, vezi figura 2.7.1 0 a p r i l i e 2 0 0 3 1 2: 0 7: 3 6 E E S T

    coloana 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2

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

    FIGURA 2.7 Reprezentarea irului de caractere n memorie

    i numele vizitatorului sitului!

    Privii figura 2.8.

    FIGURA 2.8 Aici apare i denumirea clientului

    Iatcodul care conduce la un astfel de aspect:

    LISTA 2.8 Un scenariu n care prelucrm doi parametri pasai prin adresa n stilulURL

    01. 02. Welcome!03. 04. 05.

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    10.

    Today is: 11.

    12. 13. 18. 19.

    Ca s funcioneze acest exemplu, trebuie s recurgei la specificaia URI (URL)urmtoare:

    http://localhost:8080/test/welcome4.jsp?fName=numele_dvs.&lName=prenumele dvs.

    Explicaii

    Remarcai scenariul din liniile 14-16. Am declarat variabilele firstName i lastName.Le-am iniializat cu valori. n acest sens am folosit tuplul

    nume_obiect.denumire_metod

    deci request.getParameter(). Obiectul s-a numit request (vezi capitolul urmtor) iarmetoda, getParameter().

    Sadugm un fond muzical i un efect de

    animaie sitului!

    Vrugm srulai urmtorul exemplu de paginJSP (lista 2.8) pe o configuraie care saibplaca de sunet, difuzoare, browserul MSIE (neaprat, fiindcpe alte browsere nueste recunoscutbaliza MARQUEE din HTML), iar browserul s fie instalat n modstandard, adicsfie n stare srecunoascobiecte multimedia muzicale (fiierele cuextensia .au, .avi i/sau .voc). Fiiere cu unul dintre aceste sufixe ar trebui sexiste pePC-ul dumneavoastr.

    Plasai n final secvena muzical, pe care so redenumii melos.au, chiar n acelaidirector test, ca i exemplul welcome5.jsp, acesat firete, dac fiierul muzical a avuttipul de date .au. Lansai apoi motorul servlet i dai comanda care se vede n linia

    Address, din figura 2.9.LISTA 2.9 Un sit muzical!

    01. 02. 03. Welcome!04. 05. 06. 07. 08.

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    10. String marfuri[] = { "electronice", "mobila", "cosmetice", "pentru gradinarit","camping" };

    11. out.println("Azi va oferim o bogata gama de sortimente de marfuri:");

    12. for (int i = 0; i < m; i++ ) {

    13. switch (i) {14. case 0: out.print("" + marfuri[i] + "");15. break;16. case 1: out.print("
    " + marfuri[i] + "");17. break;18. case 2: out.print("
    " + marfuri[i] + "");19. break;20. case 3: out.print("
    " + marfuri[i] + "");21. break;22. case 4: out.print("
    " + marfuri[i] + "");23. break;24. }

    25. }26. %>27. 28. 29.

    FIGURA 2.9 Mult zgomot pentru ... nimic!

    Explicaii i parafrazeSl descifrm, mai ales ceste plin de obiecte de efect! Mai nti i nti suntem deacum experi n scriptlet-uri. Vedem n acest exerciiu vreo patru scenarii. Primele dousunt identice cu cele din lista 2.3.

    Al doilea scriptlet se ocup de muzic! Remarcai baliza EMBED (linia 07) dinHTML, prin care anunm browserul curmeazsinterpreteze cu ajutorul unui add-on, adical unui program ter(un player) partitura melos.au.

    S privim al treilea scriptlet (liniile 09-26). Este primul contact cu instruciunilelimbajului Java. Se declar(adicse aloci se iniializeaz) o variabilde tip ntreg,

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    denumitm. Ea are valoarea 5. Se declar apoi un masiv de iruri denumit marfuri.Valorile fiecrui element al su sunt literalii. Sunt n total cinci elemente, exact ct amstabilit pentru m. Mai departe remarcai instruciunea deja familiar, out.println().Vedei baliza MARQUEE, ce este specificdoar browserelor Microsoft. Textul flancat

    de perechea , va aluneca pe ecran.Ce nseamnnotaia for (int i = 0; i < m; i++)? Este o instruc iune Java. Se citete aa:pentru i (variabilde indexare de tipul ntreg) cu valori de la 0, pnla 5, mai puinvaloarea 5 (i < 5) din 1 n 1, executgrupul de instruciuni aflat ntre acolade. Acestgrup l denumim i corp. Este compus aici doar dintr-o singurinstruciune, switch. Potfi oricte instruciuni. Daceste doar o instruciune nu mai trebuie folosite acoladele. Nuam greit cle-am scris, dar ca snu uitm aceste acolade le vom aduga sistematic.

    Citim aa: cnd i va avea valoarea egalcu 0, se execut instruciunile cazului zero(case 0:). Apoi se sare dupinstruciunea switch. Variabila i crete cu o unitate datorit

    notaiei i++. Valoarea i se va compara cu 5. Fiindcea este egalcu 1, se va executaout.println i break-ul acestui caz (case 1), .a.m.d. V-ai prins!

    Mai observai ceva i anume c out.print() adreseaz cte un singur element almasivului. Privii figura 2.9, unde apar aceste valori n mod distinct. Snu vderanjezecau diverse culori. Noi le comandm cu acele balize font color! Deci n cazul i nereferim la al i-lea element, marfuri[ i ]. Cnd i a ajuns la valoarea 5, nu se mai intrncorpul for.

    Cteva observaii extrem de motivate

    1. Categoric, nu ne propunem a vnva limbajul Java, ca pe studentul facultiide InformaticEconomic. Nu ar avea nici un rost sinsistm, ntruct profilulfacultii R.E.I. nu este cel de formare de dezvoltatori de situri comerciale.

    2. n postura posibilde manager, am dori saflai n urma audierii acestui curs isapreciai corect efortul celui care a primit de la dumneavoastrmisiunea de ase ocupa de crearea i ntreinerea unui sit comercial.

    3. Foarte muli dintre dumneavoastrsuntei absolveni de secie real. n ultimeleclase v-ai ntlnit cu programarea! Unii ai avut i destule ore, alii mai

    puine pe semetru.

    4. Majoritatea ai deprins a lucra cu suprafee de lucru ale familiei MicrosoftWindows de la primul curs de Iniiere n informatic! Oricum, vvd colindndcu dezinvolturprin situri duptiri, brfe, muzicMP3, avei frecvent csue

    potale la Hotmail, Yahoo etc.!

    5. De-a-lungul timpului am observat un interes aparte la unii dintre studenii aianului doi, spre teme de caspractice nu numai de copia la mntuialun referatdin Internet, cumprat pe bani de la binevoitori, fr s v mai nelegeiconinutul! Este o modduntoare ! La ce ai mai intrat n facultate!

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    6. Existntre dumneavoastroameni care publiccurent pe Web! Nu este marescofal! Facem aceasta la lucrrile de laborator, la Yahoo Geocities, de vreo treiani ncoace!

    7. Ultimele cinci serii de studeni au deprins limbajul HTML. Nu am avut timp ai

    nva pe studenii seriei anului universitar 2002/2003 i ASP, deoarece amconsacrat prea multe cursuri unor elemente despre reele, aa cum era structuratanterior cursul denumit Internet!

    8. Am ataat n aceastcarte o parte din cursul profesorului Mihai Calciu, pe careacesta l predstudenilor economiti de la Universitatea Lille I. Se referla treitehnologii JSP, ASP i PHP.

    9. Noi nu o sne rezumm dect la a vsensibiliza n JSP i ASP la stadiul nude scriere de programe ci de recunoatere de secvene. De aceia o svi se admiti la proba de verificare cartea pe mas. Vai acelora care nu citesc n prealabilcartea ! Dacv-ar cdea n mnBirotica i Internet la cumpna mileniilor,elaborat de ctre aceiai autori, aprut la editura Lucman n dec. 2000, aiconstata cn ultima parte vorbeam de limbajul de scenarii PERL sub mediulLinux.

    10. Ca i la Universitatea Lille, avem i noi de vreo doi ani ncoace un serverpropriu de Linux SuSE. Nu este vizibil de la staiile laboratoarelor, dect ntr-ofereastrDOS, ntruct aici nu s-a admis includerea i a unei suprafee graficeLinux. De la etajul 4 se poate lucra n fereastr tip Term-Linux, din linia decomand. Este prea !

    11. Vrem s micorm acest decalaj stimai studeni ntre studenii romni i ceifrancezi. Destul cu mnuirea mausului! Destul cu nvarea lejera folosirii PC-ului doar pentru colindarea prin spaiul Web! Din liceu i din coala primardeprindei aceste lucruri!

    Concluzia: Trecem la un alt stadiu de profesionalism, de fapt mergem n pas cu ...

    lumea!

    nainte de a ncheia iato procedur:

    Este absolut necesar ca naintea folosirii browserului de serviciu (de regulMSIE), s

    pornii motorul servlet Resin.

    Efectuai un clic pe pictograma httpd aflatpe suprafaa de lucru. Vor aparedouferestre cu fond negru. n fereastra mare se anuncmotorul ateaptmesajela portul cu numrul 8080. Pe durata testrii nu nchidei aceste ferestre. Minimizai-le sau plimbai-le oriunde pe ecran. Dacle-ai nchidei oprii motorul!

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    La final de capitol

    Aadar n acest capitol am nvat:

    1. Modurile prin care un client Web solicitservicii unui servlet. Am aflat csunt

    trei protagoniti implicai: MSIE, adicclientul Web, serverul Web i n sfritmotorul. Toate trei pot fi pe aceiai staie, dar pot fi n puncte diferite!

    2. Csunt cinci pai prin care se metamorfozeazo paginJSP, ajungnd la finaln a fi executatpe serverul Web.

    3. Care sunt specificaiile de adresn stil URI (URL) pentru lansarea n lucru aunei pagini JSP n contextul celor doumotoare, Allaire JRun i Caucho Resin.

    4. Ce este acela un scriptlet. Am i elaborat vreo cteva scenarii.

    5. Ce nseamnout.println.

    6. Ce nseamnirul .

    7. Cum declari se iniializeazvariabile.

    8. Ce semnificaie are scrierea de denumiri cuplate prin puncte, specificmediuluiprogramrii orientate pe obiecte.

    9. Destule despre limbajul Java, n ultimul listing cu situl muzical!

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    Directive i obiecte JSP

    Pentru a putea rsfoi cteva din caracteristicile acestui limbaj, nu mai putem

    pleca de la o aplicaie de e-commerce, deoarece dacam face aa, ar trebui svenim acum n faa dumneavoastrstimate cititorule cu exemple complicatei v-

    am bulversa!

    o lum pe ndelete! Nu avem ce face, trebuie strecem n revistdoar ctevadintre virtuile acestui limbaj. Numai n acest capitol se va ntmpla spuem pe

    primul loc limbajul, nu aplicaia ! i totui vom avea i aici aplicaii utile.

    Directiva include file

    Mecanismul directivei include file

    n capitolul precedent aminteam de directiva page. JSP posedmai multe directive. Sne referim acum la directiva include. Sintaxa ei este urmtoarea:

    Aici path este termenul englezesc i nseamnspecificaie de cale. Se tie ncde la MS-DOS cun fiier se aflundeva ntr-un anume director, care este fiul altui directorDeci specificaia se poate scrie: dir/dir/.../dir/nume-fiier.extensie.

    Sprivim cazul de mai jos. Sunt doupagini JSP. Iatlistele :

    LISTA 3.1 Din pagina welcome6.jsp apelm pagina antet.jsp01. 02. 03. 04. 05. 08.

    Heute ist am: 09.

    Capitolul

    3

    S

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    i pentru pagina antet.jsp:

    01. 02. 03. 04. Willkommen im ... Obst und Geme

    Haus! 05. 06. 07. 08. 09.

    Explicaii i parafraze

    Sne fixm atenia pe prima dintre liste. Observm pe linia 02 directiva include. Lantlnirea unei atari directive, motorul va prelua liniile listei a doua, dup care va

    continua cu parcurgerea listei welcome6.jsp. n tot acest timp, motorul servlet vaverifica sintaxa comenzilor JSP. Dacle va gsi n regul, va genera codul java.

    n lista antet.jsp distingem un obiect de tip multimedia (coloana sonor, melos.au). Esten linia 06. Mai vedem i cteva balize ce se referla un tabel. Nu ieim din subiectulacestui capitol. Vei citi singuri partea referitoare la HTML, pentru a pricepe censeamnaceste balize!

    i ncceva! Literele naionale germane sunt admise i afiate corespunztor. Ele facparte ntr-adevr din pagina de cod ISO 8859-1. Ea se referla primele 256 caracteredin Unicode. Dac n primele 128 simboluri apar simbolurile alfabetului englez i

    american, n urmtoarele 128 coduri se afl diacriticele ctorva naiuni europeneprivilegiate.

    Acum s contemplai aspectul acestei pagini rezultate din fuzionarea paginilorwelcome6.jsp i antet.jsp.

    FIGURA 3.1 Aspectul ferestrei documentului paginii rezultante welcome.jsp i antet.jsp

    Aceasta a fost metoda staticde pasare a informaiei ntre pagini. De fapt, aici nu s-atransmis nimic, dect comanda ca s fie incluse liniile fiierului antet.jsp n fiierul

    welcome6.jsp.

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-d

    Sexaminm n continuare modalitatea de pasare efectiva parametrilor ntre doupagini.

    Cum pasm parametrii ntre paginile JSP

    Recurgem la obiectul implicit request i la dou metode ale sale, getAttribute() isetAttribute(). Fiierul a1.jsp trimite fiierului b1.jsp valoarea parametrului titlu.

    LISTA 3.2Parametrul pasat ntre pagini

    i

    FIGURA 3.2 Aspectul ferestrei browserului duprularea acestor doupaginiExplicaii

    Observai cuvntul Salutare afiat n titlul ferestrei. Pasarea are loc prin metodelegetAttribute() i setAttribute() ale obiectului request.

    Diferena dintre jsp:include i jsp:forward

    Existi alt mod de pasare de valori a parametrilor ntre pagini i anume, prin etichetelejsp:include i jsp:forward.

    Notaia jsp:action este cunoscut sub numele de aciune standard. I se mai spuneetichet, deoarece se face un salt de la un program la altul. Sunt mai multe astfel deetichete, dar ne referim doar la jsp:include, fr a-i arta sintaxa mai greoaie i la

    jsp:forward, pentru care venim cu un exemplu practic.

    Cu jsp:action apelm o pagin static (extensia .htm/.html) sau o pagin dinamic(extensia .jsp) din pagina curent .jsp. Parametrii reali sunt pasai paginii apelate cueticheta jsp:param. Mai mult vedem n anexa B. O explicaie la cele scrise n aceastanexse impune.

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-d

    Eticheta jsp:include este nsoitde douatribute, page i flush. Ambele sunt obligatorii.Sintaxa este urmtoarea:

    sau aa:

    Pentru ambele descrieri sintactice se recurge la descrierea sintactic din XML. Cndobservm o terminaie de genul />, nu urmeaznici un corp. Precis nu cunoatei XML !So lum prin HTML. Cnd scriem fluxul:

    Acesta este un paragraf.

    observm un marcaj p cu cele doubalize. Corpul marcajului este textul n sine. Cnd

    vrem sreferim o poz, n HTML scriem aa:

    Observai cdupaceastbaliznu mai este nici o altbaliz. Nu urmeazniciun corp ntre cele doubalize. n HTML este permisaceastlejeritate. n XML, ea estetaxatdrept eroare sintactic! i atunci nu se admite dect scrierea:

    Deci dup/> nu urmeaznici un corp.

    Sprivim din nou cele douforme sintactice ale etichetei jsp:include. La prima form

    sintacticse merge pe ideea cnu pasm nici un parametru. A doua formsintacticaren schimb un corp, pe rndul al doilea. Pe rndul al treilea apare iar denumirea, etichetei

    precedat de o bar nclinat. Corpul este alctuit din una sau mai multe etichetejsp:param. Cele trei puncte nseamno posibilrepetare a etichetei jsp:param. Fiecareparametru are deci o astfel de etichet.

    Deci paginii apelate putem snu i trimitem la urma urmei nici un parametru, unul saumai muli parametri reali.

    Fiecare etichetjsp:param are un nume logic de paramteru (name) i o valoare (value) aacestuia.

    S lmurim i diferena dinre jsp :include i jsp :forward. O paginJSP genereazunflux de caractere ce sunt destinate clientului Web n ultima instan. Acesta, pn sajungla clientul Web, este stocat n mod temporar ntr-o zontampon (buffer). Cndatributul flush are valoarea adevrat (true), are loc golirea forat a acestui tampon.Pagina spre care este transferat controlul este anunatprin atributul page.

    Privii acum figura 3.3.

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    FIGURA 3.3 Diferena dintre etichete jsp:include i jsp:forward (reproducere

    din manualul devapp.pdf al Allaire JRun, varianta standard)

    Diferena dintre jsp:forward i jsp:include este unde revine controlul. n cazul forward,el nu mai revine la pagina apelant.

    Iatun exemplu concret al directivei jsp:forward. Un proprietar de sit (comercial sauWeb) pleacn vacan. El vrea neaprat streacla un aspect nou al sitului la o datcare nimerete cnd se afln vacan. Noul aspect l numim newFakeRoot, iar fostulaspect, oldFakeRoot. Iatacum lista acestui exemplu:

    LISTA 3.3 Pagina nachdatum.jsp

    01.

    02. 19. 20. 21. 22.

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    Explicaii i parafraze

    Importm pachetele java.util.*. Declarm variabilele oldFakeRoot i newFakeRoot, carevor puncta paginile de cas, deci nceputurile ierarhiilor directoarelor celor dousituri.Pagina de casa sitului vechi se numete oldsite.html, iar pagina de casa sitului nou seva numi newsite.html. Mai departe crem douinstane (h i m) de obiecte tip Calendar.Cnd auzii exprimarea creeazo instan..., maina virtualJava va aloca o zondememorie pe care o va pregti n mod corespunzator. Mai departe, se alocvariabilelehDatum i mDatum. Se instaniaz i aceste douvariabile ca obiecte de tipul Date.Obiectul m primete valoarea datei i orei cnd se va trece pe noua paginde cas. nmDatum se va depune aadar irul de caractere 11 iulie 2003, ora 10.30. ObiectulhDatum trebuie creat i ncrcat cu momentul curent. Se compar cele dou irurihDatum cu mDatum. Cnd se ajunge la data i ora respectiv, se trece automat pe noulaspect. Urmrii instruciunea de comparaie. Atunci coninutul variabilei resultComp va

    fi mai mare dect 0, deci se va executa eticheta jsp:forward. Aici se va evalua dinamicexpresia .

    Dupexecutarea saltului spre pagina newsite.html, controlul nu mai revine n paginachemtoare, nachdatum.jsp, cum s-ar fi ntmplat dacam fi folosit jsp:include.

    n fond i la urma urmei ce este o pagin JSP? Este un text ablonizat format dinporiuni HTML i scenarii scrise n Java (sau JavaScript).

    Despre obiecte implicite i explicite

    Nouobiecte implicite

    JSP opereaz cu obiecte implicite i explicite. Sunt nou obiecte implicite. Iat-le:application (aplicaia), config (configurarea), exception (tratarea excepiilor, erorilor),out (scrierea n pagina curent a unui flux de caractere), page (pagina), pageContext(contextul paginii), request (cererea), response (rspunsul) i session (sesiunea). Aiobservat n exemplele date pnacum directiva import. Cu ea anunam JVM cavemnevoie de o serie de clase. Clasele produc obiecte. Fiecare clasare cel puin unul saumai multe metode pe post de constructori, care servesc la crearea obiectului. Spunem: seinstaniazobiectele!

    n cazul obiectelor implicite, maina virtualJava este aceea care instaniazdin oficiu.n cazul propriilor noastre clase sau a sutelor de clase, care nu sunt abstracte i aparinunuia dintre pachetele Java, se recurge la operatorul de instaniere new.

    Maina virtualJava importn mod automat patru pachete de baz. Un pachet conineun set de clase aezate ntr-o ordine ierarhic.

    Ele sunt: java.lang.*, javax.servlet*, javax.servlet.jsp* i javax.servlet.http*.

    Nu ne intereseazce conin n detaliu.

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    Obiectul aplicaie

    S dm drept exemplu o pagin unde recurgem la obiectul application. Din acestexerciiu vom afla deosebirea dintre un obiect implicit (application) i obiectul explicit(Date). Iatconinutul fiierului:

    LISTA 3.4 Exemplu de folosire al obiectelor application i Date

    Exemplu de obiecte implicite si explicite

    Numele serverului""

    Specificatia reala de cale""

    Ora curenta""

    Explicaii i parafraze

    Lista se referla un tabel banal care se conformeazsintaxei venerabilului HTML. Princomanda import anunm maina virtualJava cvor fi utilizate metodele a douclasei anume, java.util.Date i java.text.DateFormat.

    Clasa Date creazun obiect cu acelai nume. Este un obiect explicit, dovadfolosireaoperatorului de instaniere new. ntotdeauna cnd vedei acest cuvnt, stii cs-a cerutinstanierea, adic generarea obiectului cu acelai nume. Deci notaia new Date()nseamn apelarea constructorului clasei Date. Acesta aloc n memorie un spaiusuficient pentru structura de date cerut de ctre obiect. Informaia n sine a acestuiobiect este o valoare egalcu numrul microsecundelor scurse de la 1 ianuarie 1970 ora0 (meridianul Greenwich) pnn momentul apelului. Formatul acestei valori este un un

    ntreg reprezentat pe un numr dublu de octei, 8 nu 4.Cu ajutorul metodei format(), valoarea aceasta este transformatntr-un ir de caractere,unde apar data i ora.

    Metoda getTimeInstance() aparine clasei java.text.DateFormat. Ea extrage doar ora. Eibine, i obiectul clasei java.text.DateFormat este tot unul de tipul explicit. Vei zice cnu este, deoarece nu apare operatorul new, cum a fost n cazul de mai sus! Vvomrspunde aa: clasa DateFormat este o clasde un tip abstract. Aceasta nseamnceva inu mai intrm n detalii. n acest caz nu este nevoie sfie instaniatcu new. O clascare nu este abstractcreeazun obiect numai cu ajutorul constructorului, deci cu new.

  • 5/25/2018 Ghidul Managerului Pentru Noile Tehnologii Informatice Si de Comunicatie - s...

    http:///reader/full/ghidul-managerului-pentru-noile-tehnologii-informatice-si-de

    Java poseddestule clase abstracte. Din aceiai categorie a acestor clase abstracte faceparte i clasa Enumeration din exerciiul urmtor.

    Obiectul applicationeste tot unul de tipul abstract. De fapt toate cele nouobiecte au labaz clase abstracte. i toate sunt la fel de importante. Pentru oricare din cele nou

    obiecte implicite, maina JVM realizeazautomat instanierea. n exemplul analizat aicise cer informaii despre motor i despre specificaia real de cale unde se afl el.Motorul este un servlet, deci un fiier. Ca atare se aflntr-un anume director. Pnlaacest director se urmeazo cale prin ierarhia directoarelor. n cazul motorului Resin

    privii rspunsul din figura urmtoare.

    FIGURA 3.4a Rspunsul motorului Resin

    Pentru motorul servlet JRun, observai aspectul ferestrei documentului n figur.

    FIGURA 3.4bRspunsul motorului JRun

    Metoda getRealPath() ntoarce directorul unde se aflpaginile JSP, care urmeazca sfie transformate n servleturi.

    n cazul motorului servlet Resin, directorul este c:/Resin1.1.4/doc. Directorul doc aredrept fiu pe directorul test. De aceea apare n adresi test.

    n cazul motor