Artículo

Middleware en la era post-digital

28 octubre 2021 Arquitectura empresarial
banner-posts-conectados-middleware

Para hablar del Middleware, es necesario primero hacer un viaje por su definición y una vez entendido, determinar cuáles han sido las aplicaciones a lo largo del tiempo y hacia donde podrían encaminarse.

Definir el Middleware, es relacionar dos visiones muy comunes en las empresas:

  1. Un enfoque utilizado desde hace varios años para conectar los distintos sistemas de un ecosistema heterogéneo de tecnologías en una empresa. Se resume como un conjunto de prácticas y tecnologías como API Management, Seguridad, SOA / ESB, BPM, Business Rules Management System, Application Server, entre otros.
  2. Todo el conjunto de librerías, entornos de ejecución y entornos disponibles para que una solución informática funcione, sea que se encuentre bajo un enfoque de microservicios, API-First o API-led.

Ambas visiones podrían interpretarse como cosas distintas, no obstante, ambas son ciertamente aplicables y lo único que las diferencia es la envergadura o alcance que, por propia definición, se permite. Aquí, es tan sencillo como aclarar que el Middleware tiene un ámbito de aplicación en unos casos a escala empresarial, y en otros casos, en aplicaciones puntuales o determinadas.

El término middleware se refiere a un sistema de software que ofrece servicios y funciones comunes para las aplicaciones. En general, el middleware se encarga de las tareas de gestión de datos, servicios de aplicaciones, mensajería, autenticación y gestión de API.[1]

Y para sustentar un ejemplo más, incluso más alineada con la segunda visión aportada anteriormente, un extracto de Azure:

Básicamente, funciona como una capa de traducción oculta para permitir la comunicación y la administración de datos en aplicaciones distribuidas. A veces, se le denomina “plumbing” (tuberías), porque conecta dos aplicaciones para que se puedan pasar fácilmente datos y bases de datos por una “canalización”.[2]

¿Hacia dónde dirigir y transformar el Middleware en el mundo digital?

Considerando lo anterior, el Middleware sigue vigente como una estrategia TIC que es empresarial debido a que, desde su conceptualización, está vinculado a los procesos/escenarios de negocio, y estos a su vez, dentro de subconjuntos de la estructura organizacional, a las dependencias, personas y sistemas, produciendo el valor de la compañía. Con esto, podemos afirmar que, desarrollar proyectos de Middleware requiere como factor crítico de éxito la inclusión implícita, en las etapas más tempranas de su ciclo de vida, de prácticas de arquitectura empresarial que entreguen una visión holística de la organización.

Si lo relacionamos al mundo actual, y más precisamente dentro de las visiones de hiperautomatización y DigitalOps, DevOps, ItOps y todo lo que terminando en “Ops” que se viene dando en los recientes tiempos y los venideros, la aplicación de todo el ciclo de vida de una aplicación, proceso o integración se efectúa a mayor éxito a través de un enfoque orientado a resultado de negocio (outcome-business-driven).

De acuerdo con la anterior imagen, resumimos el próximo paso para el concepto de Middleware, en las siguientes grandes iniciativas:

  • Hiperautomatización.
  • DigitalOps Toolbox.
  • Hybrid Integration Platform.

Cada una de estas iniciativas serán abordadas en contenidos por separado, por su misma importancia y profundidad; y aunque a continuación haremos una breve descripción de las mismas, es importante considerar bloques imprescindibles al momento de desarrollarla, como el establecimiento de un centro de activación para la ejecución y operación de las iniciativas, la gestión del cambio y el gobierno.

Hiperautomatización:

Después de años en que RPA ha venido madurando al interior de las empresas, hoy, los líderes de innovación tienen el reto de entregar una automatización más transversal dentro de los procesos que están en el ámbito de negocio. Más allá del contexto de tarea, relacionando a los subprocesos y subiendo por el mapa de procesos hasta la cadena de valor. La inclusión de estos niveles junto a tecnologías complementarias de RPA como IA, ML, Analytics y BPM, son por definición propia la hiperautomatización.

