【発明の詳細な説明】
システム管理方法およびその装置
発明の技術分野
本発明は、コンピュータシステムにより提供するよう意図された少なくとも1つ
のサービスに関連する少な゛くとも1つの管理タスクを実行するためのシステム
管理方法およびその装置に関する。特に本発明は(これに限られたものではない
が)、コンピュータのネットワーク上に提供される(ログオン、電子メール、印
刷スプール等の)多数の異なるサービスに関連する(インストール、監視、障害
診断等の)多数の管理タスクの実行を容易にするための方法およびその装置に関
する。
発明の背景
近年、コンピュータシステム(特にコンピュータネットワーク)の複雑さが相当
増大し、かかるシステムは、多様な異なるサービスを提供する際の多数のシステ
ムエンティティの対話を特徴とする。
その結果、かかるシステムの維持および運転が課せられたシステム管理資源にか
なりの負担がかかることになる。システムエンティティ同士の結合に使用される
技術の高度性が増大するのに伴って、プロトコルアナライザ等の低レベルの障害
診断装置が発達したが、かかる装置は、メンテナンスエンジニアの助けとなるよ
う機能することしか意図されていないものが多く、試験中の特定のポイントでの
問題点をメンテナンスエンジニアに知らせるだけのものであった。
同様に、ネットワークの全ての部分からデータを収集することによって全体的な
システム性能の概観を提供しようとする高レベルのネットワーク管理システムも
また、その大部分が用途の限定されたものであり、ネットワークスーパバイザに
何が起こっているのかを理解することに関して多くの問題が残うている。
更に近年になって、ネットワークの障害診断および管理にエキスパートシステム
技術を導入するよう多数の提案がなされている。かかる技術を用いたネットワー
ク管理システムの1つに、FeridunSM。
LeibSM、Nodine、およびJ、Ongによる論文rANM: Aut
omated Network Management systemj (I
EEE Network、 March 1988−vol、2. No、2)
に説明されているΔNM(自動ネットワーク管理)システムがある。
このへNMシステムでは、ゲートウェイ等のネットワークエンティティが分散形
管環モジュール(DMM)のコアにデータを提供し、そのDMMが、ネットワー
ク管理サービスを提供する「クライアント−1にサービスを行う。クライアント
は、DMMコアによってネットワークエンティティから収集された生データを要
求してそれを受信する。クライアントはまた、DMMコアに特定の動作の実行を
要求することができる。インテリジェントネットワークマネージャと呼ばれる特
殊なりライアントが設けられ、このクライアントは、ネットワークエンティティ
から受信したトリガデータを、特定種類のネットワーク問題を各々が理解する別
のエキスパートに送る、最上位レベルのエキスパートとして編成されたエキスパ
ートシステム(エキスパート)の集合体からなる。それらエキスパートは、前記
トリガデータを説明する可能性のある考え得る仮説を提案することができる。必
要であれば、各エキスパートは、ネットワークエンティティからの更なるデータ
を要求することができる。エキスパートが仮説を提案、確認または拒絶すると、
それがネットワークのオペレータに通知される。新しいタイプのネットワーク問
題に関する専門知識をΔNMのインテリジェントネットワークマネージャに追加
するためには、そのシステムに新しいエキスパートを追加しなければならず、ま
たシステムが諸問題に関する推論を行う方法を変更するためには、かかる推論を
行うエキスパートを全て変更しなければならない。
当業界におけるエキスパートシステム技術の使用のもう1つの例として、ヨーo
ツバ特許出願第0473255八2号(llewlett−Packard)
に記載のネットワーク監視/分析装置がある。この装置にも多数の異なるエキス
パートシステム(コンサルタント)が設けられている。
しかし、ネットワーク問題のそれぞれのタイプにエキスパートが関連するΔNM
システムとは異なり、そのIlewlett−Packardの装置では、あら
ゆる所与のネットワーク問題の分析に通常伴う動作のタイプのうちのそれぞれ1
つに各コンサルタントが関連する。
後者のいずれの構成においても、専門知識がエキスパートシステム中に符号化さ
れて、ネットワークの障害を識別するオブジェクトに症状が与えられ、考え得る
解決策が提案される。システムに何が発生しているかについてのいかなる知識も
、解決すべき問題に密接に結び付けられる。その結果として、その専門知識は、
障害の存在しない他のタイプの管理タスク(サービスのインストール等)には利
用することができない。これが、ネットワーク管理タスクの実行の支援を提供す
ることを意図した今日のシステムの特徴であり、その結果として、各々の管理タ
スクがそれ自体の特殊な援助を(一般にはソフトウェアツールという形態で)有
することになり、各タスク毎の援助の数は、そのタスクが実行されることになる
ネットワークサービスの数に対応する。
本発明の目的は、システムに関する専門知識をより有用な形態で提供することに
よりシステム管理を容易にすることである。
及匪立皿塗
一般に、本発明は、特定のサービスに必要な要件を宣言モデルという形態で利用
可能となるように指定し、次いで、かかるモデルについて実行可能な一般的な推
論動作に関して管理タスクを規定することにより、前記目的を達成する。その結
果として、各サービスモデルを各タスクにより使用することができる。
ここで使用するように、「宣言モデル」という用語は、サービスの概念的記述を
意味するものであり、そのモデルの意味は、そのモデルが受ける可能性のある処
理のいかなる形態からも独立したものである。従って、1つのモデルは(実行型
モデルの場合に典型的であるのとは対照的に)その使用方法に関して順序、反復
、または選択の表記を有さす、その代わりに、このモデルは、論理演算子(AN
D、 OR,NOT等)を用い、また必要に応じて再帰を用いる。勿論、順序、
反復および選択の概念を、関連するサービスのモデル化の一部としてモデル中で
表現することもできるが、これは、モデルの宣言的な性質に影響を与えるもので
はない。
ここでいうタイプのモデルは、管理される現実のネットワークをシミュレートす
る「仮想ネットワーク」がその現実のネットワーク中の各エンティティの「モデ
ル」から構築される国際用jiWo 92105485 (Cabletron
System)に開示されているものとは基本的に異なる。
「仮想ネットワーク」もCabletron Systemの個々の「モデル」
も本発明の場合のようにネットワークサービスの記述を意図するものではなく、
更に、Cabletronの「モデル」は現実の世界の項目と一対一の対応関係
を有しており、これもまた本発明とは異なっており、本発明では、現実のシステ
ムにおけるサービスの実例が存在しないのか、また1つあるいはそれ以上存在す
るのかにかかわらず、単一のサービスモデルが1つのサービスの要件を規定する
。
一層圧式にいうと、本発明の一態様によれば、互いに協働する物理エンティティ
および論理エンティティからなるコンピュータシステムにより提供することが意
図された少なくとも1つのサービスに関連する少なくとも1つの管理タスクを実
行するためのシステム管理方法が提供される。この方法は次の諸ステップからな
る。即ち、前記の少なくとも1つのサービスの各々について、そのサービスが利
用可能となるために満たす必要のある要件を特定の前記タスクのいずれからも独
立して指定する個々の宣言モデルを提供し、前記要件が、必要とされるエンティ
ティとその相互関係とに関して記述されており、
前記の少なくとも1つの管理タスクの各々について、対応するタスクの実行を、
特定の前記モデルのいずれからも独立した態様で、前記モデルのいずれについて
も実行可能な一般的な推論動作に関して制御する、タスク制御手段をそれぞれ提
供し、前記の少な(とも1つのサービスに関連する前記の少なくとも1つの管理
タスクを、その管理タスクに関連する前記タスク制御手段の制御下で、対応する
宣言モデルについて推論動作を行うことを含む処理により実行する、
というステップからなる。
好適には、前記の各タスク制御手段は、対応するタスクを実行するために推論エ
ンジンの動作を制御する個々のタスクプログラムを有し、同一エンジンが、処理
すべきモデルにかかわらず各タスク毎に用いられる。しかし、前記タスク制御手
段を推論エンジンの機能アーキテクチャ内で実施するよう構成し、これによりそ
のエンジンを対応するタスクに適応させることが可能である。この場合には、実
行すべき各タスク毎に推論エンジンがそれぞれ存在することになる。また、共通
の推論エンジンの機能アーキテクチャが実行すべきタスクにより決定されるが、
更に、プログラムされた態様でその機能を実行するタスクプログラムが存在する
、という中間的な方法力く可能である。この方法は、推論エンジンが、標準的な
)1−ドウエア上でソフトウェアルーチンにより一般に実施され、それを構成す
る諸ルーチンの相互関係を変更することにより、その推論エンジンの機能を変更
することができるようになっている、という事実より、実施可能なものである。
本発明のシステム管理方法は、多数のサービスと実行すべき多数のタスクとが存
在する場合に特に有利なものである。これは、サービスおよびタスクの各対を実
行するために特殊なプログラムを書く必要がないからである。しかし、この方法
はまた、提供すべきサービスが1つしか存在しない場合、または、実行すべきタ
スクが1つしか存在しない場合にも適用することができる。
一般に、管理すべきコンピュータシステム(典型的にはコンピュータネットワー
ク)は、サービスの複数の例示をサポートすることが可能なものであり、そのサ
ービスに関連する管理タスクを実行するステップには、サービスの例示を識別し
、次いで適当なサービスモデルを用いて、その識別されたサービスの例示に関連
する情報を推論する。
好適には、サービスの宣言モデルは、エンティティを相互に対応付ける階層構造
の宣言ステートメントからなり、その階層中の下位のステートメントは、その階
層中の上位のステートメントによって指定される要件を詳述する働きをする。
これらのステートメントは、要件を直接指定するステートメントに加えて、エン
ティティを相互に対応付けし特定の要件が満たされたか否かを推論するのに用い
ることのできるステートメントを含むことができる。適当な場合であれば、1つ
のモデルを他のモデルと対応付けて、1つのモデル中で記述され特定のエンティ
ティに関連するステートメントが、同じエンティティと関連して他のモデルで使
用できるようにすることができる。
1つのサービスモデル中で指定された要件は、複数の組、即ち、必須の技術的要
件からなる組や、例えば特定のファイルに使用される名称を記述する動作方針要
件からなる組に有効に分割することができる。
好適には、管理タスクの実行を容易にするために、システムとの対話を介して更
新されて所望の情報を提供することができる事実ペースを参照することにより、
システムに関する情報を得ることができる(後者の場合、その所望情報は、特定
の情報項目を引き出すよう設計された照会を介して直接的に確認することができ
、また、対話により実行される特定のシステム機能の結果からの推論により間接
的に確認することができる)。
このシステム管理方法は、コンピュータシステムを不変に維持するタスク(例え
ば障害診断タスク)だけでなく、(エンティティの追加または除去により、また
は、少なくとも2つのエンティティ間の相互関係を修正することにより)何らか
の態様でシステムを変更することを必要とするタスク(特定ユーザのためのサー
ビスのインストール等)にも適用することができる。
本発明の別の態様によれば、互いに協働する物理エンティティおよび論理エンテ
ィティからなるコンピュータシステムによって提供することが意図された少なく
とも1つのサービスに関連する少なくとも1つの管理タスクを実行するためのシ
ステム管理装置が提供される。この装置は、
前記の少なくとも1つのサービスの各々について、そのサービスが利用可能とな
るために満たす必要のある要件を特定のタスクのいずれからも独立して指定する
宣言モデルであって、前記要件が必要とされるエンティティとその相互関係とに
関して記述される、前記宣言モデルと、
前記宣言モデルに関して推論動作を実行する推論エンジン手段と、前記の少なく
とも1つの管理タスクの各々について、前記推論エンジン手段による対応するタ
スクの実行を、特定のモデルのいずれからも独立した態様で、一般的な推論動作
に関して制御する、それぞれのタスク制御手段と、
1つの特定のサービスに関連して1つの管理タスクを実行させる手段であって、
その実行が、その管理タスクに関連する前記タスク制御手段の制御下で、対応す
る宣言モデルについて前記推論エンジン手段を動作させることにより行われる、
前記実行手段とを備えたものである。
好適には、このシステム管理装置は更に、そのシステムに関する事実を格納する
ための事実ベース手段と、システムと対話を行ってそのシステムに関する事実を
直接的に確認しまたは前記対話の結果からの推論を介して確認する対話手段とを
有し、推論エンジン手段が、前記管理タスクの実行中に動作して事実ベース手段
を参照することにより、前記要件がそのシステムにより満たされているが否がを
チェックし、事実ベース手段にある事実が不十分である場合には、前記対話手段
にシステムとの対話を行わせて更に事実を引き出すことにより、前記要件がその
システムにより満たされているか否かをチェックする。
図面の簡単な説明
本発明を実施したシステム管理装置を、本発明を制限することの無い実施例によ
り添付図面に関連して説明する。
図1は、エンドユーザ側から見たコンピュータシステムを示している。
図2は、システム管理者側から見たコンピュータシステムを示している。
図3は、本発明を実施したシステム管理装置の概略図であり、タスクプログラム
およびサービスモデルの任意の対を示している。
図4は、図3の装置の推論エンジンの図である。
図5は、所定の1組の事実が与えられた場合におけるサービスモデルの一例に関
する図4の推論エンジンの動作を示す探索ツリーである。
図6は、図5の場合と同じサービスモデルに関する図4の推論エンンンの動作を
示す探索ツリーであるが、照会を用いて事実を引き出している。
図7は、互いに対応付けされた関係を有する3つのエンティティタイプの規定を
含むサービスモデルの形式を示す図である。
図8は、サービスモデルエンティティとモデル間の移入(importaLio
n)との間の引き継ぎを示す図である。
図9は、ネットワークのユーザに印刷スプーラサービスを提供する際に含まれる
機能の図である。
図10は、図9のサービスをサービスモデルおよびエンティティに関して如何に
表現することができるかを示している。
図11は、管理されているコンピュータシステムから情報を得るのに使用可能な
照会の形式を示す図である。
図12は、管理されているコンピュータシステムのユーザについての情報を与え
るリターンストリングの構文解析を示している。
本発明の最良の実施態様
凰週
図1は、ブリッジ13を介して結合されたLANセグメント12を含むネットワ
ークを介して相互接続されたワークステーションIOおよび周辺機器II(例え
ばプリンタ)からなるコンピュータシステムを示すものである。図1は、このシ
ステムをエンドユーザ側から見た図である。ワークステーション10で作業を行
うエンドユーザ14は、コンピュータシステムへのログイン、特定アプリケーシ
ョンプログラムの実行、印刷スプール処理、電子メール、およびログオフといっ
た1つ以上のサービス15の提供をシステムに希望する。
図2は、図1と同じコンピュータシステムを、同システムの前記ワークステーシ
ョンlOで作業を行うシステム管理者16の側から見た図である。このシステム
上でエンドユーザに利用可能な各サービス毎に、システム管理者16は、そのサ
ービスのインストール、そのサービスの構成、障害の診断、障害の修正およびサ
ービスの除去等を含む多数のタスク17を実行できるように準備しなければなら
ない。
このために、システム管理者のワークステーションは、各サービスに関連して各
タスクを実行するために、そのワークステーションを管理システムに変更する適
当なソフトウェアを実行する。従来のシ、ステムでは、この管理システムは、サ
ービスおよびタスクの各対毎に固有のプログラムを書き込む必要があった。以下
で説明する本発明を実施した管理システムは、その必要性を無くし、各タスクお
よび各サービスの別々の特性化しか必要としないものである。
本発明で実施したシステム管理装置の一般的形態を図3に示す。
本装置の主な構成要素は、1組のタスクプログラム21(実行すべきmのタスク
のそれぞれに1つずつ)と、1組のサービスモデル22(このコンピュータシス
テムにより提供されるnのサービスのそれぞれに1つずつ)と、このコンピュー
タシステムのワークステーションlOと適当なソフトウェアにより構成される管
理システム20である。
各サービスモデル22は、関連するサービスの宣言モデルであり、サービスが利
用可能となるために満たされる必要のある要件を指定する。かかる要件は、この
コンピュータシステムの物理エンティティおよび論理エンティティに関して記述
される。サービスモデルは、それを異なる管理タスクに使用する方法に関する情
報を含んでいない。各サービスモデルには、照会および動作28が対応付けられ
ている。照会は、関連するサービスについて指定された要件に関する情報をコン
ピュータシステムとの対話により如何にして得ることができるかについての情報
を詳述する。また、動作は、あるタスクの実行に必要となる可能性のあるモデル
化されたサービスに関連する手続きの実行を開始させる方法を詳述する。
管理システム20は、推論エンジン25と事実ベース26と対話マネージャ27
とからなる。タスクプログラム21のうちの1つの制御下でいずれかの特定タス
クを実行する場合には、推論エンジン25は、そのタスクが実行されている関連
するサービスのサービスモデルを使用してそのサービスに関する要件を識別し、
次いで利用可能となるあらゆる情報を使用して、それらの要件から(特に、それ
らの要件が既に満たされているか、または満たされる必要があるかについて)あ
る種の推論を行う。事実ベース26は、管理システムにとって既知の事実であり
、したがって推論エンジン25が直接利用することのできる事実を格納する。所
望の事実が事実ベース26に存在しない場合には、推論エンジン25は、関連す
るサービスモデル22に対応付けされた照会を用いて対話マネージャ27にコン
ピュータシステムとの対話を行わせて、直接的にまたは経験から間接的に関連す
る事実を得る。更に、タスク(例えば、サービスのインストールまたはリムーブ
)を完了させるために、管理されているシステムを修正する必要がある場合には
、推論エンジンは、対話マネージャ27を介して、関連するサービスモデル22
に対応付けされた適当な所定動作を開始させるよう動作することができる。
一例として、疑似自然言語を用いて、ユーザのログインサービスに関するログイ
ンサービスモデルは、4つの要件が満たされた場合にそのサービスがユーザに利
用可能となることを指定できる。
「名称」と称するユーザに関するログインサービスは、システムがこの名称によ
るユーザの記録を有しており、このユーザがパスワードを有しており、このユー
ザがホームディレクトリを有しており、このユーザがそのディレクトリへの実行
アクセスを有している、という場合に0にである。
1人の特定ユーザに関するログインサービスの診断を実行することが所望される
場合には、診断タスクプログラムが、推論エンジアン25に、ログインサービス
モデルを調べさせ、満たされなければならない全ての要件を識別させる。例えば
、r JohnJと称するユーザがログインできない場合、そのモデルは、その
名称を有するユーザをシステムが知っていなければならず、そのユーザがパスワ
ードを有していなければならず、そのユーザがホームディレクトリを有していな
ければならず、そのユーザがそのディレクトリへの実行アクセスを有していなけ
ればならない、ということを記述している。また推論エンジン25は、診断タス
クプログラムの制御下でこれらの要件のうちのどれが満たされていないのかを確
認する。
システムに新規ユーザを追加したい場合には、「ユーザ追加」タスクプログラム
が、推論エンジン25に、ログインサービスモデルを調べさせて、この新しいユ
ーザがログインするために如何なる要件を満たさなければならないかを識別させ
る。次いで、かかる要件をシステム上の適当な動作により満たすことができる。
タスクプログラム、サービスモデル、照会および動作の全ては、一般に、高級言
語で書かれ、オブジェクトコードへとコンパイルされて、実行されることになる
。
推論エンジン
推論エンジン25の一般的形態を図4に示す。概念的には、この推論エンジンは
、それに供給されるタスクプログラム21に従ってその推論エンジンを制御する
タスク制御層30と、検査機構(verifier)31と知識アシミレータ3
2と定理プルーバ33とからなるプルーフシステムと、当業者にはいずれも周知
のPrologまたはSmalltalk等の適当な言語により提供される論理
支援層(統合化、述語、および変数を提供するもの)とから構成されている。
前記プルーフシステムに関し、その検査機構31は、真であることを証明できな
いものは偽であるとみなされる閉じた世界の(closedworld)演鐸シ
ステムを用い、照会を使用することはない。したがって、検査機構31は、現在
の知識の状態が与えられた場合に真となり得るものを発見するのに有用である。
知識アシミレータ32は、成る形態の差熱的三段論法(abduction)を
用いて、照会の結果から生じる観測を説明するのに十分な、−貫した事実ベース
への拡張を見つけ出す。主定理プルーバ33は、やはり照会を考察する、開いた
世界の演鐸システムであり、その推論エンジンの核である。タスク制御層30の
役割は、実行中のタスクについて所望される結果を生成するような態様でプルー
フシステムの各要素の動作を統合することである。
しかし、一般には次のように述べることができる。即ち、定理プルーバ33は、
事実ベース中の現在利用可能な事実に基づいて特定の定理を証明することができ
ない場合に、照会を参照して所望の事実を提供するものを見つけ出すように知識
アシミレータ32に要求し、その照会が実行されると、知識アシミレータがこの
照会の結果がら可能な限り多くの情報を抽出し、この新しい情報を、定理プルー
バ33による使用に備えて事実ベースに格納する。
サービスモデル22中で与えられ事実ベース26中の利用可能な事実に関連する
規則に基づいて定理プルーバ33が行う推論の態様の簡単な一例を次に説明する
こととする。
各サービスモデルは、そのモデルに関連する1つ以上のエンティティに関するス
テートメントを含み、一般にががるステートメントが使用されて、例えば成る条
件が満たされた場合に成るサービスエンティティが利用可能となることを指定す
る、多数の規則(条件的な関係)が形成される。したがって、図4のサービスモ
デル22を参照すると、そのサービスモデル22には、3つの規則へと編成され
た貞の値を有するステートメントA〜Hが存在する。
BまたはCであればA
DかつEかつFであればB
GまたはI(であればC
ステートメントΔは、ステートメントBまたはステートメントCが真であれば関
連するサービスが利用可能であることを表す。次いで上記の2番目の規則は、ス
テートメントBが真であるために満たすべき条件を規定し、3番目の規則は、ス
テートメントCが真であるための条件を規定する。
一例として、D、F、Gが真であるがE、Hが偽であるという事実を事実ベース
が含んでいる状況をまず考察する。上記の規則とこれら事実とから、主定理プル
ーバ33は、モデル22により表されるサービスが利用可能であるか否か、即ち
、Aが真であるが否かを演鐸することができる。この証明は、次のように進めら
れる(図5参照)。
(1)八に関する事実は存在しないが規則が存在するので、解の探索は2つの部
分解ノードに展開される。
(2)Bを考察する。この場合も事実は存在しないが関連する規則が存在するの
で、探索が再び展開される。
(3) D、E、、Fを考察する。Dに関する事実があるので、次の部分解はノ
ードE、Fである。
(4)E、Fを考察する。Eが偽であることが既知なので、この分岐は失敗であ
る。
(5)次の未展開の部分解ノード(即ちC)に戻る。Cに関する事実は存在しな
いが規則が存在するので、探索が展開される。
(6)Gを考察する。これは真であることが既知なので、解が見つかっている。
この−例は、解空間にわたる簡単なdepth−first探索に過ぎないこと
に留意されたい。勿論、rbest firstJ戦略等の他の探索戦略もまた
可能である。
次に、事実ベース26に事実が存在しない場合を考える。しかし、1組の照会が
モデル22に対応付けられて2つの照会Q1.Q2が提供される。ここで、照会
Q1は、D、Eに[有効な(goodfor)J (即ち、D、Eの値を与える
)ものであり、照会Q2は、F、G、!−1に「有効な」ものである。この場合
、証明は次にように進められる(図6参照)。
(1)Δの証明は、部分解ノードD、E、Fに達するまで上述と同様に開始され
る。この場合、Dに関する事実は存在しないが、照会Q1が存在する。したがっ
て、照会Q1が実行され、これにより、「Dは真である」という事実と「Fは偽
である」という事実が事実ベースに入れられて、次の部分解ノードの作成が可能
になる。
(2)E、Fを考察する。この場合には、事実ベース中にはEに関する事実が存
在する。この事実(Eは偽である)により、この分岐は失敗することになる。
(3)次の未展開の部分解ノード(即ちC)に戻る。探索は上述のように続行さ
れる。
(4)Gを考察した場合、それに関する事実は存在しないが、照会Q2が存在す
る。これが実行されると、「Fは真である」、「Gは真である」、「Hは偽であ
る」という事実が事実ベースに加えられ、これにより解が得られる。
適当な照会の選択、および、照会の結果からの情報の抽出は、検査機構31およ
び知識アシミレータ32を必要とするものである。
勿論、上記の例は非常に簡単なものであるが、推論エンジン25の一般的な動作
を、モデル22、照会23、および事実ベース25に関連して説明するのに役立
つものである。
サービスモデル
サービスモデルは、システムにより提供されるサービスを、そのサービスに関連
するシステムエンティティと、かがるエンティティ間の関係とに関して指定する
ものである。
「エンティティ」は、それについて事実を表明することのできる項目であり、整
数、ファイル、動作モード他の論理オブジェクトに対応し、または、マシン、プ
リンタ他の実世界の物理オブジェクトに対応することができるものである。多数
の基本エンティティタイプまたはコアエンティティタイプが、整数、キャラクタ
、ストリング等のように予め適宜に規定されて、いずれのサービスモデルでも暗
黙に利用可能である。次いで、一層高レベルのエンティティタイプが適当なサー
ビスモデル中で規定されて、かかるエンティティタイプの各特性が、コアエンテ
ィティ間の関係および/または以前に規定された一層高レベルのエンティティ間
の関係に関して指定される。各エンティティタイプおよびそれに関連する特徴付
は関係を、ここでは一般にエンティティ関係グループ(または簡単にERグルー
プ)と称することにする。
「関係」は、エンティティ間の基本的な無条件の関係、または、1つ以上の要件
が満たされた場合にのみ真となる導出された条件付きの関係である(かかる条件
は、それ自体がエンティティ間の関係に関して指定されていることになる)。1
つの関係は、少なくとも1つのエンティティを識別し、特定の1つの関係述語を
指名する。
一般に、成る関係にあるエンティティは、特定のエンティティタイプの変数に関
して指定されることになる。ががる変数は、そのサービスモデルが推論エンジン
により使用される場合にのみ、その値が設定される。しかし、特定のエンティテ
ィの用例(instance)を1つの関係(特定のストリングのエンティティ
を構成する名称等)に直接書き込むことが可能である。
1つの関係を規定する場合には、その関係中の1つのエンティティの1つの用例
がそれと同じ関係中の他のエンティティの2つ以上の用例と関係し得る否かを指
定するのが有用である。この関係の特性は、その「基本性(cardinali
ty)Jと呼ばれる。例えば、1つのディレクトリは多数のファイルを含むこと
ができるが、各ファイルは1つのディレクトリにしか入ることができず、ファイ
ルおよびディレクトリを対応付ける関係のいずれかにおいてこの特性を指定する
のが有用である。
「直接(straightforward)モデル」は、例えば、サービス自体
に対応するエンティティと、1組の条件が満たされた場合にそのサービスエンテ
ィティが「OK」となる(即ち機能する)という趣旨の関連する導出された関係
とからなり、かかる条件は、そのサービスの提供に係わるエンティティ間の特定
の関係である。これらの後者のエンティティに関連する関係により、そのサービ
スエンティティが「OK」となるための条件が満たされたか否かについて判定を
行うことが可能となる。
図7は、ファイルを削除するための想像上のサービスについての単純なサービス
モデル50を一例として示すものである。この例示的なモデルは、実際上期待さ
れるものよりかなり簡略化され、サービスモデルに含まれる概念の例証を助ける
ためにのみ示すものである。
更に、含まれる関係の基本性が簡略化のために省略されている。本明細書では、
エンティティタイプはそのイニシャルを大文字とし、また対応する変数は小文字
で始まり、そのエンティティタイプとほぼ同様の名称を有するものとする。実際
に、変数のタイプは、その変数が用意に識別できる場合を除き、その変数が最初
に発生した際に宣言される。ある関係内では、エンティティ(1つの変数により
表されるものまたは特定の用例として指定されたもの)は角括弧で囲まれ、エン
ティティの値が重要でない場合には、括弧中に下線記号「立が含まれる。論理演
算子AND、OR,NOTは、それぞれr、J 、 r;J 、 r〜」により
表される。
図7のサービスモデル50は、そのモデルを識別するヘッダ51と、次の3つの
エンティティタイプを規定する3つのERグループ52,53.54とからなる
。
DeleteJile ・・・サービス自体を表すものUser ・・システム
が既知のユーザを表すものFile ・・システム上のファイルを表すものスト
リングおよび整数のコアエンティティもまた使用される。
サービスエンティティDeleteJileは、ERグループ52の規定55で
宣言される。規定55には次の2つの関係が対応付けされている。
サービス(変数“Delete file’で表されるもの)の用例が、所与の
ファイル(変数’file’で表されるもの)に関して所与のユーザ(変数’
user’で表されるもの)についてOKとなるべき場合に満たす必要のある要
件57〜59を記述する既導出関係56゜変数’ uSer’およびfile゛
は、それぞれタイプUserおよびFileのものであり、そのように、特定的
に宣言される。
このサービスに対する使用料(ここではストリング’ FREE’で指定されて
いる)を与える基本関係60゜
第2の関係60は、サービスの機能の状態の決定には使用されないが、他の目的
にとって有用な関係を宣言するものである。
関係56の本質は、変数’ user’によって表されるユーザに対して、変数
’file’によって表されるファイルに関し、そのユーザがそのファイルを所
有しく条件57)、他にそのファイルを使用しているものがなく(条件58)、
そのファイルの法的状態が明示的にN0N−RETENTION(非保存)′で
ある場合に、ファイル削除サービスが利用可能になる、ということである。それ
ら条件が適用される際に、その様々な条件における対応する変数に同じ値が設定
される。それらの値は、既導出関係56の第1行中の変数に既に設定されている
ものである。
ERグループ53は、エンティティタイプUserを規定し、各ユーザ(変数’
user’により表されるもの)が整数形態のユーザアイデンティティを有す
ることを指定する1つの基本関係61を有している。
ERグループ54は、エンティティタイプFi leを規定し、3つの基本関係
62.64.65と1つの既導出関係63とを有する。関係62.64.65は
、それぞれ、1つのファイル(変数’file’により表されるもの)に属する
ものであり、そのファイルの所有者を識別するための整数と、その所有者以外の
ファイルのユーザの現在の数を指定する整数と、そのファイルの法的保存状態を
指定するストリングとに関するものである。関係63は、所与のファイルが所与
のユーザにより所有されるために満たす必要のある2つの条件を記述する。即ち
、そのファイルの所有者IDがそのユーザのユーザIDと対応していなければな
らない。この対応関係は、整数変数’ uid’を用いてユーザにより指定され
、その整数変数は、関係63の適用中に、推論エンジンが要件66.67を形成
するステートメントの論理積を証明しようとしてファイルの所有者IDを与える
関連事実を見つけ出してそれを要件66に適用する際に、1つの値が設定される
ものであり、これにより、’ uid’の値が設定されて、条件67がテスト可
能になる、という点に留意されたい。
1つのサービスモデルに含まれる関係中で指定される変数は、(例えばシステム
マネージャによる)1つのタスクの開始時に明示的に割り当てられた値、または
事実ベースを参照して割り当てられた値、または照会システムを用いて割り当て
られた値を有する。
システムの同じオブジェクト(例えばファイルシステムマネージャ)により提供
される1組のサービス等の多数の密接関係にあるサービスが存在する一層高性能
のモデルでは、かかる各サービス毎に別個のエンティティを有するのではなく、
関連する全てのサービスに概念的に及ぶ1つの一般的サービスエンティテイを規
定することが有用である(このエンティティは、このシステムの関連サービスの
提供者のオブジェクトと同一と考えることができる)。次いで、この一般的サー
ビスエンティティが、対応する関係(通常は関連する特定サービスが利用可能に
なるための条件を記述する既導出関係)を介して各々の特定サービスと対応付け
される。したがって、上記のファイルを削除するサービスの例の場合、一般的サ
ービスエンティティタイプ”File 5ervice”は、ファイルの関係す
るサービスを全て包含するように規定することができるものである。
[file 5ervice] delete−file for [User
user] on [File fileコ l5Ok IF:
Efilel is−owned by [user]。
これは、変数”File−service”により表されるエンティティタイプ
Fi]c 5erviceの用例は、”IF”の後に指定された条件が満たされ
た場合に、変数”file”により表されるファイルに関して変数”user”
により表されるユーザにファイル削除サービスを提供することができる、という
ことを述べているものと解釈することができる。
好適には、2つの反復低減(re etition−reducin )機構が
、エンティティタイプと関係との規定の不必要な反復を防止するために設けられ
、そうでない場合には、その反復が実際のサービスのモデル化のいずれにおいて
も発生する可能性がある。これらの機構は、次の通りである。
1つのエンティティが他のエンティティの関係を引き継ぐことができるようなエ
ンティティタイプ間の「引き継ぎ」。
1つのモデルが他のモデル中のエンティティを参照できるようにする「移入」。
これら機構について、図8を参照して以下で更に考察する。
図8は、旧、 M2. M3. M4という名称を付した4つのモデル70を示
すものである。モデルM1は、El−E6と名称を付したエンティティタイプに
それぞれ関係する6つのERグループ71を含むものとして示されている。モデ
ルM2は、Elという名称を付したエンティティタイプに関する1つのERグル
ープ71を有するものとして示されている。モデルM3は、EIPという名称を
付したエンティティタイプに関する2つのERグループ71を有するものとして
示されている。各エンティティタイプを特徴付ける関係は明示されていない。
図7に関連して既に説明したように、1つのモデルの1つのERダグループ中関
係は、同じモデル中で規定されたタイプのエンティティを参照することができる
。第2のエンティティタイプに対応付けされたERグループの関係内から第1の
タイプのエンティティへの参照を、ここではrRI RJ参照(”Rcfcrc
ncc in Re1ation”の略)と称する。図8は、エンティティタイ
プElに対応付けされたERグループの関係からタイプE2のエンティティへの
RIR参照を示すものであり、この参照を矢印で示す。
同じモデル中のエンティティタイプはまた、2つのエンティティ間の引き継ぎ関
係として指定を行うrlsAJ参照により対応付けされ、これ【こより、1つの
エンティティに対応付けされた関係が他のエンティティにより引き継がれる。成
るエンティティが、別のエンティティに対応付けされた関係を引き継ぐ場合、こ
れは、前者のエンティティタイプの規定中で、典型的にはrlsAJステートメ
ントにより宣言される。モデル旧のエンティティタイプE4. E3間の■SΔ
関係を図8に示す。引き継ぐ側のエンティティを「サブエンティティ」と称し、
関係が引き継がれる側のエンティティを「スーパーエンティティ」と称する。引
き継ぎは、幾つかのレベルにわたって発生して階層をなす引き継ぎを構築するこ
とができる。
最も実際的なシステムでは、多数のサービスモデルが規定されることになり、モ
デルの境界を越えて拡張するRIR参照およびISA参照を実行可能にすること
が有用であり、これにより、共通するエンティティタイプと関係との規定の重複
を防止することができる。
かかるモデル境界を越えることは、上述の移入(import)機構により可能
になり、この機構により、他のモデルにより参照される任意のモデルが、その前
者のモデル中のモデル名の直後のセクションで明示的に宣言される。したがって
、図8のエンティティタイプE5に対応付けされたERグループ71中の成る関
係が、モデルM2中に既に規定されているタイプE7のエンティティにRI R
参照を行いたい場合には、モデノい(2がモデル旧の「移入」セクション72で
既に宣言されていれば、それを行うことができる。同様に、モデル旧のエンティ
ティタイプし6は、モデルλ13がモデル旧のセクション72で宣言されていれ
ば、IsΔ参照を用いて、モデルM3のエンティティタイプE8に対応付けされ
た関係を引き継ぐことができる。
図8の例において、モデルλ13のエンティティタイプE8は、モデル旧のエン
ティティタイプE6のスーパーエンティティであるばかりでなく、モデルM3の
エンティティタイプE9のサブエンティティでもあり、更に、モデルM4のエン
ティティタイプEIOに対してRIR参照を行う。勿論、このRIR参)1qは
、モデルに+4がモデルM3のセクション72て適当に宣言されることによりモ
デルM3に移入されることを必要とする。
「移入」機構は、モデル間の引き継ぎを提供するよう動作するものではなく、引
き継ぎの階層中に構造化させることのできるエンティティにすぎない、というこ
とに留意されたい。
コアエンティティタイプ(整数、キャラクタ、およびストリング)は、他の全て
のモデルに移入されてそれらモデルでのコアエンティティの使用を可能にする「
支援」サービスモデルの一部をなすものと考えることができる。これらのエンテ
ィティタイプは非常に広範に使用されるので、この移入は、明示的な移入の宣言
を必要としないものとみなされる。
ここで、次のような表記を有するBNF型の言語を用いてサービスモデルの正式
な説明を行う。
・・・[によって規定される」を意味する。
* ・・・「関係する項目の用例が1つ以上存在する可能性がある」を意味する
。
1 ・・ORを意味する。
(XYZI) ・・・項目XYZ ORは項目が無いことを意味する■、モデル
Model ::= Modelhead (ImportsIXERgrou
p)本Modelhead ::= ’MODEL’ model nameI
mports ::= (’IMPORT’ model name)木ERg
roup ::= Entity(Relation)*Modelname
::= String2、エンティティ
Entity ::= CoreEntity l ModelEintity
ModelEntity :+:’ENTITY’entityName(’I
SA’ superEntityName l)entityName ::=
stringsuperEntityName ::= string3、関
係
Re1ation ::= Ba5icRelation l Derived
RclationBasicRelation ::= ’B八へIC’ re
lationlleadcardinality(explanation 1
)relationllead ::= typeinfo (relatio
nName typeinfo)*(relationName 1)
typeinfo ::= ’ビ((modelName ’、’ l) en
tityName 1)variable ’ ]’
cardinalHy ::= ’O’ 1’M’explanation :
:= ’EXPL八N八Tへ0へ’(string 1 typelnfo l
option)*option ::= ’(’(string 1) ’ビ
(string l) ’)’注、関係の”explanation”は、シス
テムが成る事実の疑似自然言語【こよる表現を出力したい場合に使用される。
DerivcdRelation ::: tlead’lF’BodyIle
ad ::= ’DERIVED’ relationtlead cardi
nality(explanation 1)
[1ody ::= expressionexpression ::= a
ndExpression (’;’andExpression)*andE
xpression ::= expelement(’、’expeleme
nt)本expelement ::= (’expression’)■’
〜’ expelement 1rclationllead
モデルの構造化
実際のコンピュータシステムの場合、印刷スプール等の任意のシステムサービス
は、特定のシステムオブジェクトに提供される多数の内部システムサービスから
なるものとして最も良好にモデル化される。このような場合のサービスモデルの
構造化は、一般に大なり小なりそのシステムの物理的な世界の構造を反映するこ
とになる。
例えば、マシン81(PSクライアントマシン)で作業中のユーザ8゜(PSユ
ーザ)が、ネットワーク84(ネットワーク)を介してマシン81とプリンタ8
2(プリンタ)とに接続された印刷サーバ83(PSサーバマシン)を用いてプ
リンタ82上でファイルを印刷しようとする、図9に示すプリンタスプーラサー
ビスのモデル化について考察する。
第1ステツプは、どのオブジェクトが他のどのオブジェクトに何のサービスを要
求しているかについての分析を実行することである。
同図から分かるように、ユーザ80は、”canPrint[fileコon[
prtName]”と呼ばれる「サービスJSIを必要とする。このサービスの
目的はその名称から明らかである。ユーザのマシン81がこのサービスSlをユ
ーザ80に提供するためには、このマシンは次の条件を満たさなければならない
。
1、それ自体がそのサービスを提供するように内部的に適切に構成されている。
2、(印刷サーバ83を識別するために)何れかの場所から”canFind[
pSServer]^ddr”と呼ばれるサービスS2を得ることができる(こ
の場合、サービスS2は名称サーバ85により提供される)。
3 (指名された印刷サーバ83にネットワークを介してコンタクトできるよう
に)何れかの場所から”hasRou LeTo[pSServerコ”と呼ば
れるサービスS3を得ることができる。
4、何れかの場所からサービスS4″print[fileコon[prtNa
meコfrom[h。
S tNamcドを得ることができる。
上記項目のうち、最後の「サービス」だけがファイルの印刷に直接関係している
。
サーバマシン83がマシン81にサービス54”print[fileコon[
prtName 3from[hostNamc]”を提供できるためには、次
の条件を満たさなければならない。
1 それ自体がそのサービスを提供するように内部的に適切に構成されている。
2、何れかの場所からサービスS5”hasRouteTo[printer]
”を得ることができる。
3、何れかの場所からサービスS6”prinL[psFile]”を得ること
ができる。
図10は、プリンタスプーラサービスのコアの考え得る1つのモデル構造を示す
ものである(便宜上、ネットワーク84と名称サー、<85とプリンタ82との
モデル化の詳細は省略する。実際に、これらのオブジェクトにより提供されるサ
ービスのモデルは、プリンタスプーラサービス等の高レベルのサービスのモデル
化に先立って行われていることになる)。
図10のモデル構造では、ユーザのマシン81 (rr’sクライアントマノ刈
)により提供されるサービスS1は、そのサーヒスSl自体(こ対応するエンテ
ィティタイプ91 (rPSクライアントサービス」)を含むサービスモデル9
0(ここでは簡略化のため同じ名称を付す)として示されている。このサービス
エンティティタイプ91は、典型的には、サービスSlが利用可能になるために
満たさなければならない条件を記述する対応付けされた既導出関係を有し、かか
る条件は、ユーザのマシン81がサービスS1を提供する場合の上述の条件に対
応するものである。サービスモデル90はまた、ユーザ80(PSクライアント
)のエンティティタイプ92を含む。これは、一般にユーザのIDによって決ま
るサービスエンティティ91に対応付けされた条件が存在するからである。
印刷サーバ83(PSサーバマシン)により提供されるサービスS4は、図10
のモデル構造では、サービス84自体に対応するエンティティタイプ94(PS
サーバサービス)を含むサービスモデル93として示す。
このサービスエンティティタイプ94は、典型的には、サービスS4が利用可能
になるために満たされる必要のある条件を記述する対応付けされた既導出関係を
有し、かかる条件は、サーバマシン83に関連して上述したものに対応するもの
である。また、サーバマシン83の構成に関する条件を詳述するために、別のエ
ンティティタイプ95(Aサーバエンティティ)およびエンティティタイプ96
(PSサーバマシン)が記述される。
左旦
特定のサービスが利用可能になるためにサービスモデル中で指定される条件は、
その全てがそのサービスの技術要件により決定される必要はない、ということに
留意されたい。条件は、サービスの利用可能性について設定することができ、ま
た、より一般的には、関係するエンティティの状態について設定することができ
、これは局所的な方針または会社規模の管理方針によって決定される。したがっ
て、ユーザのホームディレクトリがユーザの名称で呼び出される局所方針が存在
し得り、かかる方針は、ログインに関する条件中に容易に組み込むことができる
(即ち、ユーザは、そのユーザの名称に対応するホームディレクトリが存在する
場合にのみコンピュータシステムにログインすることができる)。かがる方針条
件は、好適には、所与のサービスが利用可能になるために「OK」になる必要の
ある方針エンティティに対応付けされたERグループにグループ化される。勿論
、成る条件が技術条件であるか方針条件であるかが常に明らかであるとは限らな
い。例えば、パスワード条件はいずれのタイプのものともみなすことができる。
照会
上述のように、各モデルには、管理対象となるシステムから情報を得ることを可
能にするための1組の照会が対応付けされている。
各照会は、1つ以上の事実に「有効な」ものであり、かかる事実が照会により識
別されて、所望の事実にとって適当な照会の選択が可能となる。
照会は、管理対象となるシステムと対話し、結果的に得られる応答を構文解析し
てトークンを得ることにより働き、そのトークンがエンティティおよび関係に関
連(=1けられる。本実施例では、対話マネージャ27が照会の実行に関する義
務履行能力を有し、その応答の意味解析が知識アシミレータ32により実行され
、このアシミレータはまた、事実ベースの更新に関する義務履行能力も有してい
る。
3つの主要な対話タイプが可能である。第1に、照会は、システムの既存情報提
供サービスを用いて、必要な情報(ただし、通常は、他の情報とパッケージされ
ており、構文抽出を必要とする)を直接提供することができる。第2に、照会は
、システムの特定の能力を実行させることができる。その特定能力は、必要な情
報を直接供給するものではないが、知識アシミレータ32が成る事実を観察され
た結果から推論することを可能にするものである。第3に、管理対象となるシス
テムの特定のマシンで実行される特定のエージェントプログラムを書き込んで、
これらのエージェントに特定の照会に対する特定の解答を提供させることができ
る。がかるエージェントは、強力な分析ツールを提供することができるが、管理
対象となるシステムにそれを追加する必要があり、これは実用的には問題があり
、したがってこの方法は好ましくない。
照会+00の一般的な形式を図11に簡単に示す。この照会100には、勿論、
固有の名称101が割り当てられる。次に、システムにより実行すべき動作が、
その照会の「コマンド仕様(commandspec)Jを構成するコマンド行
+02で指定される。その照会の残りの部分は、コマンド行102により開始さ
れた動作の結果として如何なる応答を予想し得るか、および、この応答が対象と
なるエンティティおよび関係と如何なる関係にあるかを記述する「リターン仕様
(re tu rnspcc ) Jである。
このリターン仕様は、RETLIRNとという名称を付したプロダクションの一
部においてその応答の一般的な形態(リターン行103)を与え、そのプロダク
ションはまた、完全な情報が利用可能な項目を指定するりスト104 (’co
mplctcnessPart’と称する)を含む。次いで「リターン行J 1
03が構文的に指定されて(105参照)多数のreturnParts°が得
られ、次いでそれらの’ returnParts’がエンティティと関係とに
関連付けられる(106参照)。成る照会が「有効」である事実がその照会のセ
クション+06中で暗黙に識別され、典型的には、その照会がコンパイルされる
際に、それらの事実の明示的なリストが生成される。
照会の一層正式な説明を行う前に、Unixのr/etc/passwdJファ
イルへのアクセスに用いられる’ passwd’と称される照会の一例を説明
することが有用であると思われる。この照会例の形式を以下に示す。
この照会は、
cat/etc/passwd
というコマンド行を用いる。その結果として、ファイル全体が1行ずつ返される
ことになり、その各行は異なるユーザに関するものである。1つの行の形式をユ
ーザ例″ajp’に関して図12に示す。同図から分かるように、その行は、以
下の7つの要素からなる。
name ・システム上でのユーザの名称password ・ユーザの暗号化
されたパスワードuid ・・・ユーザのID番号
gid ・ユーザのグループID番号
1nfo ・・各種の情報項目
homeDi r ・・・ユーザのホームディレクトリ5hell ・・ユーザ
のシェル
したがって、照会’ passvd’は、ユーザを上記の項目のそれぞれに対応
付ける事実に「有効な」ものである。
この例では、この照会が以下のタイプの事実に関する完全な情報を提供すること
を、RETURNに続(’ completenessspec’が指定する、
ということが理解されよう。
[User、 ] name [−]
[UserJ encryptedPassword [−][IJser ]
userld [−コ[LIser−] groupld [−コ[IJsc
r−] initialllomcDirPath [−][L]5cr−]
1nitialshcllr’athじコ各すターン行の構文は、’ 1ine
’に続くキーワードNEWの後に与えられる。この構文は、図13に関して既に
説明したパターンに続くものである。次に、°リターン部分°(この場合には’
name’ )を考えると、この例では、’ 1ine’に含まれる指定に従
い構文解析に続いてname’について導出されたストリングが、変数<nam
e>に割り当てられ、次いで、関係”[User]name[nameドに適用
されて、事実が生成される。
同様にして、リターン部分’password’、 ’uid’、 ’gid’
、 ’homeDir’。
’5hell’から事実が生成される。
QUERY passwd
COMMAND ::= ’cat/cjc/passwd’RETURN :
:: 1ine ([LIser−] name [−] & [User−]
encryptedPassvord [] & [UscrJ userld
c−]& [User ] ground []& [UserJ init
ialHomeDirPath []& [Userj 1nitialshe
llPath [−]1゜1ine ::= (NET [user] nam
e’ :’ password ’ :’ uid’ :’ gid ’:’
(info l) ’:’ homeDir ’:’ (shell l) E
OL) +。
name ::= string <name> [user] name [
namc]。
password ::= alphaNumstringじ本/、、’] <
password>[user] encryptedPassvord[pa
ssword]。
uid ::= number <uid> [UscrJ userId [
uid]。
gid ::= number <gid> [user] groupld
[gidコ。
1nfo : := alphNumstring[’ ()?、、O/〜’
I@#%−&*−4=+1[コ′ コ、homeDir ::: alphaN
umstring[’/、 −’ ] <path> [userコiniti
alllomeDirPath [path]5hell ::= alpha
Numstring[’/、−−’] <path> [userコ1njti
alshellPath [path]。
照会の一層正式な説明を次に行う。この場合も、前記照会の例を参照する。
照会の規定は次の項目からなる。
Query ::: ’QUERY’ qucryNamc variable
Declarationscommandspec returnspec d
elimiterspec commentspecqucryNnameは、
その照会を識別するために選択された単語である。
variableDeclarationsは、commandSpecで使用
するためにランタイム時に値が渡されることになる変数を宣言するのに用いられ
るものであり、次のように規定される。
variableDcclarations ::: typeInfo*co
mmandspecは、遠隔地にある装置/マシン上で実行すべきコマンドの仕
様であり、次のように規定される。
commandspec ::= ’COMMAND’ ::: ’(stri
ng lvariableName) +re turnspecは、コマンド
の実行からのリターン値の構文的および意味的な仕様を規定する。前述の例がら
ゎがるように、この部分には、リターンストリングの構文を規定する1組のBN
Fタイプの文法プロダクション(production)が含まれる。最初のp
roductionNameは、RETURNでなければならない。規定は次の
通りである。
returnSpec ::: production +productio
n ::= productionName ’ ::=’ returnLi
ne(’+’ l) ’、’
returnl ineは、各プロダクションのほとんどを形成し、主として他
のプロダクションの名称(これによりリターンストリングの階層的な分解が可能
になる)と予約語(例えば整数等の終端記号のタイプを指定するもの)とからな
る。しがし、ががるプロダクションには、何らかの関係ヘッドおよび完全性情報
が含まれる。規定は次の通りである。
ret、urnLinc ::= (returnEnclosure 1pr
oductionName1ncwObj ] returnl’arL 1
°ToEOL’ l ’EOL’ lcomplctencssPart)本r
eturnEnclosure ::= ’(’ rcturnLine (’
l’ returnLine)本 l)lnewobj ::−’NO’ t
ypeinf。
ランタイム時にNEWに遭遇するたびに、そのNEWは、新しいエンティティの
用例の作成を生じさせる。したがって、上記の例の場合、”/etc/pass
vd”の構文解析中にプロダクション”1ine”に遭遇した場合には必ず、’
User”エンティティの用例が作成されて、変数”user”に割り当てら
れる。
returnt”artは、構文解析から返されたトークンをエンティティと関
係とに対応付けて、事実ベースに加えられる事実を生成させる。
規定は次の通りである。
rcturnl”art ::= fixedRcLurn 1valueRe
turnfixedReturn ::= string (newobj 1
relationllead 1)valueRcturn ::= rese
rvedWord ((’<’ variableName ’>’ 1)rc
lationllead l )
rcscrvcdWord ::= ’number’ i’hexNumbc
r’ l’string’ (’[’ string ’]’ l) l’al
phaNumstrir+g’ (’[’ string ’]’ l) l’
filcName’ j°prjntablestring’予約語”stri
ng”および”alphaNumstring”の後の角括弧中のオプションス
トリンクにより、ユーザがこれら項目の規定にキャラクタを追加することが可能
になる。ToEOLは、パーサに現在のポイントから行末までのあらゆるものを
スキップさせる。
EOLは、このポイントで行末を予測するようにパーサに要求する。
前述した”Complctencss”は、照会の実行後に、成る項目に関する
全情報があるか否かを示す。例えば、”/etc/passvd”ファイルは、
システム上の全てのユーザに関する情報を含む。このように、この照会の実行後
には、事実ベースは全ての既知のユーザに関する情報を有する。したがって、特
定の名称のユーザが存在したことを証明するようにシステムが要求され、そのシ
ステムがこの名称のユーザが存在したことを示すことができなかった場合には、
そのシステムはその名称のユーザが存在しないと推論することができる。それは
、システムが全てのユーザに関する情報を有していることを知っているからであ
る。規定は次の通りである。
complctcncssPart ::= ’(’ relationllc
ad (’&’ rclationllead)本1)1de] 1m1ter
specは次のように規定される。
delimiterspec ::= ’DELI旧TER::= ’(’+’
l ’−’) string省略時には、照会リターンストリングパーサは、
スペースおよびタブキャラクタを用いてトークンを区切る。しかし、照会のライ
タがこの組を変更したい場合がある。上記の例は、この−例を示すものである。
即ち、プロダクション”1nfo”は、1つの情報ストリング中の1つの有効キ
ャラクタとしてスペースキャラクタを用いなければならない。1組の区切り文字
からスペースを除去することにより、それがalphaNums tringの
規定に自動的に追加されることになる。
commcn tspccは、照会のライタが照会リターンストリング中のコメ
ントに使用される表記を指定できるようにするために設けられる。
これにより、パーサがこれらの部分をスキップすることが可能となる。規定は次
の通りである。
commentspec ::= ’COMMENT’ ::= ’strin
g ’To’ string勉作
特定のタスクの完了を可能にするために実行しなければならない動作は、各サー
ビスモデル毎に、照会の場合と同様の方法で、しかし一層簡単な基本形式を用い
て、次のように規定される。
八CTl0N ・・動作の名称
COMMAND ・・・コマンド行
PRE ・・・動作に関する事前条件
F’O3T ・・・事後条件(即ち、動作の結果)INVALIDATE ・・
・動作により無効化された変数コマンド行は、影響を及ぼすべき項目の識別子と
共にシステムコマンド(例えば、Unixシステム用のtlnixコマンド)を
指定する(例えば、コマンド行は、動作を実行すべきマシンを指定するための宣
言されたタイプの変数を含む場合がある)。PREで指定される事前条件は、動
作を実行する前に真でなければならない条件である、PO3Tで指定される事後
条件は、動作の結果を規定する。動作を規定するサービスモデルに関する特定タ
スクを実行するのに適当な動作を識である。INVAl、IDATEは、動作に
より無効化された変数を識別するものである。この情報は、この無効化された項
目に依存して事実ベースから事実を除去するのに用いられる。
タスクプログラム
前述のように、各タスクプログラム21(図3)の役割は、推論エンジン25の
動作を、実行すべきタスクに適応させることである。診断タスクプログラムの一
例を、理解を容易にするために、疑似自然言語形式で以下に示す。
診断タスク
WIIILE no 5olution found D。
Theorem Prover : 5earch for 5olution
;IF more information needed THENREPE
AT find a query UNTIL Verifier: prov
epre−conditions ENDperform query;
IF query passes TIIENKnowledge As51m
1lator: assimilate query pass reason
sLSE
Diagnosis Ta5k: on query failure rea
sonsND
ND
ND
任意のサービスモデルに関して使用可能な上記タスクプログラムは、関係するサ
ービス(対応するモデルのエンティティにより表されるもの)が利用可能である
か否かについての解を探索する。この探索は、必要な条件が満たされていないこ
とが証明されるか、または、全ての条件が満たされてそのサービスが利用可能で
あることが証明されるまで、その関係するサービスエンティティに対応付けされ
ている関係で指定された全ての条件を介して進められる。解の探索を行う際に・
は、照会を用いて事実の確認を行うことができる。
この診断タスクプログラムを一層詳細に考察すると、解の探索を行うために主定
理プルーバ33(図4)が最初に呼び出される。この探索中に、必要な事実が事
実ベース26にないために定理プルーバ33が続行不能になった場合には、検査
機構31を用いて、システムから所望の事実を引き出す照会が選択される。次い
で、その選択された照会が(対話マネージャ27により)実行される。この照会
が正常に実行された場合には、その照会の結果が知識アシミレータ21により事
実ベースに同化され、次いでそのプログラムは、定理プルーバ33が新しく確立
された事実を用いてその探索を継続するようループする。しかし、その照会が失
敗した場合(即ち、正常に実行されなかった場合には)、この診断タスクが再帰
的に呼び出されて、この失敗の原因を突き止める。
診断されているサービスに問題がある場合には、上記の診断タスクプログラムは
、そのサービスが利用可能であるための条件が満たされていないことを証明する
事実に定理プルーバ33が最初に行き当たった際に終了する。事実ベースに同化
される事実が、一般に低レベルの事実であるため、この段階でのプログラムの終
了は通常は許容可能なものである。これは、サービスが利用不可能となる低レベ
ルの事実を終了ポイントが示すことになり、この事実は、一般に、関係するコン
ピュータシステム障害(資源の不在を含む)に容易に翻訳できるからである。し
かし、事実ベースが高レベルの事実を格納する場合には、診断タスクプログラム
は、サービスが利用可能でないことを証明する高レベルの事実では終了せず、そ
の事実を分解して、低レベルの事実で表される根底にある原因を導き出すことが
望ましい。これは、上記診断タスクプログラムを次の形式のループ’ Wll
ILE’に入れることにより容易に達成することができる。
WHILE failure explanation possible D
。
Diagnosis Ta5k
ND
この場合、コア診断タスクは、サービスが利用可能でないことを証明する事実の
発見時に終了する際には必ず、その事実を証明する(および事実ベース中でのそ
の存在を無視する)解を発見するように要求される。この処理は、(関係する照
会の不存在により示されるように)それ以上の説明が不可能になるまで繰り返さ
れる。
実際、上記の追加のWIIILEループが障害の説明に限定されず、任意の解の
説明に用いられる場合には、その拡張された診断タスクを用いて特定サービスに
要求される全条件(高レベルおよび低レベル)についての完全なチェックを提供
することができる。
この探索を追跡し、および各関係の’ explanation’要素に含まれ
る疑似自然言語による事実の表現を用いることにより、解を発見する際に定理プ
ルーバ33が従う「推論」のリストを出力することが可能となる。
タスクプログラムの他の例を監視タスクに関連して示す。
監視タスク
flllLE Diagnosis Ta5k: proves monito
red goal true D。
delay for monitoring 1ntervalEND;
Diagnosis Ta5k: on whole 5erviceこれから
分かるように、この監視タスクは、その実行に診断タスクを用いている。
堡
本発明の概念と、その一実施例での実施態様とを詳細に説明してきたが、ここで
サービスモデルの最終的な一層完全な例を示すことにする。その選択された一例
は、Unixワークステーション(UnixはAT&Tの登録商標)により提供
されるログインサービスのサービスモデルである。
他のモデル中で規定されたエンティティ、および、ログインサービスモデルLo
ginを再使用することが望ましいので、そのオペレーティングシステムをモデ
ル化するモデルUnixの部分もまた示す。
LlnixUnixモデルixオペレーティングシステムを扱う際に関連する基
本エンティティを提供する。ここでは、ログインモデルの各部の理解に有用なU
nixモデルからのそれらエンティティと関係のみを以下に説明する。
MODEL Unix
ENTITY Llser
BAS[C
[user] initialllomeDirr’ath [pathnam
el。
[user]name [userNamcl。
[user] Userld [intcgcrl。
(user] 1nitialshelll’ath [pathnameコ。
[user] groupld [intcgcrl。
[user] encryptedPassvord [string]。
DERIVED
Euser] hasRcadWritc八ccessTo [へathnam
el IF[File FilcJ pathname [pathnamel
。
[user] has [’ read’ ] accessTo [Filc
J。
[user] has [’write’ ] accessTo [Filc
J。
[user′3 has CFilek!ode model accessT
o [FilcJ IF([FilcJ 1sovnedBy [user]。
[FilcJ ovnerMode [modeコ);(〜[FilcJ is
OwnedBy [user]。
[FilcJ 1slnGroupof [userl。
[FilcJ groupMode [model);(−[filel is
ownedBy [user]。
〜[FilcJ 1slnGroupOf [user]。
[FilcJ worldklode [model);Iuser] 1ss
uperUser。
ENTITY File
ASIC
[filel 5etGroupld
[filel ownerMode [fileModel。
[FilcJ 5tickyBit。
[FilcJ name [fileName]。
[filel 5ize [intcgcrl。
Efile] worldMode [fileModel。
[FilcJ ovnerld [userldentifier]。
[filel date [string]。
[FilcJ 1inkscount [intcgcrl[FilcJ gr
oupMode [fileModel。
Efilc3 groupld [groupldentifier]。
[FilcJ 5etLlserld。
DERIVED
[FilcJ 1sovnedBy [user]IF[FilcJ ovne
rld [intcgcrl。
[FilcJ userld [intcgcrl。
勿論、LlnixUnixモデルこれらエンティティおよび関係の他に照会もあ
り、その−例は先に挙げられている(照会:’ passvd’ )。
ログインサービスモデルは次の通りである。
MODEL LoginServiccIMPORT Unix
ENTITY Login
[1oginl for [userNamcl jsOk (M:O) IF
[Li5er user]name [userNamcl[user] cn
cryptedPassword [String−]。
[user] userld [Userldentifier−]。
Cu5cr] grouped [Groupldcntifier 3jus
erコ initialHomeDirlsok。
[user31nitialshelllsok。
:login]executableFor [user] 1sOk。
11og]nE auditFilesAreok。
エンティティLoginについての上記の既導出関係は次のように読むことがで
きる。
成るユーザ塩についてのログインは次の場合にOKである。
そのユーザ塩を有するユーザが存在し、そのユーザがパスワード(その値は重要
ではない)を有しており、そのユーザがユーザ10(その値は重要ではない)を
有しており、そのユーザがグループID(その値は重要ではない)を有しており
、そのユーザのホームディレクトリがOKであり、そのユーザのシェルが0にで
あり、
ログイン実行可能ファイルがそのユーザについて0にであり、ログイン監査ファ
イルがOKである。
”name”ごencryptedPassvord″、”Llserld″、
および”groupId”l;L、全て、エンティティUserの基本関係であ
る(その実世界の値は上述の照会’ passwd’を用いて得られる)。その
他の関係は導出されたものである。そのうちの1つの規定を以下に示す。
[login] auditFilesAreOk (M) IF[IJser
rootl 1ssuperUser。
[rootlhasRcadWri tcAcccssTo[pathnamc
’ /etc/utmp’ ]。
[rootlhasRcadWri teAccessTo[pathname
’ /etc/btmp’ コ。
[rootコhasReadWriteAccessTo[pathname’
/etc/wtmp’ ]。
[rootコhasReadlriteAccessTo[pathname’
/etc/logingroup’ ]。
[login] 5ecureTtyFilelsOk。
[login] dialFilesAreok。
これにより参照される既導出関係のうちの1つの規定を次に示す。
[1oginl 5ecureTtyFilelsok (M) IF〜 [F
ile ] pathname [Pathname’/etc/5ecure
tty’ コニ([FilcJ pathname [Pathname” /
etc/5ecuretty’ ]。
[Llser rootl 1ssuperL]ser。
[rootl hasRcadAccessTo [Pathname ’ /
etc/5ecuretty’ ])。
この関係は次のように翻訳することができる。
ファイル“login 5ccurc tty”は次の場合にOKである。
ファイル”/etc/5ecuretty”が存在しないか、または、(ファイ
ル”/etc/5ecuretty”が存在し、スーパーユーザが存在し、その
スーパーユーザが/Cte/5ecuretty″に対して読出アクセスを既に
行っている)。
サービスの検証
以下は、’5ijt’という名称のユーザについてのログインが°OK’である
ことが上述の拡張された診断タスクにより証明された際のシステム管理装置から
の出力である。上記で詳述したモデルの各部分についての理由だけを以下に展開
する。
[login] for [’5ijt’コ1sok is truebeca
use [User25’ ] name [’5ijt’ ] is tru
ebecause it is proved by a querybeca
use [’User25’ コ encryptedr’assvord [
’ rX2vss9A3qkl’ ] isrue
because [’User25’ ] userld [327コ is
truebecause [’User25’ ]groupld [15]
is truebecause [’User25’ E 1nitialsh
elllsok is truebecause [1ogin] execu
tableFor [’User25’ ]1sok is truebeca
use [’User25’ ] initialllomcDirlsOk
is truebecause [login] auditFilesAre
OK is truebecause [’1Jser162’ ]hasRe
adWriteAccessTo [’/etc/utmp’ ] isrue
because [’File397°] endPathname [’/e
tc/utmp’ ] is truebecause [’File397°
] pathname [’/etc/utmp’ ] is truebec
ause [’ /etc/utmp’ ] dirNamc [’ /Cte
’ ] bascName[’utmp’] is true
because it is proved by a methodbeca
use [Dir392°] pathnameビ/etc’ ] is tr
uebecause [’ /etc’ ] dirName [’ /’ ]
baseName [’ etc’ ] isrue
because it is proved by a methodbeca
use [’Dir80’ ] pathname [’/’ ] is tr
uebecause [’/’ コ equals じ/’ ] is tru
ebecause it is proved by a methodbec
ause [’Dir80’ コis Root is truebecaus
e [’Dir80’ ] name [’/’ ]is truebecau
se it is proved by a querybecause [’
Dir80’ コ contains [’Dir80’ ] is true
because it is proved by a querybecau
se [’Dir80’ ] contains [’Dir392’ ] i
s truebecause it is proved by a quer
ybecause [’Dir392°] lame じetc’コ is t
ruebecause it is proved by a querybe
causeビFile397’コname [’utmp’ ] is tru
ebecause it is proved by a querybeca
use [’Dir392°コcontains [’File397°] i
s truebecause it is proved by a quer
ybecause [’User162’ ] has [’write’ ]
accessToじFile397’l isrue
because [’ File397’ ] ovnerMode [’wr
ite’ ] is truebecause it is proved b
y a querybecause [’File397° ] 1sovne
dBy [’User162 °コ is truebecause [’Fi
le397’ ] ownerld [0] is truebecause
it is proved by a querybecause [’Use
r162’ ] userld [01is truebecause it
is proved by a querybecause [’User16
2’ ] hasビread’ ] accessTo [’ File397
’ ] isrue
because [’ File397’ ] ovncrMode [’ r
ead’ ] is truebecause it is proved b
y a querybecause じFile397’ コ 1sovned
By [’User162’ コ is truebecause [’Fil
e397’ ] ovnerld [01is truebecause it
is proved by a querybecause [’User1
6γ ] userId [0コ is truebecause it is
proved by a querybecause [’User16γ]
1ssuperUser is truebecause [’1Jser1
62’ ] userld [0] iq truebecause it i
s proved by a query上記において、[方法(method
)Jによって証明されてLする事実の参照は、成る特定の関係をテストするため
に、事実ベースおよび照会機構を用いるのではなく、低レベルのコードを用(ま
たことを単【こ意味している。典型的には、各コアエンティティ(数の比較、ス
トリングの突き合わせ他)の間の関係について、この態様でテストを行うと好都
合である。
変更態様
本発明の上述の実施例についての様々な変形例が考え得ること(言明らかである
。したがって、例えば個々のタスクプログラムの主体として各タスクを説明した
が、サービスモデルの処理をIII御するtこめの、プログラム以外の、タスク
により決定される手段を設番することも可能である。かかる他の手段には、各タ
スク毎の専用の41言命エンジンや、各タスクを実行するための共通の汎用プロ
セッサを制御する個々のハードウェア手段が含まれる。
より詳細には、事実ベース中に保持されるでいるあらゆる事実の有効性を妥当な
範囲内で保証するために、特定の基準を設けることができる。例えば、各照会に
、その照会の実行によって導出されるあらゆる事実が有効であるとみなすことの
できる時間である「寿命」を割り当てることができる。照会の寿命が切れると、
導出された事実(およびそれら事実に基づく別の事実)の全てが事実ベースから
削除される。このような構成の場合、照会を用いてシステムの構成要素に関する
事実を導出し、監視期間に対応する寿命をその照会に持たせることにより、シス
テムの構成要素の監視を実施することができる。即ち、照会が寿命の終わりに達
した際に、対象とする事実が事実ベースから削除され、これを、対応する照会の
再開させるためのトリガとして監視タスクにより用いることができるようになる
。
更に、各サービスモデルは、対応付けされた照会および動作(適宜のもの)を有
しているが、かかる照会および動作を、2つ以上のモデルによって共用すること
もできる。例えば、ファイルが存在するか否かに関する照会は、幾つかの異なる
サービスモデルによって使用されるものとすることが十分に可能であり、またそ
の照会を、各モデル毎に指定するよりも、モデル間で共用したほうが明らかに効
率的である。
このシステム管理装置には、適当なあらゆるユーザインターフェースを設けるこ
とができることが理解されよう。特に、[ドラッグおよびドロップ」動作が、異
なるサービスモデルの特定の用例に関してタスクを実施させるように機能するこ
とができる、グラフィカルユーザインターフェースをイ史用することができる。
FIG 7
S6 = print[psFile]IG 9
特表千7−509582 (19)