随筆:「SOA/オートノミックとオントロジー」

by ご近所のきよきよ


 自然言語システムの開発は長丁場の苦悶が、さらに続きそうです。そして私は、自然言語処理のメインテーマ、本陣は意味処理にありと考えるのです。それは曖昧性の豊かな世界ですが、コンピュータ向きではありません。それで、曖昧性を取り去った意味処理を目指すオントロジーには惹かれる物があります。

 そんなところ、フトしたことからSOA(サービス・オリエンティッド・アーキテクチャ)とオートノミックを知って、オントロジーの応用分野でないかなと感じた次第です。どちらも、ハードウェアやソフトウェアの働き、それを大きく捉えれば「意味」の把握を管理コンピュータシステムに把握させようというものに見えるのですから。

 先ずSOAですが、現在の業務(人手が多いかも知れません)の分析から入って、まとまった作業をサービスとして抽出する。コンピュータシステムとしてのサービスに置き換えたり、サービスの改善をしたりする。サービスをオブジェクトとして、サービスは階層構造をしているでしょうから、オブジェクトの入れ子として把握するのが良いかもしれません。この分析作業とオブジェクトの表現を一貫した意味体系で表現して、コンピュータアシストのもと業務改善ができるようになればいいと思いませんか。

 オートノミックは、管理システムが配下の機器の状況を把握し、また、配下の機器が管理システムに状況を報告し、管理システムからの指示をまって動くようにしなくてはなりません。そうゆう機構はあるようですが、オートノミックとしてどれだけ成熟しているものでしょうか。例えば、次のようなシステムも考えられます。

ハードウェア/ソフトウェア(サービスでもいいですが)はオブジェクトとして管理知識ベースに登録します。オブジェクトは入れ子になっていること。上位オブジェクトは下位オブジェクトを管理するわけです。オブジェクトは状態を持つわけですが、状態の違いは別オブジェクトとして、クラスター化して上位オブジェクトに登録する。機器が故障すれば、別のオブジェクトに変わるわけです。相転移ですね。相転移があれば、上位システムに通知するわけです。

通知は共有データオブジェクトへのデータの設定を持って行う。下位オブジェクトは上位オブジェクトのインストールポイントにインストールするわけですが、その時には、このデータオブジェクトは公開されているわけですから、オブジェクトに設定すりアルゴリズムは作り込めるはずです。セッターとかゲッターとかですね。それと、上位のオブジェクトから実行して欲しいメソッドも用意できる。これは抽象メソッドのオーバーライドによって実現できる。インターフェースは決めておくことになりますが。そして、知識ベースに登録されたオブジェクトが自分自身のハードウェア/ソフトウェア(サービス)を実際に制御していくことになります。

サービスの中の部分サービスが障害にさらされたら、部分サービスだけでなく、サービス全体が相転移しなくては成らないかもしれません。その時には、サービスが部分サービスの管理者として振る舞って、更に上位のオブジェクトに状況を通知することになります。入れ子構造の強みですね。


参考文献


オブジェクト指向データベースのフリーソフトっていつ頃出現するのでしょう。


おわり