Proyecto :P9907

Descripción :IMPACTO DEL AÑO 2000 EN LOS ORDENADORES Y DISPOSITIVOS PROGRAMADOS DE CONTROL

Doc :P9907/002INF

Actividad :Informe preliminar

Para :Distribución pública

Autor :Luis-Felipe Mazo Sanféliz

Fecha :junio 1999


8 1999 Luis -Felipe Mazo Sanféliz

Heos, I.G.T.I.,S.L.

Dr Cadevall 16, bajos 1 08043 Barcelona

e-mail: heos@abaforum.es

Prohibida la reproducción total o parcial de este documento, sin permiso escrito del autor.











EL PROBLEMA DEL AÑO 2000 EN LOS ORDENADORES



Historia



Las primeras voces que se escucharon sobre el problema de la fecha, datan de finales de los años 70 y principio de los 80, alrededor de las discusiones que se establecieron entre profesionales e industria informática, ante la necesidad de revisión del lenguaje COBOL según el estándar de la ANSI, que dio lugar a la versión del COBOL-85.



Sin embargo sus previsiones, en unos momentos en que la comunidad informática dominada por la industria americana, estaba más preocupada por acceder a las cuantiosas subvenciones que, dentro del marco de la Iniciativa Estratégica promovida por el presidente Reagan, en su confrontación con la Unión Soviética, para desarrollar sistemas de misiles basados en inteligencia artificial, se estaban repartiendo a universidades y centros de investigación, parecían fuera de lugar, ya que la inteligencia artificial dejaría totalmente obsoletos a todos los sistemas conocidos hasta entonces y en consecuencia en los 15 años que faltaban para el año 2000, todos esos sistemas habrían sido sustituidos por otros nuevos, con lo cual no existía ningún motivo para considerar este problema.



El tiempo no ha dado totalmente la razón a estos visionarios futuristas, ya que si bien en el hardware, es decir en las máquinas si se ha producido un gran cambio no sólo en prestaciones y rendimientos si no también en el precio, no ha sucedido igual con el software, o el desarrollo lógico que se conoce popularmente como los programas.



A pesar de la aparición de nuevos lenguajes de programación, como los lenguajes de 4 generación los orientados a objetos, o la utilización en campos muy concretos de las técnicas de inteligencia artificial, tales como el reconocimiento de objetos, reconocimiento de voz, minería de datos, ....todavía hoy día existen en explotación millones de líneas escritas en lenguajes "antiguos", principalmente en COBOL, FORTRAN, PL/1, RPG y ensambladores. Y pese a lo que algunos creen lo más probable es que estos programas tengan una larga vida.



La voz de alarma del problema del 2000 surgió de la propia industria del software, hacia mediados de los años 90. Posteriormente se subieron al carro del problema políticos como el Vicepresidente de los Estados Unidos Al Gore y a principios del presente año el premier británico Tony Blair, e instituciones de todo tipo, lanzando un mensaje, que recogido por los medios de difusión buscando el impacto de la noticia se ha dado de forma apocalíptica, y que conforme ha pasado el tiempo ha ido aumentando el tono truculento de los mensajes para conseguir algún tipo de impacto, ha configurado el actual panorama ante el problema.

Es cierto que la industria informática esperaba explotar este filón, en unos momentos de atonía del mercado, por la obsolescencia funcional de equipos y programas, a plazo fijo. Lanzó su mensaje esperando que los usuarios se asustaran y el mercado reaccionaría favorablemente, sin embargo esta acogida ha sido bastante más lenta y menos entusiasta de lo que esperaban. Al día de hoy se calcula que en España, entre el 40 y el 50% de las instalaciones informáticas no han tomado ninguna medida al respecto.



Del milenarismo tecnológico al escepticismo expectante. Actitudes ante el año 2000



Hay tres tipos de actitudes ante lo que se ha venido en llamar "problema del año 2000", o "Y2K", que afecta a los ordenadores y algunos dispositivos de control electrónico.



