sábado, 3 de fevereiro de 2007

OpenLaszlo: dataset interno em uma classe

Algo útil quando trabalhamos com definições de classes é utilizar os dataset's internos nas classes com isso ganhamos certos benefícios em termos de organização e manutenção de código...

mas como fazer para utilizar dataset's internos na classe, sendo que quando defino o dataset na classe ao tentar utilizar normalmente deparo com o erro me informando que não encontrou o dataset de respectivo nome informado... como no caso:

...
<class name="MyClass">
   <dataset name="dsIn">
      <tag>valor</tag>
   </dataset>
   <text datapath="dsIn:/tag/text()" />
</class>
...


nesse formato vai informar que não encontrou o dataset com o respectivo nome informado, então como fazer para utilizar o dataset interno da classe? bom nesse exemplo acima falta apenas um pequeno detalhe para então funcionar:

...
<class name="MyClass">
   <dataset name="dsIn">
      <tag>valor</tag>
   </dataset>
   <text datapath="local:classroot.dsIn:/tag/text()" />
</class>
...


agora sim esse é o formato correto para indicar que o dataset é interno a classe em questão =]

OpenLaszlo: Sessões HTTP

Em aplicações web normalmente é utilizado a sessão para manter algumas informações da aplicação ou mesmo do usuário logado, mas utilizando uma interface Openlaszlo... como fazer para acessar a sessão da aplicação?

antes que digam que não é possível e que não tem como, sim tem como trabalhar com sessão Http porém o modo de trabalhar é um pouco diferente inicialmente do modo geral que as pessoas estão acostumadas a fazer em aplicações web sem utilizar alguma tecnologia RIA como no caso de uma aplicação web com interface OpenLaszlo...

é preciso lembrar que o acesso a sessão é feito no server-side e não no client-side, lembrando que o client-side é a máquina do usuário que está acessando a aplicação e é ali que está em execução a interface da aplicação, então para acessar a sessão para setar ou recuperar algum valor deve ser feito no server-side, em outras palavras, parte da aplicação que está em execução num servidor web e ali sim realizar as manipulações necessárias de sessão...

no forum oficial do OpenLaszlo esse assunto também foi abordado no respectivo [link] onde também foi disponibilizado um exemplo para o respectivo caso [download do exemplo]

na documentação oficial do OpenLaszlo também possui um capítulo que aborda o respectivo assunto Chapter 38. Cookies and Sessions - [link]

OpenLaszlo: DataGrid + Drag and Drop

Um componente normalmente bem utilizado em aplicações são os Datagrid agora algo interessante, um datagrid onde você possa arrastar os componentes usando o estilo drag and drop, bom se um dia você quiz um componente assim...

alguem também um dia quiz e acabou fazendo e agora está disponível para uso =] mais um componente muito interessante da comunidade japonesa de OpenLaszlo veja um exemplo em funcionamento [link]

autor do componente submeteu um post sobre o assunto no forum oficial do OpenLaszlo no respectivo [link]

Integração entre Openlaszlo e o HTML via JS

Como algumas pessoas já questionaram algumas vezes, se é possível integrar uma aplicação
desenvolvida com OpenLaszlo com o restante da página HTML... e a resposta é sim é possível sim =]

na comunidade Laszlo do Japão foi publicado um exemplo de como fazer essa integração,
no respectivo [link:exemplo de funcionamento da integração]

verifique o código HTML da página do link anterior, observe que para isso é utilizado um javascript
para proporcionar a ponte de comunicação com o OpenLaszlo: flashobject.js [download]

o autor desse exemplo também submeteu um post sobre esse assunto para o forum oficial do OpenLaszlo [link]

sexta-feira, 2 de fevereiro de 2007

PortalJavaSupport 1.0

Primeira versão de um conjunto de suporte para desenvolvimento rápido de aplicações Web em java, no qual possui suportes para:

- Mentawai 1.8 ( versão costumizada )
- Hibernate 3.2 ( para uso de anotações )
- XStream 1.1.3
- Jasperreports 1.2.8

download do projeto [link]
documentação do projeto [link]
versão 1.0 - 02/02/2007

um caso de uso que demonstra o uso da maioria das anotações de configurações relacionado ao Mentawai [link]

* Sobre a costumização do Mentawai 1.8

foram alterados algumas classes para possibilitar algumas funcionalidades que ao meu entender deveriam estar funcionando mas quando testei essas não estavam...

como o caso de inner action exemplo 3 do respectivo [link]

as respectivas classes alteradas do mentawai podem ser encontradas no diretório \proj_files\proj_lib\mentawai\Classes_alteradas

