Arquitectura orientada a Servicios

La Arquitectura Orientada a Servicios (SOA) es una etapa en la evolución del desarrollo y/o integración de aplicaciones. Define una forma de hacer que los componentes de software sean reutilizables utilizando las interfaces. 

Formalmente, SOA es un enfoque arquitectónico en el que las aplicaciones utilizan los servicios disponibles en la red. En esta arquitectura se brindan servicios para formar aplicaciones, a través de una llamada de red a través de internet. Utiliza estándares de comunicación comunes para acelerar y optimizar las integraciones de servicios en las aplicaciones. Cada servicio en SOA es una función comercial completa en sí misma. Los servicios se publican de tal manera que facilita a los desarrolladores ensamblar sus aplicaciones utilizando esos servicios. Tenga en cuenta que SOA es diferente de la arquitectura de microservicios.

  • SOA permite a los usuarios combinar una gran cantidad de instalaciones de los servicios existentes para formar aplicaciones.
  • SOA abarca un conjunto de principios de diseño que estructuran el desarrollo del sistema y proporcionan medios para integrar componentes en un sistema coherente y descentralizado.
  • La computación basada en SOA empaqueta funcionalidades en un conjunto de servicios interoperables, que pueden integrarse en diferentes sistemas de software que pertenecen a dominios comerciales separados.

Hay dos roles principales dentro de la arquitectura orientada a servicios: 

  1. Proveedor de servicios: El proveedor de servicios es el mantenedor del servicio y la organización que pone a disposición uno o más servicios para que otros los utilicen. Para publicitar servicios, el proveedor puede publicarlos en un registro, junto con un contrato de servicio que especifica la naturaleza del servicio, cómo usarlo, los requisitos para el servicio y las tarifas cobradas.
  2. Consumidor del servicio: el consumidor del servicio puede ubicar los metadatos del servicio en el registro y desarrollar los componentes de cliente necesarios para enlazar y usar el servicio.
     

Los servicios pueden agregar información y datos recuperados de otros servicios o crear flujos de trabajo de servicios para satisfacer la solicitud de un consumidor de servicio determinado. Esta práctica se conoce como orquestación de servicios. Otro patrón de interacción importante es la coreografía de servicios, que es la interacción coordinada de servicios sin un único punto de control. 

Componentes de SOA: 
 

Principios rectores de SOA: 

  1. Contrato de servicio estandarizado: Especificado a través de uno o más documentos de descripción del servicio.
  2. Bajo acoplamiento: los servicios están diseñados como componentes autónomos, mantienen relaciones que minimizan las dependencias de otros servicios.
  3. Abstracción: Un servicio está completamente definido por contratos de servicio y documentos de descripción. Ocultan su lógica, que está encapsulada dentro de su implementación.
  4. Reutilización: Diseñados como componentes, los servicios se pueden reutilizar de forma más eficaz, reduciendo así el tiempo de desarrollo y los costes asociados.
  5. Autonomía: los servicios tienen control sobre la lógica que encapsulan y, desde el punto de vista del consumidor del servicio, no hay necesidad de saber sobre su implementación.
  6. Descubrimiento: los servicios se definen mediante documentos de descripción que constituyen metadatos complementarios a través de los cuales se pueden descubrir de manera efectiva. El descubrimiento de servicios proporciona un medio eficaz para utilizar recursos de terceros.
  7. Componibilidad: al usar servicios como bloques de construcción, se pueden implementar operaciones sofisticadas y complejas. La orquestación y la coreografía de servicios brindan un soporte sólido para componer servicios y lograr objetivos comerciales.

Ventajas de SOA: 

  • Reutilización de servicios: en SOA, las aplicaciones se crean a partir de servicios existentes. Por lo tanto, los servicios se pueden reutilizar para hacer muchas aplicaciones.
  • Fácil mantenimiento: Como los servicios son independientes entre sí, se pueden actualizar y modificar fácilmente sin afectar a otros servicios.
  • Independiente de la plataforma: SOA permite hacer una aplicación compleja combinando servicios seleccionados de diferentes fuentes, independientemente de la plataforma.
  • Disponibilidad: las instalaciones de SOA están fácilmente disponibles para cualquier persona que lo solicite.
  • Confiabilidad: las aplicaciones SOA son más confiables porque es fácil depurar servicios pequeños en lugar de códigos grandes.
  • Escalabilidad: los servicios pueden ejecutarse en diferentes servidores dentro de un entorno, lo que aumenta la escalabilidad

Desventajas de SOA: 

  • Alta sobrecarga: se realiza una validación de los parámetros de entrada de los servicios cada vez que los servicios interactúan, lo que reduce el rendimiento a medida que aumenta la carga y el tiempo de respuesta.
  • Alta inversión: Se requiere una gran inversión inicial para SOA.
  • Gestión de servicios complejos: cuando los servicios interactúan, intercambian mensajes a tareas. el número de mensajes puede ir en millones. Se convierte en una tarea engorrosa manejar una gran cantidad de mensajes.

Aplicaciones prácticas de SOA: SOA se usa de muchas maneras a nuestro alrededor, ya sea que se mencione o no. 

  1. Muchos ejércitos y fuerzas aéreas utilizan la infraestructura SOA para implementar sistemas de conciencia situacional.
  2. SOA se utiliza para mejorar la prestación de asistencia sanitaria.
  3. Hoy en día, muchas aplicaciones son juegos y utilizan funciones integradas para ejecutarse. Por ejemplo, una aplicación puede necesitar GPS, por lo que utiliza las funciones GPS integradas del dispositivo. Esto es SOA en soluciones móviles.
  4. SOA ayuda a mantener los museos como un grupo de almacenamiento virtualizado para su información y contenido.

Publicación traducida automáticamente

Artículo escrito por SarthakGarg y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *