Tuesday, December 2, 2008

LinkedIn

Între doua spamuri şi o carte de vizita s-ar putea să primiţi zilele acestea si o invitatie de a intra în comunitatea crescanda a LinkedIn, un site de tip "reţele sociale" gen Friendster, dar orientat catre mediul de afaceri. În lume, în prezent acest gen de site-uri se bucură de o creştere exponentiala a numărului de membrii .

Acţionează ca un amplificator al practicilor de retea care le oferă membrilor săi posibilitatea de a găsi referinte profesionale comune.

Fiecare utilizator completează un formular de contact şi isi invita contactele sa se alăture retelei sale. Acestia fac acelasi lucru, şi aşa mai departe iar acesta duce la creşterea reţelei initiale.

Utilizatorul are opţiunea de a căuta în lista sa de contacte direct sau indirect, dar pentru a contacta un membru, trebuie să treaca prin conexiuni intermediare, care la randul lor trebuie sa-si dea acordul pentru a servi ca referinta. Referenţii trebuie să completeze un formular unde sa specifice relatia lor cu solicitantul (manager, coleg, client, etc) .Practic prin intermediul LinkedIn poti sa afli informatii despre locuri de munca , despre conditii si situatii direct de la cei implicati.

Mai trebuie mentionat ca pană în prezent, serviciile sunt gratuite pe LinkedIn iar situatia de criza financiara in care se afla destul de multe state ,si care a dus implicit la afectarea stabilitatii locurilor de munca ne face sa credem ca astfel de retele vor continua cu cresteri semnificative .

WEB 2.0

Web 2.0 nu este ceea ce s-ar putea numi o schimbare tehnologica,ci o trecere de la Web 1.0 Web 3.0. Nu mai reprezinta interactiunea intre utilizatori si site-uri statice ,unde acestia erau simpli vizitatori ,ci acestia sunt acum producatori de continutul editorial (Wikipedia), video (YouTube) si audio (Deez). Web 2.0 este puternic relational si adopta din plin spiritul comunitar.




Dar aceasta filozofie sociala de deschidere are limite ? Ar trebui sa se puna la indoiala credibilitatea informatiilor furnizate de colaboratori? Care sunt consecintele in lumea afacerilor? De exemplu Wikipedia are destule batai de cap cu verificarea datelor pe care persoane rau intentionate la introduc in editoriale. Ne putem intreba daca pe o scara mai mica, aceasta comunitate nu ar putea incita la dezvaluirea unor informatii care tin de viata personala sau de subiecte considerate ca fiind sensibile (religie, politica, sex ..). Ar trebui sa se stabileasca reguli? Participare este serios pusa la indoiala. Web 2.0 nu este o tehnica, ci un nou mod de a utiliza tehnologiile existente. Astfel fiecare site Web 2.0 are câteva caracteristici (XHTML, CSS, JavaScript ..) si standarde de accesibilitate (recunoscute de toate browserele). Mai apare o intrebare : este participarea la inaltime fenomenului? Se estimeaza ca participarea atinge cote importante si se afla intr-o continua crestere .
Putem spune ca epoca web 2.0 nu s-a terminat. Cu toate acestea, auzim deja vorbindu-se de Web 3.0. Acest web se va baza pe un concept de site-uri complet interactive cu utilizatorul.

AJAX



Definirea AJAX
AJAX nu este o tehnologie. Este, de fapt, este un cumul de mai multe tehnologii.
AJAX cuprinde:
- o prezentare bazata pe standarde , folosind XHTML si CSS;
- afisarea si interactiunea dinamica, folosind DOM;
- schimbul si manipularea datelor cu XML si XSLT;
- recuperarea asincrona a datelor folosind XMLHttpRequest
- si JavaScript pentru a lega totul.
Modelul clasic de aplicatie web functioneaza astfel : marea parte a actiunilor in interfata declanseaza o cerere HTTP pentru un server web.Serverul indeplineste unele sarcini - de a recupereaza date, efectueaza calcule, comunica cu diferite sisteme , apoi returneaza o pagina HTML catre client.



