Lenguaje COBOL y la era de la integración: Rompiendo mitos con APIFAST y la convergencia tecnológica
Integración: Acción y efecto de integrar o integrarse: “hacer que alguien o algo pase a formar parte de un todo”.
El conocimiento popular supone que COBOL no se integra o que le cuesta integrarse con otros lenguajes. También se da por sentado que no puede utilizar librerías de cualquier tipo y se supone que no se integra con las tecnologías de comunicación e intercambio de información actuales y emergentes.
Nada más lejos de la realidad. COBOL, al igual que C, es un lenguaje que se integra con casi, casi, casi todo. Veamos cómo:
- COBOL se integra con cualquier lenguaje de programación como Java, Python, PHP, C, C++, C#, y muchos otros, ya sea sobre sistemas operativos Unix, Linux o Windows.
- COBOL se integra con las tecnologías de intercambio de información existentes como SOAP, WSDL, API-REST y JSON, entre otras.
- COBOL puede utilizar casi cualquier librería existente. En un Linux, por ejemplo, hay más de 3000 librerías instaladas que hacen de todo: desde tratamiento de XML, hasta procesamiento de imágenes, vídeo, intercambio de información, HTML, etc.
- COBOL puede conectar con cualquier base de datos, solo hace falta un ODBC (Open Data Base Connectivity: estándar de la industria para acceso a fuentes de datos mediante SQL).
¿Sorprendidos?
Claro que sí, no digáis que no.
Hay un gran desconocimiento sobre las capacidades de integración de COBOL, y esto se debe al propio desconocimiento de cómo funciona COBOL.
COBOL funciona como el lenguaje C. Tanto COBOL como C y Ensamblador son lenguajes que pasan datos a funciones por la pila (Stack) del proceso en el que corren. ¿Qué es la pila? La pila es un área dedicada dentro de un proceso para pasar parámetros a las funciones, recibir parámetros de las funciones y registrar las direcciones de memoria de retorno a la función anterior. Además, utilizan unos comandos del procesador muy divertidos llamados PUSH y POP.
¿Nadie se ha enterado de nada?
Lo explicaré de otra forma: COBOL funciona como el C. ¡Y si funciona como el C, se integra con casi todo!
Lo que quiero decir es que desde COBOL se puede llamar a recursos del sistema operativo directamente, o llamar a casi cualquier recurso instalado en el ordenador, ya sean librerías o programas. ¿Asombrados? Claro, porque COBOL se comporta como C.
Históricamente, COBOL se escribió en ensamblador (antes de que existiera el C). Posteriormente, se escribió en lenguaje C, lo que le permitió utilizar todos los recursos que los procesadores ponen a disposición del sistema operativo y, por ende, a disposición del programador. Es decir, utiliza la pila (Stack), lo que le otorga una gran capacidad de integración, al igual que el C.
Lenguajes como Python, PHP y otros lenguajes de gestión no utilizan la pila, y para integrarse, disponen de interfaces con C. Y si tienen interfaces con C, pueden interactuar con COBOL, bien directamente o mediante pasarelas C, dependiendo de cómo estén diseñadas esas interfaces.
C es un gran aliado de COBOL, ya que, una vez que Kernighan y Ritchie, allá por los años 70, inventaron el C, los runtimes, drivers, lenguajes, librerías de cualquier tipo, servidores de aplicaciones y los sistemas operativos se escriben mayoritariamente en C, lo que hace que estos recursos sean accesibles hacia o desde COBOL.
En cuanto a las tecnologías de intercambio de información modernas, COBOL es un lenguaje ideal para procesar información o protocolos de aplicación basados en texto, como pueden ser API-REST, JSON y SOAP. Recordemos que COBOL es un lenguaje de gestión y el tratamiento de cadenas de texto es uno de sus puntos fuertes.
¿No dais crédito, ¿verdad?
No me extraña, COBOL es un lenguaje desconocido y a menudo subestimado por aquellos que suponen que lo último en salir es lo mejor y que lo antiguo no es válido o es obsoleto. Nada más lejos de la realidad. COBOL es como la rueda, inventada hace miles de años y aún sigue vigente, con algunas mejoras, aunque en esencia, el concepto sigue siendo el mismo.
En ANOOK, COBOL está perfectamente integrado con nuestras soluciones de ERPs ANOOK Industry y ANOOK Construction. En estas soluciones, COBOL constituye el núcleo de los ERPs, apoyado sobre un servidor de aplicaciones escrito en C, y atiende las peticiones de nuestros usuarios vía protocolo TCP/IP, generadas desde un cliente pesado escrito en .NET para PC. Estas soluciones de COBOL también interactúan con las apps desarrolladas para móviles y tablets escritas con Swift. Además, intercambian información con fuentes de datos externas como CRM, ERP, HCM, TrustCloud, servicios de banca, RICOH, Weighbridge, básculas de pesada, administraciones públicas, OCR de Readsoft, Jagger… ¡y la lista sigue creciendo!
¿Cómo es posible?
Ya os he respondido, pero os daré algunos detalles más. En ANOOK hemos establecido un puerto tecnológico llamado APIFAST (API Flexible-Activa-Segura-Total) que consta de una serie de web services sobre un Internet Information Server, publicados en internet, mediante los cuales enviamos y recibimos información desde y hacia fuentes externas. Esta información es emitida y recibida en primera y última instancia desde nuestros ERPs, es decir, desde y hacia COBOL. Estos programas interactúan con las distintas tecnologías de intercambio de información mediante una pasarela escrita en C que “normaliza” los datos entre COBOL y los web services escritos en C#.
Recapitulando: COBOL se integra con TODO, y si hay algún problema, su superhéroe, el ‘C’, viene al rescate para hacer de una solución un TODO, tal y como dice la definición de INTEGRACIÓN.
Hoy en día, un único lenguaje o tecnología no puede resolver toda una solución de negocio por sí solo. Toda solución debe interactuar con otras soluciones mediante diversas tecnologías. Cada herramienta o lenguaje tiene un fin específico y resuelve una parte de la solución global, pero necesita de otras herramientas y tecnologías para resolver la solución completa. Por eso, la integración es fundamental en este mundo hiperconectado.
Esto nos lleva a que, si las interfaces de conexión no son directas o sencillas, o son simplemente desconocidas, los arquitectos de las soluciones evitarán ciertos lenguajes y herramientas e intentarán resolver los problemas con una única herramienta de forma homogénea, lo que puede no ser lo más eficiente y conllevar la pérdida de la riqueza que aporta la diversidad.
Cuando los lenguajes de programación deben interactuar entre sí, es cuando empiezan los problemas. Es en este punto donde las fronteras entre lenguajes y herramientas se vuelven difusas e inseguras para los arquitectos y programadores. Esta percepción lleva a la desconfianza y al rechazo.
Para disipar estas “tinieblas”, hay que profundizar en cómo están construidas las herramientas seleccionadas, investigar qué entradas, APIs, plug-ins o interfaces poseen, y ver cómo encajar con la tecnología al otro lado de la “niebla”. Si dominamos estas “fronteras” interherramientas, las posibilidades que se nos presentan son ilimitadas.
¿Se ha disipado la niebla? ¿Se han perfilado las fronteras? ¡Vislumbremos las posibilidades ilimitadas!
¿Qué opinas sobre la integración de COBOL con tecnologías modernas? ¿Crees que se sobrevalora la dificultad de integración? Deja tus comentarios y comparte tu experiencia.
#Integración #Tecnología #COBOL #APIFAST #Innovación #TransformaciónDigital #ERP #Desarrollo #TecnologíasEmergentes #ConvergenciaTecnológica
¡¡¡Enjoy COBOL!!!
Júcar
Dejar un comentario
¿Quieres unirte a la conversación?Siéntete libre de contribuir!