Diseño E Implementación De Un Motor De Reglas Dinámicas Usando Especificaciones Genexus”
Total Page:16
File Type:pdf, Size:1020Kb
UNIVERSIDAD DE LA REPÚBLICA Facultad de Ingeniería InCo - Instituto de Computación “Diseño e implementación de un motor de reglas dinámicas usando especificaciones GeneXus” Tesis de Maestría presentada por Luciano Silveira Tutor M.Sc. Juan José Prada Informe Montevideo, Uruguay - 2010 Resumen Las organizaciones poseen un conjunto de políticas que utilizan como fundamento para operar. Por lo general las reglas de negocio definen estas políticas, las prácticas y los procedimientos que se deben de llevar a cabo para satisfacer los objetivos del negocio. Las reglas de negocio no son estáticas; las empresas que continuamente ajusten sus procesos y reglas en respuesta a las condiciones de negocio cambiantes estarán mejor preparadas para afrontar las demandas del mercado y expectativas de los clientes. En los últimos tiempos, ha tomado fuerza la idea de diseñar y administrar estas restricciones y políticas (representadas como reglas de negocio) en forma independiente de los procesos del negocio y aplicaciones, de tal forma que los cambios en restricciones, reglas y políticas empresariales puedan ser especificados en forma independiente por un analista del negocio sin necesidad de modificar las aplicaciones. Un motor de evaluación de reglas de negocio provee capacidades de este estilo, donde las políticas empresariales se declaran a un nivel de abstracción acorde al analista de negocio. Un motor toma estas definiciones y a partir de los datos recibidos, ejecuta las acciones que indiquen las reglas. Se logra una mayor agilidad y transparencia llevando a las empresas a mejorar la modularidad y accesibilidad de sus reglas y políticas empresariales, al separar éstas de los procesos empresariales y de la lógica de presentación. Desde sus orígenes, GeneXus ha tomado como fundamento la representación abstracta de la realidad, la utilización de reglas de negocios en forma declarativa, y el automatismo para la generación de soluciones. Estos son los pilares sobre los que se basa para acompasar el permanente proceso de cambio tecnológico y de negocios. Este trabajo desarrolla un prototipo en donde las reglas de negocio pasan a ser un objeto en sí mismo dentro del entorno de desarrollo GeneXus. Aquellas reglas de negocio que tengan un alto impacto en la toma de decisiones y sean factibles de cambiar frecuentemente, se administran en forma externa a la aplicación debido a que las principales funcionalidades de una aplicación no necesariamente cambian al mismo ritmo que los procesos de negocio. Se diseña un lenguaje de dominio específico personalizable a nivel del experto del negocio para facilitar el entendimiento y que el experto tenga la posibilidad de modificar dichas reglas. Las reglas de negocio se administran en forma independiente de la aplicación, y se proporciona un editor de reglas para que el experto del negocio tenga la posibilidad de realizar las modificaciones necesarias en el propio entorno de ejecución. Además, se utilizan motores de evaluación de reglas de negocio existentes como mecanismo de ejecución de las reglas definas. Palabras clave: regla de negocio, GeneXus, lenguaje de dominio específico. Abstract Organizations usually define a set of policies which are used as a basis to run their business. Business rules define these policies, the procedures and practices that must be carried out to meet the business objectives. Business rules are not static; those enterprises which continually adjust their processes and rules as a response to changing business conditions will be better prepared to meet market demands and customer expectations. In recent times, the idea of designing and managing these restrictions and policies (modeled as business rules) independently from business processes and applications core functionality has gained strength. This means that changes in restrictions, regulations and corporate policies can be specified in an independent way by a business expert without the need to modify existing applications. A business rules engine provides these capabilities, in which corporate policies are declared at an abstraction level specification depending on the business analyst. A dedicated rule engine takes these definitions as input to execute the actions specified by the high-level rules. Consequently, greater agility and transparency is achieved, thus leading companies to an improvement of modularity and accessibility of its business rules and policies by decoupling these restrictions from the existing processes and presentation logic. Since its conception, GeneXus has based its approach on an abstract representation of reality, on the use of business rules declaratively, and the automation to generate business solutions. These are the foundations on which GeneXus is based to keep abreast with the continuous process of technological and business change. This dissertation develops a prototype in which the business rules become an object per se within the GeneXus Development Environment. Those business rules, which have a high impact on decision making and which may change frequently will be managed outside the application because the core application functionality may not necessarily change at the same pace as the business processes. A dedicated high-level business rule language is designed to enable the business expert to understand and define high-level rules. This decouples the business rules from the application core and a rule designer is provided to enable the business expert to make the necessary changes in the execution environment. In addition, existing business rules engines are used as a framework for executing the defined business rules. Keywords: business rule, GeneXus, domain-specific language. Índice general 1. Introducción1 1.1. Motivaciones y problemas........................1 1.2. Propuesta.................................2 1.3. Objetivos.................................4 1.4. Cronograma................................5 1.5. Organización del documento.......................7 2. Estado Del Arte9 2.1. Introducción................................9 2.1.1. Los Comienzos..........................9 2.1.2. Sistema Experto......................... 11 2.1.3. Actualidad............................. 11 2.2. Desafíos del Enfoque BRA........................ 12 2.3. Fundamentos............................... 13 2.4. Uso de Reglas de Negocio........................ 14 2.5. Definición de Regla de Negocio..................... 15 2.5.1. Término.............................. 16 2.5.2. Hecho............................... 17 2.5.3. Evento............................... 17 2.5.4. Regla................................ 17 2.5.5. Analogía Reglas de Negocio versus Cuerpo Humano...... 18 2.5.6. Clasificación de alto nivel de Reglas............... 19 Regla de Restricción....................... 20 Regla de Producción....................... 20 Regla de Inferencia........................ 21 2.6. Formas de implementar Reglas de negocio............... 21 2.7. Arquitectura................................ 22 2.7.1. Base de Reglas.......................... 23 2.7.2. Agenda.............................. 23 2.7.3. Memoria de Trabajo....................... 24 2.7.4. Comparación de Patrones.................... 24 2.7.5. Reseña Algorítmica........................ 24 2.7.6. Resolución de Conflictos..................... 26 2.7.7. Motor de Inferencia........................ 27 2.7.8. Tipos de Motores......................... 28 Encadenamiento hacia adelante................. 28 Encadenamiento hacia atrás................... 29 i 2.8. Base Teórica................................ 30 2.8.1. Deducción, Inducción, Abducción................ 31 2.8.2. Razonamiento Monótono versus No-Monótono......... 32 2.8.3. Universo Cerrado versus Universo Abierto........... 32 2.9. Mercado.................................. 33 2.9.1. IDC................................ 34 2.9.2. Forrester Research........................ 34 2.9.3. Gartner.............................. 37 2.9.4. Criterios de búsqueda en Internet................ 38 Búsqueda “Business Rules Engine”............... 39 Búsqueda “BRMS”........................ 40 2.9.5. Movimiento de Productos.................... 41 2.10. Estándares................................. 42 2.10.1. RuleML.............................. 43 2.10.2. RIF................................ 43 2.10.3. SBVR............................... 44 2.10.4. PRR................................ 44 2.10.5. JSR-94............................... 44 2.10.6. OWL y OWL 2.......................... 45 2.10.7. OCL................................ 46 2.11. Lenguajes Comerciales.......................... 46 2.11.1. RL................................. 46 2.11.2. SRL................................ 47 2.11.3. DRL................................ 47 2.11.4. JessML.............................. 48 2.11.5. BAL................................ 48 2.11.6. IRL................................ 48 2.11.7. JenaRules............................. 49 2.12. Revisión de Herramientas........................ 50 2.12.1. Herramientas Open Source.................... 50 Drools............................... 50 Clips................................ 51 NxBRE.............................. 51 RuleBy............................... 51 Jena................................ 51 2.12.2. Herramientas Comerciales.................... 52 Oracle Rules Engine....................... 52 Jess................................ 52 InRule............................... 53 Microsoft Business Rules Engine................. 53 Blaze Advisor........................... 53 WebSphere ILOG JRules..................... 54 Rules for