Introducción
Un servicio, ya sea físico como un servicio de envío, o implementado por un agente de software, siempre está diseñado y refinado para ser reutilizado por el mayor número posible de consumidores. Esta es la esencia de la Arquitectura Orientada a Servicios: reducir los costos, riesgos y retrasos de las soluciones de construcción mediante la factorización e implementación de activos de TI para que puedan reutilizarse, a menudo en situaciones desconocidas en el momento del diseño. Como tal, la gobernanza SOA no es diferente de la gobernanza de datos y TI que tiene como objetivo diseñar modelos de información o seleccionar tecnologías que puedan reutilizarse más allá de los límites de un proyecto determinado. Los servicios deben regirse para que sean reutilizables: todos los consumidores previsibles deben poder expresar sus necesidades, que posteriormente se priorizan y escalonan, mientras se asigna un propietario del servicio y se define un modelo de financiación.
En un artículo anterior, Stefan Tilkov analizó más específicamente los roles en el gobierno de SOA (1). Mi objetivo aquí es ayudarlo a establecer una organización de Gobierno de servicios en términos de personas, procesos y tecnologías.
Carta de Gobernanza de servicios
El objetivo principal de la gobernanza de servicios es lograr los beneficios de una Arquitectura Orientada a Servicios fomentando la creación de servicios reutilizables de clase empresarial. Como organización multifuncional, la gobernanza del servicio garantiza la resolución oportuna de problemas y conflictos debido a las compensaciones necesarias que se realizan cuando se definen los requisitos compartidos.
En particular, la organización de Gobernanza de servicios está autorizada para definir límites claros de propiedad de servicios y especificar un modelo de financiación justo.
Service Governance supervisa la implementación y reutilización de servicios en toda la organización. Un alto grado de reutilización de servicios, un flujo constante de implementaciones de servicios de clase empresarial, así como jubilaciones de servicios sin problemas, son los indicadores de una gobernanza exitosa.
El gobierno de servicios no debe solaparse con el gobierno de TI tradicional y la Arquitectura Empresarial; definen los estándares de las tecnologías SOA y la hoja de ruta que conduce a mayores niveles de madurez SOA, mientras que la organización de Gobierno de servicios tiene la tarea de evolucionar el panorama de servicios.
En general, el papel de la gobernanza de servicios es pasivo y los candidatos de servicios de proceso identificados por proyectos específicos o a nivel de unidad de negocio. Sólo cuando una organización ha alcanzado un alto nivel de madurez, la gobernanza de los servicios puede iniciar una identificación sistemática de arriba hacia abajo de los servicios institucionales y establecer su realización independientemente de cualquier proyecto.
En cualquier caso, la organización de gobierno debe estar facultada para crear servicios empresariales independientemente del presupuesto y las restricciones de recursos del proyecto que inicialmente consumirá el servicio candidato. La razón es que la reutilización generalmente viene con un alcance más grande que se traduce en un precio más alto.
La organización de gobierno es el administrador de las definiciones de servicios que se espera que se gestionen como activos corporativos. También es responsable de mantener la trazabilidad y el cumplimiento con otros activos empresariales, como los modelos de procesos de negocio y el modelo de datos de referencia. Volveremos sobre los vínculos a un modelo de datos de referencia o empresa en la última sección del documento.
Personas
El artículo mencionado anteriormente describe los roles1 involucrados en actividades de gobernanza de servicios desde una perspectiva de implementación de servicios. Cuando una organización está comenzando su Arquitectura Orientada a Servicios, estos roles son suficientes para garantizar la prestación de servicios de clase empresarial, especialmente cuando pertenecen a un Centro de Excelencia SOA.
Rol | Descripción |
Propietario del Servicio Comercial |
|
Propietario del Servicio Técnico |
|
Arquitecto de Plataforma SOA |
|
Servicio Desarrollador |
|
A medida que una organización madura y aumenta el número de candidatos al servicio, es útil presentar a un líder de gobernanza que sea el propietario del proceso y los recursos para asegurarse de que las actividades de gobernanza se ejecuten adecuadamente y los problemas se resuelvan de manera oportuna. Debería contar con la asistencia de un consejo de gobernanza multifuncional y un bibliotecario de servicios.
Rol | Descripción |
Líder de Gobernanza |
|
Consejo de gobierno |
|
Bibliotecario de Servicio |
|
Vemos tres niveles principales de madurez con respecto a la organización de Gobernanza de Servicios.
Nivel de madurez | Organización |
Establecimiento |
|
Ejecución |
|
Optimizado |
|
La figura 1 representa algunas de las interacciones entre los roles involucrados en la gobernanza de los Servicios.
Figura 1. Interacciones entre diferentes componentes de gobierno
La clave para construir una organización de gobierno de servicios exitosa es, de nuevo, ser ágil y reunir los recursos, procesos y tecnologías suficientes para satisfacer sus necesidades, pero no más. Una gran organización de gobernanza de servicios sin un canal razonable de candidatos de servicio perderá rápidamente el impulso y perderá la oportunidad de dar comentarios adecuados sobre algunos candidatos de servicio.
Quieres construir una organización que promueva la reutilización de servicios, nada menos, nada más.
Proceso
Procesos y actividades
Hay cinco tipos de actividades realizadas por la organización de gobierno SOA:
- Gestión de Candidatos de Servicio
- Gestión de cambios de Servicio
- Gestión de consumidores de servicio
- Gestión de Hoja de Ruta de Servicio
- Cambios en la Política de Gobierno de SOA
La Figura 2 representa algunas de las actividades que se pueden realizar durante el proceso de Gestión de candidatos de Servicio. Un equipo de proyecto puede identificar un servicio y crear una propuesta de servicio. Esta propuesta se aprueba, se aprueba con modificaciones o se rechaza (como un servicio empresarial) cuando este servicio candidato no es potencialmente reutilizable por otras partes de la empresa.
Una vez aceptado el candidato al servicio, se definen la propiedad y el modelo de financiamiento y se especifican los SLA y OLAs con la ayuda del propietario del servicio y los consumidores potenciales.
Una vez realizado el servicio, sus metadatos se publican en el registro y el repositorio. En las grandes organizaciones, se recomienda hacer un seguimiento de los servicios en construcción para evitar propuestas de servicios concurrentes.
Las actividades de gestión de cambios a menudo son idénticas a las actividades realizadas durante la revisión de un candidato de servicio. Actividades como la propiedad del servicio, el modelo de financiamiento o la especificación de SLA/OLAs podrían ser opcionales.
Un aspecto crítico de la gestión del cambio es la gestión eficaz de los servicios compatibles con reenvíos (2).
Las actividades de Gestión del Consumidor de servicio son realizadas principalmente por el bibliotecario de servicio a menos que haya cambios que sean necesarios para permitir que este nuevo consumidor consuma el servicio. El bibliotecario puede ayudar a los consumidores del servicio a identificar el servicio objetivo y adquirir una copia de sus metadatos.
Las actividades de gestión de la hoja de ruta del servicio se proporcionan si el Gobierno del Servicio actúa proactivamente para identificar servicios sin solicitudes de proyecto específicas. En ese momento, la Gobernanza de los Servicios debe tener presupuestos para encargar el desarrollo de estos servicios antes de los proyectos que los consumirán. Este es un factor crítico de éxito de la gobernanza, ya que el diseño y la implementación de servicios reutilizables podrían ir mucho más allá del alcance, los medios y el calendario de un proyecto determinado. Las propias actividades de gobernanza llevan tiempo y pueden recomendar actualizaciones prolongadas a un candidato de servicio. Por esta razón, es tan importante que la organización de gobierno gestione los calendarios y las fases de los requisitos específicos del consumidor de manera oportuna, minimizando el impacto de los calendarios de entrega de soluciones.
Figura 2. Actividades de Gestión de candidatos de servicio
Por último, una organización de gobierno puede recurrir al gobierno de TI para definir o cambiar sus políticas de operaciones.
Metadatos de servicio
La propuesta de servicio candidato contiene una descripción de la interfaz de servicio (no necesariamente en una forma legible por máquina), así como todos los requisitos funcionales y no funcionales asociados al servicio que se utilizarán, por ejemplo, para definir los SLA y OLAs. La Arquitectura de servicio de foro CBDI & Meta modelo de ingeniería para SOA (3) proporciona una buena vista de la información relativa a un servicio que se captura durante las primeras etapas del ciclo de vida y se refina con el tiempo.
El metamodelo SAETM del Foro CBDI contiene una definición de servicio, que incluye operaciones propuestas, políticas y servicios relacionados, así como una clasificación de servicios. El foro de CBDI también recomienda incluir una definición de servicio a nivel de negocio que relacione los procesos de negocio, las capacidades de negocio y las reglas de negocio… a la definición de servicio.
Toda esta información podría ser utilizada cuando un consumidor está buscando un servicio en particular. Esta es la razón por la que es importante capturarla de una manera estructurada, incluso si los estándares de descripción legibles por máquina, como WSDL, no admiten (todavía) este tipo de información.
El metamodelo SAE™ del Foro CBDI proporciona una sección separada para la especificación del servicio. El aspecto interesante de esta parte del metamodelo es que realiza un seguimiento de los tipos de información que están involucrados en el servicio como argumentos de operación. Esta capacidad no está bien soportada por WSDL, por ejemplo, que solo define las representaciones de los tipos de negocio que se intercambian como partes de invocaciones de operación, pero no los tipos de negocio en sí.
La trazabilidad de los tipos de información es fundamental porque impide la introducción de semántica específica de la operación. Siempre se debe definir un tipo de mensaje con vínculos estrechos con el modelo de datos de referencia. De hecho, los procesos de gobernanza SOA deben asegurarse de que no se defina ninguna semántica adicional en el tipo de mensaje en comparación con el modelo de datos de referencia.
El metamodelo SAE™ del Foro CBDI también realiza un seguimiento de los componentes de negocio que se utilizan en una implementación de servicio.
Factores de reutilización de servicios
Hay tres factores importantes a considerar al ayudar a promover la especificación de servicios reutilizables. En primer lugar, una interfaz de servicio debe estar completa con respecto a sus consumidores actuales y potenciales. Una buena métrica para rastrear es el número de cambios en la interfaz y la implementación a medida que se incorporan nuevos consumidores, tanto para los que son compatibles con forwards como para los que no lo son.
En segundo lugar, debemos considerar los Acuerdos de Nivel de Servicio y Operaciones (SLA y OLAs) apropiados. Algunos SLA podría funcionar perfectamente para un consumidor y ser una muestra de tapón para otro. Los acuerdos de nivel de servicio y las OLAS también pueden ser difíciles de lograr. La organización de gobierno de SOA debe realizar un seguimiento de los incidentes y monitorear el número de cambios en los SLA y OLAs que resultaron de estos incidentes, así como el número de cambios en la implementación del servicio para cumplir efectivamente con sus SLA y OLAs.
Por último, una organización de gobernanza de servicios debe tratar de identificar a todos los consumidores potenciales de un candidato de servicio e involucrarlos en el proceso de ratificación de la propuesta de interfaz de servicio. Una buena métrica para rastrear allí es el número de clientes inesperados encontrados después de que se diseñó un servicio. Esta métrica debe interpretarse con cuidado, ya que podría significar que el servicio estaba bien diseñado y atraía a muchos consumidores, o podría significar que no se gastó suficiente tiempo para identificar a los consumidores adecuados, lo que dio lugar a muchos cambios posteriores.
Las actividades y roles de gobernanza de servicios a menudo son compatibles con una solución de gobernanza que se construye en torno a un registro y repositorio de servicios. A pesar de que es bastante trivial decir esto, es importante tener siempre en cuenta que un activo solo se puede reutilizar en la medida en que se pueda encontrar. Un registro es el catálogo o índice que actúa como el» sistema de registro » para los servicios dentro de un SOA (4).
Un registro y repositorio SOA suelen admitir las siguientes funciones:
- Almacena metadatos de servicio, como descripciones (formatos de mensajes y operaciones), enlaces (protocolos de comunicación), puntos finales (el recurso accesible de red que implementa el servicio)
- Proporciona un mecanismo de clasificación para ayudar a categorizar y organizar los servicios
- Permite a los usuarios publicar nuevos servicios (a medida que se identifican, realizan e implementan) en el registro y navegar y buscar servicios existentes o planificados
- Notificar a los consumidores de servicios de cambios planificados
- Gestionar los informes de SLA y OLA, así como el consumo estadísticas
- Gestionar de forma segura los procesos y entregables de gobernanza
- Proporcionar capacidades de auditoría para realizar un seguimiento de los cambios y autorizaciones aplicados a las descripciones de activos
Los procesos de gobernanza están distribuidos geográficamente en naturaleza y en colaboración. La gestión de estos procesos es fundamental para que las diferentes partes lleguen a un consenso sobre la definición y realización del servicio.
Dado que el registro y el repositorio son el sistema de registro de la información de servicio tanto en tiempo de diseño como en tiempo de ejecución, la seguridad que rodea al «registro de servicio» es crítica para evitar cualquier sustitución de puntos finales, por ejemplo.
Relación con otras actividades de gobernanza
La gobernanza de servicios es un nuevo tipo de gobernanza como parte de las actividades de gobernanza de TI más amplias dirigidas por grupos de Arquitectura Empresarial. La gobernanza de TI debe seguir teniendo el control de la propia gobernanza de la plataforma SOA, mientras que la Gobernanza de los servicios debe centrar sus actividades en el diseño de servicios para su reutilización en los niveles de Empresa, Realización de Servicios y entrega de soluciones (Figura 3). A nivel empresarial, el Gobierno de servicios debe trabajar en estrecha colaboración con el gobierno de TI para cosechar el modelo de procesos de negocio de la empresa para ayudar a identificar candidatos de servicios basados en un análisis descendente y establecer una hoja de ruta para la implementación de estos servicios. Como hemos visto en la sección de procesos anterior, el nivel de servicio es donde se llevan a cabo la mayoría de las actividades de la gobernanza de SOA. Todas estas actividades cuentan con el apoyo de un registro y un repositorio.
A nivel de solución, la organización de gobernanza de servicios debe evaluar y dirigir el nivel de cumplimiento con respecto a las directrices de infraestructura y servicio SOA.
El Gobierno de servicios tiene fuertes vínculos con el Gobierno de Datos a través de la utilización del Modelo de Datos de Referencia empresarial. El equipo de gobernanza de servicios debe aplicar la utilización de la semántica del modelo de datos de referencia para el diseño de los tipos de mensajes de operación.
El objetivo aquí no es crear un «Modelo de Información Canónica». En una Arquitectura Orientada a los Servicios, sería ingenuo pensar que los consumidores siempre estarán en condiciones de adoptar el punto de vista del proveedor o que tanto el proveedor como el consumidor siempre pueden adoptar el mismo punto de vista. Incluso si esto fuera cierto hoy en día, las horas extras, los consumidores y los proveedores pueden no estar en condiciones de evolucionar al mismo tiempo hacia una versión más nueva de la interfaz (ya sea compatible hacia adelante o hacia atrás).
Figura 3. Relación entre la gobernanza SOA y otras actividades de gobernanza
Esta evolución divergente a menudo se maneja utilizando un mediador, y en particular transformaciones de mensajes. A pesar de que la mediación no es explícita en la arquitectura de servicios web del W3C (5), los profesionales de SOA la han utilizado sistemáticamente hace mucho tiempo para lograr un mayor nivel de acoplamiento flexible y permitir evoluciones autónomas entre los consumidores y los proveedores. Estas transformaciones son inevitables y esta capacidad debe integrarse en su infraestructura SOA. Por cierto, la mediación no requiere un «Modelo Común de Información». Si utilizara dicho «modelo de información común» independiente de la interfaz del proveedor y el consumidor y aún quisiera lograr un acoplamiento flexible, incurriría en el costo de dos transformaciones, sin mencionar que aún necesita transformar el formato de su mensaje en un conjunto de datos consumible mediante la implementación del proveedor y el consumidor.
Los primeros pasos hacia transformaciones más manejables, es derivar interfaces de consumidor y proveedor del modelo de datos de referencia. En el modelo de datos de referencia, la estructura de datos es menos importante que la normalización de la semántica. Estas semánticas se gestionan con gran precisión mediante el gobierno de datos. Por lo general, el modelo de datos de referencia establece la trazabilidad de artefactos físicos, como esquemas de bases de datos y libros de copias COBOL. Esta trazabilidad puede resultar muy útil durante la implementación del servicio, mientras que el uso de semántica normalizada ayudará a simplificar el desarrollo de mapas de transformación entre consumidores y proveedores.
Conclusión
La gobernanza de servicios es un aspecto esencial de una Arquitectura orientada a Servicios exitosa. Su establecimiento debe planificarse y probarse al principio de las fases iniciales de una iniciativa SOA. Sin embargo, una organización de gobernanza a gran escala impulsada por un proceso riguroso debe lanzarse solo cuando el canal de servicios sea lo suficientemente grande como para mantener al equipo motivado y informado. Si las actividades de gobernanza están demasiado distantes en el tiempo, el equipo podría perder el interés y el conocimiento crítico para ejecutar sus actividades correctamente. El repositorio Registry & es un ingrediente clave para una gobernanza exitosa, ya que administra el «registro de servicio». El objetivo final de la Gobernanza de servicios es permitir la especificación, realización y operación de activos de TI reutilizables. Con el tiempo, se espera que la gobernanza de los servicios evolucione para ser mucho más proactiva en la puesta en marcha de servicios esenciales para las misiones.