La abstracción de entidades es un patrón de diseño , aplicado dentro del paradigma de diseño orientado a servicios que proporciona directrices para diseñar servicios reutilizables [ 1 ] cuyos contextos funcionales [ 2 ] se basan en entidades de negocio. [ 3 ]
Razón fundamental
La automatización de un proceso de negocio implica el análisis del dominio empresarial y el diseño de una lógica de solución que represente los diferentes pasos dentro del proceso. Algunos de estos pasos se relacionan únicamente con ese proceso específico, mientras que otros pueden ser útiles para otros procesos. Parte de esta lógica reutilizable se refiere a las entidades de negocio, [ 3 ] que generalmente permanecen iguales en comparación con las reglas y los pasos de procesamiento que pueden cambiar en el futuro. Si se diseñan servicios que contienen tanto lógica específica del proceso como lógica específica de la entidad, las posibilidades de reutilizar la misma lógica específica de la entidad en otro proceso de negocio se vuelven prácticamente insignificantes. Por otro lado, si este tipo de lógica se divide en un contenedor separado, es decir, un servicio, entonces cualquier nuevo proceso de negocio que utilice la misma entidad de negocio puede reutilizar esta lógica. Además del problema de la reutilización, para abordar el cambio en el comportamiento de una entidad de negocio, actualizar la lógica relacionada con la entidad en múltiples procesos de negocio requiere esfuerzos adicionales y hace que el mantenimiento de dichos servicios sea una tarea compleja. [ 4 ]
En respuesta a los problemas mencionados, el patrón de abstracción de entidades aboga por que la lógica relacionada con el procesamiento de entidades comerciales se separe de la lógica específica del proceso y se diseñe como una lógica independiente que no tenga conocimiento del proceso comercial general en el que se utiliza dicha lógica. [ 5 ]
Uso


La separación de la lógica reutilizable específica de la entidad requiere la identificación de dicha lógica antes de que se diseñen los servicios reales. Esto requiere un proceso de entrega de servicios orientado al servicio de arriba hacia abajo [ 6 ] . Durante la fase de análisis, [ 7 ] se identifican diferentes tipos de acciones que se realizan en y por las entidades de negocio y se colocan en un contexto funcional relevante neutral al proceso que forma la base de los servicios de entidad. [ 8 ] Estos servicios de entidad contienen específicamente funcionalidad, incluidas funciones CRUD , [ 9 ] que es relevante solo para las entidades de negocio físicas o lógicas, representadas por su contexto funcional correspondiente. Además de la identificación de diferentes acciones, también es importante descubrir cualquier relación entre las entidades de negocio, ya sea que forme parte del proceso de negocio actual o no. Al observar diferentes procesos de negocio, el servicio de entidad puede incluir funcionalidad adicional que otros procesos de negocio pueden requerir. Una fuente importante de información para identificar dichas relaciones son los diagramas entidad-relación (DER) , ya que muestran físicamente las relaciones entre diferentes entidades de negocio y también identifican los diferentes atributos de las entidades que forman la base de las relaciones entre las entidades. El conjunto de servicios resultante representa la capa de entidad, que es una de las capas según lo propuesto por el patrón de diseño Capas de Servicio . La aplicación del patrón de diseño de abstracción de entidad puede considerarse una implementación especializada del patrón de diseño Contexto Agnóstico [ 10 ], ya que este último aboga por separar la lógica independiente del proceso de la lógica específica del proceso; sin embargo, en el caso del patrón de Abstracción de Entidad, es la lógica independiente del proceso específica de la entidad la que se separa.
El proceso de identificación de servicios de entidades a partir de entidades comerciales puede no siempre resultar en una correspondencia uno a uno, ya que en algunas ocasiones puede ser lógico combinar dos entidades en una porque por sí solas no representan una parte significativa de la funcionalidad que se realiza en las entidades. [ 5 ]
Consideraciones
La aplicación de este patrón de diseño requiere la adopción de un proceso de entrega de servicios orientado al servicio y de análisis descendente [ 6 ], lo cual puede no ser adecuado para organizaciones con recursos limitados, tanto en tiempo como en personal. Otro aspecto importante es que, una vez que la lógica específica de la entidad se abstrae en los servicios de entidad, la dependencia de estos servicios aumenta, ya que se convierten en el único punto de contacto para la funcionalidad de utilización que interesa a múltiples procesos de negocio. Por consiguiente, sigue siendo fundamental contar con mecanismos de gobernanza estrictos para que un cambio en la funcionalidad de un servicio de entidad no genere un comportamiento inesperado para los consumidores del servicio que ya han desarrollado dependencias en dichos servicios.
Referencias
- ↑ "Servicios" . Archivado del original el 1 de mayo de 2012. Consultado el 21 de marzo de 2010 .
- ↑ El propósito general, es decir, el tipo de funcionalidad, por ejemplo, un contexto funcional basado en el procesamiento de órdenes de compra, aquí la funcionalidad está relacionada con las diferentes acciones realizadas en las órdenes de compra.
- 1 2 Las entidades comerciales son entidades físicas o lógicas que son de interés para la empresa o algo que es parte de los diferentes procesos que lleva a cabo la empresa.
- ↑ Saarikko, Ted; Westergren, Ulrika H.; Blomquist, Tomas (1 de noviembre de 2020). "Transformación digital: cinco recomendaciones para la empresa digitalmente consciente" . Business Horizons . 63 (6): 825–839 . doi : 10.1016/j.bushor.2020.07.005 . ISSN 0007-6813 . S2CID 218775187 .
- 1 2 Matthew Dailey. Arquitectura de software Diseño Arquitecturas orientadas a servicios (Parte II) Archivado el 24 de julio de 2011 en Wayback Machine [En línea]. Fecha de acceso: 26 de abril de 2010.
- 1 2 "Proceso de análisis y diseño orientado al servicio de arriba hacia abajo" . Archivado del original el 9 de mayo de 2010. Recuperado el 21 de marzo de 2010 .
- ↑ "Análisis orientado a servicios" . Archivado del original el 16 de mayo de 2010. Consultado el 21 de marzo de 2010 .
- ↑ "Servicios de Entidad" . Archivado del original el 13 de enero de 2010. Consultado el 21 de marzo de 2010 .
- ↑ Susanne Patig. Casos prácticos de diseño de servicios de software [En línea]. Fecha de acceso: 27 de abril de 2010.
- ↑ Contexto agnóstico
- Erl et al., (2009). Patrones de diseño SOA . Prentice Hall. ISBN 0-13-613516-1.
- Mauro et al. Integración de dispositivos orientada a servicios: un análisis de patrones de diseño SOA. [En línea], págs. 1-10, 43.ª Conferencia Internacional de Hawái sobre Ciencias de Sistemas, 2010. Fecha de acceso: 27 de abril de 2010.
- Orientado a servicios (informática empresarial)