Agora
Media
Libraria Byblos



AgoraNews  





PC Magazine Ro  




NET Report   




Ginfo   




agora ON line   





PC Concrete   





Liste de discuţii   




Cartea de oaspeţi   




Mesaje   





Agora   








Clic aici
PC Report - ultimul numar aparut


IPRO - PC Magazine Romania, Septembrie 2003
SOLUŢII PENTRU PROGRAMATORII ŞI DESIGNERII WEB

Implementarea aplicaţiilor web profesionale

Tehnologia Java Servlets

Mircea Scărlătescu

Spaţiul Word Wide web a trecut prin diverse etape de dezvoltare, începând de la primele pagini web care aveau funcţionalităţi ce erau de cele mai multe ori limitate la reclamă şi câteva date de contact, până la portalurile complexe din ziua de azi. De la moda de a avea un site personal sau al firmei, s-a ajuns la necesitatea de a fi prezent pe internet pentru a supravieţui într-un mediu de afaceri concurenţial, şi din ce în ce mai axat pe tehnologia informaţiei.

De la un serviciu de interes redus, sau pentru un segment restrâns de public (specialişti), web-ul a ajuns la fel de obijnuit în casele moderene ca şi televizorul sau radioul, şi tendinţa actuală este de intergrare totală a sistemelor electronice în reţeaua mondială, începând de la sistemele de calcul şi până la frigidere care să comande singure produsele care nu se mai gasesc în el. Scenarii science-fiction din urmă cu 10 ani devin acum realitate, cel putin experimental.

Poate că cele mai importante avantaje pe care le oferă web-ul pentru mediul de afaceri este accesibilitatea (o pagină web este vizibilă din orice colţ al lumii, de pe un device conectat la internet) si portabilitatea pe orice sistem de calcul, dotat cu orice sistem de operare.

HTML este limbajul interpretat de orice browser web, fiind astfel un mediu de prezentare ideal pentru aplicaţii ce rulează pe reţele eterogene (aşa cum este internet-ul) unde nu există garanţii asupra sistemelor de operare sau a protocoalelor de comunicaţie utilizate de cei ce se conectează în reţea (clienţii). HTML prezintă însă un mare dezavantaj: este un limbaj care defineşte modul în care informaţia este prezentată, şi nu are posibilităţi de căutare a informaţiei, de prelucrare sau actualizare. Astfel, limitările acestui limbaj au devenit clare odată ce conţinutul paginilor web se schimbă de foarte multe ori (conţinutul unei pagini web se actualizează chiar şi la interval de câteva secunde, vezi portalurile de ştiri). Aplicaţiile web din ziua de azi accesează informaţii confidenţiale ale companiilor, ajută la stocarea informaţiilor introduse de către clienţi, prelucrează date care parvin în mod automat de la alte aplicaţii (servicii web), de aici rezultând necesitatea unor tehnologii care să fie fiabile şi stabile, să asigure securitatea necesară unor tranzacţii de genul celor descrise mai sus.

Însuşi termenul de pagină Web este considerat de mulţi specialişti ca fiind depăşit din punctul de vedere al aplicabilităţii şi al modului în care descrie utilizarea Web-ului ca "platformă" de comunicaţii în lumea de azi. Termenul de aplicaţie Web (sau aplicaţie cu interfaţă Web) defineşte azi programe de o complexitate începând de la mediu până la foarte mare, care oferă suite de servicii complexe şi variate către clienţii companiilor sau către alţi utilizatori de internet. Un exemplu care în ţările ceva mai dezvoltate a devenit banal, dar care în Romania este înca privit cu multă teamă, este magazinul virtual, comerţul electronic. Un astfel de site, trebuie să asigure o prezentare dinamică şi cât mai reuşită a produselor comercializate, trebuie să asigure o posibilitate cât mai convenabilă de achiziţionare şi bineînteles trebuie să fie pus la punct cât mai bine din punctul de vedere al securitaţii şi confidenţialităţii datelor pe care clienţii le oferă la cumpărare. Nu în ultimul rând, un astfel de produs trebuie să fie uşor de administrat, uşor de actualizat atunci când va fi cazul, inclusiv de către persoane care nu sunt specialişti IT.

