Em 24 de Fevereiro, a Farata Systems anunciou que havia começado o processo de tornar open source seu framework Clear Toolkit para desenvolvimento corporativo de Rich Internet Applications (RIA) como Adobe Flex e Java. A InfoQ falou com Yakov Fain, um dos 3 sócios da Farata Systems, para aprender mais.
Fain começou explicando porque eles criaram o Clear Toolkit:
Quando trabalhando em muitos projetos corporativos, nós queríamos minimizar a quantidade de programação manual envolvida, por isso tentamos automatizar tarefas mundanas e trabalho repetitivo para os desenvolvedores. Por exemplo, se você é um programador Java trabalhando com bancos de dados, há grandes chances de você ficar escrevendo fragmentos de código JDBC que processe result sets. Nós começamos a olhar para os templates XSL, trabalhar com metadados e descobrir como gerar o código fonte completo para o processamento de back-end baseado em declarações SQL do tipo Select. Então nó adicionamos mais templates para gerar o front-end em Adobe Flex. Assim, hoje, a geração de uma aplicação CRUD Flex/Java demora apenas alguns minutos. Nós também criamos um gerador de scripts Ant para projetos Flex, um logger amigável e vários componentes Flex otimizados que minimizam a quantidade de código escrito manualmente.
Quando perguntamos sobre um case típico que use o Clear Toolkit e os problemas que ele resolve, Fain continuou:
Primeiro, o Clear Toolkit pode ser usado para iniciar um projeto corporativo de Flex/Java e então nossos componentes Flex inteligentes simplificam o ato de monitorar modificações de dados executados pelo usuário, oferecer um trabalho mais conveniente em relação aos grids e forms e automatizar a sincronização da dados de aplicações Adobe AIR ocasionalmente conectadas. Nós também temos relatórios Web, CLearBI que permite aos usuários finais criar seus próprios relatórios sem a necessidade de qualquer software que não seja um Web Browser como o Flash Player. O ClearBI será transformado em OpenSource ainda neste ano.
De acordo com o Fain, o Clear Toolkit atualmente inclui os seguintes elementos
- Clear Data Builder, que é um plugin para Eclipse que permite gerar aplicações CRUD para BlazeDS ou LCDS baseados tanto em uma declaração SQL ou em um Data Transfer Object Java.
- DTO2Fx, que é um plugin que automaticamente gera as classes ActionScript baseadas em seus correspondentes Java.
- Log4Fx é um Plugin do Eclipse construído sobre a API de log do Flex, mas que automatiza e torna o processo de log mais flexível e amigável ao usuário.
- Fx2Ant é um plugin que gera scripts ANT otimizados para projetos do Flex Builder
- O clear.swc é uma biblioteca de componentes Flex avançados.
Ele explica:
Já que a maioria dos componentes do Clear Toolkit podem ser usados 'a lá cart', eles podem vir a calhar em praticamente qualquer projeto Flex. Se você precisa de um logger avançado, basta usar o Log4Fx. Se você que melhorar as classes de validação de dados e processamento de formulários, adicione o clear.swc ao build path do projeto. Se você ainda é permitido a usar SQL, utilize o Clear Data Builder para geração de CRUD. Se você não, forneça os DTOs java e gere o front-end completo, incluindo o mecanismo para comunicar ao servidor, as alterações da camada de UI. O Clear Toolkit é uma ajuda para todos aqueles clientes que por várias razões decidiram usar o componente de servidor open source BlazeDS ao invés do bundle LiveCycle Data Services. Nós acreditamos que o BlazeDS é um componente robusto e bem desenhado que pode ser utilizado em várias aplicações corporativas sérias.
Com respeito a liberação em open source do Clear Toolkit, Fain compartilhou:
Durante os dois últimos anos nós estivemos oferecendo os componentes do Clear Toolkit gratuitamente no www.myflex.org. Depois de um tempo nós percebemos que, embora nossa empresa empregue excelentes engenheiros de software, há apenas alguns de nós e não se pode vencer o poder de raciocínio de centenas de desenvolvedores. Nós escrevemos tanto código que o Clear Toolkit pode se tornar uma plataforma sólida para o desenvolvimento de RIA sem a necessidade de roubar um banco. Nós convidamos desenvolvedores Flex e Java do mundo todo para participar e tornar o Clear Toolkit a plataforma open source preferida.
Fain acrescentou:
Já que agora é um projeto open source, eu só posso dizer como a Farata Systems planeja contribuir em 2009:
- Documentar a solução de sincronização de dados para aplicações AIR/BlazeDS. Nós já criamos uma aplicação demo e descrevemos esta solução em nosso futuro livro Enterprise Development with Flex, mas agora precisamos converter este texto em documentação de produto.
- Melhorar os componentes Flex UI para suportar geração de PDF no cliente.
- Documentar as classes do Clear component library (clear.swc)
- Tornar Open source o Web reporter ClearBI.
Em adição ao que Fain compartilhou com o InfoQ, ele forneceu uma visão geral dos componentes do framework no InsideRIA. Para aqueles que tem que lidar com problemas de sincronização de dados como qualquer arquitetura estilo client server, a funcionalidade mais interessante do framework é o suporte para monitoração de atualizações client side no Flex e sincronizá-las com o servidor Java.
Se você está familiarizado como o LCDS, você sabe que o Data Management Services usa o Change Object, que é DTO especial que é usado para propagar as mudanças entre o servidor e o cliente. Nosso componente também inclui esse objeto, mas ele pode ser usado não somente com o LCDS mas também com o BlazeDS.
...
A classe DataCollection automaticamente registra todas as alterações feitas pelo uso da UI e envia uma coleção das instâncias correspondentes do ChangeObject para o servidor.
...
Quando o usuário está pronto para enviar as mudanças ao servidor, a seguinte linha irá enviar a coleção de instâncias do ChangeObject para o servidor: collection.sync();
O Clear Toolkit está disponível sob a licença do MIT, que significa que você pode usar nosso código em sua aplicação desde que você mantenha os comentários dizendo que a Farata Systems é o criador original do código. Os últimos builds e o código fonte do Clear Toolkit 3.1 estão localizados em http://sourceforge.net/projects/cleartoolkit/. A documentação atual, demos, fóruns de usuários e bug trackers estão relacionados neste site.