Reglas de Negocio

Reglas de negocio en aplicaciones sobre la plataforma Java empresarial. Juan Carlos García González Dirigido por: Ing. J

Views 70 Downloads 0 File size 347KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Reglas de negocio en aplicaciones sobre la plataforma Java empresarial. Juan Carlos García González Dirigido por: Ing. José Luis Alonso Ochoa Resumen En la actualidad ha aumentado la demanda de aplicaciones informáticas en el marco empresarial, por lo cual la industria de software debe garantizar que las aplicaciones brinden alta calidad y rendimiento. En el Grupo de Ingeniería de Software y Tecnologías de la Información GISTI se ha alcanzado experiencia en el desarrollo de software especialmente sobre la plataforma Java 2 Enterprise Edition (J2EE). A partir de esta experiencia se destaca el hecho de que el proceso de mantenimiento de los sistemas desarrollados y principalmente en la capa de lógica de negocio resulte ser mucho menos productivo y ágil que en el resto de las capas que componen los sistemas empresariales. En este artículo se presenta una nueva metodología para el desarrollo de la capa de lógica de negocios de aplicaciones de softwares así como se describen las herramientas necesarias para la aplicación de esta nueva metodología. Palabras clave: Reglas de negocio.

INTRODUCCIÓN Actualmente los procesos de negocios son soportados por tecnologías de información, como puede ser un software de gestión o una aplicación con fines empresariales. Partiendo de esta situación se puede afirmar que la capa de lógica de negocio es la que generalmente tiende a variar, esto se debe al importante proceso de mantenimiento a que son sometidos todos los sistemas de gestión, ya que necesariamente presentan constantes cambios en los procesos de negocio. En esta capa de lógica de negocio se encuentran codificadas las políticas o reglas que definen el negocio, las cuales deben ser reflejadas en el comportamiento de la aplicación. Políticas que por lo general se encuentran enterradas en el código fuente de la capa de lógica de negocio de la aplicación. Otro aspecto importante es que, en ocasiones, los equipos de desarrollo encargados del mantenimiento del software no son los mismos que implementaron la aplicación, lo cual provoca demora a la hora de aplicar los cambios, lo que influye de forma negativa en la eficiencia y rendimiento del equipo de desarrollo. Por citar un ejemplo se puede mencionar el Sistema de Gestión de la Nueva Universidad (SIGENU), proyecto creado por un equipo del grupo de investigación y desarrollo GISTI del CEIS en la CUJAE y realizado sobre la plataforma J2EE, utilizando el paradigma MDA [1-3],

lo cual, sin duda alguna, ha constituido un valioso aporte en cuanto a agilidad de trabajo y codificación. La capa cliente fue concebida en ambiente desktop haciendo uso del paquete Swing. La llamada capa del lado del servidor, en la que se agrupan las capas de acceso a datos y de lógica de negocio, ha sido desplegada en un servidor de aplicaciones JBoss [4] y para ella ha utilizado el framework EJB2 [5]. Durante la implementación del proyecto, se ha evidenciado que la capa de lógica de negocio ha sido sin margen a error, la más costosa en cuanto a tiempo de respuesta ante un cambio en las políticas de negocio en el proceso de mantenimiento. LAS REGLAS DE NEGOCIO Las reglas de negocio permiten definir las condiciones para establecer un negocio o de qué forma se controlará el comportamiento de los eventos dentro de este. Muy importante resulta establecer los pasos que se deben seguir para alcanzar las metas y objetivos del mismo. Tomando como base el planteamiento anterior se puede afirmar que las reglas de negocio son de vital importancia, si estos negocios son soportados por aplicaciones de tecnologías de la información. Es por esto que hace más de una década se ha ido produciendo un acercamiento a las reglas de negocio como un nuevo enfoque para definir los procesos de negocio. De aquí han surgido importantes organizaciones como es el grupo de reglas de negocio o BRG1 o la comunidad de reglas de negocio. Como resultado final se ha obtenido una nueva metodología o enfoque de desarrollo basada en reglas de negocio, así como numerosos conceptos, definiciones, técnicas y herramientas relacionadas con el tema. CONCEPTOS O DEFINICIONES En el entorno de las reglas de negocio no existe una definición estándar del término regla de negocio. En este trabajo se presenta la definición redactadas por el grupo de reglas de negocio o BRG, la cual es la más utilizada por los expertos en el tema: “una regla de negocio es una declaración que define u obliga un cierto aspecto del negocio. Con éstas se pretende imponer la estructura del negocio o controlar o influenciar el comportamiento del 1

