Sie sind auf Seite 1von 14

31-1-2019 Trabajo dirigido

Los sistemas legados

Aitor Arcos Almazán


SISTEMAS DE LA INFORMACION
Tabla de contenido
Introducción ............................................................................................................................ 2
¿Qué es un sistema legado? ..................................................................................................... 3
Ventajas e inconvenientes........................................................................................................ 4
Ejemplos conocidos.................................................................................................................. 7
Migración................................................................................................................................. 9
Sistemas legados actuales .......................................................................................................11
Conclusiones: ..........................................................................................................................12
Referencias .............................................................................................................................13

1
Introducción

Pocas veces se habla si no es a modo introductorio de los antiguos sistemas, el viejo


hardware, mainframes, sistemas operativos, lenguajes de programación, software… se tratan
vagamente en alguna asignatura para conocer la historia acerca de la informática, pero poco
se indaga en ellos, dando por hecho que por ser antiguos ya forman parte del pasado.

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?

Un sistema legado o heredado es una tecnología, aplicación de software, lenguaje de


programación o proceso que fue creado hace mucho tiempo y que ya no recibe soporte ni
mantenimiento, pero es esencial para las organizaciones y no se quiere o puede
reemplazar/actualizar de forma sencilla por varias razones, entre las cuales podemos
destacar estas dos:

• La vida útil de los equipos grandes es de hasta 20 años debido a que su


elevado coste tarda varios años en amortizarse.
• Muchos procesos de negocio empresariales se diseñan “a medida” resultando
críticos y fundamentales para la empresa.

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 muchos aviones comerciales el Piloto automático sigue siendo un Intel 80386


(1986-2007), este viejo procesador ya no puede con Windows 7/8/10… pero
constantemente aterriza aviones llenos de pasajeros.
• La Estación Espacial Internacional (ISS) usa el 386 por aguantar mejor la radiación que
CPUs más modernas las cuales son más potentes pero más sensibles.
• Space Hubble (1990-¿2021?) este famoso telescopio en 1999 reemplazó el Intel 386
por un 486/25 Mhz (1989-1997). Hoy en día su Estabilidad sigue comprobada, sin
mantenimiento y sin imprevistos.

Se siguen usando el 386/486 porque son fiables y no se recalientan (y sin ventilador)

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.

El propio código es la documentación y además opera en todas las plataformas, desde


mainframe hasta Windows/Linux
*En versiones anteriores a 2002

4
Comentadas algunas ventajas, llega el momento de hablar de los riesgos que supone
seguir manteniendo estos sistemas:

EL principal problema que nos encontramos es el mantenimiento, seguir utilizando un sistema


legado evita los mencionados riesgos del reemplazo, pero hacer cambios al sistema existente
en vez de cambiarlo por uno más moderno puede ser más costoso puesto que éste es cada vez
más viejo, entonces a las empresas se le plantean dos dilemas:

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.

El mantenimiento de los sistemas legados es usualmente complejo y presenta una curva de


aprendizaje bastante empinada debido principalmente a:

• Las diversas partes del sistema se encuentran desarrolladas en lenguajes de


programación desactualizados. Contar con recursos que dominen estos lenguajes no
es sencillo por lo que el costo de mantenimiento del sistema es elevado.
• La documentación de los sistemas es escasa e insuficiente.
• El número de años de mantenimiento continuo sobre el sistema hace que la estructura
del software se incremente sustancialmente y sea propensa a la existencia de código
muerto (que nunca se ejecuta) dentro de algunos programas.
• Existen limitaciones propias de las plataformas y sistemas legados, como limitantes en
tamaño de los nombres de archivo, limitantes en el tamaño disponible para carga de
programas en memoria, limitantes en la longitud de las variables, etc.
• Existencia de duplicidad de datos, datos desactualizados y datos incompletos.
• La base de soporte disponible para un sistema legado es limitada, y en ocasiones
requerida tanto para aspectos técnicos, como funcionales y de proceso. La mayor
parte del conocimiento del sistema se encuentra concentrado en pocas personas, y la
disponibilidad de estos recursos puede no ser inmediata o no responder con la agilidad
que se requiere.

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

Muchas de las administraciones públicas y grandes empresas, siguen utilizando viejos


mainframes de hace más de 20 años, así como web estática, hardware en centrales
energéticas, terminales de venta, máquinas de departamentos de defensa… pero a la hora de
citar ejemplos nos vamos a centrar más en las tecnologías heredadas que mas se siguen
usando hoy en día.

Empezamos por un sistema operativo legado reciente, el archiconocido Windows xp

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.

Si no se migraba se corrían los riesgos de la vulnerabilidad a nuevo malware, ciertas


aplicaciones dejarían de actualizarse y finalmente los problemas se propagarían a otros
equipos. Sólo el 42% de las empresas comenzó la migración en 2013 (según Microsoft)

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.

Pasamos de un sistema operativo a un lenguaje de programación, como ya se ha comentado


anteriormente, muchas empresas siguen usando COBOL, a continuación, se comentan varios
datos que nos muestran el uso actual de este antiguo lenguaje y la verdad es que sorprenden
bastante.

¿Pero quién puede usar COBOL hoy en día?

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:

• Soporta cada día el 90% de los sistemas de negocio de Fortune 500


• 70% de la lógica de negocios y datos críticos
• Procesa el 85% de todas las transacciones comerciales diarias
• 95% de todas las transacciones en cajeros automáticos
• Permite la reserva de 96.000 paquetes de vacaciones al año
• 80% de todas las transacciones de punto de venta
• 30.000 millones transacciones/día. Hay más transacciones de COBOL al día que
búsquedas en Google y YouTube.

Esto no termina aquí, la presencia de COBOL sigue siendo tan grande que se sigue
programando y desarrollando a diario, así:

• 2000 millones de aplicaciones de mainframe están escritas en COBOL en las


corporaciones
• 5000 millones de líneas nuevas se desarrollan cada año
• 1,5 millones de líneas de código COBOL cada día
• Se estima que 2 millones de personas trabajan actualmente en COBOL

El total de la inversión en tecnologías COBOL, el personal y los equipos se estima en $5000


millones, se calcula que se han invertido $2 trillones en los últimos 50 años y reemplazar los
sistemas COBOL (se estima $25 por línea), serían cientos de miles de millones de $.
• Fuentes: Aberdeen Group; Giga InformationGroup; Database & Network Journal;
TheCOBOL Report; SearchEngineWatch.com;
TacticalStrategyGroup; TheFutureof COBOL Report.
“Is there still a market for Cobol skills/developers?“: https://cis.hfcc.edu/faq/cobol

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:

• Eliminar completamente el sistema. Esta opción debe considerarse cuando el sistema


no está haciendo ninguna contribución en los procesos de negocio, caso que sucede
cuando los procesos de negocio han cambiado y se hacen independientes de los
procesos soportados por el sistema.
• Tolerar y continuar con el mantenimiento del sistema. Esta estrategia es aplicable
cuando el sistema es aún requerido, permanece estable, y no existen muchos
requerimientos de cambio sobre el sistema.
• Transformar o integrar el sistema para mejorarlo. Esta opción debería escogerse
cuando la calidad del sistema se ha visto degradada por los cambios adicionados al
sistema y aún existen nuevos requerimientos funcionales para el sistema.
• Migrar o reemplazar el sistema por otro sistema. Proceso que transforma el sistema
existente en uno nuevo. Cuando debido a diversos factores (cuestiones técnicas,
contractuales, estratégicas, etc) la operatividad o el soporte a futuro del sistema sea
incierto, se debe considerar esta alternativa.

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:

Estrategias de migración de SI (por orden ascendente de riesgo y calidad)

• Reestructurar el sistema legado: Desarrollo e implementación de herramientas que


eliminen el código muerto, ampliar el espacio para determinados ficheros y/o agrupar
datos de diferentes ficheros para acelerar el sistema.

Con esta técnica obtenemos el mismo sistema más limpio si se hace bien pero no se
obtiene un sistema actualizado.

Algunos lo engloban como tareas de mantenimiento

• 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. Crear un nuevo sistema de gestión de datos (en general BD)


2. Migrar un subconjunto de datos
3. Desarrollar parte de la funcionalidad
4. Mantener los dos sistemas de gestión de datos con información consistente
(comunicación bidireccional entre el sistema legado y el sistema en construcción)
5. Incrementalmente repetir los tres pasos anteriores
6. Después de un tiempo empleando los dos sistemas en paralelo quedarse solamente
con el nuevo
7. Durante la convivencia cualquier cambio en el sistema legado tiene que reflejarse en la
nueva

• Reconstruir las aplicaciones migrando los datos al comienzo: Peligroso porque el


conocimiento adquirido con la manipulación de los datos suele ser menor que el que se
obtiene del análisis de las aplicaciones, aun así si se opta por esta estrategia debemos
seguir los siguientes pasos:

1. Crear un nuevo sistema de gestión de datos (en general BD)


2. Construir una pasarela (gateway) de modo que los sistemas legados accedan al nuevo
sistema de gestión de datos (traductor de accesos a datos a SQL)
3. Migrar todos los datos
4. Migrar las aplicaciones de forma incremental
5. Desechar la pasarela

• Reconstruir las aplicaciones migrando los datos al final:

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

Sistemas legados actuales

• Versiones anteriores de Windows, a destacar Windows XP y Windows Vista ya sin


soporte.
• Office 2003
• iPhone: versiones 1 a 6 ya sin soporte
• iMac 20” y 24”, Mac Book 13”, Mac Book Pro 15” y 17”, Xserve 2006, Xserve RAID 2004
también sin soporte
• Google Chrome 32 bits para Linux fin soporte (dic 2015): Linux y Windows XP en PC
viejos se quedan sin este navegador
• Nuevo navegador Microsoft Edge (2015): No soporta extensiones legadas: ActiveX,
Java, SilverLight, VBScript, etc.
• Adobe Flash fin soporte (2020): No soportada ya por los principales navegadores Web
(Chrome, Firefox, Edge, Safari)
• Las webs de muchas empresas siguen siendo estáticas, no se las renovaron desde que
se crearon hace mas de una década.

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

Según esta licencia eres libre de:

Compartir — copiar y redistribuir el material en cualquier medio o formato.

Adaptar — remezclar, transformar y crear a partir del material.

El licenciador no puede revocar estas libertades mientras cumpla con los términos de la licencia.

Bajo las condiciones siguientes:

- Reconocimiento — Debe reconocer adecuadamente la autoría, proporcionar un enlace a la licencia


e indicar si se han realizado cambios<. Puede hacerlo de cualquier manera razonable, pero no de una
manera que sugiera que tiene el apoyo del licenciador o lo recibe por el uso que hace.
- NoComercial — No puede utilizar el material para una finalidad comercial.
- CompartirIgual — Si remezcla, transforma o crea a partir del material, deberá difundir sus contribuciones
bajo la misma licencia que el original.

Puedes conocer todos los detalles de esta licencia en el siguiente enlace:

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

- Apuntes de la asignatura en Moodle

- Apuntes de la asignatura “Sistemas Legados” de Carlos Catalan

Esta obra está bajo una Licencia Creative Commons Atribución-


NoComercial-CompartirIgual 4.0 Internacional.

13

Das könnte Ihnen auch gefallen