La primera, que corresponde a una actitud que denominaré de "milenarismo tecnológico", postura similar a la que atribuyen que ocurrió ante la llegada del año mil en la cristiandad, en la que se profetizó toda clase de males, la llegada del Anticristo y en consecuencia el fin del mundo. Esta descripción de la situación social y religiosa de la sociedad de finales del siglo IX, es recogida en forma de leyendas en los siglos XIV y XV es decir cuatrocientos años después, y que su realidad histórica es bastante dudosa. Los que sostienen esta teoría ampliamente recogido por los medios de comunicación, predicen toda clase de males a la sociedad provocada por el bloqueo de los ordenadores, incapaces de interpretar la fecha del 1 de enero del 2000, al igual que todos los dispositivos de control de los cientos de miles de aparatos que utilizamos diariamente, que provocaran su parada y en consecuencia toda clase de accidentes y percances que encadenados provocarán la destrucción y el caos. Este milenarismo, que al borde del siglo XXI no puede provenir mas que de causas tecnológicas, comprende un catálogo de desgracias que va desde la caída de aviones hasta la parada de los marcapasos, ascensores bloqueados, choques de trenes, urgencias hospitalarias incapaces de atender a los pacientes, ..... El anuncio de una compañía aérea de que suspenderá todos los vuelos desde la noche de 31 de diciembre de 1999 al 2 de enero del 2000, o de que las bolsas no operarán alguno de los días finales del 99 y primeros del 2000, o el informe de la CIA sobre los problemas que tendrán los países que no han tomado ningún tipo de medida, no han hecho mas que corroborar esta postura.



La segunda que corresponde a una actitud de escepticismo expectante que va desde los fatalistas, que también los hay, del "que haga lo que haga si ha de pasar algo pasará y entonces para que vamos a hacer nada", hasta los que practican el esperar y ver, pasando por los que todavía no han entendido el problema. Para muchos directivos, gestores o responsables de empresas y organismos de todo tipo que han realizado inversiones en sistemas informáticos tanto máquinas como programas, autómatas, robots, máquinas herramientas programables o cualquier dispositivo utilizado para control de procesos industriales o administrativos que llevan un chip incorporado, en los últimos dos o tres años les cuesta aceptar que tienen que cambiar sus sistemas porque van a dejar de funcionar a las 0 horas del 1 de enero de año 2000, sin que sus proveedores, hayan sido capaces de anticiparse a este problema. O han aceptado sin mas las explicaciones que sus sistemas están preparados para enfrentarse al problema del cambio de siglo. Otro argumento que se ha utilizado es que los ordenadores suelen fallar, casi siempre en momentos críticos, y normalmente se soluciona y no pasa nada.



Una tercera postura, que es la que propugnamos, es la de la responsabilidad. Para enfrentarse a él hay que considerar



1.- Aunque el problema ha sido mal planteado, lo cual hace mas difícil en estos momentos tomar conciencia de la magnitud real del mismo, el problema existe. .



2.- Los ordenadores y los programas suelen tener fallos, mas habitualmente de lo que quisiéramos, que se corrigen cuando aparecen. La diferencia es que este es un fallo anunciado a plazo fijo que se puede prevenir o al menos establecer mecanismos por si esto sucede.



3.- El problema no sólo va a afectar a primeros del año sino que aparecerá a lo largo del mismo, con una punta a principios de año, otra el 29 de febrero, ya que el año 2000 es bisiesto, supuesto que no se ha considerado hasta hace relativamente poco, y el resto de los problemas pueden aparecer en función de los ciclos de explotación de la información.



4.- Se ha presentado el problema como un problema único, cuando en realidad existe toda una casuística que puede hacer que el impacto sea menor de lo anunciado.

5.- Dada la complejidad del entramado empresarial y social, toda organización del tipo que sea, que utilice ordenadores, está obligada al menos a conocer la magnitud del problema que le afecta y a tomar medidas para solucionarlo. Valorando el coste de éstas en comparación con las posibles pérdidas que le puede ocasionar el fallo.



IMPACTO DEL PROBLEMA



Al margen de las catástrofes anunciadas, existen tres problemas con posibilidades reales de suceder, a los que hay que poner atención:



1.- Desabastecimiento de los mercados e inflación.



Hoy día casi ninguna empresa es autosuficiente. De la cadena de trasformación de las materias primas a la obtención de productos finales disponibles en el mercado, las empresas se especializan en una parte de estas transformaciones teniendo una dependencia total de sus proveedores de materias primas y de productos semi elaborados, de los servicios de externos de todo tipo, de los asesores, de los sistemas logísticos de trasporte, de los suministros básicos de energía, comunicaciones, agua, y a su vez unos compromisos con sus clientes. Cualquier fallo en un eslabón de la cadena puede repercutir en toda ella con la consecuencia final de desabastecimiento del mercado. La amenaza real mas grande que representa el efecto 2000. Si ante esta situación y por temor, prudencia o por seguir los consejos catastrofistas de ciertas instituciones los consumidores se lanzan a hacer acopio de productos básicos en una época ya de por si altamente consumista como es la de la Navidad, con el añadido de que en estas situaciones siempre aparecen los que se intentan beneficiar explotando estos temores, tenemos una primera repercusión: inflación. Cual va a ser esta inflación es algo que habría que analizar.



