Cuando se necesita desarrollar una plataforma de integracion, es necesario conocer que parámetros deben ser utilizados para seleccionar las tecnologias que la sustentaran; ya sean libres o propietarias.
Un marco de arquitectura tecnológica debe proporcionar:
- Simplicidad.
- Flexibilidad y mantenibilidad (Tolerancia ante Cambios).
- Reusabilidad.
- Desacoplamiento.
- Extensibilidad.
Una plataforma de integracion debe poseer los siguientes atributos:
- Debe poseer una arquitectura de integración desacoplada, ágil, adaptable y de tecnología neutral.
- Debe garantizar el bajo impacto ante cambios en los sistemas de soporte operacional y los sistemas de negocio.
- Debe permitir una disminución significativa de la complejidad y dependencia tecnología de los ambientes heterogéneos.
- Debe considerar la evolución de las tecnologías y su adecuacion.
- capacidad de desacoplamiento mediante plug-in
Son estas las premisas que deben guiar el camino para seleccionar las tecnologías que implementaran los diversos estilos de arquitectura, basados sobre una especificación formal y sólida.
Para terminar algunas características:
- Debe poseer capacidades de Plug-in.
- Capacidad de interoperar con tecnologias distintas (conectores / adaptadores, etc.).
- Debe proporcionar un modelo desacoplado entre componentes.
- Los componentes no deben interactuar con otros componentes directamente.
- La semántica debe estar basada en mensajes.
- La definición de la secuencia de mensajes durante la ejecución de una operación debe estar basada en MEP.
- Clara separación entre la lógica de negocio (procesamiento) de la lógica de comunicación.
- Debe existir una clara separación entre los proveedores y consumidores de servicios.
- El modelo de intercambio de mensajes debe estar basado en WSDL 1.1 o 2.0.
- No usar metadatos propietarios en la definición de objetos de negocio (Xml Schemas).
- Modelo de implementación no-intrusivo.
- Ensamblado de servicios desde otro servicio, basado en reglas de negocio.
- Soporte de servicios sincronos, asíncronos, y conversacionales.
- Automatización de la transformación entre estructuras de datos dispares (semántica).
- Soporte para la simulación, testing y debuging.
- Definición del servicio con independencia de su implementación, localización o uso.
- Capacidades de “Inversion of Control Containers”.
- Implementación del patrón de diseño “Dependency Injection pattern”.
- Capacidades y soporte para arquitecturas Event-driven architecture (EDA) y service-oriented architecture (SOA).
- Integración con JBI.
- Estandarización de la arquitectura para el enrutamiento de mensajes.