Este post no blog é a primeira parte de uma série sobre motores de regras de negócios. Neste post, iremos abordar os seguintes tópicos:
História dos motores de regras de negócios: Sistemas Baseados em Regras
O que são regras de negócios?
Motores de regras de negócios
Sistemas de gerenciamento de regras de negócios
Quando e por que você precisa de um motor de regras de negócios?
Arquitetura em alto nível de um motor de regras de negócios convencional
As 3 fases de inferência em motores de regras
Etapa 1: A Fase de Correspondência
Etapa 2: A Fase de Seleção
Etapa 3: A Fase de Execução
Conclusão
Veja Oscilar em ação, agende uma demonstração
Esta é a primeira parte da nossa série de blogs sobre motores de regras de negócios modernos. Leia esta série para aprender o básico e os detalhes de como tudo funciona, se você precisa disso e por quê.
História dos motores de regras de negócios: Sistemas Baseados em Regras
Um sistema baseado em regras (RBS) é um modelo de computação amplamente usado no campo da Inteligência Artificial (IA) para modelar processos de raciocínio e resolução de problemas humanos em áreas de tarefas específicas. Sistemas baseados em regras usam regras de condição-ação ou se-então, como sua unidade básica de computação e empregam programação declarativa. A sequência de operações não é pré-especificada em um RBS. Em vez disso, o fluxo de controle depende da avaliação frequente do estado atual do sistema, representado por um conjunto de fatos. A computação prossegue aplicando as regras em uma sequência determinada por esses fatos e conclui com a ação final recomendada.
Este post no blog descreve um sistema baseado em regras chamado motor de regras de negócios, quando e por que você precisa de um, e sua arquitetura em alto nível.
O que são regras de negócios?
Regras de negócios resultam em verdadeiro ou falso e têm a forma de condições e ações correspondentes. Elas são baseadas em políticas, regulamentos, contratos e melhores práticas e descrevem operações e restrições que se aplicam aos negócios. Seu principal objetivo é afirmar políticas de negócios que ajudam a controlar o comportamento e os resultados da empresa.
As regras de negócios são usadas para resolver uma variedade de problemas, que vão desde decisão de fraude e risco até políticas de TI e segmentação de marketing.
Usar regras se-então é uma abordagem natural para modelar a tomada de decisão humana e habilidades de resolução de problemas, além de representar conhecimento. Hoje em dia, as regras de negócios se tornaram onipresentes com uma ampla gama de aplicações em vários domínios, a saber:
Avaliação de risco e outras estratégias de precificação
Originação de empréstimos, propensão a pagar, recuperação
Estratégias de segmentação
Aprovação de sinistros de seguros e fraudes relacionadas
Valor de empréstimos, limites de crédito e mais
Motores de regras de negócios
Um motor de regras de negócios (BRE) é um componente de software em um sistema maior de gerenciamento de regras de negócios (BRMS) que permite que não programadores adicionem, editem ou alterem a lógica de negócios, decisões operacionais ou políticas da empresa. Estas são definidas, testadas, executadas e mantidas separadamente do código da aplicação.
Sistemas de gerenciamento de regras de negócios
Um sistema de gerenciamento de regras de negócios (BRMS) é construído em torno de um motor de regras de negócios e automatiza a tomada de decisão em todos os processos de negócios de uma organização. BRMS atuam como um depósito central para regras e oferecem capacidades de colaboração e análise. Um BRMS é usado para definir, redistribuir, executar, monitorar e gerenciar regras de negócios e lógica de decisão.
Sistemas modernos de gerenciamento de regras de negócios são acessíveis tanto para administradores de TI quanto para usuários de negócios, com recursos como desenvolvimento de regras sem código e engenharia de dados automatizada.
Quando e por que você precisa de um motor de regras de negócios?
O melhor uso dos motores de regras de negócios é quando são aplicados a problemas sem solução algorítmica óbvia.
Aqui estão algumas razões para modelar problemas como regras:
O problema não é bem compreendido de início
Regras são adequadas para problemas complexos onde não há soluções algorítmicas óbvias, ou quando o problema não é totalmente compreendido.
A lógica muda frequentemente
A lógica em si pode ser simples, mas muda frequentemente. Em muitas organizações, os lançamentos de software são raros e espaçados e as regras podem ajudar a fornecer agilidade de forma relativamente segura.
Integração de dados é necessária para a lógica
Regras de negócios frequentemente exigem operação sobre dados ou fatos que estão frequentemente fragmentados em várias fontes de dados internas e externas. O acoplamento apertado de lógica e dados relacionados reduz a eficiência e causa duplicação, pois os dados precisam ser integrados várias vezes sempre que a lógica é aplicada.
Velocidade e escalabilidade
Motores de regras empregam vários algoritmos de correspondência de padrões bem testados e amplamente implantados. Eles fornecem maneiras muito eficientes de corresponder padrões de regras aos seus dados, aumentando assim a velocidade e a escalabilidade das decisões.
Centralização do conhecimento
O uso de regras cria um repositório central de conhecimento, ou uma base de conhecimento, que é bem compreendida e explicável. Serve como um único ponto de verdade para políticas de negócios e decisões relacionadas. Idealmente, as regras são legíveis o suficiente para servirem como documentação.
Especialistas em domínio ou analistas de negócios estão facilmente disponíveis
Especialistas em domínio frequentemente possuem uma vasta quantidade de conhecimento sobre regras e processos de negócios. Regras permitem que eles expressem lógica de decisão sem precisar escrever código de aplicação.
Arquitetura em alto nível de um motor de regras de negócios convencional
A memória de produção armazena a lista de regras.
A memória de trabalho armazena a lista de fatos necessários pelas regras.
O motor de inferência executa a correspondência de padrões para executar a regra selecionada.

