Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo:

Ter uma visão geral do que são regras de negócio e quais suas aplicações, entendendo como podemos implementá-las no Drools Expert. Nesse artigo foi criado um exemplo simples que foi analisado e compreendido.


Para que serve:

Definir regras de negócio de forma mais natural e declarativa, possibilitando a criação de aplicações mais dinâmicas. A utilização do Drools Expert é o primeiro passo para a utilização da plataforma Drools completa, o que pode trazer ainda mais vantagens.


Em que situação o tema é útil:

No desenvolvimento de sistemas baseados em regras complexas que de outro jeito seriam desenvolvidas programaticamente em Java, assim como no desenvolvimento de sistemas para mercados muito dinâmicos, onde regras mudam com frequência.

JBoss Drools 5:

Regras de negócio definem o comportamento das organizações. O Drools Expert é um motor de regras que pode ser utilizado para implementar essas regras. Para utilizá-lo é preciso conhecer a API Drools e a linguagem Drools (DRL). A API Drools utiliza arquivos DRL para criar instâncias de motores de regras, nos quais podem ser inserir fatos, que vêm a disparar regras.

A Tecnologia da Informação tem um mercado muito grande como área meio, basta ver a quantidade de fábricas de software e vendedores de soluções existentes. Como área meio, TI tem o objetivo de prover vantagem competitiva às organizações, automatizando tarefas manuais, tornando processos mais seguros e auditáveis, melhorando a comunicação com outras organizações e/ou clientes através de portais B2B/B2C, por exemplo.

Sistemas criados com esse objetivo estão ligados intrinsecamente ao negócio da organização. Mas organizações são dinâmicas, respondem às mudanças de mercado. Cabe então à TI responder rapidamente a essas mudanças e manter o alinhamento entre TI e negócio, o que pode significar estar à frente da concorrência ou não.

Regras de negócio são parte integrante do negócio das organizações: Quem é elegível a empréstimos? Quanto custa o seguro de um determinado carro? Essas são perguntas difíceis e devem ser respondidas com base em um conjunto de informações, observando-se um conjunto de políticas e práticas da organização.

Para estimar quanto vale o seguro de vida de uma pessoa, deve-se, por exemplo, levar em conta o índice de desenvolvimento humano da região onde ela mora, o seu sexo, sua idade, histórico de doenças hereditárias, etc. Com essas informações uma seguradora chega a um valor levando em conta o risco de ter que indenizar o segurado versus o lucro que deseja obter. Problemas complexos como este devem considerar muitas informações, o que torna o sistema um intrincado de lógica de negócio e fatalmente engessado, mas essas considerações podem mudar de acordo com pressões do mercado e as empresas devem estar preparadas para reagirem rápido a isso.

Plataforma JBoss Drools

Existem, no mundo da tecnologia da informação, softwares que ajudam a responder a esses tipos de perguntas difíceis de forma flexível e dinâmica. Os chamados motores de regra (Business Rules Engine ou BRE) avaliam informações de acordo com regras de negócio previamente definidas.

A JBoss oferece uma plataforma de lógica de negócio chamada JBoss Drools, que possui uma implementação de motor de regras. O projeto teve sua primeira versão lançada em 2001, estando na versão 5, e, embora tenha começado com foco em regras de negócio, hoje abrange outros conceitos, como Processamento de Eventos Complexos (Complex Event Processing ou CEP) e workflows.

O JBoss Drools não deve ser confundido com o JBoss Rules, que é a versão comercial do Drools, um projeto da comunidade. O JBoss Rules é baseado em uma versão do Drools sabatinada pela equipe de qualidade da Red Hat, a qual dá suporte ao produto via consultoria e abertura de chamados.

Com o Drools é possível programar regras de negócio declarativamente, separar e centralizar as regras de negócio de um sistema, e gerenciar regras alterando-as e versionando-as dinamicamente. Além disso, é uma plataforma criada pensando-se em performance e escalabilidade, aspectos que de outra forma precisariam ser tratados “na unha” pelos desenvolvedores.

O JBoss Drools é atualmente dividido em cinco subprojetos:

Drools Guvnor: sistema de gerenciamento de regras (Business Rule Management System ou BRMS) que permite a organização, versionamento, verificação e edição de regras;

Drools Expert: motor de regras da plataforma que executa regras de negócio dado um conjunto de fatos;

Drools Flow: motor de processos da plataforma que possui uma forma de integração com as regras de negócio;

Drools Fusion: motor de processamento de eventos complexos (Complex Event Processing ou CEP), que é uma forma de regra de negócio que leva em conta aspectos temporais e streaming de eventos;

Drools Planner: para a resolução de problemas usando heurísticas que retornam resultados considerados “o melhor possível” para problemas que não possuem uma solução algorítmica definitiva.

Neste artigo vamos abordar como regras de negócio podem ser implementadas com o auxílio do JBoss Drools, mais especificamente, com o Drools Expert. Em seguida veremos algumas funcionalidades do Drools Guvnor e como ele complementa o Drools Expert.

Exemplo prático

Nesse artigo iremos analisar um exemplo “hello world” que vem por padrão na IDE da JBoss. A IDE corporativa da JBoss é o JBoss Developer Studio, mas utilizaremos o JBoss Tools, que é a versão da comunidade e vem na forma de um plugin do Eclipse. O JBoss Tools dá suporte aos vários produtos da JBoss, como o servidor de aplicação JBoss, o Seam, o Hibernate, o jBPM, o ESB e o Drools.

Primeiro é preciso instalar o Eclipse 3.5.2 e adicionar o plugin do JBoss Tools, que pode ser instalado através do update site http://download.jboss.org/jbosstools/updates/stable/galileo/. Precisaremos também baixar e descompactar os binários do JBoss Drools.

Uma vez que temos nosso ambiente de desenvolvimento, criaremos um projeto exemplo que vem por padrão no JBoss Tools e analisar como ele é estruturado. Por comodidade, vamos trabalhar na perspectiva do Drools. Criamos o projeto acessando File > New > Drools Project, que irá mostrar um wizard no qual nomearemos o projeto DroolsTest e aceitaremos as configurações padrão. A primeira vez que o wizard for executado será preciso configurar a localização das bibliotecas do Drools. Dessa forma, no passo “Drools Runtime” basta clicar em ...

Quer ler esse conteúdo completo? Tenha acesso completo