DigitalOps Toolbox:

DigitalOps es un concepto reciente. Se define concretamente como las estrategias y herramientas para empoderar a los equipos de una organización en el despliegue de soluciones de automatización de procesos de una manera eficiente y ágil, asegurando la modernización y transformación digital del modelo de negocio de las empresas. Dicho de otro modo y más sencillo, es la visión evolutiva de la práctica de BPM en el mundo digital.

Dentro del conjunto de herramientas específicas – o Toolbox – para digitalizar a la organización, se encuentran gran parte de las herramientas que están implicadas en las iniciativas del presente. Como, por ejemplo, iBPMS, Decision Services, RPA, Process Discovery…

Este enfoque es muy práctico, pues en los diseños funcionales y técnicos de las iniciativas de transformación, esta visión aporta conceptualizaciones de los componentes de manera que se orienten a establecer ecosistemas y enfoques apropiados de la implantación, elección de herramientas y gobernanza de los bloques técnicos que, finalmente, den realidad tecnológica a los requerimientos en curso.

Hybrid Integration Platform

Es la plataforma en la empresa que permite ejecutar la integración moderna. Esta debe ser híbrida, portable, nativa para cloud, orientada a eventos, observable en tiempo real y ágil de implementar. En ella se combinan principios de API Management, Service Mesh, Event-Driven Architecture, Function as a Service, Serverless, Coreografía / Orquestación, despliegue basado en contenedores, entre otras. El concepto de integración moderna va en evolución a la clásica integración ESB, donde hoy se gana en que pueda ser conectada con pipelines CI/CD y flujos DevOps en general.

¿Cómo dirigir la transformación?

Para cada una de las iniciativas mencionadas, se requiere un direccionamiento específico. Sin embargo, existe un hilo conductor común para todas, que se resume en los siguientes puntos:

  1. Planificar cada área de transformación del Middleware (Hiperautomatización, DigitalOps y Hybrid Integration Platform).
  2. Utilizar y aplicar pragmáticamente, marcos de trabajo derivados como el The Open Group Agile Architecture Framework (O-AAF® por sus siglas en inglés), el Agile Framework de SAFe®.
  3. Establecer un Centro de Activación o Center for Enablement para la transformación específica del Middleware.
  4. Definir un modelo de gobierno en tiempo de diseño / ejecución de las iniciativas derivadas.

Conclusión

El Middleware existe y cobra una mayor relevancia e importancia para las empresas y las transformaciones tecnológicas que hoy demandan. Incluye conceptos propios de DigitalOps e Hiperautomatización, y para su adopción, deben ejecutarse de la mano de marcos de trabajo que son la piedra angular para ejecutar cualquier hoja de ruta que evolucione las arquitecturas, la generación de productos mínimos viables (MVPs) y las subsiguientes iteraciones de entregas de producto / resultado entre TIC y áreas de negocio.

En SOAINT, definir estos paradigmas arquitectónicos es natural dado que desde hace más de 15 años se desarrollan proyectos basados en metodologías de:

  • Governance
  • Service Lifecycle
  • API Lifecycle y API Economy que maduraron las implementaciones de SOA
  • Enfoques de gobierno basados en The Open Group (como la SOA Reference Architecture / Agile Architecture Framework)… Que son aplicados directamente a los programas de integración de las empresas.

Podemos partir de visiones muy concretas, rápidas y de bajo coste para implantar Middleware, sin perder de vista los objetivos de largo plazo y una arquitectura que sea gobernable a las necesidades cambiantes.

Glosario de términos

Citizen developer: Gartner define “Un ‘citizen developer’ como un usuario que crea nuevas aplicaciones de negocio para el consumo de otros, utilizando entornos de desarrollo y tiempo de ejecución autorizados por la TI corporativa”. En resumen, cualquier usuario no técnico que cree automatizaciones simples para sí mismo o su departamento puede ser un ‘citizen developer’.