LA CRISIS INFORMÁTICA DEL AÑO 2000 (Y2K)

Ing. M.Sc. Marcelo Romo Proaño

(basado en artículos tomados del Internet)

Julio de 1998

 

1. ¿CUÁL ES EL ORIGEN DEL PROBLEMA?

En algunas computadoras (en particular en los modelos más antiguos de mainframes), las fechas son almacenadas en tres campos de dos dígitos cada uno (dd-mm-aa), lo cual impide distinguir entre las fechas del siglo XX y las del siglo XXI. El 4 de mayo de 1925, por ejemplo, se representa 04-05-25, y el 4 de mayo del año 2025 se representa exactamente igual, 04-05-25. En los primeros días de la Informática se estuvo consciente del problema que se podía generar a futuro, pero se supuso que para 1999 ya existirían otras tecnologías y aplicaciones que reemplazarían a aquellas desarrolladas en esa época, y que superarían la limitación introducida.

Los cambios de tecnología y de aplicaciones se produjeron como estaba previsto (e inclusive más allá de lo previsto), pero la Compatibilidad Hacia Atrás fue la base de cualquier nueva aplicación exitosa, lo que produjo que el nuevo software siga basándose en ciertos esquemas básicos presentes en el software antiguo, y muy particularmente se mantuvo el mismo modelo de definición de fechas.

Como complemento al problema de las grandes computadoras, un alto porcentaje de microcomputadoras (alrededor del 80% de los equipos que están en funcionamiento) utiliza BIOS incompatibles con el Año 2000, que solamente reconocen dos dígitos para los años, lo que también les impide identificar los años del siglo XXI.

Adicionalmente, en los inicios de la Informática, algunos programadores utilizaron el 99 en el espacio reservado para los años; también emplearon el 9999 o el 999999999 en el espacio reservado para los fechas, como valores especiales para suspender procesos o realizar otro tipo de procesos dentro de los programas (usualmente estos números especiales denotaban la terminación de un archivo).

Estos problemas pueden parecer muy sutiles, pero en realidad han sido subestimados. Los especialistas en informática consideran, hoy en día, que se trata del problema más grande al que se ha enfrentado la industria de la computación en sus 50 años de existencia. Por desgracia, muy pocas organizaciones están preparadas para encontrar una solución oportuna.

 

 

2. ¿CUÁLES SERÍAN LAS CONSECUENCIAS PRÁCTICAS DEL PROBLEMA?

El área financiera de las empresas e instituciones, que manejan frecuentemente procesos basados en fechas, sería la más afectada por la CRISIS INFORMÁTICA DEL AÑO 2000 (Y2K). Sin embargo, no se debe descartar el que otras áreas, cuyos sistemas de información también manejan fechas para realizar cálculos, sufran problemas de consecuencias impredecibles. A continuación se presentan una serie de problemas hipotéticos y otros reales, que permiten visualizar las consecuencias de no tomar las medidas apropiadas para que los sistemas estén aptos para el Año 2000, o las consecuencias de tomar medidas incompletas.

 

Consideremos un primer problema muy sencillo: Un sistema gubernamental de pagos por material de oficina, que maneja cifras de los gastos de los 5 últimos años.

En el año 2001, al visualizar los pagos anteriores, los operadores del sistema esperarán obtener en su pantalla una lista de arriba hacia abajo con información acerca de los años 01 (2001), 00 (2000), 99 (1999), 98 (1998), 97 (1997).

Año

Gastos

 

01

35’230.000

(2001)

00

27’240.000

(2000)

99

23’430.000

(1999)

98

21’120.000

(1998)

97

18’450.000

(1997)

De la simple observación de los datos de la tabla, se esperarían pagos superiores a los 42’000.000 de sucres para el año 2002, lo que también se puede observar en el siguiente gráfico.

Sin embargo, la lista clasificada en forma descendente por fechas, basada en los 2 últimos dígitos de los años mostrará los datos correspondientes a los años 99, 98, 97, 01 y 00, en lugar de lo originalmente deseado.

Año

Gastos

 

99

23’430.000

(1999)

98

21’120.000

(1998)

97

18’450.000

(1997)

