4/26/2009

Verticales minimas para una plataforma de servicio

Cuando abordamos un proyectos SOA, es importante partir de un conjunto de verticales para asegurar que aspectos operacionales mínimos estén contemplados en la arquitectura de la plataforma de servicios. Estas son las verticales o áreas de alto nivel.

Vertical Modelo de Datos
Esta vertical contiene el modelo de información común y servicios genéricos. Estos son sus objetivos:
  1. Estandarizar el modelo de datos, contratos e intercambios de los servicios expuestos.
  2. Establecer una semántica común.
  3. Establecer normas de diseño para garantizar la coherencia y compatibilidad; que eviten características irregulares en las interfaces y en la semántica de los servicios.
Vertical Repositorio y metadata de servicios
Esta vertical contiene un inventario de los servicios, donde se describen características como su ubicación, políticas asociadas para sus invocaciones, contratos, etc. Estos son sus objetivos:
  1. Establecer una API normalizada para acceder a la información de los contratos de servicios desplegados.
  2. Conocer los contratos, semántica de datos; e intercambio de mensajes.
  3. Conocer las políticas, y requisitos técnicos para la invocación de servicios, protocolos, transporte, etc.
Vertical Marco de Gobierno
Esta vertical, contiene un marco de gobierno para la infraestructura de servicios; que debe permitir el seguimiento del comportamiento del servicio en tiempo de ejecución. Este marco debe proporcionar la siguiente información:
  1. Que servicios son ejecutados, quien los invoco, datos intercambiados, frecuencia.
  2. Cantidad de mensajes, procesados por un servicio al mismo tiempo.
  3. Registro de Errores de comportamiento.
  4. Metadatos de apoyo, para controlar el ciclo de vida de un servicio.
  5. Suministrar información sobre el comportamiento transaccional, timeout, y el control de la semántica transaccional de la invocación del servicio.
  6. Evaluar el rendimiento, etc.
  7. Supervisar los diversos SLA (Nivel de Acuerdos de Servicio), umbrales y latencia de los servicios.
  8. Monitoreo de de los niveles de servicios acordados, para detectar cuellos de botella en el rendimiento, excepciones y registros de auditoría.
  9. Estadísticas Generales.
Vertical Marco de Aspectos
Por ultimo una vertical que desarrolla diversos aspectos:

Seguridad
  1. Puede contemplar la utilización de WS-Security y WS-Reliability dentro del modelo de intercambios de servicios.
  2. Puede contemplar el cifrado y firmado digital de los mensajes intercambiados.
  3. Debe incluir un modelo de seguridad normalizado para la autentificación, autorización y auditoría (ventanas de tiempo).
Transaccional
  1. Debe proporcionar un modelo de implementación que garantice la coherencia, fiabilidad, y consistencia durante la presencia de fallos, mediante transacciones atómicas (ACID).
  2. Identifica posibles esquemas de implemntacion, por ejemplo (WS-Transaction, Servicios de Compensacion, JMS (Modelo Asincrono, Mensajes Persistentes), completador, etc.)
Excepciones
  1. Debe proporcionar un modelo robusto para el manejo de excepciones que pueden ser aplicadas de manera uniforme sobre reglas de negocio.
Reglas de Negocio
  1. Proporciona un repositorio para las reglas de negocio asociadas a los servicios.
Eventos
  1. Debe proporcionar una arquitectura robusta para el manejo de eventos sobre un canal de entrega asíncrona, con el objetivo que el consumidor no se vea afectado por la disponibilidad o la velocidad en la que el proveedor opera, evitando la pérdida de consistencia de los datos transmitidos ante condiciones de excepción.
Por supuesto, existen otro elementos a considerar, pero podemos partir de una linea base bastante consistente.