En el software informático , la lógica empresarial o lógica de dominio es la parte del programa que codifica las reglas empresariales del mundo real que determinan cómo se pueden crear, almacenar y modificar los datos . Se contrasta con el resto del software que podría ocuparse de los detalles de nivel inferior de la gestión de una base de datos o la visualización de la interfaz de usuario , la infraestructura del sistema o, en general, la conexión de varias partes del programa.
Detalles y ejemplo
Lógica de negocios:
- Prescribe cómo los objetos comerciales interactúan entre sí
- Aplica las rutas y los métodos mediante los cuales se accede a los objetos comerciales y se actualizan.
Reglas de negocio:
- Modelar objetos comerciales de la vida real (como cuentas, préstamos, itinerarios e inventarios)
La lógica empresarial comprende: [1]
- Flujos de trabajo que son las tareas ordenadas de pasar documentos o datos de un participante (una persona o un sistema de software) a otro.
La lógica empresarial debe distinguirse de las reglas empresariales. [2] La lógica empresarial es la parte de un sistema empresarial que determina cómo se transforman o calculan los datos y cómo se envían a las personas o al software (flujo de trabajo). Las reglas empresariales son expresiones formales de la política empresarial. Todo lo que sea un proceso o procedimiento es lógica empresarial, y todo lo que no sea ni un proceso ni un procedimiento es una regla empresarial. Dar la bienvenida a un nuevo visitante es un proceso (flujo de trabajo) que consta de pasos a seguir, mientras que decir que se debe dar la bienvenida a todo nuevo visitante es una regla empresarial. Además, la lógica empresarial es procedimental, mientras que las reglas empresariales son declarativas. [3]
Por ejemplo, un sitio web de comercio electrónico podría permitir a los visitantes agregar artículos a un carrito de compras, especificar una dirección de envío y proporcionar información de pago. La lógica comercial del sitio web podría incluir un flujo de trabajo como el siguiente:
- La secuencia de eventos que ocurren durante el pago, por ejemplo, un formulario de varias páginas que primero solicita la dirección de envío, luego la dirección de facturación, la siguiente página contendrá el método de pago y la última página mostrará felicitaciones.
También habrá reglas comerciales del sitio web:
- Agregar un artículo más de una vez desde la página de descripción del artículo incrementa la cantidad de ese artículo.
- Formatos específicos que deben seguir la dirección de correo electrónico, la dirección de correo electrónico y la información de la tarjeta de crédito del visitante.
- Un protocolo de comunicación específico para hablar con la red de tarjetas de crédito.
El software del sitio web también contiene otro código que no se considera parte de la lógica empresarial ni de las reglas empresariales:
- Contenido periférico no relacionado con los datos comerciales principales, como el HTML que define los colores, la apariencia, la imagen de fondo y la estructura de navegación del sitio.
- Código genérico de manejo de errores (por ejemplo, que muestra la página Código de error HTTP 500)
- Código de inicialización que se ejecuta cuando el servidor web inicia el sitio y que configura el sistema.
- Supervisar la infraestructura para asegurarse de que todas las partes del sitio funcionan correctamente (por ejemplo, el sistema de facturación está disponible)
- Código genérico para realizar conexiones de red, transmitir objetos a la base de datos , analizar la entrada del usuario a través de eventos HTTP POST, etc.
Lógica empresarial y niveles/capas

