Cómo Construir una Arquitectura Orientada a Servicios (SOA)

Cómo construir una Arquitectura Orientada a Servicios (SOA)

©. com | Bakhtiar Zein

En este artículo nos centramos en el tema de la Arquitectura Orientada a Servicios (SOA). Comenzamos con una inmersión profunda en 1) SOA: una descripción y luego vamos a discutir 2) construir una Arquitectura Orientada a Servicios.

ARQUITECTURA ORIENTADA A SERVICIOS: UNA DESCRIPCIÓN

¿Qué es SOA?

SOA o Arquitectura orientada a Servicios es un método a través del cual diferentes tipos de servicios pueden interactuar entre sí de forma independiente. Un servicio es una parte autónoma de la funcionalidad, y se pueden combinar varios servicios para proporcionar el uso y la funcionalidad de una aplicación de software a gran escala. Lo que hace SOA es que facilita la interacción y cooperación de las partes de software de los ordenadores conectados a una red. El patrón de diseño de SOA es tal que los componentes de las aplicaciones en él pueden ofrecer servicios a otros componentes de este tipo, principalmente a través de una red. Todos y cada uno de los sistemas informáticos pueden ejecutar cualquier número de servicios, cada uno de los cuales está construido para intercambiar información con cualquier otro servicio diferente en una red sin ayuda humana.

En terminología empresarial, SOA es un conjunto de servicios de TI alineados con el negocio que en conjunto abordan los objetivos y procesos de la empresa comercial. El diseño estructural de SOA asegura que haya una alineación con los requisitos del negocio, así como con la solución tecnológica del mismo.

Los elementos principales de SOA

Aquí están los elementos principales de SOA:

  • Impulsores SOA: los impulsores SOA o los impulsores de negocios empresariales incluyen aspectos como la competencia, la estrategia, las fuerzas reguladoras y las fuerzas del mercado. Todas estas cosas se unen para impulsar la arquitectura empresarial y dar forma a la gestión del rendimiento en todo el negocio
  • Habilitadores SOA: Los cinco habilitadores SOA principales son el modelo de negocio empresarial, la optimización del rendimiento empresarial, la Racionalización de la cartera, la definición de Semántica empresarial y los indicadores clave de rendimiento. Tener un modelo de negocio es importante para la correcta alineación de los servicios con los objetivos y metas del negocio. El modelo de información semántica proporciona la información comercial común y general relacionada con una empresa determinada. Los indicadores clave de rendimiento o KPI hacen posible la evaluación del impacto de SOA y facilitan la medición de los procesos de negocio. Por otro lado, la racionalización de la cartera hace posible la consolidación y simplificación de aplicaciones, datos e infraestructura.
  • Implementación de SOA: En lo que respecta a la implementación, los servicios y procesos empresariales son los aspectos principales. Los procesos de negocio se asocian principalmente con las metas y objetivos de negocio de las operaciones, mientras que, por otro lado, los servicios de negocio deben estar bien alineados y son críticos para la implementación de SOA flexible y exitosa. Algunos de los otros aspectos relacionados con la implementación de SOA son los repositorios de contenido empresarial, la mensajería semántica y los servicios de integración. La información representa los recursos de datos de la empresa, y estos datos se transmiten en forma de documentos que proporcionan una especie de mensajes semánticos entre servicios y procesos.
  • Soporte SOA: Todas las funciones y elementos de las aplicaciones y sistemas existentes se ponen a disposición y se pueden utilizar para los servicios con el soporte de algunos servicios de integración que despegan de las funciones existentes a través de nuevas interfaces de servicio.

Los Principios principales de SOA

La siguiente es la lista de los principios principales de SOA:

  • Arquitectura de servicios: El diseño físico o el diseño de servicios individuales que superan todos los recursos utilizados por un servicio.
  • Arquitectura de composición de servicios: Todos los servicios desarrollados utilizando métodos de diseño orientados a servicios se centran en la composición, y esta es su característica principal. Esta arquitectura, por lo tanto, es la composición de arquitecturas individuales de varios servicios.
  • Arquitectura de inventario de servicios: Esta arquitectura se forma a partir del plano de inventario de servicios, donde el inventario de servicios se compone de servicios que automatizan los procedimientos de las empresas.
  • Arquitectura empresarial orientada a servicios: Este tipo constituye arquitecturas de composición, servicio e inventario.

