APIs
10
min de lectura
16 de octubre de 2018

Repensando el ESB: ¿Qué es la arquitectura SOA con APIs?

Rafael Rocha
Head de Soluciones y Preventa
Tecnólogo en Tecnología de la Información de la UNESP y postgrado en MBA Business Management de la UNIMEP.
Más sobre el autor

Algunos directivos consideran que las APIs son una palabra de moda relacionada con las integraciones, un problema que ya han abordado con SOA + ESB. Sin embargo, las APIs abordan nuevas demandas, que no son bien gestionadas por SOA, mientras que SOA se centra en problemas que las APIs no tienen.

Teniendoesto en cuenta, cómo saber si:

  • ¿Contar con un ESB para las integraciones es suficiente?
  • API Gateway y ESB son complementarios?
  • ¿Debería sustituir mi ESB por APIs + Microservicios?

Comprensión de las lagunas de SOA / ESB y del papel de la plataforma API Management

La nueva ola de transformación digital no sólo pasa por digitalizar los procesos internos y las integraciones, sino también por explorar el potencial del ecosistema de socios, utilizar los sistemas heredados junto a las nuevas tecnologías (IoT, Cloud, AI + Analytics, Blockchain, etc.), disponer de una monitorización en tiempo real y reaccionar rápidamente, ofrecer experiencias a través de diferentes canales e interfaces, involucrar a clientes y colaboradores, y superar los retos de escalabilidad y seguridad, entre otros elementos.

Arquitectura SOA

Principales preocupaciones en relación con el ESB:

  • Escalabilidad compleja: Los ESB son monolíticos y escalan verticalmente, con un mayor riesgo de indisponibilidad.
  • Afectación del rendimiento al registrar registros: pueden reducir el rendimiento en el procesamiento de transacciones hasta un 30%.
  • Bloqueo de los proveedores: consultoría costosa y necesidad de adquirir muchos productos (BAM, BPEL y Service Registry).
  • Centrarse sólo en las integraciones: poca preocupación por la experiencia de los socios y desarrolladores del frontend.
  • Pocos recursos para la gobernanza, la supervisión y la monetización: falta de visibilidad en tiempo real y de registros completos de las transacciones, documentación, versionado, planes de utilización y facturación, etc.
  • Soporte limitado para la seguridad: OAuth 2.0, OpenID, JWT, etc.

Falta de estándares modernos y protocolos más ligeros: Los ESBs han sido o tienden a ser descontinuados.

¿Por qué utilizar las API para las integraciones internas y externas?

Es una forma sencilla, ágil y escalable de integrar sistemas y crear aplicaciones desacopladas en el menor tiempo posible. Cuando se utiliza una plataforma API Management , se obtienen módulos de apoyo a la seguridad, la autenticación, la escalabilidad, el compromiso de desarrollo, la gobernanza, la supervisión, la monetización y el entorno de pruebas, entre otros recursos.

Capa de API en la arquitectura SOA

Cómo API Management y ESB complementan las capacidades de la capa de integración:

Arquitectura API y SOA

API Management y el ESB pueden existir por separado, dependiendo del escenario y del enfoque. En la mayoría de los escenarios, las empresas se beneficiarían de ambos. En estos casos, la arquitectura es aún más robusta, siempre que consigamos potenciar los puntos fuertes de cada uno de ellos:

Arquitectura SOA
Cobertura de la API ESB SOA

Foco 1: API Management + Coexistencia de ESB

Para alcanzar un alto grado de cobertura en todas las capacidades de una capa de integración, un posible enfoque sería optar por la coexistencia de la plataforma API Management con el ESB. Este enfoque permite utilizar los recursos de la plataforma API Management (escalabilidad, seguridad, gobernanza, compromiso de desarrollo, monetización, Analytics, etc.) con las capacidades del ESB (variedad de conectores, procesamiento de transacciones complejas, etc.).

Sin embargo, existen algunas limitaciones en términos de escalabilidad, bloqueo y rendimiento, mientras que el motor de reglas puede obtenerse mediante una solución específica.

API Management ESB
ESB API Management

Enfoque 2: Sustitución del ESB mediante API Management + frente de API (Microservicios + Conectores)

Para cubrir las capacidades en las que no se centra la plataforma API management , sin las limitaciones del ESB, es posible crear una capa denominada API Front.

Esta capa se compone de APIs, microservicios y conectores, reduciendo así las dificultades de escalabilidad, desacoplamiento, reutilización, bloqueo y rendimiento, así como plataformas específicas para el procesamiento por lotes y el motor de reglas.

Sustitución de la API ESB Frente
API Management Microservicios

