domingo, 30 de outubro de 2005

Links sobre AJAX

AjaxTags

AJAX Patterns
AJAX Patterns - Cross-Browser Component

Getting Started with Ajax
Asynchronous JavaScript And XML (AJAX) -- And Why It's Not Enough
Ajax: A New Approach to Web Applications

Survey of AJAX/JavaScript Libraries

WWW SQL Designer
WWW SQL Designer - Demo

Sprinkle Some AJAX Magic in Your Struts Web Application
AJAX + STRUTS
DWR - Direct Web Remoting

Backbase
script.aculo.us

Artigo publicado no site do JAVA
Asynchronous JavaScript Technology and XML (AJAX)
With Java 2 Platform, Enterprise Edition


Blog's sobre AJAX
http://blog.elcio.com.br/ajax_e_o_hype/
http://www.ajaxian.com/
Juntão Ajax

Artigo publicado no Tableless
Ajax - Para quem só ouviu falar
Ajax - Introdução

Rich Internet | Internet Rica

* Mais que tecnologia, um conceito; uso da internet e das tecnologias disponíveis para a criação de experiências de uso mais intuitivas e eficientes.

* Uma nova forma de pensar e desenvolver sistemas web.


A internet é, sem dúvida, uma ótima ferramenta para encontrar e organizar informações, mas no que se refere á aplicações de usabilidade, interatividade em tempo real e multimídia, está apenas começando a dar seus primeiros passos, neste ponto entra o RIA.

Ao desenvolver um projeto baseado em RIA estamos combinando a interatividade e a funcionalidade do desktop com a abrangência e flexibilidade da web para criar uma única e integrada experiência, rica em conteúdo.

Comentário sobre o ambiente web

A web hoje é um ambiente onde é problemática a entrega de aplicações que exigem interfaces mais robustas e níveis mais altos de interatividade.

A plataforma web foi concebida sem maior consideração a possíveis necessidades de execução de aplicativos. Praticamente todas as aplicações para a web carregam novamente as páginas inteiras, a cada clique, o que dificulta a experiência do usuário e reduz o potencial de aplicações.

Basicamente a web é um ambiente onde o código é rodado principalmente no servidor, levando a custos maiores de transmissão de dados. Além disso, a experiência do usuário é inferior a aplicativos de desktop, com custos de desenvolvimento decorrentes de múltiplas plataformas e metodologias.

Dada a escalabilidade da web e sua maior abrangência, a implementação de aplicativos baseados na web substituiu os sistemas tradicionais cliente-servidor apresentando, porém, resultados finais limitados decorrentes dos problemas expostos anteriormente (carregar a pagina inteira novamente, por exemplo). O conceito RIA veio para tentar suprir tais limitações encontradas.

O que é RIA?

É um conceito inovador no modo de pensar e desenvolver na web. Aplicações RIA, unem a funcionalidade dos softwares para computadores de mesa com o extenso alcance e facilidades econômicas de aplicativos para internet, o que proporciona um novo nível de experiências para usuários e desenvolvedores.

A principal ferramenta para o desenvolvimento de RIA é o flash, porém o flash por si só não é capaz consultar bases de dados ou fazer qualquer operação no servidor sem o auxílio de algum recurso externo, ou seja, tecnologia Remoting. Mesmo com suas fabulosas vantagens, possui uma restrição séria, o servidor. Este deve ter suporte à tecnologia Remoting, o que torna o serviço de hospedagem para esses sites caro e inviável para pequenas empresas e sites pessoais. Em resposta a essa limitação, e dentro de um modelo de co-criação, grupos de desenvolvedores criaram uma alternativa Open-Source que viabiliza o uso de tecnologia Flash Remoting em servidores sem custos extras no servidor (necessitando somente do php, ou tecnologia Java J2EE).

Apesar de em um primeiro pensamento sobre RIA, pensarmos em flash, algo novo que neste ano vem ecoando na internet é o AJAX (Asynchronous JavaScript and XML) usado também para o desenvolvimento de RIA porém como dito na sigla usa javascript com xml.

Como Funciona?

Arquitetura tópica RIA

Fonte

RIA são aplicações implementadas no servidor e que tiram vantagem da tecnologia cliente para prover uma nova classe de websites interativos com a sofisticação de aplicações de desktop, mas que não comprometem a facilidade de desenvolvimento, implementação e manuseio dos aplicativos web.

Os aplicativos de Rich Internet são baseados na tecnologia Rich Client, que fornece um ambiente dinâmico, com capacidade de hospedagem de aplicativos compilados no lado do servidor recebidos como arquivos através de HTTP. Os aplicativos no lado do cliente conectam-se de volta aos Back-Ends de servidores de aplicativos existentes, por meio de uma arquitetura assíncrona de Cliente/Servidor que oferece segurança, estabilidade e que é bem adaptada ao novo modelo orientado a serviços que está sendo promovido pela adoção de serviços web.

