Diseño E Implementación De Un Motor De Reglas Dinámicas Usando Especificaciones Genexus”

Total Page:16

File Type:pdf, Size:1020Kb

Diseño E Implementación De Un Motor De Reglas Dinámicas Usando Especificaciones Genexus” 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
Recommended publications
  • Genexus 7.0 Installation Manual
    Installation Manual Copyright ARTech Consultores S.R.L. 1989-2000. All rights reserved. TABLE OF CONTENTS INTRODUCTION ............................................................................................................0 A NOTE FOR ALL GENEXUS CORPORATE USERS ................................................1 GENEXUS CORPORATE TUTORIAL...........................................................................1 REQUIREMENTS ...........................................................................................................2 GETTING STARTED......................................................................................................4 SETUP OPTIONS ...............................................................................................................4 SHOULD I KEEP MY EARLIER GENEXUS CORPORATE VERSIONS? ......................................5 CONVERTING GENEXUS CORPORATE APPLICATIONS FROM DOS TO WINDOWS ...............5 CONVERTING MODELS FROM PRIOR GENEXUS CORPORATE FOR WINDOWS VERSIONS TO GENEXUS CORPORATE VERSION 3.0............................................................................5 AUTHORIZE GENEXUS CORPORATE WITH PROTECTION 2000 ON 5 STEPS.........................6 Authorize GENEXUS CORPORATE 3.0 (and 2.1) ...........................................................6 GENEXUS CORPORATE STANDALONE SETUP ......................................................9 SETUP WIZARD................................................................................................................9 HAVING MORE THAN
    [Show full text]
  • Quick Reference
    GeneXus: Quick Reference GeneXus: Quick Reference Basics GeneXus is the first intelligent tool for automatically creating, developing and maintaining multi-platform, mission critical applications that can be easily adapted to changes in the business and the new opportunities provided by technological evolution. GeneXus X is the most outstanding version in the constant evolution of GeneXus; it is designed to facilitate the expansion of business knowledge to Web 2.0 and enable companies and developers to keep up with the pace of innovation. • GeneXus is a powerful, multi-platform software design and development tool that enables truly incremental development of business critical applications. Supported Technologies • GeneXus generates 100% of the application based on your user requirements, providing programming-free, automatic maintenance of your application’s database and application Platforms programs. Execution Platforms • GeneXus supports the leading execution platforms and languages, and the most popular JAVA, Microsoft .NET, Pocket PC DBMS. Operating Systems • GeneXus X allows developers to declare more than ever before, so that they can focus on IBM OS/400, LINUX, UNIX, the business and expand their talent. Windows NT/2000/2003 Servers, • Windows NT/2000/XP, and GeneXus X was designed to boost developer productivity even further, GeneXus X is Windows Mobile much easier to use and learn. GeneXus X incorporates new features such as a Wiki editor Internet and multi-user environment, which facilitate the integration of the entire work team. JAVA, ASP.NET, Visual Basic (ASP), HTML, WebServices Key Features Database Management Systems Knowledge-based design IBM DB2, Informix, Microsoft SQL Server, MySQL, Oracle, PostgreSQL Intelligent data model design.
    [Show full text]
  • Olaf Reitmaier Veracierta Resume
    OLAF REITMAIER VERACIERTA Cloud Solutions Architect & Full Stack Software Developer s +58-424-153.20.89 _ [email protected] 5 https://www.olafrv.com + Caracas, Venezuela (German Citizenship) S U M M A R Y I N D U S T R Y E X P E R T I S E Computer engineer with over 12 years of experience in leading Architecture / Pre-Sales / Service Delivery and executing successful conversions of complex requirements into open source, Linux based, hybrid and multi-cloud enabled technical solutions, built using own datacenters, public cloud Infrastructure / Systems Operations (SysOps) services and custom software developments, working with on/off-shore multi-disciplinary teams, while reporting to C-level stakeholders for projects valued between $2,5K and $3,5M. AWS/Azure *aaS Hands On & Scripting In my free time, I am also devoted German husband and Development Operations (DevOps) beloved father of one girl. Full Stack Software Development (Linux based) E D U C A T I O N BS in Computer Engineering Networking & Cyber Security GPA r Simón Bolívar University (www.usb.ve) 1999 - 2005 3.86 / 5 + Caracas, Venezuela L A N G U A G E S E X P E R I E N C E German (A1) Beginner Cloud Solutions Architect & Full Stack Software Developer English (C1) Proficient Freelance (Per Hour) r 01/2017 - Ongoing + Internet Design, deploy, configure, scale up/out and maintain cloud native solutions Spanish (C2) Native for a small but diverse group enterprises using AWS and Microsoft Azure Chief Solutions Architect M Y T I M E Dayco Telecom, C.A.
    [Show full text]
  • Genexus JAVA Generator
    GeneXus JAVA Generator Latest Update: 2009 GeneXus JAVA Generator Copyright Artech Consultores S. R. L. 1988-2009. All rights reserved. This document cannot be reproduced by any means without the explicit consent of Artech Consultores S.R.L. The information contained in this document is for personal use only. Registered Trademarks Artech and GeneXus are trademarks or registered trademarks of Artech Consultores S.R.L. All other trademarks mentioned in this document are the property of their respective owners. Page 1 GeneXus JAVA Generator GeneXus JAVA Generator ............................................................................................ 3 Execution in Multiple Tiers ..................................................................................... 3 Deployment Wizard ............................................................................................... 4 Application Servers ............................................................................................... 4 Servlet Generation ................................................................................................ 4 GeneXus and J2EE ...................................................................................................... 5 1. EJB (Enterprise Java Beans) ............................................................................... 5 2. EAR Deployment Wizard .................................................................................... 5 3. JTA (Java Transaction API) ................................................................................
    [Show full text]
  • Gxplorer Overview
    GXplorer Overview Latest update: 2009 GXplorer Overview Copyright Artech Consultores S.R.L. 1988-2009. All rights reserved. This document may not be reproduced in any form without the express permission of Artech Consultores S.R.L. The information contained herein is intended for personal use only. Trademarks Artech, GeneXus and GXplorer are trademarks or registered trademarks of Artech Consultores S.R.L. All other trademarks mentioned herein are property of their respective owners. Page 1 GXplorer Overview Table of Contents GXPLORER ................................................................................................................ 3 KEY FEATURES ........................................................................................................... 3 Automatic Maintenance ............................................................................................ 3 Multi-platform ......................................................................................................... 3 Intelligent Data Warehouse Creation .......................................................................... 3 Quick Results .......................................................................................................... 3 KEY BENEFITS ........................................................................................................... 5 Integrated into Microsoft Excel .................................................................................. 5 Intuitive and User-friendly .......................................................................................
    [Show full text]
  • Manual Gxpublic
    GXpublic 9.0 Manual December 2005 INTRODUCTION ...................................................................................................................... 5 TECHNOLOGY .............................................................................................................................. 5 USEFULNESS ............................................................................................................................... 5 INSTALLATION AND REQUIREMENTS............................................................................ 6 CONNECTION ........................................................................................................................... 6 GUIDE......................................................................................................................................... 6 GXPUBLICFACTORY ..................................................................................................................... 7 TABLES ....................................................................................................................................... 7 TABLE: MODEL............................................................................................................................ 7 TABLE: OBJECT ........................................................................................................................... 8 TABLE: TABLE ............................................................................................................................. 9 TABLE: INDEX ..........................................................................................................................
    [Show full text]
  • Generator Visual Foxpro 9.0 Release Notes UPGRADE
    Generator Visual FoxPro 9.0 Release Notes UPGRADE # 3 Corrected Errors • SAC # 18591 - Problems with event triggering order If a user event is defined in a work panel and no control is associated with the Enter event, the user event first executes the Load event and then executes the user event. • SAC # 21617 - "Unknown member ..." hiding column (variable) of a grid There is a work panel with 2 grids on it. If a variable "X" is visible, then it works fine. But if it is hidden the above mentioned error is displayed. • SAC # 22038 - Excel sheets cannot be opened once generated with GeneXus An Excel sheet is created using the ExcelDocument data type. If the sheet is shown using the Show method, it cannot be opened again from Excel after closing it. When using Office 2007, it can never be opened from Excel regardless of whether the Show method is used or not. • SAC # 22216 - IsValid is executed when executing a user event If a user event is executed through a button in a wkp form, the isValid programmed on variables are also executed. • SAC # 22602 - Scroll disabled in Varchar noaccept control A Varchar or Longvarchar control is added to a Work Panel but it is not accepted. At execution time, even though the scroll button is displayed, it is not enabled and the field's content cannot be viewed in its entirety. • SAC # 22733 - Change of focus behavior in Work Panel with grid There is a common Work Panel with a grid containing attributes, variables and filter fields for it.
    [Show full text]
  • Genexus Fact Sheets
    Fact Sheet GeneXus™ Copyright Ó GeneXus S.A. 1988-2020. All rights reserved. This document may not be reproduced by any means without the express permission of GeneXus S.A.The information contained herein is intended for personal use only. Registered Trademarks: GeneXus is trademark or registered trademark of GeneXus S.A. All other trademarks mentioned herein are the property of their respective owners. Contents ABOUT US 3 GENEXUS™ SUITE 3 GENEXUS™ 16 4 COMMUNITY 4 CUSTOMERS 4 BUSINESS PARTNERS - GENEXUS™ DISTRIBUTORS 5 GENEXUS™ SOLUTION PARTNERS 5 STRATEGIC PARTNERS 6 COMPANY HISTORY 6 OUR OFFICES 9 ON THE WEB 9 CONTACT 9 2 About us GeneXus is a leader in the field of software development tools for agile software, based on capturing and managing knowledge of both users and customers. The company was founded in 1988 and is headquartered in the capital city of Uruguay: Montevideo. Apart from its branches in Brazil, Mexico, Japan and the U.S., GeneXus has official distributors in +50 countries of Asia, Europe and the Americas. GeneXus™ Suite GeneXus is the first intelligent tool for developing applications and systems that enables the automatic creation, development and maintenance of programs, databases and mission critical applications in multiple languages and on different platforms. All applications created with GeneXus can be easily adapted to changes in businesses, as well as to the new possibilities that technological progress brings along. GeneXus’ main objective is to simplify system development by allowing the automation of everything capable of being automated. For this purpose, GeneXus creates, based on an intelligent knowledge base, a representation of applications, regardless of the technology involved, which enables the automatic generation of applications in multiple environments (servers, PCs, mobile devices and the Cloud) and languages (Ruby, Java, C#, Objective-C, Cobol, RPG, Visual FoxPro, among others).
    [Show full text]
  • Brochure GX-Lowquality-ES-2011
    GeneXus es un poderoso software, basado en conocimiento puro, para el desarrollo automático de aplicaciones Genera el 100% de los programas y los mantiene en forma automática. GeneXus permite crear aplicaciones en tiempos muy reducidos, para la plataforma o tecnología que necesite: pc, web y smart devices. Miles de clientes en todo el mundo usan GeneXus para desarrollar complejas aplicaciones de misión crítica con extensas bases de datos y altos regímenes transaccionales. Con GeneXus su organización puede desarrollar aplicaciones de misión crítica basadas en su propio y exclusivo “know-how” del negocio, independientemente de la plataforma elegida. | Tecnologías Reduzca su “time-to-market” Plataformas ¡Convierta su conocimiento del negocio en aplicaciones de misión crítica, en tiempo récord! Plataformas de Ejecución Java/J2EE, .NET, .NET Compact Framework, Ruby, iSeries, iOS, etc. • Valide sus requerimientos en la etapa de diseño, a través de prototipos 100% funcionales. Sistemas Operativos • Genere su base de datos y programas en la plataforma de su preferencia (.NET, IBM OS/400, LINUX, UNIX, Windows NT/2000/2003/2008 Servers, Java/J2EE, etc). Windows NT/2000/XP/Vista/7, Windows Mobile, Blackberry OS, • Cuando sus requerimientos cambian, GeneXus realiza un análisis de impacto y Google Android, iOS y Windows Phone. propaga automáticamente los cambios. Internet Java/J2EE, ASP.NET, CGI, HTML, Web Services, Ruby. Invierta sus recursos eficientemente! Sistemas de Gestión de Base de Datos • Diseñe y desarrolle los sistemas que necesita hoy. IBM DB2, Informix, Microsoft SQL Server, Microsoft SQL Server CE • Agregue nuevas funcionalidades a medida que evolucionan sus necesidades. (Compact Edition), MySQL, Oracle, PostgreSQL. Concéntrese en su negocio Lenguajes Utilice el “know-how” exclusivo de su organización para desarrollar aplicaciones de misión crítica Java/J2EE, C#, Ruby, COBOL, RPG, Visual Basic, Visual FoxPro.
    [Show full text]
  • Foxpro If Statement Example
    Foxpro If Statement Example Avraham repaper his cleanser occurred extrinsically, but mainstreamed Claude never pitapatting so uselessly. Burliest Irvin narrates his Alma-Tadema aluminize joltingly. Torry is newest: she glister seriously and dures her Tripitaka. Pearson automatically open dialog keeps appearing every if statement uses an expensive operation The pan five statements aren't executable code but may tell the C compiler that simply may. Here is an example of midnight a report out to key text file using the ASCII. I am building a led in foxpro and I am getting hung naked on one tray of it I said trying to create array if statement for either following foxpro expression DisplayValC. How Do I decide A Foxpro Table Using C CodeProject. The statements to convert name and fitness for each product that includes all records from on disk file name, used to jump to. The syringe example creates a Visual FoxPro connection named Northwind and. From a little need to keep in data entry for example, they update and analytics applications requiring a secondary output. The examples used in similar data. To foxpro evaluates to. Since no second user cannot cool a lock until the offset is released, which declare not specific from within Query Designer, and conditional execution are the fundamental building blocks of programming. If statement if one or create report, foxpro digital game call to be on sql examples of words, regardless of moisture. Programmatically when used together with SQL statements that are passed directly. Bonus for example of if statement in other. Visual-foxpro Logical operators visual-foxpro Tutorial.
    [Show full text]
  • Getting Started with Genexus 9.0
    Getting Started with GeneXus 9.0 Latest Update: 2009 Getting Started With GeneXus 9.0 Copyright Artech Consultores S.R.L. 1988-2009. All rights reserved. This document may not be reproduced in any form without the express permission of Artech Consultores S.R.L. The information contained herein is intended for personal use only. Trademarks Artech and GeneXus are trademarks or registered trademarks of Artech Consultores S.R.L. All other trademarks mentioned herein are property of their respective owners. Page 1 Getting Started With GeneXus 9.0 Introduction ......................................................................................................................................... 3 System Requirements ............................................................................................................................ 3 SQL Server 2005 Express Edition .......................................................................................................... 4 GeneXus Generators Requirements ....................................................................................................... 6 GeneXus Trial Version ............................................................................................................................ 8 Trial Version Restrictions ..................................................................................................................... 8 License Restrictions ...........................................................................................................................
    [Show full text]
  • Installation Manual
    ™ GENEXUS Installation Manual Copyright Ó ARTech Consultores 1988-1999. All rights reserved. Table of Contents INTRODUCTION ............................................................................................................ 1 A NOTE FOR ALL GENEXUS USERS ........................................................................... 2 GENEXUS TUTORIAL...................................................................................................... 2 GETTING STARTED...................................................................................................... 3 SETUP OPTIONS ............................................................................................................... 3 SHOULD I KEEP MY EARLIER GENEXUS VERSIONS? ......................................................... 4 CONVERTING GENEXUS APPLICATIONS FROM DOS TO WINDOWS .................................. 4 What files can be deleted once the conversion has been carried out? ....................... 6 CONVERTING MODELS FROM PRIOR GENEXUS FOR WINDOWS VERSIONS TO GENEXUS VERSION 6 EVOLUTION 1 ................................................................................................. 7 COPY PROTECTION SCHEME............................................................................................ 7 REQUIREMENTS ......................................................................................................... 11 GENEXUS STAND-ALONE SETUP .............................................................................. 13 USING GENEXUS AUTHORIZER
    [Show full text]