Recientemente, un lector del blog me preguntó mi opinión sobre como usar los motores de reglas (BRMS) en SOA. Como sabemos, las reglas son junto a los procesos y los servicios los tres elementos que podemos combinar en un sistema SOA con la suficiente complejidad.
Básicamente una lógica de negocio basada en reglas consiste en un programa al que invocamos con unos parámetros de entrada y nos devuelve unos parámetros de salida. Por motivos de rendimiento, no se aconseja que estas reglas accedan por ejemplo a la base de datos. Es decir, estamos ante una caja cerrada cuyo único contacto con el mundo exterior son los parámetros de entrada/salida que se intercambia con el cliente que lo invoca. Esto se parece bastante a un servicio ¿no?
Entonces, ¿dónde podemos poner las lógicas basadas en reglas de negocio en nuestro sistema SOA?
Si tenemos en mente una disposición clásica con, de izquierda a derecha, capa de frontal, capa de integración y backend como la que podemos ver en el gráfico, realmente podríamos colocar un motor de reglas en cualquiera de las tres (aunque con matices).
Reglas en la capa de frontal
La capa de frontal no debe tener lógica de negocio, así que un motor de reglas no tendría mucho sentido en principio. Sin embargo, las reglas también puede ser usadas para ejecutar cierta lógica de presentación, de navegación entre pantallas, para decidir que tipo de formulario hay que mostrarle al cliente…
Un posible uso de las reglas de frontal en este sentido podría ser por ejemplo, el de un cuestionario sobre salud. Dependiendo de las respuestas que el cliente vaya dando, las reglas nos dirán cuales son las siguientes preguntas que hay que realizar. Como vemos, no son reglas de negocio estrictamente hablando pero sí puede ser un uso interesante en la capa de frontal.
Reglas en la capa de integración
En la capa de integración, radican los servicios compuestos, que integran varios backends o aplicaciones de «core». También estarían aquí los procesos de negocio (BPM) de la empresa.
- las que se aplican al proceso (son reglas de enrutado) para ver por qué camino sigo… por ejemplo: «si el importe es mayor 10000 entonces voy por el camino B»…
- otro caso serían lo que podríamos llamar reglas de negocio que definen lógica de negocio… por ejemplo, un paquete de reglas que te calcula el precio de un seguro o te dice si conceder o no un préstamo a un cliente…
15/09/2014 at 08:59
Mi modesta experiencia en Porcentaje de casos de uso es:
1- Front end= 10%
2- Integracion = 20%
3- Backend= 70%
Si lo miramos en número de reglas manejadas, el porcentaje cambaría drásticamente.
😉
Muy buen post.
15/09/2014 at 09:38
Nada de modesta, que tú sabes de esto 😉