patrón de esquema canónico


En ingeniería de software , Canonical Schema es un patrón de diseño , aplicado dentro del paradigma de diseño orientado a servicios , que tiene como objetivo reducir la necesidad de realizar la transformación del modelo de datos [1] cuando los servicios [2] intercambian mensajes que hacen referencia al mismo modelo de datos. [3]

La interacción entre servicios a menudo requiere el intercambio de documentos comerciales. Para que un consumidor de servicios envíe datos (relacionados con una entidad comercial particular, por ejemplo, una orden de compra), necesita conocer la estructura de los datos, es decir, el modelo de datos. Para ello, el proveedor del servicio publica la estructura de los datos que espera dentro del mensaje entrante del consumidor del servicio. En caso de que los servicios se implementen como servicios web, [4]este sería el documento de esquema XML. Una vez que el consumidor del servicio conoce el modelo de datos requerido, puede estructurar los datos en consecuencia. Sin embargo, bajo algunas condiciones, puede ser posible que el consumidor del servicio ya posea los datos requeridos, que se relacionan con un documento comercial en particular, pero los datos no se ajustan al modelo de datos especificado por el proveedor del servicio. Esta disparidad entre los modelos de datos da como resultado el requisito de transformación del modelo de datos para que el mensaje se transforme en la estructura requerida según lo dicte el proveedor de servicios. Sobre la base del ejemplo mencionado anteriormente, es muy posible que, después de procesar el documento comercial recibido,
Esta transformación del modelo de datos en tiempo de ejecución agrega una sobrecarga de procesamiento y complica el diseño de las composiciones de servicios. [5] Para evitar la necesidad de una transformación del modelo de datos, el patrón de esquema canónico dicta el uso de modelos de datos estandarizados para aquellos documentos comerciales que los servicios procesan comúnmente en un inventario de servicios. [6] [7]

Este patrón de diseño está totalmente respaldado por la aplicación del principio de diseño del contrato de servicio estandarizado . El principio de diseño del contrato de servicio estandarizado aboga por que los contratos de servicio se basen en modelos de datos estandarizados. Esto se logra realizando un análisis del plan de inventario de servicios [8]para averiguar los documentos comerciales comunes que se intercambian entre servicios. Estos documentos comerciales luego se modelan de manera estandarizada. Por ejemplo, en el caso de los servicios web, los documentos comerciales se modelan como esquemas XML. Una vez que existe una capa de representación de datos estandarizada en un inventario de servicios, diferentes contratos de servicios pueden hacer uso de los mismos modelos de datos si necesitan intercambiar los mismos documentos comerciales. Esto elimina la necesidad de cualquier transformación del modelo de datos y reduce la sobrecarga de procesamiento asociada con la transformación del modelo de datos. También aumenta el potencial de reutilización de un servicio, ya que ahora el servicio se puede consumir sin necesidad de ninguna lógica de transformación de modelo de datos personalizada. En cierto sentido,[9] patrón de diseño.


Diagrama A
Diagrama A El
Servicio A utiliza un modelo de datos diferente en comparación con el Servicio B para el mismo documento comercial. Cuando se intercambian mensajes, se debe realizar la transformación del modelo de datos en tiempo de ejecución.
Diagrama B
Diagrama B
Ambos servicios utilizan el mismo modelo de datos para representar un documento comercial en particular. Como resultado, no se requiere ninguna transformación del modelo de datos cuando se intercambian mensajes.