Si por otra parte siguiendo los consejos de la CIA a sus agentes, de que se provean de dinero en efectivo y no confíen de los sistemas bancarios o de los cajeros automáticos el público se lanza a final de año a conseguir este dinero, puede hacer que la demanda cree problemas en todo el sistema bancario.



2.- Pérdidas para las empresas



Los fallos de los sistemas informáticos o automáticos instalados en las empresas, según sea su importancia pueden tener repercusiones importantes o menos importantes según el tipo de información a la que afecten. Retrasos en el abastecimiento, la mayoría de las empresas tienden a tener estocs muy limitados, la producción, o en el servicio a los clientes pueden tener consecuencias imprevisibles, en función del tiempo de respuesta que tenga la organización para solucionar el problema y del tiempo de espera que pueda soportar sin verse afectada por el fallo. Según sea el tiempo de respuesta mayor o menor que el tiempo de espera que pueden generar desde pérdidas limitadas y asumibles, tales como pérdidas de clientes, devoluciones por no vendidos, a poner en cuestión la propia viabilidad de la empresa.



3.- Reclamaciones por daños o perjuicios a terceros.



El fallo de los sistemas informáticos que afecten a una información vital de la empresa y que genere retrasos o incumplimientos o bien produzca fallos en los sistemas utilizados por los usuarios finales puede generar reclamaciones de compensación económica como pueden ser las penalizaciones pactadas por el incumplimiento de plazos de entrega, o bien por los daños producidos a usuarios afectados.



LAS CAUSAS DEL PROBLEMA



Se ha presentado el problema del año 2000 como un problema único, que afecta de forma general a todos los ordenadores y a todos los dispositivos que disponen de procesadores para su control, cuando esto no es así, porque las consecuencias no son las mismas según el tipo de fallo:



1.- El fallo se produce bloqueándose y parándose.



2.- El fallo se produce por lo que en argot técnico se conoce como "buclarse" es decir sigue funcionando sin control.



3.- El fallo se produce por que la fecha aparece representada como 00 y la interpretación que se le puede dar a éste guarismo.



Existe toda una casuística que puede crear distintos tipos de problemas y con una gravedad particular para cada caso.



La representación binaria de los números en los dispositivos electrónicos.



Los números y los caracteres alfabéticos se almacenan en la práctica totalidad de los ordenadores y en la mayoría de los dispositivos electrónicos mediante el sistema numérico de base binaria, es decir utilizan exclusivamente ceros y unos. Existen distintos códigos de representación, ASCII, EBCDIIC, ...



Para representar un carácter alfanumérico se emplean ocho caracteres, combinación de ceros y unos, es lo que se conoce como octeto o byte. Cada uno de estos ceros y unos ocupa un espacio denominado bit. Sin embargo dada la escasa capacidad de almacenamiento de los ordenadores primitivos y lo extraordinariamente caras que resultaban los dispositivos de almacenamiento para representar un número entero en vez de un byte sólo se emplea la mitad es decir la combinación de cuatro ceros y unos denominada semibyte, a esta representación se la denomina formato empaquetado, para diferenciarla del formato desempaquetado o extendido de los caracteres alfanuméricos.



Así para representar un número entero se puede emplear tres tipos de formatos:



1.- En formato desempaquetado que utiliza un byte. El número almacenado tomará los valores de 0 a 9.



2.- En formato empaquetado que en un byte permite almacenar utilizando la notación decimal binaria números enteros del -99 al + 99.

3.-En formato empaquetado que en un byte permite representar si se utiliza la notación binaria pura números enteros comprendidos entre -127 y +127, que es el número decimal equivalente al número binario 1111111 ya que el octavo bit se utiliza para representar si el número es positivo o negativo.



Si tenemos en cuenta que los dispositivos electrónicos almacenan los números en formato binario puro, y que las restricciones impuestas por el formato decimal binario se debe en la mayoría de los casos a los sistemas operativos o a los programas, el sistema de almacenamiento podrá funcionar hasta el "año 2127".

El problema aparecerá cuando se intente interpretar o representar el guarismo 00, es decir que elemento del entorno de explotación del sistema puede ser incapaz de interpretarlo o representarlo correctamente, que importancia tiene este elemento en el sistema de explotación de la información y que importancia tiene el uso de esta información en la organización. El análisis de los distintos elementos y la importancia de la información que manejan es lo que nos permitirá valorar el impacto del año 2000 en una determinada organización.





La naturaleza de la fecha y almacenamiento



