Quase 3 anos atrás tivemos um cliente que utilizava: PHP e Active Server Pages (ASP), nada de errado nisto, a não ser o fato de ele querer adicionar suporte a Workflow e BPM na sua estrutura. Eis então que criamos uma infraestrutura baseada em REST.
Passado este tempo, percebi que vários clientes ainda buscam soluções similares a estas, eis então que resolvemos deixar essa solução pública e opensource. Esta solução, demos o nome de Flowlet . A idéia do flowlet é criar uma API através de URIs para máquinas de processos, neste caso, a primeira implementação foca no JBoss jBPM.
Nesse meio tempo, você não acredita que ao migrar de máquina, eu simplesmente perdi uma grande parte das últimas melhorias que vinha fazendo com o passar do tempo no Flowlet, por isto, em breve isto estará no GitHub(assim como eu aprender como usa essa droga direito) e por segurança, também no GoogleCode (SVN). Uma vez perdidos, como o leite derramado, não adianta chorar, então voltei a adicionar algumas coisas, agora utilizando algumas novas boas práticas de REST que surgiram nos últimos tempos, além do RestEasy 2.0-GA .
Motivação do Flowlet
Você precisa acessar uma API de processos/workflow, porém você quer fazer isso de qualquer linguagem Web, ou mesmo através de Widgets que podem ser expostos em Portlet cotainers. Então, por que não pensar em coisas como:E
Estas URIs, podem ser acessadas de qualquer página, dispositivo móvel, e dependendo da requisição, podemos até especificar retornos específicos com a mídia requisitante (exemplo: JavaScript solicita um CSV text/plain, IPhone um XML ).
Executando
O Flowlet é empacotado num .war file, e basta você fazer um deploy deste arquivo em algum servidor de aplicações que contenha o jBpm instalado e em execução. Um exemplo deste servidor, é o JBoss ESB 4.9 Server, que já traz um JBPM Server instalado.
Modelo de Execução
O esquema de execução do flowlet é super simples, na verdade temos uma classe Java, que deveremos estar melhorando gradativamente seu uso, para oferecer cada vez mais recursos, mas hoje por exemplo, já podemos:
Iniciar um Processo
Sinalizar na Instância do Processo
Iniciar Tarefas de uma Instância do Processo
Adicionar variáveis ao Processo
etc
Tudo isto é feito apenas com o uso da API do JBPM, e nada impede de no futuro, criarmos outras APIs para um BonitaBPM ou até outros motores.
Veja algumas operações:
Interface de entrada do Flowlet
Na interface acima, você tem algumas dicas de como usar as URIs disponíveis, uma coisa que estou bolando, é clicar e uma Interface ser aberta como modal, onde o usuário possa entrar com os parâmetros e aí executar os métodos.
Resultado do Processamento em text/plain
Acima você pode ver o resultado de uma das operações, que mostra apenas todos os processos e suas versões, e quando foram instalados, poderiamos ter uma “Negociação de Conteúdo”, que caso eu enviasse que meu cliente prefere o retorno em JSON, eu posso passar uma informação no Header HTTP (Accept: application/json), e automaticamente o RESTEasy me busca o método que responde a esta URI e que aceita este tipo de resposta.
Dashboard customizável oferecido dentro do Flowlet
Com a ajuda do meu amigo Bruno Pereira, que conhece bastante os truques de JavaScript, consegui disponibilizar uma interface para geração de Gráficos que podem servir de Dashboards mais “elegantes” para o JBPM, mas pode ser que você também possa querer extendê-los e criar os seus. Obrigado Bruno pela ajuda!
Próximos passos?
Interessado no Flowlet? Hoje é domingo, não consegui muito tempo para fazer o upload dos sources, mas assim que tiver tempo, eles estarão de alguma forma no GitHub.
Outra coisa, o Flowlet funciona para o JBPM 3.2.x, isto porquê a versão 4 do JBPM não será “produtizada”, apenas a nova versão que será a 5.0, que deverá ser lançada ano que vem.
Acompanhe as novidades no meu twitter: @jedgarsilva
O FISL11 (Forum Internacional de Software Livre), aconteceu em Porto Alegre dos dias 20 a 24 de Julho, fiquei pelo stand da Red Hat, e conversando com um monte de pessoas, estas coisas são boas em eventos, pelo menos revemos vários amigos.
Para diversão de vários congressistas, tinhamos um Wii em nosso stand, ele chegou a gerar várias filas para jogar:
Mas nada fez mais sucesso que os sorteios que fizemos na quinta e sexta-feira:
Hoje as 09:00 da manhã, tive a chance de falar um pouco sobre REST com Java para uma sala bem lotada, desde já obrigado a todos que foram.
Focamos muito na parte de “Negociação de Conteúdo”, executando o mesmo path (/servico/path/dele) para diferentes possíveis clientes, por exemplo: Um browser, ou IPhone por exemplo. Sem falar nas novidades do RestEasy 2.0 GA, entre elas a API JavaScript para integração com JQuery ou mesmo acesso JavaScript puro.
Meus amigos que acompanham este blog, visando tornar o uso do JBoss EPP 5.0 mais simples, além de mostrar algumas de suas funcionalidades, criamos vários vídeos sobre o mesmo, hospedados no Vimeo.
Vale lembrar, que tudo que fizemos no Enterprise Portal Platform 5.0, também serve para o Gatein, então, não fique com a idéia que os vídeos limitam você como usuário destas tecnologias. No post anterior, expliquei um pouco da grande diferença destas soluções.
Já existem vários vídeos do EPP 5.0, mas decidi criar algumas coisas com dicas em nossa língua mãe: Português, a seguir o resultado deste trabalho:
Instalando o JBoss EPP 5.0 ou GateIn (mesmo procedimento)
Utilização Básica de Portlets Existentes
Registrando novos Widgets e Gadgets
Desenvolvendo seu Primeiro Portlet Java com EPP/Gatein
Adicionando suporte a JQuery em Portlets
Adicionando suporte ao JQuery / Lightbox ao seu Portlet
Adicionando o suporte do Twitter ao JBoss EPP 5.0
Espero que todos gostem, e estou fazendo o máximo para conseguir tempo livre para criar e divulgar estes vídeos, a próxima série de vídeos, estamos planejando abordar:
Gestão de Conteúdo com o Add-On: JBoss Site Publisher (eXo WCM)
Há duas semanas a Red Hat lançou oficialmente a sua nova versão corporativa da solução de portal JBoss, oficialmente chamado de JBoss Enteprise Portal Platform 5.0, ou até mais simples EPP5.0 . Este pequeno post, irá explicar um pouco da estratégia JBoss Enteprise para este segmento de tecnologia.
Como isto começou?
Como tudo da Red Hat, começou na comunidade, com a antiga versão de nossa solução de portais chamada ainda como JBoss Portal. Para clientes com necessidade de missão crítica, SLA, customizações e serviços, a Red Hat disponibilizava a plataforma JBoss Enteprise Portal Platform versão 4.3, esta por sua vez, já possuia fantásticos recursos de integração(WSRP, PortletBridge, SSO, Workflow), além de uma notável facilidade na customização. Porém a demanda de novos clientes e projetos, exigia que tivessemos uma nova solução pro mercado, eis então que surgiu uma grande parceria com a empresa francesa EXO Platform.
EXO: A Motivação
A eXo é uma empresa que segue os mesmos princípios da JBoss/Red Hat, ou seja: Democratizar o conhecimento através de soluções opensource, entretanto, muito mais focados em soluções de Portais e Colaboração. EXO e Red Hat, chegaram a um acordo de unirem suas soluções de portais, naquele momento: EXO Portal e JBoss Portal, dando origem a um novo produto comunitário: GateIn, que nada mais é que o merge de 2 projetos de Portais Java 100% opensource.
Tudo começa na comunidade
O JBoss Community é o nosso centro de pesquisa, inovação e desenvolvimento das tecnologias que várias pessoas utilizam no seu cotidiano, embora algumas destas pessoas estejam a cargo de aplicações de extrema missão crítica, cuja as empresas para as quais elas trabalham estejam extremamente preocupadas não só com tecnologias inovadoras, mas também com estabilidade, garantia de continuidade, suporte, serviços, treinamento oficial etc, de um fornecedor confiável, na qual elas possam atender e suprir suas necessidades de negócio; este é um momento então que a Red Hat realiza todo um trabalho de amadurecimento, QA, teste de performance, certificações de bancos de dados, sistemas operacionais, JVMs etc, é aí que o GateIn deixa de ser apenas um projeto opensource, para ser um produto de nível corporativo, para conseguir ser comparado a qualquer outra oferta de portal de outros fornecedores proprietários.
GateIn vs EPP
O GateIn é o produto comunitário, aberto, que qualquer um pode baixar e usar, no entanto o suporte também é comunitário, e sem garantias. Já o JBoss EPP (Enterprise Portal Platform) é um produto feito com base no GateIn, porém com vários testes, certificação e com todo o suporte e garantia da Red Hat.
Lembrando, que a Red Hat, não vende licença do EPP, e sim a subscrição, que em resumo é uma assinatura de benefícios para os clientes, entre eles:
Suporte 0800 e Web
SLA de até 24X7
Garantia de Continuidade de Suporte de 5 a 7 anos
Flexibilidade de versões (use versões novas ou anteriores da solução)
Correções de Bugs
Binário Enterprise (resultado do QA,Testes do binário comunitário)
Patches de Segurança, Corretivos e Performance
Docuementação Oficial e Corporativa
etc
O JBoss EPP atende muito bem a cenários onde integrações via Portlets, SSO, Portlet Bridge, Multipele (Skinability), porém as novidades não param aí.
JBoss Enterprise Portal Platform Site Publisher
“Pois nem só de Portlets viverá um Portal Container”, em alguns casos de uso, precisamos gerenciar conteúdos, seja através de usuários finais, ou vários jornalistas separados geograficamente etc, para os clientes que tiverem estas necessidades, a Red Hat oferece um produto adicional ao EPP, que é o Site Publisher, que é a versão corporativa do produto da Exo chamado de WCM. Com o Site Publisher, nós saímos da esfera de atender apenas integração através de Portais e Portlets e entramos no nicho de Enterprise Content Management - ECM.
Colaboração Importa
Você deve estar se perguntando, onde mais poderiamos contribuir para facilitar seus projetos de Portais? A resposta é que além de toda a infra para Portais, WCM/ECM, através dos módulos de colaboração da eXo, você pode obter módulos que podem lhe ajudar na colaboração de pessoas dentro da sua empresa.
A Exo oferece uma série de módulos adicionais, para facilitar a sua vida quando a demanda for “Colaboração”, entre estes módulos:
eXo Collaboration - Email, Chat, Catálogo de Endereços
eXo Social - Espaço para Pessoas (Rede Social), Comunidade, Atividades etc
eXo Knowledge - Forum, FAQ
eXo Workflow - Melhore seu Workflow de Aprovações através de BPM com uso do jBPM.
eXo DMS - Gestão de Documentos voltado para cenários de GED.
Informações
Em breve vou adicionar alguns vídeos de instalação, uso, desenvolvimento com uso do JBoss EPP, então fique atento no meu twitter (@jedgarsilva) para acompanhar as novidades que estão por vir. Se você quiser saber mais, envie um e-mail para info-br (no email da) redhat.com ou através do telefone: 11 3529-6000 (Vendas).
Que correria esta semana, segunda BH, terça Brasilia, quarta Rio, e só hoje consegui arrumar um tempo antes de ir pro meu Jiu-Jitsu para escrever esse post de agradecimento, então quem já viu um monte de obrigado no Twitter, aqui via mais um: Muito obrigado! Vocês foram fantásticos! Gostaria usar um outro advérbio de intensidade, mas não é tão polido
Eu tenho que ser muito grato ao departmento de Marketing da Red Hat, a meu atual chefe: Alejandro Chocolat pelo apoio incondicional para levar ao público as novidades e assuntos que com certeza vão estar presentes muito breve no cotidiano de muitas empresas e projetos. Eu não vou esquecer, o apoio e profissionalismo da Land do Brasil.
Desde os tempos do Soujava, eu ajudava de alguma forma nos eventos, se eu já admirava meu amigo Bruno, depois de ter trabalhado na organização do JBossInBossa, eu o admiro mais ainda, pois tentamos fazer nada mais do que um evento de qualidade, como ele sempre de costume entregou para a comunidade Java, só quem passa por isso, entende o trabalho que dá.
Em alguns momentos, nos irritamos, brigamos, o aborrecimento é alto em combinar as atividades do cotidiano, família, trabalho etc, mas o importante é que no final deu tudo certo, e eu estou muito feliz, mas feliz mesmo com toda a repercussão do evento.
Abaixo, veja, por exemplo a avaliação dos palestrantes:
Resposta
Absoluto
%
Ótimo
55
73%
Bom
19
25%
Regular
1
1%
Ruim
0
0%
Então o que dizer? Apenas que o evento foi realmente sensacional. Contando com 3 palestrantes internacionais e com várias personalidades da comunidade Java nacional, sem falar no time JBoss da Red Hat do Brasil, falando apenas de tecnologia, quem viu a apresentação do Ricardo Ferreira de BRMS(Guvnor)/Teiid , a da Flávia Rainone com JEE6 no JBoss AppServer, as do Pete Muir, toda a parte de WCM/Portal com o Benjamin, o XSeam com o Benevides e Lazarotti, além do controle do WII simulando o batimento cardíaco da parte de CEP(Complex Event Processing) do Salatino e Porcelli, e sem falar de todos os Workshops de sexta-feira, realmente, todos os palestrantes de parabens!
Lições
Temos muito que melhorar no evento, e não vamos esquecer disso, uma das coisas que comentei com meus colegas do time de JBoss é que ano que vem: Eu gostaria que outras pessoas no nosso time JBoss da Red Hat tomassem a frente do projeto do Evento do ano que vem , afinal de contas, o mais difícil é o primeiro, agora, com o sucesso graças ao apoio de todos que foram, twittaram, comentaram e até xingaram :), o evento está ai, como um sucesso, agora é um caminho sem volta.
Apenas que esperamos realizar um evento ainda maior no ano que vem, com mês de Março como sendo o já agendado para o mesmo.
Vamos ter um processo de inscrição muito melhor, com nossa aplicação sendo executada num “cloud” com todo o suporte e infra que precisamos para facilitar todas as operações que precisamos, e dessa vez até trabalhando mais próximo com nossa fornecedora de meios de pagamento, trazendo assim maior comodidade para todos. Quem sabe, não vamos para outras cidades também? Aí eu não sei, eu gostaria desta vez, estar no público, e aplaudindo esse time composto pela comunidade como público e pelos meus colegas, dos quais, não tenho palavras pra descrever o meu orgulho em trabalhar com eles.