La Evolución del Concepto SOA

  • Diseño monolítico – Este diseño estaba relacionado con la codificación de procedimientos relativamente no estructurada
  • Diseño orientado a objetos y estructuras – Este es el diseño que involucra unidades de programa basadas en funcionalidades.
  • Diseño cliente-servidor (diseño de dos niveles): Este es el concepto de diseño distribuido y está relacionado con la agrupación de funcionalidades en dos niveles.
  • Diseño de objetos distribuidos – diseño multitier): Este diseño implica interacciones de objetos en un entorno heterogéneo y diseño de objetos distribuidos.
  • Arquitectura de modelo de objetos componentes: Este es un diseño en el que hay una agregación de elementos en partes basadas en lógica con tipos fuertes, así como una interfaz bien definida.
  • Arquitectura orientada a servicios: Este es un diseño que implica interacciones y comunicaciones entre servicios de grano grueso con interfaces estándar para interoperaciones flexibles.

SOA y JAVA

Muchos desarrolladores piensan que SOA, así como los servicios web, son sinónimos entre sí, pero esto no es cierto. También pueden creer que simplemente no es posible construir SOA sin usar servicios web, pero en realidad, SOA es un principio de diseño, pero los servicios web son una especie de tecnología de implementación. Esto significa que SOA se puede construir de hecho sin hacer uso de una tecnología de implementación de cierto tipo. Pero Java es otro tipo de tecnología tradicional que se puede usar para desarrollar o construir Arquitectura Orientada a Servicios.

El objetivo principal de SOA es desarrollar un acoplamiento suelto entre módulos, y se puede construir una aplicación donde los módulos no están acoplados entre sí demasiado apretados. Este tipo de estructura se puede construir o formar con la ayuda de JAVA.

¿Cuáles son las características de SOA?

  • Conexión suelta: Los servicios en SOA están enlazados entre sí de forma suelta para formar una conexión. Esto da un presupuesto al mínimo de interdependencia entre cada servicio. La idea principal es reducir la interdependencia hasta el nivel en que se mantiene la compatibilidad.
  • La interfaz de servicios estandarizada: Un requisito básico de SOA es la necesidad de estandarizar las interfaces y los detalles. Los detalles deben incluir qué datos se necesitan, cómo se puede utilizar un servicio y cómo se deben aplicar las reglas.
  • Reutilización: En SOA, la reutilización de los servicios es posible a lo largo de la cadena de proceso por otras partes y también para otros tipos de fines.
  • Encontrabilidad de un servicio-Otra característica es que un servicio debe encontrarse fácilmente para poder usarlo. Para todos los consumidores, se ponen a disposición repositorios de servicios, que consisten en la interfaz y el método de implementación del servicio.
  • Autonomía de servicio: Cada servicio debe poder funcionar y funcionar de forma independiente. Este término se refiere a aquellos servicios que son autosuficientes y son capaces de administrar los recursos, la lógica y el medio ambiente por sí solos.
  • Capacidad para orquestación de servicios: Este es un proceso en el que un servicio individual se combina con otros servicios similares para dar lugar a procesos o unidades de negocio más grandes. Esta es otra característica o requisito para el SOA.
  • Apatridia de servicios: La prestación de servicios se basa en el concepto de que se presta un servicio definido. Esto tiene en cuenta la retención de datos, pero solo si el requisito se especifica o se solicita especialmente.

Ventajas y beneficios de SOA

  • Mejor retorno de la inversión: Uno de los mayores beneficios de SOA es que ofrece un excelente retorno de la inversión. Dado que el proceso implica la creación de capas sólidas, cada una de estas capas de servicio ofrece un mejor retorno de la inversión realizada para crear el software.
  • Movilidad de código: Este es otro beneficio importante de SOA y es posible porque hay una transparencia de ubicación en la Arquitectura Orientada a Servicios. A la mayoría de los clientes no les importa dónde se encuentran los servicios porque hay un enlace dinámico, así como la búsqueda de servicios. Esto significa que las empresas que utilizan SOA pueden trasladar los servicios a diferentes máquinas o trasladarlos a proveedores de servicios externos.
  • La reutilización-Otra ventaja de SOA es que los diversos códigos y servicios se pueden usar una y otra vez. Existe la conveniencia de reutilizar el servicio en tiempo de ejecución, y es tan fácil como encontrar un servicio en el directorio y vincularlo a él. Los desarrolladores no tienen que preocuparse por las plataformas y otras incompatibilidades.
  • Soporte para varios tipos de clientes: cualquier empresa puede usar varios tipos de clientes y varios clientes para acceder a un servicio en SOA. Esto se debe a que en tal estructura o concepto, las capas se han dividido en servicio, y las capas de cliente y varios tipos de cliente son más fáciles de implementar.
  • Un mayor nivel de disponibilidad: Varios servidores tienen varios casos de servicios que los utilizan debido al hecho de que SOA admite la transparencia de ubicación. Esto significa que la disponibilidad general es muy alta. Por ejemplo, si una máquina o una parte de una red deja de funcionar o tiene algún problema, las solicitudes pueden ser redirigidos a otros servicios, sin que el cliente saberlo o estar preocupado por ella.
  • Menos defectos: Esta es una gran ventaja de SOA. La probabilidad de defectos es mucho menor, y la prueba general es mucho mejor debido a las interfaces de servicios publicadas que se pueden probar fácilmente. Más pruebas se traducen en un mayor nivel de precisión y menos defectos.

