(57)【要約】  【課題】  メッセージ・アクション反応関係に従って駆動し、オブジェクト間の連携を柔軟かつ動的に変更できるオブジェクト連携装置を提供する。  【解決手段】  メッセージに対する反応であるアクション内容とメッセージとの関係を記憶するメッセージ・アクション反応関係記憶部１０２のメッセージ・アクション反応テーブル１０３内のメッセージ・アクション反応関係をメッセージ・アクション反応関係更新制御部１０５のメッセージ・アクション反応関係分離部１０６により分離し、メッセージ・アクション反応関係構築部１０７により新たなメッセージに対するアクション関係を構築する。オブジェクト連携に対して、オブジェクト連携関係の挿入、連結、外部介入、メッセージ送信側のオブジェクト連携の参加、メッセージ受信側オブジェクト連携の参加によりオブジェクト連携を柔軟かつ動的に構築する。【選択図】  図４
2005293611.tif 000002
【特許請求の範囲】
【請求項１】
各オブジェクトが、ネットワーク上に送信されるメッセージをモニタして取り込むメッセージ受信部と、
メッセージに対する反応であるアクション内容とメッセージとの関係を記憶するメッセージ・アクション反応関係記憶部と、
前記メッセージ・アクション反応関係に従ってアクションを実行するアクション実行部と、
ネットワーク上に存在するオブジェクトがやり取りするメッセージパターンを探索キーとして当該メッセージパターンを入出力のメッセージパターンとして持つオブジェクトを探索するオブジェクト探索部を備え、
第１のオブジェクトを始点として第２のオブジェクトに至るオブジェクト連携を形成するにあたり、前記オブジェクト探索部は、前記第１のオブジェクトの出力メッセージパターンと前記第２のオブジェクトの入力メッセージパターンを検知し、前記検知したオブジェクトのメッセージパターンを探索キーとして、当該メッセージパターンと連携するオブジェクトを探索し、前記第１のオブジェクトを始点として前記第２のオブジェクトに至るオブジェクト連携を形成することを特徴とするオブジェクト連携装置。
【請求項２】
前記オブジェクト探索部は、オブジェクトメッセージパターン検知部を備え、前記オブジェクトメッセージパターン検知部により、指定されたオブジェクトの入力メッセージパターン、出力メッセージパターンを検知することができる請求項１に記載のオブジェクト連携装置。
【請求項３】
前記オブジェクト探索部は、
第１の探索として、入力メッセージパターンを前記第１のオブジェクトの出力メッセージパターンとし、出力メッセージパターンを任意として第３のオブジェクト群を探索し、
第２の探索として入力メッセージパターンを前記第３のオブジェクト群それぞれのオブジェクトが持つ出力メッセージパターンとし、出力メッセージパターンを任意として第４のオブジェクト群を探索し、
前記第４のオブジェクト群それぞれのオブジェクトの出力メッセージパターンのうち前記第２のオブジェクトの入力メッセージパターンと一致するものを第４のオブジェクトとして選び出し、前記選び出した第４のオブジェクトの入力メッセージパターンを出力メッセージパターンとして持つオブジェクトを前記第３のオブジェクト群から第３のオブジェクトとして選び出し、
前記第１のオブジェクトから前記第３のオブジェクトと前記第４のオブジェクトを介して前記第２のオブジェクトに至るオブジェクト連携を形成する請求項１に記載のオブジェクト連携装置。
【請求項４】
前記第４のオブジェクト群それぞれのオブジェクトの出力メッセージパターンのうち前記第２のオブジェクトの入力メッセージパターンと一致するものがない場合、第３の探索として入力メッセージパターンを前記第４のオブジェクト群それぞれのオブジェクトが持つ出力メッセージパターンとし、出力メッセージパターンを任意として第５のオブジェクト群を探索するという手順を繰り返し、オブジェクト群の探索を当該オブジェクト群それぞれのオブジェクトの出力メッセージパターンのうち前記第２のオブジェクトの入力メッセージパターンと一致するものが存在するまで繰り返し、第１のオブジェクトから第２のオブジェクトに至るまでのオブジェクト連携を形成する請求項３に記載のオブジェクト連携装置。
【請求項５】
前記オブジェクト探索部は、
第１の探索として、入力メッセージパターンを任意とし、出力メッセージパターンを前記第２のオブジェクトの入力メッセージパターンとして第３のオブジェクト群を探索し、
第２の探索として、入力メッセージパターンを任意とし、出力メッセージパターンを前記３のオブジェク群それぞれのオブジェクトの入力メッセージパターンとして第４のオブジェクト群を探索し、
前記第４のオブジェクト群それぞれのオブジェクトの入力メッセージパターンのうち前記第１のオブジェクトの出力メッセージパターンと一致するものを第４のオブジェクトとして選び出し、前記選び出した第４のオブジェクトの出力メッセージパターンを入力メッセージパターンとして持つオブジェクトを前記第３のオブジェクト群から第３のオブジェクトとして選び出し、
前記第１のオブジェクトから前記第４のオブジェクトと前記第３のオブジェクトを介して前記第２のオブジェクトに至るオブジェクト連携を形成する請求項１のオブジェクト連携装置。
【請求項６】
前記第４のオブジェクト群それぞれのオブジェクトの入力メッセージパターンのうち前記第１のオブジェクトの出力メッセージパターンと一致するものがない場合、第３の探索として入力メッセージパターンを任意とし、出力メッセージパターンを前記第４のオブジェクト群それぞれのオブジェクトが持つ入力メッセージパターンとして第５のオブジェクト群を探索するという手順を繰り返し、オブジェクト群の探索を当該オブジェクト群それぞれのオブジェクトの入力メッセージパターンのうち前記第１のオブジェクトの出力メッセージパターンと一致するものが存在するまで繰り返し、第１のオブジェクトから第２のオブジェクトに至るまでのオブジェクト連携を形成する請求項５に記載のオブジェクト連携装置。
【請求項７】
前記オブジェクト探索部は、
第１の探索として、入力メッセージパターンを前記第１のオブジェクトの出力メッセージパターンとし、出力メッセージパターンを任意として第３のオブジェクト群を探索し、
第２の探索として入力メッセージパターンを任意とし、出力メッセージパターンを前記第２のオブジェクトの入力メッセージパターンとして第４のオブジェクト群を探索し、
前記第３のオブジェクト群それぞれのオブジェクトの出力メッセージパターンと前記第４のオブジェクト群それぞれのオブジェクトの入力メッセージパターンが一致する組み合わせを選び出し、当該組み合わせにかかる第３のオブジェクト群のオブジェクトを第３のオブジェクトとし、第４のオブジェクト群のオブジェクトを第４のオブジェクトとし、
前記第１のオブジェクトから前記第３のオブジェクトと前記第４のオブジェクトを介して前記第２のオブジェクトに至るオブジェクト連携を形成する請求項１のオブジェクト連携装置。
【請求項８】
前記第３のオブジェクト群それぞれのオブジェクトの出力メッセージパターンと前記第４のオブジェクト群それぞれのオブジェクトの入力メッセージパターンが一致するものがない場合、第３の探索として入力メッセージパターンを前記第３のオブジェクト群それぞれのオブジェクトの出力メッセージパターンとし、出力メッセージパターンを任意として第５のオブジェクト群を探索するという手順と、第４の探索として入力メッセージパターンを任意とし、出力メッセージパターンを前記第４のオブジェクト群それぞれのオブジェクトの入力メッセージパターンとして第６のオブジェクト群を探索するという手順とを繰り返し、オブジェクト群の探索を、一のオブジェクト群それぞれのオブジェクトの出力メッセージパターンと他のオブジェクト群それぞれのオブジェクトの入力メッセージパターンが一致するものが存在するまで繰り返し、第１のオブジェクトから第２のオブジェクトに至るまでのオブジェクト連携を形成する請求項７に記載のオブジェクト連携装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ群もしくはオブジェクト群の対話・協調などの連携処理を実施するオブジェクト連携装置に関し、オブジェクト指向環境において複数のプロセスが作りだされ、コンピュータネットワークを通じて、環境の変化に柔軟に対応し、漸進的に変化するシステム構築のためのオブジェクト連携装置に関する。
【背景技術】
【０００２】
近年、ネットワーク化が進み、ネットワーク上に分散した複数のオブジェクトが互いに連携して処理を行うシステムが増えている。このような複数のオブジェクトが連携して処理を行うための技法として、オブジェクト指向型プログラミングやコンポーネント技術などの研究がなされている。
【０００３】
オブジェクト指向型プログラミングの一例として、オブジェクト指向技術の標準化と普及を目指して設立された業界団体ＯＭＧ（Object Management Group）によって定められた分散オブジェクト運用のための共通仕様ＣＯＲＢＡ（The Common Object Request Broker : Architecture and Specification）がある。
【０００４】
図３７に、ＣＯＲＢＡに基づいたクライアント／サーバシステムにおけるオブジェクト連携の例を示す。このシステムは、クライアントアプリケーションとサーバ・アプリケーションとが連携することにより、つまりオブジェクト連携により一連の処理を行うものである。
【０００５】
アプリケーション開発者は、クライアントおよびサーバそれぞれが提供するサービスのインターフェースをＩＤＬ（Interface Definition Language）で記述する。インターフェースとして定義する内容は、オブジェクトに依頼できるオペレーション群であり、各々のオペレーションは、オペレーション名、パラメタの定義、戻り値の定義、エラー発生時の例外処理、付加情報などが定義される。
【０００６】
ＩＤＬで定義された内容を専用のコンパイラでコンパイルすることにより、クライアント用のスタブとサーバ用のスケルトンが生成される。スタブとは、クライアントアプリケーションにＩＤＬで定義されたオペレーション群へのアクセスを提供するルーチン群である。クライアントアプリケーションは、スタブで提供されるルーチンを呼び出すことにより、各種オペレーションが起動される。スケルトンは、サーバ・アプリケーションが提供するメソッドルーチンヘのディスパッチングルーチンを提供する。
【０００７】
スタブおよびスケルトンは、対応するクライアントアプリケーションあるいはサーバ・アプリケーションが使用するプログラミング言語で生成される。たとえば、使用されるプログラミング言語がＣ言語であったとすると、スタブはＣ言語の関数群として生成され、クライアントアプリケーションは、実行したいオペレーションに対応する関数を呼び出すことにより、スタブ、ＯＲＢランタイム、スケルトンを経由してサーバ・アプリケーションの該当ルーチンが呼び出され、所定の処理が実行されたあと、その処理結果が呼び出し元のクライアントアプリケーションに返される。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
このように、ＣＯＲＢＡなどによりオブジェクト連携処理を構築することは、容易になってきている。しかし、実際にこのような連携処理を構築しようとすると、前述のＣＯＲＢＡであれば、ＣＯＲＢＡそのものの理解とともに、ＣＯＲＢＡの仕様に応じたオブジェクトの設計およびＩＤＬによる定義が必要となる。つまりＣＯＲＢＡの利用方法を詳細にわたってシステム構築者が熟知する必要がある。
【０００９】
また、それぞれのオブジェクトの関係を強く意識する必要がある。つまり、それぞれのオブジェクトがどういう処理を行うのか、その処理を行うために必要となる受渡しのパラメタは何かなどを明確にしておかなければならない。
【００１０】
オブジェクト間のインターフェースが共通化されることにより、オブジェクトの独立性は高まったとは言え、あくまでもオブジェクトとオブジェクトの間には固定の関係が存在することが前提となっている。
【００１１】
ここで、人間同士のコミュニケーションを考えた場合、現実には不確定なやりとりが往々にして発生している。例えば、問題解決を図ることを想定すると、発生した問題を解決するために、自分の中で思いを巡らす、あるいは、他の人に助言を仰ぐなどして、解決策を導いていく。自分の中で思いをめぐらす場合でも、様々な観点からの考察が行われている。また、他の人に助言を仰ぐ場合も、特定の人に問い合わせる場合と、広く不特定の人に問い合わせる場合がある。広く不特定の人に問い合わせる場合、問い合わせを受けた人の反応はそれぞれに異なる。解決策を持ち合わせている人は回答を提示してくるであろうし、直接の解決策でないにしろ本人の経験や知識から類推して助言してくれる人もあるかもしれないし、また、全く無関心で問い合わせを無視してしまう人もいるであろう。つまり、１つの情報に対して、その情報に反応する／反応しないは問い合わせを受ける側によって異なり、さらに、反応する場合にどのように反応するかも問い合わせを受ける側によって異なる。
【００１２】
ここで、人をオブジェクトに置き換えた場合、ネットワーク上を流れてくる情報を受信する／受信しないの選択、また、受信した場合に当該情報に対してどのような処理を行うかという反応はそれぞれのオブジェクトごとに異なる。言わば、オブジェクトとオブジェクトの連携関係において自由な連携というものが望まれてくる。従来の連携方法は、あくまでもオブジェクトとオブジェクトの関係は固定であることを前提しており、このような自由な関係を持った連携システムの構築は困難であった。
【００１３】
このように、分散オブジェクトシステム技術においては、ＣＯＲＢＡやあるいはＤＣＯＭに代表されるように、ネットワークに対して透過的なオブジェクトのアクセスを提供するための枠組みや分散オブジェクトのインターフェイスに関する枠組みが徐々に整いつつあるが、オブジェクト間の連携をいかに動的に構築していくかという問題に十分に答えるものではない。
【００１４】
本発明は、上記問題点を解決するため、ネットワークに接続されたオブジェクトとオブジェクトの連携あるいはコンピュータとコンピュータの連携の自由度を高めることを目的とし、コンピュータ群もしくはオブジェクト群の対話・協調などの連携処理を実施し、オブジェクト指向環境における環境の変化に柔軟に対応し、漸進的に変化するシステム構築のためのオブジェクト連携装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明のオブジェクト連携装置は、構築したオブジェクト間の連携連鎖の自由度、柔軟性を高めるため、構築されたオブジェクト間の連携の間に新たにオブジェクトの挿入を可能とし、新しいオブジェクト連携を柔軟かつ動的に構築することを可能とする。また、相互に連携関係のないオブジェクト連携同士を新たに連結して新しいオブジェクト連携を柔軟かつ動的に構築することを可能とする。また、構築されたオブジェクト間の連携を一度切断し、外部のオブジェクトを介在させた形のオブジェクト連携連鎖とするいわゆる外部介入方式の新しいオブジェクト連携を柔軟かつ動的に構築することを可能とする。また、オブジェクト連携を１対１のオブジェクト連携のみならず、１対多のいわゆる受信側連携参加の新しいオブジェクト連携を柔軟かつ動的に構築し、さらに多対１のいわゆる送信側連携参加の新しいオブジェクト連携を柔軟かつ動的に構築することを可能とする。
【００１６】
また、本発明のオブジェクト連携装置は、上記したオブジェクト連携の自由度、柔軟性を確保しつつ、オブジェクト連携関係における連携条件を設定することを可能とし、当該オブジェクト間の連携許否を制御することを目的とする。
【００１７】
また、本発明のオブジェクト連携装置は、構築されたオブジェクト連携の関係、つまり、オブジェクトが反応する入力メッセージパターン、オブジェクトのアクションおよび出力する出力メッセージパターン、連携条件を容易かつ陽に把握できる機能を提供することを目的とする。
【００１８】
また、本発明のオブジェクト連携装置は、構築したいオブジェクト連携の始点となるオブジェクトのメッセージパターンと終点となるオブジェクトのメッセージパターンが与えられれば、始点のオブジェクトから終点のオブジェクトに至るまでの間をつなぐ連携関係を形成するオブジェクトを探索することにより、柔軟にオブジェクト連携を形成することを目的とする。
【００１９】
上記従来の問題に対応するためには、まず、オブジェクト間の連携をより柔軟に構築することが必要となる。これは単純にアプリケーションをコンポーネント化していくだけでは解決できず、オブジェクト同士が相互に作用しながら動的に機能を構成するような枠組みが必要となる。しかし、連携するオブジェクト同士が、互いの内部状態や内部関数に依存しあうような密な関係にあれば、相互作用によって機能を動的に構成していくことは容易でない。したがって、連携によって機能を動的に構成しようと思えば、連携するオブジェクトの緩やかな関係を規定しなければならない。
【００２０】
ここで、人間同士のコミュニケーションや人間同士の相互に連携する行動について述べる。人間同士のコミュニケーションや相互に連携した行動には、「気づき（Ａｗａｒｅｎｅｓｓ）」という状態が存在し、この気づき（Ａｗａｒｅｎｅｓｓ）に基づく情報のやり取りが人間のコミュニケーションや行動にバリュエーションと柔軟性をもたらしているとするモデルがある。
【００２１】
Ａｗａｒｅｎｅｓｓモデルとは、コミュニケーション行動とは別に、コミュニケーションの主体が直接的、合目的的に関わらない状態もしくは情報のやりとりを認めた上で、そのようなＡｗａｒｅｎｅｓｓ情報が、実はコミュニケーション行動を含む様々な行動のバリェーションに影響を与えているとするものである。
【００２２】
分散オブジェクト技術の分野においても、オブジェクト間に、この人間同士に介在するＡｗａｒｅｎｅｓｓと同様の情報処理を行い、検知したＡｗａｒｅｎｅｓｓに基づいてオブジェクト同士の連携処理を行うことができれば、オブジェクト間の連携に柔軟性を持たせることが可能となる。特に連携する相手のオブジェクトが動的に変化してしまうような状況において、変化するオブジェクトとそれをモニタするオブジェクトが人間同士のコミュニケーションにおけるＡｗａｒｅｎｅｓｓと同様の情報授受を行い、自律的に処理を実行できれば、ネットワーク上の連携するオブジェクト間の有効な処理モデルとなり得る。それはＡｗａｒｅｎｅｓｓモデルがオブジェクト連携における緩やかな関係を規定し、オブジェクト間の連携に柔軟性と動的な変更可能性をもたらすからである。
【００２３】
本発明のオブジェクト連携装置は、オブジェクトフィールドを流れるメッセージと当該メッセージに対応するアクションの関係によってオブジェクト同士を結び付けることによりオブジェクト同士の連携を構築し、当該メッセージとアクションの関係の記述を柔軟かつ動的に更新することにより構築したオブジェクト連携関係を柔軟かつ動的に更新するものである。
【００２４】
上記従来の課題を解決するために本発明のオブジェクト連携装置は、各オブジェクトが、ネットワーク上に送信されるメッセージをモニタして取り込むメッセージ受信部と、メッセージに対する反応であるアクション内容とメッセージとの関係を記憶するメッセージ・アクション反応関係記憶部と、前記アクション内容に従って処理を実行するアクション実行部を備え、前記メッセージ・アクション反応関係に従ってアクションを実行するアクション実行部と、メッセージとアクションの対応関係の必要性に応じてメッセージとアクションの対応関係の更新を制御するメッセージ・アクション反応関係更新制御部と、前記メッセージ・アクション反応関係更新制御部により指定された前記メッセージ・アクション反応関係記憶部中の既存のメッセージ・アクション対応関係を分離するメッセージ・アクション反応関係分離部と、前記メッセージ・アクション反応関係更新制御部により指定されたメッセージに対して指定されたアクションを関係づけるメッセージ・アクション反応関係構築部を備え、既存のメッセージとアクションの関係に介入して新たなメッセージとアクションの関係を構築することを特徴とする。
【００２５】
ここで、メッセージ・アクション反応関係更新制御部の指定が分離する既存のメッセージ・アクションの反応関係の指定と挿入する新たなメッセージ・アクション反応関係を持つオブジェクトの指定である場合には、メッセージ・アクション反応関係分離部は当該指定に基づいて既存のメッセージとアクションとの関係を分離し、メッセージ・アクション反応関係構築部は、当該指定に基づいて既存のメッセージと新たなアクションとの関係付けと、新たなアクションの一部として発せられる新たなメッセージと既存のアクションとの関係付けとを構築し、既存のメッセージと既存のアクションの間に新たなメッセージ・アクション反応関係を持つオブジェクトを挿入する。
【００２６】
上記構成により、オブジェクトの連携の流れの変更をメッセージ・アクション反応関係の変更により柔軟かつ動的に行うことができ、従来、オブジェクトの連携変更の際に必要となっていたオブジェクトのプログラム変更、再コンパイルの必要がなくなり、オブジェクト連携を用いたシステム設計の効率化を図ることができる。
【００２７】
本発明は、さらに、メッセージ・アクション反応関係分離部とメッセージ・アクション反応関係構築部を活用してメッセージ・アクションの連携関係を柔軟に構築、変更、消去、縮退することが可能である。一例には、メッセージ・アクションの反応関係の挿入を多段化することによるオブジェクト連携の多段挿入が可能となる。他には、指定されたオブジェクトの前後の連携関係を分離した上、当該オブジェクトをバイパスして前後のオブジェクトをつなぐメッセージアクション関係の設定によりオブジェクト連携関係を構築すれば指定したオブジェクトの縮退が可能となる。また、他には、複数の独立したオブジェクト連携同士を仲立ちするオブジェクトを挿入して独立したオブジェクト同士を連結するオブジェクトの連結が可能となる。この逆に、一連に連続したオブジェクト連携中の一部のオブジェクトを抜き出して前後の連携を断ち切ることによるオブジェクト連携の分離が可能となる。また、挿入・連結するオブジェクトの連携関係を枝分かれさせればオブジェクト連携の並列化も可能となる。
【００２８】
本発明は、上記のような多様なオブジェクト連携関係を利用し、様々なシステム構築に適用することができる。一例には、一つのオブジェクトのアクションとしてのメッセージに反応するオブジェクトを複数設ければ、受信者参加型のオブジェクト連携装置を構成することができ、処理を依頼する相手となるオブジェクトを入札方式で探索することが可能となる。逆に、複数のオブジェクトから送信されるメッセージに対して反応するオブジェクトを構築すれば、送信者参加型のオブジェクト連携装置を構成することができ、並列複数に進んでいたオブジェクト連携をまとめる処理の一元化をすることができ、入札方式で処理依頼する相手からの返答を受け、応札することが可能となる。
【００２９】
また、一連のオブジェクト連携に対して新たなオブジェクト連携の挿入が容易になるように、オブジェクト連携が、塊としてオブジェクト連携関係を維持するオブジェクト連携コア部分と、前記オブジェクト連携コア部分と他のオブジェクトとの連携をとりもつオブジェクト連携インタフェース部分を備え、オブジェクト連携関係の変更が生じた場合に、前記オブジェクト連携コア部分の関係はそのまま維持し、前記オブジェクト連携インタフェース部分の連携先を変更することによりオブジェクト連携関係の変更を行なう。
【００３０】
上記構成により、オブジェクト連携関係を一塊として維持するオブジェクト連携コア部分を設けることによりオブジェクト連携の変更が生じても当該部分への影響は回避され、また、オブジェクト連携コア部分の前後に他のオブジェクトとの連携をとりもつオブジェクト連携インタフェース部分を設けることにより、外部のオブジェクトとの関係構築、変更を当該部分で行なうことができる。オブジェクト連携インタフェース部分同士の連携の間に新たなオブジェクト連携を多段に挿入することができ、いわゆるカスケード接続によるオブジェクト連携が柔軟に構築できる。
【００３１】
次に、上記オブジェクト連携関係における連携条件を設定して当該オブジェクト間の連携許否を制御するという目的を達成するために、本発明のオブジェクト連携装置は、メッセージ・アクション反応条件設定部を備え、オブジェクトごとに受信したメッセージに対応するアクションが実行されるためのメッセージ・アクション反応条件を設定し、メッセージ・アクション反応関係記憶部が、メッセージ・アクション反応関係とメッセージ・アクション反応条件とを関連付けて記憶し、アクション実行部は、メッセージ・アクション反応条件が満たされた場合に受信したメッセージに対するアクションを実行することを特徴とする。
【００３２】
上記構成により、オブジェクトがアクションを実行するにあたり、対応するメッセージの受信に加え、当該受信メッセージに反応するためのメッセージ・アクション反応条件を設定することができ、当該オブジェクト間の連携許否を通じてオブジェクト連携をきめ細かく制御することができる。
【００３３】
次に、構築されたオブジェクト連携連鎖の関係を容易かつ陽に把握できる機能を提供するという目的を達成するために、本発明のオブジェクト連携装置は、オブジェクトおよびオブジェクト間に構築されたオブジェクト連携関係を提示するオブジェクト連携関係提示部を備え、メッセージ受信部が取り込んだメッセージの受理については受理可能範囲を入力メッセージパターン情報とし、アクション実行部がメッセージを出力する場合にはその出力可能範囲を出力メッセージパターン情報とし、オブジェクト連携関係提示部は、提示するオブジェクト連携関係を入力メッセージパターン情報と出力メッセージパターン情報の連携関係として提示することを特徴とする。
【００３４】
オブジェクト連携関係提示部がメッセージ・アクション反応条件の提示を行なえば、構築されたオブジェクト連携連鎖の関係、つまり、オブジェクトが反応する入力メッセージ、オブジェクトのアクションおよび出力する出力メッセージ、連携条件を陽に提示することができ、例えば、プログラマ、システム管理者、利用者などオブジェクト連携連鎖の関係を正当に変更しうる者が当該オブジェクト連携関係を容易に検知できる。オブジェクトをアイコンとして表示し、オブジェクト連携関係をアイコン間のリンク情報として表示し、また、オブジェクト連携関係をテーブルとして表示し、オブジェクト連携関係をグラフィックとして可視化でき、容易かつ陽に把握することができる。また、他のオブジェクト連携関係の提示手段として、オブジェクト連携関係提示部は、入力メッセージパターン情報と出力メッセージパターン情報をタグとして記述し、オブジェクト連携関係をタグを含むプログラム記述言語、例えば、ＸＭＬ言語中のタグという形で利用者により提示することもできる。
【００３５】
次に、本発明のオブジェクト連携装置において、前記オブジェクト連携関係提示部が、各オブジェクトに対して当該オブジェクトが持つオブジェクト連携情報を問い合わせるオブジェクト連携情報問い合わせ機能と、各オブジェクトへの問い合わせに対して各オブジェクトから応答される各オブジェクトのオブジェクト連携情報を収集するオブジェクト連携情報収集機能と、収集した各オブジェクトのオブジェクト連携情報からオブジェクト全体のオブジェクト連携関係を合成するオブジェクト連携関係合成機能と、前記合成したオブジェクト連携関係を提示するオブジェクト連携関係提示機能を備えることが好ましい。
【００３６】
上記構成により、オブジェクト連携装置が動的に構築し、更新するオブジェクトの連携関係を必要に応じて検知し、当該結果を基にオブジェクトの連携関係を利用者に対して陽に提示することが可能となる。
【００３７】
ここで、本発明のオブジェクト連携装置は、オブジェクト連携制御部を備え、オブジェクト連携制御部は、オブジェクト連携関係合成機能により合成されるオブジェクト連携関係に変更が生じたことを検知するオブジェクト連携変更検知機能と、オブジェクト連携に連携上の論理矛盾が発生したことを検知するオブジェクト連携論理矛盾検知機能と、当該オブジェクト連携論理矛盾検知機能がオブジェクト連携の論理矛盾を検知した場合に当該オブジェクト連携の変更をキャンセルするオブジェクト連携論理保護機能を備えることが好ましい。
【００３８】
上記構成により、オブジェクト連携装置が動的に構築し、更新するオブジェクトの連携関係を必要に応じて調べて解析し、オブジェクト連携の無限ループ、オブジェクト連携関係の衝突など、オブジェクト連携動作を阻害する関係の構築・変更を事前に検知し、当該構築・変更をキャンセルし、システムの円滑な運用を確保することができる。
【００３９】
また、本発明のオブジェクト連携装置は、構築したいオブジェクト連携の始点となるオブジェクトと終点となるオブジェクトが与えられれば、始点のオブジェクトから終点のオブジェクトに至るまでの間をつなぐ連携関係を形成するため、ネットワーク上に存在するオブジェクトが取り込むメッセージを入力メッセージパターン情報とし、アクションの一部として出力するメッセージを出力メッセージパターン情報として検知し、入力メッセージパターン、出力メッセージパターンを探索キーとして当該パターンを持つオブジェクトを探索するオブジェクト探索部を備える。第１のオブジェクトを始点として第２のオブジェクトに至るオブジェクト連携を形成するにあたり、オブジェクト探索部によりオブジェクトのメッセージパターンを探索キーとして当該メッセージパターンと連携するオブジェクトを探索してゆき、第１のオブジェクトを始点として第２のオブジェクトに至るオブジェクト連携を形成する。探索には、種々のパターンがあり、例えば、前方向探索、後方向探索、前後両方向探索のパターンがある。前方向探索の場合であれば、第１のオブジェクトを始点として第２のオブジェクトに至るオブジェクト連携を形成するにあたり、オブジェクト探索部は、第１の探索として、入力メッセージパターンを前記第１のオブジェクトの出力メッセージパターンとし、出力メッセージパターンを任意として第３のオブジェクト群を探索し、第２の探索として入力メッセージパターンを前記第３のオブジェクト群それぞれのオブジェクトが持つ出力メッセージパターンとし、出力メッセージパターンを任意として第４のオブジェクト群を探索し、前記第４のオブジェクト群それぞれのオブジェクトの出力メッセージパターンのうち前記第２のオブジェクトの入力メッセージパターンと一致するものを第４のオブジェクトとして選び出し、前記選び出した第４のオブジェクトの入力メッセージパターンを出力メッセージパターンとして持つオブジェクトを前記第３のオブジェクト群から第３のオブジェクトとして選び出し、前記第１のオブジェクトから前記第３のオブジェクトと前記第４のオブジェクトを介して前記第２のオブジェクトに至るオブジェクト連携を形成する。
【００４０】
本発明のオブジェクト連携装置を実現する処理プログラムを記録したコンピュータ読み取り可能な記録媒体を提供すれば、当該記録媒体をコンピュータに読み取ることにより、コンピュータ装置を利用して本発明のオブジェクト連携装置を構築することができ、オブジェクト連携関係を柔軟かつ容易に構築、更新することができるオブジェクト連携装置を構築できる。
【発明を実施するための最良の形態】
【００４１】
以下、本発明のオブジェクト連携装置の実施形態について、図面を参照しながら説明する。
【００４２】
本発明は、分散したオブジェクト間の通信や対話、協調などの連携処理をオブジェクト間で行うオブジェクト連携装置であり、共通のフィールドとして定義されるような通信路を流れるメッセージに対して、オブジェクトとしての個々のコンピュータシステムあるいはコンピュータシステム内で動作する個々のアプリケーションプログラムが反応する形で処理を実行し、メッセージとアクションとの反応関係の変更によりシステム全体の動作を柔軟に変更するものである。
【００４３】
本発明は、連携するオブジェクト同士の関係を、互いの内部状態や内部関数に依存しあうような密な関係とはしないで、連携するオブジェクトの緩やかな関係を規定したオブジェクト間の連携によって機能を動的に構成する。
【００４４】
本発明の理解には、人間同士のコミュニケーションや相互に連携した行動において見られるＡｗａｒｅｎｅｓｓモデルが役に立つ。本発明は、分散オブジェクト間の連携において、オブジェクト間に、人間同士に介在するＡｗａｒｅｎｅｓｓと同様の情報処理を行い、検知したＡｗａｒｅｎｅｓｓに基づくオブジェクト同士の連携処理が前提となる。以下、まず、最初に本発明のオブジェクト連携装置の前提となるＡｗａｒｅｎｅｓｓアナロジーに基づく分散オブジェクトの連携について説明し、次に、分散オブジェクトの連携をより柔軟にする方式の説明を具体的な実施形態と併せて述べる。
【００４５】
Ａｗａｒｅｎｅｓｓアナロジーに基づく分散オブジェクトの連携について説明する。Ａｗａｒｅｎｅｓｓアナロジーに基づく分散オブジェクトの連携もしくはコンピュータの連携は、以下のような構成によって実現することができる。
【００４６】
１．Ａｗａｒｅｎｅｓｓメッセージは、共有もしくはＢｒｏａｄｃａｓｔされている。
【００４７】
２．Ａｗａｒｅｎｅｓｓメッセージを受信するオブジェクトは、メッセージとアクションとの対応関係をそれぞれ独自に持っている。
【００４８】
３．Ａｗａｒｅｎｅｓｓメッセージを送信もしくは受信するオブジェクトにおいて、メッセージとアクションとの関係は分離されている。
【００４９】
Ａｗａｒｅｎｅｓｓアナロジーにおけるメッセージとアクションとが分離されている、あるいは分離可能であるという性質を利用することによって、オブジェクト間の相互作用として参加と介入という二つの重要な要素を付け加えることができ、ネットワークに接続されたオブジェクトとオブジェクトの連携あるいはコンピュータとコンピュータの連携の自由度を高めることが可能となる。
【００５０】
図１は、Ａｗａｒｅｎｅｓｓアナロジーにおけるオブジェクト間の緩やかな連携を模式的に示した図である。
【００５１】
図１において２０１はオブジェクトＡ，２０２はオブジェクトＢであり、それぞれＡｗａｒｅｎｅｓｓメッセージを送受信する主体であるオブジェクトである。Ｍ１はメッセージであり、Ａｗａｒｅｎｅｓｓメッセージを示す。ａ１はオブジェクトＡ（２０１）中に規定されたアクション、ａ２はオブジェクトＢ（２０２）中に規定されたアクションを示す。なお、図中の矢印は、起点がオブジェクトのときメッセージの送出を、終点がオブジェクトのときメッセージの受信を示している。またそれぞれのオブジェクトは内部状態としてのアクションをそれぞれ独自に持っているとする。
【００５２】
図１において、オブジェクトＡ（２０１）とオブジェクトＢ（２０２）の連携は、メッセージＭ１を介して行われている。ＡｗａｒｅｎｅｓｓアナロジーにおいてオブジェクトＡ（２０１）は、オブジェクトＢ（２０２）についてもオブジェクトＢ（２０２）の持つ内部関数についても基本的には関知せずにメッセージを送出する。また、オブジェクトＢ（２０２）自体を特定してメッセージを送出する必要もなく、オブジェクトＡ（２０１）は自己の状態、処理内容に基づいてメッセージＭ１を送出する。オブジェクトＢ（２０２）は通信路上を流れるメッセージをモニタしており、メッセージＭ１を検知し、Ｍ１がオブジェクトＢにとって有為であるとき、反応してアクションａ２を起動する。このようにオブジェクトＡとオブジェクトＢとは有為な連携を取り得るが、それはオブジェクトＡ（２０１）とオブジェクトＢ（２０２）の直接の結び付きによるものではなく、メッセージＭ１とオブジェクトＢ（２０２）のアクションａ２とが結び付けられている帰結といえる。逆にメッセージがＭ１とは異なるものであれば、オブジェクトＢ（２０２）は当該メッセージがＭ１と同様の受理可能範囲にあるかあるいは他に当該メッセージと結び付けられているアクションがない限り反応しないこととなる。このようにオブジェクト間の連携が緩やかにメッセージを介して行われることにより、オブジェクト間の連携の自由度が増すこととなる。つまり、従来のコンピュータネットワーク通信のように通信相手のアドレスおよび処理依頼内容を特定する必要がなく、ネットワーク上に自らの状態、処理結果などを表わすＡｗａｒｅｎｅｓｓメッセージを流し、ネットワークをモニタしている各端末がそのメッセージを検知し、対応するアクションが規定されていれば自律的に反応を起こすものである。
【００５３】
なお、Ａｗａｒｅｎｅｓｓアナロジーにおいて通信路は単にＬＡＮなどの物理的ネットワークだけではなく無線・音声・光などの共通に受信できる媒体を介在するものであれば特に限定する必要はない。また、共通に呼び出し可能なメモリ等の記録媒体であってもかまわない。さらに通信路のポートアドレスなどにより仮想的な存在であってもかまわない。
【００５４】
以上が、Ａｗａｒｅｎｅｓｓアナロジーに基づく分散オブジェクトの連携の基本原理である。
【００５５】
次に、本発明の分散オブジェクトの連携をより柔軟にする方式を適用したオブジェクト連携装置を説明する。本発明のオブジェクト連携装置では、上記のＡｗａｒｅｎｅｓｓアナロジーに基づく分散オブジェクトの連携の柔軟性を増し、かつ分散オブジェクトの連携関係を動的に変更する方式を導入する。ここでは、以下の実施形態１から実施形態５により、連携挿入、連携の連結、連携の外部介入、受信側連携参加、送信側連携参加の５つの方式を順に説明する。さらに、実施形態６により、オブジェクト間の連携における連携条件を設け、当該連携条件が満たされた場合に当該オブジェクト間の連携が実行される連携条件設定機能を持たせたオブジェクト連携装置の実施形態を説明する。また、実施形態７により、オブジェクト連携関係を検知して利用者に陽に提示するオブジェクト連携関係提示機能を持たせたオブジェクト連携装置の実施形態を説明する。また、実施形態８により、オブジェクト連携が、塊としてオブジェクト連携関係を維持するオブジェクト連携コア部分と、前記オブジェクト連携コア部分と他のオブジェクトとの連携をとりもつオブジェクト連携インタフェース部分を備え、オブジェクト連携関係の変更が生じた場合に、前記オブジェクト連携コア部分の関係はそのまま維持し、前記オブジェクト連携インタフェース部分の連携先を変更することによりオブジェクト連携関係の変更を行なうオブジェクト連携装置の実施形態を説明する。また、実施形態９により、始点となるオブジェクトから終点となるオブジェクトに至るまでの間をつなぐ連携関係を形成するオブジェクトを探索することにより、オブジェクト連携を形成する機能を持たせたオブジェクト連携装置の実施形態を説明する。また、実施形態１０により、本発明のオブジェクト連携装置を実現する処理ステップを備えた処理プログラムを記録したコンピュータ読み取り可能な記録媒体の例を示した実施形態を説明する。
【００５６】
（実施の形態１）
本実施形態１は、Ａｗａｒｅｎｅｓｓアナロジーに基づく分散オブジェクト連携におけるオブジェクト連携挿入の基本原理と本原理を適用したオブジェクト連携装置を説明する。
【００５７】
オブジェクト連携挿入とは、ある一連のオブジェクト連携がある場合に、当該一連のオブジェクト連携の一部に他のオブジェクトとの新たなオブジェクト連携関係を挿入することをいい、当該一連のオブジェクト連携の一部を分離し、分離した前後のオブジェクトと、挿入する他のオブジェクトとの間をそれぞれ連携関係を構築することにより、連携を分離した前方のオブジェクトから挿入する新たなオブジェクトへ連携し、さらに挿入した新たなオブジェクトから、連携を分離した後方のオブジェクトへ連携し、新たな一連のオブジェクト連携を構築することをいう。
【００５８】
図２は、オブジェクト連携挿入の基本原理を図式化して示した図である。オブジェクト、メッセージ、オブジェクトのアクション部分を概念的に抜き出して表示したものである。図２（ａ）は、オブジェクト連携挿入前の様子を示している。図２（ｂ）はオブジェクト連携挿入後の様子を示している。図２において、２０１はオブジェクトＡ、２０２はオブジェクトＢ、２０３はオブジェクトＣを表わしており、それぞれメッセージを送受信する主体であるオブジェクトである。Ｍ１，Ｍ２はメッセージを表わしている。ａ１はオブジェクトＡ（２０１）中に規定されたアクション、ａ２はオブジェクトＢ（２０２）中に規定されたアクション、ａ３はオブジェクトＣ（２０３）中に規定されたアクションを示す。なお、以下の実施形態において図中の矢印は、起点がオブジェクトのときメッセージの送出を、終点がオブジェクトのときメッセージの受信を示している。また、それぞれのオブジェクトは内部状態としてのアクションをそれぞれ独自に持っているとする。
【００５９】
まず、図２（ａ）に示すように、オブジェクトＡ（２０１）とオブジェクトＢ（２０２）との間にはメッセージＭ１を介してオブジェクト連携関係が構築されている。オブジェクト連携の基本原理でも説明したように、このオブジェクト連携はメッセージＭ１を介した緩やかな連携となっている。メッセージＭ１は送信相手のアドレスを指定して送信する必要はなく、送信するオブジェクトはネットワークフィールド（通信メディア）上にメッセージを流し、受信するオブジェクトはネットワークフィールドをモニタして当該メッセージを任意に取り込むことができるものである。つまり、オブジェクトＡ（２０１）は、オブジェクトＢ（２０２）およびアクションａ２を意識する必要はなく、ネットワーク上にメッセージＭ１を送信している。つまり、どのようなオブジェクト連携関係があるかに関わらない。
【００６０】
ここで、オブジェクトＢ（２０２）のメッセージ・アクションの反応関係を書き換えることにより、図２（ｂ）のようにオブジェクトＣ（２０３）のオブジェクト連携を挿入することが可能となる。つまり、オブジェクトＢのメッセージ・アクションの反応関係を書き換え、アクションａ２をメッセージＭ２に対して反応するアクションとして定義し、さらにオブジェクトＣ（２０３）が保持するメッセージ・アクションの反応関係として、メッセージＭ１に反応するアクションをａ３とし、アクションａ３によりメッセージＭ１を送信するものを構築すれば、オブジェクト連携関係として、オブジェクトＣ（２０３）という新たなオブジェクトの挿入が可能となる。
【００６１】
このオブジェクト連携挿入は、多段とすることが可能であることは言うまでもない。その様子を図３に示す。図３では、連携挿入を２段階としたものを示している。上記の図２（ａ）から見て、図３は、オブジェクトＡ（２０１）とオブジェクトＢ（２０２）のオブジェクト連携に対して、オブジェクトＣ（２０３）とオブジェクトＤ（２０４）が挿入され、メッセージＭ１→アクションａ３→メッセージＭ２→アクションａ４→メッセージＭ３→アクションａ２というメッセージ・アクション反応関係が構築され、オブジェクトの連携が実現されている。
【００６２】
また、オブジェクト連携挿入の逆の処理としてオブジェクト連携の縮退も可能であることは言うまでもない。
【００６３】
次に、上記オブジェクト連携挿入の基本原理を適用したオブジェクト連携装置を示す。図４はオブジェクト連携装置の概略構成ブロック図である。
【００６４】
図４において、１０１は、ネットワーク上に送信されるメッセージをモニタして取り込むメッセージ受信部である。１０２は、メッセージに対する反応であるアクション内容とメッセージとの関係を記憶するメッセージ・アクション反応関係記憶部であり、メッセージ・アクション反応関係記憶部１０２は、メッセージ・アクション反応関係を保持するメッセージ・アクション反応テーブル（反応テーブル）１０３を備えている。ここでメッセージ・アクション反応関係記憶部１０２はメッセージ・アクション反応テーブル１０３にあるメッセージのパターンと１０１によって受信したメッセージとの比較を行ない、受信したメッセージが自らの持つメッセージのパターンと一致するかあるいは包含されるとき、対応するアクション内容を実行する。１０４は、指定されたアクション内容に従って処理を実行するアクション実行部である。１０５は、メッセージ・アクション反応関係を更新する必要性に応じてメッセージ・アクション反応関係記憶部１０２に記憶されたメッセージ・アクション反応関係の更新を制御するメッセージ・アクション反応関係更新制御部であり、メッセージ・アクション反応関係記憶部１０２中のメッセージ・アクション対応関係を分離するメッセージ・アクション反応関係分離部１０６と、指定されたメッセージに対して指定されたアクションを関係づけるメッセージ・アクション反応関係構築部１０７を備えている。
【００６５】
また、１０８は、必要に応じてネットワーク上にメッセージを送信するメッセージ送信部、１０９は通信インタフェース、１１０は通信メディアであるフィールドであり、コンピュータ間の通信などのネットワークも含む概念である。
【００６６】
いま、本発明のオブジェクト連携装置の具体的な実施形態として、ファイル共有表示を行う例を取り挙げて動作を説明する。
【００６７】
図５は、本実施形態１のオブジェクト連携挿入前のオブジェクト連携の概念を示している。５０１は共有表示機能を持たないファイル表示オブジェクト、５０２は共有表示機能を持たないディスプレイオブジェクトである。ファイル表示オブジェクト５０１およびディスプレイオブジェクト５０２とも図４に示す構成を持つものとする。
【００６８】
いま、ファイル表示オブジェクト５０１がファイルＡをディスプレイ上に表示する処理を行いたい場合、メッセージ送信部１０８および通信インタフェース１０９を介してメッセージＭ３をフィールド１１０に送出する。ここでメッセージＭ３は例えば（Display, FileA, x400, y300）とし、ファイルＡをＸＹ座標（４００，３００）を起点として表示するものとする。ディスプレイオブジェクト５０２はフィールド１１０をモニタしており、通信インタフェース１０９を介してメッセージ受信部１０８によりメッセージＭ３を検知して取り込む。
【００６９】
図５（ｂ）はディスプレイオブジェクト５０２のメッセージ・アクション反応関係記憶部１０２が保持している、メッセージ・アクション反応テーブル（反応テーブル）１０３の内容を表わしている。テーブルの左側にメッセージ、テーブルの右側に対応するアクションが記述されている。ここで、メッセージは（Display,＊, ＊, ＊）と記述されているが、“＊”はワイルドカードを意味し、記述内容の如何にかかわらずすべてが該当する。つまり、“Display”を第１項目として始まるメッセージはすべて該当することとなる。アクションは“Draw”とされ、ディスプレイオブジェクトがディスプレイ上に描画処理を実行することを指す。ディスプレイオブジェクト５０２は、メッセージＭ３を受信するとメッセージ・アクション反応テーブル１０３の内容を参照し、アクション“Draw”が得られ、アクション実行部１０４が描画処理を実行する。
【００７０】
次に、オブジェクト連携の挿入を行う場合を説明する。ここでは、新たに共有オブジェクトを導入し、新たなオブジェクト連携を挿入してシステムに共有表示機能を導入する例を示す。
【００７１】
図６（ａ）が新たに共有オブジェクト５０３を挿入した様子である。図６（ａ）に示すように、オブジェクトの連携は、ファイル表示オブジェクト５０１からディスプレイオブジェクト５０２へ連携するが、その後、共有オブジェクト５０３への連携を経て再度ディスプレイオブジェクト５０２へ連携しており、共有オブジェクト５０３への連携が挿入された形態となっている。
【００７２】
まず、メッセージ・アクション反応関係更新制御部１０５は、例えば、利用者からの指示やオブジェクト分散システムの負荷状況改善の必要性などから、メッセージ・アクション反応関係の更新内容が与えられると、メッセージ・アクション反応関係分離部１０６により、ディスプレイオブジェクト５０２のメッセージ・アクション反応関係記憶部１０２中のメッセージ・アクション対応関係を分離する。ここでは、メッセージ（Display,＊, ＊, ＊）とアクション（Draw）の関係付けを解消することを意味し、それらをディスプレイオブジェクト５０２のメッセージ・アクション反応テーブル１０３のエントリから一時消去しても良い。次に、メッセージ・アクション反応関係更新制御部１０５は、メッセージ・アクション反応関係構築部１０７により、図６（ｂ）に示すメッセージ・アクション反応テーブル１０３をディスプレイオブジェクト５０２に構築する。メッセージ（Display,＊,＊,＊）に対してアクション（Status）が関係づけられ、新たにメッセージ（Display-shared,＊,＊,＊）とアクション（Shared draw）のメッセージ・アクション対応関係およびメッセージ（Display-unshared,＊,＊,＊）とアクション（Unshared draw）を追加構築する。さらに、共有オブジェクト５０３において、メッセージ・アクション反応関係更新制御部１０５は、メッセージ・アクション反応関係構築部１０７により、図６（ｃ）に示すメッセージ・アクション反応テーブル１０３を構築する。新たにメッセージ（Check-status,＊,＊,＊）とアクション（Share）のメッセージ・アクション対応関係を構築する。
【００７３】
以上のメッセージ・アクション反応テーブル１０３の更新により、オブジェクト連携装置の動作は、以下のようになる。まず、ファイル表示オブジェクト５０１から送信されたメッセージＭ３（Display,File-A, x400, y300）が送出され、ディスプレイオブジェクト５０２はメッセージ・アクション反応テーブル１０３に基づいて反応し、アクション“Status”が実行される。ここで、アクション“Status”はメッセージＭ４（Check-status, File-A, x400, y300）を送出するようにプログラミングされており、メッセージＭ４をフィールド１１０上に送出する。次に、フィールド１１０をモニタしている共有オブジェクト５０３がメッセージＭ４を通信インタフェース１０９およびメッセージ受信部１０８を介して取り込む。共有オブジェクト５０３は、図６（ｃ）に示すメッセージ・アクション反応テーブル１０３に従って反応し、アクション“Share”を実行する。ここでアクション“Share”はメッセージＭ４の第２項で指定されたFile-Aが共有状態にあるファイルか否かをチェックし、共有状態であればディスプレイ上でファイル共有状態表示であることをユーザに通知した上でメッセージＭ５（Display-share, File-A, x400, y300）を送出し、共有状態でなければユーザにファイル共有状態にはないことを通知した上でＭ６（Display-unshared, File-A, x400, y300）を送出する。Ｆｉｇ５（ａ）では、ファイルＡは共有状態とし、共有オブジェクト５０３はメッセージＭ５（Display-shared, File-A, x400, y300）を送出する例を示している。ディスプレイオブジェクト５０２はメッセージ・アクション反応テーブル１０３に従って反応し、アクション“Draw”を実行する。
【００７４】
以上示したように、本来共有状態表示を持たなかった図５の構成によるオブジェクト連携装置が、本発明にかかるオブジェクト連携挿入を実施して図６に示す構成とすることにより、共有オブジェクト（オブジェクト）５０３と連携して共有状態表示が可能となった。
【００７５】
ここで注目すべき点は、第１に、ファイル表示を依頼したファイル表示オブジェクト５０１には一切変更が加えられていない点が挙げられる。第２に、ディスプイオブジェクト５０２への変更は動作状態において動的に可能である点が挙げられる。通常の従来のプログラミング技法によるオブジェクト連携では、ディスプレイオブジェクト５０２に対して行った変更は、プログラミングコードの再コンパイルやファイル表示オブジェクト５０１側での関数の変更が必要となるが、本発明にかかるオブジェクト連携挿入方式では、そのような作業は必要ではなく、より容易かつ柔軟に複数オブジェクトの連携関係の挿入、変更が可能となる。
【００７６】
（実施形態２）
本実施形態２は、分散オブジェクト連携におけるオブジェクト連携の連結の基本原理と本原理を適用したオブジェクト連携装置を説明する。
【００７７】
オブジェクト連携の連結とは、ある２つのオブジェクト連携が相互に独立して存在する場合に、当該２つのオブジェクト連携間の間を連結するブリッジの役割を果たすオブジェクトの連携関係を新たに構築し、２つの相互に独立したオブジェクト連携を一連のオブジェクト連携にすることをいう。つまり、当該２つのオブジェクト連携のうち一方のオブジェクト連携に続く新たなオブジェクト連携を挿入し、かつ、その新たなオブジェクト連携を上記２つのオブジェクト連携の他方へ連携させるものである。
【００７８】
図７は、オブジェクト連携の連結の基本原理を図式化したものである。図５と同様、オブジェクト、メッセージ、オブジェクトのアクション部分を概念的に抜き出して表示したものである。図７（ａ）はオブジェクト連携を連結する前の相互に独立したオブジェクト連携がある様子を示しており、図７（ｂ）がオブジェクト連携の連結後の様子を示している。図７において、７０１〜７０５はそれぞれオブジェクトＡ〜オブジェクトＥであり、Ｍ７〜Ｍ１０はメッセージである。
【００７９】
図７（ａ）において、オブジェクトＡ７０１とオブジェクトＢ７０２はメッセージＭ７を介して連携しており、オブジェクトＣ７０３とオブジェクトＤ７０４はメッセージＭ８を介して連携している。オブジェクトＢ７０２はアクションの一環においてメッセージＭ９をフィールド上に送信するが、オブジェクトＣ７０３およびオブジェクトＤ７０４は反応しない。ここでオブジェクトＣ７０３はメッセージＭ１０に反応するものとする。このように、それぞれ２つのオブジェクト連携同士は相互に独立しており、オブジェクト連携関係を持っていない。
【００８０】
ここで、図７（ｂ）に示すように、新たなメッセージ・アクション反応関係を持つオブジェクトＥ７０５を追加し、２つの独立したオブジェクト連携を連結することを考える。オブジェクトＥ７０５が、メッセージＭ９に反応してアクションａ５を起動し、メッセージＭ１０をフィールド上に送出するものとすると、上記一のオブジェクト連携であるオブジェクトＡ７０１〜オブジェクトＢ７０２のオブジェクト連携後に送出されるメッセージＭ９が、オブジェクトＥ７０５に取り込まれ、アクションａ５を介してメッセージＭ１０がフィールド上に送信され、上記他方のオブジェクト連携であるオブジェクトＣ７０３がメッセージＭ１０に対して反応してオブジェクトＣ７０３〜オブジェクトＤ７０４のオブジェクト連携が起動する。このように図７（ａ）では相互に独立していたオブジェクト連携が図７（ｂ）に示すように一連のオブジェクト連携として連結される。以上がオブジェクト連携の連結の基本原理である。
【００８１】
次に、オブジェクト連携連結の基本原理を適用した本発明のオブジェクト連携装置の実施形態を以下に示す。
【００８２】
メモ転送サービスを具体例として説明する。
【００８３】
本オブジェクト連携装置の概略構成ブロック図は、図４に示すものと同様で良いのでここでは詳細な説明は適宜省略する。
【００８４】
図８は、本実施形態２のオブジェクト連携の連結前のオブジェクト連携の概念を示している。８０１は第１のメモ送信オブジェクト（オブジェクト）、８０２は第１のメモ受信オブジェクトでディスプレイ上に受信内容を表示するオブジェクト、８０３は第２のメモ送信オブジェクト、８０４は第２のメモ受信オブジェクトでディスプレイ上に受信内容を表示するオブジェクトである。ここでは、相互に独立した２つのオブジェクト連携があり、第１のメモ送信オブジェクト８０１と第１のメモ受信オブジェクト８０２のオブジェクト連携と、第２のメモ送信オブジェクト８０３と第２のメモ受信オブジェクト８０４のオブジェクト連携がある。
【００８５】
今、メモ送信者Ｓが第１のメモ送信オブジェクト８０１を利用してメモ受信者ＲにファイルＢからなるメモ１を送信する場合を考える。通常、メモ送信者Ｓが第１のメモ送信オブジェクト８０１が存在するコンピュータを利用し、メッセージＭ１１を送信するアクションを起動させる。メッセージＭ１１は（Memo, user-S, user-R, File-B）のごとくなるものとする。メモ受信者Ｒが使っているコンピュータのメッセージ受信オブジェクト８０２は、図８（ｂ）に示すようなメッセージ・アクション反応テーブルを持ち、メッセージ（Memo,＊,＊,＊）とアクション（Show memo）のメッセージ・アクション対応関係が保持されている。メモ受信オブジェクト８０２は、メッセージＭ１１に対して反応することとなり、アクション（Show memo）が起動され、メモ受信者Ｒが使っているコンピュータのディスプレイ上にファイルＢが表示される。
【００８６】
ここで、メモ受信者Ｒが外出し、例えば、遠隔場所に移動したとする。この場合、上記オブジェクト連携だけでは、実際にメモ受信Ｒがメモを受信することができない。もし、メモ受信者Ｒの外出先にコンピュータがあり、そこには第２のメモ送信オブジェクト８０３と第２のメモ受信オブジェクト８０４のオブジェクト連携が存在し、第２のメモ受信オブジェクトが表示するディスプレイをメモ受信者Ｒが見られる環境にある場合を想定する。
【００８７】
ここで、図９（ａ）のようにオブジェクト連携の連結を考える。メモ受信者Ｒは外出前、受信メモを転送するように新しいオブジェクト連携を構築してメモが第２のメモ受信オブジェクト８０４までオブジェクト連携を連結する。メモ受信者Ｒは、第１のメモ受信オブジェクト８０２が存在するオブジェクト連携装置のメッセージ・アクション反応関係更新制御部１０５により、図８（ｂ）に示したメッセージ・アクション反応テーブル１０３の内容を図９（ｂ）に示すように（Memo,＊,＊,＊）とアクション（Ask transfer）のメッセージ・アクション反応関係に更新し、さらに、転送オブジェクト８０５を新たに構築し、転送オブジェクト８０５のメッセージ・アクション反応関係構築部１０７を介して、図９（ｃ）に示すようにメッセージ（Transfer,＊,＊,＊）とアクション（Send）からなるメッセージ・アクション反応テーブル１０３をメッセージ・アクション反応関係記憶部１０２上に構築する。
【００８８】
一方、第２のメモ送信オブジェクト８０３は、図９（ｄ）に示すメッセージ・アクション反応テーブル１０３を保持しており、第２のメモ受信オブジェクト８０４は、図９（ｅ）に示すメッセージ・アクション反応テーブル１０３を保持している。
【００８９】
以上のように構築されたオブジェクト連携の連結の動作を説明する。
【００９０】
まず、メモ送信者Ｓが第１のメモ送信オブジェクト８０１が存在するコンピュータを利用し、メッセージＭ１１（Memo,user-S,user-R,File-B）を送信するアクションを起動させる。この点は、図８（ａ）と同様である。メモ受信者Ｒが使っているコンピュータのメモ受信オブジェクト８０２は、図９（ｂ）に示すメッセージ・アクション対応関係に応じてメッセージＭ１１に反応してアクション“Ask transfer”が実行される。ここでアクション“Ask transfer”はメッセージＭ１１の第４項で指定されたFile-Bの転送を依頼するメッセージＭ１２を出力する。メッセージＭ１２は（Transfer,user-S,user-R,File-B）のごとくである。転送オブジェクト８０５は図９（ｃ）に示すメッセージ・アクション反応テーブルに従い、メッセージＭ１２に反応してアクション“Send”を起動する。“Send”はメッセージＭ１２の第４項で指定されたFile-Bを転送するメッセージＭ１３を送信する。転送にあたりあらかじめメモ受信者Ｒが外出先にあるコンピュータまたは当該コンピュータを含むネットワークの範囲を限定して転送しても良い。メッセージＭ１３は（Ask-show,user-S,user-R’,File-B）のごとくである。ここで第３項のuser-R’は転送先を示している。メモ受信者Ｒの外出先のコンピュータの第２のメッセージ送信オブジェクト８０３は、図９（ｄ）に示すようなメッセージ・アクション反応テーブルを持ち、メッセージ（Ask-show,＊,＊,＊）とアクション（Request show）のメッセージ・アクション対応関係が保持されており、メモ送信オブジェクト８０３は、メッセージＭ１３に対して反応することとなり、アクション（Request-show）が起動され、メッセージＭ１４を持ってメモ内容を送信する。メモ受信者Ｒの外出先のコンピュータに存在する第２のメッセージ受信オブジェクト８０４は、図９（ｅ）に示すメッセージ・アクション反応テーブルを持ち、メッセージ（Memo,＊,＊,＊）とアクション（Show memo）のメッセージ・アクション対応関係が保持されている。第２のメモ受信オブジェクト８０４は、メッセージＭ１４に対して反応することとなり、アクション（Show
memo）が起動され、メモ受信者Ｒの外出先のコンピュータのディスプレイ上にファイルＢが表示される。
【００９１】
以上示したように、本来図８（ａ）に示すように相互に独立した２つのオブジェクト連携同士に対して、図９（ａ）に示すようにオブジェクト連携を連結して一連のオブジェクト連携を構築することが可能となる。
【００９２】
ここで、図８に示した第１のメモ送信オブジェクト８０１と第１のメモ受信オブジェクト８０２の組と、第２のメモ送信オブジェクト８０３と第２のメモ受信オブジェクト８０４の組は等価である必要はなく、それぞれが図１で示した基本原理に基づいて動作するものであればかまわない。従って上記メモ送信オブジェクトと受信オブジェクトの組みが実際に動作する機器、ＯＳ、記述言語は独立であってかまわない。また、それぞれが図１に基づくメッセージ交換をするとき、メッセージのフォーマットが同じものである必要性はかならずしもなく、図９に示した両者の組の間を仲介する転送オブジェクト８０５が両者間のフォーマットの変換機能を備えていれば良い。
【００９３】
本実施形態においてのメモ転送のオブジェクト連携装置で注目すべき点の一つに、メモ転送を依頼した第１のメモ送信オブジェクト８０１には一切変更が加えられていない点が挙げられる。第２に、第１の受信オブジェクト８０２、転送オブジェクト８０５の変更は動作状態において動的に可能である点が挙げられる。通常の従来のプログラミング技法によるオブジェクト連携では、第１の受信オブジェクト８０２、転送オブジェクト８０５の変更は、プログラミングコードの再コンパイルや関数の変更が必要となるが、本発明にかかるオブジェクト連携連結方式では、そのような作業は必要ではなく、より容易かつ柔軟に複数独立したオブジェクトの連携の連結、変更が可能となる。
【００９４】
（実施形態３）
本実施形態３は、分散オブジェクト連携におけるオブジェクト連携の外部介入の基本原理と本原理を適用したオブジェクト連携装置を説明する。
【００９５】
オブジェクト連携の外部介入とは、あるメッセージ・アクション反応関係により連携しているオブジェクト連携に対して他のオブジェクトが外部から介入し、当初のメッセージ・アクション反応関係を切断し、オブジェクト連携の流れを自らに取り込み所定のアクションを実行した後、オブジェクト連携の流れを元のオブジェクトに返すものであり、実施形態１で説明したオブジェクト連携の挿入による介入の過程を外部にある他のオブジェクトによる介入として模式的に表したものである。実施形態１で説明したオブジェクト連携の多段挿入による介入の過程の説明はここでは適宜省略する。図１０に示す外部介入の例において分かるように、オブジェクト連携の外部介入は次に３段階からなる。つまり、オブジェクトＡの内部でメッセージ・アクションの切断の第１段階、オブジェクト連携先の付け替えの第２段階、新たなメッセージ・アクションの結合・外部オブジェクトによる介入実行の第３段階という３つの段階を経て行なわれている。この外部介入によってオブジェクトＡのみでは存在しなかった機能が、外部のオブジェクトＢとの相互作用を通して追加されたことになる。図１０の例で明らかなように、メッセージとアクションとの分離は、新たなオブジェクトとの相互作用の可能性を開く。Ａｗａｒｅｎｅｓｓアナロジ一の観点から見ても、分散オブジェクトの緩やかな連携における自由度は、メッセージ・アクションの連鎖の分離と再結合が可能であることによって生まれている。
【００９６】
次に、オブジェクト連携の外部介入の基本原理を適用した本発明のオブジェクト連携装置の実施形態を以下に示す。
【００９７】
タスクの依頼・応答を具体例として説明する。特に、当初外部からの負荷実行要求に対して単調な反応しか行うことの出来なかったオブジェクト群が、集団による負荷分散を実現できるように動的に変化する例を示す。
【００９８】
本オブジェクト連携装置の概略構成ブロック図は、図４に示すものと同様で良いのでここでは詳細な説明は適宜省略する。
【００９９】
図１１は、本実施形態３のオブジェクト連携の外部介入前のオブジェクト連携の概念を示しており、負荷に対して単調な反応を示す場合の例である。この例ではタスクオブジェクト１１０１の持つアクションはフィールドに“ｑｕｅｒｙ”というメッセージＭ１９を流している。このメッセージを受けて、メッセージ・アクション反応テーブルに“ｑｕｅｒｙ‐ｓｅｒｖｅ”というメッセージ・アクションの組を持つサーブオブジェクト１１０２が反応している。この図１１に示す例では“ｑｕｅｒｙ”というメッセージに反応するサーブオブジェクト１１０２が複数存在したとしても、それぞれのサーブオブジェクト１１０２はそれぞれが独立にアクション“Ｓｅｒｖｅ”を実行することになる。
【０１００】
次に、図１２は、本実施形態３のオブジェクト連携の外部介入によるオブジェクト連携の概念を示しており、外部オブジェクトとして仲介オブジェクト１１０３がサーブオブジェクト１１０２のメッセージ・アクション反応テーブルを書き換え、図１１に示したメッセージ“ｑｕｅｒｙ”とアクション“ｓｅｒｖｅ”というメッセージ・アクションのオブジェクト連携を切断し、仲介オブジェクト１１０３自らが介入し、“ｑｕｅｒｙ（Ｍ１９）”→“Ｂｉｄ”→“ａｐｐｌｙ（Ｍ２０）”→“Ｄｅｃｉｄｅ”→“ａｃｔｉｏｎ（Ｍ２１）”→“Ｓｅｒｖｅ”というオブジェクト連携へと変更している。
【０１０１】
以上のオブジェクト連携の外部介入によって、タスクオブジェクトは図１１と同様に“ｑｕｅｒｙ”メッセージを発信している点では全く同じ動作であるが、サーブオブジェクト１１０２はこのメッセージ“ｑｕｅｒｙ”に単純に反応するのではなく、仲介オブジェクト１１０３への“Ｂｉｄ”（応札）、“Ｄｅｃｉｄｅ”（落札）を受けてから“Ｓｅｒｖｅ”アクションを起こすように変化している。したがって仲介オブジェクトに競合する二つ以上のサーブオブジェクト１１０２の選別機能を持たせれば、負荷の低いサーブオブジェクト１１０２にタスクオブジェクト１１０１からの“ｑｕｅｒｙ”を実行させるような負荷分散機能を持たせたことが可能となる。ここで重要なことは、システム設計においてあらかじめ図１２のオブジェクト連携の状態を想定する必要はなく、図１１の単純なオブジェクト連携の状態を設計したのち、必要に応じて後から新たに仲介オブジェクトを追加した図１２のシステム形態への拡張設計を可能にしている点である。通常の従来のプログラミング技法によるオブジェクト連携では、タスクオブジェクト１１０１、サーブオブジェクト１１０２の変更は、プログラミングコードの再コンパイルや関数の変更が必要となるが、本発明にかかるオブジェクト連携外部介入方式では、そのような作業は必要ではなく、より容易かつ柔軟に外部オブジェクトの介入によるオブジェクトの連携の変更が可能となる。
【０１０２】
（実施形態４）
本実施形態４は、Ａｗａｒｅｎｅｓｓアナロジーに基づく分散オブジェクトの連携における受信側連携参加の基本原理と本原理を適用したオブジェクト連携装置を説明する。
【０１０３】
受信側連携参加とは、ある一つのメッセージによって連携しているオブジェクト連携がある場合に、他のオブジェクトが当該メッセージに対して反応するメッセージ・アクション反応関係を追加することにより、新たなオブジェクト連携を構築し、前記のオブジェクト連携に対して参加することをいう。つまり、一つのＡｗａｒｅｎｅｓｓメッセージに対するオブジェクト連携に複数のオブジェクトが反応して参加することが可能となる。
【０１０４】
図１３は、オブジェクト連携の受信側参加の基本原理を示す図であり、オブジェクトＡ（１３０１）の送信したメッセージＭ２２に対し、オブジェクトＢ（１３０２），Ｃ（１３０３），Ｄ（１３０４）がそれぞれ独自に反応している様子を示している。もちろんオブジェクトＢ（１３０２），Ｃ（１３０３），Ｄ（１３０４）におけるアクションは同じものであっても、それぞれ別のものであってもかまわない。このときオブジェクトＢ（１３０２）にとって、他のオブジェクトＣ（１３０３），Ｄ（１３０４）が存在しても存在しなくても影響はない。したがって図１３におけるオブジェクトＢ（１３０２），Ｃ（１３０３），Ｄ（１３０４）などの追加・削除は新規オブジェクトの参加や離脱によるアプリケーションの生成・消滅に他ならない。
【０１０５】
オブジェクト連携の受信側参加の基本原理を適用した本発明のオブジェクト連携装置の実施形態を図１４に説明する。図１４は、実施形態１の図５で説明したファイル内容のディスプレイ表示の例において受信側参加した例である。実施形態１と同様、ファイル表示オブジェクト１４０１がファイルＡをディスプレイ上に表示する処理を実行するためメッセージ送信部１０８および通信インタフェース１０９を介してメッセージＭ２２（Display, FileA, x400, y300）をフィールド１１０に送出する。フィールド１１０上には、図１４（ｂ）に示すメッセージＭ２２に反応するメッセージ・アクション反応テーブル１０３を保持しているディスプレイオブジェクト１４０２ａ〜ディスプレイオブジェクト１４０２ｃの３つのディスプレイオブジェクトが存在している。これらはフィールド１１０をモニタしており、フィールド１１０上を流れるメッセージＭ２２を検知して取り込む。
【０１０６】
ここではディスプレイオブジェクト１４０２ａ〜ディスプレイオブジェクト１４０２ｃの３つのオブジェクトがＭ２２の（Display, FileA, x400, y300）に反応し、アクション“Draw”を実行してファイルＡをディスプレイ上にそれぞれ表示する。もちろんここで１４０２ａ，１４０２ｂ，１４０２ｃは異なったマシンに対する異なったアクションで良く、すなわちそれぞれのオブジェクトが表示するディスプレイは同一である必要はなく、また表示形式や表示内容も同一である必要はない。
【０１０７】
このように、一のメッセージに対して反応するアクションを持つオブジェクト連携に対して、並行して当該一のメッセージに反応するアクションを持つオブジェクトを追加することによりオブジェクト連携の受信側に参加することができる。
【０１０８】
（実施形態５）
本実施形態５は、Ａｗａｒｅｎｅｓｓアナロジーに基づく分散オブジェクトの連携における送信側連携参加の基本原理と本原理を適用したオブジェクト連携装置を説明する。
【０１０９】
送信側連携参加とは、ある一つのメッセージによって連携しているオブジェクト連携がある場合に、他のオブジェクトが当該一のメッセージをフィールド１１０上に送信することにより、新たなオブジェクト連携を構築し、前記のオブジェクト連携に対して送信側から参加することをいう。つまり、一つのＡｗａｒｅｎｅｓｓメッセージに対するオブジェクト連携に複数のオブジェクトが同じメッセージを送信して参加することが可能となる。
【０１１０】
図１５はオブジェクト連携の送信側参加の基本原理を示す図であり、図１５に示すように、オブジェクトＡ（１５０１）とＢ（１５０２）が同一のメッセージＭ２３を送出し、オブジェクトＣ（１５０３）とメッセージＭ２３とが結び付けられている。この場合、オブジェクトＣ（１５０３）はメッセージＭ２３がオブジェクトＡ（１５０１）から送信されたメッセージであるかオブジェクトＢ（１５０２）から送信されたメッセージであるかは関係なく、反応してアクションを起動する。これはオブジェクトの連携において送出側での参加を許容しているということになる。これは見方を変えるとオブジェクトＡ（１５０１）とオブジェクトＣ（１５０３）との連携にオブジェクトＢ（１５０２）が送信者側として介入しているということができる。
【０１１１】
このように、一のメッセージに対して反応するアクションを持つオブジェクト連携に対して、並行して当該一のメッセージを送信するアクションを持つオブジェクトを追加することによりオブジェクト連携の送信側に参加することができる。
【０１１２】
オブジェクト連携の送信側参加の基本原理を適用した本発明のオブジェクト連携装置の実施形態を図１６に説明する。図１６は、実施形態１の図５で説明したファイル内容のディスプレイ表示の例において送信側参加した例である。実施形態１と同様、ファイル表示オブジェクト１６０１ａがファイルＡをディスプレイ上に表示する処理を実行するためメッセージ送信部１０８および通信インタフェース１０９を介してメッセージＭ２４（Display, FileA, x400, y300）をフィールド１１０に送出する。フィールド１１０上には、ファイル表示オブジェクト１６０１ａの他にアクションとしてメッセージＭ２４を送信するファイル表示オブジェクト１６０１ｂ〜１６０１ｃが存在している。ディスプレイオブジェクト１６０２は、フィールド１１０をモニタしており、メッセージＭ２４を検知して取り込むため、送信側オブジェクトが３つ存在することとなる。ここではディスプレイオブジェクト１６０２が図１５（ｂ）に示すメッセージ・アクション反応テーブル１０３を保持しており、メッセージＭ２４に反応してアクション“Draw”を実行し、それぞれの送信側オブジェクト１６０１ａ〜１６０１ｃから送信されたファイルをディスプレイ上に表示する。
【０１１３】
このように、一のメッセージに対して反応するアクションを持つオブジェクト連携に対して、並行して当該一のメッセージを送信するアクションを持つ送信オブジェクトを追加することによりオブジェクト連携の送信側に参加することができる。
【０１１４】
（実施形態６）
本発明の実施形態６のオブジェクト連携装置は、さらに、メッセージ・アクション反応条件設定部を備え、オブジェクトごとに受信したメッセージに対応するアクションが実行されるためのメッセージ・アクション反応条件を設定しておくもので、メッセージ・アクション反応関係記憶部が、メッセージ・アクション反応関係とメッセージ・アクション反応条件とを関連付けて記憶し、前記アクション実行部は、前記メッセージ・アクション反応条件が満たされた場合に受信したメッセージに対するアクションを実行するものである。
【０１１５】
図１７は本実施形態６のオブジェクト連携装置の概略構成ブロック図である。本実施形態６のオブジェクト連携装置は、図１７に示すように、メッセージ・アクション反応条件設定部１２０を備えている。また、メッセージ・アクション反応関係記憶部１０２のメッセージ・アクション反応テーブル１０３ａは、メッセージに対して関係付けられたアクションに加えて、当該メッセージ・アクション反応が実行されるためのメッセージ・アクション反応条件が関係付けられている。このメッセージ・アクション反応条件はメッセージ・アクション反応条件設定部１２０により設定される。設定されるメッセージ・アクション反応条件は、メッセージの特定のパラメタが設定範囲内にあるか否かというものでも良く、また、負荷条件などオブジェクトプラットフォームの環境が設定範囲内にあるか否かというものでも良い。なお、他の構成要素については実施形態１の図４で説明したものと同様のものについては同じ番号を付し、ここでの説明は省略する。
【０１１６】
本実施形態６のオブジェクト連携装置によるオブジェクト間の連携の概念を図１８に示す。これはメッセージ・アクション反応条件の働きを概念的に表わしたものである。図１８に示すように、オブジェクトＢ１８０２にはメッセージ・アクション反応条件１８０３が設けられている。概念的には受信したメッセージに対するフィルタとして働き、条件を満たす場合のみ受け入れを許可し、条件を満たさない場合には受け入れを拒否する。オブジェクトＡ１８０１から発信されたメッセージＭ２５はオブジェクトＢに受信された後、メッセージ・アクション反応条件１８０３が満たされているか否かをチェックする。どのようなメッセージ・アクション反応条件を設定するかは、運用による。例えば、メッセージを受信したオブジェクトのプラットフォームとしての負荷率に注目した反応条件を設定することができる。反応条件が負荷率０.５以下とすると、負荷率が０.５を超えているような負荷の大きいオブジェクトは、備えているメッセージ・アクション反応テーブル１０３ａにおいて、受信したメッセージに対してアクションが記述されていても、与えられているメッセージ・アクション反応条件が満足されていないのでアクション反応を実行することはない。
【０１１７】
メッセージ・アクション反応条件を設けることにより、以下のような効果を得ることができる。
【０１１８】
第１には、メッセージ・アクションの反応関係をより柔軟に記述することができる。実際の運用において利用者が実現したい処理や制御は複雑であったり、特定の条件が関係することがあり、メッセージとアクションの１対１の関係の記述のみですべてを記述することは困難である場合が想定される。本実施形態のオブジェクト連携装置によれば、複雑で特定の条件が関係する実運用の処理や制御をメッセージ・アクション反応テーブル１０２を用いて容易に記述することができる。
【０１１９】
第２には、フィールド１１０によりネットワークを形成しているオブジェクト連携装置全体において調和された負荷分散処理を実現することができる。メッセージとアクションの１対１の関係の記述のみであれば、メッセージ・アクション反応テーブルに記述されたメッセージを受信すればアクションを起こすことになる。受信したオブジェクトの稼動状況などは考慮されない。多数のオブジェクトから頻繁に発信されるメッセージの反応が記述されているオブジェクトは頻繁にアクションを実行することとなり、一時的に過負荷に陥る場合も想定され、負荷が集中することがある。本実施形態６のオブジェクト連携装置によれば、メッセージ・アクション反応条件として負荷率の上限値を設けておけば負荷の集中を防止することができ、調和のとれた負荷分散を実現できる。また、本実施形態６のオブジェクト連携装置によれば、二つの特定のメッセージが受理されたときにアクションを実行するようなＡＮＤ論理演算処理を実現することもできる。
【０１２０】
（実施形態７）
本実施形態７は、分散オブジェクト連携装置におけるオブジェクト連携関係をオブジェクトを表わすアイコンと、オブジェクト連携関係を表わすリンク線とにより表現したビジュアルチャートなどにより、外部に対して陽に示すものである。
【０１２１】
図１９は、本実施形態７のオブジェクト連携装置の基本原理を説明する図である。図１９の例では説明の便宜上、フィールド１１０には３つのオブジェクト連携装置Ａ１９１０、オブジェクト連携装置Ｂ１９２０、オブジェクト連携装置Ｃ１９３０のみが接続されている。原理的には接続されるオブジェクト連携装置の数には制限はなく、フィールド１１０は多数のフィールドがインターネットなどのネットワーク上で接続されたものでも良い。また、図１９の例では説明の便宜上、オブジェクト連携装置内の構成要素は適宜省略しており、オブジェクト連携装置Ａ１９１０は、通信インタフェース１０９、メッセージ・アクション反応テーブル１０３、メッセージ・アクション反応関係情報収集部１３０、オブジェクト連携関係解析部１４０オブジェクト連携関係提示部１５０のみが図示されているが、それ以外の構成要素も図４または図１７に示した構成要素と同様のものを備えている。また、オブジェクト連携装置Ｂ１９２０、オブジェクト連携装置Ｃ１９３０については内部の構成要素をすべて省略して図示している。
【０１２２】
分散オブジェクト連携装置におけるオブジェクト連携関係の抽出とその可視化方法を説明する。まず、各オブジェクト連携装置はメッセージ・アクション反応関係情報収集部１３０により自らが備えるオブジェクト、各オブジェクトのメッセージ・アクション反応テーブル１０３からメッセージと関係付けられたアクションの関係を示す情報を抽出する。次に、当該メッセージ・アクション反応関係情報を他のオブジェクト連携装置間で交換し合う。メッセージ・アクション反応関係情報をメッセージとしてメッセージ送信部１０８および通信インタフェース１０９を介してフィールド１１０上に流し、他のオブジェクト連携装置に与える。逆に、他のオブジェクト連携装置から発信されるメッセージ・アクション反応関係情報のメッセージを通信インタフェース１０９およびメッセージ受信部１０１を介して受信して得る。
【０１２３】
次に、得られた各オブジェクト連携装置のオブジェクト、各オブジェクトのメッセージ・アクション反応関係情報をオブジェクト連携関係解析部１４０により解析し、フィールド上に存在するオブジェクトの連携関係を解析・抽出する。まず、各オブジェクトをアイコンとして表示する。オブジェクトごとについて、反応しうるメッセージ、当該メッセージに対して反応するアクション、当該アクションが起動された場合に発信されるメッセージを抽出する。さらに、当該発信されたメッセージに反応するアクションを持つオブジェクトを洗い出してゆく。つまり、このメッセージ・アクション反応関係はオブジェクト間の連携を意味する。当該連携をオブジェクトアイコン間のリンク線として引く。上記処理をすべてのオブジェクトとその保持するメッセージ・アクション反応関係について行ない、オブジェクト連携関係をビジュアルチャートとして陽にオブジェクト連携関係表示部１５０上に表示する。ビジュアルチャートの例を図２０に示す。
【０１２４】
四角のアイコンはオブジェクトであり、下欄にはアクションが示されている。矢印はリンク線であり、矢印始点のオブジェクトの発信したメッセージに対して矢印終点のオブジェクトが反応しうることを示している。矢印にはフィールド上に流れるメッセージが添えられている。
【０１２５】
本実施形態７のオブジェクト連携装置によれば、以下の有利な効果が得られる。
【０１２６】
第１には、複雑であるオブジェクト連携関係を可視的なビジュアルチャートに表現することができ、連携関係が直感的に分かりやすく把握しやすくなる。
【０１２７】
第２には、１つのオブジェクトから起こりうるアクション反応を事前に知ることができる。オブジェクト同士は、メッセージとアクションの反応関係により緩やかに連携しており、本来、１つのオブジェクトからは他のオブジェクトがどのメッセージに対してどのようなアクション反応を起こすかは事前に把握することが困難な場合があるが、本実施形態７のオブジェクト連携装置によれば、起こりうるメッセージ・アクション反応関係、オブジェクト連携関係をビジュアルチャートとして事前に提供することができる。
【０１２８】
（実施形態８）
本発明の実施形態８のオブジェクト連携装置は、オブジェクト連携が、塊としてオブジェクト連携関係を維持するオブジェクト連携コア部分と、オブジェクト連携コア部分と他のオブジェクトとの連携をとりもつオブジェクト連携インタフェース部分を備え、オブジェクト連携関係の変更が生じた場合に、オブジェクト連携コア部分の関係はそのまま維持し、オブジェクト連携インタフェース部分の連携先を変更することによりオブジェクト連携関係の変更を行なう例を説明する。
【０１２９】
このオブジェクト連携インタフェース部分は、オブジェクト連携の流れにおいて、オブジェクト連携コア部分の後方に位置する場合は、当該オブジェクト連携コア部分の出力メッセージパターンに反応するアクション部分（出力範囲インタフェース）となり、当該アクション内容の書き換えによりオブジェクト連携先を柔軟に変更できる。また、オブジェクト連携コア部分の前方に位置する場合は、当該オブジェクト連携コア部分が反応しうる入力メッセージパターン（入力範囲インタフェース）となり、他のオブジェクトは当該入力メッセージパターンに合致するようにメッセージを発信すれば当該オブジェクト連携コア部分に対してオブジェクト連携を持つことができる。
【０１３０】
図２１は、オブジェクト連携が、オブジェクト連携コア部分とオブジェクト連携インタフェース部分とを備えた構成を持っている例を示す図である。
【０１３１】
図２１（ａ）において、実線２１００で囲まれた２つのオブジェクト２１００ａ〜２１００ｂがオブジェクト連携コア部分２１００を形成しており、また、実線２１１０で囲まれた２つのオブジェクト２１１０ａ〜２１１０ｂが別のオブジェクト連携コア部分２１１０を形成しており、これらはオブジェクト連携が、塊としてオブジェクト連携関係を維持する部分である。
【０１３２】
オブジェクト連携コア部分２１００において、オブジェクト２１００ａはそのメッセージアクション反応テーブル１０３の記述によりメッセージＭ２６に反応し、アクションａ２６を起動し、メッセージＭ２７を発するように構成されている。オブジェクト２１００ｂはそのメッセージアクション反応テーブル１０３の記述によりメッセージＭ２７に反応し、アクションａ２７を起動し、メッセージＭ２８を発するように構成されている。
【０１３３】
オブジェクト連携コア部分２１１０において、オブジェクト２１１０ａはそのメッセージアクション反応テーブル１０３の記述によりメッセージＭ２９に反応し、アクションａ２９を起動し、メッセージＭ３０を発するように構成されている。オブジェクト２１１０ｂはそのメッセージアクション反応テーブル１０３の記述によりメッセージＭ３０に反応し、アクションａ３０を起動し、メッセージＭ３１を発するように構成されている。
【０１３４】
図２１（ａ）に示すようにオブジェクト連携コア部分２１００と２１１０の間には点線で囲まれたオブジェクト連携インタフェース部分２１０１が設けられている。このオブジェクト連携インタフェース部分は、オブジェクト連携コア部分と他のオブジェクトとの連携をとりもつ部分であり、オブジェクト連携関係の変更が生じた場合に、オブジェクト連携コア部分の関係はそのまま維持し、オブジェクト連携インタフェース部分の連携先を変更することによりオブジェクト連携関係の変更を行なう。オブジェクト連携インタフェース部分は、オブジェクト連携の流れにおいてオブジェクト連携コア部分２１００および２１１０の前方、後方にも設けることができるが、ここでは説明の便宜上、両者の間についてのインタフェースであるオブジェクト連携インタフェース部分２１０１に注目して説明する。
【０１３５】
オブジェクト連携インタフェース部分２１０１は、１つのメッセージアクション反応テーブル１０３により制御されているオブジェクトである。メッセージＭ２８に対してアクションａ２８の関係付けが記述されている。当該アクションａ２８は、アクションの一部としてメッセージＭ２９を送信する内容となっている。このメッセージＭ２８に反応し、アクションａ２８を起動するという働きをもってオブジェクト連携コア部分２１００の出力範囲インタフェース２１０２として機能し、また、送信したメッセージＭ２９はオブジェクト連携コア部分２１１０が反応するのでオブジェクト連携コア部分２１１０の入力範囲インタフェース２１０３としても機能している。このオブジェクト連携コア部分２１００の出力範囲インタフェース２１０２とオブジェクト連携コア部分２１１０の入力範囲インタフェース２１０３とは、記述されたアクションａ２８がそのアクションの一部としてメッセージＭ２９を送信するという働きをもって関係づけられている。
【０１３６】
今、オブジェクト連携インタフェース部分２１０１であるオブジェクトにおいて、メッセージアクション反応テーブル１０３に記述されたアクションａ２８がそのアクションの一部としてメッセージＭ２９を送信するという関係を断ち切る。つまり、メッセージアクション反応テーブル１０３中のアクションの内容を書き換える。このオブジェクト連携インタフェース部分２１０１であるオブジェクトのメッセージアクション反応テーブル１０３中のアクションの内容を書き換えることにより、オブジェクト連携コア部分２１００の出力範囲インタフェース２１０２とオブジェクト連携コア部分２１１０の入力範囲インタフェース２１０３との関係は断ち切られるが、両者はそれぞれオブジェクト連携コア部分のインタフェースとしての機能は失われていない。つまり、出力範囲インタフェース２１０２と入力範囲インタフェース２１０３はインタフェースとして機能し、フレキシブルに新たなオブジェクトとの連携を構築することが可能となる。その様子を図２１（ｂ）に示す。メッセージアクション反応テーブル１０３中のアクションの内容を書き換え、アクションａ２８がアクションの一部としてＭ３２を送信するように記述すれば、あたかも出力範囲インタフェース２１０２の出力先が、オブジェクト２１２０に切り替わった効果が得られる。オブジェクト２１２０もその出力段において（出力範囲インタフェースを持っていることも想定できる）、入力範囲インタフェース２１０３に合致するように、メッセージＭ２９を送信することとすれば、オブジェクト連携コア部分２１１０に連携する。このように、オブジェクト連携インタフェース部分の持つインタフェース機能を活用すれば、フレキシブルにオブジェクト連携関係を変更することが可能となる。この様子を図２２に示す。
【０１３７】
以上の本実施形態８のオブジェクト連携装置の概略構成ブロック図を図２３に示す。本実施形態８のオブジェクト連携装置は、図２３に示すように、メッセージ・アクション反応関係構築部１０７ａが、アクション内容変更部１１１とインタフェース検知部１１２を備えている。このアクション内容変更部１１１は、メッセージ・アクション反応関係構築部１０７ａによるメッセージ・アクション反応テーブル１０３の内容の更新の際にアクション内容を書き換える部分である。インタフェース検知部１１２は、フィールド１１０上に存在するオブジェクト連携インタフェース部分が構成している入力範囲インタフェース、出力範囲インタフェースを検知し、当該インタフェース情報を管理しておく部分である。メッセージ・アクション反応関係構築部１０７ａは新たなオブジェクト連携関係を構築したいオブジェクトが持つ入力範囲インタフェース、出力範囲インタフェースとつながるように管理するオブジェクトのアクション内容を書き換え、合致するメッセージを送信するように変更し、新たなオブジェクト連携関係を構築する。なお、他の構成要素については実施形態１の図４で説明したものと同様のものについては同じ番号を付し、ここでの説明は省略する。
【０１３８】
以上、本実施形態８のオブジェクト連携装置によれば、オブジェクト連携が、塊としてオブジェクト連携関係を維持するオブジェクト連携コア部分と、オブジェクト連携コア部分と他のオブジェクトとの連携をとりもつオブジェクト連携インタフェース部分を備え、オブジェクト連携関係の変更が生じた場合に、オブジェクト連携コア部分の関係はそのまま維持し、オブジェクト連携インタフェース部分の連携先を変更することによりオブジェクト連携関係の変更を行なうことが可能となる。
【０１３９】
（実施形態９）
実施形態９は、始点となるオブジェクトから終点となるオブジェクトに至るまでの間をつなぐ連携関係を形成するオブジェクトを探索することにより、オブジェクト連携を形成する機能を持たせたオブジェクト連携装置を説明する。
【０１４０】
このオブジェクト連携の形成は、オブジェクト連携を構築したい始点となるオブジェクトと終点となるオブジェクトが決まっており、両者の間をつなぐオブジェクトの連携を探索して連携関係を形成する。本実施形態９のオブジェクト連携装置はオブジェクト探索部１１３の働きによりオブジェクト連携の探索を実行してゆく。
【０１４１】
本実施形態９の探索機能を備えたオブジェクト連携の基本原理を以下に説明する。探索機能としては複数のパターンの例を挙げることができる。例えば、前方向探索、後方向探索、前後両方向探索などがある。以下に後方向探索を例として実施形態９のオブジェクト連携装置およびそのオブジェクト探索機能の基本原理を説明する。
【０１４２】
図２４は、本発明の実施形態９のオブジェクト連携装置の概略構成ブロック図である。図２４に示すように、本実施形態９のオブジェクト連携装置は、オブジェクト探索部１１３を備えている。オブジェクト探索部１１３は、入力メッセージパターン、出力メッセージパターンを探索キーとして、フィールド１１０上に存在する当該入力メッセージパターン、出力メッセージパターンを持つオブジェクトを探索する部分である。なお、オブジェクト探索部１１３は、探索キーとしてアスタリスク「＊」をワイルドカードする探索が可能であり、例えば、探索キーとして入力メッセージパターンが「＊」、出力メッセージパターンがｊｐｅｇ形式と与えられれば、出力メッセージパターンがｊｐｅｇ形式のものであれば、入力メッセージパターンは任意のもので良く、該当する全てのオブジェクトが結果として得られることとなるものである。オブジェクト探索部１１３は、オブジェクトメッセージパターン検知部１１４を備え、前記オブジェクトメッセージパターン検知部１１４により、指定されたオブジェクトの入力メッセージパターン、出力メッセージパターンを検知することができる。また、後述する図２５などに示すように、検知したオブジェクトの入力メッセージパターン、出力メッセージパターンはビジュアルに図示できることが好ましい。なお、他の構成要素については実施形態１の図４で説明したものと同様のものについては同じ番号を付し、ここでの説明は省略する。
【０１４３】
図２５は、始点となるオブジェクトから終点となるオブジェクトに至るまでのオブジェクト連携を後方向探索方式により探索する基本原理を説明する図である。ここでは例として、「ｉ」形式のデータ（例えば、ビットマップ形式のデータ）を「ｋ」形式のデータ（例えば、ＪＰＥＧ形式の圧縮データ）に変換したいという利用者の要求があり、オブジェクトの連携により当該変換を実行する例を示す。またこの例では、オブジェクト探索部１１３の探索処理におけるフィールド上のオブジェクト間でのメッセージにおいてオブジェクトの入力メッセージパターン情報と出力メッセージパターン情報は、タグとして記述し、オブジェクトの連携関係はタグを含むプログラム記述言語、例えば、ｘｍｌ言語中のタグという形で記述している。図２６に、本実施形態で用いられる入力メッセージ、出力メッセージをあらわすdtdを示す。
【０１４４】
第１ステップとして、まず、オブジェクト探索部１１３は、オブジェクトメッセージパターン検知部１１４を用いて、始点と終点の提示を示すｘｍｌ形式のメッセージにより、始点となるオブジェクトの出力メッセージパターンと終点となるオブジェクトの入力メッセージパターンを検知する。
【０１４５】
図２５（ａ）に示した例において、左側にあるものは始点となるオブジェクトの出力メッセージパターン（２４０１）を表わしている。ここでは、「ｉ」形式である。右側にあるものは終点となるオブジェクトの入力メッセージパターン（２４０２）を表わしている。ここでは、「ｋ」形式である。つまり、始点となるオブジェクトの出力メッセージパターン２４０１から出発し、終点となるオブジェクトの入力メッセージパターン２４０２に至るまでのオブジェクト連携が構築できれば、「ｉ」形式のデータを「ｋ」形式のデータに変換できることとなる。
【０１４６】
図２７にオブジェクト探索部１１３が第１のステップにおいて送出するメッセージの例を示す。図２７のメッセージにおいて“MATRIX NAME”、“FmtTranslate”は、構築される連携の名称および連携のタイプを表すものであり、プロトコル、オントロジー、コンテンツ記述言語等、モジュール間の連携を規定するものの総称である。ENTRY ITEMの"Action" "request"は、このメッセージが、連携の始点と終点を提示すると同時に始点のファイルフォーマットから終点のファイルフォーマットへの変換を求めることを意味する。ENTRY ITEMの"Sender" "ui serv"は、このメッセージの送信者を示す。ENTRY ITEMの"RequestID" "dumy1"は、モジュール間の連携のconversation−idを示すものである。ENTRY ITEMの"OriginalMessageType" "「ｉ」"は、始点となるファイルフォーマットが拡張子「ｉ」を持つファイルであることを示すと同時に、始点となるアウトプットパターンが「ｉ」であることを示している。ENTRY ITEMの"TargetMessageType" "「ｋ」"は、終点となるファイルフォーマットが拡張子「ｋ」を持つファイルであることを示すと同時に、終点となるアウトプットパターンが「ｋ」であることを示している。ENTRY ITEMの"MessageKey"は、対象となる「ｉ」ファイルの所在を示すもので、この例ではuriで示されたui.phxというモジュールに936244885600というキーを渡すことででデータが取得できることを示している。本実施形態において図２７に示したメッセージを受理するオブジェクト（後述のimagearbiter.phx）は、"Action"，"Request"という部分に反応することが可能な入力パターンを持っており、また"Original MessageType"，"TargetMessageType"といったタグで示された内容に対する操作を持っている。
【０１４７】
第２ステップとして、この例では、後方向探索方式により探索するのでオブジェクト探索部１１３は、入力メッセージパターンをワイルドカードとし、出力メッセージパターンを終点となるオブジェクトの入力メッセージパターン２４０２、つまり「ｋ」として探索キーを設定し、探索を実行する。ここでワイルドカードとは任意のメッセージパターンを指す。この様子を概念的に示したものが図２５（ｂ）である。
【０１４８】
図２８にオブジェクト探索部１１３が第２のステップにおいて送出するメッセージの例を示す。図２８において、ENTRY ITEMの"Action" "in-request"は、このメッセージが、パターンに包含されるモジュールに対して返答を要求していることを意味している。ENTRY ITEMの"Sender"でuri形式でしめされているimagearbiter.phxは、このメッセージの送信者を示す。imagearbiter.phxは、FmtTranslate"をファイル変換を行うための連鎖を構築するための契約ネットをコントロールする仲介者に相当する。ENTRY ITEMの"RequestID" "dumy1"は、モジュール間の連携のconversation-idであり、図２７のメッセージに続く一連のメッセージであることを示すものである。ENTRY ITEMの"OriginalMessageType"はアスタリスク "*"で示されている。アスタリスク"*"はワイルドカードとして利用しており、「任意のファイルフォーマット形式」を意味している。すなわち、始点となるファイルフォーマットの拡張子がなんであってもよいことを意味している。ENTRY ITEMの"TargetMessageType" "「ｋ」"は、終点となるファイルフォーマットが拡張子「ｋ」を持つファイルであることを示すと同時に、終点となるアウトプットパターンが「ｋ」であることを示している。ENTRY ITEMの"MessageKey"は、対象となる「ｉ」ファイルの所在を示すもので、図２７に示されたファイルの所在をそのまま記述している。本実施形態において図２８で示したメッセージを受理するオブジェクト（後述の「j」2「k」.phx）は"Action"，"in-request"という部分に反応することが可能な入力パターンを持っている。また図２８で"Original MessageType"がワイルドカードであることは、受理する側のオブジェクトの入力パターンがなにか特定のもの（例えば本実施形態の「j」2「k」.phxの場合は「j」）であっても、「j」がワイルドカードとしての"＊"に包含されるため受理可能となることを示している。
【０１４９】
第３ステップとしてオブジェクト探索部１１３は、第２ステップで問い合わせたメッセージに反応して返される回答を受け付ける。この回答を得れば、終点となるオブジェクトの入力メッセージパターン２４０２につながるオブジェクト連携が得られたこととなる。この様子を概念的に示したものが図２５（ｃ）である。このように、探索されたオブジェクト２４０３から終点となるオブジェクトの入力メッセージパターン２４０２への連携が行なわれる。
【０１５０】
図２９にオブジェクト探索部１１３が第３のステップにおいて受信したメッセージの例を示す。図２９において、ENTRY ITEMの"Action" "bid"は、このメッセージが、in-requestに対する回答であり、in-requestのパターンに包含されるインプットパターンを持っていることを示している。ENTRY ITEMの"Sender"でuri形式でしめされている「ｊ」2「ｋ」.phxは、このメッセージの送信者を示す。「ｊ」2「ｋ」.phxは、FmtTranslate"をファイル変換を行うための連鎖を構築するための契約ネットを構成するサービスを提供する。、以下に示すように「ｊ」形式から「ｋ」形式へのファイルフォーマットの変換を行うことが可能なモジュールである。ENTRY ITEMの"RequestID" "dumy1"は、モジュール間の連携のconversation-idであり、図２７、図２８のメッセージに続く一連のメッセージであることを示すものである。ENTRY ITEMの"OriginalMessageType"が「ｊ」であるのは、「ｊ」2「ｋ」.phxというモジュールが「ｊ」ファイルを変換元とすることを示すと同時に、インプットパターンとして「ｊ」という型を持っていることを示している。この「ｊ」という型は図２８のアスタリスク"＊"で示された型に包含されている。ENTRY ITEMの"TargetMessageType" "「ｋ」"は、終点となるファイルフォーマットが拡張子「ｋ」を持つファイルであることを示すと同時に、終点となるアウトプットパターンが「ｋ」であることを示している。ENTRY ITEMの"MessageKey"は、図２８と同様であるが、出力対象となる「ｋ」ファイルの出力先を示すもので、出力されたファイルはこのキーを用いて取得することができる。ENTRY ITEMの"PathHistory"は、連鎖の構築が一段なされたことを示している。
【０１５１】
次に、オブジェクト連携が未だ始点のオブジェクト２４０１の出力メッセージパターンまで至っていない場合は、さらに連携するオブジェクトを探索すべく第２のステップと第３のステップを繰り返す。ここでは第２のステップの問い合わせ処理をもう一度実行する。オブジェクト２４０３の入力メッセージパターンは「ｊ」形式であるので、入力メッセージパターンをワイルドカードとし、「ｊ」形式を出力メッセージパターンとして探索キーを設定し、探索を実行する。この様子を概念的に示したものが図２５（ｄ）である。
【０１５２】
図３０にオブジェクト探索部１１３が繰り返しの第２のステップにおいて送出するメッセージの例を示す。図３０において、メッセージの"Action"は図２７と同様in-requestであり、メッセージの送信者はimagearbiter.phxである。MessageKeyとPathHistoryは図２９のものが用いられており、RequestIDは図２７以下同じものが用いられている。
【０１５３】
次に、オブジェクト探索部１１３は、繰り返しの第２ステップで問い合わせたメッセージに反応して返される回答を受け付ける。この回答を得れば、終点となるオブジェクト２４０２から始点のオブジェクト２４０１に向かう２つの段階のオブジェクト連携が得られたこととなる。この様子を概念的に示したものが図２５（ｅ）である。ここでは、得られた回答の中に入力メッセージパターンが「ｉ」形式であるオブジェクト２４０４が存在したとする。このオブジェクト２４０４を選ぶ。このように、後方向探索方式により、終点となるオブジェクトの入力メッセージパターン２４０２からオブジェクト２４０３、さらにオブジェクト２４０４への連携が行なわれ、始点となるオブジェクトの出力メッセージパターン２４０１に至るオブジェクト連携が探索できる。つまり、始点となるオブジェクト２４０１の出力メッセージパターン「ｉ」形式からオブジェクト２４０４、２４０３の連携を経て、終点となるオブジェクト２４０２の入力メッセージ「ｋ」形式にファイルが変換されるというオブジェクト連携が構築できる。
【０１５４】
図３１にオブジェクト探索部１１３が繰り返しの第３のステップにおいて受信したメッセージの例を示す。図３１において、メッセージの"Action"は図２９と同様bidで、メッセージの送信者は変換サービスを提供することができるwin2s.phxになっている。PathHistoryは図２９に追加される形で示している。"OriginMessageType"がアスタリスク"＊"であるのは、任意のファイルを「ｊ」形式に変換する能力をwin2「ｊ」.phxが持っていることを示している。図２９および図３１に示されたbidによって、任意のファイル形式が「ｋ」ファイルに変換できるという回答が得られたことになり、図２７のrequestであるｂｍｐファイルから「ｋ」ファイルへの変換が可能であるという回答が得られたことになる。本実施形態９では図２８に続くメッセージのコントロールを行っているimagearbiter.phxが図２７以下のメッセージをモニターすることでチェックした。
【０１５５】
次に、第５のステップとして、得られたオブジェクト連携を用いて実際にファイルを変換する。図３２は、図３１までに得られた結果を用いたファイル変換依頼のメッセージの例を示す図である。図３２ではメッセージの"Action"はin-serveとなっており、これはファイル変換サービスの実施を要求するものである。メッセージの送信者はimagearbiter.phxであり、契約ネットでいうところの応札者は、ITEM"Contract"によってwin2「ｊ」.phxを指定している。
【０１５６】
次に、第６のステップとして、依頼したオブジェクト連携の結果を受け取る。図３３は、図３２の結果を返すメッセージの例を示す図である。ここでは、さらに、図３４に示すように、図３３の結果を受けて再度、仲介オブジェクトとなるimgearbiter.phxがファイル変換を依頼している。
【０１５７】
図３２のActionは再びin-serveであり、OriginalMessageTypeとTargetMessageTypeが今度は「ｊ」と「ｋ」にそれぞれ書き換えられている。またサービスの実行者は図３３のPathHistoryを逆にたどることにより、「ｊ」2「ｋ」が選ばれており、選ばれたことはContractの項で示している。
【０１５８】
図３３のActionはin-informであり、これはファイル変換が無事終了したことを通知するものである。図３３では図３２に比べPathHistoryが一段短くなっている。これはwin2「ｊ」によって処理が行われたためである。変換されたファイルを取得するためにMessageKeyの部分は書き換えられている。
【０１５９】
図３４のActionは再びin-serveであり、OriginalMessageTypeとTargetMessageTypeが今度は「ｊ」と「ｋ」にそれぞれ書き換えられている。またサービスの実行者は図３２のPathHistoryを逆にたどることにより、「ｊ」2「ｋ」が選ばれており、選ばれたことはContractの項で示している
そして図３５は、図３４と同様、ファイル変換が無事終了したことを示すものである。図３５が図３４と異なる点はPathHistoryにもう項が残っていないことである。このことによっても図２７によって誘起された一連の処理が終了したことが示されている。TargetMessageTypeが「ｋ」であることは、最終的なファイルフォーマットが「ｋ」であることを示すと同時に、インプットパターンとして「ｋ」を持ち、TargetMessageTypeが「ｋ」というパターンとなることを待っているモジュールに処理が接続可能となったことを意味している。本実施形態では図２７のメッセージを送ったui servがインプットパターンとしてTargetMessageTypeの「ｋ」というパターンに反応して「ｋ」ファイルを表示する。
【０１６０】
以上の処理ステップにより、本実施形態９のオブジェクト連携装置は、オブジェクト連携を構築したい始点となるオブジェクトと終点となるオブジェクトを指定し、両者の間をつなぐオブジェクトの連携を探索して連携関係を形成することができる。
【０１６１】
上記処理においても分かるように、本実施形態のオブジェクト連携装置では、オブジェクトの連携関係探索において、入力メッセージパターンを特定して探索キーとして与え、出力メッセージパターンをワイルドカードとして連携する範囲を緩和しつつ（範囲を拡げつつ）探索を実行している。始点から終点に向けて範囲を絞って行くやり方に比べ、始点から始めて範囲を拡げつつ、終点を包含する写像が得られたときに始点から終点に至るオブジェクト連携を発見するという手法を用いるためより柔軟性のあるオブジェクト連携の探索法が実現できる。
【０１６２】
（実施形態１０）
本発明のオブジェクト連携装置は、上記に説明した構成を実現する処理ステップを記述したプログラムをコンピュータ読み取り可能な記録媒体に記録して提供することにより、各種コンピュータを用いて構築することができる。本発明のオブジェクト連携装置を実現する処理ステップを備えたプログラムを記録した記録媒体は、図３６に図示した記録媒体の例に示すように、ＣＤ−ＲＯＭ３６０２やフレキシブルディスク３６０３等の可搬型記録媒体３６０１だけでなく、ネットワーク上にある記録装置内の記録媒体３６００や、コンピュータのハードディスクやＲＡＭ等の記録媒体３６０５のいずれであっても良く、プログラム実行時には、プログラムはコンピュータ３６０４上にローディングされ、主メモリ上で実行される。
【０１６３】
さらに、ソースプログラムをコンパイルしたもののみならず、いわゆるネットワークを介してクライアントコンピュータに中間言語形式のアプレットを送信し、クライアントコンピュータ上でインタープリタ実行して動作する構成であっても良い。
【産業上の利用可能性】
【０１６４】
本発明のオブジェクト連携装置によれば、ネットワークに接続されたオブジェクト連携装置間の連携の自由度を高めることができ、コンピュータ群もしくはオブジェクト群の対話・協調などの連携処理を実施し、オブジェクト指向環境における環境の変化に柔軟に対応し、漸進的に変化するシステムが構築できる。また、システム設計において当初は単純なオブジェクト連携の状態を設計したのち、必要に応じて後からオブジェクトを追加するという拡張設計が可能となる。
【０１６５】
本発明のオブジェクト連携装置によれば、柔軟かつ動的にオブジェクト連携挿入ができ、挿入前後のオブジェクトへの影響を低減し、プログラム変更・再コンパイルなどの作業を不要とすることができる。
【０１６６】
本発明のオブジェクト連携装置によれば、柔軟かつ動的に相互に独立した連携していないオブジェクト連携を一連のオブジェクト連携への連結ができ、連結前後のオブジェクトへの影響を低減し、プログラム変更・再コンパイルなどの作業を不要とすることができる。
【０１６７】
本発明のオブジェクト連携装置によれば、柔軟かつ動的に一連のオブジェクト連携に対して外部のオブジェクトによる外部介入を行うことができ、オブジェクト連携の流れを変更することができ、変更前後のオブジェクトへの影響を低減し、プログラム変更・再コンパイルなどの作業を不要とすることができる。
【０１６８】
本発明のオブジェクト連携装置によれば、柔軟かつ動的に一のメッセージに対して反応するアクションを持つオブジェクト連携に対して、並行して当該一のメッセージに反応するアクションを持つオブジェクトを追加構築することができ、オブジェクト連携の受信側参加の形態を構築することができる。
【０１６９】
本発明のオブジェクト連携装置によれば、柔軟かつ動的に一のメッセージに対して反応するアクションを持つオブジェクト連携に対して、並行して当該一のメッセージを送信するアクションを持つオブジェクトを追加構築することができ、オブジェクト連携の送信側参加の形態を構築することができる。
【０１７０】
本発明のオブジェクト連携装置によれば、メッセージ・アクション反応関係に加えてその反応が起こるためのメッセージ・アクション反応条件を設定することができ、柔軟な運用が可能である。また、負荷が集中しないように反応条件を設定することでネットワーク全体にわたり調和が採れた負荷分散処理が可能となる。
【０１７１】
本発明のオブジェクト連携装置によれば、ネットワーク上のオブジェクト連携装置間の連携関係を可視的なビジュアルチャートとして表示することができ、直感的に分かりやすく把握でき、起こりうるアクション反応を事前に知ることができる。
【０１７２】
本発明のオブジェクト連携装置によれば、オブジェクト連携を構築したい始点となるオブジェクトと終点となるオブジェクトを指定し、両者の間をつなぐオブジェクトの連携を探索して連携関係を形成することができる。
【図面の簡単な説明】
【０１７３】
【図１】本発明の基本原理に関するＡｗａｒｅｎｅｓｓアナロジーにおけるオブジェクト間の緩やかな連携を模式的に示した図
【図２】本発明の実施形態１のオブジェクト連携挿入の基本原理を示す図
【図３】本発明の実施形態１のオブジェクト連携挿入を多段挿入とした場合の図
【図４】本発明の実施形態１のオブジェクト連携装置の概略構成ブロック図
【図５】本発明の実施形態１のオブジェクト連携挿入前のオブジェクト連携の概念を示す図
【図６】本発明の実施形態１の新たに共有オブジェクトを挿入してシステムに共有表示機能を導入した例を示す図
【図７】本発明の実施形態２のオブジェクト連携の連結の基本原理を示す図
【図８】本発明の実施形態２のオブジェクト連携の連結前のオブジェクト連携の概念を示す図
【図９】本発明の実施形態２のオブジェクト連携の連結の概念を示す図
【図１０】本発明の実施形態３のオブジェクト連携の外部介入の基本原理を示す図
【図１１】本発明の実施形態３のオブジェクト連携の外部介入前のオブジェクト連携の概念を示す図
【図１２】本発明の実施形態３のオブジェクト連携の外部介入の概念を示す図
【図１３】本発明の実施形態４のオブジェクト連携の受信側参加の基本原理を示す図
【図１４】本発明の実施形態４のオブジェクト連携の受信側参加の基本原理を適用した本発明のオブジェクト連携装置を示す図
【図１５】本発明の実施形態５のオブジェクト連携の送信側参加の基本原理を示す図
【図１６】本発明の実施形態５のオブジェクト連携の送信側参加の基本原理を適用した本発明のオブジェクト連携装置を示す図
【図１７】本発明の実施形態６のオブジェクト連携装置の概略構成ブロック図
【図１８】本発明の実施形態６のオブジェクト連携装置によるオブジェクト間の連携の概念を示す図
【図１９】本発明の実施形態７のオブジェクト連携装置の基本原理を説明する図
【図２０】本発明の実施形態７のオブジェクト連携装置が生成するビジュアルチャートの例を示す図
【図２１】オブジェクト連携が、オブジェクト連携コア部分とオブジェクト連携インタフェース部分とを備えた構成を持っている例を示す図
【図２２】オブジェクト連携インタフェース部分を活用してオブジェクト連携関係を変更する様子を示す図
【図２３】本発明の実施形態８のオブジェクト連携装置の概略構成ブロック図
【図２４】本発明の実施形態９のオブジェクト連携装置の概略構成ブロック図
【図２５】本発明の実施形態９のオブジェクト連携装置においてオブジェクト連携を後方向探索方式により探索する基本原理を説明する図
【図２６】本実施形態９で用いられるメッセージおよび入力メッセージ、出力メッセージをあらわすdtdを示す図
【図２７】本実施形態９においてオブジェクト探索部１１３が第１のステップにおいて送出するメッセージの例を示す図
【図２８】本実施形態９においてオブジェクト探索部１１３が第２のステップにおいて送出するメッセージの例を示す図
【図２９】本実施形態９においてオブジェクト探索部１１３が第３のステップにおいて受信したメッセージの例を示す図
【図３０】本実施形態９においてオブジェクト探索部１１３が繰り返しの第２のステップにおいて送出するメッセージの例を示す図
【図３１】本実施形態９においてオブジェクト探索部１１３が繰り返しの第３のステップにおいて受信したメッセージの例を示す図
【図３２】本実施形態９において第３１図により得られた結果を用いたファイル変換依頼のメッセージの例を示す図
【図３３】本実施形態９において第３２図の結果を返すメッセージの例を示す図
【図３４】本実施形態９において第３３図の結果を受けて再度、仲介オブジェクトとなるimgearbiter.phxがファイル変換を依頼するメッセージの例を示す図
【図３５】本実施形態９において第３４図と同様、ファイル変換が無事終了したことを示す図
【図３６】本実施形態１０における本発明のオブジェクト連携装置を実現する処理プログラムを記録した記録媒体の例を示す図
【図３７】従来技術のＣＯＲＢＡに基づいたクライアント／サーバシステムにおけるオブジェクト連携の例を示す図
【図１】
2005293611.tif 000003
【図２】
2005293611.tif 000004
【図３】
2005293611.tif 000005
【図４】
2005293611.tif 000006
【図５】
2005293611.tif 000007
【図６】
2005293611.tif 000008
【図７】
2005293611.tif 000009
【図８】
2005293611.tif 000010
【図９】
2005293611.tif 000011
【図１０】
2005293611.tif 000012
【図１１】
2005293611.tif 000013
【図１２】
2005293611.tif 000014
【図１３】
2005293611.tif 000015
【図１４】
2005293611.tif 000016
【図１５】
2005293611.tif 000017
【図１６】
2005293611.tif 000018
【図１７】
2005293611.tif 000019
【図１８】
2005293611.tif 000020
【図１９】
2005293611.tif 000021
【図２０】
2005293611.tif 000022
【図２１】
2005293611.tif 000023
【図２２】
2005293611.tif 000024
【図２３】
2005293611.tif 000025
【図２４】
2005293611.tif 000026
【図２５】
2005293611.tif 000027
【図２６】
2005293611.tif 000028
【図２７】
2005293611.tif 000029
【図２８】
2005293611.tif 000030
【図２９】
2005293611.tif 000031
【図３０】
2005293611.tif 000032
【図３１】
2005293611.tif 000033
【図３２】
2005293611.tif 000034
【図３３】
2005293611.tif 000035
【図３４】
2005293611.tif 000036
【図３５】
2005293611.tif 000037
【図３６】
2005293611.tif 000038
【図３７】
2005293611.tif 000039