# ディペンダビリティ
## 定義
ディペンダビリティ(dependability)とは、「正当に信頼できるサービスを提供する能力」であり、可用性(availability)・信頼性(reliability)・安全性(safety)・完全性(integrity)・保守性(maintainability)を属性として包含する統合概念である。セキュリティは機密性(confidentiality)・完全性・可用性の合成であり、ディペンダビリティのサブセットとして位置づけられる。(Source: [[@2004__TDSC__Basic Concepts and Taxonomy of Dependable and Secure Computing]] §2.3)
代替定義: 「許容範囲を超える頻度・深刻度のサービス失敗を避ける能力」。この定義からディペンダビリティ失敗(dependability failure)概念が導かれる。ディペンダビリティへの脅威は**障害(fault)→エラー(error)→失敗(failure)** の基本連鎖で記述される。(Source: [[@2004__TDSC__Basic Concepts and Taxonomy of Dependable and Secure Computing]] §2.2, §4.1)
達成手段は障害防止(fault prevention)・フォールトトレランス(fault tolerance)・障害除去(fault removal)・障害予測(fault forecasting)の 4 カテゴリに集約される。
### 属性の一覧
| 属性 | 定義 | 対象 |
|---|---|---|
| 可用性(availability) | 正規サービスの提供準備が整っている状態 | Dep + Sec |
| 信頼性(reliability) | 正規サービスの継続性 | Dep |
| 安全性(safety) | 壊滅的結果の不在 | Dep |
| 完全性(integrity) | 不適切なシステム改変の不在 | Dep + Sec |
| 保守性(maintainability) | 修正と修繕を受け入れる能力 | Dep |
| 機密性(confidentiality) | 情報の不正開示の不在 | Sec |
### 障害タクソノミーの概要
8 基本視点(フェーズ・ドメイン・境界・自然/人為・意図・目的・故意性・能力)から 31 複合障害クラスを定義。主な上位グループ: 開発障害 / 物理障害 / 相互作用障害(§3.2)。
### 信頼(trust)の形式化
依存(dependence): システム A のディペンダビリティがシステム B のそれによってどれだけ影響を受けるかの程度。信頼(trust)は受け入れられた依存関係(accepted dependence)として形式化できる。(§4.2)
## 横断的知見
- **「障害防止・フォールトトレランス・障害除去・障害予測」という 4 手段の体系は SRE の実践と対応関係にある**: [[SRE]] の「エラーバジェット」はディペンダビリティ属性の定量化に相当し、「トイル管理」は障害防止に、「緊急対応 (oncall)」は障害除去に、「信頼性テスト」は障害予測に対応すると読める。(Source: [[@2004__TDSC__Basic Concepts and Taxonomy of Dependable and Secure Computing]], [[@2016__OReilly__SRE Book - Chapter 3 Embracing Risk]])
- **「脆弱性(vulnerability)は外部障害がシステムを侵害するのを可能にする内部障害」という定義は、[[Metastable Failure]] の構造と共鳴する**: Metastable Failure は「通常は無害なトリガを壊滅的な失敗に増幅する内部状態の特性」であり、Avizienis 2004 の vulnerability 概念の特殊ケースと見なせる。(Source: [[@2004__TDSC__Basic Concepts and Taxonomy of Dependable and Secure Computing]] §2.2; [[Metastable Failure]])
- **現代の [[障害緩和]] 研究はディペンダビリティの「達成手段」のうちフォールトトレランス+障害除去の境界領域に位置する**: AIOps の緩和(SRE の oncall 対応)は「実行時の障害除去」と「フォールトトレランスの一形態(サービス継続しながら修復)」の両方の性質を持ち、どちらに分類されるかは修復の「外部エージェント(人/エージェント)の関与」の有無で変わる。
- **ディペンダビリティの抽象タクソノミーは、DfR と FRACAS によって実務プロセスへ落ちる**: Avizienis 2004 は可用性・信頼性・安全性・完全性・保守性と、障害防止・フォールトトレランス・障害除去・障害予測の概念地図を与える。[[@2012__Wiley__Practical Reliability Engineering|Practical Reliability Engineering]] は同じ地図を、[[Design for Reliability]](要求→設計→解析→検証→妥当性確認→制御)と [[FRACAS]](故障報告→解析→是正処置→再試験)という実務の閉ループに変換する。(Source: [[@2004__TDSC__Basic Concepts and Taxonomy of Dependable and Secure Computing]], [[@2012__Wiley__Practical Reliability Engineering]])
- **Heimerdinger+Weinstock 1992 の「障害回避的措置(fault evasion)」は Avizienis 2004 の4手段タクソノミーと並列して解釈できる事前対応型アプローチである**: [[@1992__CMU SEI__A Conceptual Framework for System Fault Tolerance]] は Avizienis 2004 と同じ4手段のうち「フォールトトレランス」の実行時対応を「fault tolerance(動作継続)」と「fault evasion(仕様違反前の予防的再構成)」の2つに分割する。Avizienis の「障害予測(fault forecasting)」が将来の障害を予測するのに対し、fault evasion は「現在の正常範囲逸脱を検知して即時対処する」点が異なる。この概念は 30 年後に AIOps のプロアクティブカテゴリ([[プロアクティブ障害管理]])として再実装されることになる。(Source: [[@1992__CMU SEI__A Conceptual Framework for System Fault Tolerance]] §2.2.4, [[@2004__TDSC__Basic Concepts and Taxonomy of Dependable and Secure Computing]] §5.1)
- **Salfner+ 2010 は Avizienis 2004 の fault → error → failure 3 段階連鎖を symptom と undetected/detected 区別を加えた 5 段階に拡張した**: [[@2010__ACM CSUR__A Survey of Online Failure Prediction Methods]] §2.1 は (i) 検出された error と検出されない error を明示分離し、(ii) error の副作用として現れる「out-of-norm な振る舞い」を **symptom** と命名した(本論文 Figure 3)。これにより fault は testing、undetected error は auditing、symptom は monitoring、detected error は reporting、failure は tracking で可視化できるという技法対応が成立し、オンライン障害予測手法の入力データ系統(failure tracking / symptom monitoring / detected error reporting / undetected error auditing)を直接導く。Avizienis 2004 が「失敗連鎖の意味論」を与えたのに対し、Salfner+ 2010 は「連鎖を計測する技法と入力データ系統の対応」を与えた。両者は補完関係。(Source: [[@2004__TDSC__Basic Concepts and Taxonomy of Dependable and Secure Computing]] §3.1-§3.2, [[@2010__ACM CSUR__A Survey of Online Failure Prediction Methods]] §2.1 §4)
## 未解決の問い
- ディペンダビリティの「定量的な」達成度はどう測るか。Avizienis 2004 は「許容範囲を超える頻度・深刻度の失敗」という枠組みを提供するが、頻度・深刻度の具体的な計測手法は「さらなる精緻化が必要」と論文自身が認める。SLO/SLA とディペンダビリティ仕様はどのように対応づけられるか。[[エラーバジェット]] は属性ごとの「許容可能な失敗量」の運用的表現と見なせるが、安全性(safety)や機密性(confidentiality)のように確率論的な目標設定が馴染まない属性をどう扱うか。
- ディペンダビリティとセキュリティの「共通尺度」は 2004 年時点で未解決とされた。現在の状況は。攻撃者の能力を確率論的にモデル化するセキュリティ評価の枠組みはどこまで進んでいるか。
- 「信頼(trust)= 受け入れられた依存関係」という定義は、AI エージェントがインフラを操作する [[agentic SRE]] において何を意味するか。エージェントへの信頼のレベル付け([[SRE AI Autonomy Levels]])はこの形式的定義の上に構築できるか。
- 「コンピテンシー欠如(incompetence)」は人為的障害クラスとして分類されたが、AI/ML モデルが開発・運用に組み込まれた場合にどのカテゴリに属するか。意図的でなく非悪意の開発障害として扱うべきか。
- ソフトウェアエージング(software aging)は開発障害クラスの特殊ケースとして分類されたが、LLM 推論・継続学習における「モデルの劣化」はどの障害クラスに相当するか。([[ソフトウェアエイジング]] で詳細に追跡)
- カバレッジ(coverage)の概念は「フォールトトレランス有効性の尺度」として定義されるが、AI エージェントが診断・修復を実施する場合のカバレッジをどう定量化するか。
## 関連
- ソース: [[@2004__TDSC__Basic Concepts and Taxonomy of Dependable and Secure Computing]] / [[@2012__Wiley__Practical Reliability Engineering]] / [[@2010__ACM CSUR__A Survey of Online Failure Prediction Methods]] / [[@1992__CMU SEI__A Conceptual Framework for System Fault Tolerance]]
- 概念: [[ソフトウェア耐障害性]] / [[障害緩和]] / [[障害注入]] / [[Metastable Failure]] / [[可用性]] / [[SRE]] / [[agentic SRE]] / [[障害予測]] / [[プロアクティブ障害管理]] / [[ソフトウェアエイジング]]
- 人物: [[Algirdas Avizienis]] / [[Jean-Claude Laprie]] / [[Brian Randell]] / [[Carl Landwehr]] / [[Felix Salfner]] / [[Miroslaw Malek]]
- 組織: [[IFIP WG 10.4]] / [[LAAS-CNRS]] / [[Humboldt University of Berlin]]
- 関連 MOC: [[structures/SRE - MOC]]
## 出典
- [[@2004__TDSC__Basic Concepts and Taxonomy of Dependable and Secure Computing]](全文: §2〜§5, 図 1・2・11・14・22)
- [[@2012__Wiley__Practical Reliability Engineering]](ch.1 §1.1, ch.7, ch.12 §12.6, ch.17)
- [[@2010__ACM CSUR__A Survey of Online Failure Prediction Methods]](§2.1 fault/error/symptom/failure の 5 段階連鎖と可視化技法対応・Figure 3)
- [[@1992__CMU SEI__A Conceptual Framework for System Fault Tolerance]](§2.2 障害回避的措置、§3.2 障害/失敗の定義、§4 冗長性管理機構)