Lógica de negocios - Business logic

En el software de computadora , la lógica de negocios o la lógica de dominio es la parte del programa que codifica las reglas comerciales del mundo real que determinan cómo se pueden crear, almacenar y cambiar los datos . Se contrasta con el resto del software que podría estar relacionado con detalles de nivel inferior de la administración de una base de datos o mostrar la interfaz de usuario , la infraestructura del sistema o, en general, conectar varias partes del programa.

Detalles y ejemplo

Lógica de negocios:

  • Prescribe cómo los objetos comerciales interactúan entre sí
  • Hace cumplir las rutas y los métodos mediante los cuales se accede y se actualiza a los objetos comerciales.

Reglas del negocio:

  • Modele objetos comerciales de la vida real (como cuentas, préstamos, itinerarios e inventarios)

La lógica empresarial comprende:

  • 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. 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 enrutan a las personas o al software (flujo de trabajo). Las reglas comerciales son expresiones formales de la política comercial. 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 cada nuevo visitante debe ser bienvenido es una regla de negocio. Además, la lógica empresarial es procedimental, mientras que las reglas empresariales son declarativas.

Por ejemplo, un sitio web de comercio electrónico puede 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 empresarial del sitio web puede incluir un flujo de trabajo como:

  • La secuencia de eventos que ocurre 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, 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 comercial ni de las reglas comerciales:

  • Contenido periférico no relacionado con los datos comerciales centrales, 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 (p. Ej., Que muestra la página HTTP Error Code 500)
  • Código de inicialización que se ejecuta cuando el servidor web inicia el sitio, que configura el sistema.
  • Supervisión de 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

En teoría, la lógica empresarial ocupa el nivel medio de una arquitectura de 3 niveles.

La lógica empresarial puede 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 agregarán verificaciones de tipo para asegurarse de que no se agreguen datos no válidos.

La lógica empresarial cambia a menudo. Por ejemplo, el conjunto de formatos de dirección 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 poco 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 pierda parte del sistema, lo que lleva a un funcionamiento incorrecto.

Una arquitectura de varios 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 , el controlador y las capas de vista pueden 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 satisfagan las reglas comerciales (en lugar de dejar nada de eso a la base de datos misma o 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 genérica y un controlador podrían acceder a los objetos de la base de datos que, a su vez, contienen toda la lógica comercial relevante sobre qué formatos aceptan y qué cambios son posibles (conocido como modelo de base de datos ).

Algunos esquemas por niveles utilizan una capa de aplicación distinta o una capa de servicio , o consideran que la capa de lógica empresarial es la misma que una de esas.

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).

El enfoque de reglas de negocio del desarrollo de software utiliza BRMS e impone una separación muy fuerte de la lógica de negocio de otro código. Los sistemas de gestión de la interfaz de usuario son otra tecnología que se utiliza para imponer una fuerte separación entre la lógica empresarial y otro código. El botón mágico se considera un "anti-patrón": una técnica que en este caso crea restricciones indeseables que dificultan la codificación de la lógica empresarial 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.

Ver también

Referencias

Otras lecturas

  • Brett McLaughlin (marzo de 2002). "Lógica empresarial, parte 1" . Creación de aplicaciones empresariales Java, Vol I: Arquitectura . O'Reilly y asociados. 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" . Revista de objetos . Nueva York, Estados Unidos: SIGS Publications, Inc. 7 (9): 41–46. ISSN  1055-3614 .
  • Harumi Kuno; Mike Lemon; Alan Karp y Dorothea Beringer (2001). "Conversaciones + Interfaces = Lógica empresarial". En F. Casati; D. Georgakopoulos y M.-C. Shan (eds.). Tecnologías para servicios electrónicos: Segundo taller internacional, TES 2001, Roma, Italia, 14 al 15 de septiembre de 2001, Actas . Apuntes de conferencias en Ciencias de la Computación . 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 web basadas en XML" . Actas del simposio 2002 ACM sobre informática aplicada, Madrid, España: Web y aplicación de comercio electrónico . Prensa ACM. págs. 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 de ellas proceda en paralelo a lo largo de pistas relativamente independientes pero cooperativas.
  • Pau, L.-F. Y Vervest, PHM (8 de diciembre de 2003). "Gestión de procesos de negocio basada en red: incrustación de lógica empresarial en redes de comunicaciones". Serie de informes ERIM Investigación en gestión. Universidad Erasmus . hdl : 1765/1070 . 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 el punto de vista de la red.

enlaces externos