La complejidad de la manipulación de la fecha viene por que, para medir el tiempo, utilizamos una serie de unidades heterogéneas, finitas, cíclicas e irregulares, excepto las unidades siglo y año. Siglos, que se componen de cien años, el año que se divide en doce meses, y en 53 semanas, el mes en 28,29, 30 o 31 días, el día en 24 horas, la hora en 60 minutos, y el minuto en sesenta segundos, además de las unidades fraccionarias del segundo, décimas, centésimas, milésimas, millonésimas, ... de segundo. A su vez el año puede tener 365 o 366 días.



Para almacenar la fecha se utilizan:

- 3 bytes si sólo se guardan los días el mes y el año utilizando únicamente dos caracteres para su representación,

- 4 bytes si se guarda los días y el mes utilizando un byte para cada uno de ellos, y dos bytes para

el año,

- 5 bytes si además de los cuatro bytes del caso anterior se guarda la semana, que utiliza otro byte.



La representación de la fecha



La representación de la fecha no es única. Se han venido utilizando distintos formatos en función de la capacidad del dispositivo de almacenamiento y de las necesidades de cálculo.



Si representamos como A los dígitos que representan el año, M los dígitos que representan el mes del año, S los dígitos que representan la semana y D los dígitos que representan los días del mes y W el literal de semana nos podemos encontrar con diversa formas de representación:



1.- DD-MM-AA

2.- MM-DD-AA

3.- AA-DD-MM

4.- AA-MM-DD

5.- AA-DDD

6.- DD-MM-AAAA

7.- MM-DD-AAAA

8.- DDD-AAAA

9.- AAAA-SS-DDD

10.- AAAA-MM-SS-AA

11.- AAAA-DDD *

12.- AAAA-MM-DD *

13.- AAAA-WSS *



existe una última forma de almacenamiento que se ha utilizado bastante, sobre todo en sistemas donde se han tenido que realizar muchos cálculos con fechas y es un campo incremental en el que se acumulan los días a partir de una fecha dada, lo más usual ha sido el 1 de enero de 1900, aunque este número inicial a podido variar según las necesidades del cálculo, el más habitual ha sido la utilización de un campo de tres bytes que permite mantener los días desde el 1 hasta el 999.999. en notación decimal binaria 8.388.607 en notación binaria pura. El 1 de enero del 2000 en este formato, suponiendo que el inicio del cómputo sea el principio de siglo, correspondería al 36.525 (365 días año x 100 años transcurridos)+24 días correspondiente a los años bisiestos + 1 del primero de enero



14.- DDDDDD



De todas estos formatos el 11, el 12 y el 13 señalados con (*) corresponden a formatos estándar según la norma ISO

8601/1988 y erratum 1:1991



Los cinco primeros formatos son los que pueden estar afectados por el cambio al año 2000, al interpretarlo como 1900.

Los formatos 6 al 14 pueden verse afectado sólo si no contemplan que el año 2000 es bisiesto..



Importancia del dato fecha.



A pesar de todo lo expuesto el dato fecha en los distintos formularios que se obtienen del sistema, en cualquier soporte susceptible de ser manejado por el mismo, puede tener distinto peso o importancia según corresponda a:



1.- Datos meramente referenciales, por ejemplo la fecha de emisión de cualquier documento, listados, faxes, ......



2.- Datos que generen obligaciones organizativas, administrativas o contractuales (estáticos), por ejemplo la fecha de entrada en un registro, fecha de un carta o oferta, contrato, ...



3.- Datos que generen obligaciones organizativas, administrativas o contractuales que obliguen a realizar cálculos (dinámicos), por ejemplo fechas de facturas, vencimientos, cálculos de intereses, controles de entrada, salida y permanencia, inicio y fin de tareas.





Tipos de sistemas afectados



Sistemas programables. Son los sistemas en que los programas residen en discos, cintas, memorias etc. Fundamentalmente se trata de los ordenadores y cualquier dispositivo que disponen de memorias que permiten la reescritura. Los elementos que manipulan la fecha son:



- Sistema operativo.

- Entorno de programación, (lenguaje, editor, compilador, depurador, encadenador,....)

- Entorno de soporte de datos, (gestores de ficheros y bases de datos)

- Entornos de comunicaciones, (protocolos,.....)

- Herramientas de usuario final, (programas cerrados, con prestaciones definidas y no modificables)



La corrección de los posibles errores se realiza modificando, siempre que se cuente con los medios necesarios, el programas.



Sistemas encapsulados, embebidos, etc. Son los dispositivos en donde el programa de control del proceso está generalmente contenido en el mismo procesador, o CPU, o en memorias de sólo lectura, ROM. La corrección de los posibles errores obliga el cambio de todo el dispositivo.





