atSistemas
SOA (Service Oriented Architecture)

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 “neutralidadtecnoló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

¿Qué es un servicio?

Un servicio es una función de negocio bien definida, auto-contenida, y que no depende del contexto o del estado de otras. Los servicios son cajas negras desde un punto de vista externo. El diseño y la implementación de los mismos no depende de la naturaleza de los clientes

Niveles en una arquitectura SOA

En una arquitectura SOA existen 3 niveles:

- El nivel de orquestación, orchestration service layer (BPEL)

- El nivel de negocio, business service layer

- El nivel de aplicación, application service layer

II. INTRODUCCIÓN A LOS WEBSERVICES

¿Qué es un webservice?

“Web services” es un esfuerzo para crear una plataforma distribuida basada en estándares con tecnología web.

Se ha traducido en un conjunto de especificaciones core y un conjunto de extensiones. Además, las tecnologías principales (J2EE, .NET, …) han construido frameworks que facilitan enormemente el desarrollo de webservices (JAX-WS, .NET 3.0 WCF, …)

Un web service es un programa accesible a través de la red que expone su funcionalidad a través de mensajes SOAP sobre HTTP/S publicando sus características mediante WSDL.

El stack tecnológico de un WebService:

  • Descubrimiento de servicio -> protocolo UDI

  • Descripción del servicio -> protocolo WSDL

  • Nivel de empaquetado -> protocolo SOAP

  • Nivel de transporte -> HTTP/S o Mensajería asíncrona

  • Nivel de red -> TCPI

atSistemas cuenta con amplia experiencia en el diseño e implementación de arquitecturas SOA para clientes pertenecientes a diversos sectores de negocio. Nuestra experiencia nos permite posicionar las plataformas tradicionales de nuestros clientes bajo este nuevo paradigma facilitando así la transición de las empresas hacia los negocios e-business on demand.

atsistemas