01

35’230.000

(2001)

00

27’240.000

(2000)

La representación gráfica de la tabla anterior sería:

Interpretando la curva de tendencia aparente, para el año 02 (2002) se esperarían pagos menores a 35’000.000 de sucres, lo que constituiría un grave error. El significado de los datos presentados será totalmente alterado. No será posible hacer un análisis de tendencias, o presentar información estadística con estos datos.

 

Supongamos que un cliente de un banco deposita el 1 de Enero de 1999 la cantidad de S/.100’000.000 de sucres; el depósito se realiza con un interés del 40% anual, por lo que 1 año más tarde (el 1 de Enero del 2000) el cliente espera retirar S/.140’000.000 de sucres. Sin embargo, debido a que el depósito se realizó el año 99, y el retiro se lo quiere realizar en el año 00, para la computadora no preparada para reconocer el Año 2000 han transcurrido -99 años (00 - 99 = -99) por lo que el cliente encontrará que en su cuenta no existe ni siquiera 1 centavo pues el tiempo ha recorrido hacia atrás.

Año

Monto

Operación

99

100000000.00

100000000.00/1.40=71428571.43

98

71428571.43

71428571.43/1.40=51020408.16

97

51020408.16

:

93

13281030.86

:

86

1259898.43

:

52

13.55

:

45

1.29

:

38

0.12

:

31

0.01

:

00

0.00

:

Para los aficionados a las matemáticas, el computador aplicaría la fórmula del Interes Compuesto

M = C (1 + i)n

Donde:

C = 100000000

i = 0.40 (40% anual)

n = -99 años

M = (100000000) (1 + 0.40)-99

M = 0.0000003414

 

Imaginemos que un individuo que empezó a trabajar en el año de 1965 decide jubilarse en el Año 2000, luego de cumplir 35 años de trabajo y 65 años de edad, para lo que se acerca al IESS a realizar sus trámites, encontrándose con la novedad de que para la computadora, que maneja dos cifras para los años, todavía no ha nacido, y por no cumplir con la edad reglamentaria, no puede jubilarse.

 

Problemas igualmente serios podrían presentarse en el cálculo del tiempo de servicio de los trabajadores para la determinación de bonificaciones; en el cálculo de la posición de los aviones que se encuentran en vuelo en el momento mismo del cambio del año 1999 al 2000 con la consiguiente alarma en todas las torres de control del mundo; en el pago de cuotas correspondientes a préstamos realizados, etc.

 

Imaginemos que usted realiza una llamada telefónica a las 23:59 horas del 31 de diciembre de 1999 para felicitar a un ser querido por la llegada del año nuevo, y la termina a las 00:01 del primero de enero (2 minutos de llamada). En su recibo telefónico le podrían facturar nada menos que una llamada de 100 años menos dos minutos (desde las 00h01 horas del 1 de enero del año 00 hasta las 23h59 del 31 de diciembre del año 99); claro, esto si la compañía telefónica no actualizó sus sistemas computacionales.

 

Los hospitales son otro campo donde puede impactar fuertemente la llegada del Año 2000 si no se toman medidas a tiempo, lo que se puede reflejar en que un bebé al nacer tenga 100 años, o que las bases de datos con los expedientes de los pacientes se borren pues la información aparentemente es muy antigua, y los monitores para ecografías y rayos X se apaguen, o que ciertos servicios médicos controlados por computadoras como diálisis dejen de realizarse por problemas informáticos.

 

El Registro Civil y los Tribunales Electorales pueden tener problemas en el cálculo de las edades de los individuos, lo que podría provocar errores en la identificación de los derechos de los ciudadanos (el derecho a votar, el derecho a ser elegido para dignidades políticas, etc.).

 

En lo que se refiere a las empresas de producción y manufactura, el peor escenario se refleja en los sistemas de seguridad al dejar a los empleados afuera (o adentro); al no funcionar los sistemas de acceso y relojes checadores. Las líneas de ensamble de producción y los sistemas de encendido automático también se verían afectados, al entrar en funcionamiento en ciertos días no hábiles y al no funcionar en ciertos días hábiles.

 

