La autonomía del servicio es un principio de diseño que se aplica dentro del paradigma de diseño orientado a servicios para brindar a los servicios una mayor independencia de sus entornos de ejecución. [ 1 ] Esto resulta en una mayor confiabilidad, ya que los servicios pueden operar con menor dependencia de recursos sobre los que hay poco o ningún control.
Objetivo
El paradigma de diseño orientado a servicios enfatiza la reutilización de servicios, tal como lo dicta el principio de reutilización de servicios . Bajo este paradigma de servicios altamente reutilizados, la confiabilidad se vuelve fundamental para garantizar la longevidad del servicio. A su vez, la confiabilidad del servicio depende del control operativo que este ejerce sobre la lógica del servicio y los recursos de implementación subyacentes para reducir la dependencia de recursos externos sobre los que tiene poco o ningún control, como la lógica de servicio compartida o una base de datos compartida, que podrían no estar disponibles cuando el servicio los requiera.
El desarrollo de software tradicional basado en componentes también se enfrenta a los mismos requisitos de autonomía; en tales circunstancias, la provisión de autonomía y confiabilidad se deja al entorno de ejecución, por ejemplo, mediante la provisión de soporte de conmutación por error o mediante el despliegue de una solución en servidores dedicados. Sin embargo, dentro de la orientación a servicios, lo que está en juego es aún mayor, ya que una solución orientada a servicios puede estar compuesta por servicios [ 2 ] que existen fuera del límite organizacional. Por lo tanto, en este caso, lo que importa es el diseño del servicio en sí, y el servicio debe diseñarse de manera que ejerza el máximo control sobre cómo cumple su funcionalidad. El principio de autonomía del servicio intenta proporcionar pautas para diseñar servicios autónomos de manera que los servicios resultantes sean más predecibles y confiables.
Solicitud
La aplicación de la autonomía del servicio implica dos tipos de autonomía que permiten aumentar la autonomía general del servicio: la autonomía en tiempo de diseño y la autonomía en tiempo de ejecución.
Autonomía en la fase de diseño
La autonomía en la fase de diseño se refiere a la independencia con la que los servicios pueden evolucionar sin afectar a sus usuarios. Este tipo de autonomía es necesaria, ya que los recursos heredados subyacentes del servicio podrían requerir una revisión o la lógica del servicio podría necesitar una refactorización para hacerlo más eficiente.
La aplicación de los principios de acoplamiento flexible y abstracción de servicios ayuda a lograr autonomía en la fase de diseño, ya que su aplicación da como resultado servicios cuyos contratos están protegidos de su lógica e implementación y, por lo tanto, los servicios podrían rediseñarse sin afectar a sus consumidores.
Autonomía en tiempo de ejecución
La autonomía en tiempo de ejecución se refiere al grado de control que un servicio tiene sobre la forma en que el entorno de ejecución procesa su lógica de solución [ 3 ] . Cuanto mayor sea el control que un servicio tenga sobre su entorno de ejecución, más predecible será su comportamiento. La autonomía en tiempo de ejecución se logra proporcionando recursos de procesamiento dedicados al servicio. Por ejemplo, si la lógica del servicio realiza tareas que consumen mucha memoria, el servicio podría implementarse en un servidor con recursos reservados o conservados. Del mismo modo, al proporcionar copias de datos almacenadas en caché localmente, cuando corresponda, se puede reducir la dependencia del servicio de una base de datos compartida remota. Como resultado, aumenta la autonomía general del servicio.
Existe una relación directa entre la autonomía en tiempo de ejecución y la autonomía en tiempo de diseño. Aumentar la autonomía en tiempo de diseño incrementa automáticamente la capacidad de evolucionar el entorno de implementación del servicio.
Tipos de servicio
Si bien siempre es deseable maximizar la autonomía de los servicios, no siempre es posible diseñar cada uno de ellos con la máxima autonomía tanto en tiempo de diseño como en tiempo de ejecución. Por lo tanto, es necesario priorizar los servicios para abordar su autonomía según su valor para el negocio. Esto se puede lograr analizando el contexto funcional del servicio. Los servicios cuyos contextos funcionales son independientes de cualquier proceso de negocio en particular , como los servicios de entidad [ 4 ] y de utilidad [ 5 ] , son buenos candidatos para aumentar su autonomía. Esto se debe a que ofrecen funcionalidades de interés para diferentes tipos de consumidores. Por otro lado, los servicios específicos de procesos de negocio, como los servicios de tarea [ 6 ] y los servicios de tarea orquestada, son menos reutilizables y dependen de la autonomía individual de los servicios que los componen.
Consideraciones
La concesión de autonomía al servicio puede requerir infraestructura adicional y debe aplicarse según las necesidades y de forma priorizada. En ocasiones, puede ser necesario aislar los servicios e implementarlos en un entorno personalizado y dedicado, haciendo hincapié en el diseño del contexto funcional adecuado, ya que realizar cambios fundamentales en dicho servicio probablemente resulte difícil.
La autonomía de los servicios que integran recursos heredados puede ser difícil de predecir y aumentar. Esto podría requerir un análisis adicional por parte de los servicios públicos, ya que el nivel de autonomía depende de la funcionalidad que proporciona el servicio.
Referencias
- ↑ Wojciech Cellary, Sergiusz Strykowski. Gobierno electrónico basado en computación en la nube y arquitectura orientada a servicios [En línea]. Fecha de acceso: 17 de abril de 2010.
- ↑ "Composición del servicio" . Archivado del original el 12 de marzo de 2010. Consultado el 27 de febrero de 2010 .
- ↑ Principios de orientación al servicio [En línea]. Fecha de acceso: 17 de abril de 2010.
- ↑ Servicio de Entidad
- ↑ Servicio de utilidad
- ↑ Servicio de tareas
- Dennis Wisnosky. Principios y patrones en el Departamento de Defensa de los Estados Unidos [En línea]. Fecha de acceso: 15 de abril de 2010.
- 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: 8 de abril de 2010.
- Kees Leune. Control de acceso y arquitecturas orientadas a servicios [En línea]. Página 50. Fecha de acceso: 15 de abril de 2010.
- Jammes. et al. Comunicaciones de dispositivos orientadas a servicios utilizando el perfil de dispositivos para servicios web [En línea]. Fecha de acceso: 17 de abril de 2010.
- Orientado a servicios (informática empresarial)