Del inglés Business Rules Group

50

negocio”. Luego se definen las reglas de negocio como el sistema de condiciones que gobiernan que un evento de negocio ocurra de una manera permitida. Es decir, un evento en el negocio fracasa cuando no puede cumplir las reglas establecidas para un evento exitoso. Los líderes del negocio determinan la diferencia entre un exitoso y un infructuoso evento de negocio, de aquí se extraen las reglas que definen todas las posibles y permitidas condiciones de éxito de un evento de negocio, junto con las que no son permitidas [6]. Cumplir una regla, es ejecutar una o más acciones debido al cumplimento de una o varias condiciones previamente definidas. Se puede definir una regla de negocio como una regla que está bajo el dominio de un negocio, el cual puede definir, modificar, y descartar reglas de negocio cuando sea necesario. Las reglas se encargan de la definición y control del proceso de negocio en una organización, lo que es muy importante, todo software ya sea empresarial o no, está definido en gran parte por reglas [7]. Las reglas de negocio se centran a menudo en asuntos como el control de acceso, por ejemplo el proyecto SIGENU el cual es un software de gestión docente que puede tener la siguiente política de acceso a la información: Permite a los profesores entrar y modificar los registros de los estudiantes que toman las asignaturas que ellos imparten, pero no los registros de los estudiantes en otros seminarios. Definición de los planes de estudio solo puede ser realizada por los vicedecanos docentes. Baja docente de tipo definitiva solo puede ser revocada por la secretaría docente general de la universidad. Las reglas de negocio pueden también definir operaciones computacionales del negocio, por ejemplo, cómo convertir la calificación en forma de puntos (91 puntos) que recibe un estudiante en una evaluación a una calificación en grado de letra (A -). También existen reglas de negocio que se centran en las políticas de la organización como puede ser la política de una universidad que establece separar por un año al estudiante que desaprueba más de dos asignaturas en el mismo semestre [8]. Las reglas de negocio se identifican principalmente durante el transcurso de la captura y análisis de requisitos. También durante el modelado de casos de uso se pueden identificar reglas de negocios. Una buena regla de negocio es cohesiva, es decir, describe solamente un concepto. Asegurándose de que las reglas de negocio sean cohesivas, se hacen más fáciles de definir y aumenta la probabilidad de que sean reutilizadas, cada vez que uno de los artefactos del sistema se refiere a una regla de negocio, incluso otras

reglas de negocio, se están reutilizando correctamente. Según lo antes mencionado las reglas de negocio deben centrarse en un solo concepto, en ocasiones en una aplicación se deben identificar gran cantidad de reglas. Por lo cual es recomendable que las reglas de negocios deban estar separadas de los demás artefactos de la captura de requisitos ya que pueden ser referenciadas desde dentro de los artefactos, como pueden ser casos de usos o diagramas de colaboración. En ocasiones se definen las reglas de negocio dentro de los casos de usos, lo cual se puede transformar en una tarea compleja, además se debe considerar que una misma regla puede ser referenciada en más de un caso de uso [8]. ¿CUÁNDO Y POR QUÉ UTILIZAR REGLAS APLICACIÓN?

DE NEGOCIO EN UNA

