La arquitectura orientada a los servicios (SOA) es un tipo de diseño de software que permite reutilizar sus elementos gracias a las interfaces de servicios que se comunican a través de una red con un lenguaje común, SOA integra los elementos del software que se implementan y se mantienen por separado, y permite que se comuniquen entre sí y trabajen en conjunto para formar aplicaciones de software en distintos sistemas.

Un servicio es una unidad autónoma de una o más funciones del software diseñada para realizar una tarea específica, como recuperar cierta información o ejecutar una operación. Contiene las integraciones de datos y código que se necesitan para llevar a cabo una función empresarial completa y diferenciada. Se puede acceder a él de forma remota e interactuar con él o actualizarlo de manera independiente.

Antes de que se empezara a utilizar la SOA a fines de los noventa, era muy difícil conectar una aplicación con los servicios alojados en otro sistema, y se necesitaba una integración profunda de punto a punto (conectividad, enrutamiento, traducción de los modelos de datos, etc.). Luego, los desarrolladores debían repetir el proceso para cada proyecto nuevo.
Este modelo se conocía como «monolítico», ya que el código para toda la aplicación formaba parte de una sola implementación. Si algo no funcionaba correctamente, debía darla de baja por completo hasta que se solucionaran los problemas y luego volver a implementarla como una versión nueva.

Dado que la SOA expone los servicios utilizando protocolos estándar de red para enviar solicitudes o acceder a los datos (p. ej., SOAP, JSON, ActiveMQ o Apache Thrift), no es necesario que los desarrolladores realicen las integraciones desde cero. De hecho, pueden utilizar los patrones llamados buses de servicios empresariales (ESB) para integrar un elemento centralizado y los sistemas de backend, y ponerlos a disposición de todos como interfaces de servicios. Asimismo, pueden reutilizar las funciones actuales en vez de volver a crearlas.

En este tipo de arquitectura, los servicios se comunican por medio de un sistema «sin conexión directa». Se trata de un método para interconectar los elementos en un sistema o una red, de modo que puedan transmitir información o coordinar un proceso empresarial, mientras se reduce la dependencia entre ellos. En consecuencia, esto da origen a una nueva aplicación.

  • Comercialización más rápida y mayor flexibilidad: la posibilidad de reutilizar los servicios agiliza y simplifica el proceso de ensamblaje de las aplicaciones. Los desarrolladores no tienen que empezar siempre desde cero, tal como sucede con las aplicaciones monolíticas.
  • Uso de la infraestructura heredada en los mercados nuevos: la SOA permite que los desarrolladores tomen las funciones de una plataforma o un entorno y las ajusten e implementen en otros nuevos.
  • Reducción de los costos gracias a una mayor agilidad y un desarrollo más eficiente
  • Mantenimiento sencillo: dado que todos los servicios son autónomos e independientes, se puede modificar y actualizar cada uno cuando sea necesario, sin afectar al resto.
  • Escalabilidad: la SOA posibilita la ejecución de los servicios en varios lenguajes de programación, servicios y plataformas, lo cual aumenta la escalabilidad de forma considerable. Además, utiliza un protocolo de comunicación estandarizado con el que las empresas pueden disminuir la interacción entre los clientes y los servicios, lo cual permite ajustar las aplicaciones con menos presiones e inconvenientes.
  • Mayor confiabilidad: la SOA genera aplicaciones más confiables, ya que es más fácil depurar servicios pequeños que un código de gran volumen.
  • Gran disponibilidad: las instalaciones de la SOA están disponibles para todos.

Los elementos esenciales de la arquitectura orientada a los servicios consisten en tres funciones.

  1. Proveedor de servicios

    Se encarga de crear servicios web, ofrecerlos a un registro de servicios disponibles y gestionar sus condiciones de uso.

  2. Agente o registro de servicios

    Se encarga de brindar información acerca del servicio a quien lo solicite, y puede ser público o privado.

  3. Usuario del servicio o persona que lo solicita

    Buscará un servicio en el registro o por medio del agente, y se conectará con el proveedor para recibirlo.

¡Síguenos en nuestras redes sociales!

Grupo CINTE ® , Agencia Consultora, Bosque de ciruelos 186 Oficina 9-A, colonia Bosques de las Lomas, código postal 11700, alcaldía Miguel Hidalgo, Ciudad de México.
Oficinas en España, Colombia y Perú con presencia a nivel internacional.

Profesionales en TI