La lógica empresarial podría estar en cualquier parte de un programa. Por ejemplo, dado un determinado formato para una dirección, se podría crear una tabla de base de datos que tenga columnas que correspondan exactamente a los campos especificados en la lógica empresarial y se podrían agregar comprobaciones de tipo para asegurarse de que no se agreguen datos no válidos.
La lógica empresarial cambia con frecuencia. Por ejemplo, el conjunto de formatos de direcciones permitidos puede cambiar cuando un minorista en línea comienza a enviar productos a un nuevo país. Por lo tanto, a menudo se considera deseable hacer que el código que implementa la lógica empresarial esté relativamente aislado o débilmente acoplado . Esto hace que sea más probable que los cambios en la lógica empresarial requieran un pequeño conjunto de cambios de código, en solo una parte del código. El código distante pero fuertemente acoplado también crea un mayor riesgo de que el programador solo realice algunos de los cambios necesarios y pase por alto parte del sistema, lo que lleva a un funcionamiento incorrecto. [4]
Una arquitectura de múltiples niveles formaliza este desacoplamiento mediante la creación de una capa de lógica empresarial que está separada de otros niveles o capas, como la capa de acceso a datos o la capa de servicio . Cada capa "sabe" sólo una cantidad mínima sobre el código de las otras capas, lo suficiente para realizar las tareas necesarias. Por ejemplo, en un paradigma modelo-vista-controlador , las capas de controlador y vista podrían hacerse lo más pequeñas posible, con toda la lógica empresarial concentrada en el modelo. En el ejemplo del comercio electrónico, el controlador determina la secuencia de páginas web en la secuencia de pago y también es responsable de validar que el correo electrónico, la dirección y la información de pago cumplan con las reglas empresariales (en lugar de dejar todo eso en manos de la propia base de datos o del código de acceso a la base de datos de nivel inferior).
Son posibles paradigmas alternativos. Por ejemplo, con entidades comerciales relativamente simples, una vista y un controlador genéricos podrían acceder a objetos de base de datos que contienen toda la lógica comercial relevante sobre qué formatos aceptan y qué cambios son posibles (conocido como el modelo de base de datos ).
Algunos esquemas escalonados utilizan una capa de aplicación o una capa de servicio diferenciadas , o consideran que la capa de lógica empresarial es la misma que una de ellas.
Herramientas y técnicas
La lógica empresarial se puede extraer del código de procedimiento mediante un sistema de gestión de reglas empresariales (BRMS). [5]
El enfoque de las reglas de negocio en el desarrollo de software utiliza BRMS y aplica una separación muy fuerte entre la lógica de negocio y el resto del código. Los sistemas de gestión de la interfaz de usuario son otra tecnología que se utiliza para aplicar una separación fuerte entre la lógica de negocio y el resto del código. El botón mágico se considera un "antipatrón": una técnica que en este caso crea restricciones indeseables que dificultan la codificación de la lógica de negocio de una manera fácil de mantener.
Un modelo de dominio es una representación abstracta de los tipos de almacenamiento de datos requeridos por las reglas comerciales.
Véase también
Referencias
- ^ Steven Minsky (27 de marzo de 2005). "El desafío de la adopción de BPM". Techtarget . eBizQ.
- ^ "Definición de lógica de negocio". 24-12-2013.
- ^ William Ulrich. "OMG Business Rules Symposium" (PDF) . Archivado desde el original (PDF) el 24 de diciembre de 2013.
- ^ Khawar Zaman Ahmed y Cary E. Umrysh (17 de octubre de 2001). "Introducción al software empresarial". Desarrollo de aplicaciones empresariales Java con J2EE y UML. Addison-Wesley. ISBN 0-201-73829-5.
- ^ Owen, James (19 de septiembre de 2003). "Bring business logic to light" (Llevar la lógica empresarial a la luz). Enterprise Java. InfoWorld . Consultado el 21 de julio de 2020 .
Lectura adicional
- Brett McLaughlin (marzo de 2002). "Business Logic, Part 1". Building Java Enterprise Applications, Vol I: Architecture . O'Reilly and Associates. ISBN 0-596-00123-1.— McLaughlin analiza el patrón de fachada para implementar la capa empresarial de una aplicación.
- Kathy Bohrer (noviembre de 1997). "Middleware aísla la lógica empresarial". Object Magazine . 7 (9). Nueva York, EE. UU.: SIGS Publications, Inc.: 41–46. ISSN 1055-3614.
- Harumi Kuno; Mike Lemon; Alan Karp y Dorothea Beringer (2001). "Conversaciones + Interfaces = Lógica de Negocios". En F. Casati; D. Georgakopoulos y M.-C. Shan (eds.). Tecnologías para Servicios Electrónicos: Segundo Taller Internacional, TES 2001, Roma, Italia, 14-15 de septiembre de 2001, Actas . Apuntes de clase en Ciencias de la Computación. Vol. 2193. Springer Berlín / Heidelberg. ISSN 0302-9743.
- Volker Turau (2002). "Un marco para la generación automática de aplicaciones de entrada de datos basadas en la Web basadas en XML". Actas del simposio ACM 2002 sobre informática aplicada, Madrid, España: Aplicación para la Web y el comercio electrónico . ACM Press. pp. 1121–1126. ISBN 1-58113-445-2.— Turau presenta un marco de aplicación implementado utilizando Java Servlets y JavaServer Pages que permite la separación entre la lógica de negocios y la lógica de presentación, permitiendo que el desarrollo de cada una se realice en paralelo a lo largo de vías relativamente independientes pero que cooperan.
- Pau, L.-F. y Vervest, PHM (8 de diciembre de 2003). "Gestión de procesos empresariales basados en redes: incorporación de lógica empresarial en redes de comunicaciones". Serie de informes de investigación en gestión de ERIM. Universidad Erasmus . hdl :1765/1070.
{{cite journal}}: Cite journal requiere|journal=( ayuda ) — Pau y Vervest desarrollan un enfoque para la integración de la lógica empresarial en la red de comunicaciones que subyace a una aplicación distribuida con una multiplicidad de actores , con el fin de optimizar la asignación de recursos empresariales desde un punto de vista de red.
Enlaces externos
- Directrices de la capa empresarial