En los sistemas de gestiones actuales la parte más compleja radica en la lógica de negocio, aquí se encuentran los requerimientos funcionales y de comportamiento, lo cual resulta una complicada implementación de la capa lógica de negocio. La forma más común de implementar la misma ya sea en aplicaciones J2EE [9] o no, es escribiendo código que cumpla con los requerimientos establecidos por la lógica y reglas de negocio. Lo que da como resultado un complejo código, provocando que el mantenimiento y actualización de la aplicación sean arduas tareas [10]. Cuando se está ante una aplicación que presenta una compleja lógica de negocio y que puede variar con bastante frecuencia, ya sea por demandas de los clientes o por otros factores externos; y se necesita que estos cambios se reflejen en el comportamiento de su aplicación en el menor tiempo posible, se debe considerar el empleo de las reglas de negocio para modelar y administrar la lógica de negocio de la aplicación [11]. El uso de las reglas de negocio como parte de la lógica de negocio de aplicaciones se debe a los constantes cambios en los negocios, por varios factores que pueden ser: Orientar el negocio hacia nuevos mercados. Introducir nuevos productos. Cumplir con nuevas regulaciones o políticas administrativas. Creación de nuevos acuerdos con los clientes o los suministradores. Cambios en los objetivos o metas del negocio. Una aplicación basada en reglas de negocio es ágil; con una arquitectura concebida intencionalmente para el cambio continuo en la lógica de decisión. Las reglas de negocio son el medio para representar las decisiones que el negocio debe tomar. Las decisiones deben ser confiables, detectables, y auditadas. Para lograr eso, se necesita construir servicios de decisión que sean altamente reutilizables, manejables y flexibles. Los motores de reglas 51

de negocio son la tecnología ideal para alcanzar esas metas. Un sistema construido según el enfoque de las reglas de negocio tiene muchas ventajas sobre otros sistemas. Sin embargo, dado el empuje del comercio electrónico y el potencial de Internet para los negocios, la ventaja más importante es que un sistema de reglas de negocio esté diseñado para acomodar fácilmente cambios en el negocio con una mínima alteración del sistema y en el menor tiempo posible. Entre las ventajas de incorporar reglas de negocio a la aplicación se pueden destacar: Programación declarativa: Las reglas permiten decir qué hacer y no cómo hacerlo. La ventaja de este aspecto radica en que las reglas hacen más fácil expresar las soluciones de difíciles problemas y por tanto poder verificar esas soluciones. Las reglas son más fáciles de leer y entender que el código por parte del personal del negocio. Separación de los datos y la lógica: Esto se refiere a que los datos están en los objetos de dominio del negocio y la lógica está en las reglas de negocio. Siendo así, la lógica de negocio puede ser mucho más fácil de entender, mantener y enfrentar posibles cambios en el futuro, pues toda la lógica está representada en las reglas. Conocimiento centralizado: Usando reglas, se crea un repositorio de conocimiento que permite verificar la política de negocio por todo el personal del negocio. Idealmente las reglas son tan legibles que pueden también servir como documentación. Simplicidad. La metodología de las reglas de negocio es simple de entender, tanto para el personal del negocio como para el personal técnico. El concepto de una regla es muy intuitivo, incluso cuando se tiene varias clasificaciones de reglas. El personal del negocio puede no estar interesado en modelos de datos, modelos de procesos, o modelos de objetos, pero están absolutamente interesados en las políticas y reglas del negocio, ya que son las que guían el negocio [6]. Pequeño número de conceptos necesarios, no técnicos. Hay algunos conceptos alrededor de una regla, como son: decisiones, patrones de reglas, familias de reglas, y las cláusulas de una regla. Una decisión es simplemente una agrupación lógica de reglas. Las reglas se pueden agrupar en los patrones de reglas para propósitos de análisis, basados en similares cláusulas en las reglas. Estos patrones de reglas se pueden agrupar en familias de reglas que resultan en una salida similar y

