paradigm as para to de sites

Upload: rafael-bastos

Post on 07-Jul-2015

97 views

Category:

Documents


0 download

TRANSCRIPT

Universidade Estadual de Campinas UNICAMP Centro Superior de Educao Tecnolgica CESET

Paradigmas para Desenvolvimento de Sites e Aplicaes Web utilizando AJAX

derson Frasnelli Ribeiro Ricardo Henrique Cndido

LIMEIRA - SP 2006

i Universidade Estadual de Campinas UNICAMP Centro Superior de Educao Tecnolgica CESET

Paradigmas para Desenvolvimento de Sites e Aplicaes Web utilizando AJAX

derson Frasnelli Ribeiro Ricardo Henrique Cndido

Orientador: Professor Klausner Vieira Gonalves

TGI apresentado ao Centro Superior de Educao Tecnolgica concluso Informtica. do CESET Curso como de requisito de em Tecnologia

LIMEIRA - SP 2006

ii

DedicatriasAos meus pais, pelo amor e apoio irrestritos em todos os momentos de minha vida, e ao meu irmo, pelo exemplo de dedicao. derson Frasnelli Ribeiro

Deus e a toda minha famlia (Luana, Pedro, ao meu prximo filho(a), Antonio e Teresa), que me agentaram e me deram fora durante o curso. Ricardo Henrique Cndido

iii

AGRADECIMENTOSAgradeo a todas as pessoas que de forma direta ou indireta contriburam para a realizao desse trabalho, de modo especial: Deus, por ter me dado capacidade e fora para vencer mais esta etapa de minha vida; aos meus pais e ao meu irmo, por todos os exemplos e ensinamentos; toda minha famlia; minha namorada, pelo incentivo e compreenso durante os meus momentos de ausncia em funo deste trabalho; ao Professor Klausner Vieira Gonalves pela orientao, oportunidade, sugestes, pacincia e incentivo durante a realizao deste trabalho; Elenice de Souza Alves, uma amiga especial que aprendi a admirar e a considerar como uma irm, por todos os conselhos, incentivos, fora perante as dificuldades ultrapassadas conjuntamente, momentos de descontrao e tantos outros motivos; aos amigos Fernando, Francisco, Lucas, Carolina, Danielle, Rosane, Roberta e tantos outros amigos, por todos os momentos vivenciados durante a graduao; ao Ricardo, pela amizade, pela ajuda nos momentos de dificuldade durante a graduao e no desenvolvimento deste trabalho e pelos exemplos de caracter e vida e finalmente aos amigos Daniel Pedronette, Marcelo do Nascimento, Maurcio Calixto e Ronaldo Santana. derson Frasnelli Ribeiro

Primeiramente agradeo a Deus, porque sem ele nada disso seria possvel; ao Professor Klausner por ter aceito este desafio e nos ter orientado; minha famlia, Luana, Pedro e ao prximo filho(a) que j est a vir, aos meus pais Antonio e Teresa e a todos de minha famlia, colegas e amigos e ao derson por ter sido meu parceiro e amigo, e por ter me ajudado muito. Ricardo Henrique Cndido

iv

SUMRIOLISTA DE FIGURAS...................................................................................................vii RESUMO...................................................................................................................viii 1. INTRODUO........................................................................................................1 2. PADRES WEB.....................................................................................................3 3. WEB 2.0................................................................................................................13 4. ASYNCHRONOUS JAVASCRIPT AND XML (AJAX)...........................................20 5. CONCLUSO.......................................................................................................45 6. REFERNCIAS BIBLIOGRFICAS......................................................................47 7. BIBLIOGRAFIA.....................................................................................................49 8. GLOSSRIO.........................................................................................................50 9. APNDICES.........................................................................................................57 10. ANEXOS.............................................................................................................82

v

NDICELISTA DE FIGURAS...................................................................................................vii RESUMO...................................................................................................................viii 1. INTRODUO........................................................................................................1 2. PADRES WEB.....................................................................................................3 2.1. Contextualizao.............................................................................................3 2.2. A revoluo na Web........................................................................................4 2.3. World Wide Web Consortium (W3C)...............................................................5 2.3.1. Alguns padres do W3C...........................................................................6 2.4. Conceituao...................................................................................................6 2.5. Vantagens da utilizao de Padres Web.......................................................7 2.5.1. Uniformidade............................................................................................7 2.5.2. Simplicidade.............................................................................................8 2.5.3. Liberdade..................................................................................................8 2.5.4. Separao de estrutura e apresentao..................................................8 2.5.5. Facilidade de criao................................................................................9 2.5.6. Estabilidade..............................................................................................9 2.5.7. Acessibilidade...........................................................................................9 2.5.8. Usabilidade.............................................................................................10 2.6. Desvantagens dos padres Web...................................................................10 2.6.1. Implementaes discordantes................................................................10 2.6.2. Aumento da complexidade inicial...........................................................11 2.7. Um pouco de semntica para finalizar...........................................................11 3. WEB 2.0................................................................................................................13 3.1. Conceituao.................................................................................................13 3.2. A Web 2.0 como plataforma..........................................................................15 3.3. Arquitetura de participao............................................................................15 3.4. A Web dos Dados..........................................................................................16 3.5. O perptuo beta.............................................................................................17 3.6. Inovao em modelos de desenvolvimento...................................................18 3.7. Softwares sobre o nvel de um nico dispositivo...........................................18 3.8. Aplicaes com design mais rico...................................................................18 3.9. Exemplos de empresas Web 2.0...................................................................19 4. ASYNCHRONOUS JAVASCRIPT AND XML (AJAX)...........................................20 4.1. Definio........................................................................................................20

vi 4.2. Tecnologias Envolvidas.................................................................................21 4.2.1. eXtensible HyperText Markup Language (XHTML)................................21 4.2.2. Cascading Style Sheets (CSS)...............................................................23 4.2.3. Document Object Model (DOM).............................................................25 4.2.4. eXtensible Markup Language (XML)......................................................27 4.2.5. eXtensible Stylesheet Language Transformations (XSLT).....................28 4.2.6. XMLHttpRequest....................................................................................29 4.2.7. JavaScript...............................................................................................31 4.3. O modelo AJAX de sites e aplicaes Web...................................................32 4.4. Integrao das tecnologias que compe o AJAX..........................................35 4.5. Vantagens de aplicaes AJAX.....................................................................37 4.5.1. Maior interatividade e dinamismo...........................................................37 4.5.2. Reduo do consumo de banda e ganho de performance.....................37 4.5.3. Reduo do processamento no servidor Web........................................39 4.5.4. No proprietrio...................................................................................39 4.5.5. Portabilidade...........................................................................................39 4.6. Desvantagens de aplicaes AJAX...............................................................40 4.6.1. Capacidades limitadas...........................................................................40 4.6.2. Complexidade.........................................................................................40 4.6.3. Performance no usurio.........................................................................40 4.6.4. Acessibilidade e Usabilidade..................................................................41 4.6.5. Latncia da Rede...................................................................................42 4.6.6. Requer conectividade permanente.........................................................42 4.7. Empresas que utilizam AJAX.........................................................................42 4.8. Frameworks AJAX.........................................................................................43 4.9. Exemplos.......................................................................................................43 4.9.1. Hello World com AJAX...........................................................................43 4.9.2. Alterando contedo utilizando AJAX......................................................44 4.9.3. Comparando aplicaes clssicas com aplicaes AJAX......................44 5. CONCLUSO.......................................................................................................45 6. REFERNCIAS BIBLIOGRFICAS......................................................................47 7. BIBLIOGRAFIA.....................................................................................................49 8. GLOSSRIO.........................................................................................................50 9. APNDICES.........................................................................................................57 10. ANEXOS.............................................................................................................82

vii

LISTA DE FIGURASFigura - 1 Mapa mental da Web 2.0, O'Reilly (2005).................................................14 Figura - 2 Exemplo de representao de uma tabela HTML utilizando DOM, W3C (1998).........................................................................................................................26 Figura - 3 Transformao de um arquivo XML em outro arquivo atravs da XSLT, WIKIPEDIA (2006).....................................................................................................28 Figura - 4 O modelo tradicional para aplicaes Web em comparao com o modelo AJAX, adaptado GARRET (2005)..............................................................................33 Figura - 5 Padro de interao sncrono em comparao com o padro de interao assncrono, adaptado GARRET (2005).....................................................................33 Figura - 6 Dados em uma aplicao Web tradicional, adaptado CRANE et al. (2006). ...................................................................................................................................38 Figura - 7 Dados em uma aplicao Web AJAX, adaptado CRANE et al. (2006).....38 Figura - 8 Trfego acumulativo, aplicao Web tradicional versus AJAX, adaptado CRANE et al. (2006)..................................................................................................39

viii

RESUMODesenvolver sites e aplicaes Web mais dinmicas e interativas tem sido um dos grandes desafios propostos pelo paradigma de desenvolvimento Web. Com o intuito de prover o efeito sugerido, algumas tcnicas de programao vm sendo utilizadas, porm uma delas tem ganhado grande destaque e tornando-se a tcnica mais empregada, o Asynchronous JavaScript And XML (AJAX). Dessa forma, este trabalho tem como objetivo realizar um estudo aprofundando desta tcnica de programao relacionando-a com os novos paradigmas de desenvolvimento Web, pontuar a importncia do emprego de padres para o desenvolvimento de sites e aplicaes baseados nesta plataforma, bem como apresentar exemplos que demonstrem o emprego do AJAX. Enfatizando a evoluo das aplicaes voltadas Internet, o AJAX tornou-se uma das chaves do atual cenrio de desenvolvimento Web apresentando um grande potencial de crescimento e evoluo permitindo de forma gradual uma Internet mais padronizada, acessvel e com grande aplicabilidade e usabilidade.

Palavras-Chave: AJAX; Internet; Padres Web; Web 2.0.

1

