La autonomía del servicio es un principio de diseño que se aplica dentro del paradigma de diseño de orientación al servicio , para proporcionar servicios con mayor independencia de sus entornos de ejecución. [1] Esto da como resultado una mayor confiabilidad, ya que los servicios pueden operar con menos dependencia de recursos sobre los cuales hay poco o ningún control.
Propósito
El paradigma del diseño de orientación al servicio enfatiza la reutilización del servicio según lo dicta el principio de diseño de la reutilización del servicio . Bajo este paradigma de servicios altamente reutilizados, la confiabilidad se vuelve crítica para asegurar la longevidad del servicio. A su vez, la confiabilidad del servicio depende del control operativo del servicio de la lógica del servicio y los recursos de implementación subyacentes para reducir la dependencia de recursos externos sobre los cuales tiene poco o ningún control, como la lógica del servicio compartido o una base de datos compartida, que pueden no estar disponibles cuando lo requiera. el servicio.
El desarrollo de software tradicional basado en componentes también se enfrenta a los mismos requisitos de autonomía, el suministro de autonomía y confiabilidad, en tales circunstancias, se deja al entorno de tiempo de ejecución real, por ejemplo, proporcionando soporte de conmutación por error o implementando una solución en servidores dedicados. Sin embargo, dentro de la orientación al servicio, lo que está en juego es aún mayor, ya que una solución orientada al servicio puede estar compuesta por servicios [2] que existen fuera de los límites de la organización. Entonces, en este caso, es el diseño del servicio en sí lo que importa 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 modo 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 incrementar 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 tiempo de diseño
La autonomía en tiempo de diseño se refiere a la independencia con la que los servicios podrían evolucionar sin afectar a sus consumidores de servicios. Este tipo de autonomía es necesario ya que los recursos heredados subyacentes del servicio pueden necesitar una revisión o la lógica del servicio puede necesitar una refactorización para que sea más eficiente.
La aplicación del acoplamiento flexible del servicio y los principios de abstracción del servicio ayuda a lograr la autonomía en el tiempo 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 de servicios.
Autonomía en tiempo de ejecución
La autonomía en tiempo de ejecución se refiere al grado de control que tiene un servicio sobre la forma en que su lógica de solución [3] es procesada por el entorno de tiempo de ejecución. Cuanto más control tenga un servicio sobre su entorno de tiempo 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 requieren mucha memoria, entonces el servicio podría implementarse en un servidor con recursos reservados o conservados. De manera similar, al proporcionar copias de datos almacenadas en caché local, cuando corresponda, se puede reducir la dependencia del servicio de una base de datos compartida remota. Como resultado, se incrementa 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. El aumento de la autonomía en el tiempo de diseño aumenta automáticamente la capacidad de evolucionar el entorno de implementación del servicio.
Tipos de servicio
Aunque siempre es deseable aumentar la autonomía del servicio al máximo, no siempre es posible diseñar todos y cada uno de los servicios con el máximo tiempo de diseño y autonomía de tiempo de ejecución. Como resultado, los servicios deben priorizarse para que su autonomía pueda abordarse de acuerdo con su valor para el negocio. Esto podría hacerse echando un vistazo al contexto funcional del servicio. Los servicios cuyos contextos funcionales son independientes de cualquier proceso empresarial particular, por ejemplo, los servicios de entidad [4] y de servicios públicos [5] , son buenos candidatos para aumentar su autonomía. Esto se debe a que ofrecen una funcionalidad que interesa a diferentes tipos de consumidores. Por otro lado, los servicios específicos de procesos de negocio, por ejemplo, tareas [6] y servicios de tareas orquestadas, son menos reutilizables y dependen de la autonomía individual de sus servicios compuestos.
Consideraciones
La provisión de autonomía de servicio puede requerir infraestructura adicional y debe aplicarse según las necesidades y las prioridades. En algunas ocasiones, es posible que los servicios deban aislarse e implementarse en un entorno personalizado y dedicado, con énfasis en el diseño del contexto funcional correcto, ya que es probable que sea difícil realizar cambios fundamentales en dicho servicio.
La autonomía de los servicios que encapsulan los recursos heredados puede ser difícil de predecir y aumentar. Esto puede requerir un análisis adicional por parte de los servicios públicos, ya que el nivel de autonomía depende de la funcionalidad proporcionada por 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
- ^ 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: análisis de patrones de diseño SOA. [en línea], págs. 1 a 10, 2010 43ª Conferencia Internacional de Hawai sobre Ciencias de Sistemas, 2010. Fecha de consulta: 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 mediante el perfil de dispositivos para servicios web [en línea]. Fecha de acceso: 17 de abril de 2010.