La magnitud de los problemas puede ser tan grande para la aviación que la compañía inglesa British Airways, anunció que prefiere perder millones de dólares como consecuencia de no operar el primer día del Año 2000 ante el temor de arriesgar vidas humanas con los sistemas de navegación, de control aéreo, y de aterrizaje, que podrían utilizar dos dígitos para almacenar el año.

 

Y es que la solución del problema, aunque parezca fácil de implantar, tiene múltiples implicaciones.

 

Tal vez los bancos estén apurados e invirtiendo millones de dólares para que las tarjetas de crédito no tengan ningún problema al ser utilizadas el 1 de enero del 2000, pero falta que las cajas de tiendas, supermercados, restaurantes, y almacenes, entre otros, también sean arregladas.

 

Otros adelantos tecnológicos en riesgo son los edificios inteligentes, los sistemas de control de acceso a corporativos, fábricas, y cárceles, las bóvedas de seguridad, y algunas agendas electrónicas, entre otras cosas.

 

En cuanto a los usuarios individuales, se estima que unos 80 millones de computadoras personales en todo el mundo celebrarán la llegada del nuevo siglo con el colapso del sistema operativo y de las aplicaciones instaladas. Las proyecciones más pesimistas apuntan que más de 80 por ciento de los PCs existentes ya no serán confiables a partir del tercer milenio.

 

Otro tipo de problema puede ser generado por los propios especialistas en informática que no se toman el tiempo suficiente para analizar las consecuencias de la llegada del Año 2000, y por apresuramiento proponen soluciones incompletas.

 

Imaginemos una empresa de mantenimiento de computadoras que implementa en 1992 un sistema que le permite conocer, con 15 días de anticipación, los clientes que deben recibir mantenimiento preventivo de sus equipos. Es política de la empresa realizar este tipo de mantenimiento 1 vez cada 3 meses, y en función de esta política se han suscrito contratos con los clientes (aproximadamente la tercera parte de los clientes debe recibir mantenimiento preventivo cada mes).

Con el objeto de sobrellevar el problema del Año 2000, la empresa de mantenimiento cambia el sistema operativo de sus computadoras, por uno que reconoce el cambio de milenio; actualiza su red con equipos modernos, y modifica sus programas para reconocer 4 dígitos para los años. El nuevo sistema lo pone en funcionamiento el 1 de Agosto de 1998.

Al realizar los informes de resultados del mes de Agosto de 1998 (al final del mes), la empresa cae en cuenta de que el número de equipos sometidos a mantenimiento ha disminuido considerablemente. Analizada la situación se detecta que por el error de no haber modificado los datos de fechas de las bases de datos históricas, para que contengan, no solamente información de 4 dígitos para los años, sino que estos datos históricos sean de la forma 19XX (por ejemplo 1995) y no de la forma 00XX (por ejemplo 95), se dejó de dar servicio a la tercera parte de sus clientes, que aparentemente tenían vigentes contratos para el año 98 y no para el año 1998, habiéndose perdido muchos de esos contratos por ineficiencia de la empresa. Como agravante al problema anterior, la empresa se ha vuelto responsable de los costos de mantenimiento correctivo de los equipos en los que no se realizó mantenimiento preventivo.

 

¡¡IMPLEMENTAR SOLUCIONES PARCIALES AL PROBLEMA DEL AÑO 2000 CREA UNA FALSA SENSACIÓN DE SEGURIDAD QUE PUEDE CONDUCIR A QUE LA MAGNITUD DE LOS ERRORES INFORMÁTICOS SEA SUPERIOR A NO HABER IMPLEMENTADO NINGUNA SOLUCIÓN!!.

Particularmente en los sistemas más complejos, o en los sistemas que han sido desarrollados por muchas personas, es muy difícil determinar si la Solución Año 2000 propuesta (o implementada) es Total o Parcial.

Es evidente que el caos generado por este tipo de situaciones puede ser capaz de provocar la paralización de un país e inclusive de todo el planeta.