1. INTRODUOCom a crescente evoluo da Internet, a partir do ano de 1994, aliada ao recente advento da Web 2.0, o desenvolvimento de sites e aplicaes Web tornouse um importante paradigma de desenvolvimento dentro do cenrio da computao. Entretanto, este paradigma, inicialmente inserido dentro dos ideais da concepo da Internet, tm sofrido muitas alteraes, evoludo, que embasadas por um conjunto de princpios e prticas geraram novos paradigmas de desenvolvimento Web. Atravs desta evoluo, sites e aplicaes Web podem proporcionar seus usurios maior dinamismo, estabilidade e produtividade, sendo a interao um dos focos de maior importncia. Estas caractersticas, proporcionadas por estas alteraes, vm propiciando maior semelhana entre aplicaes Web e aplicaes desktop. Esta semelhana pode ser obtida atravs do emprego de uma tcnica de programao chamada Asynchronous JavaScript And XML (AJAX), cuja utilizao vem crescendo muito e ganhando grande importncia. Inserido neste contexto, este trabalho tm como objetivo apresentar esta tcnica de programao expondo suas funcionalidades, caractersticas, vantagens e desvantagens, conceituando-a dentro dos novos paradigmas de desenvolvimento Web, contextualizando a importncia do uso de Padres Web no desenvolvimento de sites e aplicaes Web e demonstrando exemplos de sua utilizao. A abordagem desta tcnica de programao foi estimulada principalmente pela necessidade de prover maior interatividade e dinamismo ao desenvolvimento de aplicaes Web. Aliados esta necessidade, fatores como a crescente relevncia e explorao do AJAX, por ainda ser uma tcnica recente e no amplamente difundida, e as vantagens proporcionadas por esta tcnica, que diferentemente de outras tcnicas semelhantes podem ser constatadas em aplicaes reais, tambm estimularam sua abordagem. Desta forma, este trabalho baseou-se em um estudo aprofundado do AJAX tendo como principal base pesquisas na Internet e livros relacionados ao assunto, discusses sobre assuntos pertinentes e correlacionados e o desenvolvimento de exemplos de aplicaes, para fixao e demonstrao dos conceitos adquiridos, que

2 foi realizado posteriormente a compreenso do mesmo. Tendo como base a metodologia utilizada para o desenvolvimento deste trabalho, o mesmo est estruturado da seguinte forma:

Seo 2: Contextualiza a importncia do emprego dos Padres Web para o desenvolvimento de sites e aplicaes Web;

Seo 3: Conceitua os novos paradigmas de desenvolvimento Web onde o AJAX inserido;

Seo 4: Apresenta um estudo aprofundado sobre AJAX e demonstra alguns exemplos desenvolvidos para fixao e demonstrao dos conceitos adquiridos;

Seo 5: Concluso do trabalho.

3

2. PADRES WEBO paradigma de desenvolvimento de softwares, aplicaes, vem sendo alterado sensivelmente atravs dos ltimos anos, onde o desenvolvimento de aplicaes para Web torna-se cada vez mais comum juntamente um grande esforo para migrao das aplicaes j existentes para esta plataforma. Desenvolver sites e aplicaes Web requer, alm do conhecimento de tcnicas e linguagens de programao, linguagens de marcao e designer, o conhecimento dos Padres Web. O conhecimento e utilizao destes padres, no atual contexto da Internet, tornou-se um requisito patente para qualquer desenvolvimento Web, uma vez que seu emprego resulta em inmeras vantagens para quem o utiliza alm de certificar a qualidade do desenvolvimento, uma vez que estes padres possuem funes equivalentes ao dos Design Patterns utilizados em softwares orientados a objetos.

2.1.

ContextualizaoPara melhor compreenso sobre o que realmente so os Padres Web, quais

so seus empregos e o porqu a utilizao de tais padres, nos desenvolvimentos Web, resulta em diversas vantagens, tanto para desenvolvedores quanto para os usurios das aplicaes, faz-se necessrio uma breve introduo da histria da prpria Web. Segundo BERNERS-LEE (1998)1, nas dcadas de 50 e 60 ele intrigava-se com determinadas distines entre humanos e computadores. Distines estas observadas em relaes onde os humanos sempre se saiam melhor que os computadores e relaes onde os computadores se saiam melhor que os humanos, havendo uma pequena sobreposio entre os dois. Naquela poca, conforme BERNERS-LEE (1998), ele notou que os computadores no eram capazes de armazenar associaes randmicas entre assuntos no relacionados, embora esta fosse e uma capacidade que o crebro humano executa relativamente bem. Desta forma, comeou a trabalhar sobre aplicaes que fossem capazes de armazenar informaes com associaes randmicas - links.1 Tim Berners-Lee, atual diretor da World Wide Web Consortium (W3C), foi o responsvel pela criao da Web.

4 Em 1989, Tim Berners-Lee, props a criao de um espao global, projetado sobre uma estrutura real de informao baseada em documentos hipertextos, em que qualquer informao estaria disponvel e fosse referenciada por um nico Universal Document Identifier (UDI), hoje conhecida como Universal Resource Locator (URL). O sonho inicial de Tim Berners-Lee foi criar um espao comum que proporcionasse comunicao atravs do compartilhamento pblico de informaes, sendo um meio para a simulao realista das formas de relacionamento entre humanos, contrariando os modelos existentes na poca, e tendo a flexibilidade como uma de suas principais caractersticas. Adicionalmente, os computadores poderiam e seriam utilizados para analisar tais relacionamentos, interpretar as atividades interpessoais e suas adaptaes proporcionando uma interao entre humanos e computadores. Incentivado, Tim Berners-Lee, escreveu uma aplicao em 1990 a qual ficou conhecida como WorldWideWeb, uma interface visual para criao e exibio de documentos hipertextos. Juntamente com o primeiro servidor Web da histria, um navegador Web textual desenvolvido por Nicola Pellow, as especificaes da UDI, HyperText Markup Language (HTML) e HyperText Transfer Protocol (HTTP), a Web finalmente nascia.

2.2.

A revoluo na WebA partir do nascimento da Web a mesma evoluiu exponencialmente e

segundo BERNERS-LEE (1998) no ano de 1994 tornou-se uma realidade com sua difuso para o pblico em geral, fator responsvel pela sua crescente expanso e disseminao. Atrelada a expanso da Web e ao elevado potencial comercial que lhe foi dada, as necessidades das organizaes e de seus usurios tambm cresceram, gerando uma enorme exploso dos mais diversos tipos de materiais disponveis, sendo necessrio a adio de novos elementos especificao inicial da linguagem de marcao existente at o momento, o HTML, para atender as demandas crescentes de estruturao de documentos. Assim, parte do sonho de Tim BernersLee transformava-se em realidade. Entretanto, o crescimento da Web tambm trouxe alguns problemas. No comeo, segundo MACEDO (2004), os elementos contidos na linguagem HTML

5 apenas definiam a estrutura bsica de um documento e no havia nada na linguagem em si que explicava como tais elementos deveriam ser exibidos, onde a exibio destes elementos foi sendo implementada diferentemente pelas implementaes das empresas interessadas na evoluo da Web. Apesar das diferentes implementaes do modo de exibio destes elementos, a informao era preservada, pois o contedo era distintamente separado da apresentao e poderia ser visto em qualquer navegador Web sem inconvenientes. J com o desenvolvimento comercial dos navegadores Web e a necessidade dos mesmos manterem uma vantagem competitiva apresentao nas implementaes especficas de cada navegador Web. O resultado do desenvolvimento comercial dos navegadores Web resultou que o documento era exibido somente nos navegadores que suportavam tais elementos, e como cada um implementava seus conjuntos de elementos prprios, os truques de apresentao para enganar os renderizadores se tornaram comuns, aumentando o tamanho e a falta de estruturao dos documentos e reduzindo o HTML a uma confuso de elementos no-padronizados e incompatveis com os demais navegadores Web disponveis e aos conceitos sonhados e pretendidos por Tim Berners-Lee. A gerao deste cenrio trouxe uma enorme preocupao, onde a fragmentao do HTML eventualmente poderia destruir o universo de informaes existentes at o momento. Desta forma, conforme BERNERS-LEE (1998), ele foi pressionado definir o futuro da Web e aps muita discusso criou o World Wide Web Consortium (W3C). sobre os concorrentes, o que acabou gerando a incluso de elementos proprietrios e/ou de

2.3.

World Wide Web Consortium (W3C)O W3C, conforme MACEDO (2004), um consrcio de empresas de

tecnologia fundada por Tim Berners-Lee em 1994 para levar a Web ao seu potencial mximo, atravs do desenvolvimento de protocolos comuns e fruns abertos que promovem sua evoluo e asseguram a sua interoperabilidade, e o responsvel pelo desenvolvimento de tecnologias, s quais chamamos de Padres Web, para a criao e interpretao de contedos Web. Para alcanar seus objetivos, o W3C possui diversos comits que estudam as tecnologias existentes para a apresentao de contedo na Internet e criam padres

6 de recomendao para a utilizao destas tecnologias. Apesar de o W3C no ser muito conhecido no Brasil, alguns de seus padres so muito populares, contudo em muitos casos so usados de forma errnea devido ao no conhecimento das especificaes, como por exemplo o HTML, o eXtensible Hypertext Markup Language (XHTML) e o Cascading Style Sheets (CSS). Portanto, um dever de todo desenvolvedor Web conhecer, respeitar e seguir os padres do W3C, pois de outro modo poder estar impondo barreiras tecnolgicas a diversas pessoas e com isso desestimulando e at mesmo impedindo o acesso a suas pginas.

2.3.1.

Alguns padres do W3C

Cascading Style Sheets (CSS) Common Gateway Interface (CGI) Document Object Model (DOM) Resource Description Framework (RDF) Scalable Vector Graphics (SVG) Simple Object Access Protocol (SOAP) Synchronized Multimedia Integration Language (SMIL) Web Services Description Language (WSDL) Hypertext Markup Language (HTML) eXtensible Hypertext Markup Language (XHTML) eXtensible Markup Language (XML) XML Information Set (Infoset) XML Path Language (XPath) XML Query (XQuery) eXtensible Stylesheet Language Transformations (XSLT)

2.4.

ConceituaoO significado do termo Padres Web, conforme HOLZSCHLAG e KAISER

(2002), faz referncia s especificaes tcnicas, as quais definem e descrevem as

7 tecnologias para a criao e interpretao de contedos Web. Entretanto, nos ltimos anos este termo vem sendo muito empregado para definir um conjunto de boas prticas padronizadas para o desenvolvimento Web, que asseguram que o contedo fornecido seja plenamente acessvel a quaisquer pessoas, independentemente de suas necessidades ou equipamentos utilizados para se ter acesso a estas informaes. O emprego destes padres afeta diretamente ou indiretamente o

desenvolvimento e a administrao de sites e aplicaes Web e tende a focar padres de alto nvel que influenciam diretamente a acessibilidade e usabilidade destes sites e aplicaes. Devido a estes efeitos consequentes da utilizao de padres Web, segundo MACEDO (2004), muitos desenvolvedores temem que os padres sejam limitadores de seus projetos. Entretanto, a realidade que sua utilizao remove grande parte da dificuldade do desenvolvimento dando-lhes maior flexibilidade e permitindo-lhes o real exerccio de suas criatividades. Embora a implementao dos padres Web seja bastante complicada no atual contexto da Web, devido as implementaes discordantes e suportes incompletos dos navegadores Web, a necessidade da adoo dos mesmos muito importante, uma vez que muitos dos usos da Web atualmente s so possveis por causa da utilizao destes padres.

