I. INTRODUCCIÓN
A SOA
SOA es el acrónimo
de Service Oriented Architecture (Arquitectura orientada a
servicios).
Es un paradigma
de desarrollo (y estrategia de TI) que descompone las
aplicaciones monolíticas en un conjunto discreto de funciones
de negocio, implementadas mediante tecnologías
estándares que faciliten su interoperatividad.
Estas funciones de negocio se utilizan para construir aplicaciones
que satisfagan rápidamente los requisitos del negocio.
En SOA los datos y
la lógica de negocio están encapsulados en componentes
de negocio modulares con interfaces documentados (Gartner).
SOA es mucho más
que las tecnologías como ESB, WS …
¿Qué
diferencias hay entre SOA y OO, CORBA, COM, etc …?
Tienen el mismo
objetivo: la reutilización pero la diferencia clave es
la “neutralidad” tecnológica. SOA no
está basado en tecnologías concretas de proveedores
concretos, ni plataformas concretas, ni sistemas operativos
concretos.
Esta “neutralidad”
de SOA permite la reusabilidad en entornos heterogéneos.
Es importante hacer
notar que SOA no es un sinónimo de WebServices. Los
WebServices son una de las posibles tecnologías que podemos
utilizar para implementar SOA, aunque SOA está implantándose
rápidamente gracias a los servicios web y los WebServices son
el estándar de facto para implementación de
arquitecturas SOA
SOA no es un producto,
es un concepto. Es una arquitectura orientada a servicios que
permite la interoperabilidad entre entornos heterogéneos y
concibe las aplicaciones como colecciones de servicios. Estos
servicios se comunican entre si para transferirse datos, ejecutar
tareas o coordinar una actividad.
SOA permite la
construcción de aplicaciones a partir de servicios débilmente
acoplados mediante:
Servicios
modulares débilmente acoplados, distribuidos y con
transparencia de localización.
Mayoritariamente
síncronos
Interfaces
basados es estándares
Modelos de
interacción basados en Petición/Respuesta uno a uno
Infraestructura
extensible y servicios compartidos
Implementar SOA
requiriere una infraestructura flexible y la existencia de unos
servicios compartidos entre aplicaciones (Seguridad SSO, etc…).
Implementar SOA
requiere un cambio de enfoque:
|
Arquitecturas distribuidas basadas en componentes
|
Service Oriented Architecture
|
|
Orientadas a funcionalidad
|
Orientadas a procesos
|
|
Diseñadas para que duren
|
Diseñadas para el cambio
|
|
Ciclo de desarrollo largo
|
Desarrollo interactivo e iterativa
|
|
Centradas en coste
|
Centradas en el negocio
|
|
La unidad es la aplicación
|
Orquestación de servicios
|
|
Altamente integradas
|
Agiles y adaptables
|
|
Homogéneas en cuanto a tecnologías
|
Tecnológicamente
heterogéneas
|
|
Orientadas a objetos
|
Orientadas a mensajes
|
|
De implementación conocida
|
Abstracción
|