> [!abstract] 概要(記事冒頭のデック文の日本語訳) > システムは管理者の目標に従って自分自身を管理する。新しいコンポーネントは、人体で新しい細胞が自分自身を確立するのと同じくらい苦もなく統合される。これらのアイデアは空想科学ではなく、自己管理型コンピューティングシステムを生み出すという壮大な挑戦の構成要素である。 ## 論文情報 - タイトル: The Vision of Autonomic Computing - 著者: Jeffrey O. Kephart、David M. Chess(いずれも [[IBM T.J. Watson Research Center]]) - 媒体: *Computer*(IEEE Computer Society発行)、Vol. 36, No. 1、COVER FEATURE - 発表年: 2003 年 1 月(pp. 41-50) - DOI: 10.1109/MC.2003.1160055 ## 概要 2001 年 10 月に IBM が発表したマニフェストは、IT 産業のさらなる進歩を阻む主要な障害はソフトウェアの複雑さ危機であると指摘した。本稿は、この危機に対する唯一の残された選択肢として「自律コンピューティング(autonomic computing)」——管理者が与える高レベルの目標に従ってシステム自身が自らを管理する計算機システム——というビジョンを提示し、その自己管理の 4 側面、アーキテクチャ上の考慮事項、そして工学的・科学的な課題を体系的に論じる。 ## 問題設定 IBM のマニフェスト(2001 年 10 月)は、アプリケーションと環境が数千万行のコードに達し、インストール・構成・チューニング・保守に熟練した IT 専門家を要する状況を指摘した。個々のソフトウェア環境の管理を超えて、複数の異種環境を企業横断的な計算機システムへ統合し、さらに企業の境界を越えてインターネットへ拡張する必要があることが、複雑さの新たな水準をもたらしている。計算機システムの複雑さは人間の能力の限界に近づきつつあるにもかかわらず、相互接続と統合への行進は止まらない。プログラミング言語の革新はアーキテクトが設計できるシステムの規模と複雑さを拡張してきたが、プログラミング手法のさらなる革新だけでは、現在の複雑さ危機を突破できないと著者らは論じる。 ## 提案手法 ### 自律コンピューティングという選択肢 残された唯一の選択肢は自律コンピューティング——管理者から与えられる高レベルの目標に従ってシステム自身が自分自身を管理する計算機システム——である。IBM のシニア・バイスプレジデントである Paul Horn は、2001 年 3 月のハーバード大学での基調講演でこの語を導入した際、意図的に生物学的な含意を持つ用語を選んだ。自律神経系は心拍数や体温を統制し、これによって人間の意識的な脳はこれら低レベルだが不可欠な機能への対処から解放される。自律コンピューティングという語は、分子機械から人間の市場・社会・世界の社会経済まで及ぶ、自然界の入れ子状の自己統治システムの階層に着想を求める姿勢を象徴する。 ### 自己管理の 4 側面 自律コンピューティングシステムの本質は自己管理(self-management)であり、その意図はシステム管理者をシステムの運用・保守の詳細から解放し、24 時間 365 日ピーク性能で動作するマシンをユーザーに提供することにある。IBM はしばしば自己管理の 4 つの側面を挙げる。 | 側面 | 現在の計算機システム | 自律コンピューティング | |---|---|---| | 自己構成(Self-configuration) | 企業のデータセンターは複数ベンダー・複数プラットフォームからなり、システムの導入・構成・統合には時間がかかり誤りが起きやすい | 高レベルのポリシーに従ってコンポーネントとシステムが自動的に構成される。システムの残りの部分は自動的かつシームレスに適応する | | 自己最適化(Self-optimization) | システムは数百の手動設定された非線形チューニングパラメータを持ち、その数はリリースごとに増加する | コンポーネントとシステムは自らの性能と効率を改善する機会を継続的に探索する | | 自己修復(Self-healing) | 大規模で複雑なシステムの問題判定にはプログラマのチームが数週間を要しうる | システムは局所化されたソフトウェア・ハードウェアの問題を自動的に検知・診断・修復する | | 自己防御(Self-protection) | 攻撃とカスケード障害の検知・回復は手動である | システムは悪意ある攻撃やカスケード障害から自動的に防御する。早期警報を用いてシステム全体の障害を予測・防止する | (Table 1. Four aspects of self-management as they are now and would be with autonomic computing. 著者らは、初期の自律システムはこれら 4 側面を別々の製品チームが個別に扱う可能性が高いが、最終的にはこれらが一つの汎用アーキテクチャの創発的性質へと融合し、自己維持(self-maintenance)というより一般的な概念へぼやけていくと述べる。) 自律システムのアップグレード時の自己修復の具体例として、著者らは会計システムへの新規モジュール導入のケースを示す。 **Figure 1: 自律システムのアップグレードにおける問題診断** ![[_attachments/The_vision_of_autonomic_computing/fig01-problem-diagnosis.png]] (Figure 1. Problem diagnosis in an autonomic system upgrade. アップグレードは 5 つのソフトウェアモジュール(自律要素)を導入する。導入の数分後、リグレッションテスタが 3 つの新モジュールで不正な出力(赤枠)を検出し、システムは直ちに旧バージョンへ復帰する。問題判定器(自律要素)は、システムを定期的にプローブする依存関係アナライザ(別の自律要素)から要素間依存関係(要素間の線)についての情報を取得する。問題判定器はこの依存関係の知識を踏まえてログファイルを分析し、3 つの潜在的に不良なモジュールのうちどれが原因かを推論する(赤い X)。問題判定器は診断情報を含む問題チケットを生成し、ソフトウェア開発者に送る。開発者はモジュールをデバッグし、将来のアップグレードのために利用可能にする。) このプロセスが示すように、自律システムはアップグレードの利点が導入に値すると判断すればアップグレードをインストールし、必要に応じて自身を再構成し、リグレッションテストを実行して問題がないことを確認する。エラーを検知すると、自動的な問題判定アルゴリズムがエラーの原因を特定しようとする間、システムは旧バージョンに復帰する。 **自己構成**: コンポーネントが導入されると、それはシームレスに自らを組み込み、システムの残りの部分はその存在に適応する——体内の新しい細胞や集団への新しい人物の参入に似ている。新しいコンポーネントはディレクトリサービスに自身とその機能を登録し、他のコンポーネントがそれを利用したり、それに応じて自らの振る舞いを修正したりできるようにする。 **自己最適化**: WebSphere のような複雑なミドルウェアや Oracle・DB2 のようなデータベースシステムは、正しく設定されなければ最適な性能が出ない数百のチューニング可能なパラメータを持ちうるが、それらの調整方法を知る人はわずかである。自律システムは、筋肉が運動によって強くなり脳が学習中に回路を修正するのと同様に、自らのパラメータを継続的に監視・実験・調整し、機能を保持するかアウトソースするかの適切な選択を学習する。 **自己修復**: IBM を含む IT ベンダーは、複雑な計算機システムにおける障害の特定・追跡・根本原因の判定に大規模な部門を割いている。深刻な顧客問題はプログラマのチームが数週間かけて診断・修正することもあり、時に満足のいく診断がないまま問題が謎めいたように消えることもある。自律システムは、ベイジアンネットワークなどに基づく問題診断コンポーネントを用いてログファイルの情報を分析し(必要に応じて追加のモニタからのデータで補完し)、既知のソフトウェアパッチと診断を照合し(なければ人間のプログラマに警報を出し)、適切なパッチを導入して再テストする。 **自己防御**: ファイアウォールや侵入検知ツールが存在するにもかかわらず、悪意ある攻撃からシステムを保護する方法は現在人間が決定している。自律システムは 2 つの意味で自己防御的になる。自己修復措置で是正されない、悪意ある攻撃やカスケード障害から生じる大規模かつ相関した問題からシステム全体を守り、またセンサーからの早期報告に基づいて問題を予見し、それを回避・緩和する措置を講じる。 ### アーキテクチャ上の考慮事項 自律システムは自律要素(autonomic element)——リソースを含み、人間や他の自律要素にサービスを提供する個々のシステム構成要素——の相互作用集合として構成される。自律要素は他の自律要素・人間との関係を、人間や他の要素が確立したポリシーに従って管理する。システムの自己管理は、個々の自律要素の内部的な自己管理と同じくらい、自律要素間の無数の相互作用から生じる——アリの群れの社会的知性が個々のアリ間の相互作用から生じるのと同様である。 **Figure 2: 自律要素の構造** ![[_attachments/The_vision_of_autonomic_computing/fig02-element-structure.png]] (Figure 2. Structure of an autonomic element. Elements interact with other elements and with human programmers via their autonomic managers. 自律要素は典型的には、それを制御・代表する単一の自律マネージャ(autonomic manager)と結合された 1 つ以上の管理対象要素(managed element)からなる。管理対象要素は通常の非自律システムに見られるものと本質的に等価だが、自律マネージャがそれを監視・制御できるように適応されうる。自律マネージャは Monitor(監視)・Analyze(分析)・Plan(計画)・Execute(実行)の 4 機能を、共有される Knowledge(知識)を介して結びつける構造を持つ。) 管理対象要素はストレージ・CPU・プリンタといったハードウェアリソース、あるいはデータベース・ディレクトリサービス・大規模レガシーシステムといったソフトウェアリソースでありうる。最上位レベルでは、管理対象要素は e-utility・アプリケーションサービス、あるいは個々のビジネスそのものでもありうる。自律マネージャは、管理対象要素とその外部環境を監視し、分析に基づいて計画を構築・実行することによって、人間が管理対象要素を直接管理する責任から解放する。 自律要素は個々の計算機コンポーネント(ディスクドライブなど)から、ワークステーションやサーバといった小規模計算システム、さらには最大の自律システムである世界経済に至る自動化された企業まで、多くのレベルで機能する。下位レベルでは、自律要素の内部振る舞いや他要素との関係、相互作用できる要素の集合は比較的限定的でハードコードされる傾向がある。上位レベルに向かうにつれて、固定的な振る舞い・接続・関係は増大するダイナミズムと柔軟性に道を譲り、より高レベルで目標志向の言葉で表現されるようになる。 ハードワイヤードな関係は、交渉によって確立される柔軟な関係へと進化する。要素は、供給者による契約違反のような新しい種類の障害を人間の介入なしに自動的に処理するようになる。Web サービスやグリッドサービスのようなサービス指向アーキテクチャの概念は基盤的な役割を果たすが、自律コンピューティングにはそれ以上のものが必要である。サービス提供者としての自律要素は、通常の Web サービスやオブジェクト指向環境のオブジェクトのように無条件にサービス要求を応諾するのではなく、それが自らの目標と整合する場合にのみサービスを提供する。消費者としての自律要素は、自律的かつプロアクティブに他要素へ要求を発行して自らの目的を達成する。自律要素は複雑なライフサイクルを持ち、自律性・プロアクティビティ・目標志向の相互作用性というソフトウェアエージェントの特徴を備える。自律要素をエージェントとして、自律システムをマルチエージェントシステムとして捉えることは、エージェント指向アーキテクチャの概念が重要であることを明らかにする。 ## 新規性 本稿は、単一システムの自己修復や自己最適化といった個別技術ではなく、**自己構成・自己最適化・自己修復・自己防御の 4 側面を統合する自律要素/自律マネージャという単一のアーキテクチャ的枠組み**を提示する点に新規性がある。既存のシステム管理研究の多くは個々の側面(チューニング自動化、障害検知など)を独立に扱ってきたのに対し、著者らはこれらが最終的に 1 つの汎用アーキテクチャの創発的性質へと融合すると予測し、Monitor-Analyze-Plan-Execute-Knowledge(MAPE-K)という共通の制御ループ構造(Figure 2)によって、自己管理のあらゆる側面を単一の枠組みで説明しようとする。また、自律要素をソフトウェアエージェントとして捉え、自律システムをマルチエージェントシステムとして位置づけることで、交渉理論・学習理論・ロバスト性理論といった、伝統的なシステム管理研究の外側にある学問分野との接続を明示的に主張している。 ## 実験設定・実験結果 本稿はビジョン(ポジション)論文であり、実験的な評価や定量的な性能測定は行っていない。Figure 1 の会計システムアップグレード例は、提案するアーキテクチャの動作を説明するための概念的な例示であり、実装や実験の結果ではない。 ## 考察 ### 自律要素のライフサイクルと工学的課題 自律要素のライフサイクルは、設計・実装、テストと検証、導入・構成・最適化・アップグレード・監視・問題判定・回復、そして最終的なアンインストールまたは置換に至る。テストと検証は、環境(特に複数の管理ドメインや企業をまたぐ場合)を予測することが難しくなるため、大規模システムでは特に困難になる。著者らは、新規導入された自律要素を、既に確立され信頼された同種機能の要素と並行して in situ でテストする可能性を提案する。 導入・構成は、要素がディレクトリサービスに自身の機能と連絡先情報を公開して登録するブートストラップ過程を通じて行われる可能性が高い。監視と問題判定は自律要素の本質的な機能であり、要素は自らの目標を満たしているかを継続的に監視するとともに、供給者が合意された水準のサービスを提供しているか、顧客が合意された需要水準を超えていないかも監視する。著者らは、自律システムを複雑なサプライウェブ(supply web)として捉えるビジョンが、問題判定を今よりも容易にも困難にもすると指摘する——供給者の性能低下や障害を検知した自律要素は診断を試みずに単に新しい供給者を探すことで問題を回避しうる一方、シャットダウンと再起動を伴わずに複数要素の障害原因を突き止める必要がある場合には、理論的に裏付けられたトレーシング・シミュレーション・問題判定ツールが必要になる。 ### 自律要素間の関係のライフサイクル 自律要素間のサービス関係もまた、仕様(specification)・所在特定(location)・交渉(negotiation)・プロビジョニング(provision)・運用(operation)・終了(termination)というライフサイクルを持つ。交渉は、要求されたサービスを提供者が無条件に履行しなければならない単純な需要ベースの形態から、価格・サービス水準・優先度といった複数属性にわたる複数ラウンドの提案・反対提案を伴う双務的・多務的交渉まで幅広い。著者らは、交渉を成功裏に終えた合意の表現方法の標準化は進みつつあるが、合意を交渉・実施・推論するメカニズムや、それを実行計画へ変換する方法は依然として欠けていると指摘する。 ### システム全体の課題:ゴール指定、セキュリティ、科学的基盤 著者らは、人間がなおシステムにポリシー(目標と制約)を与える必要があると強調する。自律システムの大きなレバレッジは人間の誤りを大幅に減らす一方、目標指定における人間の誤りの帰結を大きく増幅する。ポリシーの誤りは構成と振る舞いへの間接的な効果を通じて現れるため、追跡と是正が非常に困難になる。加えて、自律コンピューティングシステムはセキュリティ・プライバシー・信頼という、従来の計算機システムが直面してきた課題に加えて、**高レベルポリシーに基づく自己管理を悪用する新種の攻撃**——攻撃者が高レベルポリシーを改ざん・操作することで、非自律システムでは不可能な大きなレバレッジを得る——に対処する新たなサブ分野のセキュリティ研究を必要とすると論じる。 科学的な課題として、著者らは局所的な振る舞い・目標・適応性から大域的な振る舞いへの写像(局所→大域)を理解するだけでは不十分であり、望ましい大域的振る舞いを誘導する局所的な振る舞い・相互作用のルール集合をどう導出するか(大域→局所の逆問題)を解く必要があると論じる。Santa Fe Institute の Melanie Mitchell らによる遺伝的アルゴリズムを用いたセルオートマトンの局所変換ルール進化や、NASA の David Wolpert らによる高レベルの大域目標から個々のエージェントの個別目標を導出する研究がこの方向の先駆けとして挙げられる。さらに、単一エージェントの学習理論やスタティックな環境を前提とする最適化手法は、複数の適応するエージェントが互いに影響し合うマルチエージェント環境では収束保証を失い、病理的な振る舞いを示すことが観測されており、これらの理論の刷新または置き換えが必要であると指摘する。 ## 強み / 弱点・課題 **強み**: - 自己構成・自己最適化・自己修復・自己防御という 4 つの自己管理側面と、それらを統合する自律要素/自律マネージャ(MAPE-K)という単純で汎用的なアーキテクチャ的語彙を導入し、以後 20 年以上にわたる自律コンピューティング・自己適応システム研究の共通言語を確立した。 - 自律要素をエージェント、自律システムをマルチエージェントシステムとして位置づけることで、交渉理論・学習理論・ロバスト性理論・統計モデリングといった多分野との接続点を具体的に提示している。 - ライフサイクル(要素の設計〜アンインストール、関係の仕様〜終了)を分解することで、工学的課題を段階ごとに明確化している。 **弱点・課題(著者ら自身が挙げるもの)**: - 実験的な検証・実装が一切なく、ビジョンの実現可能性は将来の研究に委ねられている。 - 人間の目標指定の誤りが自律システムでは非自律システムより深刻な帰結をもたらしうるという、ポリシー指定の脆弱性を著者ら自身が認めている。 - 高レベルポリシーの改ざんによる新種の攻撃への対策は、既存のセキュリティ研究の単純な延長では不十分であり、新しいサブ分野が必要になるとされるが、その具体的な設計は示されていない。 - マルチエージェント環境における学習・最適化理論の不安定性(収束保証の欠如)は、著者らが「ほとんど主要な定理がなく経験的結果もわずか」と述べる未成熟な理論的基盤の上に立脚しており、自律システムの理論的な保証にはギャップが残る。