2.5.

Vantagens da utilizao de Padres WebAs vantagens proporcionadas pelo emprego de padres Web so os

principais fatores que motivam a sua utilizao. Estas vantagens aliadas certificao da qualidade de desenvolvimento, permitida pelo seu emprego, faz com que a sua utilizao seja uma caracterstica premente para o desenvolvimento Web. Dentre todas as vantagens existentes, abaixo so descritas as principais vantagens adquiridas com a utilizao dos padres Web.

2.5.1.

Uniformidade

A primeira das vantagens a uniformidade, ou seja, documentos criados segundo os padres Web podem utilizar uma estrutura comum que facilita a manipulao destes documentos. Portanto, a uniformidade permite a manipulao de documentos atravs de

8 um conjunto reduzido de aplicaes, transformaes e mecanismos de

apresentao alm de prover maior simplificao modificaes realizadas, atravs do emprego de estruturas simples.

a serem

2.5.2.

Simplicidade

A simplificao dos documentos em conformidade com os padres Web, embora seja muito similar uniformidade, ela compreende a eliminao de elementos desnecessrios. Dessa forma, a simplicidade faz com que haja um retorno utilizao de linguagens de marcao para simples estruturao dos documentos, ignorando inicialmente a apresentao, que pode ser aplicada posteriormente. Estes tendem a apresentar uma economia de marcao que permite maior flexibilidade na utilizao dos mesmos, seja diretamente em navegadores Web ou em sua transformao para outros fins. Adicionalmente, como consequncia desta simplificao o tempo de acesso a estes documentos sensivelmente reduzido, uma necessidade ainda muito premente da Web.

2.5.3.

Liberdade

Os padres Web permitem tambm a liberdade de estruturao e inovao por no serem controlados por uma empresa especfica. Essa liberdade tambm permite uma maior facilidade na movimentao de informaes e evita que as mesmas se tornem obsoletas. Um documento criado atravs dos padres Web, por causa da prpria estrutura, estar sempre aberto movimentao na direo de outros padres e sistemas futuros. Formatos proprietrios tornam as pessoas e empresas dependentes das ferramentas que os manipulam e as prendem a essas ferramentas e formatos. Os padres Web, criados especialmente para o compartilhamento de informaes, desencorajam tais prticas e evitam os problemas resultantes de tais prticas.

2.5.4.

Separao de estrutura e apresentao

Uma de suas maiores vantagens a separao da estrutura da apresentao dos documentos, ou seja, o documento fica restrito ao seu contedo, sem

9 especificar qualquer forma de apresentao, permitindo que esta seja modificada de acordo com as necessidades e dando maior flexibilidade aos documentos. Assim, o documento permanece o mesmo, podendo ser utilizado em diferentes ambientes como navegadores Web, sintetizadores de fala, e geradores de documentos Braile.

2.5.5.

Facilidade de criao

A criao dos documentos facilitada com o emprego dos padres Web j que no necessrio preocupar-se inicialmente com a apresentao dos mesmos, livrando o criador do documento para pensar apenas no contedo e sua criao no requer ferramentas ou editores especficos podendo ser criado em qualquer processador de textos e posteriormente estruturado.

2.5.6.

Estabilidade

Outra vantagem que os documentos permanecero compatveis, ou seja, tais documentos sero capazes de degradar graciosamente em ambientes com suporte limitado aos padres, produzindo um resultado visual aceitvel e completo acesso ao contedo. Outro ganho gerado pela estabilidade a manuteno dos documentos, uma vez que estes documentos podem ser facilmente compreendidos e editados por qualquer grupo de desenvolvedores no requerendo esforos excessivos.

2.5.7.

Acessibilidade

A utilizao dos padres Web, principalmente nos ltimos anos, tem afetado diretamente a acessibilidade dos sites e aplicaes Web, sendo uma das maiores vantagens da utilizao de tais padres. A acessibilidade no significa s permitir que pessoas com deficincias fsicas tenham acesso aos contedos Web, mas tambm capacitar a utilizao de tais contedos em outros tipos de ambientes que no um navegador Web, como navegadores de voz, que lem pginas Web para pessoas com dificuldades ou impossibilidade de viso, navegadores Braile que traduzem as pginas nesse alfabeto, aparelhos com pequeno espao de exibio e outros aparelhos de sada no to usuais, evitando a duplicao de contedo e facilitando a utilizao geral dos documentos. A acessibilidade ainda auxilia as pessoas que no possuem deficincias fsicas melhorando a manipulao das pginas Web por teclas de atalho e outros mtodos.

10 Um interessante efeito colateral da acessibilidade, que demonstra sua vantagem, que os contedos tornam-se mais visveis em sites de buscas, como por exemplo o Google e o Yahoo!, por apresentarem informaes corretamente estruturadas o que torna mais fcil o servio destes mecanismos de buscas para o acesso e avaliao da estrutura de tais documentos.

2.5.8.

Usabilidade

Juntamente com a acessibilidade uma caracterstica muito valorizada recentemente a usabilidade empregada no desenvolvimento Web. A usabilidade tem como principal foco a navegabilidade e a fcil disponibilizao de contedo. Portanto, a funo da usabilidade avaliar e prover documentos que possuam uma navegabilidade simples e intuitiva onde as informaes possam ser facilmente encontradas.

2.6.

Desvantagens dos padres WebEmbora as vantagens da adoo dos padres Web sejam grandes, existem

tambm

algumas

desvantagens

aparentes

que

podem

desencorajar

os

desenvolvedores Web a adot-los. Entretanto, estas desvantagens aparentes no so impedimentos para a adoo de tais padres.

2.6.1.

Implementaes discordantes

A maior dificuldade na utilizao dos padres Web, atualmente, est na existncia de implementaes discordantes dos mesmos. Como consequncia h um aumento substancial da complexidade na criao de documentos que podem ser utilizados indistintamente em qualquer ambiente Web. Um dos maiores problemas nesta rea encontra-se nas especificaes CSS. O nvel de suporte mesma muito diferenciado, onde a maioria dos navegadores Web suportam a especificao 1.0, embora muitos de maneira parcial, e a especificao 2.0 ainda no suportada completamente em nenhum navegador Web, sendo que muitas de suas caractersticas esto presentes na maioria deles. Outro grande problema que as empresas e grupos que desenvolvem navegadores Web e ambientes hipertexto dificilmente concordam em como implementar uma determinada especificao, provendo assim implementaes discordantes de uma mesma especificao e tambm na diferena entre os modelos

11 de unidade de medio dos elementos entre navegadores que geram uma srie de complicaes na exibio das pginas, adicionados erros de implementao que tambm atrapalham a vida de desenvolvedores. O suporte ao XHTML, uma das recomendaes do W3C, tambm muito incompleto e seu uso ainda muito restrito por parte dos desenvolvedores. Muitos navegadores Web, por causa de sua herana, tendem a ler documentos Web como se os mesmos fossem documentos no-estruturados ou no-padronizados, sem se preocupar com a validade ou ordenao dos mesmos. Esse comportamento tem suas razes na exploso do uso de ferramentas automatizadas, no incio da Web, para a criao de documentos que permitiam a qualquer pessoa gerar sites sem se preocupar com os padres envolvidos o que forou os navegadores Web a lerem qualquer tipo de documento, independentemente de sua validade evitando a perda de mercado. Apesar desta situao, existem algumas tcnicas que limitam os problemas de implementao e permitem uma boa utilizao dos padres Web, permitindo assim obter todas as vantagens da utilizao destes padres, embora custa de algumas dificuldades iniciais. Alm disso, o suporte tem melhorado cada vez mais e a necessidade de utilizar tais tcnicas vem sendo reduzida.

2.6.2.

Aumento da complexidade inicial

Outro fator negativo o aumento inicial da complexidade na criao dos documentos, o que pode parecer contraditrio em relao vantagem da simplicidade citada anteriormente, mas na realidade no . Essa desvantagem s existe inicialmente, quando os desenvolvedores esto fazendo uma transio para o uso de padres. Assim, mesmo que essa desvantagem desaparea com o tempo ela implica em necessidade de treinamento e esforo inicial. Entretanto, este custo deve ser pago, direta ou indiretamente, se as vantagens futuras dos usos de padres Web so esperadas. Obviamente, a longo prazo as vantagens compensam essa complexidade inicial.

2.7.

Um pouco de semntica para finalizarApesar de todos os esforos existentes para a definio e publicao de

padres Web e tambm para sua adoo, a utilizao correta de tais padres seria apenas o primeiro passo para a completa realizao do sonho de Tim Berners-Lee.

12 A utilizao correta de tais padres, conforme WASP (1998), significa dizer que primordial que estes padres Web sejam empregados de forma que estejam semanticamente corretos, ou seja, que os recursos das linguagens estejam sendo utilizados com o seu real significado e no com sua aparncia, mas trazer a semntica para Web consiste em criar-se documentos organizados de tal forma que facilitem a coleta, pesquisa e cruzamento de informaes de maneira automtica e baseada no significado real do contedo desses documentos ao contrrio da simples pesquisa por palavras-chave que realizada pelas atuais ferramentas de busca. Consequentemente, o emprego de semntica na Web traria em definitivo a interao entre humanos e computadores, uma vez que as informaes compartilhadas teriam o mesmo significado para ambos. Portanto, esta interao proporcionada pelo emprego semntico das estruturas de documentos Web permitiria a concretizao do ideal de Tim Berners-Lee quando este projetou o que deveria ser a Web.

13

3. WEB 2.0Devido ao crescimento exponencial da Web, inserido no contexto de sua revoluo citada na seo 2.2, aliado ao seu poder comercial, a Web tornou-se um importante meio comercial, contudo no ano de 2001, segundo O'REILLY (2005), com a quebra da bolha pontocom muitas pessoas concluram que os modelos de gesto de negcios voltados Web no mais trariam lucratividade, bem como o seu potencial estaria saturado. Entretanto, a partir deste ponto longe de ter saturado, quebrado, a Web estava se tornando cada vez mais importante atravs de novas aplicaes e sites que surpreendentemente eram criados com determinada regularidade. O colapso criado pela quebra da bolha pontocom originou um marco onde conceitos e fundamentos pr-existentes estavam sendo novamente lanados sob uma nova tica trazendo tona novas oportunidades, em diferentes nichos, e estabelecendo novos paradigmas de desenvolvimento Web. Atravs deste novo cenrio, em uma conferncia realizada entre OReilly2 e MediaLive Internacional o conceito de Web 2.0 comeava a ser criado e a partir desta momento o termo Web 2.0 comeou a ser amplamente difundido, mas sem a compreenso real de seu significado.

