El contrato de servicio estandarizado es un principio de diseño de software [1] aplicado dentro del paradigma de diseño de orientación al servicio para garantizar que los contratos de servicio [2] dentro de un inventario de servicios [3] (empresa o dominio) se adhieran al mismo conjunto de estándares de diseño. [4] Esto facilita los contratos de servicios estandarizados en todo el inventario de servicios. [5]
Propósito
La agilidad prometida por una arquitectura orientada a servicios (SOA) generalmente se mide en términos del nivel de reutilización de sus servicios contenidos. Sin embargo, esta reutilización se relaciona directamente con la forma en que el contrato de servicio define las capacidades del servicio. Un servicio construido sobre un contexto funcional potencialmente reutilizable [6] pero con un contrato que no transmite correctamente esta reutilización no alcanza su potencial de reutilización.
Dentro de las soluciones orientadas a servicios, un contrato de servicio representa un artefacto fundamental, ya que este es el único medio a través del cual los servicios interactúan entre sí o con otros programas del consumidor. Esto crea una gran necesidad de estandarizar los contratos de servicios para que los servicios sean reutilizables y recomponibles tanto como sea posible. Para lograr esto, es necesario aplicar el principio de diseño de contrato de servicio estandarizado, ya que su aplicación da como resultado contratos de servicio estandarizados que se basan en estándares de diseño [7] establecidos dentro de un inventario de servicios.
Uno de sus objetivos es reducir la necesidad de transformaciones de datos ya que dos servicios interactúan entre sí, lo que se puede lograr si los contratos de servicios utilizan modelos de datos estandarizados, por ejemplo, esquemas XML si los servicios se han implementado como servicios web . Esto también ayuda a que los servicios sean más interoperables. Otro objetivo importante de este patrón de diseño es utilizar una forma estandarizada de expresar las capacidades del servicio para que su propósito y capacidad puedan entenderse fácilmente en el momento del diseño. [8]
Solicitud
Un contrato de servicio técnico [9] suele estar compuesto por un documento WSDL , esquemas XML y documentos de política. En consecuencia, este principio debe aplicarse en tres áreas de un contrato de servicio, como se describe a continuación:
Estandarización de expresiones funcionales
Las operaciones del servicio deben definirse utilizando convenciones de nomenclatura estandarizadas. Esto también se aplicaría a los nombres de los mensajes de entrada y salida de los constituyentes y sus nombres de tipo correspondientes. Esto ayuda a aumentar la interpretación correcta del contrato de servicio, lo que a su vez aumenta la reutilización e interoperabilidad del servicio. Cuando los contratos de servicio expresan claramente sus capacidades, también se reduce la posibilidad de duplicación de servicios.
Estandarización del modelo de datos
Dos servicios que intercambian mensajes basados en el mismo tipo de datos, por ejemplo, una orden de compra, pueden modelar esos datos de acuerdo con diferentes esquemas, lo que requiere la transformación del modelo de datos. Esto claramente agrega gastos generales y obstaculiza la interoperabilidad y la reutilización del servicio. Para evitar esta transformación, el principio del contrato de servicio estandarizado requiere modelos de datos estandarizados, lo que además ayuda a crear una arquitectura de representación de datos estandarizada que se puede reutilizar en toda la empresa para definir capacidades de servicio estandarizadas. La centralización de esquemas apoya directamente los objetivos de la estandarización del modelo de datos [10] , el patrón de diseño, que además apoya la creación de esquemas gobernados centralmente.
Estandarización de políticas
Las políticas de servicio representan los términos de uso de un servicio. Por lo tanto, para que un servicio sea reutilizable, sus requisitos de comportamiento deben expresarse de manera consistente utilizando expresiones de políticas estandarizadas basadas en vocabularios estándar de la industria. Este tipo de estandarización promueve aún más la separación de las políticas de los contratos de servicios en documentos de políticas individuales, lo que facilita la gobernanza centralizada. En algunos casos, dos políticas, aunque sintácticamente diferentes, pueden significar lo mismo; por lo tanto, los estándares de diseño deben dictar una estructura de política aceptable.
Consideraciones
La aplicación de este principio de diseño depende de los estándares de diseño a nivel de inventario de servicios. Esto requiere recursos adicionales, en términos de tiempo y esfuerzo. En segundo lugar, para aplicar este principio de diseño de manera eficaz, el contrato real debe estar físicamente aislado de la lógica y la implementación del servicio para que pueda basarse en los estándares de la industria. Esto se puede lograr mediante la aplicación de un patrón de diseño de contrato desacoplado [11] . Además, es necesario seguir el enfoque del "contrato primero" para que la lógica subyacente solo utilice modelos de datos estandarizados. Además, el requisito de modelos de datos centralizados puede terminar en la transmisión de datos redundantes entre servicios, ya que los datos reales que necesita un servicio pueden ser solo un subconjunto de los datos definidos en el esquema estandarizado impuesto al servicio.
Referencias
- ^ Principio de diseño
- ^ Contratos de servicio
- ^ Inventario de servicios
- ^ Cellary, Wojciech; Strykowski, Sergiusz. "Gobierno Electrónico Basado en Computación en la Nube y Arquitectura Orientada a Servicios". Actas de la 3ª conferencia internacional sobre teoría y práctica de la gobernanza electrónica . ICEGOV '09. págs. 5–10. doi : 10.1145 / 1693042.1693045 . ISBN 978-1-60558-663-2.
- ^ Michael Poulin. Evolución de los principios de la Orientación al Servicio: Contrato de Servicio, parte 2 Fecha de acceso: 12 de abril de 2010.
- ^ El límite del servicio, es decir, el tipo de funciones que proporciona el servicio
- ^ Tost. et al. Directrices para el uso de tecnologías de contratos de servicios web. Fecha de acceso: 12 de abril de 2010.
- ^ kou-Kai Lin. Un estudio preliminar sobre la migración orientada a servicios para una migración a pequeña escala. Fecha de acceso: 10 de abril de 2010.
- ^ Dado que los servicios se implementan generalmente como servicios web, este artículo se centra en la aplicación de este principio de diseño dentro del contexto de los servicios web.
- ^ Patrón de centralización de esquemas
- ^ Patrón de contrato desacoplado
- Mauro. et al. Integración de dispositivos orientada a servicios: análisis de patrones de diseño SOA. , págs. 1–10, 2010 43ª Conferencia Internacional de Hawai sobre Ciencias de Sistemas, 2010. Fecha de consulta: 8 de abril de 2010.
- Erl, Thomas (2008). Principios SOA de diseño de servicios . Prentice Hall. ISBN 0-13-234482-3.
- Paul-Alexandru Istoan. Líneas de productos de software y arquitecturas orientadas a servicios: ¿se pueden conectar? Fecha de acceso: 10 de abril de 2010.
- Youssef Achbany. A Multi-Agent Framework for Developing Adaptable and Open Service Systems. Fecha de acceso: 10 de abril de 2010.
- Kjell-Sverre Jerijærvi. Modelo de vencimiento de contratos SOA Fecha de acceso: 12 de abril de 2010.
enlaces externos
- Conceptos SOA
- Glosario de términos SOA