Este post é apenas uma dica. Ontem, um amigo me questionou sobre como ele poderia facilitar a manutenção de regras de negócio que, apesar de simples, são alteradas com muita freqüência no seu projeto. Ele não conhecia rules engines, tampouco sabia que a SAP, no Composition Environment, disponibilizou a Business Rules Management (BRM).
BRM é um mecanismo de processamento que permite que business experts declarem e gerenciem regras de negócio sem ter de programá-las numa linguagem imperativa. Essencialmente, este ambiente encapsula e desacopla as regras das aplicações que as utilizam, provendo um conveniente grau de flexibilidade.
Isolar as regras de negócio das aplicações, permite que business experts e os autores das regras façam atualizações de forma dinâmica sem quaisquer alterações nas demais aplicações ou processos.
Particularmente, acredito ser um recurso bastante útil para regras que representam fórmulas, cálculos e classificações, por exemplo. Nada mais que isso, creio. Recentemente, identifiquei algumas situações onde essa solução se encaixaria e uma delas é a definição de Specifications.
Specification é um conceito que ganhou a “menção honrosa” de pattern depois que Domain-Driven Design se alastrou rapidamente em sites, blogs e fóruns. Contudo, podemos dizer que Specification é algo utilizado para testar se um objeto satisfaz a um critério. Verificar se um cliente tem direito a um desconto diferenciado, por exemplo.
A maioria das engines provê recursos que facilitam bastante o dia-a-dia de quem escreve/mantêm as regras, tais como: DSLs, IDEs e recursos de avaliação como Decision tables (que te livra de escrever uma montanha de if-then).
Apesar de ser mais utilizada para controlar o fluxo de processos executáveis (BPM), as regras podem ser invocadas de dentro de outras aplicações, através de uma casca EJB ou Web Service.
Finalizo com uma pergunta sobre o maior impeditivo na tentativa de alcançar os reais benefícios desse tipo de solução: Quantos consultores e business expert estão capacitados nesse tipo de recurso?
Arquivado em: Desenvolvimento de Software, Design Patterns, Dicas, J2EE, SAP NetWeaver | Etiquetado: ddd, Java, rules engines, SAP, sap brm, sap business rules management, SAP NetWeaver
Hi,
this is eddai, i’m managing sapdocs.info site.
i have yet come across your site, i try to collect all sap sites on my social.sapdocs.info site.
also added yours to http://social.sapdocs.info/portugese-sap-blogs/
hope u dun mind ?
cheers~