Arquitectura Orientada a Servicios (SOA)
Aplicaciones Web Orientadas a Servicios ITIID-05

Arquitectura Orientada a Servicios (SOA)


En el desarrollo de aplicaciones modernas, los sistemas ya no se construyen como aplicaciones monolíticas aisladas. Actualmente, las aplicaciones se comunican entre sí, intercambian información y reutilizan funcionalidades mediante servicios.

La Arquitectura Orientada a Servicios (SOA) surge como una solución para construir sistemas flexibles, escalables e interoperables, siendo ampliamente utilizada en entornos empresariales y como base de arquitecturas modernas como los microservicios.


¿Qué es la Arquitectura Orientada a Servicios?

La Arquitectura Orientada a Servicios (Service-Oriented Architecture) es un estilo arquitectónico en el cual las funcionalidades de un sistema se organizan en forma de servicios independientes, accesibles a través de una red.

Definición

SOA es una arquitectura que permite construir aplicaciones a partir de servicios reutilizables, independientes y comunicados mediante protocolos estándar.

Un servicio es una unidad de software que:

  • Realiza una función específica del negocio
  • Está desacoplada de otros servicios
  • Se comunica mediante mensajes
  • Puede ser consumida por diferentes aplicaciones

Componentes principales de SOA

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 disponibles
  • Permite descubrir servicios
  • Ejemplo: UDDI

Principios de diseño de los servicios

Para que una arquitectura SOA sea efectiva, los servicios deben cumplir con ciertos principios de diseño.

Bajo acoplamiento

Los servicios deben tener pocas dependencias entre sí.

Alta cohesión

Cada servicio debe cumplir una función clara y específica.

Reutilización

Un servicio debe poder ser utilizado por múltiples sistemas o aplicaciones.

Autonomía

Cada servicio controla su propia lógica y datos.

Abstracción

Los detalles internos del servicio no son visibles para el consumidor.

Descubrimiento

Los servicios deben ser fácilmente identificables y localizables.

Interoperabilidad

Los servicios deben funcionar entre distintas plataformas y lenguajes.


Estándares relacionados con los servicios

La arquitectura SOA se apoya en estándares abiertos que permiten la comunicación entre sistemas.


XML (eXtensible Markup Language)

Lenguaje de marcado utilizado para estructurar y transportar datos.

<usuario>
  <nombre>Luis</nombre>
  <rol>Administrador</rol>
</usuario>

Actividad: Identificando servicios en una arquitectura SOA

Objetivo

Identificar los elementos principales de una arquitectura orientada a servicios (SOA), reconociendo servicios, consumidores y estándares de comunicación.


Duración

20 a 30 minutos


Instrucciones

  1. Elige uno de los siguientes sistemas:

    • Sistema escolar
    • Tienda en línea
    • Banco
    • Hospital
  2. Identifica tres servicios que podrían formar parte de ese sistema.

  3. Completa la siguiente tabla para cada servicio identificado:

Servicio¿Qué hace?¿Quién lo consume?Estándar (SOAP / REST)

Ejemplo (Sistema escolar)

Servicio¿Qué hace?¿Quién lo consume?Estándar
AutenticaciónValida usuariosApp Web / App MóvilREST
AlumnosGestiona información de alumnosApp WebREST
PagosProcesa pagosApp WebSOAP