ANÁLISIS DE LOS FALLOS



A partir de lo expuesto nos podemos encontrar con cinco tipos de fallos:



1.- Error de superación de la capacidad (overflow), los que utilizan el formato numérico empaquetado decimal binario, o formato alfanumérico :



Caso 1.- Alguno de los elementos de manipulación son incapaces de reconocerlo y bloquean el sistema, o el programa.



Caso 2.- Los elementos de manipulación no reconocen y dan errores de representación (formatos de edición)



2.- Imprecisión de la representación externa 00. los que utilizan el formato numérico empaquetado binario puro.



Caso 3.- Los elementos de manipulación lo tratan como si fuera 1900.



Caso 4.- Los elementos de manipulación no lo reconocen como año bisiesto.



3.- Que el formato de fecha sea tratado y almacenado con cuatro dígitos en cualquier formato (desempaquetado o alfanumérico, numérico o empaquetado decimal binario o binario puro) como 2000, o en formato incremental.



Caso 5.- No sea tratado como año bisiesto.





Consecuencias de los fallos.



La importancia de estos fallos no es la misma en todos los casos. Algunos pueden resultar meramente estéticos, mientras que otros pueden resultar fundamentales para el funcionamiento de la organización.

De los cinco casos descritos:



- El primero puede crear problemas importantes de bloqueo y no funcionamiento con parada del sistema. El sistema no funciona.



- El segundo puede crear problemas de representación, es decir no aparece la fecha o aparecen representados caracteres que no identifican la fecha, pueden tener poca importancia en el caso de fechas referenciales. Las consecuencias pueden ser mas graves en el caso de que se trate de fechas que generan obligaciones.



- El tercero puede crear problemas sólo si la fecha va unida al día de la semana, ya que los días del mes y el día de la semana no coinciden en 1900 y en el 2000.



- El cuarto y el quinto caso sólo afecta al día 29 de febrero, si no se considera el día de la semana

y a partir del 29 de febrero si se considera el día de la semana..





PLAN DE ACTUACIÓN



La definición del plan de actuación debe contemplar



1.- Conocer cuales son los sistemas de la organización.



Este conocimiento obliga a la realización de un inventario completo de dispositivos y programas.



2.- Evaluar la implicación de estos sistemas en la organización.



La evaluación debe realizarse para establecer criterios de clasificación de los sistemas en función de la importancia que tengan para la organización, en especial aquellos que sean críticos..



3.- Detectar los fallos en los sistemas.



La detección de fallos se puede realizar, mediante la inspección de todos los dispositivos y programas, por ejemplo mediante herramientas que ayudan a buscar campos fecha en los programas o bien por inspección visual.

Bien por el método de prueba, comprobando el funcionamiento a partir del año 2000.



4.- Evaluar los fallos en función de la importancia de los sistemas.



1.- La naturaleza del dato fecha, referencial, estático o dinámico.



2.- Analizando el tipo de error según los cinco casos descritos



3.- Qué consecuencia de las cuatro descritas tiene este error.



4.- Qué elemento genera el error.

5.- Implicaciones que tiene para la organización.



6.- Plazo de tiempo necesario para disponer de esa fecha.



7.- Tiempo máximo que la organización puede pasar sin disponer de esa fecha.



5.- Proponer y realizar medidas para corregir los sistemas afectados.



6.- Proponer medidas de contingencia (alternativas) para prevenir posibles fallos no detectados



Las medidas aplicadas pueden no resultar completas, es decir que a pesar de haber corregido los fallos, puedan darse fallos en datos no detectados. Establecer medidas alternativas para cumplir estos posibles fallos, sobre todo en los sistmas críticos puede ser necesario.



7.- Establecer medidas para protegerse de responsabilidades frente a terceros.



En este caso hay que enfrentarse a dos tipos de situaciones:



La primera es la que se deriva de daños o perjuicios, producidos por fallos reales de productos o servicios . En este caso se trata de disponer de elementos válidos para la defensa de la empresa o la organización y de las personas responsables, que en última instancia serán los que tengan que responder, por ejemplo las responsabilidades penales, quedando únicamente las civiles.



La segunda es la que se deriva de daños o perjuicios, producidos por fallos imaginarios, o por fallo de los usuarios, producto de la picaresca o de cualquier otra situación..



En Estados Unidos, y es de suponer que también pasará en Europa, se prevee un aumento de pleitos importantes achacados al mal funcionamiento de los ordenadores y otros dispositivos electrónicos programables