3.1.

ConceituaoComo muitos conceitos importantes, conforme O'REILLY (2005), o conceito

de Web 2.0 no possui fronteiras bem definidas, mas pode ser visto, diferentemente de uma suposta segunda gerao da Web, como comumente utilizado para a enumerao de verses de softwares, como um conjunto de princpios e prticas que em conjunto mudaram os conceitos de aplicaes e sites Web. Entretanto, a Web no mudou o que mudou foi a forma como a entendemos. Fazendo uma aluso estas fronteiras no bem definidas do conceito de Web 2.0 e tambm aos sistemas operacionais unixware3, quando perguntado sobre o significado de Web 2.0 SNELL4 (2005) definiu a Web 2.0 da seguinte forma:2 OReilly Media uma empresa estadunidense que publica livros, artigos e realiza conferncias sobre tpicos de tecnologia na rea da computao. 3 Unixware um nome dado aos sitemas operacionais baseados em Unix tendo como seu maior protagonista, atualmente, o Linux. 4 James Snell membro da IBMs WebAhead, laboratrio de desenvolvimento que foca o desenvolvimento de prottipos de tecnologias e padres de software para uso da IBM.

14 chmod 777 Web5. Contudo, para compreenso do real significado do termo Web 2.0 faz-se necessrio conhecer os princpios e prticas que o formam, princpios e prticas que definem os paradigmas de desenvolvimento que emergiram conjuntamente com o conceito de Web 2.0.

Figura - 1 Mapa mental da Web 2.0, O'Reilly (2005).

Estes conceitos foram definidos inicialmente atravs de um mapa mental, mostrado abaixo, desenvolvido na FOO Camp6 e, recentemente, atravs de uma lista relacionada por John Battelle7 e Tim OReilly8 na Web 2.0 Conference9 no ano5 Em ambientes unixware o comando chmod 777 utilizado para definir permisso total determinado arquivo ou diretrio. No emprego de James Snell ele fez uma referncia a Web 2.0 como sendo uma plataforma onde seu limite a criatividade de desenvolvedores Web. 6 A Foo Camp um evento anualmente realizado pela OReilly Media para troca de conhecimento entre seus participantes que tambm atuam como palestrantes no evento. 7 John Battelle um jornalista especializado em tecnologia e mtodos de busca e um membro atuante na discusso de conceitos da Web 2.0. 8 Tim OReilly o fundador da OReilly Media sendo membro atuante das comunidades de software livre e tecnologias, sendo um dos principais personagens no assunto Web 2.0. 9 Web 2.0 Conference realizada em So Francisco EUA em 2004 foi uma conferncia realizada com o objetivo de rever os conceitos da Web e foi nesta conferncia que o termo Web 2.0 comeou a ser amplamente difundido.

15 de 2004. Segundo OREILLY (2005), a lista dos principais princpios e prticas que definem os novos paradigmas de desenvolvimento Web so:

A Web 2.0 como plataforma; Arquitetura de participao; A Web dos dados; O perptuo beta; Inovao em modelos de desenvolvimento; Softwares sobre o nvel de um nico dispositivo; Aplicaes com design mais rico.

3.2.

A Web 2.0 como plataformaAt os tempos atuais, o paradigma que orientou muitas iniciativas na Web foi

utiliz-la como meio de comunicao, publicaes, prospeco de clientes, disseminao de campanhas e afins. Entretanto, este paradigma foi alterado onde a Web deixou de ser simplesmente um meio de publicao de contedo, para ser uma plataforma de operaes atravs da qual so disponibilizados servios, que por sua vez so disponibilizados atravs de aplicaes que so executadas sobre a Web. Esta mudana de paradigma, mudana que s foi possvel atravs de uma reavaliao do processo de criao de interfaces e aplicaes Web, passou ento a definir a Web como plataforma onde servios so disponibilizados como Web Services, permitindo ento que contedos sejam compartilhados e transformados com ou por outras aplicaes. Este conceito permite que as aplicaes sejam desenvolvidas de forma heterognea, consumindo servios de diferentes locais da Web e disponibilizado-os de forma integrada, sem que seja preciso reescrev-los, mashups.

3.3.

Arquitetura de participaoO princpio central do sucesso de sites e aplicaes Web 2.0 baseia-se em

uma arquitetura de participao, onde os usurios adicionam valores aos sites e aplicaes aperfeioando-os atravs de sua utilizao. Retrocedendo revoluo da Web, o seu crescimento exponencial s foi

16 possvel atravs de uma ao coletiva de seus usurios. Outros exemplos em que a atividade coletiva de usurios agregam valores sites e aplicaes Web so:

Wikipedia10: uma enciclopdia online onde o seu contedo adicionado ou editado por qualquer usurio da Web, demonstrando uma profunda alterao da dinmica de criao de contedo;

Del.icio.us11 e Flickr12: sites que adicionaram o conceito de folcsonomia, um estilo de categorizao colaborativa, atravs de usurios, baseada em palavras-chave, as quais so usadas para o relacionamento de contedos.

Esta arquitetura de participao tem feito com que inmeros sites e aplicaes disponveis, atualmente, se tornem rapidamente conhecidos e utilizados atravs de um marketing viral, onde sua utilizao propagada pela recomendao de seus usurios. Portanto, este paradigma fez com que os usurios deixassem de ser apenas leitores, para serem tambm co-desenvolvedores de contedo de sites e aplicaes Web.

3.4.

A Web dos DadosNo contexto da Web 2.0 as aplicaes so classificadas pelo seu valor e o

valor de uma aplicao proporcional ao tamanho e dinamismo do contedo que ela ajuda a administrar uma vez que a Web de documentos transformou-se na Web dos dados. Os dados so to importantes que, atualmente, h empresas que se especializam em obter, manter e armazenar dados. Estas empresas no desenvolvem aplicaes para disponibilizar tais dados como servios possveis usurios, mas vendem estes dados como uma base para outras empresas. Assim, as empresas que compram estas bases de dados desenvolvem seus prprios servios e os disponibilizam para seus usurios. Um bom exemplo deste paradigma o servio do Google Maps13, onde o10 Wikipedia disponvel em . 11 Del.icio.us um servio online que permite a adio e pesquisa de bookmarks compartilhados sobre qualquer assunto disponibilizando recursos de folcsonomia para categorizao de seu contedo. Pode ser acessado em: . 12 Fickr um servio online que permite a adio e pesquida de fotos compartilhadas disponibilizando recursos de folcsonomia para categorizao de seu contedo. Pode ser acessado em: . 13 Google Maps um servio de pesquisa e visualizao de mapas e fotos de satlites da Terra disponibilizado gratuitamente na Web pelo Google. Pode ser acessado em: .

17 Google14 disponibiliza o servio para seus usurios, porm os dados fornecidos, mapas, so de propriedade de uma outra empresa chamada Digital Globe15. Portanto, separar o que dado do que aplicao possibilita a criao de aplicaes que permitem levar aos usurios uma experincia mais rica, a medida que as empresas inicialmente planejam qual so os dados que vo possuir e posteriormente quais servios devero ser criados para serem fornecidos aos seus usurios. Neste contexto tornou-se muito importante saber como extrair valor destes dados, ou seja, transform-los em conhecimento. Dados so transformados em conhecimento a partir do momento em que um dado contextualizado, transformando-se em informao, e posteriormente transmitida algum, podendo se transformar em conhecimento. Se isso no acontecer, a informao torna-se intil.

3.5.

O perptuo betaOutra paradigma advindo com a Web 2.0 que neste contexto as aplicaes

so distribudas como servios e no como produtos ou simples aplicaes, o que revela uma grande alterao no modelo de gesto de negcios das empresas. Desta forma, para que os servios tornem-se continuamente teis aos seus usurios necessrio que estes sofram alteraes constantemente e que seus usurios sejam considerados co-desenvolvedores destes servios. Realizar alteraes constantemente significa disponibilizar novos recursos, corrigir erros e atualizar os recursos j existentes continuamente. Para isso, torna-se necessrio a criao de uma arquitetura de participao, onde os usurios devem ser considerados co-desenvolvedores. Assim, uma importante etapa deste paradigma o monitoramento do comportamento dos usurios frente aos servios, comportamentos utilizados para constatar quais caractersticas esto sendo utilizadas e como esto sendo utilizadas para mant-los de acordo com as necessidades de seus usurios. A diferena existente entre o modelo de gesto de negcios baseado em

14 Google a empresa responsvel pelo maior site de buscas da Web e tambm disponibiliza inmeros servios seus clientes sendo considerada o exemplo de empresa Web 2.0. Pode ser acessado em: . 15 Digital Globe uma empresa que comercializa imagens da Terra obtidas atravs de seus satlites.

18 produtos do baseado em servios que enquanto o modelo baseado em produtos depende que seus usurios atualizem seus produtos constantemente, o modelo baseado em servios depende apenas que seus usurios explorem quais so seus novos recursos ou a correo dos mesmos.

3.6.

Inovao em modelos de desenvolvimentoA inovao em modelos de desenvolvimento obtida no contexto da Web 2.0

atravs da reutilizao de servios j existentes, possvel pela existncia de Web Services, que pode ocorrer de duas formas: agregar valor aplicaes j existentes relanando-as sob uma nova tica e assim trazendo tona novas oportunidades ou desenvolvendo aplicaes que integrem servios j existentes, como por exemplo os servios providos pela housingmaps16 que disponibiliza um servio para seus usurios baseado na integrao de dois outros servios previamente existentes.

3.7.

Softwares sobre o nvel de um nico dispositivoOutro paradigma emergido juntamente com o advento da Web 2.0 que

merece ser destacada o fato que aplicaes desenvolvidas neste contexto no so limitadas pelas plataformas que a executaro, ou seja, o desenvolvimento de uma aplicao ser nica para todos as plataformas ou ambientes que tero acesso esta aplicao, tendo seu foco voltado ao desenvolvimento de servios para a Web.

3.8.

Aplicaes com design mais ricoNeste cenrio proporcionado pela Web 2.0 a utilizao de aplicaes Web

com design mais rico ainda a prtica menos explorada e que apenas recentemente tem se tornado uma tendncia. Atualmente, a interatividade e o dinamismo de aplicaes executadas sobre a plataforma de sistemas operacionais, tambm chamadas de aplicaes desktop, trazem para seus usurios melhores recursos de interatividade e dinamismo proporcionando-lhes aplicaes com designs mais ricos. Entretanto, com a alterao do paradigma da Web, sendo esta considerada como uma plataforma, aliado a tendncia de desenvolvimento de aplicaes Web em detrimento s aplicaes desktop, quando possvel, tornar a interatividade e o16 HousingMaps um servio online que integra servios disponibilizados pelo Google Maps e servios de aluguel e venda de residncias dos EUA. Pode ser acessado em: .

19 dinamismo de sites e aplicaes Web mais equivalentes s aplicaes desktop tem sido o grande esforo de desenvolvedores focados nesta plataforma. Desta forma, atualmente diversas tcnicas de programao esto sendo melhor exploradas para proporcionar tal equivalncia, porm uma delas vem se destacando, devido a sua grande utilizao em servios reais e mundialmente utilizados, o Asynchronous JavaScript And XML (AJAX).

3.9.

Exemplos de empresas Web 2.0Existem inmeras empresas que se caracterizam por serem empresas Web

2.0, porm h quatro empresas que se destacam principalmente pelos servios que disponibilizam seus usurios, por demonstrarem a essncia da Web 2.0 em seus servios e tambm por serem empresas que ajudaram a constituir tais conceitos. Estas quatro empresas so: Google, Yahoo!17, Amazon18 e eBay19. Outras empresas consideradas empresas Web 2.0 so: Fickr, Del.icio.us, 37Signals20, Digg21, FeedBurner22, entre outras.

17 Yahoo! uma empresa estadunidense de servios de Internet com a misso se ser o servio de Internet global mais essencial para consumidores e negcios. Pode ser acessa em: . 18 Amazon uma empresa estadunidense de comrcio eletrnico tendo foco especializado no comrcio de livros, embora comercialize outros produtos. Pode ser acessada em: . 19 eBay uma empresa estadunidense de comrcio eletrnico tendo como principal caracterstica seu sistema de pagamento batizado como PayPal onde qualquer pessoa ou empresa com um endereo de e-mail consiga, fcil e rapidamente, emitir e receber pagamentos. Pode ser acessada em: . 20 37signals prov diversos servios online todos utilizando arquitetura de participao. Pode ser acesso em . 21 Digg uma empresa focada em artigos de cincia e tecnologia que prov seus servios explorando arquitetura de participao. Pode ser acessado em: . 22 A exemplo de outras empresas Web 2.0 a FeedBurner explora a arquitetura de participao para disponibilizar servios que permitem seus usurios criarem pginas pessoas e outros recursos adicionais compartilhando suas informaes com os demais usurios do servio. Pode ser acessado em: .

20

4. ASYNCHRONOUS JAVASCRIPT AND XML (AJAX)A necessidade de desenvolver aplicaes Web mais semelhantes aplicaes desktop, vem incitando desenvolvedores explorar com maior profundidade as linguagens e tcnicas de programao j existentes, com o intuito de integr-las e prover uma metodologia ou tcnica que os auxilie neste objetivo. O resultado consequente desta explorao foi o surgimento de uma srie de tcnicas que proporcionam mtodos de desenvolvimento Web mais interativos e dinmicos, mas uma destas tcnicas vem se difundido e se destacando, o AJAX. Atualmente, o AJAX pode ser visto como uma das chaves do conceito da Web 2.0, sendo uma tcnica de programao cada vez mais difundida, aperfeioada e explorada. Pela integrao de tecnologias amplamente difundidas e exploradas no cenrio do desenvolvimento Web e da alta flexibilidade de recursos proporcionada por estas tecnologias, o AJAX vem se firmando como sinnimo de aplicaes Web mais ricas em termos de design e interface. Esta tcnica de programao permite a adio de uma camada

comportamental interativa e dinmica aplicaes Web, permitindo alterar o foco da informao interao e dinamismo, e possibilitando ao desenvolvimento Web muito mais que acesso, manipulao e transformao de informao. A sua utilizao em aplicaes reais e mundialmente utilizadas, o torna uma tcnica de programao cada vez mais aceita e explorada entre os desenvolvedores, ganhando muita importncia no cenrio de desenvolvimento Web posteriormente ao seu emprego em servios disponibilizados por uma das empresas de maior destaque, atualmente, o Google. Dessa forma, o emprego do AJAX vem permitindo uma profunda alterao do modelo fundamental de interao de aplicaes Web.

4.1.

DefinioO termo AJAX foi utilizado pela primeira vez em fevereiro de 2005, por Jesse

James Garret23 da Adaptive Path24. Conforme GARRET (2005), este termo foi criado a partir da necessidade de criar-se uma sigla para representar um conjunto de tecnologias que ele estava propondo um cliente.23 Jesse James Garret o fundador da Adaptive Path e criador do termo AJAX. 24 Adaptive Path uma empresa estadunidense especializada em consultoria na rea de desenvolvimento de aplicaes.

21 Diferentemente do que muitas pessoas pensam AJAX no uma nova linguagem de programao ou tecnologia, mas vrias tecnologias trabalhando em conjunto, cada uma em sua prpria abrangncia, provendo novos caminhos para o desenvolvimento Web. O conceito bsico por traz do AJAX ser uma tcnica de desenvolvimento que proporciona s aplicaes e sites Web uma experincia mais interativa e dinmica resultando em aplicaes e sites que se assemelham menos aplicaes Web e mais com aplicaes desktop. Entretanto, este conceito pode ser estendido uma vez que sua utilizao dse em torno de maior usabilidade, atravs da arquitetura da pgina, agindo em sua superestrutura e refletindo na interface da aplicao. Assim, o AJAX permite que a arquitetura da informao de um site ou aplicao Web seja absolutamente intuitiva, quando bem utilizado, oferecendo uma experincia de navegao contnua, comunicao assncrona, e segundo ZAKAS et al. (2006) fazendo com que somente as reas necessrias de uma pgina sejam atualizadas, eliminando a necessidade de reloads completos, quando na realidade apenas uma rea necessitaria de atualizao e assim transmitindo pequenas quantidade de informao.

4.2.

Tecnologias EnvolvidasSegundo GARRET (2005), como sua prpria definio expe o AJAX

composto por diversas tecnologias e as tecnologias que o compe so:

Padres Web, HTML / XHTML e CSS separando o que comportamento, o que contedo e o que apresentao;

Document Object Model (DOM) possibilitando exposio e interao dinmica;

eXtensible Markup Language (XML) e eXtensible Stylesheet Language Transformations (XSLT) provendo intercmbio e manipulao de dados;

XMLHttpRequest possibilitando a recuperao assncrona de dados; JavaScript unindo todas as tecnologias apresentadas anteriormente.

4.2.1.

eXtensible HyperText Markup Language (XHTML)

Segundo o W3C (2000), o XHTML uma reformulao da linguagem de

22 marcao HTML 4.0.1 baseada em XML, podendo ser encarado como seu sucessor, empregado no desenvolvimento de documentos utilizados para a disponibilizao de contedo atravs de sites e aplicaes Web. A utilizao do XHTML uma das chaves para tornar a segunda parte do sonho de Tim Berners-Lee uma realidade, pois o seu desenvolvimento deu-se atravs da necessidade de prover maior acessibilidade aos contedos de sites e aplicaes Web. O XHTML combina as tags de marcao HTML com regras XML, formando uma linguagem de marcao que consegue ser interpretada por qualquer dispositivo, independente de plataforma, pois suas marcaes possuem sentido semntico. Outro grande motivo para a definio do XHTML reduzir drasticamente o processamento realizado por parsers e navegadores Web, uma vez que os mesmos no precisam interpretar documentos estruturados de forma incorreta. As regras XML incorporadas pelo XHTML fazem com que parsers no interpretem documentos mal formados e navegadores Web no consigam os exibir, comportamento recomendado pelo W3C com o intuito de eliminar contedos mal formados, proporcionando teoricamente assim maior velocidade na interpretao de documentos pelos navegadores Web e parsers. Os benefcios da utilizao de documentos XHTML, em conformidade com as recomendaes do W3C, tem levado inmeros desenvolvedores Web converterem seus documentos HTML para XHTML, entretanto h algumas diferenas a serem observadas, conforme especificado pelo W3C (2000), que diferenciam documentos HTML e XHTML:

documentos precisam ser bem formados; elementos e nomes de atributos devem estar em letras maisculas; o uso de tags de fechamento obrigatrio; os valores de atributos devem estar entre aspas; a sintaxe para atributos deve ser escrita por inteiro; elementos vazios devem ter uma tag de fechamento ou a tag de abertura deve terminar com />.

23

espaos em branco em valores de atributos devem ser eliminados ou mapeamentos de sequncias de espaos em branco (includas quebras de linha) devem ser substitudos por um espao nico entre palavras;

alterao do modo de declarao dos elementos script e style; excluses Standard General Markup Language (SGML) a partir de Document Type Definition (DTD), para definio da estrutura do documento;

substituio do elemento name pelo elemento id; atributos so case-sensitive; referncias a entidades atravs de valores hexadecimais devem usar letras minsculas.

Apesar das vantagens consequentes do emprego do XHTML, o problema existente em sua utilizao, para definio do contedo de sites e aplicaes Web, que alguns navegadores so apenas parcialmente compatveis ou totalmente incompatveis com as definies do W3C para o XHTML. Atualmente h trs verses do XHTML especificadas pelo W3C: XHTML 1.0, XHTML 1.1, modularizao do XHTML 1.0 provendo compatibilidade com o mesmo, XHTML 2.0, ainda no uma especificao do W3C25.

4.2.2.

Cascading Style Sheets (CSS)

O CSS26, segundo MACEDO (2004), uma linguagem de formatao de estilo utilizada para definir a apresentao de documentos escritos em linguagens de marcao, como HTML, XHTML ou XML. Seu principal benefcio prover a separao entre a formatao e o contedo de um documento, descrevendo como o documento ser apresentado na tela, atravs de definies de fontes, cores, tamanhos e outras propriedades de formatao. O emprego do CSS possvel atravs de sua declarao no incio dos documentos ou atravs de arquivo separados, onde so expressas as definies de

25 As especificaes do XHTML podem ser obtidas no site do W3C disponvel em: . 26 As especificaes do CSS podem ser obtidas no site do W3C disponvel em: .

