1 Estrella2 Estrellas3 Estrellas4 Estrellas5 Estrellas (¡Se el primero en puntuarlo!)
Cargando...

Recovery-Oriented Computing

Hace unos días pensaba sobre un problema que tiene un determinado software que manejo, y que supungo tienen muchos otros productos de software que andan por ahí en la vuelta.

El problema se da si el proceso que se está corriendo se tranca. Por ejemplo, al desaparecer misteriosamente un archivo de datos que necesita o porque un dato se ingresó mal en la base de datos. Allí el programa falla o deja de procesar ese registro, y para solucionarlo hay que utilizar una herramienta o algún paso manual para poner todo en orden.

Según yo lo veo, este tipo de problemas surge en una pobreza de diseño. Cuando se diseña software y cuando se realiza cualquier tarea de Análisis de Sistemas de Información, hay que pensar siempre en los peores casos posibles. Y por cierto, en todas las posibilidades intermedias entre el caso óptimo y el peor caso.

Buz Luhrmann cantaba: Accept certain inalienable truths, prices will rise, politicians will philander, you too will get old [Acepta ciertas verdades: los precios subirán, los políticos harán promesas, tu también te harás viejo].

Y en el caso del software, es lo mismo: los problemas existirán siempre. Por lo cual, mi propuesta es dotar al software de resiliencia. Y hacerlo desde el diseño. No solo diseñar para resistir: diseñar para recuperarse de los ataques y los errores.

Casualmente hoy en la mañana, encuentro en el blog de Angus Logan (Technical Product Manager for Windows Live Platform), un artículo que hablaba brevemente sobre Recovery-Oriented Computing. Eso significa que no estoy solo en el mundo. Hay gente que está trabajando en eso. Y es bastante interesante como desde un pequeño problema en un software que poca gente usa, se puede llegar a que existe un problema más genérico y un equipo en la Universidad de Berkeley está trabajando en ello.

Por lo visto, este proyecto de investigación trata de mucho más que el simple problema que yo planteo, pero si duda trata cosas que pasan todos los días, y que nosotros, como Programadores, Analistas e Ingenieros con orientación a los Sistemas de Información y Computación, debemos tener muy en cuenta. Siempre.
  • Aislamiento y redundancia.
  • Soporte para función Deshacer con alcance en el sistema completo.
  • Sistemas de Diagnósticos Integrados.
  • Mecanismos de recuperación y verificación en línea.
  • Diseño para alta modularidad, mensurabilidad y capacidad de reinicio.
Así que… a trabajar!

1 Estrella2 Estrellas3 Estrellas4 Estrellas5 Estrellas (¡Se el primero en puntuarlo!)
Cargando...

Leave a Reply