Figura 1: modelul traditional pentru aplicatii web (stânga), comparativ cu modelul de AJAX (dreapta).
Aceasta abordare are sens tehnic, dar nu nu ofera confort utilizatorului. In timp ce serverul is face treaba , untilizatorul ce face ? Exact, el asteapta.Si la fiecare etapa a dezvoltarii, utilizatorul asteapta un pic mai mult. Odata ce este descarcata interfata , de ce ar trebui ca interactiunea cu utilizatorul sa se opreasca, ori de câte ori acesta are nevoie de ceva de la server ?

Ce aduce AJAX ?
O aplicatie AJAX elimina modul de interactionare actioneaza-asteapta -actioneaza-asteapta de pe web prin introducerea de un intermediar - un motor Ajax - intre utilizator si server. S-ar putea spune ca adaugarea a inca unui nivel in aplicatie ar face-o si mai putin reactiva , dar se intâmpla exact opusul. In loc de a incarca o pagina, inca de la inceputul sesiunii, browserul incarca un motor AJAX - scis in Javascirpt . Acest motor este responsabil pentru aducerea interfetei dorite de utilizator precum si de comunicarea cu serverul. Motorul AJAX autorizeaza ca interactiunea utilizatorului cu aplicatia sa fie asincrona – independenta de comunicarea cu serverul. Astfel utilizatorul nu vede decat fereastra si o clepsidra, asteptand ca serverul sa faca ceva.





Figura 2: Modelul de interactiune sincrona a unei aplicatii traditionale web (de mai sus), comparativ cu schema asincrona a unei aplicatii AJAX (mai jos).


Fiecare actiune a unui utilizator care ar trebui ,in mod normal , sa genereze o cerere HTTP ia forma unui appel Javascript pe motorul AJAX . Orice raspuns la o actiune a unui utilizator care nu are nevoie de prea multe informatii de pe server – cum ar fi o simpla validare de date, editare de date in memorie, si chiar si unele forme de navigare - este administrata de motor.In cazul in care motorul are nevoie de ceva de la server pentru a raspunde – de ex : de a trimite date pentru o actiune, descarcare de cod suplimentar, sau de a prelua date noi - motorul face cererea asincrona , de obicei, utilizând XML, fara a interzice interactiunea utilizatorului cu aplicatia. AJAX ne da posibilitatea sa ne imaginam o larga paleta de posibilitati facand mult mai interesanta interactinea dintre om si lumea computerelor.



Monday, December 1, 2008

JavaFX

Asa cum promiteam in postul anterior, revin cu informatii despre fiecare din tehnologiile RIA enumerate: Flex, AJAX, Silverlight si JavaFX. O voi lua in ordinea crescatoare a importantei, asa ca articolul de fata se va ocupa de JavaFX.
Ce este JavaFX? Pentru asta voi apela la bunul meu prieten, Wikipedia:
JavaFX Script is a scripting language designed by Sun Microsystems, forming part of the JavaFX family of technologies on the Java Platform.

Bine, bine, dar ce inseamna asta?
Pe scurt, Java FX este raspunsul Sun la noua epoca RIA dominata in mare masura de Flex si Silverlight. Este evident pentru toata lumea ca Sun a ratat start-ul de acum cativa ani (se scriu aplicatii in Flex inca din 2004 si Microsoft-ul incearca si el sa tina pasul), dar oare va reusi sa ia o parte din placinta?
Cei mai multi vor spune nu. Hai sa vedem de ce.
Avantajele JavaFX:
  • prezenta JVM pe majoritatea computerelor din lume (dar Flash Player-ul are o rata de penetrabilitate chiar mai mare, aproximativ 90%)
  • seamana la sintaxa cu Java (dar curba de invatare a Flex-ului nu este nici ea foarte mare)
  • RIA pentru desktop (aplicatii web pentru desktop - vom discuta Adobe AIR in articolele viitoare)
Dezavantaje:
  • runtime-ul trebuie downloadat (aproximativ 4 MB)
  • nu arata la fel de bine ca Flex sau Silverlight

