В системной инженерии надежность является мерой доступности , надежности , ремонтопригодности системы , а в некоторых случаях и других характеристик, таких как долговечность , безопасность и защищенность . [1] В вычислениях в реальном времени надежность является способностью предоставлять услуги, которым можно доверять в течение определенного периода времени. [2] Гарантии обслуживания должны сохраняться даже тогда, когда система подвергается атакам или естественным сбоям.
Международная электротехническая комиссия (МЭК) через свой Технический комитет TC 56 разрабатывает и поддерживает международные стандарты, которые предоставляют систематические методы и инструменты для оценки надежности и управления оборудованием, услугами и системами на протяжении их жизненного цикла. Рабочая группа IFIP 10.4 [3] по «Надежным вычислениям и отказоустойчивости» играет роль в синтезе прогресса технического сообщества в этой области и организует два семинара каждый год для распространения результатов.
Надежность можно разбить на три элемента:
Некоторые источники утверждают, что это слово было придумано в девятнадцатых годах в автомобильной печатной рекламе Dodge Brothers. Но слово появилось еще до этого периода, и Оксфордский словарь английского языка впервые упоминает его в 1901 году.
По мере того, как в 1960-х и 1970-х годах возрос интерес к отказоустойчивости и надежности систем, надежность стала мерой [x], поскольку меры надежности стали охватывать дополнительные меры, такие как безопасность и целостность. [4] В начале 1980-х годов Жан-Клод Лапри выбрал надежность в качестве термина для охвата исследований отказоустойчивости и надежности систем без расширения смысла, присущего надежности . [5]
Сфера надежности развилась из этих начинаний в активное международное направление исследований, получившее развитие благодаря ряду известных международных конференций, в частности, Международной конференции по надежным системам и сетям , Международному симпозиуму по надежным распределенным системам и Международному симпозиуму по проектированию надежности программного обеспечения .
Традиционно надежность системы включает в себя доступность , безотказность и ремонтопригодность , но с 1980-х годов к показателям надежности были добавлены безопасность и защищенность . [6]
Атрибуты — это качества системы. Их можно оценить, чтобы определить ее общую надежность с помощью качественных или количественных мер. Авизиенис и др. определяют следующие атрибуты надежности:
Как следует из этих определений, только Доступность и Надежность поддаются количественной оценке прямыми измерениями, тогда как другие более субъективны. Например, Безопасность не может быть измерена напрямую с помощью метрик, но является субъективной оценкой, которая требует применения оценочной информации для обеспечения уровня уверенности, в то время как Надежность может быть измерена как отказы с течением времени.
Конфиденциальность , т. е. отсутствие несанкционированного раскрытия информации , также используется при рассмотрении безопасности. Безопасность является составным элементом Конфиденциальности , Целостности и Доступности . Безопасность иногда классифицируется как атрибут [7], но в настоящее время принято объединять его с надежностью и рассматривать Надежность как составной термин, называемый Надежностью и Безопасностью. [2]
На практике применение мер безопасности к устройствам системы обычно повышает надежность за счет ограничения количества внешних ошибок.
Угрозы — это то, что может повлиять на систему и вызвать падение Надежности. Есть три основных термина, которые необходимо четко понимать:
Важно отметить, что сбои регистрируются на границе системы. В основном это ошибки, которые распространились на границу системы и стали наблюдаемыми. Сбои, ошибки и сбои действуют в соответствии с механизмом. Этот механизм иногда называют цепочкой сбой-ошибка-сбой. [8] Как правило, сбой при активации может привести к ошибке (которая является недопустимым состоянием), а недопустимое состояние, сгенерированное ошибкой, может привести к другой ошибке или сбою (которая является наблюдаемым отклонением от указанного поведения на границе системы). [9]
После активации сбоя создается ошибка. Ошибка может действовать так же, как сбой, в том смысле, что она может создавать дополнительные условия возникновения ошибки, поэтому ошибка может распространяться несколько раз в пределах границ системы, не вызывая наблюдаемого сбоя. Если ошибка распространяется за пределы границ системы, говорят, что произошел сбой. Сбой — это, по сути, точка, в которой можно сказать, что служба не соответствует своей спецификации. Поскольку выходные данные из одной службы могут быть переданы в другую, сбой в одной службе может распространиться в другую службу как сбой, поэтому можно сформировать цепочку в форме: сбой, ведущий к ошибке, ведущей к сбою, ведущему к ошибке и т. д.
Поскольку механизм Fault-Error-Chain понятен, можно сконструировать средства для разрыва этих цепочек и тем самым повысить надежность системы. На данный момент выявлено четыре средства:
Предотвращение сбоев связано с предотвращением появления сбоев в системе. Это может быть достигнуто путем использования методологий разработки и хороших методов внедрения.
Устранение неисправностей можно разделить на две подкатегории: Устранение во время разработки и Устранение во время использования.
Устранение во время разработки требует проверки, чтобы неисправности можно было обнаружить и устранить до того, как система будет запущена в производство. После того, как системы были запущены в производство, необходима система для регистрации сбоев и их устранения с помощью цикла обслуживания.
Прогнозирование неисправностей позволяет предсказать вероятные неисправности, чтобы их можно было устранить или обойти их последствия. [10] [11]
Отказоустойчивость связана с внедрением механизмов, которые позволят системе продолжать предоставлять требуемые услуги при наличии неисправностей, хотя качество этих услуг может быть снижено.
Средства обеспечения надежности призваны сократить количество сбоев, которые становятся заметны конечным пользователям системы.
В зависимости от того, как проявляются или сохраняются неисправности, их классифицируют следующим образом:
В некоторых работах по надежности [12] используются структурированные информационные системы , например, с SOA , для введения атрибута живучести , тем самым принимая во внимание ухудшенные сервисы, которые информационная система поддерживает или возобновляет после немаскируемого сбоя.
Гибкость существующих фреймворков побуждает системных архитекторов включать механизмы реконфигурации, которые перенаправляют доступные безопасные ресурсы на поддержку наиболее важных сервисов, а не выделять избыточные ресурсы для создания отказоустойчивой системы.
С распространением сетевых информационных систем была введена доступность , придающая большее значение опыту пользователей.
Чтобы учесть уровень производительности, измерение производительности определяется как «количественная оценка того, насколько хорошо работает объектная система при наличии неисправностей в течение определенного периода времени» [13] .
Больше конференций региональной направленности: