Saber quién es quién en el zoo es importante en el sector de la integración de datos
Cuando empecé en el sector, hace unos veinte y tantos años (me gusta pensar que sigo teniendo veintitantos, así que esa cifra me suena bien), en la mayoría de las grandes organizaciones solo había un departamento de TI con un único responsable. Ahora hay varios responsables en distintos departamentos, algunos de ellos adscritos a diferentes áreas de la organización. Algunas tareas se subcontratan, otras se gestionan internamente y en otras se recurre a colaboradores externos.
A la hora de conectar la mayoría de los sistemas entre sí, el sector se centra en «disponer de un conector para esto o aquello», mientras que lo realmente complicado es cómo conectarse a esa implementación concreta de ese sistema.
A medida que las tecnologías han ido evolucionando con el paso de los años, también lo han hecho los pilares (o silos) de los equipos. Por eso, ofrecer una solución de integración para conectar múltiples sistemas es más una pesadilla de gestión de proyectos (como intentar pastorear gatos) que una pesadilla relacionada con los conectores. Tomemos como ejemplo una empresa típica de tamaño medio que quiere conectar sus aplicaciones en la nube (CRM, RR. HH., etc.) con sus aplicaciones locales (SAP, Oracle Finance, Dynamics, bases de datos, etc.). Es una tarea bastante sencilla, ya que disponemos de todas las opciones de conectores y, en el peor de los casos, siempre podemos recurrir a un conector JSON/XML basado en servicios web y a conectores de bases de datos. El problema de «¿tenemos un conector para cada sistema?» se resuelve en cuestión de minutos.
El verdadero problema, y lo que más tiempo nos lleva, es cómo conectarnos y a quién vamos a dar acceso. Si tenemos en cuenta las capas tecnológicas implicadas (tomando el modelo OSI como método para analizar el acceso paso a paso):
- Capa física: cómo está conectado el servidor y qué límites de velocidad podrían restringirlo (¿está conectado el servidor?).
- Capa de enlace de datos: qué nivel de calidad de servicio tenemos, hay restricciones, en qué VLAN estamos y a qué tiene o no acceso esa VLAN.
- Capa de red: ¿podemos realizar una prueba de red a cada sistema que necesitemos conectar?
- Capa de transporte: ¿podemos mantener una conexión y cuál es su rendimiento?
- Capa de sesión: ¿cuáles son los mecanismos de autenticación de cada sistema? ¿Podemos autenticarnos?
- Capa de presentación: ¿podemos acceder a métadonnées que hay detrás de cada sistema? ¿Tenemos suficientes derechos?
- Capa de aplicación - ¿Podemos ver una muestra de los datos a los que nos estamos conectando? ¿Se parecen los datos a lo que esperábamos? ¿Podemos realizar actualizaciones, inserciones, inserciones ascendentes, eliminaciones y lecturas? ¿Se ha personalizado la aplicación y podemos acceder a esas personalizaciones?
Conseguir todo esto requiere trabajar con diferentes equipos de TI tanto internos como externos. También puede requerir trabajar con proveedores u otros desarrolladores ajenos a la organización. Considere las siguientes funciones (no es una lista exhaustiva) que requerirían ganarse su confianza y conocimientos/asistencia:
- Administrador de servidores/hardware - Servidor virtual, capacidad, instalación de servidores.
- Especialistas en sistemas operativos - Windows / Linux / AIX / etc. ¿Capacidad para ejecutar su software de integración? ¿Instalación, parcheado y mantenimiento? ¿Acceso remoto al servidor?
- Gestor de red - ¿En qué zona se instaló el servidor? ¿Tiene conectividad con cada sistema? ¿Acceso remoto al servidor?
- Seguridad/Firewall - ¿Qué puertos están bloqueados y es necesario abrir para este nuevo servicio? ¿Está causando problemas el software antivirus? ¿Acceso remoto al servidor? ¿Acceso del navegador al servidor?
- Especialista en aplicaciones en nube - ¿Método de acceso, seguridad, capacidad de acceso? ¿Podemos iniciar sesión?
- Administradores de bases de datos - Acceso a bases de datos, derechos, pruebas sencillas de lectura de bases de datos.
- Aplicaciones Especializadas (Desarrolladores SAP BAPI) - ¿Existen algunas BAPIs personalizadas que deban ser utilizadas? ¿Cuáles de las BAPI estándar no se deben utilizar? ¿Podemos utilizar la aplicación fat client/web para ver y consultar el sistema? ¿Podemos utilizar un sistema de prueba/desarrollo?
- Desarrolladores de aplicaciones - ¿Existe un método estándar para la recopilación de requisitos, metodología de desarrollo, revisiones por pares, pruebas de aceptación del usuario, pruebas del sistema, pruebas de carga?
Cuando se nos pide que demostremos que podemos conectarnos a un sistema, dedicamos el 90% de nuestro tiempo a trabajar con las personas de arriba y el 10% a realizar la conexión real. Saber con quién trabajar y ganarse su confianza es lo más difícil.