OBS.: essa versão também possibilita um suporte inicial para trabalhar com modulos inseridos em runtime na aplicação web, onde um novo módulo é um arquivo .jar contendo as classes Action e de processamento da camáda de négocio, sendo este jar carregado para memória pelo suporte de modulos e posteriormente podendo ser acessado e atualizando a configuração da aplicação em Runtime, sem a necessidade de reiniciar o contexto da aplicação web para que as alterações sejam efetivadas

quinta-feira, 1 de fevereiro de 2007

Uma notícia muito triste

Hoje ao verificar os post no Portal Java tive o desprazer de ler um tópico relatando uma notícia
de algo que ainda não havia visto e que consequêntemente me deixou muito triste ao ler...

Segundo site do Mentawai um amigo e um dos desenvolvedores do Mentawai MVC, morreu ao ser atingido por uma bala perdida, segundo o relato na página principal do Mentawai:

" É com profundo pesar que comunicamos o falecimento do nosso querido amigo Alex Fortuna. Apesar de não conhecê-lo pessoalmente, sempre tive admiração pela sua humildade. Sempre foi muito fácil conversar com ele pelo messenger. Uma pessoa tranquila, bem-humorada, de paz com a vida, sempre disposto a ajudar. Estava passando por um momento bom profissionalmente, onde estava iniciando um novo desafio numa empresa em Manaus. Infelizmente acabou sendo mais uma vítima da violência, atingido por uma bala-perdida enquanto conversava com alguns amigos da empresa após uma partida de futebol. Só podemos pedir que ele descanse em paz, que encontre em outros planos a paz que ele merece. Para nós, ficam as lembranças e a esperança de reecontrá-lo um dia, além do agredecimento pelo prazer de te-lo tido como um companheiro de projeto. Obrigado Alex!

26/01/1984 ~ 30/01/2007"


Deixo aqui a minha homenagem a essa pessoa que me ajudou muito em momentos de dúvidas
com algumas tecnologias e mesmo com boas conversas extroverdidas e divertidas que tivemos,
sou grato por ter tido a oportunidade de compartilhar bons momentos...