Ventajas de API Management + Microservicios en su arquitectura de integración

  • Integraciones más flexibles, que facilitan entregas más rápidas y reducen los costes
  • Interfaces estandarizadas, que permiten multi-channel y agilidad en la integración con los socios
  • Establecimiento de la gobernanza y seguimiento en tiempo real de las integraciones
  • Seguridad y control del uso de las API
  • Mecanismos para optimizar el rendimiento de las aplicaciones
  • Separación de responsabilidades
  • Escalabilidad
API Management Platform

Comparación detallada de las capacidades de la capa de integración que pueden ser suministradas por una Plataforma API Management o por un ESB:

CapacidadesPatronesGestión de la APIESBAgestión de la API alternativaESB alternativo

Comunicación asíncronaWebSocketSíParcialmente - algunos ESBs soportanN/AMessaging (eg AMQP)Comunicación síncronaREST / JSONYesParcialmente - algunos ESBs soportanN/AWS-SOAPGraphQLYesNoN/AN/ASecurityOAuth 2.0SíParcialmente - algunos ESB soportanN/AWS-Security y Basic AuthDDoSíNoN/AUso de soluciones de tercerosWAF (Inyecciones, XSS, CSRF)SíNoN/AUso de soluciones de tercerosSpike ArrestYesNoN/AUso de soluciones de tercerosSupervisión técnicaAlertas en tiempo realSíNoN/AN/ATécnicaSupervisión de cuadros de mando e informesSíParcial - requiere un complementoN/ABAM (complemento)Supervisión empresarialAlertas en tiempo realSíNoN/AN/ADashboards & ReportsYesParcial - requiere un complementoN/ABAM (complemento)on)Soporte de desarrolloPortal de desarrolladoresSíNoN/Portal personalizadoComposición y enriquecimientoCalificación de serviciosSíN/AN/AXSLTYesSíN/AN/Amipulación de mensajesSíN/AN/AContrato y estándares de documentaciónOpenAPI SpecSíNoN/AWSDLContrato y Documentación EstándaresDocumentación iterativaSíNoN/Portal personalizadoGeneración SDKYesNoN/ASDK generación manualValidación de esquemas JSONSíNoN/AXSDGobernanzaCuotas de usoSíNoN/AUso de soluciones de tercerosControl de visibilidadSíNoN/AC.Control de visibilidadSíParcialmente - requiere un complementoN/AService Registry & Repository (complemento)API / Service CatalogSíParcialmente - requiereOn dd,N/AService Registry & Repository (add-on)Ciclo de vidaSíParcialmente - requiere add-onN/AService Registry & Repository (add-on)Visibilidad de dependenciasSíParcialmente - requiere add-onN/AService Registry & Repository (add-on)Resolución de problemasTraceSíN/AN/Asynchronous LoggingSíNoN/AN/ACustom ReportsSíNoN/AUso de soluciones de terceros para procesar logsMensajede terceros para procesar los registrosTraducción de mensajesXSLSíSíN/AN/AMensaje Mapping WizardNoSíCustom Mapping Code SnippetN/AAutomatic Translation (eg XML to JSON)SíSíN/AN/AMessage ManipulationYesYesN/AN/AText ManipulationYesYesN/AN/AProtocol TranslationSOAP to RESTYesPartial - some ESBs supportN/AN/ATo HTTP-RESTYesParcial - algunos ESBs soportanN/Acustom translationConector de base de datosSíSíN/AN/ASAP ConnectorNo - algunos soportan como addonSíCustom ConnectorN/AFTP ConnectorNoSíCustom ConnectorN/AOrchestrationProcess ChoreographyNoYescustom orquestación con MicroserviciosN/ACompensation FlowNoSíOrquestación personalizada con MicroserviciosN/ARetry QueuesNoSíOrquestación personalizada con MicroserviçosN/ABatch processingParallel Processing(High Data Volumes)NoSíUsethird-de terceros - Plataformas de integración de datosN/AProgramación de trabajosNoSíUtilizar soluciones de terceros - Plataformas de integración de datosN/AAutomatización de la carga de trabajoNoParcialmente - requiere un complementoUtilizar soluciones de terceros - Plataformas de integración de datosN/ARoutingRutamiento estáticoSíN/AN/Rutamiento basado en contenidoSíN/AN/Rutamiento basado en reglasSíN/AN/APolicy-Routing basado en políticasSíSíN/AN/ALogging & TraceabilitySíN/AN/ATransaction IdentifierSíNoN/AN/ATransaction ManagementDatabase Transaction HandlingNoSíPersonalizado con MicroserviciosN/AXA Transactions (2 Phase Commit)NoSíPersonalizadocon MicroserviciosN/AWS-TransactionNoSíPersonalizado con MicroserviciosN/ARules EngineBRMSNoParcialmente - requiere add-onUse third-party solutionsN/A

¡Gracias por leer!