además, las reglas contienen una o más cláusulas comunes [6]. Facilita el desarrollo de la aplicación. Básicamente el experto en reglas define las reglas y estas se ejecutan en aras de satisfacer las necesidades de la aplicación, sin necesidad de modificar el código fuente u otros aspectos técnicos de la aplicación [6]. Reutilización de reglas. Una vez declaradas las reglas, no solo pueden ser utilizadas por la aplicación, también pueden ser reutilizadas por ejemplo, por sistema gestores de base de datos u otros tipos de software. Para lograr esto se debe utilizar un sistema de administración de reglas de negocio o se puede diseñar un sistema propio, que agrupe las reglas de forma lógica y puedan ser reutilizadas y compartidas [6]. Reglas dinámicas. Esta ventaja está dada por la posibilidad de cambiar un sistema de reglas de negocio fácilmente. Un experto en reglas puede cambiar una o varias reglas a la vez, y tener ese cambio disponible al servicio del negocio de forma inmediata. De esta manera, el sistema reglas de un negocio se convierte en una plataforma para el cambio del negocio. Las reglas por sí mismas se convierten en instrumentos para la adaptabilidad del negocio [6]. ¿QUÉ ES LA METODOLOGÍA DE LAS REGLAS DE NEGOCIO? La metodología de reglas de negocio es un conjunto de pasos y técnicas para desarrollar sistemas de reglas de negocio. Un sistema de reglas de negocio es un sistema automatizado que separa las reglas de negocio lógicamente, y quizás físicamente, de otros aspectos del sistema y las comparte a través de los datos almacenados, interfaces de usuario, y aplicaciones [6]. Existen varias razones para construir un sistema de reglas de negocio, las dos principales son: reducir el tiempo de desarrollo y entregar un sistema diseñado para el cambio. Para esto se necesita una metodología de desarrollo de sistemas que divida el dominio del problema al menos en tres aspectos separados, pero completamente relacionados: datos, procesos, y reglas. El objetivo de la metodología de reglas de negocio, es separar tres aspectos importantes de un sistema: reglas, datos y procesos. Una vez separados los aspectos la metodología se enfoca a los pasos y a las técnicas para capturar y manejar las reglas de negocio. Esto es de gran importancia, pues las reglas de negocio, con frecuencia representan el aspecto más descuidado o con menos formalismo de otras metodologías. La ventaja única del acercamiento a las reglas de negocio es que influye en el negocio y en los desarrolladores de sistemas. Para el entorno del negocio, el acercamiento a las reglas de negocio significan una metodología en la cual los líderes 52

de negocio utilizan las reglas como instrumentos preventivos y creativos de cambios en el negocio [6]. VENTAJAS DE APLICAR LA METODOLOGÍA DE LAS REGLAS DE NEGOCIO

Se basa en un modelo de datos estables, donde estos se comparten a través de la aplicación y los confines organizacionales. Se basa en las reglas que se comparten a través la aplicación y los límites organizacionales. Se desarrolla alrededor del centro del flujo de procesos, basándose en las dependencias de las reglas, permitiendo la selección de otros tipos de flujo de proceso. Permite escoger varias tecnologías de arquitecturas y diseños de automatización de las reglas. Permite el seguimiento de los objetivos del negocio a los requerimientos y de estos a las reglas automatizadas. HERRAMIENTAS PARA EL DESARROLLO DE SOFTWARE ENFOCADOS EN REGLAS DE NEGOCIO

En la actualidad muchas organizaciones trabajan de una forma que es posible definir eventos del negocio como casos de uso, donde las decisiones se basan en un conjunto de reglas. Dichas organizaciones pueden estar interesadas en aplicar la tecnología que brindan de los motores de reglas. Si se planifica hacer los casos de uso más eficiente o incluso automático y, al mismo tiempo controlar la calidad de las decisiones, el uso de reglas y los motores de reglas, esto resultaría una buena solución. Los motores de reglas son marcos de trabajo o frameworks que permiten organizar la lógica de negocio de la aplicación, lo que le permite al usuario definir reglas apoyándose en conocimiento que sabe que va a ser cierto en un momento determinado, y a partir de aquí, permitir a mecanismos a bajo nivel inferir conclusiones o tomar decisiones [12]. Se define que un motor de reglas de negocio es un componente que, a partir de una información inicial y un conjunto de reglas, detecta qué reglas deben aplicarse en un instante determinado y cuáles son los resultados de esas reglas. Básicamente un motor de reglas de negocio está compuesto de tres elementos: un conjunto de reglas, el espacio de trabajo o conocimiento que tiene y el procesador de reglas. Las reglas son sentencias de la forma IF-THEN, de tal manera que si se cumplen todas las condiciones del IF se ejecutan todas las acciones del THEN. El espacio de trabajo es donde se almacena el conocimiento que el motor utilizará para decidir qué reglas deben activarse [13].

