Patrón de centralización lógica


La centralización lógica es un patrón de diseño , aplicado dentro del paradigma de diseño orientado a servicios , cuya aplicación tiene como objetivo aumentar el potencial de reutilización de la lógica agnóstica [1] al garantizar que los servicios [2] no contengan lógica agnóstica redundante y que cualquier lógica reutilizable solo debe estar representado por un servicio que tenga el contexto funcional más adecuado. [3] [4]

A medida que se desarrollan más y más servicios, existe el riesgo constante de que se creen servicios con funcionalidad redundante. Aunque la aplicación del patrón de diseño de normalización de servicios ayuda a eliminar esta redundancia, el solo hecho de tener un conjunto de servicios normalizados por sí solo no garantiza que se reutilicen como se concibió originalmente. En el caso de servicios agnósticos, [5]este problema puede restringir severamente la reutilización real de dichos servicios porque un equipo de proyecto (Equipo A) puede decidir no reutilizar un servicio existente, por ejemplo, requiere datos que corresponden a un esquema complejo, y en su lugar desarrollar un servicio ligero que simplemente haga el trabajo . Como resultado, ahora existe la misma lógica reutilizable con dos servicios diferentes, mientras que el servicio existente debería haber evolucionado incluso si no contenía el sabor más adecuado de la funcionalidad. Este efecto se multiplica cuando otro equipo (Equipo B) que espera encontrar la funcionalidad dentro del servicio existente, ya que el límite del servicio cubre la funcionalidad requerida, no logra encontrarla y en su lugar comienza a usar el servicio recién creado por el Equipo A. En consecuencia , la reutilización real del servicio agnóstico original cae y al mismo tiempo creaproblema de gobernanza en lo que respecta al mantenimiento de los servicios originales y nuevos porque ahora la lógica reutilizable existe de manera descentralizada.

Para garantizar que un tipo particular de lógica de solución reutilizable solo esté incluido en un servicio agnóstico específico, el patrón de diseño de centralización lógica dicta que se deben establecer estándares de diseño que obliguen al uso adecuado de los servicios agnósticos. Esto brinda a los consumidores del servicio la confianza de que están accediendo a la funcionalidad a través del servicio correcto. [6]

La aplicación de este patrón de diseño requiere la configuración de 'puntos finales oficiales' (servicios) que representan un tipo particular de funcionalidad, es decir, la funcionalidad que cae bajo un tipo particular de dominio funcional. Se prohíbe el acceso a cualquier otro servicio que pueda ofrecer la misma funcionalidad y solo se hace accesible un servicio para un tipo particular de funcionalidad. [7]Al restringir el acceso a otros servicios, la carga de la gobernanza se reduce, ya que ahora la lógica se limita a un solo servicio. Siempre que se requiera una nueva funcionalidad, que actualmente no ofrece ninguno de los servicios existentes, primero se deben verificar los contextos funcionales de los servicios existentes y, si la nueva funcionalidad se encuentra dentro del límite de un servicio ya existente, entonces debería agregarse a ese servicio. Esto requiere un estándar para toda la empresa que imponga la centralización de la lógica. Para asegurarse de que los desarrolladores de servicios conozcan los límites del servicio, la centralización de metadatos [8]Se podría aplicar un patrón de diseño. Esto ayuda a crear un depósito centralizado de información sobre los contextos funcionales y la funcionalidad proporcionada por los servicios. El patrón de diseño de centralización lógica, cuando se aplica junto con el patrón de diseño de centralización de contratos [9] , constituye el patrón de diseño de punto final oficial [10] . La aplicación del patrón de diseño de centralización lógica ayuda aún más en la aplicación de los principios de diseño de reutilización del servicio y compatibilidad del servicio al garantizar que cada servicio contenga el tipo correcto de funcionalidad reutilizable para que pueda componerse repetidamente.


Diagrama A
Diagrama A
En lugar de utilizar el servicio rojo existente, el equipo del proyecto 1 recurre a la creación de un nuevo servicio rojo redundante, ya que fue fácil desarrollar un nuevo servicio más optimizado con sus requisitos a corto plazo.
Diagrama A
Diagrama A
En presencia de un estándar de diseño para toda la empresa, el acceso de los consumidores de servicios al servicio rojo redundante creado por el Equipo de proyecto 2 está prohibido y, en su lugar, se ven obligados a usar el servicio rojo existente creado por el Equipo de proyecto 1. De manera similar, el Equipo de proyecto 3 tiene prohibido crear cualquier servicio nuevo cuya funcionalidad se encuentre dentro del servicio rojo existente, como resultado, el Equipo de proyecto 3 usa/evoluciona el servicio rojo existente creado por el Equipo de proyecto 1.