川村渇真の「知性の泉」

エージェント指向:実は情報中心システムでこそ有効


期待は大きいものの、中身は不確定な部分が多い

 ソフトウェア改良の救世主としてもっとも期待されているのがエージェント指向技術だ。研究中の技術のため、確定した定義はないようだ。それでも簡単に表現するなら、複雑に絡み合ういろいろな情報を総合的に判断して、最適な処理内容を決定し、実行する機能である。複数のエージェントがデータを交換し、強調しながら全体として最適な処理を進める機能も含まれている。
 エージェント指向技術の中身については、ハッキリしていない部分も多い。今後10年ほどかけて研究が深まるという人もおり、どの程度の機能を実現できるのか不確定だ。まだまだ研究の初期段階である。その割に期待が大きいのは、有望な技術が他に見あたらないことと、「エージェント」や「自動化」という言葉が期待を抱きやすいからであろう。明確な見通しから出てきた予測ではない。

既存OS上で役立たせるのは難しい

 これだけ期待の大きいエージェント指向技術であるが、既存OS上ではどの程度役立つのであろうか。その答えを求めるには、エージェント指向技術が実現する機能(ここではエージェント機能と呼ぶ)を考察する必要はない。その機能をブラックボックス化して考えてみるだけで、すぐに限界が見えてくる。他の機能と同様に、エージェント機能にも入力と出力が必要である。入力は、状況を把握するための情報として使われ、出力は、判断した結果の操作になる。この両方を十分に確保できなければ、エージェント指向がどんなに高度でも役立たない。
 まず入力だが、状況を細かく把握するためには、データも細かな属性を調べられる必要がある。ところが、既存OS上のデータは、細かな属性を持っていない場合が多い。たとえば、表計算ソフト。セル内の数値なら、それが長さなのか重さなのか、単位は何なのか分からない。また、どのデータとどのデータが対になっていて、1レコードに相当するかも判断できない。ワープロソフトも同様で、段落や文章の区切りは分かるものの、段落ごとの文書上の役割(実例、前提条件、結論など)は不明だ。さらには、文章の一部を強調するため、文字スタイルを下線に設定したとしても、それが強調だと判断できない。さらに、以上のこととは別に、個々のデータの属性を、アプリケーションの外から調べる方法も持たないシステム(OSと複数アプリケーションの組合せ)がほとんど。こんな状況なので、データの細かな属性を把握するのは非常に難しい。
 もう一方のエージェント機能の出力では、どれだけ細かくデータを操作できるかと、操作するデータを特定できるかが重要となる。表計算ソフトでは、セル単位で値や属性を設定する機能はある。しかし、どのセルに何の値が入っているのか分からなければ、どこを変更してよいのは判断できない。操作すべきデータを特定する機能が貧弱なのだ。この点は、ワープロソフトでも同様である。出力の側から見ても、残念ながら凝ったことはできない。
 以上のように、エージェント機能の入力も出力も自由にならないのが、既存OSの仕組みである。その結果、細かなデータを分析して高度な自動化を達成するのは、非常に難しい。エージェント指向技術の中身がいくら進歩したとしても、既存OS上での自動化には限界がある。それも、かなり低いレベルでの限界だ。