Odată cu dezvoltarea tehnologiei informaţiei, nevoile de comunicare prin intermediul web-ului au adus în discuţie dezvoltarea unor soluţii software destinate implementării soluţiilor web dinamice, care să aducă programarea online la nivelul programării clasice, şi chiar undeva mai sus, din toate punctele de vedere. Astăzi, nu se mai concep soluţii ERP şi CRM (şi nu numai) care să nu conţină şi interfeţe web pe deplin functionale, care pot fără probleme să înlocuiască aplicaţia clasică. Şi având în vedere că web-ul s-a extins practic în toate domeniile de activitate, putem afirma fără teama de a greşi că domeniul aplicaţiilor web este la ora actuală într-o continuă dezvoltare, iar viitorul îi rezervă doar surprize plăcute.

Marile companii s-au întrecut în a oferi soluţii din ce în ce mai performante şi uşor de utilizat pentru acest domeniu. PHP s-a impus ca o solutie open-source care împreună cu server-ul Apache şi MySQL pentru baze de date a adus la o adevarată revoluţie în domeniul programării Web. Apropierea de sintaxa C/C++, usurinţa programării şi rapiditatea dezvoltării surselor au dus la un succes imediat al acestui limbaj de scripting

La rândul lui, gigantul din Redmond - Microsoft - a lansat ASP, un limbaj de scripting care a cucerit un segment important de piaţă în domeniul productiei Web. Sun, promotorii Java au lansat apoi tehnologia JavaServerPages şi Java Servlets, care au adus Java şi mai puternic în domeniul internetului, iar implicarea IBM în promovarea soluţiilor de business bazate pe Linux şi Java, au facut ca JSP şi Servlets să devină una dintre cele mai bune soluţii de dezvoltare a aplicaţiilor B2B şi B2C existente.

.NETFramework de la Microsoft a adus tehnologia ASP.NET, care însă cel puţin pentru moment suferă la capitolul portabilitate (servere ASP.NET - enabled nu există pe moment decât pentru platforme Windows), acest subiect reprezentând deocamdată un punct mai slab pentru produsele Microsoft.

Vom discuta în cele ce urmează tehnologiile de dezvoltare web implementate şi promovate de Sun (www.sun.com) denumite Java Servlets şi Java Server Pages. Încă de la început trebuie precizat, pentru începatori, că pentru a putea lucra cu pachetele Java destinate construirii aplicaţiilor web, sunt necesare cunoştinţe de programare pe obiecte, şi de sintaxă Java. Desigur internetul este plin de astfel de documentaţii şi tutoriale pe tema Java şi OOP (Object Oriented Programming), deci nu va fi o problemă pentru doritori să deprindă secretele acestui limbaj extrem de apreciat.

Dar pentru că o introducere în universul web al zilei de azi şi al viitorului, nu este completă fără o scurtă referire la XML, trebuie să spunem că toate facilităţile de lucru Java cu formatul XML sunt disponibile şi în tehnologiile de dezvoltare web ale acestei platforme. XML s-a impus ca standard în tipizarea şi transmiterea informaţiilor între sisteme, şi este pe scară largă folosit în tehnologia denumită servicii web, anunţată ca marea cucerire a programării web din ultima vreme. Recomandăm studiul acestui standard, care stă acum la baza comunicării atât între calculatoare, dar şi în general între orice device-uri ce se pot conecta la internet. www.w3.org este adresa care se recomandă pentru documentaţii şi specificaţii complete pentru XML.

Ce sunt de fapt servleţii Java?

În esenţă, un servlet este un modul Java care rulează în interiorul unui server web, si îi extinde funcţionalităţile. Putem să spunem, făcând o comparaţie cu programele Java obijnuite că un servlet este pentru un server web ceea ce este un applet Java pentru browserele web. Diferenţa este însa că un servlet nu va avea o interfaţă grafică, funcţionarea lui fiind transparentă pentru client. De asemenea servleţii sunt o soluţie bună pentru înlocuirea programării CGI clasice.

