É cada vez mais claro que a nuvem está se tornando uma solução mais atraente quando se fala em reduzir o Time-to-Market e desenvolvimento rápido de aplicações. Porém em determinados momentos não há como simplesmente esquecer conceitos do passado e em alguns momentos reinventar a roda. Com base nessa necessidade, a equipe do OpenShift está lançando a solução xPaaS, que reúne alguns serviços para desenvolvimento de aplicações mais avançados. Neste post, falarei um pouco sobre a solução.

A Solução xPaaS

A solução xPaaS é um conjunto de features adicionais agregadas ao OpenShift que permite utilizar em suas aplicações conceitos já utilizados atualmente dentro da nuvem. Tais conceitos, como BPM e EAI, rodam como aplicações dentro do OpenShift permitindo assim integrar os sistemas através de padrões de arquitetura EAI, orquestração de serviços utilizandos processos e regras e fazer deploy em ambientes híbridos.
O OpenShift xPaaS possui até o momento os serviços iPaaS, BPMaaS e mPaaS. O que eles são e para que serve? Tentarei explicar nas próximas seções.

O serviço base ou o serviço de container de aplicações

Desde o início, o OpenShift oferece Servidores de Aplicações Java (como JBoss, Tomcat e outros) para desenvolvimento de aplicações. Sem dúvida, esses servidores são essenciais já que hospedam suas aplicações. A partir daí, o desenvolvimento cria as aplicações corporativas utilizando a especificação Java EE onde define as APIs necessárias tais como persistência, transação e outros.


Aplicação Kitchensink rodando no cartridge JBoss EAP
Mais informações você pode encontrar em https://www.openshift.com/developers/jboss

iPaaS: Integração como um Serviço

Geralmente, em uma empresa, há diversas aplicações para agilizar o fluxo de trabalho de departamentos internos da empresa porém é necessário que essas aplicações interajam entre si afim de melhorar a eficiência deles sem reinventar a roda. Para isso, os padrões EAI facilitam a integração entre sistemas utilizando princípios arquiteturais.

Fuse no OpenShift

Além de integração, há também uma necessidade de se integrar diversas fontes de dados para o ecossistemas de aplicações de uma empresa. Uma vez que há diversas formas de se armazenar dados, sempre há um problema para juntar informações que vêm de várias fontes e com isso criou-se o conceito de Data Virtualization. Esse conceito trata de juntar todas as fontes de dados em uma base de dados virtual, criando-se um único ponto de acesso  para as informações vindas de diversas fontes de dados.
O OpenShift oferece um cartucho chamado Data Virtualization que consiste em criar uma instância de Teiid (mais informações sobre o projeto Teiid em http://teiid.jboss.org/) e assim poder criar um ponto único de acesso a diversas fontes. A integração pode ser feita via IDE Eclipse utilizando os plugins do JBoss Tools ou utilizando o JBoss Developer Studio.

Eclipse executando uma instância de Teiid rodando no OpenShift

Você pode encontrar mais informações sobre o Fuse em https://www.openshift.com/developers/jboss-fuse/getting-started e sobre o Teiid/Data Virtualization Platform  em https://www.openshift.com/developers/jboss-data-virtualization/getting-started

BPMaaS: Processos de negócio como um Serviço

Apesar de o desenvolvimento de código para criar aplicações é a forma mais clássica da computação de se facilitar processos das áreas da empresa. No entanto, certas áreas possuem regras de negócio mutáveis que inviabiliza o desenvolvimento de código dado o esforço de se alterar as regras a qualquer momento. Para isso, existe o conceito de Business Rules Management (Gerenciamento de Regras de Negócio) que permite que o analista de neǵocios possa criar e alterar as regras de negócio de forma mais prática e rápida através de uma linguagem simples e sem necessitar de alterações no código da aplicação.
O projeto Drools (http://drools.jboss.org/) permite esse tipo de lógica e vai além: é possível também criar fluxos de negócio para serem integrados a aplicações e com isso criar um ambiente de BRM para regras de negócios mutáveis.

Criando um Fluxo de Negócio com o Cartucho BPMS

O OpenShift utiliza o Drools através do cartucho JBoss BPM Suite, que também adiciona BAMs (Business Activity Monitoring ou Monitoramento de Atividade de Negócios) para que sejam gerados dashboards que monitora como estão os dados gerenciais que permite tomar decisões mais certeiras a respeito do negócio.

Tela de BAM do JBoss BPMS no OpenShift

Mais informações sobre o JBoss BPM Suite pode ser encontrada em https://www.openshift.com/developers/jboss-bpms/getting-started

mPaaS: Plataforma de Mobilidade como um Serviço

Uma das tecnologias que têm sido cada vez mais adotada é a Mobilidade, ou seja, aplicações corporativas criadas para Smartphones e/ou Tablets. Um dos desafios dessa tecnologia é criar aplicações que rodam sem dificuldade em diversas plataformas Mobile, o que dificulta o desenvolvimento. Para isso, há um conceito chamado de Mobile Web onde é possível criar aplicações que podem rodar em qualquer plataforma, uma vez que a aplicação é desenvolvida utilizando as tecnologias W3C (HTML, CSS e Javascript). Mas e quando é necessário utilizar conceitos nativos do SO Mobile? Aí é necessário desenvolver a aplicação sob o conceito de aplicações Híbridas em que a partir do código cria um pacote nativo para determinada plataforma Mobile.
Ok, mas e se eu precisar fazer algum tipo de comunicação Push nas minhas aplicações Mobile? O OpenShift possui o cartucho Aerogear Push Server que gerencia todos os provedores de Push para assim criar um ponto único de comunicação entre as diversas implementações de Push como o Google Cloud Messaging, Apple Push Network, etc.

Aerogear Push Server no Openshift

Para maiores informações sobre o Aerogear, veja em https://www.openshift.com/quickstarts/aerogear-push-0x. O Aerogear Push Server é parte do projeto Aerogear, que pode ser encontrado em http://aerogear.org/.

Conclusão

O OpenShift cresce cada vez mais e com mais aplicações e plataformas disponíveis para uso.  O xPaaS é uma das plataformas que eu particularmente acho mais promissora dada a variedade de serviços corporativos envolvidos. Quem quiser conhecer mais sobre o xPaas, pode ver em https://www.openshift.com/xpaas. Até o próximo post.