domingo, 30 de outubro de 2005

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.