Desafíos SOA

  • Falta de espacio de prueba: Uno de los mayores desafíos en SOA es la falta de espacio de prueba. En una arquitectura típica, no hay herramientas o métodos bien formados o sofisticados para probar un servicio sin cabeza, como un servicio de mensajes o de base de datos. El objetivo principal de SOA es ofrecer agilidad a empresas y negocios. Pero debido a la falta de confianza horizontal, es necesario invertir en un marco de pruebas que facilite el desafío.
  • Administrar metadatos de servicios: Este es un desafío común y muy obvio de SOA. Administrar los metadatos de los servicios no solo es difícil, sino que a menudo es muy complicado. Un espacio arquitectónico basado en servicios implica servicios que interactúan entre sí mediante el intercambio de mensajes. En tal escenario, un solo servicio a veces puede tener millones de mensajes generados. La gestión de estos muchos servicios puede ser muy difícil, especialmente cuando los servicios son prestados por diferentes empresas y departamentos dentro de una empresa. Esto crea muchos problemas de confianza.
  • Proporcionar niveles adecuados de seguridad: Otro desafío de SOA es proporcionar niveles adecuados de seguridad. La seguridad administrada por aplicaciones no es el método o modelo correcto para proteger los servicios porque los modelos de seguridad diseñados en aplicaciones no son suficientes cuando la aplicación se muestra a los demás.
  • Interoperabilidad: Esto se convierte en un aspecto crucial de las implementaciones SOA. A menudo, en la búsqueda de reducir o disminuir la interdependencia de los servicios, la compatibilidad entre ellos puede reducirse, pero la dependencia debe reducirse a un nivel tal que la compatibilidad pueda mantenerse.
  • Bombo de proveedores: Hay un bombo de proveedores significativo relacionado con SOA, y esto crea un cierto nivel de expectativas indebidas. Si bien hay muchas ventajas de SOA, también puede tener varias desventajas. Por ejemplo, SOA no garantiza una reducción en los costos de TI y ni siquiera promete una mejora en la agilidad de los sistemas. Por lo tanto, sería mejor que hubiera una distinción clara entre la publicidad y la realidad.

CONSTRUIR UNA ARQUITECTURA ORIENTADA A SERVICIOS

SOA Framework

Para comprender cómo se construye SOA, primero deberá comprender cuál es su marco.

SOA se ve como 5 capas horizontales diferentes que son:

  1. Capa de interfaz de consumidor: Estas son las aplicaciones que acceden a interfaces de servicio o aplicaciones.
  2. Capa de procesos de negocio: Esta es una capa que es un servicio que representa casos de uso de negocios en lo que respecta a las aplicaciones.
  3. Servicios-Muchos servicios se agrupan para crear una empresa completa.
  4. Componentes de servicio – Estos son aquellos componentes o partes que se utilizan para construir servicios como interfaces tecnológicas y bibliotecas técnicas, etc.
  5. Sistemas operativos: Esta es la capa que contiene patrones técnicos, modelos de datos y repositorios de datos, etc.

Las siguientes son las capas verticales de SOA framework que se aplican y soportan las horizontales:

  1. Capa de integración: Esta capa consiste en compatibilidad con protocolos o integración de plataformas, integración de datos, integración de aplicaciones y servicios, etc.
  2. Calidad del servicio: Los factores que componen la calidad del servicio incluyen disponibilidad, seguridad, rendimiento y otros.
  3. Informativo: Esta capa hace principalmente el trabajo de proporcionar información relacionada con el negocio.
  4. Gobernanza: Esta capa o capa de estrategia de TI se rige por capas horizontales para alcanzar la capacidad, así como el modelo operativo, según sea necesario.

SOA Implementation Framework (SOAIF)

La implementación de SOA necesita y requiere software de infraestructura en tiempo de ejecución, así como herramientas. Esto puede denominarse colectivamente marco de implementación de arquitectura orientada a servicios o SOAIF. Este concepto tiene como objetivo un marco integral que ofrezca todo tipo de tecnología que una empresa pueda requerir no solo para construir, sino también para administrar SOA. Un SOAIF consiste en e incluye capacidades tanto en tiempo de ejecución como en tiempo de diseño. También incluye la funcionalidad de software que una empresa puede necesitar para ejecutar un SOA y también crearlo, incluido el orientado a servicios:

  • Modelado
  • Integración
  • Herramientas
  • Gestión
  • Seguridad
  • Procesos

Enfoques de SOA

Existen tres tipos, métodos o enfoques principales que han estado surgiendo para la información de clubes, los sistemas dispares y los sistemas en un negocio. A medida que los diferentes proveedores de servicios y empresas se apresuran a ofrecer soluciones a clientes y consumidores, estos enfoques ayudan a cumplir los requisitos de servicios de grano grueso, poco articulados y asíncronos.

1. El Bus de servicio Empresarial

El primer enfoque que ayuda a construir e implementar un SOA óptimo es el bus de servicio empresarial o ESB. Este enfoque ayuda a coordinar y organizar los diferentes elementos que se encuentran en forma de servicios distribuidos en una red. Este enfoque considera que los sistemas son servicios discretos y distribuidos que se conectan entre sí a través de una infraestructura orientada a mensajes que es asíncrona. Este tipo de infraestructura orientada a mensajes hace posible tener conexiones vagamente acopladas entre servicios o módulos independientes.

2. Gestión de procesos de negocio

Muchas empresas, desde hace muchos años, han intentado resolver problemas de procesos de negocio mediante la implementación de un enfoque de Gestión de Procesos de Negocio. Este enfoque tiene en cuenta los activos y sistemas de TI como actividades o tareas que participan en procedimientos de negocio bien sincronizados y bien orquestados. Las herramientas de BPM se utilizan principalmente en el momento de modelar y diseñar procedimientos en lugar de usarlas para construir procesos que puedan alcanzar los objetivos de integración. Este es el principal desafío de BPM. Las soluciones de BPM por sí solas son suficientes para cumplir con los requisitos de SOA porque no consisten en el entorno de tiempo de ejecución que se necesita para los módulos acoplados libremente.

3. Integración orientada a servicios

El tercer y último enfoque para la implementación adecuada de SOA es el enfoque de integración orientada a servicios. Este enfoque en particular hace uso de las reglas o principios rectores arquitectónicos para construir un entorno o ecosistema de servicios que las empresas pueden combinar dinámicamente y crear procesos de nivel superior que pueden cumplir con requisitos en constante cambio y evolución. Este enfoque se mueve más allá de los módulos estrechamente acoplados y frágiles al crear una distinción entre el consumidor y el productor de un servicio. Por lo tanto, impone el aspecto de acoplamiento flexible que se necesita para implementar SOA adecuadamente para cumplir con los requisitos comerciales. Incluso este enfoque por sí solo no es suficiente para garantizar interacciones de larga duración entre servicios.

Las mejores prácticas para construir un SOA

Al construir un SOA, uno debe seguir algunas de las mejores y más ventajosas prácticas. Estas prácticas se dan de la siguiente manera:

  1. Las tecnologías de implementación son muy promocionadas, y uno debe recordar no saltar a ellas debido a su popularidad. Uno debe considerar cuidadosamente si los servicios web tienen más sentido para su requerimiento y necesidad. Es importante recordar que la creación de aplicaciones orientadas a servicios mediante el uso de tecnologías como RMI puede ser más adecuada para el caso de una empresa que para los servicios web.
  2. Uno debe recordar no crear o construir módulos muy estrechamente vinculados o acoplados, ya que esto conduce a una configuración o infraestructura frágil.
  3. Es importante mantener la interoperabilidad y para ello, se deben seguir las mejores prácticas de WS-I.
  4. Si no ve ningún sentido en el uso de servicios web, entonces también hay muchas otras opciones alternativas que se pueden elegir.
55 Comparte

Leave a Reply

Tu dirección de correo electrónico no será publicada.