(57)【要約】  【課題】メッセージを介したオブジェクト連携において、多様なメッセージ型を扱う。また、オブジェクト間の同期処理を簡便かつ柔軟に実行する。  【解決手段】メッセージ型を事前に分類階層化する。メッセージアクション反応関係記憶部１０２にメッセージ型ごとに整理したメッセージアクション反応テーブル１０３を保持する。受信したメッセージをメッセージ型分類・照合部１０７が照合する。メッセージアクション反応関係記憶部１０２が扱うメッセージ型であれば渡し、合わない場合は破棄する。渡されたメッセージを基にアクション実行部１０４がアクションを実行する。同期処理は、主体名書換オブジェクトを用意し、受信したメッセージ主体名をマスタ主体名に書き換えて送信する。同期するオブジェクトにはマスタ主体名のメッセージ内容に同期するアクションを記述しておく。【選択図】図３
2007293899.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上に送信されるメッセージをモニタして取り込むメッセージ受信部と、
メッセージに対する反応であるアクション内容を記憶するメッセージ・アクション反応関係記憶部と、
前記アクション内容に従って処理を実行するアクション実行部を備え、前記メッセージ・アクション反応関係に従って動作するオブジェクト連携装置において、
一のオブジェクト主体から受信したメッセージに対して、前記一のオブジェクト主体を表わすメッセージ中のオブジェクト主体名情報を、他のオブジェクト主体を表わすオブジェクト主体名情報に書き換えて、前記ネットワーク上に返す主体名書換オブジェクトを備えたことを特徴とするオブジェクト連携装置。
【請求項２】
オブジェクト間の同期処理にあたり、スレーブとなるオブジェクトの前記メッセージアクション反応関係記憶部において、前記主体名書換オブジェクトによる主体名書き換え先となる他のオブジェクト主体名を用いて前記同期処理を行ないたいアクション内容を記述しておき、
前記主体名書換オブジェクトは、前記書き換え先となる他のオブジェクト主体名を前記同期処理のマスタオブジェクトとなるオブジェクト主体名とする請求項１に記載のオブジェクト連携装置。
【請求項３】
コンピュータを、メッセージ・アクション反応関係に従って動作するオブジェクト連携装置として機能させるプログラムを記憶したコンピュータ読み取り可能な記録媒体であって、コンピュータを、
ネットワーク上に送信されるメッセージをモニタして取り込むメッセージ受信部と、
メッセージに対する反応であるアクション内容を記憶するメッセージ・アクション反応関係記憶部と、
前記アクション内容に従って処理を実行するアクション実行部と、
一のオブジェクト主体から受信したメッセージに対して前記一のオブジェクト主体を表わすメッセージ中のオブジェクト主体名情報を、他のオブジェクト主体を表わすオブジェクト主体名情報に書き換えて、前記ネットワーク上に返す主体名書換部とを備え、
一のオブジェクトの発信したメッセージの主体名を他のオブジェクト主体名に書き換えるオブジェクト連携装置として機能させるプログラムを記憶したことを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ群もしくはオブジェクト群の対話・協調などの連携処理を実施するオブジェクト連携装置に関し、オブジェクト指向環境において複数のプロセスが作りだされ、コンピュータネットワークを通じて、環境の変化に柔軟に対応し、漸進的に変化するシステム構築のためのオブジェクト連携装置に関する。
【背景技術】
【０００２】
近年、ネットワーク化が進み、ネットワーク上に分散した複数のオブジェクトが互いに連携して処理を行うシステムが増大してきている。このような複数のオブジェクトが連携して処理を行うための技法として、オブジェクト指向型プログラミングやコンポーネント技術などの研究がなされている。
【０００３】
オブジェクト指向型プログラミング共通仕様としてＣＯＲＢＡ（The Common Object Request Broker: Architecture and Specification）が知られている。図１０に、ＣＯＲＢＡに基づいたクライアント／サーバシステムにおけるオブジェクト連携の例を示す。このシステムは、クライアントアプリケーションとサーバ・アプリケーションとが連携、つまりオブジェクト連携により一連の処理を行うものである。
【０００４】
ＣＯＲＢＡでは、クライアントおよびサーバそれぞれが提供するサービスのインターフェースをＩＤＬ（Interface Definition Language）で記述する。ここではオブジェクトに依頼可能なオペレーション群に関して、そのオペレーション名、パラメタの定義、戻り値の定義、エラー発生時の例外処理、付加情報などを定義する。ＩＤＬで定義された内容を専用のコンパイラでコンパイルすることにより、クライアント用のスタブとサーバ用のスケルトンを生成する。クライアントアプリケーションは、スタブで提供されるルーチンを呼び出すことにより、オペレーションを起動して利用する。このスタブおよびスケルトンは、対応するクライアントアプリケーションあるいはサーバ・アプリケーションが使用するプログラミング言語で生成される。このように、ＣＯＲＢＡなどによりオブジェクト連携処理を構築することは、容易になってきている。しかし、実際にこのような連携処理を構築しようとすると、前述のＣＯＲＢＡであれば、ＣＯＲＢＡそのものの理解とともに、ＣＯＲＢＡの仕様に応じたオブジェクトの設計およびＩＤＬによる定義が必要となる。つまりその利用方法を、システムを構築する者が熟知する必要がある。また、それぞれのオブジェクトの関係を強く意識する必要がある。つまり、それぞれのオブジェクトがどういう処理を行うのか、その処理を行うために必要となる受渡しのパラメタは何かなどを明確にしておかなければならない。
【０００５】
ここで、人をオブジェクトに置き換えた場合、流れてくる情報に対して、それぞれのオブジェクトが、流れてきた情報を受信する／受信しない、また、受信した情報に対してどのような処理を行うかが異なる、言わば、オブジェクトとオブジェクトの関係が自由な連携というのが望まれてくる。この問題を解決する技術として、オブジェクト連携装置がある。このオブジェクト連携装置の技術によれば、各オブジェクトが共有するコミュニケーション空間内にメッセージ（受け手のオブジェクトを特定しないもの）が流れ、各オブジェクトは当該オブジェクトを取り込む。各オブジェクトはメッセージ・アクション反応テーブルを備えており、保持しているメッセージ・アクション反応テーブル内に取り込んだメッセージに対するアクションが記述されているか否かを調べ、記述されている場合は対応するアクションを実行するものである。オブジェクトの働きに注目すれば、特定のメッセージに反応してアクションを起こし、その他のメッセージに対しては反応しないこととなる。このオブジェクト連携装置によれば、オブジェクト間はメッセージを介して緩やかかつ柔軟に連携しており、オブジェクト間の連携関係の構築も簡便に行なえ、その変更も容易である。このようにメッセージ・アクション反応テーブルを利用したオブジェクト連携装置は優れた技術である。上記のオブジェクト連携装置は、メッセージ・アクション反応テーブルを利用したオブジェクト連携装置の基本構成を開示するものであるが、以下に示す点についてさらなる応用技術を研究した。
【０００６】
第１に、多様なプラットフォームを用いてオブジェクト連携を行なう場合の各プラットフォームに適するメッセージ構造の違いを弾力的に扱う研究である。メッセージ受信が可能なあらゆるプラットフォーム、例えば、小型機器用のＯＳを搭載したＰＤＡ（Personal Digital Assistance）、パーソナルコンピュータ、ＵＮＩＸワークステーション、大型機用のＯＳを搭載したメインフレームなど幅広いスケーラビリティを想定する場合には、それぞれのレンジのプラットフォームにとって扱いやすいメッセージ構造、メッセージ長は異なっていることが想定される。オブジェクト連携に参加しているすべてのオブジェクトのプラットフォームにおいて受信でき、さらに各レンジのプラットフォームにとって性能を十分引き出すことのできる仕組みが提供できれば便利である。
【０００７】
第２には、オブジェクト連携を行なうオブジェクト数、プラットフォーム数が大規模となり、通信路となるコアフィールドを流れるメッセージ数が大きくなった場合の処理効率の向上と高速化に関する研究である。
【０００８】
第３には、オブジェクト間の同期連携の構築に対する研究である。ここで、同期連携とは、特定のオブジェクト（連携元オブジェクト）のイベントに、特定のオブジェクト（連携先オブジェクト）のイベントが追従することを言う。典型的にはマウスの動きなど、連携元のオブジェクトのイベントに同期して連携先オブジェクトが同じイベントを実行するようなものである。
【発明の開示】
【０００９】
本発明は、従来のオブジェクト連携装置の特徴を十分活用し、さらに優れた技術的特徴を与えることを目的とする。
【００１０】
第１には、幅広いスケーラビリティを想定した多様なレンジのプラットフォームを用いて本発明のオブジェクト連携装置を構築し、それらプラットフォーム上で動作するオブジェクトが扱いやすいメッセージ構造、メッセージ長によるメッセージ処理を実現することを目的とする。
【００１１】
第２には、オブジェクト連携装置規模が大規模であってもオブジェクトのメッセージ照合処理などの負荷低減と高速化を図る仕組みを提供することを目的とする。
【００１２】
第３には、オブジェクト連携装置間の同期処理など、メッセージを発信したオブジェクト主体名の情報に関連したアクションが記述されている場合に、オブジェクト連携関係の簡便かつ柔軟な変更が可能となる仕組みを提供することを目的とする。
【００１３】
上記目的を達成するため、本発明の第１のオブジェクト連携装置は、各オブジェクトが、ネットワーク上に送信されるメッセージをモニタして取り込むメッセージ受信部と、メッセージに対する反応であるアクション内容を記憶するメッセージ・アクション反応関係記憶部と、前記アクション内容に従って処理を実行するアクション実行部を備え、前記メッセージ・アクション反応関係に従って動作するオブジェクト連携装置において、前記メッセージ・アクション反応関係記憶部が扱うメッセージ型を記憶保持し、受信したメッセージが持つメッセージ型を解析し、前記受信メッセージ型が前記メッセージ・アクション反応関係記憶部が扱うメッセージ型と一致するか否かの照合処理を行ない、一致した場合のみ前記メッセージ・アクション反応関係記憶部に渡すメッセージ型分類・照合部を備え、前記メッセージ・アクション反応関係記憶部に渡されたメッセージを基にメッセージ・アクション反応関係に従ったアクションを実行することを特徴とする。
【００１４】
上記構成により、メッセージ型分類を用いて受信メッセージを選別して取り込むことができ、オブジェクトの扱う型のメッセージのみに対して照合処理を実行できるので、プラットフォームごとに適したメッセージ構造、メッセージ長のメッセージを用いてオブジェクト連携関係を構築することができる。また、不必要な照合処理が省けるのでオブジェクトの負荷低減と照合処理の高速化を図ることが可能となる。
【００１５】
ここで、前記メッセージ型の分類が階層を持つことが好ましく、さらに、前記メッセージ型の分類階層がオブジェクト指向プログラミングにおける継承の概念を用いてクラス派生メッセージ型およびクラス派生元メッセージ型の分類階層を持つ構成とすれば、さらにオブジェクトの負荷低減と照合処理の高速化を図ることが可能となる。
【００１６】
次に、上記目的を達成するため、本発明の第２のオブジェクト連携装置は、各オブジェクトが、ネットワーク上に送信されるメッセージをモニタして取り込むメッセージ受信部と、メッセージに対する反応であるアクション内容を記憶するメッセージ・アクション反応関係記憶部と、前記アクション内容に従って処理を実行するアクション実行部を備え、前記メッセージ・アクション反応関係に従って動作するオブジェクト連携装置において、一のオブジェクト主体から受信したメッセージに対して、前記一のオブジェクト主体を表わすメッセージ中のオブジェクト主体名情報を、他のオブジェクト主体を表わすオブジェクト主体名情報に書き換えて、前記ネットワーク上に返す主体名書換オブジェクトを備えたことを特徴とする。
【００１７】
上記構成により、メッセージを発信したオブジェクト主体名の情報を他のオブジェクト主体名に書き換えることができ、オブジェクト連携関係を簡便かつ柔軟に構築・変更することが可能となる。例えば、同期処理のスレーブとなるオブジェクトのメッセージアクション反応関係記憶部において書き換え先となるオブジェクト主体名を用いて前記同期処理を行ないたいアクション内容を記述しておき、主体名書換オブジェクトにより書き換え先のオブジェクト主体名を同期処理のマスタオブジェクトとなるオブジェクト主体名と書き換えれば、オブジェクト間の同期処理を簡便かつ柔軟に実現することができる。
【００１８】
次に、上記目的を達成するため、本発明のメッセージ・アクション反応関係に従って動作するオブジェクト連携装置を実現する処理プログラムを記憶したコンピュータ装置読み取り可能な記録媒体は、各オブジェクトがネットワーク上に送信されるメッセージをモニタして取り込むメッセージ受信処理ステップと、メッセージに対する反応であるアクション内容を記憶するメッセージ・アクション反応関係記憶処理ステップと、前記アクション内容に従って処理を実行するアクション実行処理ステップと、前記メッセージ・アクション反応関係記憶処理ステップにおいて扱うメッセージ型を記憶保持する処理ステップと、受信したメッセージが持つメッセージ型を解析する処理ステップと、前記受信メッセージ型が前記メッセージ・アクション反応関係記憶部が扱うメッセージ型と一致するか否かの照合処理を行なう処理ステップと、一致した場合のみ前記メッセージ・アクション反応関係記憶部に渡す処理ステップとを備え、メッセージ型が一致するメッセージのみを取り込んでメッセージ・アクション反応関係に従ったアクションを実行するオブジェクト連携装置を実現する処理プログラムを記憶したことを特徴とする。
【００１９】
また、本発明のメッセージ・アクション反応関係に従って動作するオブジェクト連携装置を実現する処理プログラムを記憶したコンピュータ装置読み取り可能な記録媒体は、各オブジェクトがネットワーク上に送信されるメッセージをモニタして取り込むメッセージ受信処理ステップと、メッセージに対する反応であるアクション内容を記憶するメッセージ・アクション反応関係記憶処理ステップと、前記アクション内容に従って処理を実行するアクション実行処理ステップと、一のオブジェクト主体から受信したメッセージに対して前記一のオブジェクト主体を表わすメッセージ中のオブジェクト主体名情報を、他のオブジェクト主体を表わすオブジェクト主体名情報に書き換えて、前記ネットワーク上に返す主体名書換処理ステップとを備え、一のオブジェクトの発信したメッセージの主体名を他のオブジェクト主体名に書き換えるオブジェクト連携装置を実現する処理プログラムを記憶したことを特徴とする。
【００２０】
上記オブジェクト連携装置を実現する処理プログラムを、当該記録媒体を介してコンピュータに読み取ることにより、コンピュータ装置を利用して本発明のオブジェクト連携装置を構築することができ、利用者はオブジェクト連携関係をさらに容易かつ陽に把握することができるオブジェクト連携装置を構築できる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明のオブジェクト連携装置の実施形態について、図面を参照しながら説明する。
【００２２】
（実施形態１）
本実施形態１として、メッセージパターンの型分類とメッセージパターン照合を利用したオブジェクト連携装置を説明する。
【００２３】
まず最初に、オブジェクト連携の基本原理を簡単に説明する。オブジェクト連携は、連携するオブジェクト同士の関係を、互いの内部状態や内部関数に依存し合うような密な関係とはしないで、連携するオブジェクトの疎な関係を規定したオブジェクト間の連携によって機能を動的に構成している。オブジェクト連携の原理理解には、人間同士のコミュニケーションや相互に連携した行動において見られるＡｗａｒｅｎｅｓｓモデルが役に立つ。分散オブジェクト間の連携において、オブジェクト間に、人間同士に介在するＡｗａｒｅｎｅｓｓと同様の情報処理を行い、検知したＡｗａｒｅｎｅｓｓに基づくオブジェクト同士の連携処理が前提となる。Ａｗａｒｅｎｅｓｓアナロジーに基づく分散オブジェクトの連携もしくはコンピュータの連携は、以下のような構成によって実現することができる。
【００２４】
１．Ａｗａｒｅｎｅｓｓメッセージは、共有もしくはＢｒｏａｄｃａｓｔされている。
【００２５】
２．Ａｗａｒｅｎｅｓｓメッセージを受信するオブジェクトは、メッセージとアクションとの対応関係をそれぞれ独自に持っている。
【００２６】
３．Ａｗａｒｅｎｅｓｓメッセージを送信もしくは受信するオブジェクトにおいて、メッセージとアクションとの関係は分離されている。
【００２７】
Ａｗａｒｅｎｅｓｓアナロジーにおけるメッセージとアクションとが分離されている、あるいは分離可能であるという性質を利用することによって、オブジェクト間の相互作用として参加と介入という二つの重要な要素を付け加えることができ、ネットワークに接続されたオブジェクトとオブジェクトの連携あるいはコンビュータとコンビュータの連携の自由度を高めることが可能となる。
【００２８】
図１は、Ａｗａｒｅｎｅｓｓアナロジーにおけるオブジェクト間の疎な連携を模式的に示した図である。
【００２９】
図１において１１はオブジェクトＡ，１２はオブジェクトＢであり、それぞれＡｗａｒｅｎｅｓｓメッセージを送受信する主体であるオブジェクトである。Ｍ１はメッセージであり、Ａｗａｒｅｎｅｓｓメッセージを示す。ａ１はオブジェクトＡ（１１）中に規定されたアクション、ａ２はオブジェクトＢ（１２）中に規定されたアクションを示す。なお、図中の矢印は、起点がオブジェクトのときメッセージの送出を、終点がオブジェクトのときメッセージの受信を示している。またそれぞれのオブジェクトは内部状態としてのアクションをそれぞれ独自に持っているとする。
【００３０】
図１において、オブジェクトＡ（１１）とオブジェクトＢ（１２）の連携は、メッセージＭ１を介して行われる。ＡｗａｒｅｎｅｓｓアナロジーにおいてオブジェクトＡ（１１）は、オブジェクトＢ（１２）についてもオブジェクトＢ（１２）の持つ内部関数についても基本的には関知せずにメッセージを送出する。また、オブジェクトＢ（１２）自体を特定してメッセージを送出する必要もなく、オブジェクトＡ（１１）は自己の状態、処理内容に基づいてメッセージＭ１を送出する。オブジェクトＢ（１２）は通信路上を流れるメッセージをモニタし、メッセージＭ１を検知すると反応してアクションａ２を起動する。このようにオブジェクトＡとオブジェクトＢとは有為な連携を取り得るが、それはオブジェクトＡ（１１）とオブジェクトＢ（１２）の直接の結び付きによるものではなく、メッセージＭ１とオブジェクトＢ（１２）のアクションａ２とが結び付けられている帰結といえる。逆にメッセージがＭ１とは異なるものであれば、オブジェクトＢ（１２）は他にメッセージＭ１と結び付けられているアクションがない限り反応しない。このようにオブジェクト間の連携が緩やかにメッセージを介して行われることにより、オブジェクト間の連携の自由度が増すこととなる。つまり、従来のコンピュータネットワーク通信のように通信相手のアドレスおよび処理依頼内容を特定する必要がなく、ネットワーク上に自らの状態、処理結果などを表わすＡｗａｒｅｎｅｓｓメッセージを流し、ネットワークをモニタしている各端末がそのメッセージを検知し、対応するアクションが規定されていれば自律的に反応を起こすものである。
【００３１】
なお、Ａｗａｒｅｎｅｓｓアナロジーにおいて通信路は単にＬＡＮなどの物理的ネットワークだけではなく無線・音声・光などの共通に受信できる媒体を介在するものであれば特に限定する必要はない。また、共通に呼び出し可能なメモリ等の記録媒体であってもかまわない。さらに通信路のポートアドレスなどにより仮想的な存在であってもかまわない。
【００３２】
以上が、Ａｗａｒｅｎｅｓｓアナロジーに基づくオブジェクト連携の基本概念である。
【００３３】
図２は、複数のオブジェクトが共通のコミュニケーション空間であるコアフィールド上に接続され、メッセージを介してオブジェクト連携を実現する様子を表わした図である。２０（２０ａ〜２０ｄ）はオブジェクトであり、受信したメッセージに対してアクション反応を起こし得るという役割に注目してリアクタとオブジェクトである。このオブジェクトを単位としてメッセージ・アクションの反応関係によるサービスを提供し、この単位のオブジェクトがメッセージを介して複数相互に連携し、オブジェクト連携装置を構成している。図２の例では、２０ａ〜２０ｄの４つが示されている。なお、１つのパソコンなどのプラットフォームごとに１つのオブジェクト２０を構築する構成に限られず、１つのプラットフォーム内に多数のオブジェクト２０が構築されていても良いことは言うまでもない。２１はコアフィールドであり、コアフィールドでオブジェクト２０間を結び、メッセージが流される基本単位となるコミュニケーション空間である。このコアフィールドは１つのプラットフォーム内の多数のオブジェクトを連結する仮想通信路であっても良く、また、複数のプラットフォームを連結するＬＡＮのような通信路であっても良い。図２に示した例ではオブジェクト２０ａがメッセージＭ１をコアフィールド２１上に流し、当該メッセージＭ１がコアフィールドを介してオブジェクト２０ａ〜２０ｄにより受信されている様子を示している。メッセージＭ１を流したオブジェクト２０ａ自身もコアフィールド２１上のメッセージをモニタして取り込むのでメッセージＭ１をオブジェクト２０ａ自身も受信する。この例では、オブジェクト２０ｄは受信したメッセージＭ１に反応し、メッセージＭ１に対するアクションの１つとして新たなメッセージＭ２をコアフィールド上に流している。このメッセージＭ２もコアフィールドを介してオブジェクト２０ａ〜２０ｄにより受信される。
【００３４】
上記のような受信メッセージに対するアクションの反応関係は、後述するようにメッセージアクション関係記憶部が保持するメッセージアクション反応テーブル１０３による。取り込んだメッセージＭ１に対するアクションが当該反応テーブル１０３に記述されているか否かをチェックし、記述されているときは当該アクションをアクション実行部１０４により実行する。アクション内容には、アプリケーションなどが提供するサービス実行などの他、コアフィールド２１上へのメッセージの送信もある。このアクションまたはアクションの一部として送信するメッセージにより、次段以降のメッセージ・アクション反応が起こされ、オブジェクト間のメッセージを介した緩やかかつ柔軟なオブジェクト連携が実現する。
【００３５】
以上がメッセージを介したオブジェクト連携の基本原理である。
【００３６】
本実施形態１のオブジェクト連携装置は、オブジェクト間の共通コミュニケーション空間に流されるメッセージのパターンを型分類し、オブジェクトが当該メッセージを受信した場合にまずメッセージパターン照合を行ない、自らが扱うメッセージパターンとパターンマッチしたメッセージのみを内部に取り込んで、メッセージ・アクション反応を実行するものである。
【００３７】
図３に本実施形態１のオブジェクト連携装置の基本構成例を示す。１００は、オブジェクト連携装置を構成するプラットフォームである。本発明のオブジェクト連携装置は、多様なプラットフォームが混在しても実現できるので、パーソナルコンピュータ、ワークステーション、ホストコンピュータなど種類を特に限定しなくても良い。本実施形態１で示したオブジェクト連携装置はこのオブジェクトを単位としてメッセージ・アクションの反応関係によるサービスを提供し、この単位のオブジェクトがメッセージを介して複数相互に連携し、オブジェクト連携装置を構成している。なお、１つのパソコンなどのプラットフォームごとに１つのオブジェクトを構築する構成に限られず、１つのプラットフォーム１００に多数のオブジェクトが構築されていても良いことは言うまでもない。
【００３８】
図３に示したオブジェクトの各要素について説明する。１０１は、ネットワーク上に送信されるメッセージをモニタして取り込むメッセージ受信部である。１０２は、メッセージに対する反応であるアクション内容を記憶するメッセージ・アクション反応関係記憶部であり、このメッセージ・アクション反応関係記憶部１０２は、メッセージ・アクション反応関係を保持するメッセージ・アクション反応テーブル（反応テーブル）１０３を備えている。このメッセージ・アクション反応テーブル１０３は前記した通り、１つのテーブルは、メッセージ型分類上の特定の型のみに対応している。なお、メッセージ型ごとに整理されていれば、メッセージアクション反応関係記憶部１０２中は、複数のメッセージ・アクション反応テーブル１０３を保持していても良く、図３の例では１０３ａと１０３ｂの２つを備えている。
【００３９】
１０４は、指定されたアクション内容に従って処理を実行するアクション実行部である。１０５は、必要に応じてネットワーク上にメッセージを送信するメッセージ送信部、１０６は通信インタフェース、２１はコアフィールドであり、前記した通り、コンピュータ間の通信などのネットワークも含む概念のものであり、オブジェクト間を結び、メッセージが流される基本単位となるコミュニケーション空間である。複数のプラットフォーム間を連結するＬＡＮであっても良く、また、１つのプラットフォーム内に存在する多数のオブジェクト同士を連結するプラットフォーム内の仮想通信路をも含む概念である。さらに、コアフィールド２１上にインターネットワーキングのためルータ機能を持つゲートウェイを設けておけば、そのゲートウェイを介して他のコアフィールド上のオブジェクトとの連結も行なうことができる。
【００４０】
１０７は、メッセージ型分類・照合部である。メッセージ型分類・照合部１０７は、メッセージ・アクション反応関係記憶部１０２が扱うメッセージ型を記憶保持する。また、メッセージ受信部１０１を介して受信したメッセージが持つメッセージ型がどれであるかを解析し、当該受信メッセージのメッセージ型が、メッセージ・アクション反応関係記憶部１０２が扱うメッセージ型と一致するか照合処理を行なうものである。メッセージ型の分類は、システムの運用により適宜決めることができる。例えば、メッセージの記述がＸＭＬ言語であるかテキストストリングタプルであるかによる分類、さらにタプルの数、テキスト構造による分類などがある。メッセージ型の分類例については後述する。このメッセージ型分類・照合部１０７を備えることにより、コアフィールド２１に流れるメッセージを受信した後、メッセージ型を照合し、メッセージ型が合わないメッセージは破棄し、メッセージ型が合うメッセージのみ取り込み、メッセージアクション反応関係記憶部１０２に渡してメッセージアクション反応の照合処理を実行させることができる。このように、メッセージ型を利用したメッセージの選別を行なうことは、多様なプラットフォームが混在する環境でも、メッセージ型を固定する必要がなく、各プラットフォームが適する型によりメッセージ送受信を行なえば良く、当該メッセージ型を受け付けるいずれかのオブジェクトが反応することによりオブジェクト連携処理を運用させることができる。また、メッセージの選別受信により無駄なメッセージアクション照合処理を除去でき、リアクタとなるオブジェクトの負荷を低減し、照合処理を高速化することができる。連携するオブジェクトの数が多い大規模なシステムにおいて特に有利である。
【００４１】
次に、本実施形態１のオブジェクト連携装置で扱うメッセージ型の分類とメッセージ型照合処理について詳しく述べる。
【００４２】
図４は、本実施形態１のオブジェクト連携装置で扱うメッセージ構造の一例である。図４に示すように、メッセージ４００は、メッセージ型４０１とメッセージ本体４０２からなる。オプションとして、メッセージ型４０１はさらにクラス派生元メッセージ型４０３とクラス派生メッセージ型４０４の階層構造を持っていても良い。メッセージ本体４０２は、メッセージの本体であり、メッセージ・アクション反応テーブル１０３に記述されたメッセージに対応し、アクションに必要なデータ、パラメタなどを含んでいる。メッセージ型４０１は、メッセージ型分類上の型を表わすもので、典型的にはメッセージストリングタプル型、ＸＭＬメッセージ型などがある。ここでメッセージストリングタプル型は、1又は複数のテキスト列の集合であり、テキスト列集合の数および意味の格づけによりさらに数パターンに分類することができる。その例を示すと、英語の構文のように、メッセージの表意として主格をＳ、アクションをＶ、目的をＯとし、第１型（ＳＶ）第２型（ＳＶＯ）、第３型（ＳＶＯＯ）である。なお、これは一例であって、ＳＶＯＯＯなど他の型を定義することも可能である。
【００４３】
クラス派生元メッセージ型４０３とクラス派生メッセージ型４０４の階層構造を持つ場合の例としては、ある特定のメッセージ型においてさらにメッセージの型を階層分類できる場合などがあり、上記の例で言えば、メッセージ型がメッセージストリングタプル型とし、クラス派生元メッセージ型をＳＶＯとすれば、クラス派生メッセージ型としてＳＶＯ構造を含むＳＶＯ、ＳＶＯＯ、ＳＶＯＯＯなどを指定することができる。
【００４４】
オブジェクト連携装置は、メッセージ型、クラス派生メッセージ型、クラス派生元メッセージ型のメッセージ型ごとに、メッセージアクション反応テーブル１０３を１又は複数備えており、例えば、図３の例において、ＸＭＬメッセージ型のメッセージアクション反応テーブルを１０３ａ、メッセージストリングタプル型でＳＶＯＯ構造のメッセージ型のメッセージアクション反応テーブルを１０３ｂとすることができる。この２つのメッセージアクション反応テーブル１０３ａと１０３ｂを持つ場合には、メッセージ型分類・照合部１０７は、ＸＭＬメッセージ型と、メッセージストリングタプル型でＳＶＯＯ構造のメッセージ型とを、取り込むメッセージ型として記憶保持することとなる。処理動作は以下のようになる。例えば、コアフィールド２１上にメッセージ型がＸＭＬメッセージ型であるメッセージ（クラス派生元メッセージ型４０３がＸＭＬｍｓｇと記述されているもの）が流れてきた場合、メッセージ受信部１０１が通信インタフェース１０６を介して当該メッセージを取り込む。取り込まれたメッセージはメッセージ型分類・照合部１０７に渡され、メッセージ型照合が行なわれる。クラス派生元メッセージ型４０３にＸＭＬメッセージ型と記述されているのでメッセージ型分類・照合部１０７はメッセージ型が一致するものとして当該メッセージを取り込んで、ＸＭＬメッセージ型のメッセージである旨の情報を付してメッセージ本体４０２をメッセージアクション反応関係記憶部１０２に渡す。メッセージアクション反応関係記憶部１０２は、ＸＭＬメッセージ型に対応するメッセージアクション反応テーブル１０３ａを用いてメッセージ本体４０２を検索キーとし、対応するアクションを探索する。メッセージ本体４０２に対するアクションが記述されていた場合には、当該アクションを実行（反応）する。次に、例えば、コアフィールド２１上にメッセージ型がメッセージストリングタプル型でＳＶＯＯＯ構造型のメッセージ（クラス派生元メッセージ型４０３がＳＶＯ、クラス派生メッセージ型ＳＶＯＯＯと記述されているもの）が流れてきた場合、同様にメッセージ受信部１０１が通信インタフェース１０６を介して当該メッセージが取り込まれ、メッセージ型分類・照合部１０７においてメッセージ型照合が行なわれる。クラス派生元メッセージ型４０３にＳＶＯ型と記述されているのでメッセージ派生元クラスは一致するが、クラス派生メッセージ型がＳＶＯＯＯであるのでメッセージ派生クラスは一致しない。メッセージ型分類・照合部１０７は当該受信メッセージのメッセージ型照合がフォールトである判断し、メッセージ本体４０２を破棄し、メッセージアクション反応関係記憶部１０２に渡さない。
【００４５】
このように、メッセージ型を用いた受信メッセージの選別を行なうことにより、メッセージ型の合致するメッセージのみを取り込んで、対応するアクションを検索し、さらに、メッセージ型別に分類されているメッセージアクション反応テーブルを用いることにより、オブジェクトの負荷の低減、メッセージアクション反応処理の高速化が実現できる。
【００４６】
上記したように、メッセージ型の導入は、オブジェクト指向プログラミングにおける継承の概念をメッセージ型の照合処理に導入することが可能となる。以下に参考として、メッセージ型の導入をオブジェクト指向プログラミングにおけるクラスの記法に基づいて行った具体例を示す。図５、図６は、それぞれは、メッセージストリングタプル型でＳＶＯＯ形式に相当するメッセージ型とＸＭＬＭｓｇというＸＭＬに準拠したメッセージ型を取り扱うものの例である。
【００４７】
図５において、記述の１行目には、当該msg String Tup1eというメッセージ型がmsg ObjTypeというメッセージ型から派生していることが示されている。さらに、msg Srting Tup1eはその変数としてString形式のsubject,verb,obj1,obj2の４つとisMatchというメッセージと型の照合を行う機能が含まれている。このisMatchは、メッセージと型の照合を行う機能であるが、送信されるメッセージの一部に含まれていることが一つの特徴である。受信オブジェクト側で当該メッセージと型の照合機能を持っていない場合でも当該オブジェクトに照合機能を動的に持たせることが可能となる。
【００４８】
図６の例では、XMLMsgというメッセージ型がmsgObjTtpeというメッセージ型から派生し、さらにその変数はParserという型として保持されることを示している。またXMLMsgはメッセージ型をセットするための関数SetPatternとメッセージとパターンとの照合を行うisMatchという関数を持つことを示している。
【００４９】
このように、メッセージ型の導入は、オブジェクト指向プログラミングにおける継承の概念をメッセージ型の照合処理に導入することが可能となり、このことによってたとえば、システム全体のバージョンアップに対して型照合の整合性を保つことが可能となる。また、同じ型を継承する型間の共通部分のみの照合も可能となる。さらに、メッセージ型の導入により、その型の照合ロジック自体を必要に応じて外部から動的に導入することが可能となり、照合ロジック自体を、あとからシステムに導入・入れ替えることが可能となる。
【００５０】
（実施形態２）
本実施形態２は、匿名の主体名を利用したメッセージ記述と主体名の書き換えを行なう主体名書換オブジェクトを利用したオブジェクトの同期連携を実現するオブジェクト連携装置の実施形態である。
【００５１】
本実施形態２のオブジェクト連携装置を構成する１のオブジェクト装置構成自体は、図３に示したものと同様で良く、各要素の説明はここでは適宜省略する。本実施形態２のオブジェクト連携装置は、複数のオブジェクト装置がコアフィールドを介して連携動作するものであるが、そのうちの１つのオブジェクト装置が主体名書換オブジェクトとして機能する。
【００５２】
以下、マウスイベントの同期連携処理を例として、各オブジェクト装置の仕組みおよびその連携処理を説明する。各オブジェクトが利用するメッセージ型はメッセージストリングタプル型でＳＶＯＯとする。
【００５３】
今、図７に示すようにコアフィールド２１上に、マウスイベントの同期処理を実行するリアクタとなるオブジェクト７０ａ、オブジェクト７０ｂ、オブジェクト７０ｃを備えている。さらにコアフィールド２１上には、主体名書換オブジェクト７１が設けられている。オブジェクト７０ａ〜７０ｃ、主体名書換オブジェクト７１は、それぞれ別のプラットフォーム上に設けられても良く、また、複数のオブジェクトが同一のコンピュータプラットフォーム上に構築されていても良い。
【００５４】
リアクタなるオブジェクト７０ａ、７０ｂ、７０ｃのメッセージアクション反応テーブルにそれぞれ図８（ａ）〜（ｃ）に示すメッセージとアクションの対応関係を登録する。つまり、メッセージのＳＶＯＯ“Master”“MouseMove”“（Ｘ座標）”“（Ｙ座標）”に対してアクション“Move”の対応づけを登録する。ここで、アクション“Move”はポインティングデバイスを制御するＯＳに対して、メッセージから得た“（Ｘ座標）”“（Ｙ座標）”をあたかも自らのマシン上でマウスイベントが起こったものとして渡すものである。このように、各オブジェクト７０ａ、７０ｂ、７０ｃは、主体が“Master”であるオブジェクトが発したマウスイベントに同期するようにマウスの動作を行なうこととなる。
【００５５】
一方、主体名書換オブジェクト７１には、図８（ｄ）に示すメッセージとアクションの対応関係が登録されている。つまり、メッセージのＳＶＯＯ“＊”“MouseMove”“（Ｘ座標）”“（Ｙ座標）”に対してアクション“MasterOut”が記述されている。ここでメッセージ中の“＊”はワイルドカードを表わしており、主体名書換オブジェクト７１がメッセージを受信しうるすべてのオブジェクトが該当する。つまり、コアフィールド上に流れるマウスイベント“MouseMove”“（Ｘ座標）”“（Ｙ座標）”を表わすすべてのメッセージに反応する。アクション“MasterOut”は図８（ｅ）に示すメッセージをコアフィールド２１上に流すアクションである。このアクションは、図８（ｄ）と（ｅ）を対照して明らかなように、“＊”“MouseMove”“（Ｘ座標）”“（Ｙ座標）”として受信したメッセージに対して“Master”“MouseMove”“（Ｘ座標）”“（Ｙ座標）”のメッセージを発信するものであり、主体名を“＊”から“Master”に書き換える動作をしていることが分かる。この主体名書換オブジェクト７１により主体名が書き換えられたメッセージは、オブジェクト７０ａ、７０ｂ、７０ｃにより受信され、各オブジェクト７０ａ〜７０ｃ上で記述された座標に従ったマウスイベントの同期処理が行なわれる。
【００５６】
さらに、主体名書換オブジェクト７１が保持するメッセージアクション反応テーブルを書き換えることにより、同期処理を柔軟かつ簡便に変更することが可能となる。例えば、主体名書換オブジェクト７１のメッセージアクション反応テーブル“＊”を“オブジェクト７０ａ”と書き換えると、主体名書換オブジェクト７１は、図８（ｄ）に従い、オブジェクト７０ａの発したマウスイベントのみに反応し、オブジェクト７０ａの主体名を“Master”に書き換えてマウスイベント情報を含むメッセージをコアフィールド２１上に流すこととなる。オブジェクト７０ａ、７０ｂ、７０ｃは図８（ａ）〜図８（ｃ）に従い、主体名“Master”によるメッセージに反応してマウスイベントを同期させることとなる。結局オブジェクト７０ａの発したマウスイベントに同期してオブジェクト７０ａ、７０ｂ、７０ｃのマウスイベントが処理される。ここで、オブジェクト７０ａ自身も図８（ａ）に従い、主体名“Master”によるメッセージに反応してマウスイベントを同期させている。この方法によれば、主体名“Master”に対する同期を保つという決まりが常に保てるので、主体名書換オブジェクト７１が“＊”を他の主体名に書き換えたときでもオブジェクト７０ａはすぐに書き換え後の主体名のマウスイベントに同期することができることとなる。このように、同期処理の変更が主体名書換オブジェクト７１のメッセージアクション反応テーブルの書き換えのみで柔軟かつ簡便に行なうことができる。
【００５７】
以上、本発明のオブジェクト連携装置によれば、同期処理を行なうオブジェクトをマスタ権限を持つ主体に従って同期するという内容のメッセージアクション反応関係により緩やかに与えておき、主体名書換オブジェクトのメッセージアクション反応テーブルの内容書き換えのみによりマスタ権限を持つオブジェクト主体を任意のオブジェクトに変更することができ、オブジェクト間の同期処理を簡便、柔軟かつ動的に構築、変更することができる。
【００５８】
（実施形態３）
本発明のオブジェクト連携装置は、上記に説明した構成を実現する処理ステップを記述したプログラムをコンピュータ読み取り可能な記録媒体に記録して提供することにより、各種コンピュータを用いて構築することができる。本発明のオブジェクト連携装置を実現する処理ステップを備えたプログラムを記録した記録媒体は、図９に図示した記録媒体の例に示すように、ＣＤ−ＲＯＭ９０２やフレキシブルディスク９０３等の可搬型記録媒体９０１だけでなく、ネットワーク上にある記録装置内の記録媒体９００やコンピュータのハードディスクやＲＡＭ等の記録媒体９０５のいずれであっても良く、プログラム実行時にはプログラムはコンピュータ９０４上にローディングされ、主メモリ上で実行される。
【００５９】
さらに、ソースプログラムをコンパイルしたもののみならず、ネットワークを介してクライアントコンピュータにアプレットを送信し、クライアントコンピュータ上でインタープリタにより実行される構成であっても良い。
【産業上の利用可能性】
【００６０】
本発明のオブジェクト連携装置によれば、ネットワークに接続されたオブジェクト連携装置間の連携の自由度を高めることができ、コンピュータ群もしくはオブジェクト群の対話・協調などの連携処理を実施し、オブジェクト指向環境における環境の変化に柔軟に対応することができる。
【００６１】
本発明のオブジェクト連携装置によれば、メッセージ型を用いた受信メッセージの選別を行なうことにより、メッセージ型の合致するメッセージのみを取り込んで、対応するアクションを検索し、さらに、メッセージ型別に分類されているメッセージアクション反応テーブルを用いることができ、不要なメッセージアクション照合処理を除去し、オブジェクトの負荷の低減、メッセージアクション反応処理の高速化が実現できる。また、メッセージ型の導入は、オブジェクト指向プログラミングにおける継承の概念をメッセージ型の照合処理に導入することが可能となり、このことによってたとえば、システム全体のバージョンアップに対して型照合の整合性を保つことが可能となる。また、同じ型を継承する型間の共通部分のみの照合も可能となる。
【００６２】
本発明のオブジェクト連携装置によれば、同期処理を行なうオブジェクトをマスタ権限を持つ主体に従って同期するという内容のメッセージアクション反応関係により緩やかに与えておき、主体名書換オブジェクトのメッセージアクション反応テーブルの内容書き換えのみによりマスタ権限を持つオブジェクト主体を任意のオブジェクトに変更することができ、オブジェクト間の同期処理を簡便、柔軟かつ動的に構築、変更することができる。
【図面の簡単な説明】
【００６３】
【図１】Ａｗａｒｅｎｅｓｓアナロジーにおけるオブジェクト間の疎な連携を模式的に示した図
【図２】複数のオブジェクトが共通のコミュニケーション空間であるコアフィールド上に接続され、メッセージを介してオブジェクト連携を実現する様子を表わした図
【図３】本発明の実施形態１のオブジェクト連携装置の概略構成ブロック図
【図４】本発明の本実施形態１のオブジェクト連携装置で扱うメッセージ構造の一例を示す図
【図５】メッセージストリングタプル型でＳＶＯＯ形式に相当するメッセージ型を取り扱うメッセージ構造の例を示す図
【図６】ＸＭＬＭｓｇというＸＭＬに準拠したメッセージ型を取り扱うメッセージ構造の例を示す図
【図７】本発明の実施形態２のリアクタオブジェクト７０ａ〜７０ｃと主体名書換オブジェクト７１がコアフィールド２１上に設けられ、同期処理を行なう概念を示す図
【図８】本発明の実施形態２のリアクタオブジェクト７０ａ〜７０ｃと主体名書換オブジェクト７１のメッセージアクション反応テーブルに含まれている情報の例を示す図
【図９】本発明の実施形態３の記録媒体の例および当該記録媒体の処理プログラムを用いたシステム構成の例を示す図
【図１０】従来技術のＣＯＲＢＡに基づいたクライアント／サーバシステムにおけるオブジェクト連携の例を示す図
【図１】
2007293899.tif 000003
【図２】
2007293899.tif 000004
【図３】
2007293899.tif 000005
【図４】
2007293899.tif 000006
【図５】
2007293899.tif 000007
【図６】
2007293899.tif 000008
【図７】
2007293899.tif 000009
【図８】
2007293899.tif 000010
【図９】
2007293899.tif 000011
【図１０】
2007293899.tif 000012