sexta-feira, 26 de agosto de 2011

Aplicações AJAX


As Aplicações WEB Tradicionais

Para entender corretamente o que é o AJAX é preciso ter a compreensão dos desafios que ele se propõe a resolver.

Para isso é fundamental ter uma visão das limitações impostas pelo ambiente WEB anteriormente ao AJAX.

Aplicações web tradicionais centralizavam todo seu código em torno de uma arquitetura de cliente-servidor e um cliente-magro. Todo o processamento é realizado no servidor, e o cliente apenas utiliza uma tela estática, neste caso em HTML (HiperText Markup Language) .

Os navegadores Web foram projetados para ser o lado cliente, que utilizam normalmente o protocolo HTTP (HiperText Transfer Protocol) para enviar uma requisição e recebem do servidor uma resposta. Não há possibilidade de o servidor tomar a iniciativa para se comunicar com o cliente.

A figura 1 demonstra o fluxo de comunicação entre o navegador e o servidor.

Figura 1


As principais características deste tipo de processamento são:

  • o processamento ocorre integralmente no lado do servidor
  • o modelo de dados do usuário precisa ser gravado no servidor, na sessão do usuário
  • as páginas são reexibidas por inteiro, mesmo nos casos de pequenas alterações em seu conteúdo
  • Em função do protocolo HTTP não é possível a comunicação partir do servidor
  • a comunicação é síncrona, ou seja, uma requisição só pode ser iniciada quando a anterior tiver sido concluída

Estas características das aplicações Web tradicionais produzem desvantagens seja para o lado cliente (navegador), seja para o lado do servidor. O usuário fica impossibilitado de realizar qualquer ação até que a requisição seja integralmente processada. O servidor precisa processar toda a página a cada requisição. Finalmente o tráfego de rede é intensificado com grande volume de informações repetitivas.

Embora as aplicações Web tenham demonstrado vantagens, tais como acesso fácil, custos reduzidos, facilidade de atualização e menores requisitos de hardware e software, as aplicações desktop se destacavam pela grande capacidade de interação com os usuários.


O que é o AJAX

Durante muito tempo as GUIs – Interfaces Gráficas do Usuário – dominaram a informática. Os profissionais da Web estavam sempre tentando convencer o mundo de que, para a maioria dos programas, uma interface Web era o bastante. Mas os usuários estavam acostumados a certas características, como campos que são completados automaticamente, ou o arrastar e soltar, que eram impossíveis na Web.

O AJAX, na realidade, estava à disposição dos desenvolvedores desde 1998. Entretanto, fazia-se necessário um olhar mais atento para se descobrir suas funcionalidades. O termo “AJAX” consiste de um acrônimo de Asynchronous JavaScript And XML (JavaScript e XML assíncronos).

Curiosamente sua existência se deve a uma dessas famosas violações dos padrões que a Microsoft costuma realizar com seus produtos.

Foi a introdução de uma biblioteca que permitia fazer consultas usando protocolo HTTP de maneira autônoma e assíncrona, utilizando os recursos da linguagem JavaScript para trazer informações de diversas páginas, de maneira independente, além de fazer que um determinado código permanecesse em execução respondendo a eventos, que criou a possibilidade do navegador trazer informações que estavam no servidor, sem a necessidade recarregar toda a página.

O próximo passo para a montagem do “quebra-cabeça” seria a possibilidade de alterar o conteúdo de uma página em tempo real, de forma simples e estruturada. Neste contexto, o DOM (Document Object Model), permitia a consulta e edição ao conteúdo de uma página, através da visão hierárquica de seus componentes.

Para contribuir ainda mais com a construção de uma solução apropriada, os programadores começaram a utilizar o XML para promover a interoperabilidade entre servidores remotos que possuíam características tecnológicas distintas.

Basicamente, uma vez carregada a página Web, temos em mãos todas as possibilidades de programação de uma GUI tradicional. E tudo isso sem a necessidade de plugins nem instalações. Toda essa tecnologia estava em nossos computadores, esperando para ser usada.

Dessa forma, estava aberta a possibilidade de levar para o ambiente WEB as mesmas funcionalidades de já existiam nas aplicações desktop.

O AJAX, portanto, não é um framework, nem uma API, nem uma tecnologia isolada. Na verdade, o AJAX é um conjunto de quatro tecnologias que se complementam visando tornar os aplicativos Web mais responsivos, aproximando-os das características de um ambiente desktop.

As tecnologias utilizadas na construção de aplicativo AJAX são:

JavaScript

É uma linguagem de script, sendo considerada atualmente a principal linguagem de programação “client-side” em navegadores Web. Possui recursos de orientação a objetos, baseada em protótipos, com variáveis dinâmicas e fracamente tipadas.

Cascade Style Sheets (CSS)

É uma linguagem de estilo utilizada para definir a apresentação de documentos escritos em formato de marcação de texto, como HTML ou XML. A CSS possibilita uma separação entre conteúdo e apresentação

Document Object Model (DOM)

É uma especificação da W3C (World Wide Web Consortium) , independente e plataforma e linguagem, utilizada para organizar um documento de forma hierárquica, que permite consultar e alterar dinamicamente sua estrutura, conteúdo e estilo.

Objeto XMLHttpResponse

É uma ferramenta de uso geral que permite ao navegador recuperar dados do servidor como uma atividade de segundo plano (background).



A integração dessas tecnologias ocorre na forma esquematizada na figura 2.

Figura 2

O JavaScript assume papel central, responsabilizando-se pela lógica e pela integração das tecnologias subjacentes.

Através do DOM é possível acessar e modificar qualquer componente da página em tempo real.

A CSS facilita a padronização e a modificação da aparência de um aplicativo Web.

Por fim, o objeto XMLHttpResponse fornece toda a estrutura para a implantação de programação assíncrona e orientada a eventos.

A utilização do AJAX altera o papel tradicional do navegador Web, projetado originalmente para ser um cliente “burro”, transformando-o em “aplicativo cliente” e delegando-lhe parte da lógica que estava integralmente confinada nos servidores.

A figura 3 demonstra o novo fluxo de comunicação entre o navegador e o servidor.




Dessa forma, o AJAX vem transformando pouco a pouco todas a páginas Web e a maioria dos currículos dos profissionais de desenvolvimento de softwares.

Nenhum comentário:

Postar um comentário