As 3 fases de inferência em motores de regras
Em um nível alto, o motor de inferência em motores de regras de negócios realiza iterativamente as seguintes operações:

Etapa 1: A Fase de Correspondência
Todas as regras são comparadas aos fatos atuais na memória de trabalho. Este processo é chamado de correspondência de padrões de regra. Cada par ordenado de uma regra e o subconjunto de fatos que satisfazem as condições é uma instanciação—também chamada ativação—da regra. Todas as ativações de regras são enumeradas para formar o conjunto de conflitos.
O processo de comparar regras aos fatos atuais na memória de trabalho é chamado de correspondência de padrões de regra. Em contraste com o reconhecimento de padrões—reconhecendo padrões e semelhanças nos dados—a correspondência de padrões significa que a correspondência geralmente precisa resultar em um valor booleano de correspondência/não correspondência.
Motores de regras empregam vários tipos de algoritmos de correspondência de padrões, como Rete, Linear, Treat, Leaps. O algoritmo Rete é um popular algoritmo de correspondência de padrões e se tornou a base para alguns dos motores de regras mais populares, incluindo Drools. A eficiência foi um foco central no desenvolvimento do algoritmo Rete, projetado para sacrificar memória por mais velocidade. Em teoria, o desempenho do Rete é independente do número de regras no sistema, sendo assim muitas vezes mais rápido em comparação com implementações ingênuas.
Etapa 2: A Fase de Seleção
Na fase de Seleção, uma única ativação de regra do conjunto de conflitos é escolhida para execução. Esta fase também é chamada de resolução de conflitos, e o critério predefinido para selecionar a regra a ser executada é chamado de estratégia de resolução de conflitos. Esta fase produz a regra selecionada resultante.
Etapa 3: A Fase de Execução
As ações especificadas na regra selecionada são executadas. Elas podem alterar o conteúdo da memória de trabalho. Ao final desta fase, a fase de correspondência é executada novamente.
Existem dois métodos de execução para um motor de regras: Encadeamento Progressivo e Encadeamento Regressivo; sistemas que implementam ambos são chamados Sistemas de Encadeamento Híbrido. A maneira como as regras são agendadas para execução é uma característica chave que diferencia os vários tipos de motores de regras.
Encadeamento Progressivo: Encadeamento progressivo é o tipo predominante de motor de regras. Em resumo, este tipo de motor de regras começa com os dados e faz o raciocínio até a resposta. Eles começam com os dados ou fatos disponíveis e usam regras de inferência—uma função que toma premissas, analisa sua sintaxe e retorna uma conclusão(s)—para extrair mais fatos até que um objetivo seja alcançado.
Existem dois tipos de motores de regras de encadeamento progressivo:Produção/inferência: que têm a forma de lógica se-então
Reativo: que têm a forma de evento → condição → ação ou lógica 'quando-então'
Encadeamento Regressivo: Encadeamento regressivo, como o nome sugere, é o oposto do encadeamento progressivo. Enquanto o encadeamento progressivo começa com dados e trabalha a partir daí, o encadeamento regressivo começa com uma lista de objetivos (ou uma hipótese) e trabalha de trás para frente para ver se algum fato apoia os objetivos ou uma hipótese.
Conclusão
Embora os motores de regras de negócios tenham se tornado onipresentes com uma ampla gama de aplicações em vários domínios, eles podem ser exagerados para certos casos de uso. Eles são uma abstração poderosa quando aplicados corretamente e permitem que um público mais amplo—que não escreve código—resolva problemas chave de negócios que vão de políticas de TI, gerenciamento de riscos a políticas regulatórias e segmentação de marketing.
Neste post, passamos por tudo sobre motores de regras de negócios convencionais. Parte 2 da série de blogs abordará um motor de regras de negócios popular chamado Drools. O blog final desta série abordará motores de decisão modernos e o que falta nos motores de regras de negócios convencionais.