Processamento Padrão versus Usando AJAX

Fonte

Descrição das Arquiteturas

Arquitetura AJAX
Fonte

Fonte

Arquitetura Laszlo

Fonte

Arquitetura Flash
Fonte

Tanto usando Flash quanto usando o AJAX o esquema de processamento entre os 2 são similares a esta imagem que demonstra o processamento assincrono do AJAX.

Considerações

A adoção crescente da tecnologia Rich Client não é uma etapa evolutiva de substituição a HTML. Consiste mais em uma aplicação da capacidade dos browsers e dispositivos com interfaces de usuário mais eficazes e responsivas. A maioria dos aplicativos "Rich" é executada no contexto de browsers, e muitos são executados dentro das páginas, junto com o conteúdo HTML. Os aplicativos "Rich" acrescentam mais recursos à internet, mas a linguagem HTML continuará a ter um papel fundamental na disponibilização de conteúdo, nas interfaces de usuário e na navegação.

Internet Rica porque pode ser executada tanto em browsers como em dispositivos, ela possibilita criar aplicativos que podem ser disponibilizados uniformemente em uma ampla gama de plataformas de conexão à internet. Além disso, como a tecnologia Rich Client possibilita o uso de elementos gráficos móveis, vídeo, áudio, comunicação bidirecional e formulários complexos, ela constitui um ambiente significativamente mais sólido para criação de interfaces de usuário de aplicativos.

As qualidades descritas nesta apresentação representam os principais pontos de evolução que possibilita a utilização do conceito de Internet Rica.

Essencial na utilização adequada destas aplicações está o planejamento adequado, centrado no usuário e em suas metas. Aplicações em RIA permitem que modelos mentais e objetivos de negócios sejam mais bem explorados. Para obtermos o potencial representado pelas tecnologias, todas as etapas do processo têm que receber o direcionamento de um planejamento adequado, conhecedor do processo e das ferramentas.

Benefícios

Agilidade no tempo de resposta; - Layouts gráficos mais elaborados; - Possibilidade de interface com animação (torna as operações mais interessantes); - Utilização de multimídia (áudio, vídeo, mais atratividade nos sites). O resultado final para o usuário de um sistema que utiliza RIA é de modo semelhante a um sistema cliente desktop.
( Essa é uma das idéias centrais de utilizar-se RIA em sistemas web ).

Situação atual

Atualmente ainda é muito baixo o número de sites que utilizam tecnologia RIA no Brasil, mas a tendência é aumentar rapidamente. A questão chave agora é definir aplicações RIA como estratégicas e geradoras de diferencial, capazes de melhorar as experiências dentro do marketing, vendas e relacionamento. É sem duvida uma nova forma de pensar e agir na web.

Programação WEB + R.I.A.

De uns tempos para até o atual momento( um ou dois anos ), tenho visto na internet algo novo, um novo conceito, ou até uma nova filosofia de programação de VIEW para sistemas WEB utilizando um conceito chamado RIA...

RIA( Rich Internet Application, ou em português literalmente,
Aplicação de Internet Rica )

Definição da Macromedia para RIA:

"Internet rica significa o uso da tecnologia da informação para unir o melhor da web, ao melhor do seu desktop e ao melhor das comunicações. É, em suma, uma experiência interativa muito mais rica para o usuário.

Para compreender melhor, pense no que acontece quando você navega pelo seu desktop ou por outras aplicações cliente-servidor. Você faz ações como "drag-and-drop", "desfazer" e muito mais - tudo na mesma tela, de maneira simples e intuitiva.

O conceito tradicional de internet impede este tipo de navegação, pois, normalmente, você precisa clicar em um link para ver alguma opção em alguma página; depois clicar em outro; em outro; e assim por diante.

RIA - ou Rich Internet Application é um conceito que permite uma experiência de navegação semelhante ao ambiente do seu desktop. Com códigos rodando no navegador, o próprio conceito de página é ampliado para o conceito de internet rica."

Macromedia Macrocenter


Atualmente exite 2 frentes de desenvolvimento usando esse conceito, interface web utilizando swf( flash ) ou usando AJAX.

Usando SWF

Temos uma interface para o usuário do sistema com efeitos cinematograficos podendo disponibilizar para o usuário do sistema todas as "frescuras", antender aos anseios, imaginação do usuário de como deveria ser a interface para o sistema, tendo muitos recursos de animações disponiveis.

