Articulo de referencia

Patrón de centralización lógica

La centralización lógica es un patrón de diseño dentro del paradigma de diseño orientado a servicios que busca mejorar la reutilización de la lógica agnóstica. [ 1 ] Este patrón...

La centralización lógica es un patrón de diseño dentro del paradigma de diseño orientado a servicios que busca mejorar la reutilización de la lógica agnóstica. [ 1 ] Este patrón garantiza que los servicios [ 2 ] no contengan lógica agnóstica redundante y que la lógica reutilizable esté encapsulada dentro del servicio que mejor se alinee con su contexto funcional. [ 3 ] [ 4 ]

Razón fundamental

A medida que aumenta el número de servicios en un sistema, existe el riesgo de desarrollar servicios con funcionalidades redundantes. Si bien la aplicación del patrón de diseño de Normalización de Servicios ayuda a eliminar dicha redundancia, la mera existencia de servicios normalizados no garantiza su reutilización prevista.

En el caso de los servicios agnósticos —aquellos que contienen lógica reutilizable [ 5 ] — este problema puede obstaculizar significativamente la reutilización real. Por ejemplo, un equipo de proyecto (Equipo A) puede optar por no reutilizar un servicio existente si requiere estructuras de datos complejas y, en su lugar, desarrollar un servicio simplificado que satisfaga sus necesidades inmediatas. Como resultado, la misma lógica reutilizable se duplica en varios servicios, en lugar de evolucionar dentro del servicio original. Este desafío se agrava aún más cuando otro equipo (Equipo B) busca la funcionalidad requerida dentro del servicio original pero, al no encontrar una implementación adecuada, opta por utilizar el servicio recién creado por el Equipo A. En consecuencia, la reutilización del servicio agnóstico original disminuye y surge un problema de gobernanza debido a la distribución descentralizada de la lógica reutilizable en varios servicios.

Para mitigar este problema, el patrón de diseño de Centralización Lógica establece estándares de diseño que garantizan el uso adecuado de servicios agnósticos. Este enfoque asegura que un tipo específico de lógica reutilizable se encapsule dentro de un único servicio bien definido, lo que proporciona a los consumidores de servicios la confianza de que acceden a la funcionalidad a través del servicio apropiado. [ 6 ]

Uso

Diagrama A
Diagrama A En lugar de utilizar el servicio rojo existente, el Equipo de Proyecto 1 crea un nuevo servicio rojo redundante para alinearse mejor con sus requisitos a corto plazo.
Diagrama B
Diagrama B. Con un estándar de diseño empresarial implementado, el acceso al servicio rojo redundante creado por el Equipo de Proyecto 2 está restringido, lo que garantiza que los consumidores del servicio utilicen el servicio rojo existente desarrollado por el Equipo de Proyecto 1. Además, se impide que el Equipo de Proyecto 3 cree un nuevo servicio con funcionalidad superpuesta y, en su lugar, contribuye a la evolución del servicio rojo existente.

El patrón de diseño de centralización lógica establece "puntos finales oficiales" (servicios) designados que representan dominios funcionales específicos. Bajo este enfoque, se restringe el acceso a servicios alternativos que ofrecen la misma funcionalidad, lo que garantiza que solo un servicio esté disponible para un tipo de funcionalidad determinado. [ 7 ] Al imponer un acceso centralizado a los servicios, se reduce la complejidad de la gobernanza, ya que la lógica reutilizable se limita a una única instancia de servicio.

Cuando se requiere una nueva funcionalidad, se realiza una evaluación para determinar si se ajusta a los límites funcionales de un servicio existente. De ser así, la funcionalidad se incorpora a dicho servicio en lugar de crear uno nuevo. Este enfoque exige un estándar a nivel empresarial para garantizar la centralización de la lógica.

Para garantizar que los desarrolladores de servicios conozcan los límites del servicio, se puede aplicar el patrón de diseño de Centralización de Metadatos [ 8 ] , que facilita la creación de un repositorio centralizado que documenta los contextos funcionales y las capacidades del servicio. Además, cuando se implementa junto con el patrón de diseño de Centralización de Contratos [ 9 ] , la Centralización de Lógica contribuye al patrón de diseño de Punto Final Oficial [ 10 ] .

Al garantizar que cada servicio contenga el tipo adecuado de funcionalidad reutilizable, el patrón de diseño de Centralización Lógica respalda los principios de Reutilización de Servicios y Componibilidad de Servicios , promoviendo una composición y reutilización eficientes de los servicios.

Consideraciones

Para implementar este patrón de diseño de manera efectiva, es fundamental que todos los equipos de proyecto dentro de la empresa comprendan y respeten el uso adecuado de los servicios agnósticos. Los equipos deben evitar crear nuevos servicios que solo atiendan requisitos de proyectos a corto plazo, ya que esto puede generar redundancia y reducir la reutilización de los servicios.

La aplicación de este patrón puede afectar los plazos de entrega del proyecto, ya que la integración de servicios agnósticos existentes y su evolución conforme a las directrices establecidas requiere tiempo y esfuerzo adicionales. En algunos casos, los servicios de un proyecto podrían no ser compatibles de inmediato con los servicios agnósticos hasta que su diseño se modifique para alinearse con el enfoque estandarizado.

Referencias

  1. Lógica que no es específica de un proceso de negocio en particular y que puede reutilizarse en múltiples procesos.
  2. "Servicios" . Archivado del original el 1 de mayo de 2012. Consultado el 9 de marzo de 2010 .
  3. El tipo de funcionalidad que ofrece el servicio.
  4. Kanu Tripathi. "Gestión de transacciones de servicio sin WS-AtomicTransaction" . Consultado el 25 de abril de 2010.
  5. Servicios que contienen lógica agnóstica.
  6. Dennis Wisnosky. "Principios y patrones en el Departamento de Defensa de los Estados Unidos". Archivado el 20 de septiembre de 2010 en Wayback Machine . Consultado el 25 de abril de 2010.
  7. Matthew Dailey. "Diseño de arquitectura de software: arquitecturas orientadas a servicios (Parte II)". Archivado el 24 de julio de 2011 en Wayback Machine . Consultado el 25 de abril de 2010.
  8. "Patrón de centralización de metadatos."
  9. "Patrón de centralización de contratos."
  10. "Patrón de punto final oficial."
  • Erl et al., (2009). Patrones de diseño SOA . Prentice Hall. ISBN 0-13-613516-1.
  • Conceptos de SOA
  • Glosario de términos de SOA
  • Patrones de diseño SOA