You are on page 1of 7

Pentru a nelege care este situaia cu evoluia aplicaiilor de pe o arhitectur Client ctre o arhitectur Web Client-Server voi face

o paralel grosier ntre aplicaiile Desktop i cele bazate pe Web.

Diferene majore: Durata de via a unei aplicaii web ncepe odat cu primirea Cererii de la client i se termin odat cu generarea Rspunsului Fiecare client Browser/IP primete o sesiune pe server unde poate salva date temporare, pe care o poate accessa prin cookie sau finciile browserului, i care expir dup o lips de activitate (Cereri noi) a clientului O practic uzual este salvarea sesiunii n baza de date i recuperarea ei la o nou cerere a aceluiai client Serverul poate impune limita maxim a duratei de via a aplicaiei i a memoiei folosite. O aplicaie Desktop profesionist depinde puternic de: capacitatea de stocare a mainii pe care ruleaz puterea de calcul a mainii sistemul de operare nu are restricii de acces la resursele mainii pe care ruleaz (CPU, memorie, HDD) dar este limitat la acestea. Tendine: Odat cu apariia de tehnologii noi ca Smart Phone, Tablete, Netbook, aplicaiile web au evoluat ctre folosirea a ct mai puine resurse pe Client i folosirea internsiv a resurselor de pe server privind spaiul de stocare i puterea de calcul, dar vireza de transfer n Internet a devenit o resurs critic, cu un implact vizibil. Aa cum vei vedea n ultimile scheme, inclusiv randarea n pagin se face pe server, crescnd traficul de semnalare a evenimentelor ntre client i server. Aceasta poate scdea viteza de reacie a aplicaiei i poate crete costul de trafic al clientului. Astfel, o aplicaie web depinde puternic de : Viteza de acces a clientului la server

tehnologia folosit pe server, n principal de Framework, cu ct aplicaia i propune s fac operaii i procesri mai complexe, cu att mai mult trebuie s se asigure c tehnologia de pe server o permite Probelemele de securitate a serverului i a aplicaiei. costuri de gzduire a aplicaiei pe server, un server cu Linux, Apache, PHP, MySql nu are costuri de licen i necesit o tehnologie mai ieftin dect ASP

Definiia unui Framework modern: Folosete arhitectura MVC sau MVP (Model View Control sau Model View Presenter) Permite definirea componentelor Definiie/Interfa/Metadata Folosete un model unificat de evenimente, dup nume sau tip de eveniment Ofer suport pentru managementul resurselor Permite Data Binding Nu e organizat pe stri Permite scrierea de cod n mai multe limbaje pe server Permite stilizarea interfeei n mod Interactiv, Declarativ i Programatic

O comparaie amnunit a celor mai cunoscute Framework-uri de aplicaii web gsii la http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks O alegere greit a framework-ului poate crea urmtoarele probleme: 1. Dificulti n nelegerea i folosirea lui, curba de nvare este prea lent, sau numr relativ mic de programatori care stpnesc tehnologia aleas.

2. ajungei s rescriei pri ale aplicaiei de la 0, avnd dezavantajul de a nu putea reutiliza cod disponibil. 3. dezavantaje n folosirea tehnologiei AJAX 4. Depindei defolsirea sesiunii i a Contextului (probleme de afiare pe diferite browsere) 5. Lipsa documentaiei 6. Lipsa unui Model Unifical bazat pe evenimente 7. Devine dificil de gestional configuraia aplicaiei atunci cnd aceasta crete 8. lipsa posibilitii de debug Informaii despre ce trebuie s tii nainte de a alege un Framework gsii aici http://olex.openlogic.com/wazi/2010/choosing-the-right-java-web-developmentframework/ . Printre cele mai folosite i complete Framework-uri sunt cele de java: Stripes, Struts 2, Typrstry, Java Server Faces, Google Web Toolkit, Spring MVC, Wicket. Acestea se mpart n 3 mari categorii de arhitectur:

Server Side Rendering


Component & Template Frameworks Component tree or template rendered to produce markup Ajax added after the fact Exemple: Struts, Webwork, Spring MVC 1, Tapestry 3

Hybrid Rendering
Component Frameworks Render tree exists in client or server side Tight coupling between client/server models Exemple: Tapestry 5

Client Rendering
No Component Model on the server Compiled into Javascript Stateless Server Side - RPC or REST using Spring or Guice Exemple: Google Web Toolkit

You might also like