Din aceasta prezentare sumara, se poate deduce clar ca JavaFX inca nu a atins nivelul de maturitate necesar pentru a se bate de la egal la egal cu Silverlight si Flex.

Ar mai fi multe lucruri de spus si nimeni nu are cum sa prezica viitorul, dar un lucru e sigur: Sun a pierdut start-ul si cel putin prima parte din cursa RIA. Daca va reusi sa castige aceasta cursa sau macar sa se claseze pe podium la sfarsitul ei, vom vedea in urmatorii ani.

Next time, Silverlight :)

Epoca RIA

Internet-ul s-a schimbat enorm de la aparitia sa in 1990. Daca acum cativa ani inca puteai gasi pagini HTML scrise integral in Notepad, in ziua de azi vorbim de AJAX, Adobe Flex, Microsoft Silverlight si mult asteptatul JavaFX. Dar de fapt toate aceste concepte se refera la acelasi lucru: RIA - Rich Internet Applications si o noua epoca in evoluatia Web-ului: Web 2.0.
S-a vorbit mult despre Web 2.0, incepand cu intrebarea evidenta: ce inseamna Web 2.0? Si ce inseamna Web 1.0? Sa incep cu sfarsitul: Web 1.0 inseamna tot ce a existat pana la aparitia 2.0. O descriere cam vaga, nu-i asa?

Web 2.0 nu inseamna neaparat tehnologii noi, poti crea un site Web 2.0 foarte bine in notepad folosind PHP si MySQL. Ce difera?
The term "Web 2.0" describes the changing trends in the use of World Wide Web technology and web design that aim to enhance creativity, communications, secure information sharing, collaboration and functionality of the web.

Nici eu nu m-as fi putut exprima mai bine. Pe scurt, nu ai nevoie de RIA ca sa creezi un site 2.0 ( cel mai bun exemplu sunt blog-urile).

Ok ok veti spune voi, dar ce este RIA pana la urma?
RIA aduce cu sine interfete grafice mult mai expresive si o noua paradigma. Ca sa citez din nou din Wikipedia:
* Richer. They can offer user-interface behaviors not obtainable using only the HTML widgets available to standard browser-based Web applications. This richer functionality may include anything that can be implemented in the technology being used on the client side, including drag and drop, using a slider to change data, calculations performed only by the client and which do not need to be sent back to the server, for example, a mortgage calculator.

* More responsive. The interface behaviors are typically much more responsive than those of a standard Web browser that must always interact with a remote server.
* Client/Server balance. The demand for client and server computing resources is better balanced, so that the Web server need not be the workhorse that it is with a traditional Web application. This frees server resources, allowing the same server hardware to handle more client sessions concurrently.
* Asynchronous communication. The client engine can interact with the server without waiting for the user to perform an interface action such as clicking on a button or link. This allows the user to view and interact with the page asynchronously from the client engine's communication with the server. This option allows RIA designers to move data between the client and the server without making the user wait. Perhaps the most common application of this is pre-fetching data, in which an application anticipates a future need for certain data and downloads it to the client before the user requests it, thereby speeding up a subsequent response. Google Maps uses this technique to load adjacent map segments to the client before the user scrolls them into view.
* Network efficiency. The network traffic may also be significantly reduced because an application-specific client engine can be more intelligent than a standard Web browser when deciding what data needs to be exchanged with servers. This can speed up individual requests or responses because less data is being transferred for each interaction, and overall network load is reduced. However, over-use of asynchronous calls and pre-fetching techniques can neutralize or even reverse this potential benefit. Because the code cannot anticipate exactly what every user will do next, it is common for such techniques to download extra data, not all of which is actually needed, to many or all clients.
Lucrez de aproape un an cu Adobe Flex, avand ca backend J2EE si pot spune ca aplicatiile dezvoltate cu el arata extraordinar, se misca foarte bine si definesc cel mai bine conceptele esentiale Web 2.0:
Web 2.0 is the business revolution in the computer industry caused by the move to the Internet as a platform, and an attempt to understand the rules for success on that new platform.


Voi reveni cat de curand cu articole despre fiecare din tehnologiile RIA curente.