Beruflich Dokumente
Kultur Dokumente
1
Introducción
Nada mas lejos de la realidad, a lo largo de este documento se explica por qué muchas
empresas siguen usando sistemas de hace mas de 20 años, como un lenguaje de programación
que se inventó hace 50 años sigue tan presente hoy en día y que tecnologías mas o menos
recientes han pasado ya a quedar obsoletas.
Es sorprendente como seguimos utilizando sistemas muy antiguos y al mismo tiempo como se
van jubilando otros relativamente recientes…
2
¿Qué es un sistema legado?
Normalmente los sistemas legados tienen una importancia alta en los procesos de las
empresas. Podemos decir que esa importancia es inversamente proporcional a la atención que
se les dispensa.
El tiempo de vida de los sistemas de software es bastante variable, muchos sistemas han sido
creados desde hace más de 15 años y son aún sistemas de misión crítica, es decir, las empresas
a veces dependen de los servicios suministrados por estos sistemas y cualquier fallo tendría un
serio efecto en el funcionamiento de la organización.
Las decisiones que se toman sobre este tipo de sistemas son de orden estratégico debido a su
importancia. Sistemas con estas características son los comúnmente denominados sistemas
legados.
Lo habitual es que los sistemas legados, los que ya suponen un problema para una empresa u
organización por la dificultad para sustituirlos, no sean los mismos sistemas que originalmente
se empezaron a utilizar en la empresa.
La ausencia de una documentación actualizada sobre los sistemas legados hace que se tema
que la actualización o los nuevos sistemas no cubran con todas las necesidades de la empresa.
Todo esto hace que los sistemas heredados estén en todas partes: bancos, compañías de
energía, fabricación, defensa, transporte, hospitales, seguros etc.
3
Ventajas e inconvenientes
Como ventajas no se puede hablar de los sistemas legados en conjunto salvo que,
debido al tiempo y esfuerzo requeridos para desarrollar un sistema tan complejo, los grandes
sistemas informáticos normalmente tienen un tiempo de vida largo. Por ejemplo, los sistemas
militares normalmente son diseñados para un tiempo de vida de mínimo 20 años, al igual que
muchos sistemas de tráfico aéreo que fueron diseñados por los años 60/70.
Aquí se muestran algunos específicos como algún procesador muy robusto o algún lenguaje de
programación, estos son algunos ejemplos y sus razones:
En estos y otros muchos casos al cambiar hardware y el software corremos mucho riesgo de
empeorar.
Pasamos del hardware al software donde se va a comentar uno de los casos mas conocidos y
extendidos, en este caso el famoso lenguaje de programación COBOL, el cual se sigue
utilizando en multitud de compañías y muchas se resisten a deshacerse de él.
“These older technologies do things that are extremely effective and efficient. And that’s unfortunately
referred to by the term `legacy´.”
Charaka Kithulegoda, Chief Information Officer, ING Direct Canada
Un ejemplo muy conocido es el Banco Santander que todavía sigue usando este lenguaje ya
que al igual que muchos otros bancos tienen programado su núcleo con el.
COBOL se sigue usando hoy en día ya que es eficiente (no hay objetos*), especialmente
trabajando con números Aritmética de coma fija para contabilidad exacta. Cuenta con una
gran capacidad procesamiento por lotes, tiene más de 50 años de optimizaciones verbose.
4
Comentadas algunas ventajas, llega el momento de hablar de los riesgos que supone
seguir manteniendo estos sistemas:
1. Si continúan utilizando los sistemas legados y realizan los cambios requeridos, sus
costos se incrementarán de forma inevitable.
2. Si deciden reemplazar sus sistemas legados con nuevos sistemas, esto tendrá un costo
y puede ocurrir que los nuevos sistemas no provean apoyo efectivo al negocio como lo
hacen los sistemas legados.
5
Por esta razón, los sistemas heredados incorporan un gran número de actualizaciones hechas a
lo largo de su vida útil. Muchas personas diferentes pueden haber estado involucradas en la
realización de estas modificaciones a lo largo del tiempo, y es inusual para cualquier usuario o
administrador del sistema tener un conocimiento completo del mismo, sobre todo cuando
éste tiene una cierta envergadura.
Pero estas no son las únicas desventajas, aquí se recopilan algunas más:
• Funcionan, pero son cada vez más inestables debido a incompatibilidades con los
nuevos SO, navegadores o estructuras.
• No pueden utilizarse para siempre; en algún momento va a ser necesario actualizar el
hardware, el lenguaje de codificación, el SO o la aplicación.
• Nadie llega a conocerlos al 100%: su larga vida hace que pasen por diferentes manos,
se usen lenguajes distintos y la documentación no esté actualizada.
• Con el tiempo, el rendimiento es más lento, el consumo de recursos mayor y hay más
fallos, reduciéndose la eficiencia de procesos y la productividad.
• Al finalizar el soporte o mantenimiento de los fabricantes, se deja de recibir atención
ante errores.
• Cuantos más parches haya, más susceptible será a las brechas de seguridad.
• Problemas de compatibilidad: aplicaciones vinculadas a versiones de SO o lenguajes
obsoletos, incompatibilidad con nuevas tecnologías, incompatibilidad con servicios en
la nube o basados en web, etc
6
Ejemplos conocidos
El 8 de abril de 2014 finalizó el soporte para Windows XP SP3 (y Office 2003) este sistema se
encontraba Instalado todavía en muchos millones de equipos considerada para algunos la
versión de Windows más longeva y estable.
En junio 2008 Microsoft quiso poner fin al soporte de Windows XP (el primer intento fallido)
por la reciente salida de su nuevo sistema operativo Windows vista, la gran mayoría de los
usuarios, gobiernos de todo el mundo y algunas empresas como Compaq que decidió que sus
PCs seguirán con Windows XP, se quejaron enérgicamente de esta medida por lo que en
febrero de 2008, Microsoft extendió el soporte hasta 2014.
Un estudio reciente de la consultora Ovuum mostraba que en 2014 al menos un 28% de los
equipos corporativos del mundo continuaban utilizando Windows XP, Microsoft hoy en día
ya ni siquiera ofrece soporte técnico, con los consiguientes riesgos de seguridad que ello
implica. Actualizar las tecnologías heredadas resulta a veces tan costoso para las compañías
que la compañía de Redmond llegó a firmar un acuerdo unilateral millonario con el gobierno
británico para seguir prestando servicio técnico a sus ordenadores, que funcionan con XP.
Según datos de 2009, el 70-75% de los negocios y sistemas de transacciones del mundo
funcionan en COBOL: Banca, tarjetas de crédito, cajeros automáticos, compra entradas,
nóminas, aseguradoras, llamadas telefónicas, hospitales, líneas aéreas, semáforos, SI
gubernamentales y militares, SI 24/7, etc.
Cada día conecta 500 millones de usuarios de teléfono móvil, gestiona la atención de 60
millones de pacientes, procesa el transporte de 72.000 contenedores y el 85% de las
operaciones portuarias.
7
Pero todo eso son solo algunos ejemplos, la importancia de COBOL es todavía mayor:
Esto no termina aquí, la presencia de COBOL sigue siendo tan grande que se sigue
programando y desarrollando a diario, así:
8
Migración
La migración es una alternativa con alto impacto en el sistema y es considerada una
solución de largo plazo. Busca reutilizar, tanto como le sea posible, los procesos existentes en
el sistema legado, incluyendo el diseño y la especificación, de tal forma que se conserve la
funcionalidad del sistema original a pesar de residir ahora en una plataforma tecnológica
diferente.
Sin embargo, migrar no es la única alternativa para evolucionar un sistema legado, para ello
existen 4 estrategias:
Vistas las alternativas, la más viable a largo plazo es migrar, para un sistema de este tipo se
pueden seguir una de estas estrategias:
Con esta técnica obtenemos el mismo sistema más limpio si se hace bien pero no se
obtiene un sistema actualizado.
• Encapsular el sistema legado: Se basa en el uso de wrappers, estos son módulos para
acceder a un sistema concreto ofreciendo una cierta interfaz (API), básicamente como
envoltorios o adaptadores. Las metodologías de diseño orientada a objetos encajan
perfectamente con esta estrategia. Sobre una misma aplicación pueden existir múltiples
wrappers, de los cuales existen dos tipos:
9
• Máquina-Máquina: oferta un nuevo API (traducción de llamadas y resultados)
• Humano-Máquina: Ofrece una interfaz gráfica donde antes sólo había una API (ej. Una
clase Java que implementa un servicio web-protocolo SOA) o bien, ofrece una API
donde antes sólo había una interfaz gráfica o de texto (ej. Un script para rellenar los
formularios web automáticamente o para descargaros todos los archivos enlazados de
una página web).
• Sustituir la interfaz del sistema: Consiste en sustituir la GUI del sistema por una actual
tanto la tecnología como el estilo llevando a cabo una migración parcial, sin embargo, las
aplicaciones legadas no suelen estar estructuradas en capas (en general sólo dos capas)
por lo que hoy en día en lugar de sustituir se crean nuevas vistas.
• Reconstruir las aplicaciones operando con dos sistemas en paralelo: Esta técnica consiste
en ir creando un nuevo sistema mientras se hace uso del anterior, transferir los datos y
posteriormente eliminar el viejo sistema. Para ello se siguen estos pasos:
1. Construir una pasarela de modo que los sistemas nuevos en un principio accedan al
sistema de gestión de datos legado (traductor de SQL a accesos a sistemas gestión de
datos legados)
2. Migrar las aplicaciones de forma incrementa
3. Creación del nuevo sistema de gestión de datos y migración de todos los datos
4. Desechar la pasarela
10
• Crear un sistema nuevo con el mismo objetivo desde cero: Esta estrategia implica la
introducción de nuevas técnicas y tecnologías en la empresa, lo que conlleva una gran
inversión en tiempo/dinero de análisis del sistema antiguo, desarrollo del nuevo sistema,
la implantación y pruebas del mismo con el objetivo de lograr un sistema con la misma
funcionalidad.
• Crear un sistema nuevo con un nuevo enfoque empresarial: Esta estrategia es una
operativa de negocio con lo que se replantea todo de nuevo, sigue los mismos pasos que la
anterior solo que además de la funcionalidad que se conserva del sistema antiguo ofrece
nuevas características basadas en el nuevo enfoque empresarial
11
Conclusiones:
La principal conclusión que he sacado de este trabajo es lo importante que son para las
empresas los sistemas legados, aunque fueron desarrollados hace décadas se han ido
actualizando gastándose importantes cantidades de dinero en ellos, es por eso por lo que
muchas se resisten a deshacerse de ellos.
También me he dado cuenta de la poca importancia que le damos a este tipo de sistemas ya
bien sea por lo viejos que son o porque muchas veces, aunque sean críticos permanecen en un
segundo plano y no nos percatamos de que están ahí.
Por eso creo que se debería de hacer mas hincapié en este tema ya que en un futuro reciente
puede ser una muy buena via de negocio.
Pero si algo hemos sacado en claro es que no todo lo viejo tiene que ser malo, simplemente
desarrollando y/o utilizando las nuevas estrategias, podemos adaptarlo e incluso fusionarlo
(siempre que no se trate de un hardware muy muy antiguo) a los nuevos sistemas de la
información.
Como bien indico en la portada he licenciado este documento bajo la licencia Creative Comons: Atribución-
NoComercial-CompartirIgual 4.0 Internacional
El licenciador no puede revocar estas libertades mientras cumpla con los términos de la licencia.
https://creativecommons.org/licenses/by-nc-sa/4.0/deed.es_ES
12
Referencias
- http://arquitecturaaplicacionesdistribuidas.blogspot.com/2013/02/24-integracion-de-
sistemas-heredados_22.html
- https://www.go4it.solutions/es/blog/los-riesgos-de-mantener-sistemas-legados
- https://www.linkedin.com/pulse/evoluci%C3%B3n-de-un-sistema-legado-mantener-o-
migrar-david-pinzon
- https://www.docpath.com/art-risks-of-keeping-legacy-software-applications-patch-
kb3170455/?lang=es
13