Close

El software es frágil

Existen tantas maneras en las que se puede perder, alterar o volverse inutilizable la información digital.

  • La intervención humana accidental o malintencionada puede llevar a la eliminación de información importante, y los procedimientos de respaldo faltantes, imperfectos o no probados pueden evitar su recuperación.
  • El cambio en los formatos lógicos o la pérdida del entorno de ejecución necesario pueden llevar a la incapacidad de acceder, leer, interpretar, validar o utilizar la información digital.
  • Los mecanismos de referencia faltantes o inadecuados pueden destruir nuestra capacidad de identificar la información que es relevante, incluso cuando ésta no esté perdida y todavía sea legible de otra manera.
  • El cifrado protege nuestra privacidad, pero también evita la recuperación de la información en caso de que se pierdan las claves.

Algunos ejemplos valen más que 1000 palabras

Código fuente faltante, a gran escala

Nunca sabremos cuan efectivo ha sido el gigantesco esfuerzo para arreglar el conocido Error del año 2000 (o Y2K) antes del 31 de diciembre de 1999: los grandes desastres que se anunciaron nunca se materializaron realmente, ¿pero es porque los casos importantes de errores se corrigieron a tiempo, o simplemente porque no había realmente errores importantes presentes en primer lugar?

No importa qué sucedió realmente, la carrera para arreglar el error Y2K reveló que, en el 40% de los casos, las partes afectadas (industrias, instituciones, etc.) habían perdido o extraviado el código fuente del software que necesitaba arreglo. ¡Enalgunos casos, nunca tuvieron el código fuente en su posesión!

Ataque malicioso de la infraestructura del software

En el verano de 2014, un atacante obtuvo acceso al panel de control de Code Spaces y exigió dinero a cambio de devolver el control a Code Spaces (vea el sitio web de Code Spaces en agosto de 2014).

Cuando Code Spaces no cumplió e intentó recuperar el controlde sus propios servicios, el atacante comenzó a eliminar recursos.

Code Spaces fue una empresa que ofrecía soluciones de alojamiento para el desarrollo de software y este ataque puso en peligroseriamente todo el software allí alojado.

Paralización de los servicios de desarrollo de software

En marzo de 2015, Google anunció la desaparición del ampliamente utilizado y muy apreciado servicio de código de Google, que se utilizó durante años desde su lanzamiento en 2006.

Si bien se ha anunciado un calendario de migración, a finalesde 2016 todo el código allí alojado desaparecerá, con unas pocas excepciones.

¿Qué de las importantes piezas de software cuyos encargados de mantenimiento se han desconectado? ¿Quién se ocupará de este conocimiento enriesgo de perderse?

Paralización de los servicios de desarrollo de software (de nuevo)

En mayo de 2015, Gitorious también anunció que se descontinuarían sus servicios gratuitos de alojamiento de desarrollo de software. Gracias al esfuerzo del Archive Team, se mantendrá una copia sólo delectura de los proyectos de software originalmente desarrollados en Gitorious. ¿Pero durante cuánto tiempo?

¿Y qué haremos cuando ocurra la siguiente fusión, adquisicióno cambio en la prioridad empresarial de algún actor importante de desarrollo desoftware?

Mecanismos de referencia inadecuados

Es bien sabido que los URL (Localizadores uniformes de recursos) no ofrecen persistencia.

no existe una garantía general de que un URL que en un momento apunta a un objeto dado continúe haciéndolo

T. Berners-Lee et al. RFC 1738

Y aún, ése es todavía hoy el mecanismo más comúnmente utilizado para hacer referencia a información que debe estar accesible en ellargo plazo, como artículos científicos, con consecuencias desastrosas cuandose trata de encontrar el software que es importante para un experimento oaplicación particular.

la vida mediade un URL referenciado es de aproximadamente 4 años desde su fecha depublicación

D. Spinellis. The Decay and Failures of URL References.
Communications of the ACM, 46(1):71-77, enero de 2003.

El proyecto de Software Heritage

Estamos desarrollando el mayor archivo de código fuente de software jamás concebido. Tratamos de asegurar que ya no perderemos software importante o su historial de desarrollo. Tratamos de maximizar nuestras probabilidades de no perder partes de nuestros bienes comunes de software.