mesmo assim ainda não consigo acreditar nessa notícia :(

terça-feira, 30 de janeiro de 2007

Projeto Blank: OpenLaszlo 3.3.3 + Mentawai 1.8 + PortalJavaSuport 1.0


Está disponível um novo projeto blank para OpenLaszlo agora com algumas novidades no projeto.


itens que compoem o projeto:

- OpenLaszlo 3.3.3
- Mentawai 1.8 ( versão costumizada )
- Hibernate 3.2, utilizando mapeamentos com annotations
- XStream 1.1.3
- Jasperreports 1.2.8
- Log4j 1.2.12
- PortalJavaSupport 1.0

nesse novo projeto blank, foi adicionado o Projeto Portal JavaSupport que é um conjunto de suporte para agilizar o processo de desenvolvimento de aplicações Web utilizando como base o framework Mentawai MVC

osb.: apesar de utilizar o Mentawai, esse projeto utiliza uma versão costumizada do Mentawai original, porém que não afetam o funcionamento do Mentawai original quanto a seu suporte, apenas ampliam as funcionalidades e algumas revisões de performance para os códigos relacionados ao gerenciador de templates...

uma das novidades desse projeto blank é a possibilidade da configuração das actions e de templates utilizando anotações

e como configuração básica apenas a definição de uma linha de comando na classe application.config.ApplicationManager.java no método init()...

a configuração de template modelo basico foi definido na classe: application.config.TemplateManager.java

obs2.:
descompactar o projeto diretamente no /webapps do tomcat e após isso importar o projeto no Eclipse...

segunda-feira, 8 de janeiro de 2007

domingo, 7 de janeiro de 2007

[Revolta] bloqueio do Youtube

Hoje como de costume, ao abrir uma aba no meu Firefox vou eu tentar acessar o Youtube...
e eis que nada de acessar, passado um tempo, nova tentatica e nada... verificando meus e-mails recebo um de um colega no qual havia um link falando que o Youtube estava bloqueado o acesso por alguns provedores de serviço de internet no Brasil...

eis que também foi notícia na Info Online [ link ]

o pessoal do BR-Linux também debateu sobre este assunto, nos respectivos links:
Bloqueio do Youtube: vídeo da Cicarelli traz o retorno da censura no Brasil?
Furando o bloqueio: como acessar o YouTube censurado

segundo link do BR-Linux, digo que seria uma resposta da comunidade para essa decisão ao meu ver ridícula...

domingo, 31 de dezembro de 2006

OpenLaszlo: projetos e arquivos

Nesse ultimo mês de Dezembro de 2006, após
ter terminado minha monografia sobre o OpenLaszlo
publiquei ela e um conjunto de projetos no Portal Java

para aumentar a quantidade de material disponível sobre o assunto em português,
segue os respectivos links:

Monografia sobre OpenLaszlo [link]
projeto da monografia: Laszlo Agenda [link], referente ao capítulo 7 - implementação

também reformulei e republiquei projetos em branco para facilitar o estudo e uso
do OpenLaszlo com frameworks MVCs em Java

em ambos os projetos possuem os respectivos suportes:
- OpenLaszlo 3.3.3
- Hibernate 3.2, utilizando mapeamentos com annotations
- XStream 1.1.3
- Jasperreports 1.2.8
- Log4j 1.2.12

também desde Setembro de 2006, está disponível no Portal Java
um ambiente pré-configurado de desenvolvimento para OpenLaszlo
versão para Windows. [link]

porém quem quizer montar um mesmo ambiente em outro sistema operacional
basta seguir os passos indicados, no Anexo B - Ambiente de Desenvolvimento,
da monografia, página: 112, ou então verificar os passos descritos no Forum:
Portal Java - Ajax/OpenLaszlo, tópico: Eclipse e Laszlo [link]

neste [link] você verá todas as notícias publicadas no Portal Java,
relacionadas ao tema OpenLaszlo.

no mais aguardamos anciosamente pelo OpenLaszlo 4 ( Legals ),
para conferir quais serão as novidades dessa nova versão,
que a princípio a primeira release espera-se para início de 2007.

terça-feira, 21 de fevereiro de 2006

Aplicações de Internet Rica e o futuro da Web

Problemas com a Web hoje

Aplicações web em HTML são um acidente do crescimento da Internet. A Web foi originalmente projetada para disponibilizar documento online, mas agora serve como veículo principal para disponibilizar aplicações em rede. Em conseqüência, serviços providos, negócios, desenvolvedores de aplicações e seus respectivos clientes sofrem com os seguintes itens:

    • Experiência inferior do usuário: em uma comparação com aplicações desktop, impede a adaptação com os serviços disponibilizados na web para comunicação e comercio online, devido as limitações quanto a interface gráfica do sistemas disponivel para uso de seus respectivos usuários.

    • Aumenta os custos de centralizar as operações de dados: pelo fato do processamento da lógica de UI no HTML em aplicações web, ser centralizada e realizada no servidor.

    • Desafios de distribuição e manutenção: com aplicações baseadas em DHTML quando suportam multiplos web browsers em multiplos sistemas operacionais, onde essas aplicações devem ser desenvolvidas e mantidas garantindo que funcionem em diferentes web browser de diferentes sistemas operacionais.


O futuro da Web > RIA

Rich Internet Application( RIA | Aplicações de Internet Rica ): esses frameworks prometem inovações além das atualmente encontradas em sistemas web e avigorar/aprimorar as aplicações de internet, com uma nova experiência para os usuarios, historicamente limitado a aplicações desktop. Estes frameworks, algumas vezes referenciados como arquiteturas de cliente rica ou executaveis de internet, permite aos desenvolvedores de aplicações, prover serviços e negócios online, criando e disponibilizar uma nova geração de aplicações web mais eficazes para satisfação de seus clientes, aumentando a adaptabilidade de seus serviços e reduzindo, os custos de desenvolvimento e manutenção dessas aplicações.


Laszlo Mail

Um exemplo de aplicação que implementa o RIA é o Laszlo Mail o qual foi desenvolvifo utilizando Laszlo, o qual destaca muita das vantagens de aplicações de internet rica. Ao contrário do convencional web mail em HTML, Laszlo Mail permite um acesso IMAP ao e-mail dos usuários através:

    • Uma GUI completamente costumizada

    • Controles de teclado

    • Redimensionamento de janelas

    • Gerenciamento das mensagens usando Drag and Drop

    • Compativel com todos os web browser populares para Windows, MacOS, Linux ou qualquer outro browser de algum outro sistema Operacional que possuia o plugin Flash Player instalado

    • Alta capacidade de resposta e interatividade devido a uma transferencia minima de dados após a instanciação inicial do cliente, uma vez com a interface, as proximas transações com o servidor são apenas de dados da aplicação.

Fazendo o futuro da web realidade agora

Para aumenta a experiência web, desenvolvedores requerem plataformas para entregar uma interface de usuário avançada, enquanto alavanca os existententes jogos de habilidades dos desenvolvedores e infraestruturas de desenvolvimento. Se não, excessivos custo de desenvolvimento e distribuição poderia confinar os avanços a protótipos de laboratório. Toda plataforma viável de aplicações de internet rica deve seguir os seguintes requerimentos:

Experiencia dinâmica para o usuário

    • Interfaces GUI intuitivas que prevem uma experiência de single-page(uma unica página) sem os refresh das aplicações HTML web

    • Uma integração sem emendas com a maioria de tipos de media em um único canvas sem separação por plugins ou por camadas

    • Suporta notifiação e mensagens em tempo real

Um desenvolvimento rápido da aplicação

    • Um desenvolvimento familiar com os paradigmas de programação e fluxo de trabalho

    • Possibilitar um desenvolvimento baseado em equipe

    • Simplificar a manutenção a longo prazo do código

Disponibilização dirigida a padrões para qualquer lugar

    • Compatibilidade com o prevalecimento das infraestruturas padrões existentes( J2EE, XML, Web Services, SSL )

    • Rodar em qualquer web browser sem download suplementar ou instalações

    • Desloca a sobre carga do processamento dos servidores centrais de dados, ou seja o processamento dos dados também é realizado no cliente e não totalmente centralizados no servidor.

Comparando com aplicações web baseadas em HTML, internet rica e clientes de aplicações rica possibilita uma vasta melhoria no tempo de resposta da aplicação e usabilidade da aplicação.

Em cada domínio, uma experiência de alta qualidade e satisfação dos clientes traduzem na melhoria dos negócios. Para os principais fornecedores de aplicações de internet para comuniações IP ao e-commerce, um modesto aumento uniforme na utilização do serviço ou das taxas de conclusão de transação pode gerar um ganho de rendimentos significantes e redução dos custos de manutenção.

Em uma era onde a missão crítica são os sistemas de informação e agora são expostos rotineiramente aos usuários fináis, onde todos os setores representativos, públicos e privados, fornecem seus serviços aos seus clientes online, a interface desses sistemas necessitam ser dignos dos produtos e serviços por eles representados.


OpenLaszlo

É uma plataforma que conduz ao desenvolvimento de aplicações de internet rica. Openlaszlo combina excepcionalmente:

    • Licença sobre certificado OSI CPL Open Source

    • Plataforma nativa XML

    • Disponibilização em qualquer lugar sem instalação

    • Suporte para qualquer web browser para Windows, Linux, MacOS e qualquer outro sistema operacional que possua um web browser com plugin Flash Player

    • Opção de disponibilização para ambos servidores web HTTP e J2EE

    • Uma experiência de interface rica para o usuário

segunda-feira, 20 de fevereiro de 2006

OpenLaszlo

O que é o Openlaszlo?

Ë uma plataforma open source para desenvolvimento e disponibilização de aplicações segundo a modalidade RIA( Rich Internet Application | Aplicações de Internet Rica ). A plataforma Openlaszlo consiste em 3 componentes principais:

  • Compilador: o qual pega os arquivos de código e compila para arquivos Flash( swf ) que são executados em qualquer browser que possua o plugin da Macromedia para execução do Flash( swf ).
  • Runtime Framework: inclui os componentes de interface, suporte para manipulação de dados( data binding ) e serviços de comunição na rede.
  • Servlet: habilita o suporte runtime para tipos adicionais de media, suporte para SOAP e XML-RPC.

Com o OpenLaszlo, você pode:

  • Desenvolver aplicações baseadas em RIA com um código baseado em XML e JavaScript.
  • Disponibilizar essa aplicação em qualquer browser na modalidade SOLO, ou disponibilizar em qualquer servidor de aplicação J2EE ou em qualquer container Java de servlet( ex.: Tomcat ), rodando em qualquer sistema operacional que tenha o java instalado.
  • Disponibilizar para qualquer web browser com Flash Player 5 ou superior, alcançando 97% de todos os computadores com acesso a web.

Desde 2002, as aplicações em Laszlo tem demonstrado que provem a usabilidade, escalabilidade e a confiabilidade em distribuições web( sistemas web que utilizam essa tecnologia) para milhares de usuários.

Quando e por que o OpenLaszlo se tornou Open Source?

Começou com a versão 2.2 no dia 5 de Outubro de 2004, a plataforma inteira OpenLaszlo, previamente chamada de Laszlo Presentation Server( LPS ), teve seu código aberto pelo seu desenvolvedor origirnal, Laszlo Systems, para estabelecer uma gratuita e uma plataforma aberta para disponibilização e desenvolvimento de aplicações ricas para o cliente.

Por adotar um modelo de desenvolvimento aberto, nos esperamos acelerar a utilização por aplicações ricas para cliente na Web aberta, também como realce a qualidade, performance e um novo jogo de característica da plataforma OpenLaszlo. A empresa Laszlo Systems continuará a desenvolver a plataforma Open Source, junto com o fornecimento de módulos comerciais para aplicações, realizando o serviço de suporte e treinamento para seus clientes.

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.