Domeniile în care tehnologia Java Servlets se poate integra încep de la aplicaţii de management al afacerii, administrarea bazelor de date până la domeniul deoesebit de la modă şi în plină dezvoltare al video-conferinţelor sau chat-ului. Servlet-urile pot să facă faţă cererilor simultane făcute de către mai mulţi clienţi, le poate sincroniza, pot restricţiona accesul acestora la resurse funcţie de necesităţi sau de politicile de securitate, şi chiar pot comunica unul cu altul, sau cu alte resurse online, ceea ce-i fac o soluţie bună pentru load-balancing între mai multe locaţii cu acelaşi conţinut. Desigur nu întâmplător am amintit mai devreme de magazine virtuale, Java fiind una din cele mai apreciate tehnologii de implementare a sistemelor de plata online, şi tot ce înseamnă comerţ electronic (autentificare, certificate electronice, criptare, etc).

Un alt mare avantaj care apare la utilizarea tehnologiei JavaServlets, este reprezentat de existenţa facilităţilor de multi-threading, concept înrudit cu multi-tasking, şi care reprezintă efectuarea mai multor task-uri de către o singură masină (aparent) simultan. Această facilitate este deosebit de bine utilizată de sisteme multi-procesor, dar nu numai, iar limbajul Java include pachete foarte performante pentru lucrul cu thread-uri.

Trebuie precizat că servleturile sunt independente de protocolul folosit pentru comunicare de către servere, cele mai folosite fiind servleturile care lucrează cu protocolul HTTP (şi deci pe servere web). Acest aspect merită precizat şi pentru a întări ideea independenţei de platformă pe care rulează o aplicaţie ce foloseşte servleţi.

Un servlet, ca orice program Java, se poate scrie în orice editor de text, deşi, dacă se doreşte exsită şi unelte dedicate, unele open-source, şi unele care sunt disponibile contra cost. Pentru a scrie un servlet, este necesară importarea pachetului javax.servlet, pachet ce conţine interfeţele şi clasele ce sunt necesare la proiectarea şi rularea lui. Nucleul acestui pachet este reprezentat de interfaţa servlet. Orice servlet implemetează direct sau indirect această interfaţă. O metodă relativ mai uşoară este de a deriva clasa Http Servlet (clasa ce implementează interfaţa Servlet). Întreaga arhitectură a pachetului javax.servlet se invârte în jurul acestor două clase prezentate mai sus.

Poate cea mai importantă componentă a unui servlet, fără de care funcţionalitatea acestuia s-ar pierde, este reprezentată de interacţiunea cu clientul. La primirea unei cereri de la un client, programul primeşte două obiecte: ServletRequest si Servlet Response. Primul obiect este cel care realizează "încapsularea" comunicaţiei dinspre client către server, iar al doilea este responsabil de comunicaţia în sens invers de la server, înapoi către client. Cele două interfeţe (ServletRequest, ServletResponse) sunt incluse în pachetul javax.servlet.Vom discuta în continuare despre ele.

ServletRequest

Permite accesul servletului la informaţii cum ar fi numele parametrilor trimişi de client, numele host-ului care face cererea către servlet, etc dar şi la fluxul de intrare (stream) de la client, prin care sunt transmise variabile prin metodele POST şi GET. Interfeţele care extind ServletRequest permit structurarea datelor de intrare în funcţie de protocolul folosit. Un exemplu de interfaţă de acest gen: HttpServletRequest conţine metode care prelucrează date ce vin prin intermediul protocolului HTTP.

ServletResponse

Permite setarea unor informaţii cum ar fi lungimea sau tipul răspunsului ce pleacă spre client, dar şi un flux (stream) de ieşire.

Un servlet Java folosit în ziua de azi la aplicaţiile web implementează desigur mult mai multe operaţii (şi mai complexe) odată ce este apelat de un client. Există posibilitatea setării de cookie-uri, iar funcţionalităţile limbajului Java (lucrul cu baze de date, prelucrare de text, etc) pot fi folosite pentru scrierea de servleturi complexe.

Dar cum întodeauna un exemplu face cât 1000 de cuvinte J iată în continuare un scurt servlet care ilustreaza informaţiile prezentate mai sus