Mas programar usando o Macromedia Flash + ActionScript é um trabalho um tando complicado para o desenvolvedor, então em Outubro de 2000 uma empresa chamada Laszlo Systems é fundada em São Francisco, Califórnia e inicia-se um projeto chamado Laszlo, com uma nova proposta de desenvolvimento da camada de visualização Web onde o resultado final é tão poderoso quando o resultado final gerado usando Macromedia Flash + ActionScript, porém a programação é mais amistosa pois é baseada em conceitos e paradigmas de programação com os quais grande maioria dos desenvolvedores já estão acostumados, um exemplo rápido é o desenvolvimento dessa camada de visualização Web utilizando de uma programação orientada a objeto.

A partir da versão 2.2 em 5 de Outubro de 2004, toda a plataforma Laszlo, agora chamada de OpenLaszlo foi disponibilizada pelo seu desenvolvedor original a Laszlo Systems, para ser uma plataforma gratuíta e OpenSource, licensa CPL, para o desenvolvimento e disponibilizações de aplicações web de internet rica.

Quanto a Macromedia, segundo boatos que circulam pela internet, logo após a Laszlo Systems ter lançado a ideia de inteface RIA, quanto ao formato de programação baseada em tag's XML gerando swf usado na interface de utilização do usuário, integrada com java como base de processamento, a Macromedia como foram eles os criadores do swf não perderam tempo e começaram a trabalhar em uma ferramente chamada Macromedia Flex que em si, a forma de programação é semelhante ao formato de programar usando laszlo, as duas usando uma base de código em formato XML. A grande diferente entre essas duas hoje é o fato, OpenLaszlo é open source CPL e executa em qualquer continer de servlet java ou servidor de aplicações web J2EE, ou ainda existe a possibilidade de uma distribuição chamada SOLO que independe podendo a aplicação ser colocado em um IIS ou outro servidor disponível no mercado, enquanto o Macromedia Flex foi projetado apenas para executar no JRun.

Usando AJAX

É uma tecnologia para desenvolvimento de sites usando o conceito RIA, porém a sua interface utiliza engines baseadas em javascript que realizam o processamento de uma request de algo no servidor de modo background, não gerando aquela inconveniente piscada de tela, onde fica tudo em branco e depois aparece o conteúdo da página, o AJAX é baseado em um objeto XmlHttpRequest do javascript o qual segundo informações já existe a mais de 10 anos o qual realiza a comunicação com o servidor em background e agora o pessoal do Google "desenterrou", "ressucitou", como queira; podemos ver o AJAX em ação no Google Maps e no Gmail, existem outros sites também, mas nesses podemos ver a diferença do formato desses sites comparando com demais sites na internet que não utilizam RIA.

Digamos que o AJAX é mais uma metodologia de programação de sistemas web do que efetivamente uma nova tecnologia. Porém ainda apresenta alguns problemas, para o desenvolvimento de sistemas que implementam RIA usando o AJAX é necessário um conhecimento quanto maior do desenvolvedor sobre javascript para poder realizar a compatibiliazação para a execução em diversos web browsers, atualmente existem taglibs disponíveis com implementações de AJAX o que reduz um pouco a complexidade da programação de sistemas web usando o AJAX.

AJAX x SWF

Tanto um quanto outro utilizam comunicação com o servidor fazendo uma request que a princípio não note-se diferença de um outro sistema web comum, porém o retorno da request, a resposta do servidor, essa sim é tratada de maneira diferente dos demais sistemas web atuais, utilizando o conceito de parsing de XML, XHTML, recuperam apenas os trechos importantes da resposta, caso seja um HTML retornado, ou caso no desenvolvimento já foi definido que a resposta retornaria como em formato XML, ambos realizam a leitura e "injetam", atualizam os trechos da página( AJAX ), ou SWF( OpenLaszlo, Flex ), com isso não remontando toda a página evitando que a tela fique em branco.

Uma das vantagens de ambos, caso seja bem estruturado, o seu uso em ambos poupam o consumo de banda, pois uma vez montado a VIEW do sistema para o usuário, apenas os dados para atualizar trechos da VIEW serão trafegados entre o browser do cliente e o servidor.

A diferença base entre os 2 é o fato. O AJAX é baseado o seu funcionamento no HTML e javascript interpretado pelo web browser do cliente com isso também o limitando apenas ao que o browser consegue interpretar do javascript, enquanto o OpenLaszlo e o Flex como gerar um resultado binário swf o qual é executado pelo plugin Macromedia Flash Player na máquina do cliente livra o desenvolvedor da preocupação de uma programação de compatibilizaçào pois o plugin é o mesmo para todos os web browser de diferentes sistemas operacionais e tipos de dispositivos.

Conclusões

Tanto AJAX, quando OpenLaszlo e o Flex, para camada VIEW de sistemas web já fornecem uma vasta possibilidade de funcionalidades que podem ser disponibilizadas para o usuário, aproximando o sistema web um pouco mais de um sistema cliente desktop possibilitando tambem o desenvolvimento de sistemas web na modalidade single-page sem os inconvenientes “piscar de tela” dos atuais sistemas web disponíveis.