Básicamente las reglas de negocio son las reglas y estrategias implementadas en la aplicación con el objetivo de manejar y efectuar la lógica del negocio. Esta lógica contempla las políticas y estrategias propias del negocio [24]. Cuando se hace referencia a las reglas de “negocio”, esto no implica que existen únicamente para las aplicaciones de comercio electrónico, sino también se relacionan a aplicaciones tales como bancos, manejo de alumnos de una facultad, entre otro millón de aplicaciones que pueden exigir de una lógica de utilización de reglas y restricciones. Por ejemplo, en los bancos estas reglas son las que regulan los descuentos o aumentos realizados a las cuentas, se pueden realizar descuentos en el pago de las cajas de ahorro si la persona tiene asegurada su casa a través del banco, en el caso de no poseer dicho seguro no se realiza el descuento. Como esta regla, existen muchísimas más, además van cambiando constantemente, se van agregando nuevas, o eliminando algunas que ya no se encuentran en vigencia dentro de las reglas del negocio. Se puede decir que en general, dependiendo de una condición dichas reglas toman decisiones al respecto, logrando con la implementación de dichas reglas soluciones a los problemas de tomar decisiones que dependen de variables y que aplican cierta lógica.
Las reglas de negocio son un tema sumamente importante para las aplicaciones de comercio electrónico. Como esta tesis se encuentra orientada a las aplicaciones Web personalizadas de comercio electrónico, no se podía dejar de tratar, por lo cual, se presentan algunas secciones que describen el tema explicando qué son y cómo las reglas de negocio afectan a las aplicaciones personalizadas de comercio electrónico. No se pretende profundizar sobre el tema ni tratar de resolverlo, ya que representa un asunto muy complejo. En el ámbito de la investigación, se ha estudiado e investigado como tema particular y si se trataba con detalle dentro de este trabajo se hacía muy extenso, además de no encontrarse relacionado con el objetivo del mismo. Por lo cual, solo se presenta la idea del tema y su explicación, y se deja abierto para que si el lector se encuentra interesado en el mismo busque más información sobre este tema.
2.5.1. ¿Qué representan las Reglas de Negocio?
Las reglas de negocio surgen a partir de que de alguna manera se deben representar en las aplicaciones las políticas del negocio o estrategias del mismo. Dichas reglas son parte de las prácticas y procedimientos de una organización, representan la sección especulativa y lógica del negocio. Por ejemplo se pueden desarrollar reglas relativas a descuentos y ofertas a realizar a los usuarios entre otras posibilidades. Estas reglas pueden cambiar de un momento a otro, ser agregadas o eliminadas, para adecuarse a los cambios del mundo de los negocios [25]. Estos cambios que suceden en el negocio de la aplicación, conducen a realizar cambios en el software que implementa a la misma proveyendo las funciones del negocio. Como se sabe, las aplicaciones Web para ser implementadas se encuentran compuestas por varias secciones que las componen, workflow, el manejo de interacciones entre el cliente y el servidor, la base de datos, las cuestiones de interfaz, entre otras. Por este motivo, si las reglas de negocio se encuentran implementadas sin realizar un diseño o sin tener bien claro la dificultad que implican y sin tener en cuenta las modificaciones constantes que sufren, y se implementan estas reglas como parte del código como sucede en algunas aplicaciones, realizándolas con if then else para tomar decisiones según una condición, o utilizando la sentencia case, provocará como consecuencia un imposible mantenimiento de la aplicación. Se deben modificar las reglas pero para lograrlo, si es que se puede realizar, se debe modificar mucho código, produciendo cambios costosos, consumiendo muchísimo tiempo y dedicación, además se debe tener en cuenta de no alterar otras reglas existentes. Considerando el número de veces que las reglas son cambiadas, los costos que este tipo de cambio produce y la complejidad que pueden llegar a representar implementarlas, se
2.5 Reglas de Negocio
ha estudiado y llegado a la conclusión, como se describe en [26], de que resulta más eficiente definir las reglas de negocio usando una ingeniería de reglas realizada aparte de la aplicación y luego integrarlas a ésta. De este modo, cuando las reglas deben ser modificadas, se admite que puedan ser cambiadas dentro de este pequeño módulo que las contiene e integrar estos cambios luego de realizados dentro de la aplicación. Considerando esta separación de tareas, existen herramientas que automatizan este tipo de reglas, dando a sus clientes la posibilidad de determinar sus reglas y poder mantenerlas con poco esfuerzo6. Estas herramientas son utilizadas en caso de que la complejidad de la aplicación así lo requiera, si las reglas de negocio son escasas y no son de gran complejidad, éstas pueden ser integradas en la aplicación dado que al ser pocas no se complica su mantenimiento, pero se debe tener en claro que en caso de gran incremento de las mismas se debe pensar en desacoplarlas.
Como este trabajo se encuentra orientado a las aplicaciones Web personalizadas de comercio electrónico no se podía dejar de tratar las reglas de negocio que forman una parte esencial de estas aplicaciones, dado que desarrollan la sección comercial y la lógica del negocio reflejando las políticas y estrategias propias de los negocios, pero no se centran estas secciones en resolver el problema sino se trata como un módulo a parte por la complejidad y diversidad de implementaciones que presenta este tema.
2.5.2. Aplicaciones de las Reglas de Negocio a la Personalización
En las secciones anteriores se explicaron las reglas de negocio que afectan a aplicaciones comunes, en esta sección se presenta como afectan a las aplicaciones personalizadas. En estas aplicaciones, las reglas de negocio se encuentran aplicadas a los diferentes usuarios que acceden a la aplicación, y quizás la cantidad y la complejidad de las mismas aumenten como consecuencia de que muchas reglas ahora deberán distinguir entre los diversos usuarios y sus diferentes preferencias y características. Algunas de las reglas se introducen con la propia personalización, dado que pueden existir reglas que se apliquen a algunos usuarios y a otros no. Estas reglas pueden afectar por ejemplo a las políticas que se le aplican a los carritos de compra, los usuarios pueden tener un descuento o pueden aplicarse reglas de negocio sobre los productos comprados pero que varíen las reglas según preferencias de compra o características de los usuarios, o quizás que ya se presente la forma de pago sabiendo por los antecedentes del usuario cual es su preferencia, lo que implica personalización de las reglas de negocio. Éstas pueden incluir personalización sobre la forma de pago, envíos de los productos, descuentos sobre los productos, entre otras. El usuario debe tener para estos casos el historial sobre sus compras, por lo cual las reglas deben realizar interacciones con los perfiles de los usuarios para obtener los resultados personalizados. En los casos de las aplicaciones no personalizadas las reglas solo se aplican sin depender de las características de los usuarios, lo cual produce que las reglas sean considerablemente menos complejas que en las aplicaciones personalizadas.
Se debe distinguir entre las reglas de negocio personalizadas que afectan a la aplicación y las acciones realizadas para personalizar la aplicación. Claramente, la diferencia es que las reglas de negocio contemplan reglas mismas del negocio, como son los descuentos, las formas de pagos, que por ejemplo no tienen nada que ver con las preferencias de interfaz del usuario que son acciones propias de la personalización. Se debe tener bien clara esta diferencia para no confundir una acción que forma parte de la sección de la aplicación con una regla de negocio ya que las reglas de negocio se implementan en un módulo separado.
6 Para los interesados en el tema de reglas de negocio, se puede observar en la referencia [26] una herramienta que provee manejo para implementar reglas de negocio.
Capítulo 3
Trabajos Relacionados
Este capítulo se encuentra destinado a exponer otros trabajos existentes que soportan aplicaciones personalizadas. Estos mismos fueron seleccionados entre varios otros por ser las que más se adecuan como aporte de alguna idea o innovación. Algunos de los trabajos que son expuestos realizan algún aporte que puede ser tomado en cuenta para desarrollar la arquitectura modular que se presentará en este trabajo, o proponen una idea nueva que puedan presentar un punto de vista muy diferente.
La sección 3.1 describe la motivación sobre la presentación de los trabajos que son expuestos en este capítulo. Las cuatro secciones siguientes corresponden cada una a un trabajo presentado, describiendo su funcionalidad, diseño y características. Dichos trabajos son presentados de una manera general, sin introducir detalles que no son de importancia y que no realizan ningún aporte a al desarrollo de la tesis.
El propósito de este capítulo es el de exponer otros trabajos que fueron desarrollados para resolver las aplicaciones Web personalizadas, y de esta manera, presentar otras percepciones y soluciones a un mismo problema. Éstas pueden ser o no resueltas de una misma manera, pueden existir mejores o peores soluciones, pueden poseer ventajas y desventajas, pero el objetivo es que contribuyan con ideas y colaboren en pensar de un modo más amplio con respecto a las soluciones existentes y que pueden ser tomadas en cuenta para solucionar algún aspecto de la arquitectura que se presentará en esta tesis.