24 formatao. Quando usado em um arquivo separado, o mesmo ligado ao documento, o qual deseja-se formatar. Geralmente esse arquivo ligado a todos os documentos do site, criando-se assim um padro de formatao. A separao proporcionada atravs de sua utilizao, pode melhorar a acessibilidade dos contedos, prover mais flexibilidade e controle na especificao das caractersticas de apresentao e reduzir a complexidade e repetio na estrutura do documento. Alm disso, permite a apresentao de um documento em estilos diferentes dependo do mtodo de renderizao, como na tela, na impressora, quando lido por um programa de sintetizador de voz, mtodos braille e outros. O CSS possui uma sintaxe simples, utilizando-se de palavras-chave para especificao do nome de propriedades de estilo, uma lista de regras, onde cada regra consiste de um ou mais seletores, separados por vrgula, e um bloco de declarao. Os seletores permitem que determinadas regras definam mais de um valor, separados por vrgula (,), onde o seu valor ser definido pela ordem de declarao e pela possibilidade de seu emprego. J o bloco de declarao delimitado por chaves ({}) e consiste de uma lista de propriedades, separadas por ponto e vrgula (;), onde cada propriedade possui um respectivo valor e separada de sua respectiva propriedade por dois pontos(:). Exemplo :/* comentrio em css */ body { font-family: Arial, Verdana; text-align: justify; background-color: #FFFFF; }

O cdigo CSS acima define fonte padro Arial, caso no exista substitui por Verdana, define o alinhamento do texto como justificado e define de fundo do corpo da pgina, todas essas formaes so aplicadas ao contedo entre a tag . O problema existente quando utilizamos o CSS para definir a apresentao de documentos HTML, XHTML e XML que alguns navegadores Web no so totalmente compatveis com as definies do W3C, obrigando o desenvolvedor a sempre testar suas pginas em vrios navegadores Web e de diferentes fabricantes, em diferentes verses, para obter a apresentao desejada nos mesmos.

25

4.2.3.

Document Object Model (DOM)

Segundo as especificaes do W3C (1998), o DOM uma Application Programming Interface (API) utilizada para definio da estrutura lgica de documentos HTML, XHTML e XML e do meio pelo qual estes documentos podem ser acessados e manipulados. Assim, o DOM proporciona desenvolvedores a possibilidade de criar documentos, navegar pela sua estrutura, adicionar, modificar ou apagar elementos e contedo de tais documentos, atravs da disponibilizao de mtodos e propriedades especficas. Sendo que tudo o que seja encontrado em um documento HTML, XHTML ou XML pode ser acessado, alterado, apagado ou adicionado atravs do DOM com apenas algumas excees, em particular as interfaces DOM para sub-conjuntos internos e externos XML que ainda no foram especificados. O DOM como qualquer recomendao W3C, possui como maior objetivo proporcionar uma interface de programao padro que possa ser utilizada em um nmero amplo de ambientes e aplicativos, sendo concebido para ser utilizado com qualquer linguagem de programao, de forma a proporcionar uma especificao precisa e independente das interfaces DOM. Historicamente o DOM, conforme as especificaes do W3C (1998), comeou como uma especificao para permitir que scripts em JavaScript e programas em Java fossem portveis entre navegadores Web. Sendo que sua especificao foi realizada atravs da necessidade de especificar-se padres, pois vrias interfaces estavam sendo implementadas para prover a manipulao de elementos HTML atravs de JavaScript. O nome Document Object Model (DOM) foi escolhido porque um modelo de objetos no sentido tradicional de desenho orientado a objeto: documentos so modelados usando objetos e o modelo engloba no apenas a estrutura do documento, mas tambm seu comportamento e os objetos que o compem. Quanto a estrutura de um documento definido pelo DOM, esta se assemelha a uma rvore, ou uma floresta, florestas podem conter mais de uma rvore. Contudo, o DOM no especifica quais documentos necessitam ser implementados como uma rvore ou como uma floresta, nem especifica como os relacionamentos entre os objetos so implementados. O DOM um modelo lgico que pode ser implementado de qualquer forma conveniente. Por exemplo, vamos considerar a

26 tabela abaixo, extrada de um documento HTML: Shady Grove Aeolian Over the River, Charlie Dorian

Atravs do DOM esta tabela seria representada da seguinte forma:

Figura - 2 Exemplo de representao de uma tabela HTML utilizando DOM, W3C (1998).

Uma das principais propriedades do modelo de estrutura DOM o isomorfismo estrutural, onde quaisquer duas implementaes de DOM utilizadas para criar uma representao de um mesmo documento acabaro por criar um mesmo modelo de estrutura com exatamente os mesmos objetos e relacionamentos. Como um modelo de objetos o DOM identifica :

as interfaces e os objetos utilizados na representao e manipulao de um documento; as semnticas destas interfaces e objetos incluindo-se o

comportamento e atributos;

os relacionamentos e colaboraes entre estas interfaces e os objetos.

As especificaes do W3C para o DOM27 so divididas em nveis, Nvel 0, Nvel 1, Nvel 2 e Nvel 3, os quais contm mdulos opcionais e obrigatrios, para que um documento atenda as especificaes W3C de um determinado nvel necessrio que o documento atenda todos os mdulos obrigatrios.27 As especificaes do DOM . podem ser obtidas no site do W3C disponvel em:

27

4.2.4.

eXtensible Markup Language (XML)

O XML uma linguagem de marcao de texto especial usada para descrever ou estruturar dados. XML um subtipo do SGML. Seu desenvolvimento foi iniciado em 1996 e uma recomendao do W3C desde fevereiro de 1998. Concebida como uma maneira de resgatar a potencialidade e flexibilidade do SGML sem a sua complexidade o XML, embora sendo uma forma restrita de SGML, conserva todo o poder e riqueza das caractersticas do SGML descartando aquelas mais complexas que tornavam a criao e projeto de programas adaptados, mais difcil e dispendiosa. Seu principal objetivo, segundo DCIO (2000), facilitar o compartilhamento de dados entre diferentes sistemas conectados via Internet. Algumas caractersticas do XML so:

Facilidade de uso: Documentos XML so fceis para ler e entender; Estrutura formal e flexvel: XML permite flexibilidade, permitindo a criao de de suas prprias tags sem limitao;

Feita para a Internet: XML foi desenvolvido para a internet; Compatibilidade com a SGML; Separao do contedo da formatao; Criao de arquivos para validao.

Linguagens baseadas no XML:

Geography Markup Language (GML); Resource Description Framework (RDF); Mathematical Markup Language (MathML); eXtensible HyperText Markup Language (XHTML); Scalable Vector Graphics (SVG); XML User Interface Language (XUL).

Exemplo:

28Po simples Farinha Fermento gua Sal Misture todos os ingredientes, e dissolva bem. Cubra com um pano e deixe por uma hora em um local morno. Misture novamente, coloque numa bandeja e asse num forno.

Nos documentos XML as tags no so pr-definidas, podemos definir nossas prprias tags. Os tipos de dados so descritos no Document Type Definition (DTD) ou no XML Schema, que so usados para validao da estrutura do documento XML.

4.2.5.

eXtensible Stylesheet Language Transformations (XSLT)

O XSLT uma linguaguem de transformao de arquivos XML que permite transformar um arquivo XML em outros formatos de arquivos, tais como XML, XHTML, PDF e outros, no alterando o documento original. Atravs do XSLT um novo documento gerado de acordo com o arquivo de declaraes XSLT e dos dados do arquivo XML, como mostrado na figura abaixo:

Figura - 3 Transformao de um arquivo XML em outro arquivo atravs da XSLT, WIKIPEDIA (2006).

A utilizao do XSLT, conforme ZAKAS et al. (2006), a tecnologia com menor emprego e explorao dentre as tecnologias que compe o AJAX e mais

29 comumente empregada para a transformao de documentos XML em documentos HTML / HTML.

4.2.6.

XMLHttpRequest

Segundo ASLESON e SHUTTA (2006), o objeto XMLHttpRequest uma API que permite linguagens de script28 comunicarem-se de forma assncrona com servidores Web atravs da transferncia e manipulao de dados XML utilizando o protocolo HTTP, criando um canal de conexo independente entre o servidor Web e a aplicao do usurio. O XMLHttpRequest, embora tenha sua utilizao mais difundida para receber dados em XML, tambm pode ser utilizado para receber dados de outros formatos que no seja XML, como por exemplo um arquivo texto. Inicialmente, o objeto XMLHttpRequest, conforme ASLESON e SHUTTA (2006), foi implementado pela Microsoft como um componente ActiveX, chamado XMLHttp, para o navegador Web Internet Explorer 5 e posteriormente, foi adotado por outros navegadores Web nativamente. Infelizmente as implementaes existentes do objeto XMLHttpRequest no so completamente compatveis, embora sua especificao defina seu conjunto de funcionalidades, o que se torna um problema para os desenvolvedores Web. Este objeto possui uma grande quantidade de mtodos e eventos, segundo s especificaes do W3C (2006), que so responsveis pelas suas funcionalidades, sendo que os mais comumente utilizados e os mais importantes so os seguintes:

open(mtodo, url, async, usurio, senha) - O principal mtodo do objeto, e serve para prepar-lo para uma requisio. Recebe os parmetros, no necessrio especificar todos os parmetros em sua utilizao: mtodo, que indica o mtodo da requisio29; url, que indica a URL para onde a requisio vai ser feita; async, que indica se a requisio sncrona ou assncrona; usurio, que indica o usurio

28 Linguagens de script so linguagens de programao interpretadas que necessitam de aplicaes que as interpretem, pois so blocos de cdigos no compilados, que so interpretados em tempo de execuo. 29 Os mtodos de requisio disponveis so: GET, POST, HEAD, PUT, DELETE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK, VERSION-CONTROL, REPORT, CHECKOUT, CHECKIN, UNCHECKOUT, MKWORKSPACE, UPDATE, LABEL, MERGE, BASELINE-CONTROL, MKACTIVITY, ORDERPATCH, ACL.

30 requisitado para acesso no servidor; senha, que indica a senha do usurio;

setRequestHeader(nome, valor) - Mtodo que inclui um par nome/valor ao cabealho pra ser enviado junto com a requisio. Normalmente usado para indicar que o contedo deve ser retornado como text/xml, usando objeto.setRequestHeader('content-type', 'text/xml');

send(contedo) - Mtodo que, quando invocado, dispara a requisio. O parmetro contedo uma string que deve conter o contedo da mensagem HTTP. Exemplo: No caso de uma requisio via POST esse parmetro deve conter os dados que vo ser postados, no formato padro de uma URL ("nome=valor&nome2=valor2&nome3=valor3"); se voc quisesse fazer um upload sem recarregar a pgina, por exemplo, o arquivo, em si (dados binrios, inclusive), iria nesse parmetro;

onreadystatechange - Um evento que disparado quando o estado da requisio muda;

readyState - A propriedade que indica o estado da requisio cuja mudana dispara o evento onreadystatechange. Ele pode conter os valores:

0: no inicializado - O objeto foi criado, mas o mtodo open no foi chamado ainda;

1: carregando - O mtodo open foi chamado, mas no o mtodo send;

2: carregado - Indica que a conexo foi estabelecida com sucesso com o servidor. Os cabealhos de resposta do servidor e o status code, cdigo HTTP de retorno, j podem ser acessados.

3: interativo - Indica que o contedo comeou a ser recebido, e pode ser acessado pela propriedade responseText, mas ainda est incompleto. disparado a cada 4kb recebidos ao comear a receber os dados.

4: completo - O contedo foi totalmente recebido - a requisio

31 foi finalizada. No indica, entretanto, que o arquivo foi encontrado, ou que no houve erros no processamento do arquivo. Indica apenas que o processo de conectar ao servidor, fazer uma requisio HTTP simples e receber a resposta foi concludo, mas o arquivo pode no ter sido encontrado ou ter acontecido algum erro no processamento.

status Cdigo HTTP de retorno da requisio. Uma requisio bem sucedida retorna status 200, por exemplo.

statusText

-

Texto

que

acompanha

a

propriedade

status,

complementando o valor de retorno dela.

responseText - Essa propriedade armazena o retorno do servidor, numa string normal.

responseXML - A propriedade responseXML armazena a resposta do servidor com a diferena de ser uma verso compatvel com DOM, para ser parseada como XML, e no tratada como texto comum.

O XMLHttpResquest vem sendo constantemente trabalhado para definio de sua especificao30 que atualmente ainda no uma recomendao do W3C.

4.2.7.

JavaScript

Segundo ZAKAS et al. (2006), o JavaScript uma linguagem de script criada para dar mais interatividade e maior funcionalidade s pginas Web. Tendo sido inicialmente desenvolvida pela Netscape31, por Brendan Eich32, a linguagem JavaScript uma implementao da especificao tcnica da linguagem de script padro ECMAScript. Por ser uma linguagem interpretada e geralmente embutida nos cdigos HTML / XHTML o navegador Web do usurio o encarregado de interpretar as instrues Javascript e execut-las para realizar estes efeitos e interatividades. Diferentemente do que muitas pessoas pensam JavaScript no a mesma coisa que Java, embora suas sintaxes sejam muito semelhantes por ambas30 Maiores informaes sobre a especificao do objeto XMLHttpRequest esto disponveis em: . 31 A Nestcape uma empresa estadunidense considerada umas das empresas percursoras da Web e criadora do primeiro navegador Web comercial e mundialmente utilizado. 32 Brendan Eich foi o criador do JavaScript e no ano de 2005 tornou-se Chief Technology Officer (CTO) da Mozilla Corporation.

32 herdarem a sintaxe da linguagem de programao C. O JavaScript como dito anteriormente uma linguagem de script, portanto interpretada, baseada em prottipos, orientada objetos ou procedural, possuindo tipagem dinmica, no necessrio declarar o tipo de variveis, oferece um timo suporte para Expresses Regulares e no capaz de interagir automaticamente com documentos armazenados em discos rgidos. Igualmente a todas as tecnologias voltadas para Web o seu maior problema so as implementaes providas pelos navegadores Web que so apenas parcialmente compatveis ou totalmente incompatveis com as definies e quando o navegador no possui suporte ao JavaScript ou desabilitado pelo usurio como medida de segurana. Em casos onde o suporte s funcionalidades implementadas atravs do JavaScript no forem suportadas pelo navegador Web necessrio que o contedo seja disponibilizado sem a presena de JavaScript para que o contedo seja acessvel mesmo sem o suporte ao JavaScript, porm sem as vantagens da utilizao do JavaScript.

4.3.

O modelo AJAX de sites e aplicaes WebA introduo do AJAX no contexto da Web 2.0 e seu emprego para o

desenvolvimento de aplicaes e sites Web trouxe uma profunda alterao no modelo clssico de como as aplicaes Web trabalham. Para demonstrar esta alterao necessrio realizar uma comparao entre os dois modelos para assim compreender as profundas alteraes propostas pelo AJAX, modelos que podem ser melhor visualizados a seguir:

33

Figura - 4 O modelo tradicional para aplicaes Web em comparao com o modelo AJAX, adaptado GARRET (2005).

Figura - 5 Padro de interao sncrono em comparao com o padro de interao assncrono, adaptado GARRET (2005).

34 O modelo clssico de aplicaes Web, chamado de start-stop-start-stop, trabalha da seguinte forma: Determinadas aes do usurio, realizadas atravs da interface da aplicao, resultam em requisies HTTP para o servidor Web. O servidor Web, por sua vez encarrega-se do processamento necessrio, recuperar dados, conversar com sistemas legados, transformar dados, para atender cada requisio realizada e ento retorna uma nova pgina Web, a cada requisio, para o usurio. Este o modelo adaptado do modelo original da Web como um agente hipertexto, porm o que torna a Web boa para hipertexto no necessariamente a torna boa para aplicaes. Esta tcnica possui muitos sentidos tcnicos, mas no capaz de proporcionar uma interface que realiza tudo o que um usurio experiente poderia fazer, isto porque a cada interao necessrio aguardar at que uma nova pgina de retorno seja enviada, pois a cada interao o servidor realiza os processamentos necessrios para atender a requisio e como resultado retorna uma nova pgina ao usurio, ou seja, a cada etapa, o usurio deve aguardar. Segundo GARRET (2005), caso a Web estivesse sendo projetada desde o incio, para sua utilizao como plataforma, obviamente esta no faria com que os usurios esperassem tanto. Uma vez que a interface estivesse carregada, a interao do usurio deveria prosseguir sem a necessidade de parar a cada vez que a aplicao precisasse de uma resposta do servidor Web, comunicao assncrona, assim o usurio no perceberia as requisies realizadas pela aplicao ao servidor. nesse contexto que o AJAX se insere. Uma aplicao Web utilizando AJAX elimina a natureza start-stop-start-stop de interao da Web inserindo uma camada intermediria uma engine AJAX entre o usurio e o servidor Web, sendo vista como uma camada adicional pela aplicao. Desta forma, ao invs de receber uma pgina Web, no incio de uma sesso, o navegador Web recebe uma engine AJAX. Esta engine responsvel tanto pela visualizao da interface que o usurio v como pela comunicao entre o usurio e o servidor Web. Assim, a engine AJAX permite que a interao do usurio com a aplicao seja realizada de forma assncrona, independentemente de comunicao com o servidor Web, eliminando assim o efeito start-stop-start-stop. Portanto, as aes do usurio que normalmente geravam requisies HTTP agora geram requisies para a engine AJAX utilizando-se de chamadas

35 compreendidas por esta engine. Assim, qualquer requisio realizada pelo usurio que no dependa de processamento do servidor Web, como uma simples validao, editar dados em memria, alguns efeitos de interatividade, a prpria engine AJAX se responsabiliza pela requisio realizada pelo usurio. Mas caso a engine necessite de informaes do servidor Web para prover a resposta da requisio do usurio, a engine faz requisies assncronas para o servidor Web, sem interromper a interao do usurio com a aplicao. As diferenas existentes entre o modelo clssico e o modelo AJAX de aplicaes Web demonstram que nas aplicaes clssicas, os navegadores Web comportam-se como terminais burros, os quais no compreendem o que os usurios esto realmente realizando, sendo o servidor Web o grande responsvel por todas as tarefas, enquanto nas aplicaes AJAX, parte da lgica das aplicaes movida para os navegadores que tornam-se capazes de decidir se manipulam a entrada do usurio ou se realizam requisies assncronas ao servidor Web, ou ainda, se fazem uma combinao de ambos. Adicionalmente, segundo CRANE et al. (2006), as aplicaes clssicas fornecem contedo, documentos HTML, XHTML ou XML, em detrimento do fornecimento de dados pelas aplicaes AJAX.

4.4.

Integrao das tecnologias que compe o AJAXEmbora o modelo AJAX, descrito na seo anterior, demonstre o ciclo de

execuo e o funcionamento de sites e aplicaes nele baseados, no h claramente uma descrio onde as tecnologias que o compe atuam. Estas tecnologias so inseridas dentro de uma diviso conceitual, a qual apresenta sites e aplicaes Web, baseadas em AJAX, em trs camadas. A primeira delas a camada de estrutura seguida pelas camadas de apresentao e comportamento. A camada de estrutura responsvel pela definio inicial do DTD dos documentos que compe sites e aplicaes Web. Posteriormente, define a organizao estrutural destes documentos, que realizada atravs de elementos prprios definidos pelas linguagens de marcao, em conjunto com o contedo, dados, fornecidos por estes sites e aplicaes. Aps a definio da camada de estrutura, a camada de apresentao realiza a formatao dos elementos estruturais e dos dados j definidos pela camada de estrutura. O processo de formatao implica no posicionamento dos elementos

36 estruturais, descrio de fontes, cores, mapeamentos de imagens e de todos os aspectos visuais possveis de se implementar em desenvolvimentos Web. Este processo pode ser realizado atravs da vinculao de folhas de estilo aos documentos desejados ou atravs da insero destas formataes no prprio documento. J a camada comportamental implementa todas as funcionalidades de interatividade e dinamismo das aplicaes e sites Web, aps a definio das camadas j descritas anteriormente. Portanto, todo o segredo e caractersticas que diferenciam o modelo AJAX de desenvolvimento so definidas nesta camada. Dessa forma, as camadas, definidas pelo modelo AJAX de desenvolvimento, podem ser associadas s tecnologias que o compe da seguinte forma:

Estrutura: XHTML; Apresentao: CSS; Comportamento: DOM, XML, XSLT, XMLHttpRequest e JavaScript.

Com maior importncia, a camada comportamental apresenta maior quantidade de tecnologias vinculadas, sendo que estas relacionam-se entre si para prover o efeito sugerido e desejado pelos sites e aplicaes AJAX. Esta relao principalmente definida pelo JavaScript que o responsvel direto pelo relacionamento das tecnologias comportamentais, bem como por prover os meios que proporcionam maior interatividade s aplicaes e sites. Em contrapartida, as demais tecnologias tambm possuem funes de extrema importncia para o contexto de designs e interfaces mais ricas. O DOM proporciona a definio da estrutura lgica e dos meios pelos quais o JavaScript acessa e manipula os documentos XHTML, o XMLHttpRequest prov o mtodo de comunicao assncrona entre a engine AJAX, camada de comportamento, e o servidor Web, sendo utilizado pelo JavaScript, o XML o formato de troca de dados entre o objeto XMLHttpRequest e o servidor Web e finalmente o XSLT transforma dados XML em outros formatos, quando necessrio. A integrao destas tecnologias, provida pelo modelo AJAX de sites e aplicaes Web, demonstrada na seo de APNDICES (APNDICE 1).

37

4.5.

Vantagens de aplicaes AJAXIgualmente aos padres Web, as vantagens proporcionadas por sites e

aplicaes Web, baseados no modelo AJAX, so os principais fatores que motivam a sua utilizao, dentre elas, segundo CABRERA (2006), as principais so:

4.5.1.

Maior interatividade e dinamismo

Como exposto anteriormente, uma das maiores vantagens de aplicaes Web utilizando AJAX, e tambm uma das razes de utiliz-lo para o desenvolvimento de sites e aplicaes Web, a possibilidade de prover uma caracterstica mais interativa e dinmica resultando em aplicaes e sites que se assemelham menos aplicaes Web e mais com aplicaes desktop. Dessa forma, o AJAX proporciona aplicaes Web mais interativas e dinmicas que exploram com maior riqueza os aspectos grficos de aplicaes, como efeitos visuais que indicam mudana de estado, envio de dados, que permitem arrastar links dentro da aplicao entre outros recursos que somente eram possveis em aplicaes desktop.

4.5.2.

Reduo do consumo de banda e ganho de performance

Em uma aplicao Web baseada em AJAX, o trfego de dados entre o navegador Web do usurio e o servidor Web alto inicialmente, no incio de uma sesso, pois nesse momento a interface da aplicao transferida para o navegador do usurio, juntamente com a engine AJAX. Entretanto, a partir do momento que o usurio possui a aplicao Web carregada em seu navegador, as comunicaes posteriores com o servidor so muito mais eficientes e rpidas, pois so trafegados apenas os dados da aplicao e no toda a interface, como ocorre no modelo de aplicaes Web tradicionais. Dessa forma, atravs da engine AJAX eliminada a necessidade de recarregar toda a interface da aplicao ou site Web a cada interao com o servidor Web, otimizando e reduzindo o consumo de banda relacionado a comunicao entre a aplicao que est no navegador Web do usurio com o servidor Web e tambm o tempo de resposta da aplicao ou site Web. Os grficos abaixo demonstram com maior clareza esta vantagem:

38

Figura - 6 Dados em uma aplicao Web tradicional, adaptado CRANE et al. (2006).

Figura - 7 Dados em uma aplicao Web AJAX, adaptado CRANE et al. (2006).

39

Figura - 8 Trfego acumulativo, aplicao Web tradicional versus AJAX, adaptado CRANE et al. (2006).

4.5.3.

Reduo do processamento no servidor Web

Em casos de aplicaes que envolvam muitos clculos no lado do servidor Web, atravs de aplicaes AJAX torna-se possvel em alguns casos trazer parte desses processamentos para o usurio, permitindo desta forma reduzir o processamento necessrio por parte do servidor Web uma vez que processamentos referentes interface so processados atravs da engine AJAX presente no navegador Web do usurio e o que so dados de negcio o processamento realizado no servidor Web.

4.5.4.

No proprietrio

AJAX como exposto pela sua prpria definio no uma nova tecnologia ou linguagem de programao, mas sim uma designao de um mtodo de como projetar aplicaes Web, utilizando um conjunto de tecnologias Web padres j existentes.

4.5.5.

Portabilidade

Como as aplicaes AJAX so executadas atravs de navegadores Web e constitudas por tecnologias que so utilizadas pela maioria dos navegadores Web modernos existentes no mercado, ou seja lanados aps 2001, o AJAX torna-se uma tcnica de programao que no se restringe a um navegador Web, nem a uma plataforma, podendo ser executado em qualquer plataforma sendo apenas

40 necessrio um navegador Web moderno. Alm disso, no requer a instalao de qualquer plugin no navegador Web ou software no usurio.

4.6.

Desvantagens de aplicaes AJAXAtualmente algumas aplicaes AJAX conseguem fazer coisas inimaginveis,

para algum tempo atrs na Web, mas existem algumas restries, consideradas como desvantagens, que podem impor barreiras sua adoo. Entretanto, estas desvantagens vm sendo solucionadas, devido as vantagens que esta tcnica proporciona. Segundo CABRERA (2006), as principais desvantagens do AJAX so:

4.6.1.

Capacidades limitadas

O AJAX ao se basear em tecnologias existentes, herda as suas limitaes. Alguns exemplos de limitaes so: capacidade multimdia, armazenamento local no cliente, grficos em tempo real, interao com hardware. Algumas destas limitaes tm sido solucionadas nos navegadores Web modernos ou atravs de plugins especficos (como por exemplo, o Flash), mas existem algumas que sero muito difceis de superar, devido as caractersticas no operacionais da Web.

4.6.2.

Complexidade

O desenvolvimento de aplicaes AJAX, inicialmente, traz um significante aumento de tempo e complexidade no planejamento de um site ou aplicao Web, j que tudo o que vai acontecer tem que ser exaustivamente discutido antes que o desenvolvimento da aplicao ou site seja iniciado. Desta forma, o desenvolvimento de um site ou aplicao Web tem um custo relativamente mais alto que sites e aplicaes Web tradicionais.

4.6.3.

Performance no usurio

Numa aplicao AJAX transfere-se muito do processamento do servidor Web para o cliente. Essa mudana tem custos porque estaremos delegando ao usurio a responsabilidade para realizar determinadas operaes, para as quais no foi inicialmente desenvolvido. Com isso pode-se sobrecarregar o cliente, caso no se tomem as devidas precaues, durante a fase de desenvolvimento deste tipo de aplicao Web.

41

4.6.4.

Acessibilidade e Usabilidade

Como as atualizaes das pginas passam a ser dinmicas e realizadas pela engine AJAX, o AJAX pode trazer consequncias prejudiciais acessibilidade e usabilidade de sites e aplicaes Web, quando no usado corretamente. Dois exemplos clssicos do problema de acessibilidade gerado pela utilizao do AJAX so: os comportamentos dos botes Voltar e Avanar dos navegadores Web que podem ter comportamentos que no so os pretendidos e o fato de se tornar difcil, a tarefa do usurio guardar um link para um determinado estado da aplicao. Para ambos os problemas h solues propostas, porm estas

funcionalidades devero ser adicionalmente implementadas s aplicaes e sites Web para correo deste comportamento inicial das aplicaes e sites Web utilizando AJAX. A resoluo do problema dos botes Voltar e Avanar pode ser implementada de diversas formas, onde a maioria passa pela criao ou utilizao de Frames invisveis, que guardam os diversos estados das aplicaes e preenchem o histrico utilizado pelos botes Voltar e Avanar, at scripts mais elaborados e acessveis. J para a dificuldade existente para o armazenamento de um determinado link, que representa um estado da aplicao, tambm existem algumas solues, entre elas a utilizao do identificador de fragmento da URL, que permite aos usurios voltarem a um determinado estado da aplicao. Outro grande problema associado acessibilidade que o AJAX depende do JavaScript para funcionar, mas navegadores Web antigos ou com suporte desabilitado ou incompatvel com as especificaes no conseguem visualizar sites e aplicaes baseadas em AJAX. Assim, uma boa prtica planejar todo o site ou aplicao sem o uso do AJAX e CSS e posteriormente implement-los. Manter verses dos sites e aplicaes sem o uso de JavaScript permite que seu site seja acessvel tanto para usurios, quanto para mecanismos de busca e computadores. Tecnologias assistivas, empregadas para prover acesso sites e aplicaes Web em casos especiais, tambm enfrentam barreiras frente aos modelos AJAX de desenvolvimento, porm estas barreiras so comumente encontradas em quaisquer sites e aplicaes Web, no sendo um problema vinculado ao AJAX.

42 Assim, igualmente as demais tcnicas e linguagens de programao, frameworks e demais recursos que possibilitam o desenvolvimento Web, o uso incorreto e indiscriminado do AJAX para prover recursos de visualizao e interatividade s aplicaes pode acarretar em contedos inacessveis, mas a utilizao de boas prticas, o conhecimento dos Padres Web e a implementao de itens fundamentais para prover acessibilidade e usabilidade podem solucionar os principais problemas, quando no os solucionam completamente.

4.6.5.

Latncia da Rede

Outra preocupao das aplicaes e sites AJAX a latncia de rede. Dever existir a preocupao de quando for efetuado um pedido ao servidor Web, ser dado algum aviso de retorno para que o usurio no pense que a aplicao ou site teve uma falha, ou travou, caso o pedido demore entre a solicitao, at ser mostrada a resposta. Este problema tem tendncia a diminuir com o aumento da banda larga, mas nunca deixar de existir devido a natureza da Web.

4.6.6.

Requer conectividade permanente

Devido a natureza da Web aplicaes e sites AJAX requerem conectividade durante sua utilizao, pois como a parte da aplicao referente ao processamento de dados de negcio processada pelo Web, isso torna necessrio que a aplicao esteja sempre conectada.

4.7.

Empresas que utilizam AJAXEntre as empresas que adotaram o emprego desta tecnologia destacam-se:

Amazon; Del.icio.us; eBay; Flickr; Google; Microsoft; Yahoo!.

43

4.8.

Frameworks AJAXDevido a sua crescente importncia no desenvolvimento Web, inmeros

frameworks foram desenvolvidos para integrar as funcionalidades do AJAX s mais diversas linguagens de programao. Entretanto, alguns dos principais frameworks disponveis so:

AjaxAC, Cajax, HTML_AJAX, JPSpan, PAJAX, XAJAX frameworks de cdigo aberto que permitem integrao com PHP: Hypertext Processor (PHP);

AjaxCFC framework de cdigo aberto que permite integrao com ColdFusion;

Atlas framework desenvolvido pela Microsoft para integrao com ASP.NET;

Django framework de cdigo aberto que permite integrao com Python;

Google Web Tolkit framework desenvolvido pelo Google para integrao com Java;

Ruby on Rails framework de cdigo aberto que permite integrao com Ruby;

SAJAX framework de cdigo aberto que permite integrao com PHP, Practical Extraction and Report Language (Perl) e Python.

4.9.

ExemplosEsta seo tem como intudo demonstrar a utilizao do AJAX atravs de

exemplos bsicos, os quais demonstram seu emprego, a estrutura de aplicaes e sites baseados neste modelo, bem como realizar uma comparao entre uma aplicao baseada no modelo clssico de