En ingeniería de sistemas , la confiabilidad es una medida de la disponibilidad , fiabilidad , mantenibilidad y, en algunos casos, otras características de un sistema, como durabilidad , seguridad y protección . [1] En informática en tiempo real , la confiabilidad es la capacidad de proporcionar servicios en los que se pueda confiar dentro de un período de tiempo. [2] Las garantías del servicio deben mantenerse incluso cuando el sistema esté sujeto a ataques o fallos naturales.
La Comisión Electrotécnica Internacional (IEC), a través de su Comité Técnico TC 56, desarrolla y mantiene normas internacionales que proporcionan métodos y herramientas sistemáticos para la evaluación y gestión de la confiabilidad de equipos, servicios y sistemas a lo largo de sus ciclos de vida. El Grupo de Trabajo 10.4 [3] de la IFIP sobre "Computación confiable y tolerancia a fallas" desempeña un papel en la síntesis del progreso de la comunidad técnica en el campo y organiza dos talleres cada año para difundir los resultados.
La confiabilidad se puede dividir en tres elementos:
Algunas fuentes sostienen que la palabra se acuñó en la década de 1910 en la publicidad impresa de automóviles de Dodge Brothers, pero es anterior a ese período: el Oxford English Dictionary la encontró por primera vez en 1901.
A medida que el interés en la tolerancia a fallas y la confiabilidad del sistema aumentó en las décadas de 1960 y 1970, la confiabilidad pasó a ser una medida de [x] a medida que las medidas de confiabilidad comenzaron a abarcar medidas adicionales como seguridad e integridad. [4] A principios de la década de 1980, Jean-Claude Laprie eligió la confiabilidad como el término para abarcar los estudios de tolerancia a fallas y confiabilidad del sistema sin la extensión del significado inherente a la confiabilidad . [5]
El campo de la confiabilidad ha evolucionado desde estos inicios hasta convertirse en un campo de investigación internacionalmente activo, promovido por una serie de conferencias internacionales importantes, en particular la Conferencia Internacional sobre Sistemas y Redes Confiables , el Simposio Internacional sobre Sistemas Distribuidos Confiables y el Simposio Internacional sobre Ingeniería de Confiabilidad del Software .
Tradicionalmente, la confiabilidad de un sistema incorpora disponibilidad , fiabilidad y mantenibilidad , pero desde los años 1980, se han añadido seguridad y protección a las medidas de confiabilidad. [6]
Los atributos son cualidades de un sistema. Se pueden evaluar para determinar su confiabilidad general mediante medidas cualitativas o cuantitativas . Avizienis et al. definen los siguientes atributos de confiabilidad:
Como sugieren estas definiciones, solo la disponibilidad y la confiabilidad son cuantificables mediante mediciones directas, mientras que otras son más subjetivas. Por ejemplo, la seguridad no se puede medir directamente mediante métricas, sino que es una evaluación subjetiva que requiere que se aplique información basada en juicios para brindar un nivel de confianza, mientras que la confiabilidad se puede medir como fallas a lo largo del tiempo.
La confidencialidad , es decir, la ausencia de divulgación no autorizada de información, también se utiliza cuando se habla de seguridad. La seguridad es una combinación de confidencialidad , integridad y disponibilidad . La seguridad a veces se clasifica como un atributo [7], pero la visión actual es agregarla junto con la fiabilidad y tratar la fiabilidad como un término compuesto llamado fiabilidad y seguridad. [2]
En la práctica, la aplicación de medidas de seguridad a los dispositivos de un sistema generalmente mejora la confiabilidad al limitar el número de errores de origen externo.
Las amenazas son elementos que pueden afectar a un sistema y provocar una disminución de la confiabilidad. Hay tres términos principales que deben entenderse claramente:
Es importante tener en cuenta que las fallas se registran en el límite del sistema. Básicamente, son errores que se han propagado al límite del sistema y se han vuelto observables. Las fallas, los errores y las fallas operan de acuerdo con un mecanismo. Este mecanismo a veces se conoce como cadena de falla-error-falla. [8] Como regla general, una falla, cuando se activa, puede conducir a un error (que es un estado inválido) y el estado inválido generado por un error puede conducir a otro error o una falla (que es una desviación observable del comportamiento especificado en el límite del sistema). [9]
Una vez que se activa una falla, se crea un error. Un error puede actuar de la misma manera que una falla, ya que puede crear más condiciones de error; por lo tanto, un error puede propagarse varias veces dentro de los límites del sistema sin causar una falla observable. Si un error se propaga fuera de los límites del sistema, se dice que se produce una falla. Una falla es básicamente el punto en el que se puede decir que un servicio no cumple con su especificación. Dado que los datos de salida de un servicio pueden ingresarse en otro, una falla en un servicio puede propagarse a otro servicio como una falla, por lo que se puede formar una cadena de la forma: Falla que conduce a Error que conduce a Falla que conduce a Error, etc.
Una vez que se comprende el mecanismo de una cadena de fallas y errores, es posible construir medios para romper estas cadenas y, de ese modo, aumentar la confiabilidad de un sistema. Hasta ahora se han identificado cuatro medios:
La prevención de fallos se ocupa de evitar que se introduzcan fallos en un sistema. Esto se puede lograr mediante el uso de metodologías de desarrollo y buenas técnicas de implementación.
La eliminación de fallas se puede subdividir en dos subcategorías: eliminación durante el desarrollo y eliminación durante el uso.
La eliminación durante el desarrollo requiere verificación para que se puedan detectar y eliminar las fallas antes de que un sistema se ponga en producción. Una vez que los sistemas se han puesto en producción, se necesita un sistema para registrar las fallas y eliminarlas mediante un ciclo de mantenimiento.
La previsión de fallas predice fallas probables para que puedan eliminarse o evitarse sus efectos. [10] [11]
La tolerancia a fallos se ocupa de poner en marcha mecanismos que permitan que un sistema siga prestando el servicio requerido en presencia de fallos, aunque dicho servicio pueda estar en un nivel degradado.
Los medios de confiabilidad tienen como objetivo reducir el número de fallas visibles para los usuarios finales de un sistema.
Según cómo aparezcan o persistan las fallas, se clasifican en:
Algunos trabajos sobre confiabilidad [12] utilizan sistemas de información estructurados , por ejemplo con SOA , para introducir el atributo capacidad de supervivencia , tomando así en cuenta los servicios degradados que un sistema de información mantiene o reanuda después de un fallo no enmascarable.
La flexibilidad de los marcos actuales alienta a los arquitectos de sistemas a habilitar mecanismos de reconfiguración que reorienten los recursos disponibles y seguros para respaldar los servicios más críticos en lugar de aprovisionarlos en exceso para construir un sistema a prueba de fallas.
Con la generalización de los sistemas de información en red, se introdujo la accesibilidad para dar mayor importancia a la experiencia de los usuarios.
Para tener en cuenta el nivel de rendimiento, la medición de la ejecutabilidad se define como "cuantificar qué tan bien se desempeña el sistema objeto en presencia de fallas durante un período de tiempo específico". [13]
Conferencias más centradas a nivel regional: