ruedas

Un servicio, como cualquier software, tiene un ciclo de vida definido, desde su análisis hasta su retirada de producción. Sin embargo, un servicio no es exactamente igual que un programa tradicional, y su ciclo de vida tiene también algunas diferencias.

No es mi intención hablar de metodología. Hay muchos libros sobre esto. Sin embargo, me gusta ser práctico  y en mi opinión, el ciclo de vida de un servicio web debería ser algo parecido a esto:

  1. Identificación del servicio
    En esta etapa se identifica la necesidad de un nuevo servicio para responder a un requerimiento de negocio. Se registra el nombre del servicio y una descripción de su funcionalidad.
    Un servicio debe responder a una necesidad de negocio, así que la identificación del mismo debería hacerlo un analista funcional o incluso alguien de negocio.
  2. Análisis orientado a servicios

    Se realiza el análisis del servicio con arreglo a la metodología de desarrollo (que estará orientada obviamente a servicios). Entre otras cosas hay que ver si responde a una necesidad de negocio, si es reutilizable, si no está construido ya, etc. ec.
  3. Definición técnica del contrato

    Se define el contrato del servicio, con su interfaz de entrada/salida. En el caso de un servicio web, sería el fichero WSDL.
    Todavía no está implementado, pero sin embargo ya es utilizable: con el WSDL por ejemplo, se puede hacer un servicio dummy generado por una herramienta que puede servir por ejemplo, para desarrollar le interfaz gráfico de una aplicación que llama a este servicio.
  4. Validación del servicio

    En esta etapa, el rol designado por el gobierno SOA, validará el servicio según esté bien definido, no exista ya y el servicio sea reutilizable.
  5. Diseño
    Diseño técnico de la implementación del servicio y depende  de la arquitectura de desarrollo empleada
  6. Construcción.
    Desarrollo del servicio con la herramienta de desarrollo y el framework de desarrollo.
    Gracias a que tenemos el contrato, la construcción de la parte cliente y de la parte servidora se puede “desacoplar“, incluso hacerla equipos diferentes en un momento diferente.
  7. Pruebas de integración

    Pruebas de integración con otros servicios. En el ambiente local de desarrollo se usarán servicios dummies para simular la llamada a los servicios reales.
    Estas pruebas en SOA pueden ser un verdadero dolor de cabeza.
  8. Producción

    El servicio se pone en producción (tras pasar por los diferentes entornos de desarrollo y preproducción).
En esta etapa, el servicio recibe las invocaciones de sus clientes.
  9. En retiro

    El servicio se marca para su retirada. Aunque sigue en producción, este es el tiempo que tienen los clientes para adaptarse a su retiro (por ejemplo 6 meses). Normalmente, esto significará que tiene que invocar a una nueva versión del servicio.
  10. Retirado
    El servicio finalmente deja de estar en producción. Los clientes ya se tienen que haber adaptado para no invocarlo.

¿Echais en falta algún estado más? ¿Os sobra alguno?

Anuncios