ネットワーク管理などの一部の分野では役立つ

 既存OS上でエージェント指向技術を利用する場合は、基本的に、データの中身を知らなくてよい機能が中心となる。たとえば、ファイルの操作。いつも作業を観察して、何度も繰り返す操作のうち、もっと簡単に行える操作を教えるとか、自動的にやってくれるなどが考えられる。同じ操作であっても、いろいろなファイルを扱うので、自動化が本当に正しいかを判断するのは難しい。応用できるのは、ごく一部の操作だけに限られるだろう。
 特定の用途に限れば、エージェント指向技術が高度に役立つ分野はある。データの中身を知らなくても、まったく問題のない分野だ。その最たるものがネットワーク管理。ネットワーク上の各ノードにエージェント機能を動かし、混み具合などの情報を交換しながら、各データごとの最適ルートを決定する。曜日や時間帯による混み具合の情報を蓄積して参照すれば、過去のデータをも一緒に考慮して最適ルートが決められる。また、データのサイズや優先度の情報をもとに、どのデータを先に送るかを判断する。ルートや送り順を決めるのに必要な情報がすべて入手できるので、エージェント指向技術の利用が可能となる。このように役立つのは、ごく一部の特殊な分野であって、一般ユーザーには直接関係ない場合が多い。
 目的を限定すれば、扱うデータが限られるので、エージェント指向技術を応用することも可能だ。業務や作業を特定してシステムの範囲を決め、その中で扱うデータだけを対象に、エージェント指向による自動化機能を組み込む。これなら、どんな分野にも応用できる。ただし、その目的ごとに作成する必要があり、限られた自動化でしかない。
 このような目的別システムを作るツールとして、データベース・ソフトにエージェント指向技術を組み込む方法が考えられる。データベースの場合は、フィールド定義に合わせてデータを入力するため、データや属性を把握しやすい。また、データベースの持つデータ操作機能も利用できるため、自動化の機能をより簡単に作れる。既存OS上では、このようなツールが登場するのではないかと予想する。

情報中心システムでこそ真価を発揮する

 ここまでは既存OS上での利用を考えたが、オブジェクト指向OS上でも基本的に同じだ。ユーザー向けのオブジェクト指向の機能を持ったとしても、個々のデータを細かく取り扱うわけではない。既存OS上のファイルよりは小さなデータを扱うが、それでは不十分だ。実現できる自動化のレベルは、既存OSとほとんど変わらない。
 データの細かな属性を持つといえば、やはり情報中心システムである。個々のデータごとに細かな属性を持つ仕組みなので、状況を把握するための情報には事欠かない。各データの細かな属性を変更できる機能は、さまざまな自動化の出力として使える。独自の属性を簡単に追加できる機能もあり、エージェント機能だけで利用する属性も持てる。
 エージェント機能の実現方法も、情報中心システム上では異なる。専用の項目定義や処理定義を用い、他の機能と同じような形式を取る。つまり、エージェント機能という区別や境はなく、すべての機能が混在できる。エージェント機能を利用する対象がどんな機能であっても、より自由に組み込める仕組みとなる。
 情報中心システムでは、既存OSのファイル操作のような作業が極端に少ない。高度な自動化を達成する基本構造のため、ユーザーによる無駄な操作は極力排除してある。このようなシステムなので、エージェント指向技術による自動化の必要性自体が、それほど大きくない。その結果、もっと違う方向での利用が中心となる。データの複雑な検索、関連するデータを自動的に呼び出す機能、入力や閲覧の忘れを知らせる機能、好みの表現を一発で選ぶための高度な学習機能など、情報やその利用に近い形でだ。また、システムが持つ機能をエージェント機能ですべて利用できるため、システムの機能が増えるにつれて、もっと高度な自動化を実現可能な環境へと進歩する。どれだけ高度な自動化を達成できるかは、OS側の制約ではなく、エージェント指向技術自体の機能で決まる。その点も、既存OSとは大きく異なる部分だ。

既存OS上での活用ノウハウは多くが無駄になる

 エージェント指向技術の研究は、今後も幅広く続けられる。当面の課題としては、既存OS上でどのように活用できるかが中心となる。ファイル操作の自動化など、一般的な利用も研究されるに違いない。そこで得られた活用ノウハウだが、残念ながら、情報中心システムでは役に立たない可能性が大きい。既存OS上での活用は、細かなデータの情報を扱わないため、ファイル操作などに向けられる。ところが、情報中心システムでは、データの細かな属性を用いた活用が中心だ。この差は非常に大きく、自動化の度合いだけでなく、エージェント機能の処理の中身も大きく異なる。この理由から、流用できる活用ノウハウはごく一部だけ限られる。
 既存OS上でのもう1つの利用形態として、データベースと一緒になったツールがある。こちらのほうは、データの細かな属性が扱えるため、情報中心システムに流用できる可能性が高い。ただし、すべてのデータを自由に扱える環境ではないため、エージェント機能が実現できる内容は、情報中心システムよりかなり低い。だとしても、より高度な自動化を研究したいなら、こちらのほうが適している。その前に、このようなツール自体の機能や姿も研究しなければならないだろうが。

(1997年5月3日)


下の飾り