Arquitectura (SOA) - Componentes principales
Proveedor de servicios (Service Provider)
- Implementa la lógica del servicio
- Publica la funcionalidad disponible
- Define cómo puede ser consumido
Consumidor de servicios (Service Consumer)
- Aplicación o sistema que utiliza el servicio
- No depende de la implementación interna
Registro de servicios (Service Registry)
- Directorio donde se publican los servicios
- Permite descubrir servicios
- Ejemplo: UDDI
Principios de diseño de los servicios SOA
Para que una arquitectura SOA sea efectiva, los servicios deben cumplir con los siguientes principios:
- Bajo acoplamiento: mínima dependencia entre servicios
- Alta cohesión: cada servicio cumple una función específica
- Reutilización: un servicio puede ser usado por múltiples sistemas
- Autonomía: cada servicio controla su lógica y datos
- Abstracción: el consumidor no conoce los detalles internos
- Descubrimiento: los servicios pueden localizarse fácilmente
- Interoperabilidad: funcionan en diferentes plataformas y lenguajes
Estándares relacionados con los servicios en SOA
La arquitectura SOA se apoya en estándares abiertos que permiten la comunicación entre sistemas distribuidos.
Estándares utilizados en SOA
- XML
- SOAP
- WSDL
- UDDI
- REST
A continuación se describe el propósito de cada uno.
XML (eXtensible Markup Language)
XML es un lenguaje de marcado utilizado para estructurar y transportar datos entre servicios.
- Independiente de plataforma
- Legible por humanos y máquinas
- Base de otros estándares SOA
Ejemplo
<usuario>
<id>1023</id>
<nombre>Luis</nombre>
<rol>Administrador</rol>
</usuario>
SOAP (Simple Object Access Protocol)
SOAP es un protocolo de comunicación utilizado para intercambiar mensajes entre servicios.
Características:
- Basado en XML
- Comunicación estructurada y formal
- Común en entornos empresariales
SOAP define cómo se envían los mensajes, no la lógica del servicio.
WSDL (Web Services Description Language)
WSDL es un lenguaje basado en XML que describe un servicio web.
Funciona como un contrato entre el proveedor y el consumidor del servicio.
Define:
- Operaciones disponibles
- Datos de entrada y salida
- Protocolo de comunicación
- Dirección del servicio
El consumidor utiliza el WSDL para saber cómo consumir el servicio, sin conocer su implementación interna.
UDDI (Universal Description, Discovery and Integration)
UDDI es un registro de servicios dentro de una arquitectura SOA.
Permite:
- Publicar servicios
- Descubrir servicios disponibles
- Acceder a sus descripciones (WSDL)
Funciona como un directorio de servicios que facilita la reutilización y la interoperabilidad.
REST (Representational State Transfer)
REST es un estilo arquitectónico utilizado para construir servicios web.
Características:
- Utiliza el protocolo HTTP
- Es más ligero que SOAP
- Muy utilizado en APIs modernas
REST no requiere WSDL ni UDDI, pero sigue principios de SOA como la reutilización y el bajo acoplamiento.
Relación entre los estándares SOA
| Estándar | Función |
|---|---|
| XML | Formato de los datos |
| SOAP | Protocolo de comunicación |
| WSDL | Contrato del servicio |
| UDDI | Registro de servicios |
| REST | Estilo de servicios web |
Diagramas de Arquitectura Orientada a Servicios (SOA)
Los diagramas SOA permiten representar visualmente cómo interactúan los distintos componentes de una aplicación orientada a servicios.
Elementos de un diagrama SOA
- Consumidores de servicios
- Servicios independientes
- Contratos de servicio (WSDL / API)
- Mensajes intercambiados (XML, SOAP, REST)
- Registro de servicios (UDDI)

Figura 1. Diagrama de una arquitectura SOA donde el consumidor accede a los servicios publicados por el proveedor mediante estándares como XML, SOAP, WSDL y REST, utilizando un registro UDDI.
Actividad: Diseño de una aplicación orientada a servicios (SOA)
Objetivo
Que el estudiante identifique los elementos de la Arquitectura Orientada a Servicios (SOA) y los represente mediante un diagrama de aplicación orientada a servicios, integrando proveedores, consumidores, estándares y registro de servicios.
Instrucciones
-
Elige un caso sencillo de aplicación (por ejemplo):
- Sistema de inscripciones escolares
- Plataforma de pagos
- Sistema de gestión de trámites
- Aplicación de pedidos en línea
-
Identifica al menos los siguientes elementos:
- Un Consumidor de servicios
- Uno o más Proveedores de servicios
- Un Registro de servicios (UDDI)
- Los estándares utilizados (XML, SOAP, WSDL y/o REST)
-
Elabora un diagrama de arquitectura SOA que muestre:
- La interacción entre consumidor y proveedor
- El uso de contratos de servicio (WSDL o API REST)
- El intercambio de mensajes
- El registro y descubrimiento de servicios
-
Puedes realizar el diagrama utilizando:
- Draw.io
- Lucidchart
- Miro
- PowerPoint / Google Slides
- Herramienta de diagramado de tu preferencia
Entregable
- Un diagrama SOA (imagen o PDF)
- Breve descripción (5–8 líneas) explicando:
- Qué hace cada servicio
- Qué estándares se utilizan
- Cómo se comunican los componentes
📌 Nota: El diagrama debe reflejar claramente los principios de SOA como el bajo acoplamiento, la reutilización y la interoperabilidad.