Se puede decir que un motor de reglas brinda una infraestructura desacoplada del código fuente de la aplicación para la definición, administración y ejecución de reglas de negocio [14]. Los motores brindan un conjunto de herramientas que permite a los analistas de negocio y desarrolladores construir la lógica de negocio basándose en los datos del negocio. Los motores de reglas reducen el mantenimiento de la aplicación, así como los costos de extensibilidad, debido a que disminuye la complejidad de los componentes que implementan la compleja lógica de negocio. CONCLUSIONES El conocimiento sobre la lógica de un negocio es lo más importante para optimizar el funcionamiento del mismo. Conocimiento, sobre qué es y que no es posible, que es o no requerido, la espina dorsal de cada compañía y organización es su lógica de negocio. Las reglas de negocio ofrecen conocimiento, ellas van en todas las formas al núcleo de los procesos de negocio, las reglas proporcionan las guías para el comportamiento, ofrecen los estándares para eficacia y supervisan la calidad de los datos. Consecuentemente, las reglas de negocio brindan una valoración de la eficacia de los procesos de negocio. El acercamiento de las reglas de negocio da a la compañía un sistema de herramientas para controlar los procesos del negocio y permiten contestar la pregunta de qué se debe hacer, independientemente de cómo se va hacer. Por su parte, los motores de reglas son una novedosa tecnología que despliegan las reglas que definen la lógica de negocio de las organizaciones o empresas. Los motores se convierten en un componente vital para desarrollar una aplicación con gran adaptabilidad a los cambios que enfrentan los negocios diariamente. REFERENCIAS [1] [2] [3] [4] [5] [6] [7] [8]

Company, T. M. :Model Driven Development for J2EE Utilizing a Model Driven Architecture (MDA) Approach, The Middleware Company. 2003. Molina, J. J. G.‖ Ingeniería de modelos con MDA‖. 2004. AndroMDA. "What is AndoMDA." 2008. From:http://galaxy.andromda.org/index.php?option=com_content&task =blogcategory&i d=0&Itemid=42 1658642. Jboss. The JBoss 4 Application Server Guide. 2005. Floyd , Marinescu: EJB Design Patterns. John Wiley & Sons, Inc, 2002. von Halle, B. : Business Rules Applied—Business Better Systems Using the Business Rules Approach. John Wiley & Sons, New York, 2002. González, JC.: ―Motor de reglas: TDI –Gasolina‖. Available: http://biztalkfridays.wordpress.com/2008/08/29/motor-de-reglas-tdio-gasolina/ Ambler, S.: Business Rules. Available: http://www.agilemodeling.com/artifacts/businessRule.htm

53

[9]

Rob, Johnson:. Expert One-on-One J2EE Design and Development. Wiley Publishing, Inc, 2003.

[10] Olivieri,

R.:Implement business logic with the Drools rules engine, Available:http://download.boulder.ibm.com/ibmdl/pub/software/dw /java/j-drools-pdf.pdf

[11] Giurca,

A.: When to Use Rules in Your Application. Available: http://oxygen.informatik.tu-cottbus.de/RealRules/?q=node/49 [12] P. Browne, Give Your Business Logic a Framework with Drools. Available: http://www.onjava.com/pub/au/2366 [13] Rince, W.: Drools I. Introducción a los motores de reglas de negocios. Available: http://rincew.blogspot.com/2005/11/drools-i-introduccin-losmotores-de.html [14] Codehaus Foundation. Drools Java Rules Engine. Available: http://legacy.drools.codehaus.org/Agenda Juan Carlos García González. Ingeniero Informático. Pertenece a un grupo de investigación y desarrollo de la Facultad de Ingeniería Informática de la Cujae. Ha trabajado durante tres años en el equipo de desarrollo del proyecto SIGENU. Ha obtenido varios premios y reconocimiento entre los cuales se puede destacar una mención en la Feria Informática 2009. Realizó una amplia investigación sobre el tema de las reglas de negocio y los motores de reglas de negocios en aplicaciones empresariales a partir de lo cual elaboró su trabajo de diploma. Email: [email protected]

54