public class PCMagazineServlet extends HttpServlet
{
public void doGet (HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
PrintWriter outStream;
String titlul = "Primul Servlet prezentat de tutorialul PCMagazine!";
// setam tipul raspunsului
response.setContentType("text/html");
// se scrie raspunsul (prin intermediului fluxul de iesire out)
outStream = response.getWriter();
outStream.println("<HTML><HEAD><TITLE>");
outStream.println(titlul);
outStream.println("</TITLE></HEAD><BODY BGCOLOR=#336699>");
outStream.println("<P ALIGN=center >" + titlul + "</P>");
outStream.println("<HR>");
outStream.println("<P ALIGN=center>PCMagazine: Tutorial JavaTehnology.");
outStream.println("</BODY></HTML>");
outStream.close();
}
}

Exemplul de mai sus va întoarce la client o pagină HTML (fără pretentii grafice deosebite J) care reprezintă răspunsul server-ului web la cererea clientului. Despre modul de comunicare între client şi server-ul web, tipul raspunsului (şi ce opţiuni există pentru el), specificaţiile HTTP 1.1 pot fi găsite la adresa www.w3.org. De asemenea, este recomandată şi studierea documentaţiei aferente pachetului javax.servlet, pentru o înţelegere temeinică a posibilităţilor şi facilităţilor pe care le oferă.

Pentru a putea rula exemplul de mai sus, dar şi orice alt servlet, trebuie să avem configurat un server care "ştie" să ruleze servleturi Java. Un excelent server care rulează servleturi este server-ul Tomcat (proiectul Apache Foundation - www.apache.org). Tomcat este disponibil atât pentru platforme Windows, cat şi Linux, alegerea din acest punct de vedere aparţinând exclusiv dumneavoastră. E bine de precizat că soluţii Java-Linux sunt la ora actuală foarte căutate şi apreciate. Există o mulţime de servere Java-enabled, dar pentru început, atât ca dimensiune, cât şi ca resurse utilizate, configurare, etc Tomcat reprezintă o alegere buna pentru începători şi nu numai. Tomcat poate fi instalat odată cu pachetul Java Web Services Developers Pack, disponibil de la Sun (gratuit).

După descărcarea pachetului şi instalarea acestuia, server-ul web este gata de lucru. Pornirea şi oprirea server-ului Tomcat se fac astfel:

pornire server:

pe un sistem Unix (Linux): % startup.sh
pe un sistem Windows: C:\TOMCAT_HOME\bin> startup

oprire server:

pe un sistem Unix (Linux): % shutdown.sh
pe un sistem Windows: C:\TOMCAT_HOME\bin> shutdown

Odată ce server-ul Tomcat este pornit, pentru rularea unei aplicaţii care conţine servleturi, primul pas este reprezentat de specificarea unor parametrii care definesc "comportamentul" aplicaţiei, prin intermediul unui descriptor de deployment, descriptor care este reprezentat printr-un fisier xml.

Despre cum instalăm şi configurăm o aplicaţie în Tomcat, precum şi un prim exemplu elaborat pentru servleturi vom prezenta în numărul viitor.

Până atunci, recomandăm pentru cei interesaţi de acest domeniu, site-urile www.apache.org www.java.sun.com www.sun.com atât pentru resursele necesare, dar şi pentru o serie de documentaţii deosebit de interesante din domeniu, unele dintre ele gratuite, şi insoţite de exemple de cod. Desigur şi o căutare pe www.google.com poate da rezultate satisfăcătoare. Dar şi pentru cei care nu sunt pasionaţi încă de programarea Web realizată în tehnologie Java, trebuie să spunem că extinderea mare a platformei în cele mai variate domenii, (chiar şi până la televiziunea interactiva !) fac din aceasta o soluţie de viitor atât pentru companiile care caută soluţii de dezvoltare IT, dar şi pentru producătorii de astfel de soluţii, deci documentarea pe această temă nu poate să fie decât benefică, pentru că experienţa în domeniul tehnologiei informaţiei şi comunicaţiilor arată că primii veniţi în domenii cu mare viitor, şi cei care folosesc tehnologii de ultimă oră, sunt cei care vor avea şi cel mai mare succes. Aşadar, bine aţi venit în Comunitatea dezvoltatorilor Java ☺!


PC Magazine Ro | CD ROM | Redactia | Abonamente | CautareArhive

Copyright © 1999-2002 Agora Media.

webmaster@pcmagazine.ro

LG - Life´s Good

www.agora.ro

deltafri

Concurs de Grafica Digitala si Web Design

www.agora.ro

www.agora.ro