Logo de islavisual
Isotipo de islavisual IslaVisual
imagen de sección

Ultima revisión 11/01/2013

Hablemos de la Arquitectura SOA

SOA es un paradigma de arquitectura para sistemas de información (SSII) que busca el mínimo acoplamiento entre sus componentes y que promueve su reutilización, favoreciendo la identificación de un conjunto de servicios en red y la definición de los procesos por los cuales interactúan. El conjunto de técnicas, recomendaciones y tecnologías que denominamos Service-Oriented Architecture (SOA) buscan que los nuevos SSII sean modulares, abiertos e independientes.

La arquitectura que nos presenta SOA se basa en definir unos servicios que componen una capa de abstracción entre el negocio y la tecnología y, la habilidad para responder a cambios en los requisitos. Por tanto, un servicio será la unidad básica de funcionalidad en la arquitectura SOA y se definirá como un conjunto coherente de funcionalidad, autocontenido, sin estado e independiente.

Los servicios web (WS) son un caso particular de mecanismo estándar para implementar la interacción entre los componentes software, mediante la invocación de métodos remotos. Estos suponen una interconexción punto a punto que, por sí sola, no tienen capacidad de integración y flexibilidad frente a los cambios que se necesitan en los SSII de las organizaciones.

modelo_basico_ws

Los estándares definidos en una arquitectura SOA son XML, WSDL, UDDI y SOAP.

La arquitectura SOA típica se encuentra organizada en varios niveles:

  • Nivel de Presentación: Es el único punto de acceso para el usuario y recoge todo lo que puede utilizar.
  • Nivel de Procesos: Compuesto por la definición, gestión y ejecución de los procesos de negocio.
  • Nivel de Servicios: Es la capa dónde reside la lógica de las aplicaciones y de los servicios que éstas ofrecen.
  • Nivel de integración: Utilizado para las comunicaciones entre los servicios y las demás aplicaciones.
  • Nivel de Seguridad: Capa transversal dónde se define un esquema de autorización de ejecución para cada servicio, así como el acceso a la información.
  • Nivel de Gobernabilidad: Para controlar el uso de las infraestructuras, servicios y estado de disponibilidad.

Ventajas de una arquitectura SOA

La adopción de la filosofía SOA en una organización trae consigo una serie de beneficios, entre lo cuales se pueden mencionar:

  • Reducción del time-to-market y de los costes de desarrollo.
  • Mayor agilidad, al simplificarse la adaptación de los SSII frente a las nuevas necesidades que surjan.
  • Mayor interoperabilidad de los distintos sistemas existentes (legacy).
  • Reducción de los costes de integración, consecuencia del punto anterior.
  • Mejor alineación tecnología-negocio.
  • Disminución de las ataduras tecnológicas (plataformas, suministradores, etc).

Críticas sobre SOA

La arquitectura SOA no estáexenta de problemas:

  • Mensajería: tiempos de invocación de los servicios, problemas en la red (propio de los sistemas distribuidos), ...
  • Uso extensivo de XML (ineficiente para gran volumen de datos).
  • Riesgo de llegar a una “explosión de servicios”: el desarrollo de una batería inmanejable de servicios que se invocan unos a otros.
  • La integración resulta no ser tan simple (ver la pila de protocolos WS-* o echar un vistazo a un documento WSDL).
  • Mal entendida, puede acabar siendo lo que se conoce por "YARPC" (Yet Another RPC), como tecnologías precedentes: COM, CORBA, RMI ...
  • Quizás se deja de lado al usuario final. Los servicios son algo más que invocaciones RPC: deben hacer algo útil que ofrezca un beneficio al usuario.

Sobre el autor

Imagen de Pablo Enrique Fernández Casado
Pablo Enrique Fernández Casado

CEO de IslaVisual, Manager, Full Stack Analyst Developer y formador por cuenta ajena con más de 25 años de experiencia en el campo de la programación y más de 10 en el campo del diseño, UX, usabilidad web y accesibilidad web. También es escritor y compositor de música, además de presentar múltiples soft kills como la escucha activa, el trabajo en equipo, la creatividad, la resiliencia o la capacidad de aprendizaje, entre otras.

Especializado en proveer soluciones integrales de bajo coste y actividades de consultoría de Usabilidad, Accesibilidad y Experiencia de Usuario (UX), además de ofrecer asesoramiento en SEO, optimización de sistemas y páginas web, entre otras habilidades.