Las investigaciones de benchmarking han determinado inclusive que las mejores Herramientas de Transformación de Software para cumplir requisitos de Año 2000, que existen en el mercado, alcanzan un 99% de eficiencia (corrigen el 99% de los problemas de Año 2000, pero dejan sin solucionar el 1%), mientras que el promedio de las herramientas disponibles nos asegura la solución del 95% de los problemas (no solucionan el 5% de los problemas de Año 2000). Sin experiencia previa es muy difícil calificar el nivel de confiabilidad de cualquier herramienta que utilicemos, pues por asuntos publicitarios todas se autocalifican como infalibles.

Los expertos afirman que, en las grandes empresas e instituciones que hayan implementado Soluciones al Problema Año 2000, al menos durante las 2 primeras semanas del Año 2000, algunas de las tareas que hoy se realizan automáticamente deberán ser ejecutadas tanto automática como manualmente hasta resolver puntualmente los problemas más importantes que pudieron haberse pasado por alto. Se espera que las transacciones más frecuentes sean habilitadas rápidamente, pero también se espera que las transacciones o condiciones poco frecuentes requieran algunos días hasta que puedan ser ejecutadas automáticamente y sin contratiempos.

 

 

3. DEFINICIÓN DE ESTRATEGIAS BASADAS EN PRINCIPIOS INFORMÁTICOS SIMPLES Y EN EL SENTIDO COMÚN - basado en un artículo del Internet de la empresa ITCMEX (http://www.year2000.com)

Algunas de las acciones que deben tomarse pueden basarse en principios informáticos elementales y en el sentido común, aunque generalmente no son suficientes:

 

 

4. DEFINICIÓN DE ESTRATEGIAS MÁS ELABORADAS - basado en un artículo del Internet de la empresa ITCMEX (http://www.year2000.com)

Desgraciadamente, el problema causado por la crisis del Año 2000 abarca muchos más aspectos, no necesariamente técnicos.

¡¡ACTUAR BASÁNDOSE EN EL CONOCIMIENTO INCOMPLETO DE LAS CONSECUENCIAS DE LA CRISIS DEL AÑO 2000 PUEDE TRAER PEORES CONSECUENCIAS QUE NO TOMAR NINGUNA ACCIÓN!!.

Los resultados de estas Mini Crisis también serán devastadores, pero el número de instituciones, empresas y sistemas con problemas se espera que sea menor. Estas pequeñas crisis pueden ser catalogadas como temblores que preceden y suceden al gran terremoto del 1 de Enero del 2000. Los detalles de estas crisis se discuten posteriormente en este documento.

 

 

5. ASPECTOS PRESUPUESTARIOS - basado en un artículo del Internet de la empresa ITCMEX (http://year2000.com)

La manera más efectiva de evitar esta crisis consiste en cambiar el 100% del software por versiones listas para operar con fechas del Año 2000, actualizar el hardware, y simultáneamente modificar las bases de datos en aquellos campos en que se registraron los años con 2 dígitos. Dos problemas muy serios aparecen al tratar de implementar esta estrategia: el tiempo requerido y el costo.

¿Está la empresa en capacidad de actualizar el 100% de su software en menos de 18 meses? ¿Tiene idea del costo implícito? ¿Está en capacidad de sufragar los gastos correspondientes a una renovación tecnológica del hardware? ¿Conoce los efectos fiscales de una inversión de este tipo?

La respuesta a estas y a otras preguntas similares permite evaluar más detalladamente la dimensión del problema y el impacto que puede tener en una organización. Tomemos en cuenta, además, que para el segundo semestre de 1998 las empresas de asesoría para la solución de este problema estarán saturadas. En este contexto cabe señalar que el costo de corrección de una línea de código en COBOL, fue estimado por Gartner Group entre US$1.10 y US$1.50 dólares. Estos costos seguirán subiendo conforme nos acerquemos más al Año 2000.

La misma firma estima que el costo mundial de corregir el problema del Año 2000 puede ascender a 300 millardos (trescientos mil millones) o hasta 600 millardos de dólares: una bicoca. El alto costo es consecuencia de que el trabajo de corrección del software es intensivo en lo relativo a absorción del tiempo de un profesional especializado. Además, el software no muestra por sí solo dónde están los campos de seis dígitos de fecha para poder corregirlos automáticamente: por lo general, esta labor supone el examen de millones de líneas de código fuente.

Para complicar aún más el problema, un número importante de grandes empresas informáticas internacionales están abandonando la alternativa de resolver detalladamente el problema de Año 2000 de sus clientes, a causa de posibles implicaciones legales. Estas empresas informáticas han optando por la seguridad del asesoramiento externo, dejando la responsabilidad legal y técnica a sus propios clientes.

Para tener una idea de lo que representan las soluciones externas, la Empresa IBM presupuestó, a inicios de 1998, más de US$6’000.000 de dólares al I. Municipio de Quito para resolver su problema del Año 2000, pues el I. Municipio de Quito tiene más de 6’000.000 de líneas de código. Los elevados costos obligaron al Municipio a buscar la solución con su propio personal informático. El hecho de disponer de la totalidad del código fuente de los programas permitió optar por esta alternativa.

El IESS tomó una decisión similar a la del I. Municipio de Quito, conociéndose extraoficialmente que ya realizó una revisión total de sus programas, habiendo detectado entre 1200 y 1400 instrucciones con problema de Año 2000.

 

 

6. ¿CÓMO ENFRENTAR LA CRISIS DEL AÑO 2000?

El primer punto que debe ser tomado en consideración es el hecho de que TODAS LAS EMPRESAS E INSTITUCIONES DEBEN SER ALERTADAS ACERCA DE LAS CONSECUENCIAS DE LA CRISIS DEL AÑO 2000. La mayor parte de las instituciones financieras públicas y privadas del país, lideradas por la Superintendencia de Bancos, ya están llevando adelante proyectos tendientes a solucionar el problema, pues serían las más afectadas.

Las empresas e instituciones deben implementar un Proyecto Año 2000, el que debe contar con el apoyo de los altos niveles gerenciales.

EL PERSONAL DEL ÁREA DE SISTEMAS DE LAS EMPRESAS E INSTITUCIONES ES EL MÁS APTO PARA LLEVAR ADELANTE UN PROYECTO AÑO 2000 por su amplio conocimiento de los sistemas que se utilizan, pero se requiere de una preparación apropiada. Los Directores del Área de Sistemas deben encabezar los grupos de trabajo del Proyecto Año 2000 que debe implementarse en las empresas e instituciones.

Aquellos especialistas informáticos (que tengan o no tengan título) a los que siempre recurrimos en las organizaciones cuando nuestras PCs o nuestros terminales no funcionan apropiadamente, o a los que acudimos cuando tenemos problemas de configuración de los equipos, o los que solucionan los problemas de nuestras bases de datos y nuestros programas, son las personas que deben recibir entrenamiento especializado dentro del Proyecto Año 2000 para convertirse en la mano de obra calificada que resolverá los problemas de las organizaciones.

 

 

7. ¿CUALES ALTERNATIVAS TECNOLÓGICAS PUEDEN RESOLVER EL PROBLEMA? - basado en artículos del Internet de Hector Acevedo y Capers Jones (http://www.year2000.com)

Existen varias alternativas tecnológicas para resolver el problema:

 

  1. AUMENTAR EL ANCHO DE LOS CAMPOS DE FECHA DE 2 A 4 DÍGITOS EN TODO PROGRAMA

Este es el mejor método, pues resuelve el problema a largo plazo (por lo menos hasta que lleguemos al año 10,000), pero consume mucho tiempo y dinero. Complementariamente se deben corregir las bases de datos históricas, para que los sistemas puedan seguir utilizando los datos generados con anterioridad. Ninguna solución es completa sin la actualización del hardware y del sistema operativo.

 

  1. PIVOTEO O WINDOWING

Es una técnica que permite mantener el uso de dos dígitos para la fecha y lo que se hace es establecer una "fecha pivote" que permita diferenciar de qué siglo se habla: si se establece la fecha pivote como 60, cualquier fecha que termine en 60 o más será asumida como del siglo 20, y cualquier fecha menor a 60 será asumida como perteneciente al siglo 21 (1960, 1961, 1962, ....., 1998, 1999, 2000,2001, 2002, ....., 2058, 2059).

El detalle es que este método tiene problemas adicionales, pues no hay un estándar aceptado para la fecha pivote y el problema se resuelve sólo por un número dado de años. Además, este segundo método solamente difiere el problema a otro año (2020, 2040, etc.), por lo que la solución es catalogada como provisional.

Cabe mencionar que la conversión al Año 2000 puede tener tal nivel de complejidad e implicaciones que Microsoft escogió algunas variantes de este camino provisional para resolver el problema en parte de su software tradicional (Windows 95, Word, Excel, PowerPoint, Project, etc.).

La denominación de Windowing proviene del hecho de que el sistema operativo Windows 95 utiliza una ligera variante de la técnica de pivoteo. Intente usted asignar al reloj de Windows 95 (o a Windows 98), una fecha anterior al 1 de Enero de 1980, o posterior al 31 de Diciembre del 2099 y se encontrará con la sorpresa de que es imposible. Windows 95 no tiene problema de Año 2000, pero tiene problemas de Año 1979 y de Año 2100.

 

  1. COMPRESIÓN

Consiste en codificar dentro del espacio de 2 dígitos cualquier fecha concebible de 4 dígitos.

Si se utiliza representación hexadecimal (un total de 16 símbolos y 4 bits para cada símbolo) en lugar del tradicional código ASCII de 256 símbolos y 8 bits para cada símbolo, los dos dígitos ASCII disponibles son suficientes para manejar cualquier año de 4 cifras hexadecimales. Sin embargo, se requiere de un conocimiento previo de las técnicas de compresión y descompresión, y será necesario desarrollar programas de computación que hagan las conversiones respectivas en las instancias apropiadas.

El año 04 (los 2 últimos dígitos del año 1904 y del año 2004) en código ASCII, tiene como equivalente hexadecimal el número 2D31, y ocupa 2 bytes; lamentablemente no es posible diferenciar entre los dos años.

La representación hexadecimal pura del mismo año 1904 es 077A y la del año 2004 es 07DE, y también ocupan 2 bytes, pero pueden diferenciarse claramente entre sí.

 

  1. DESPLAZAMIENTO DEL TIEMPO

Este método utiliza una herramienta exterior (un programa) que desplaza todas las fechas 28 años hacia abajo de modo que el Año 2000 se representa como 1972. La lógica para utilizar 28 años es que un desplazamiento de 28 años sincroniza los días de la semana durante 28 años más (hasta el 2027). Se deberán generar módulos de corrección que permitan realizar automáticamente la suma y resta de 28 años. La penalización por utilizar esta metodología se presenta en el rendimiento de los sistemas.

 

  1. PUENTEO

Este es un método híbrido utilizado en aplicaciones de bases de datos, en las que el software es transformado de 2 a 4 dígitos, pero la base de datos no es transformada debido a las dificultades excesivas causadas por la expansión de los campos (por ejemplo las bases de datos de las versiones antiguas de COBOL). Para la base de datos se emplea pivoteo o desplazamiento del tiempo.

 

  1. DOBLE ESTRUCTURA DE LAS BASES DE DATOS

Es un método especializado que no cambia las bases de datos históricas. Consiste en manejar simultáneamente dos versiones de la base de datos: una versión contiene los datos originales con 2 dígitos, y la segunda versión es un clon que contiene la misma información, pero los campos han sido expandidos a 4 dígitos. A través de modificaciones en el código, y dependiendo de la fecha de referencia (fecha de almacenamiento o generación de la información), los programas operan con la base de datos histórica o con la base de datos modificada.

En algún instante en el futuro (tal vez el año 2010), la información histórica del siglo XX será intrascendente y se reajustarán los programas para utilizar únicamente las bases de datos modificadas con 4 dígitos para representar los años.

 

  1. INTERCEPCIÓN DE FECHAS EN CÓDIGO OBJETO

Se han desarrollado métodos experimentales de intercepción de fechas en código objeto, que están ingresando en el mercado. Al momento existen herramientas para mainframes IBM, pero por el momento no hay herramientas para otras plataformas. Este método funciona para fechas explícitas, pero no puede corregir fechas escondidas, por lo que existe un riesgo muy alto en su aplicación.

Continuarcontinuar