Обидва описують послідовність поведінки програми, але "надійність" описує відповідь програми на її вклад , тоді як "стійкість до відмов" описує реакцію програми на її оточення .
Додаток надійний, коли він може працювати послідовно із суперечливими даними. Наприклад: додаток карт надійний, коли він може аналізувати адреси у різних форматах з різними написаннями помилок та повертати корисне місцеположення. Музичний плеєр надійний, коли він може продовжувати розшифровувати MP3 після зіткнення з неправильним кадром. Редактор зображень є надійним, коли він може змінювати зображення за допомогою вбудованих метаданих EXIF, які він може не розпізнавати, особливо якщо він може вносити зміни до зображення, не руйнуючи дані EXIF.
Додаток є стійким до відмов, коли він може стабільно працювати в непослідовному середовищі. Додаток до бази даних є стійким до відмов, коли він може отримати доступ до альтернативного фрагменту, коли основний недоступний. Веб-додаток стійкий до відмов, коли він може продовжувати обробляти запити з кешу, навіть якщо хост API недоступний. Підсистема зберігання є стійкою до відмов, коли вона може повертати результати, обчислені за паритетом, коли член диска в автономному режимі.
В обох випадках очікується, що додаток залишатиметься стабільним, поводитиметься рівномірно, зберігатиме цілісність даних та надаватиме корисні результати навіть у випадку помилки. Але, оцінюючи надійність, ви можете знайти критерії, що стосуються даних, тоді як при оцінці відмовостійкості ви знайдете критерії, що стосуються тривалості роботи.
Один не обов'язково веде до іншого. Мобільний додаток для розпізнавання голосу може бути дуже надійним, забезпечуючи незграбну здатність послідовно розпізнавати мовлення в різних регіональних акцентах з величезною кількістю фонового шуму. Але якщо без швидкого зв’язку стільникових даних це марно, воно не дуже вірогідне. Аналогічно, додаток для веб-публікацій може бути надзвичайно стійким до помилок, із безліччю надмірностей на кожному рівні, здатним втрачати цілі центри обробки даних, не виходячи з ладу, але якщо він скидає таблицю користувачів і впаде в перший раз, коли хтось реєструється з апострофом на своє прізвище , це зовсім не надійно.
Якщо ви шукаєте наукову літературу, яка допоможе описати відмінність, ви можете шукати в конкретних областях, які використовують програмне забезпечення, а не широко програмне забезпечення взагалі. Дослідження розповсюджених програм можуть бути благодатною основою для критеріїв відмовостійкості, і Google опублікувала деякі свої дослідження, які можуть бути актуальними. Дослідження моделювання даних, ймовірно, стосуються питань надійності, оскільки вчених особливо цікавлять властивості стійкості, які дають відтворювані результати. Ви, ймовірно, можете знайти документи, що описують статистичні програми, які можуть бути корисними, наприклад, в кліматичному моделюванні, моделюванні РЧ-розповсюдження або в послідовності геному. Ви також знайдете інженерів, які обговорюють "надійний дизайн" у таких речах, як системи управління.
Біла книга файлової системи Google описує їх підхід до проблем з відмовою, що, як правило, передбачає припущення, що збої компонентів є звичайними, і програма повинна адаптуватись до них:
Цей проект для класу в Rutgers підтримує орієнтоване на "компонент-відмова" визначення "відмовостійкості":
Існує безліч паперів про "надійне моделювання XYZ", залежно від галузі, яку ви досліджуєте. Більшість описує свої критерії "надійного" в рефераті, і ви знайдете, що це стосується того, як модель поводиться з інформацією
Цей короткий опис вченого клімату NASA описує надійність як критерій оцінки кліматичних моделей:
У цьому документі дослідник MIT вивчає програми бездротового протоколу, домен, в якому відхилення та стійкість перекриваються, але автори використовують "надійний" для опису програм, протоколів та алгоритмів, тоді як вони використовують "відмовостійкість" стосовно посилання на топологію та компоненти: