JP4145477B2 - オブジェクト連携装置 - Google Patents

オブジェクト連携装置 Download PDF

Info

Publication number
JP4145477B2
JP4145477B2 JP2000339165A JP2000339165A JP4145477B2 JP 4145477 B2 JP4145477 B2 JP 4145477B2 JP 2000339165 A JP2000339165 A JP 2000339165A JP 2000339165 A JP2000339165 A JP 2000339165A JP 4145477 B2 JP4145477 B2 JP 4145477B2
Authority
JP
Japan
Prior art keywords
cooperation
class
conversion rule
object class
path
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000339165A
Other languages
English (en)
Other versions
JP2002149405A (ja
Inventor
忠重 岩尾
誠 岡田
真人 雨宮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2000339165A priority Critical patent/JP4145477B2/ja
Publication of JP2002149405A publication Critical patent/JP2002149405A/ja
Application granted granted Critical
Publication of JP4145477B2 publication Critical patent/JP4145477B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Stored Programmes (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータ群もしくはオブジェクト群の対話・協調などの連携処理を実施するオブジェクト連携装置に関する。特に、利用者が連携させる各オブジェクトのインタフェースの詳細を知らない場合でもオブジェクト同士を自動連携させてシステムを構築するオブジェクト連携装置に関する。
【0002】
【従来の技術】
近年、ネットワーク化が進み、ネットワーク上に分散した複数のオブジェクトが互いに連携して処理を行うシステムが増大してきている。このような複数のオブジェクトが連携して処理を行うための技法として、オブジェクト指向型プログラミングやコンポーネント技術などの研究がなされている。
【0003】
オブジェクト指向型プログラミングの一例として、オブジェクト指向技術の標準化と普及を目指して設立された業界団体OMG(Object Management Group)によって定められた分散オブジェクト運用のための共通仕様CORBA(The Common Object Request Broker : Architecture and Specification)がある。
【0004】
図21に、CORBAに基づいたクライアント/サーバシステムにおけるオブジェクト連携の例を示す。このシステムは、クライアントアプリケーションとサーバ・アプリケーションとが連携して、つまりオブジェクト連携により一連の処理を行うものである。
【0005】
アプリケーション開発者は、クライアントおよびサーバそれぞれが提供するサービスのインターフェースをIDL(Interface Definition Language)で記述する。また、インターネットのワールドワイドウェブでのサービスのインタフェースはWSDL(World wide web Service Definition Language)で記述する。インターフェースとして定義する内容は、オブジェクトに依頼できるオペレーション群であり、各々のオペレーションは、オペレーション名、パラメタの定義、戻り値の定義、エラー発生時の例外処理、付加情報などが定義される。
【0006】
IDLなどで定義された内容を専用のコンパイラでコンパイルすることにより、クライアント用のスタブとサーバ用のスケルトンが生成される。スタブは、クライアントアプリケーションにIDLなどで定義されたオペレーション群へのアクセスを提供するルーチン群である。クライアントアプリケーションは、スタブで提供されるルーチンを呼び出すことにより、オペレーションが起動される。スケルトンは、サーバ・アプリケーションが提供するメソッドルーチンヘのディスパッチングルーチンを提供する。
【0007】
スタブおよびスケルトンは、対応するクライアントアプリケーションあるいはサーバ・アプリケーションが使用するプログラミング言語で生成される。たとえば、使用されるプログラミング言語がC言語であったとすると、スタブはC言語の関数群として生成され、クライアントアプリケーションは、実行したいオペレーションに対応する関数を呼び出すことにより、スタブ、ORBランタイム、スケルトンを経由してサーバ・アプリケーションの該当ルーチンが呼び出され、所定の処理が実行されたあと、その処理結果が呼び出し元のクライアントアプリケーションに返される。
【0008】
【発明が解決しようとする課題】
このように、CORBAなどによりオブジェクト連携処理を構築することは、容易になってきている。しかし、実際にこのような連携処理を構築しようとすると、前述のCORBAであれば、CORBAそのものの理解とともに、CORBAの仕様に応じたオブジェクトの設計およびIDLやWSDLによる定義が必要となる。つまりシステムを構築する者は、IDLやWSDLで記述されたオブジェクトインタフェースの詳細およびその利用方法を熟知する必要がある。また、それぞれのオブジェクトの関係を強く意識する必要がある。つまり、それぞれのオブジェクトがどういう処理を行うのか、その処理を行うために必要となる受渡しのパラメタは何かなどを明確にしておかなければならない。例えば、サーバオブジェクトを利用する場合、そのオブジェクトに対応するIDL記述のインタフェースなどからスタブを作成し、そのスタブに対する操作をプログラムすることで利用可能となる。しかし、IDL記述はインタフェースの羅列であり、その記述でオブジェクトの利用法を理解するには相当の経験を要することとなる。
【0009】
また、連携がプログラム作成時に固定される点も問題点として挙げられる。複数のサーバオブジェクトを目的に合わせ連携させるとき、連携用のクライアントオブジェクトが必要となり、開発者は、該当するサーバオブジェクトのIDLインタフェースやWSDLインタフェースを理解し、連携用のクライアントオブジェクトを作成する必要がある。作成されたオブジェクトはIDLやWSDLを組み込むために固定的なものとなり、動的に変化させることはできない。従って連携させるサーバオブジェクトが異なるたびに連携用のクライアントオブジェクトが必要となる。このように連携用のクライアントオブジェクトはサーバオブジェクトの組み合わせの数だけ必要となる。IDLやWSDLを直接組み込むことなく動的にサーバオブジェクトを起動するダイナミックインボケーションなどのテクニックがあるが、メソッドのパラメタの意味をあらかじめ熟知してプログラムする必要があることから、すべてのサーバオブジェクトについてインプリメントすることは現実的ではない。
【0010】
このように、従来のオブジェクト連携による分散処理方法は、あくまでもオブジェクトとオブジェクトの関係は固定であることを前提しており、このような自由な関係を持った分散処理を実現するオブジェクト連携システムの構築は困難であり、CORBAやあるいはDCOMに代表されるオブジェクトアクセスを提供するための枠組みや分散オブジェクトのインターフェイスに関する枠組みは、オブジェクト間の連携をいかに動的に構築していくかという問題に十分に答えるものではない。
【0011】
本発明のオブジェクト連携システムは、上記問題点に鑑み、各オブジェクトのインタフェースの記述を解析してオブジェクトの連携関係を簡潔に表現し、利用者の目的に応じた処理を実行できるオブジェクト間の連携関係を自動的に検出し、それらオブジェクト群の連携処理を柔軟に構築するオブジェクト連携装置を提供することを目的とする。
【0012】
【課題を解決するための手段】
上記目的を達成するため、本発明のオブジェクト連携装置は、ネットワーク上のオブジェクトのインタフェース情報を入力して解析し、オブジェクト間の連携関係を変換ルールの集合として記述するルール記述部と、オブジェクト連携関係の始点となるオブジェクトクラスと終点となるオブジェクトクラスを指定するオブジェクトクラス指定部と、前記変換ルールに従ってオブジェクト間の連携関係を調べ、前記始点となるオブジェクトクラスと前記終点となるオブジェクトクラスをつなぐオブジェクトクラス間の連携パスを検出するオブジェクト連携パス検出部と、前記検出された連携パスに応じてオブジェクト間の連携関係の実行環境を構築するオブジェクト連携構築部と、前記始点となるオブジェクトクラスの値を指定する値指定部と、前記与えられた始点となるオブジェクトクラスの値を基に連携処理を実行するオブジェクト群とを備えたことを特徴とする。
【0013】
上記構成により、オブジェクト連携装置は、各オブジェクトのインタフェースの記述を解析してオブジェクトの連携関係をルールの集合として簡潔に表現でき、当該ルールによりオブジェクト間の連携関係を調べることにより、利用者の利用目的に応じ、始点となるオブジェクトから終点となるオブジェクトまでのオブジェクト間の連携パスを自動的に検出でき、また、それらオブジェクト群の連携処理を柔軟に構築することができる。
【0014】
ここで、前記オブジェクト連携構築部は、前記オブジェクト群の連携においてオブジェクト間に構造化メッセージと当該構造化メッセージに対する反応であるアクションとの関係づけによる連携関係を構築するものであり、連携元のオブジェクトに送信すべき構造化メッセージパターンを通知して実装させ、連携先のオブジェクトに受信により反応すべき前記構造化メッセージパターンおよび当該構造化メッセージパターンに対するアクションとを通知して実装させることが好ましく、また、前記オブジェクト群の各オブジェクトが、ネットワーク上に送信される構造化メッセージをモニタして取り込むメッセージ受信部と、構造化メッセージと構造化メッセージに対する反応であるアクションのセットを記憶する反応テーブルと、前記アクションの内容に従って処理を実行するアクション実行部を備え、前記メッセージ・アクションの反応関係に従って駆動することが好ましい。
【0015】
上記構成により、利用者の目的に応じて発見されたオブジェクト間の連携パスに沿い、フィールドリアクターモデルを用いて各々のオブジェクト連携関係を構築することができ、オブジェクト連携の自動的かつ柔軟な構築が可能となる。ここでフィールドリアクターモデルとは、フィールド上に存在するオブジェクト同士が、構造表現された構造化メッセージと当該構造化メッセージに対する反応アクションとの関係づけに沿って連携し合う仕組みを言う。
【0016】
さらに、前記オブジェクト連携パス検出部が、連携パスが複数検出された場合に一つの連携パスを利用者に選択させる連携パス選択部を備えることが好ましい。
【0017】
なぜなら、インタフェース記述に曖昧性がある場合、一意に連携パスが定まらない場合もあり得るからである。かかる場合に連携パスを一意に定める。
【0018】
さらに、前記オブジェクト連携パス検出部が、検出した一つながりの連携パスを構成する個々のサブ連携パスに分離し、各々のサブ連携パスを区別して連携パスの実行時コンテキストを生成し、前記連携パスをオブジェクトクラス間の連携パスから連携実行時に渡される値を変数としたオブジェクト連携実行用パターンの連携パスに変換するオブジェクト連携実行用パターン生成部を備えることが好ましい。
【0019】
上記構成により、オブジェクト連携実行用パターンの連携パスを準備しておけば、オブジェクト連携実行時には当該変数に対する値を与えるのみでオブジェクトインスタンスレベルでのオブジェクト連携を簡単に実行できる。
【0020】
ここで、前記オブジェクト連携構築部がオブジェクト間に連携関係を構築する場合、前記連携パスにおいて、複数のオブジェクト連携元とオブジェクト連携関係を持つオブジェクト連携先がある場合、前記オブジェクト連携先は前記複数のオブジェクト連携元の各々から個別に構造化メッセージを受信し、前記反応テーブルのアクションが発火するために必要なすべての引数が揃ったことを契機としてアクションを発火させる構造化メッセージパターン・反応アクションの関係づけを持つことが好ましい。
【0021】
上記構成により、複数のオブジェクト連携元の処理を、いわゆるAND演算の形で受け、所定複数のオブジェクト元との連携成立を契機としてオブジェクト連携先が反応するように連携関係を制御することができる。なお、このように複数のオブジェクト連携元との連携成立を契機としてオブジェクト連携先が反応する関係を「ジョイン(Join)関係」と呼ぶ。また、前記ジョイン関係とは異なるバリエーションとして、複数のオブジェクト連携元の処理を、いわゆるOR演算の形で受け、一又は所定組み合わせのオブジェクト元との連携成立を契機としてオブジェクト連携先が反応するように連携関係を制御することもできる。
【0022】
さらに、前記オブジェクト連携パス検出部が連携パス検出の学習機能を備え、前記オブジェクトクラス指定部から与えられた始点となるオブジェクトクラスと終点となるオブジェクトクラスをつなぐオブジェクトクラス間の連携パスの検出結果を知識として蓄積し、連携パス検出処理に用いることが好ましい。
【0023】
上記構成により、利用者の目的に応じたオブジェクト連携パスを学習でき、学習知識の蓄積とともに処理効率向上を図ることができる。
【0024】
なお、上記の各構成において、前記オブジェクトのインタフェース情報がIDLまたはWSDLのいずれかで記述された情報とすれば、CORBAなど普及しつつあるオブジェクト連携システムに対して本発明を適用することが容易となる。
【0025】
また、上記オブジェクト連携装置を実現する処理プログラムを記録した記録媒体を提供することにより、パーソナルコンピュータなどに記録媒体からオブジェクト連携装置を構成する処理プログラムを読み取らせて、安価かつ手軽に本発明のオブジェクト連携装置を実現することができる。
【0026】
【発明の実施の形態】
(実施形態1)
本発明のオブジェクト連携システムは、各オブジェクトのインタフェース情報を解析してオブジェクトの連携関係を簡潔に表現し、利用者の目的に応じた処理を実行できるオブジェクト間の連携関係を自動的に検出し、それらオブジェクト群の連携処理を柔軟に構築するオブジェクト連携装置を提供するものである。本発明のオブジェクト連携装置が実行するオブジェクトの自動連携とは、利用者の利用目的に応じ、連携を開始するオブジェクトクラスの集合を出発点とし、ユーザが欲するオブジェクトクラスを終点とし、出発点から終点に至るまでのオブジェクトの連携を構成することである。ここでは連携を開始するオブジェクトクラスを始点オブジェクトクラスと呼び、最終的に目的のオブジェクトクラスを終点オブジェクトクラスと呼ぶことにする。なお以下では、便宜上、オブジェクトのインタフェース情報がIDLで与えられている場合を例として説明する。
【0027】
本実施形態1のオブジェクト連携装置は、第一の仕組みとして、IDLやWSDLなどの言語で定義された各オブジェクトのインタフェースの記述を解析し、オブジェクト間の連携関係の表現形式をそれら言語表現形式からオブジェクト間の連携関係を変換ルールの集合として記述した表現形式に変換する手段を備えている。
【0028】
また、本実施形態1のオブジェクト連携装置は、第二の仕組みとして、利用者の目的に応じてオブジェクト連携関係の始点となるオブジェクトクラスと終点となるオブジェクトクラスを指定する手段と、変換ルールに従ってオブジェクト間の連携関係を調べ、始点となるオブジェクトクラスと終点となるオブジェクトクラスをつなぐオブジェクトクラス間の連携パスを検出する手段を備えている。
【0029】
また、実施形態1のオブジェクト連携装置は、第三の仕組みとして、上記の第二の仕組みにおいて検出されたオブジェクト同士の連携パスをもとに、それらオブジェクト間の連携関係の実行環境を自動構築する仕組みを備えている。
【0030】
さらに、実施形態1のオブジェクト連携装置は、第四の仕組みとして、実際のオブジェクト連携実行手段として、始点となるオブジェクトクラスの値を指定する手段と、与えられた始点となるオブジェクトクラスの値を基に連携処理を実行するオブジェクト群とを備えている。
【0031】
図1にオブジェクト連携構築処理の概要を示す。まず、本発明のオブジェクト連携処理において、上記第一の仕組みとしてオブジェクト間の連携関係を示す変換ルール集合101を利用する。IDLはインタフェースの記述と同時にオブジェクトクラスおよびデータ型等についても定義している。そこでメソッドの入出力オブジェクトのクラスの関係に着目すると、メソッドは入力オブジェクトのクラス名から出力オブジェクトのクラス名への変換ルールと捉えることが可能である。この場合プリミティブなInt,Stringなどのデータ型は、システム定義のクラス名となる。また、継承関係も変換ルールとして表現する。このようにIDLによって定義されたインタフェースを変換ルールとして、ユーザから与えられるIDL定義インタフェースの集合を変換ルール集合101として蓄積する。簡単な例を図2に示す。図2(a)はIDL記述によるインタフェース情報の例、図2(b)は図2(a)のインタフェース情報から生成した変換ルールの例である。変換ルールの集合から各オブジェクトと変換ルールとの関係を模式的に図示した例が図3である。図3(a)の6つの変換ルールから図3(b)のオブジェクトおよび変換ルールの関係が得られる。
【0032】
次に、本発明のオブジェクト連携処理において、上記第二の仕組みとして連携パスの検出処理102を行う。オブジェクト連携順序は、変換ルールの適用順序として捉えることができる。ここでは変換ルールの適用順序を連携パスと呼ぶ。まず、ユーザは、始点オブジェクトクラスと終点オブジェクトクラスを連携パスの検出処理102に与え、連携パスの検出処理102はユーザから与えられた始点オブジェクトクラスから変換ルールを適用し、終点オブジェクトクラスへ到達するまでの変換ルールの適用順序を計算する。得られた変換ルールの適用順序をメソッドヘ逆変換することで、オブジェクトのメソッド呼び出しの関係を得ることができ、オブジェクトの連携を構築することができる。
【0033】
なお、連携パスの検出方法としては複数の方法がある。第一には、指定された始点となるオブジェクトクラスから出発してオブジェクトの連携関係を順方向に拡大してゆき、終点となるオブジェクトクラスへ到達するパスを発見する方法がある。第二には、指定された終点となるオブジェクトクラスから出発してオブジェクトの連携関係を逆方向に拡大してゆき、始点となるオブジェクトクラスへ到達するパスを発見する方法がある。第三には指定された始点となるオブジェクトクラスおよび終点となるオブジェクトクラスの双方から出発して、始点となるオブジェクトクラスからはオブジェクトの連携関係を順方向に拡大してゆき、終点となるオブジェクトクラスからはオブジェクトの連携関係を逆方向に拡大してゆき、両者を結ぶパスを発見する方法がある。
【0034】
ここで、連携パスが複数発見される場合があり得る。変換ルールは、インタフェース定義から生成されることから、この場合インタフェース定義に曖昧性が存在していることになる。複数の連携パスを発見した場合、開発者に曖昧性がある部分と複数個の連携パスを提示する。開発者は、提示された複数の連携から1つを選択するか、あるいは、指摘されたインタフェースの曖昧性がなくなるようIDL記述のインタフェースを修正する必要がある。インタフェース定義に曖昧性がなく、連携を考慮されている場合は、連携を自動的に構成する。
【0035】
図4は連携パスの検出例を模式的に示した図である。図3(b)に示したオブジェクトおよび変換ルールの関係に対して、始点オブジェクトクラスをT7とT5とし、終点オブジェクトクラスをT1として連携パスを検索した例である。この例では連携パス1および連携パス2の2つの連携パスが検出されている。例えば、利用者は連携パス1を選択したものとする。
【0036】
次に、本発明のオブジェクト連携処理は、上記第三の仕組みとして、得られた連携パスをもとに実際のオブジェクト連携の構築処理103を行う。連携パスの変換ルールをメソッドに変換していくことで、オブジェクトのメソッド呼び出しの関係が構築される。
【0037】
なお、連携パスからメッセージパターンの関係への変換にあたり、検出されたつながりの連携パスを構成する個々のサブ連携パスに分離し、各々のサブ連携パスに固有のID情報を割り振るなどして区別して連携パスの実行時コンテキストを生成し、前記連携パスをオブジェクトクラス間の連携パスから連携実行時に渡される値を変数としたオブジェクト連携実行用パターンの連携パスに変換する必要がある。サブ連携パスに分離する理由は以下である。フィールドリアクターモデルに従って実際のオブジェクト連携の実行時にはメッセージパターン・アクションの反応関係により行われ、複数のサブ連携パスに同じオブジェクトを含む場合がある。リアクターが備える反応テーブルがサブ連携パスを区別しない形のメッセージパターン・アクションの反応関係を持つ場合には、当該オブジェクトの処理がどのサブ連携パスにおける実行であるのか明確ではなくなり、サブ連携パス間での混乱が生じる。このようにサブ連携パス間での混乱が生じると全体の連携パスに沿ったオブジェクト間連携は正常に実行できなくなってしまう。そこで全体の連携パスをサブ連携パスに分離してサブ連携パスを区別し、連携パスの実行時コンテキストを加味した連携パターンを決定する。
【0038】
例えば、生成規則((C1..,Cn)fC0)の実行時コンテキストは、(((C1:i)..(Cn:j))f(C0:k))のように表現される。なお、このコンテキストを生成するまでにC1はi回,Cnはj回,C0はk回出現したとする。以上の実行フロー処理の結果、IDを付加された連携パスをもとに実行用パターンが生成される。
【0039】
なお、オブジェクト連携を行うためには、オブジェクトインスタンスを特定する必要がある。オブジェクトインスタンスに固有のIDを割り付け、インスタンスIDとして取り扱う。オブジェクトインスタンスは、システムの実行時にはじめて決定するため、インスタンスIDの値を予めパターンに埋め込むことはできない。そこでインスタンスIDは、パターン中の変数に代入して取り扱う。また、生成規則を適用するためには、必要な項が全てが揃う必要がある。そのため、入力用パターンにjoinを用いて項が全て揃うことを待つ。例えば、実行時コンテキストが生成された生成規則(((C1:i)・・・(Cn:j))f(C0:k))は入力用パターンP=(join((C1:$inst1)・・・(Cn:j$instn)))である。出力用パターンQ=(C0:k$instl)となり、以下のように表現される。なお、Rは、関数fを持つシステムが提供するリアクターである。
【0040】
f∈R
(join((C1:i$inst1)・・・(Cn:j$instn)))⇒(C0:k$instl)
連携パスについて以上の操作を行い、実行用パターンを生成する。
【0041】
本実施形態1ではメソッドの呼び出しをフィールドリアクターモデルのパターン連携で行うことによりオブジェクトの関係をメッセージパターンの関係に変換する。ここで、フィールドリアクターモデルとは、構造表現された構造化メッセージパターンと当該構造化メッセージパターンに対する反応アクションとの関係づけの連鎖によりオブジェクト間の連携処理を実現するモデルである。実際のオブジェクト連携は、フィールドを介して構造化メッセージパターンとその反応アクションの関係づけによるオブジェクト間の連携として行われる。
【0042】
リアクターは入力用パターンP、関数f、出力用パターンQを1組とした計算実行体(PfQ)を複数持つ。計算実行体(PfQ)は、応用の開発者によって予め定義される。各計算実行体は、互いに異なる入力用パターンPを持つ。複数のリアクターは、それぞれ並列に自律的に動作し、1つのリアクターは、メッセージを受信した順序で処理する。リアクターは、自身の持つすべての計算実行体に対し、(1)パターンマッチ、(2)ユーザ関数呼び出し、(3)メッセージ生成を行う。パターンマッチでは、パターンPを用いて、メッセージMから置換θを取り出す。Pと共に定義されたユーザ関数fを取り出された置換θと共に呼び出し、関数出力として置換θ'を得る。関数出力より得た置換θ'をメッセージ生成用パターンQの変数に代入することにより、メッセージM'を生成する。これらの処理を以下に表現する。パターンPがマッチしない場合、(2)(3)の処理は実行しない。
【0043】
(1)(θ,f)=Match(P,M)
(2)θ'=f(θ)
(3)M'=Q・θ'
ここで、Matchはパターンマッチ関数であり、パターンPとメッセージMを引数とし、置換θおよび対応するユーザ関数fを出力する。ユーザ関数fは、置換を引数とし、置換を返す関数である。メッセージの生成は、出力用パターンQの変数部に対し、置換θ'を代入することにより行う。
【0044】
その模式的な構造は図5のようになる。フィールドリアクターモデルによれば、各リアクター200は、関数および手続き206などの計算実行体であるアクション実行部205を内部に持つ抽象的計算主体であり、また、当該計算実行体とは独立したメッセージに対する入出力用パターンを反応テーブル204という形で持ち、計算実行体と連携を分離している。フィールド207は通信媒体であり、メッセージ送信部202を介して送信メッセージをフィールド207上の他のリアクターへ分配する。リアクター200は、入力用の構造化メッセージパターンを用いてメッセージ受信部201を介してフィールド207からメッセージを取捨選択し、反応テーブル204に応じてアクション実行部205を起動し、出力用パターンを用いて生成したメッセージをフィールド207へ送出する。リアクター200間の連携は、入出力用パターンの関係によって決定する。そのため、リアクター200内に存在する計算実行体の連携も、計算実行体とは独立にメッセージパターンによって決定される。アプリケーションは、複数のリアクターとフィールド207によって構成される。連携動作は次の通りである。あるリアクターがメッセージをフィールド207へ送出する。各リアクターは、フィールド207からのそのメッセージを受け、自身が持つ複数の入力用パターンとパターンマッチを行い、メッセージを取捨選択する。選択されたメッセージは、入力用パターンに対応するアクション実行部205により処理され、その結果と出力用パターンを用いてメッセージを生成し、そのメッセージをフィールド207へ送出される。フィールドリアクターモデルでは、このような動作を繰り返す。
【0045】
以上がフィールドリアクターモデルにおけるリアクターの基本構造である。
【0046】
上記フィールドリアクターモデルを前提として実行フローとなるオブジェクト連携の構築にあたっては、連携パスを解析し、実行時コンテキストを生成し、実行時コンテキストを加味したパターンを作成する。
【0047】
(1)実行時コンテキストの生成
(2)実行用パターンの生成
上記2つのステップにより実行フローとなるオブジェクト連携を構築する。
【0048】
図6はオブジェクトの関係をメッセージパターンの関係に変換した様子を模式的に示した図である。なお、各メッセージパターンには固有に区別するID番号が割り振られている。例えば、3つあるメッセージパターンT5にはそれぞれ、T5:0、T5:1、T5:2というID番号が与えられている。
【0049】
このように本発明のオブジェクト連携装置ではフィールドリアクターモデルを用いてメッセージパターン連携を通して実際のオブジェクト連携を行う。もっとも、オブジェクト連携はフィールドリアクターモデルによる連携に限定されることはない。
【0050】
次に、本発明のオブジェクト連携処理は、上記第四の仕組みとして、構築した実際のオブジェクト連携処理104を実行するため、オブジェクトクラスの値を決めて連携の始点となるオブジェクトに与え、オブジェクトインスタンスレベルでのオブジェクト連携処理104を実行し、結果を得る。
【0051】
上記のような仕組みにより、利用者の利用目的に応じたオブジェクト連携処理を構築して実行する。
【0052】
以上、本実施形態1のオブジェクト連携装置は、IDLやWSDLなどの言語で定義された各オブジェクトのインタフェースの記述を解析してオブジェクト間の連携関係を変換ルールの集合として記述でき、当該変換ルールに従ってオブジェクト間の連携関係を調べ、始点となるオブジェクトクラスと終点となるオブジェクトクラスをつなぐオブジェクトクラス間の連携パスを検出し、それらオブジェクト間の連携関係の実行環境を自動構築することにより、与えられた値を基に連携処理を実行することができる。
【0053】
(実施形態2)
次に、オブジェクト連携装置の具体的構成の一例と実際のアプリケーションの実例を挙げつつ説明する。
【0054】
まず、本実施形態2のオブジェクト連携装置の概略構成を述べる。図7は、実施形態2にかかる本発明のオブジェクト連携装置の概略を示した図である。図7において、10はオブジェクトインタフェース情報入力部、20は変換ルール生成部、30は変換ルールデータベース、40は利用者インタフェース、50は連携パス検出部、60はオブジェクト連携関係構築部、70はオブジェクト連携実行部、100はオブジェクト群である。
【0055】
オブジェクトインタフェース情報入力部10は、IDLやWSDLなどインタフェースを定義する言語で記述された各オブジェクトのインタフェース情報を入力する部分である。入力にあたって利用者自身がIDLやWSDLなどのインタフェース記述の詳細について熟知する必要はなく、ネットワーク上に存在する利用可能なオブジェクトに関するインタフェース情報を入力すれば良い。もちろん利用者からオブジェクトインタフェース情報に関しての詳細なデータの入力を受け付けることも可能である。
【0056】
変換ルール生成部20は、オブジェクトインタフェース情報入力部10から入力されたIDLやWSDLなどの言語で定義された各オブジェクトのインタフェース情報を解析し、オブジェクト間の連携関係の表現形式を言語による表現形式から変換ルールの集合とした表現形式に変換する部分である。
【0057】
変換ルールデータベース30は、変換ルール生成部20において生成された変換ルールの集合を蓄積するデータベースである。
【0058】
利用者インタフェース40は、利用者インタフェースであり、利用者は利用者インタフェース40を介してオブジェクト連携システムに対して必要なデータを入力する。利用者が構築したい処理内容に関するデータを入力する。この例では、オブジェクトクラス指定部41と連携パス選択部42と値指定部43を備えている。オブジェクトクラス指定部41は利用者が利用目的に応じてオブジェクト連携関係の始点となるオブジェクトクラスと終点となるオブジェクトクラスを指定する部分である。連携パス選択部42は後述するように連携パス検出部50において複数の連携パスの候補が得られた場合に、一つの連携パスを選択し、または一つの連携パスが選択できるようにオブジェクトインタフェース情報を追加する部分である。値指定部43は後述するように、連携パスに沿ってオブジェクト連携構築部60が構築したオブジェクト連携において実際にオブジェクト連携を実行するにあたり、始点となるオブジェクトクラスの値を指定・入力する部分である。
【0059】
連携パス検出部50は、利用者インタフェース40から指定された始点となるオブジェクトクラスと終点となるオブジェクトクラスをつなぐ連携パスを検出する部分である。
【0060】
ここで、オブジェクトインタフェース情報に曖昧性が存在する場合、オブジェクト連携ルールにも曖昧性が存在することとなり、連携パスが一意に定まらず複数の連携パスが検出される場合が想定できる。この場合、利用者に曖昧性が存在する部分と検出された複数の連携パスを利用者に提示し、連携パス選択部42を介して利用者にそれら複数の連携パスから1つの連携パスを選択させるか、あるいは、指摘されたインタフェース記述の曖昧性がなくなるように利用者インタフェース40を介してIDLやWSDLの記述自体を修正させる。後者の場合はIDLやWSDLなどの記述についての知識が必要となるが、前者の場合であればIDLやWSDLの記述についての詳細な知識は必要とならない。
【0061】
また、この例では、オブジェクト連携パス検出部50は、オブジェクト連携実行用パターン生成部51を備えている。オブジェクト連携実行用パターン生成部51は、オブジェクト連携パス検出部50において検出した一つながりの連携パスを構成する個々のサブ連携パスに分離し、各々のサブ連携パスに固有のID情報を割り振るなどして区別して連携パスの実行時コンテキストを生成し、前記連携パスをオブジェクトクラス間の連携パスから連携実行時に渡される値を変数としたオブジェクト連携実行用パターンの連携パスに変換する部分である。
【0062】
なお、実際のオブジェクト連携実行時は、オブジェクトインスタンスを特定する必要があるが、オブジェクトインスタンスはシステム実行時に初めて決定されるため、オブジェクトインスタンスの値を予め規定することはできない。そこで連携実行時に渡される値を変数としたオブジェクト連携実行用パターンを生成しておけば良い。オブジェクト連携パス検出部50は、オブジェクト連携実行用パターン生成部51を用いて、連携パスをオブジェクトクラス間の連携パスから連携実行時に渡される値を変数としたオブジェクト連携実行用パターンの連携パスに変換する。
【0063】
オブジェクト連携関係構築部60は、連携パス検出部50により検出された連携パスをもとに実際の実行フローとなるオブジェクト連携を構築する部分である。連携パスを形成するオブジェクト間を結ぶ変換ルールをメソッドに変換していくことで、オブジェクトのメソッド呼び出しの関係が構築されてオブジェクト間連携が構築される。本実施形態1のオブジェクト連携装置では、このメソッドの呼び出し関係をフィールドリアクターモデルを用いて構築することとし、構造化されたメッセージパターンと当該メッセージにより呼び出されるメソッドの関係として記述する。オブジェクト連携関係構築部60は、連携元のオブジェクトに送信すべき構造化メッセージパターンを通知して実装させ、連携先のオブジェクトに受信により反応すべき前記構造化メッセージパターンおよび当該構造化メッセージパターンに対するアクションとを通知して実装させる。このように実際のオブジェクト間の連携は、フィールド上を流れるメッセージパターンとその反応となるアクションという関係でオブジェクト間の連携関係が構築されて行き、始点オブジェクトから終点オブジェクトに至るオブジェクト間連携が構築される。
【0064】
オブジェクト連携実行部70は、実際のオブジェクト連携の実行が行われるモジュールであり、値指定部43を介して始点となるオブジェクトクラスの値がオブジェクト連携実行用パターンの変数部分に与えられ、オブジェクト群100において実際のオブジェクト連携が実行される。
【0065】
オブジェクト群100は、ネットワーク上に存在するオブジェクト群であり、連携関係が構築される。本実施形態1ではオブジェクト連携関係はフィールドリアクターモデルにより構築されている。各オブジェクトは図5に示したフィールドリアクターモデルを実現する構成を含んでおり、ネットワーク上に送信される構造化メッセージをモニタして取り込むメッセージ受信部201と、構造化メッセージと構造化メッセージに対する反応であるアクションのセットを記憶する反応テーブル204と、各種関数やアプリケーション206を含み、アクションの内容に従って処理を実行するアクション実行部205と、アクションの一環として生成されたメッセージをフィールド上に送るメッセージ送信部202と、制御部203を備え、メッセージ・アクションの反応関係に従って駆動する。
【0066】
次に、オブジェクト連携構築処理をアプリケーション例を挙げつつ、詳しく述べる。以下の例では、具体例としてIDLで定義されているオブジェクトを利用した銀行の口座振り込み処理、WSDLで定義されているオブジェクトを利用した旅行予約処理というを例を挙げつつ説明する。また、オブジェクト連携関係の構築はフィールドリアクターモデルで構築する例を説明する。
【0067】
以下、大別して以下の4つの処理工程に分けて説明する。第一の処理工程は、入力されたIDLやWSDLで記述された各オブジェクトのインタフェース情報を基にオブジェクト間の連携関係を簡潔に示すルールの集合を作成する処理工程である。第二の処理工程は、利用者から入力されたオブジェクト連携の始点となるオブジェクトクラスから終点となるオブジェクトクラスへ至るオブジェクト連携パスを検出する処理工程である。第三の処理工程は、検出したオブジェクト連携パスから実行フローを生成し、フィールドリアクターモデルの構造化メッセージ・反応アクション連携関係に基づいたオブジェクト連携関係を構築する処理工程である。第四の処理工程は、実際のオブジェクト連携実行処理であり、始点となるオブジェクトクラスの値を指定し、与えられた始点となるオブジェクトクラスの値を基に連携処理を実行する工程である。
【0068】
第一の処理工程であるオブジェクト間の連携関係を簡潔に示すルールの集合を作成する処理工程の具体例を説明する。
【0069】
この工程では、オブジェクトインタフェース記述入力部10を介して各オブジェクトのIDLで定義されたインタフェース記述情報を入力し、変換ルール生成部20がこれら情報からIDLによって定義されたオブジェクトクラスを変換ルールとして簡潔に表現する。オブジェクトクラスはメソッドおよびメンバー変数から構成される。ここで、オブジェクトクラスを記号と捉え、クラスの持つメソッドを引数のクラスから帰り値であるクラスへの連携ルールとみなす。例えば、クラスCの持つメソッドfは、はオブジェクトのリスト(C1,・・・,Cn)を引数とし、オブジェクトC0を返すとき、連携ルールを(C1・・・CnC)Cf0)と表現する。また、メンバー変数は仮想的なメソッドを適応し、得られた結果とする。例えば、クラスCの型Tのメンバー変数wがあるとき、型Tを返す仮想メソッドCwとし、連携ルールとして表現する。また、int,floatなどはCORBAが定義する基本型であり、これらの型を返す関数fφは、型nilから基本型を返す関数と捉え、同様に連携ルールとして表現する。このようにIDLで定義されるすべてのインタフェースを連携ルールとして表現し、変換ルールの集合を作成する。生成された変換ルールは変換ルールデータベース30に格納される。図8は、銀行口座振り込み処理を実行するアプリケーション例において、オブジェクトインタフェース記述入力部10を介して入力される各オブジェクトのIDLで定義されたインタフェース記述情報の例である。図8に示したIDL記述によるインタフェース情報から変換ルール生成部20が抽出した変換ルールは図9のようになる。図10は、変換ルール生成部20が図9の変換ルールの集合から生成したクラス間の関係を模式的に示した図である。
【0070】
また、WSDLで記述されたインタフェース情報に関しては以下のように考える。インターネットのウェブサービスを、入出力ポートを持つネットワークノードと考え、入力タイプと出力タイプを定義する。このように入出力タイプを定義することにより、ウェブサービスを、入力タイプのデータを出力タイプのデータに変換するルールと捉えることができる。図11はWSDLで記述されたインタフェース情報の例を示す図であり、4つのウェブサービスのものが示されている。それぞれのタイプ定義も示されている。図12は、変換ルール生成部20が変換ルールの集合から生成したタイプ間の関係を模式的に示した図である。
【0071】
次に、第二の処理工程であるオブジェクト連携パスを検出する処理工程の具体例を説明する。この処理工程では、利用者の利用目的に応じた処理を実現するオブジェクト間の連携パスを発見する。まず、利用者インタフェース40のオブジェクト指定部41を介して利用者の利用目的に応じ、オブジェクト連携の始点となるオブジェクトクラスの集合{CS1,・・・,CSn}と終点オブジェクトのクラスCgを指定する。連携パス検出部50は、始点のオブジェクトクラスの集合および終点オブジェクトクラスの指定を受け、変換ルールデータベース30のオブジェクト連携ルールを適用して始点のオブジェクトクラスの集合から終点オブジェクトクラスまで到達する変換ルールの適用順序を見つけ出す。適用順序の発見方法は、上述したように、指定された始点となるオブジェクトクラスから出発してオブジェクトの連携関係を順方向に拡大して終点となるオブジェクトクラスへ到達するパスを発見する方法や、指定された終点となるオブジェクトクラスから出発してオブジェクトの連携関係を逆方向に拡大して始点となるオブジェクトクラスへ到達するパスを発見する方法やその折衷方法などがある。
【0072】
連携パス検出部50が実行する連携パス検索処理を関数という形で記述する場合のアルゴリズムの一例を図13に示す。関数FindPathは、始点オブジェクトクラスのリストLS={CS1,・・・,CSn}と終点オブジェクトのクラスCgを引数とし、連携パス集合を返す。もし連携パスが存在しないとき、nilを返す。なお、ルールの集合S={(P111),・・・,(Pnnn)}、Pk=(p1・・・pn)である。ループによる無限展開の発生を抑えるため、ヒストリリストHを用意する。ヒストリリストHは既に検索した型の集合である。初期値はH:={}である。また、関数SearchRulesは、引数として型Cgおよびルール集合Sをとる。この関数は、ルール集合SからCgを出力用パターンとする要素を取り出し、集合S={(Pkkk)∈S|Qk=Cg}を返す。
【0073】
図14は、銀行口座振り込み処理を実行するアプリケーション例において、発見した変換ルールの適用順序を模式的に示す図である。図14の例では始点となるオブジェクトクラスはAccountManager,AccountID,paymentの3つであり終点となるオブジェクトクラスはpayResである。この例では一意に連携パスが定まったが、複数発見された場合、連携パス検出部50は利用者インタフェース40を介して複数の連携パスの候補があることを知らせ、連携パス指定部42を介して利用者に連携パスを選択させる。
【0074】
図15は、出張予約処理を実行するアプリケーション例において、発見した変換ルールの適用順序を模式的に示す図である。図15の例では始点となるタイプは、出発・到着場所(location),出発・帰省日(Date),出発時間(Time)の3つであり終点となるタイプは出張前処理(CoordinateDone)である。この例では一意に連携パスが定まったが、複数発見された場合、連携パス検出部50は利用者インタフェース40を介して複数の連携パスの候補があることを知らせ、連携パス指定部42を介して利用者に連携パスを選択させる。
【0075】
次に、第三の処理工程であるオブジェクト連携関係を構築する処理工程の具体例を説明する。この処理工程は、第二の処理工程で検出したオブジェクト連携パスに基づいて実行フローを生成し、フィールドリアクターモデルによる構造化メッセージ・反応アクション連携関係を構築する処理工程である。本実施形態2ではCORBAを用いた場合の実行用パターンの生成について説明する。
【0076】
図16は、CORBAを用いる場合の実行用パターンの生成処理の実行環境を示す図である。CORBAオブジェクトプール320は、連携パス実行中にシステムが生成したCORBAオブジェクト350を管理し、オブジェクトに対する操作インタフェースを持つ。また、インスタンスIDを管理し、実体であるオブジェクトインスタンスヘのマッピングを行う。CORBAオブジェクトファクトリ330は、CORBAオブジェクト350をCORBAネーミングサービスを通して取得し、CORBAオブジェクトファクトリ330が生成したオブジェクトをCORBAオブジェクトプール320ヘ渡す。オブジェクトファクトリ330は、リアクターであり、フィールドに対してネーミングサービスを提供する。CORBAオブジェクトファクトリ330は、指定の名のオブジェクトを検索し、インスタンスIDを返す。パターンフォルダ310も同様にリアクターであり、連携パスを元に実行フローを生成・保持し、実行用パターンに応じて、CORBAオブジェクト350をCORBAオブジェクトプール320を通して操作する。ユーザリアクター200は、CORBAオブジェクト350を操作する上で、IDLを意識する必要はなく、フィールド上のパターン連携によってCORBAオブジェクト350を取り扱うことができる。
【0077】
フィールド207では、CORBAオブジェクト350は全てインスタンスIDとして取り扱われ、パターンフォルダ310によってオブジェクトの実体に対して操作される。パターンフォルダ310は、メッセージに従いCORBAオブジェクト350を操作する。パターンフォルダ310は、オブジェクトの汎用的なメソッド起動関数R=Invoke(O,m,P)を持つ。この関数は・オブジェクトのインスタンスID“O”、呼び出すメソッド名“m”およびメソッド起動に必要なパラメータ列“P=(p1,・・・,pn)”を引数とする。CORBAオブジェクトプール320を通して、メソッドを起動した後、結果Rを返す。パラメータ列もインスタンスIDで表現する。実行用パターンは、各パターンに対応する起動関数と共にセットされる。パターンと共に設定された起動関数は、パターンマッチによって得られた置換を使用し、関数Invokeを呼び出す。Invokeの帰り値を置換に変換し、出力用パターンにその置換を適用しメッセージを生成する。
【0078】
次に、第四の処理工程である実際のオブジェクト連携実行処理を説明する。
【0079】
実際のオブジェクト連携の実行にあたり、値指定部43を介して始点となるオブジェクトクラスの値を指定し、与えられた始点となるオブジェクトクラスの値を基に連携処理を実行する。起動はリアクターからスタートメッセージをフィールドへ流すことで行われる。スタートメッセージにより、パターンフォルダは実行フローに沿って、CORBAオブジェクトの連携を開始し、連携パスを実行していく。実行は、フィールドを通して行われ、パターンフォルダを通してCORBAオブジェクトの実体が連携し、目的のオブジェクトが生成されるまで繰り返される。パターンの終点である目的のオブジェクトが生成された時点で終了する。
【0080】
銀行口座振り込み処理を実行するアプリケーション例では、図17に示すように、値として“振込元の銀行名”、“振込元の口座番号”、“振込先の銀行名”、“振込先の口座番号”、“振込金額”が与えられ、オブジェクト間の連携が実行され、銀行口座振り込み処理が実行される。
【0081】
出張の予約処理を実行するアプリケーション例では、図18に示すように、値として“出発場所(location)”、“到着場所(location)”、“出発日(Date)”、“帰省日(Date)”、“出発時間(Time)”が与えられ、それぞれのオブジェクトに対応する値が与えられ、出張予約処理が実行される。
【0082】
なお、図18に示すように、同一データの使い回しやプロファイルデータを利用した自動データ入力も可能である。
【0083】
以上、本発明の実施形態2のオブジェクト連携装置によれば、各オブジェクトのインタフェースの記述を解析してオブジェクトの連携関係をルールの集合として簡潔に表現でき、当該ルールによりオブジェクト間の連携関係を調べることにより、利用者の利用目的に応じ、始点となるオブジェクトから終点となるオブジェクトまでのオブジェクト間の連携パスを自動的に検出でき、また、それらオブジェクト群の連携処理を柔軟に構築することができる。
【0084】
(実施形態3)
実施形態3のオブジェクト連携システムは、オブジェクト連携パス検出部が連携パス検出の学習機能を備え、前記オブジェクトクラス指定部から与えられた始点となるオブジェクトクラスと終点となるオブジェクトクラスをつなぐオブジェクトクラス間の連携パスの検出結果を知識として蓄積し、連携パス検出処理に用いる機能を備えたものである。
【0085】
図19は、実施形態3のオブジェクト連携システムの構成概略図である。オブジェクトインタフェース情報入力部10、変換ルール生成部20、変換ルールデータベース30、利用者インタフェース40、オブジェクト連携関係構築部60、オブジェクト連携実行部70、オブジェクト群100は実施形態2で示した図7と同様であるが、連携パス検出部50aはオブジェクト連携実行用パターン生成部51に加え、学習部52、連携パス知識部53を備えている。学習部52および連携パス知識部53は連携パス検出処理の学習機能を有し、連携パス検出部50aによる連携パス検出処理結果が得られると、学習部52は、オブジェクトクラス指定部41から与えられた始点となるオブジェクトクラスと終点となるオブジェクトクラスの入力に対し、検出された連携パスを結果として対応づけて学習し、その知識を連携パス知識部53に格納する。連携パス検出部50aは次回以降の連携パス検出処理にあたり、連携パス知識部53に格納された連携パス知識を活用して連携パスの検出処理を実行する。次回以降の連携パス検出処理において与えられた始点となるオブジェクトクラスと終点となるオブジェクトクラスが連携パス知識部53に格納された連携パス知識のものと同様であれば、当該知識を活用して連携パスの検出処理が実行できる。
【0086】
なお、ネットワーク上のオブジェクトの追加、削除、保守などによるサービス停止など、ネットワークの状態は動的に変化することもあるので、連携パス知識部52に格納された連携パス知識を固定的なデータとして参照することはできない点に注意を要する。
【0087】
以上、実施形態3のオブジェクト連携システムによれば、オブジェクト連携パス検出部が連携パス検出の学習機能を備え、オブジェクトクラス指定部から与えられた始点となるオブジェクトクラスと終点となるオブジェクトクラスをつなぐオブジェクトクラス間の連携パスの検出結果を知識として蓄積し、連携パス検出処理に用いることができる。
【0088】
(実施形態4)
本発明のオブジェクト連携装置は、上記に説明した構成を実現する処理ステップを記述したプログラムをコンピュータ読み取り可能な記録媒体に記録して提供することにより、各種コンピュータを用いて構築することができる。本発明のオブジェクト連携装置を実現する処理ステップを備えたプログラムを記録した記録媒体は、図20に図示した記録媒体の例に示すように、CD−ROM1002やフレキシブルディスク1003等の可搬型記録媒体1001だけでなく、ネットワーク上にある記録装置内の記録媒体1000や、コンピュータのハードディスクやRAM等の記録媒体1005のいずれであっても良く、プログラム実行時には、プログラムはコンピュータ1004上にローディングされ、主メモリ上で実行される。
【0089】
本発明のオブジェクト連携装置に関し、さらに以下の項を開示する。
【0090】
(付記1)ネットワーク上のオブジェクトのインタフェース情報を入力して解析し、オブジェクト間の連携関係を変換ルールの集合として記述するルール記述部と、
オブジェクト連携関係の始点となるオブジェクトクラスと終点となるオブジェクトクラスを指定するオブジェクトクラス指定部と、
前記変換ルールに従ってオブジェクト間の連携関係を調べ、前記始点となるオブジェクトクラスと前記終点となるオブジェクトクラスをつなぐオブジェクトクラス間の連携パスを検出するオブジェクト連携パス検出部と、
前記検出された連携パスに応じてオブジェクト間の連携関係の実行環境を構築するオブジェクト連携構築部と、
前記始点となるオブジェクトクラスの値を指定する値指定部と、
前記与えられた始点となるオブジェクトクラスの値を基に連携処理を実行するオブジェクト群とを備えたことを特徴とするオブジェクト連携装置(1)。
【0091】
(付記2)前記オブジェクト連携構築部は、前記オブジェクト群の連携においてオブジェクト間に構造化メッセージと当該構造化メッセージに対する反応であるアクションとの関係づけによる連携関係を構築するものであり、連携元のオブジェクトに送信すべき構造化メッセージパターンを通知して実装させ、連携先のオブジェクトに受信により反応すべき前記構造化メッセージパターンおよび当該構造化メッセージパターンに対するアクションとを通知して実装させる付記1に記載のオブジェクト連携装置(2)。
【0092】
(付記3)前記オブジェクト群の各オブジェクトが、ネットワーク上に送信される構造化メッセージをモニタして取り込むメッセージ受信部と、構造化メッセージと構造化メッセージに対する反応であるアクションのセットを記憶する反応テーブルと、前記アクションの内容に従って処理を実行するアクション実行部を備え、前記メッセージ・アクションの反応関係に従って駆動する付記1または付記2に記載のオブジェクト連携装置(3)。
【0093】
(付記4)前記オブジェクト連携パス検出部が、連携パスが複数検出された場合に一つの連携パスを利用者に選択させる連携パス選択部を備えた付記1から3のいずれかに記載のオブジェクト連携装置。
【0094】
(付記5)前記オブジェクト連携パス検出部が、検出した一つながりの連携パスを構成する個々のサブ連携パスに分離し、各々のサブ連携パスを区別して連携パスの実行時コンテキストを生成し、前記連携パスをオブジェクトクラス間の連携パスから連携実行時に渡される値を変数としたオブジェクト連携実行用パターンの連携パスに変換するオブジェクト連携実行用パターン生成部を備えた付記1から3のいずれかに記載のオブジェクト連携装置(4)。
【0095】
(付記6)前記連携パスにおいて、複数のオブジェクト連携元とオブジェクト連携関係を持つオブジェクト連携先がある場合、前記オブジェクト連携先は前記複数のオブジェクト連携元の各々から個別に構造化メッセージを受信し、前記反応テーブルのアクションが発火するために必要なすべての引数が揃ったことを契機としてアクションを発火させる構造化メッセージパターン・反応アクションの関係づけを持つ付記1から3のいずれかに記載のオブジェクト連携装置。
【0096】
(付記7)前記連携パスにおいて、複数のオブジェクト連携先とオブジェクト連携関係を持つオブジェクト連携元がある場合、前記オブジェクト連携元はフィールドに構造化メッセージを送信し、前記複数のオブジェクト連携先の各々は前記構造化メッセージが受信されたことを契機として反応アクションを発火させる構造化メッセージパターン・反応アクションの関係づけを持つ付記1から3のいずれかに記載のオブジェクト連携装置。
【0097】
(付記8)前記オブジェクト連携パス検出部が連携パス検出の学習機能を備え、前記オブジェクトクラス指定部から与えられた始点となるオブジェクトクラスと終点となるオブジェクトクラスをつなぐオブジェクトクラス間の連携パスの検出結果を知識として蓄積し、連携パス検出処理に用いる付記1から3のいずれかに記載のオブジェクト連携装置。
【0098】
(付記9)前記オブジェクトのインタフェース情報がIDLまたはWSDLのいずれかで記述された情報である付記1から3のいずれかに記載のオブジェクト連携装置。
【0099】
(付記10)オブジェクト間にオブジェクト連携関係を構築するオブジェクト連携装置を実現する処理プログラムを記録したコンピュータ装置読み取り可能な記録媒体であって、
ネットワーク上のオブジェクトのインタフェース情報を入力して解析し、オブジェクト間の連携関係を変換ルールの集合として記述するルール記述処理ステップと、
オブジェクト連携関係の始点となるオブジェクトクラスと終点となるオブジェクトクラスを指定するオブジェクトクラス指定処理ステップと、
前記変換ルールに従ってオブジェクト間の連携関係を調べ、前記始点となるオブジェクトクラスと前記終点となるオブジェクトクラスをつなぐオブジェクトクラス間の連携パスを検出するオブジェクト連携パス検出処理ステップと、
前記検出された連携パスに応じてオブジェクト間の連携関係の実行環境を構築するオブジェクト連携構築処理ステップと、
前記始点となるオブジェクトクラスの値を指定する値指定処理ステップと、
前記与えられた始点となるオブジェクトクラスの値を基に連携処理を実行するオブジェクトを生成する処理ステップとを備えた処理プログラムを記録したことを特徴とする記録媒体(5)。
【0100】
【発明の効果】
本発明のオブジェクト連携装置によれば、各オブジェクトのインタフェースの記述を解析してオブジェクトの連携関係をルールの集合として簡潔に表現でき、当該ルールによりオブジェクト間の連携関係を調べることにより、利用者の利用目的に応じ、始点となるオブジェクトから終点となるオブジェクトまでのオブジェクト間の連携パスを自動的に検出でき、また、それらオブジェクト群の連携処理を柔軟に構築することができる。
【0101】
本発明のオブジェクト連携装置によれば、入力されたインタフェース記述に曖昧性がある場合でも、連携パスを一意に定め、オブジェクト間の実行フローを形成することができる。
【0102】
本発明のオブジェクト連携装置によれば、複数のオブジェクト連携元の処理を、いわゆるAND演算の形で受け、所定複数のオブジェクト元との連携成立を契機としてオブジェクト連携先が反応するように連携関係を制御することができる。また、複数のオブジェクト連携元の処理を、いわゆるOR演算の形で受け、一又は所定組み合わせのオブジェクト元との連携成立を契機としてオブジェクト連携先が反応するように連携関係を制御することもできる。
【0103】
さらに、連携パス検出の学習機能を備えることができ、オブジェクトクラス指定部から与えられた始点となるオブジェクトクラスと終点となるオブジェクトクラスをつなぐオブジェクトクラス間の連携パスの検出結果を知識として蓄積し、連携パス検出処理に用いることができ、処理効率向上を図ることができる。
【図面の簡単な説明】
【図1】 本発明の実施形態1にかかるオブジェクト連携構築処理の概要を模式的に示した図
【図2】 (a)はIDL記述によるインタフェース情報の例、(b)は(a)のインタフェース情報から生成した変換ルールの例を示す図
【図3】 本発明の実施形態1にかかる変換ルールの集合から各オブジェクトと変換ルールとの関係を模式的に示した図
【図4】 本発明の実施形態1にかかる連携パスの検出例を模式的に示した図
【図5】 本発明の実施形態1にかかるフィールドリアクターモデルにおけるリアクターの模式的な構造を示した図
【図6】 本発明の実施形態1にかかるオブジェクトの関係をメッセージパターンの関係に変換した様子を模式的に示した図
【図7】 本発明の実施形態2にかかるオブジェクト連携装置の概略を示した図
【図8】 本発明の実施形態2にかかる銀行口座振り込み処理を実行するアプリケーション例における各オブジェクトのIDLで定義されたインタフェース記述情報の例を示した図
【図9】 本発明の実施形態2にかかる図8に示したIDL記述によるインタフェース情報から変換ルール生成部20が抽出した変換ルールを示す図
【図10】 本発明の実施形態2にかかる図9の変換ルールの集合からルール生成部20が生成したクラス間の関係を模式的に示した図
【図11】 本発明の実施形態2にかかるWSDLで記述されたインタフェース情報の例を示す図
【図12】 本発明の実施形態2にかかる図11に示したWSDL記述によるインタフェース情報から生成した変換ルールの集合におけるタイプ間の関係を模式的に示した図
【図13】 本発明の実施形態2にかかる連携パス検出部50が実行する連携パス検索処理を関数という形で記述する場合のアルゴリズムの一例を示す図
【図14】 本発明の実施形態2にかかる銀行口座振り込み処理を実行するアプリケーション例において、発見した変換ルールの適用順序を模式的に示す図
【図15】 本発明の実施形態2にかかる出張予約処理を実行するアプリケーション例において、発見した変換ルールの適用順序を模式的に示す図
【図16】 本発明の実施形態2にかかるCORBAを用いる場合の実行用パターンの生成処理の実行環境を示す図
【図17】 本発明の実施形態2にかかる銀行口座振り込み処理を実行するアプリケーション例におけるオブジェクト連携実行を示す図
【図18】 本発明の実施形態2にかかる出張の予約処理を実行するアプリケーション例におけるオブジェクト連携実行を示す図
【図19】 本発明の実施形態3にかかるオブジェクト連携装置の概略を示した図
【図20】 本発明の実施形態4のオブジェクト連携装置を実現する処理プログラムを記録した記録媒体の例を示す図
【図21】 従来技術のCORBAに基づいたクライアント/サーバシステムにおけるオブジェクト連携の例を示す図
【符号の説明】
10 オブジェクトインタフェース情報入力部
20 変換ルール生成部
30 変換ルールデータベース
40 利用者インタフェース
41 オブジェクトクラス指定部
42 連携パス選択部
43 値指定部
50,50a 連携パス検出部
51 オブジェクト連携実行用パターン生成部
52 学習部
53 連携パス知識部
60 オブジェクト連携関係構築部
70 オブジェクト連携実行部
100 オブジェクト群
101 変換ルール集合
102 連携パスの検出処理
103 オブジェクト連携の構築処理
104 オブジェクト連携処理
200 リアクター
201 メッセージ受信部
202 メッセージ送信部
203 制御部
204 反応テーブル
205 アクション実行部
206 アクション実行部205が管理する各種関数、アプリケーション
207 フィールド
310 パターンフォルダ
320 CORBAオブジェクトプール
321 スタブ
330 CORBAオブジェクトファクトリ
340 オブジェクトリクエストブローカ
350 CORBAオブジェクト
360 CORBAホームサービス
1000 回線先のハードディスク等の記録媒体
1001 CD−ROMやフレキシブルディスク等の可搬型記録媒体
1002 CD−ROM
1003 フレキシブルディスク
1004 コンピュータ
1005 コンピュータ上のRAM/ハードディスク等の記録媒体

Claims (5)

  1. 各オブジェクトの各メソッドの入力オブジェクトクラスと出力オブジェクトクラスと間の変換関係を示す変換ルールが格納される変換ルール記録部と、
    利用可能なオブジェクト各々における各メソッドの入オブジェクトクラスおよび出力オブジェクトクラスを示す情報を含むインタフェース情報を解析することにより、前記各メソッドについて変換ルールを生成し、前記変換ルール記録部へ格納する変換ルール生成部と、
    オブジェクト連携関係の始点となるオブジェクトのオブジェクトクラスと終点となるオブジェクトのオブジェクトクラス指定を利用者から受け付けるオブジェクトクラス指定部と、
    前記始点となるオブジェクトクラスから前記変換ルールを順に適用してオブジェクトクラスを変換し、前記終点となるオブジェクトクラスへ変換されるまでの前記変換ルールの適用順序を、変換ルール記録部に格納された前記変換ルールを用いて計算することにより、前記始点となるオブジェクトクラスと前記終点となるオブジェクトクラスを前記変換ルールによりつなぐオブジェクトクラス間の連携パスを検出するオブジェクト連携パス検出部と、
    前記連携パスにおける前記オブジェクトクラス間をつなぐ各変換ルールをメソッドに変換することにより、前記始点となるオブジェクトクラスのオブジェクトが生成されてから前記終点となるオブジェクトクラスのオブジェクトが生成されるまでに生成される各オブジェクトの関係を示すデータである実行フローを生成するオブジェクト連携関係構築部と、
    前記始点となるオブジェクトクラスに対応するオブジェクトの指定を利用者から受け付ける値指定部と、
    前記始点となるオブジェクトクラスのオブジェクトの値を用いて、前記始点となるオブジェクトクラスのオブジェクトを生成し、前記実行フローに沿ってオブジェクトの生成およびメソッドの呼び出しを実行することによりオブジェクトを連携させて前記終点となるオブジェクトクラスのオブジェクトを生成するオブジェクト連携実行部とを備えたことを特徴とするオブジェクト連携装置。
  2. 前記オブジェクト連携構築部は、前記連携パスにおける前記オブジェクトクラス間をつなぐ各変換ルールについて、入力オブジェクトクラスに対応するメッセージと、当該メッセージにより呼び出されるアクションであって、出力オブジェクトクラスに対応するメッセージを出力するアクションとを関連付けるメッセージ・アクション反応関係データに変換することにより、前記実行フローを生成する、請求項1に記載のオブジェクト連携装置。
  3. オブジェクト連携実行部は、ネットワーク上に送信されるメッセージをモニタして取り込むメッセージ受信部と、当該メッセージ受信部が受信したメッセージと当該メッセージに対する反応であるアクションのセットを記憶する反応テーブルと、前記アクションの内容に従って処理を実行するアクション実行部を含み
    前記反応テーブルには、前記メッセージ・アクション反応関係データが記憶されることを特徴とする、請求項2に記載のオブジェクト連携装置。
  4. オブジェクト連携パス検出部は、オブジェクトクラス間の変換ルールでつながれた連携パスにおける各変換ルールにID情報を割り振ることにより、各々の変換ルールを区別して連携パスの実行時コンテキストを生成し、前記連携パスをオブジェクトクラス間の連携パスから連携実行時に渡される値を変数としたオブジェクト連携実行用パターンの連携パスに変換するオブジェクト連携実行用パターン生成部を備えた請求項1から3のいずれかに記載のオブジェクト連携装置。
  5. オブジェクト間にオブジェクト連携関係を構築し、各オブジェクトの各メソッドの入力オブジェクトクラスと出力オブジェクトクラスと間の変換関係を示す変換ルールが格納される変換ルール記録部、変換ルール生成部、オブジェクトクラス指定部、オブジェクト連携パス検出部、オブジェクト連携関係構築部、値指定部、オブジェクト連携実行部とを備えたオブジェクト連携装置を実現する処理プログラムを記録したコンピュータ装置読み取り可能な記録媒体であって、
    前記変換ルール生成部が、利用可能なオブジェクト各々における各メソッドの入オブジェクトクラスおよび出力オブジェクトクラスを示す情報を含むインタフェース情報を解析することにより、前記各メソッドについて変換ルールを生成し、前記変換ルール記録部へ格納する変換ルール生成ステップと、
    前記オブジェクトクラス指定部が、オブジェクト連携関係の始点となるオブジェクトのオブジェクトクラスと終点となるオブジェクトのオブジェクトクラス指定を利用者から受け付けるオブジェクトクラス指定ステップと、
    前記オブジェクト連携パス検出部が、前記始点となるオブジェクトクラスから前記変換ルールを順に適用してオブジェクトクラスを変換し、前記終点となるオブジェクトクラスへ変換されるまでの前記変換ルールの適用順序を、前記変換ルール記録部に格納された変換ルールを用いて計算することにより、前記始点となるオブジェクトクラスと前記終点となるオブジェクトクラスを前記変換ルールによりつなぐオブジェクトクラス間の連携パスを検出するオブジェクト連携パス検出ステップと、
    前記オブジェクト連携関係構築部が、前記連携パスにおける前記オブジェクトクラス間をつなぐ各変換ルールをメソッドに変換することにより、前記始点となるオブジェクトクラスのオブジェクトが生成されてから前記終点となるオブジェクトクラスのオブジェクトが生成されるまでに生成される各オブジェクトの関係を示すデータである実行フローを生成するオブジェクト連携関係構築ステップと、
    前記値指定部が、前記始点となるオブジェクトクラスに対応するオブジェクトの指定を利用者から受け付ける値指定ステップと、
    前記オブジェクト連携実行が、前記始点となるオブジェクトクラスの値を用いて、前記始点となるオブジェクトクラスのオブジェクトを生成し、前記実行フローに沿ってオブジェクトの生成およびメソッドの呼び出しを実行することによりオブジェクトを連携させて前記終点となるオブジェクトクラスのオブジェクトを生成するオブジェクト連携実行ステップとをコンピュータに実行させる処理プログラムを記録したコンピュータ装置読み取り可能な記録媒体。
JP2000339165A 2000-11-07 2000-11-07 オブジェクト連携装置 Expired - Fee Related JP4145477B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000339165A JP4145477B2 (ja) 2000-11-07 2000-11-07 オブジェクト連携装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000339165A JP4145477B2 (ja) 2000-11-07 2000-11-07 オブジェクト連携装置

Publications (2)

Publication Number Publication Date
JP2002149405A JP2002149405A (ja) 2002-05-24
JP4145477B2 true JP4145477B2 (ja) 2008-09-03

Family

ID=18814272

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000339165A Expired - Fee Related JP4145477B2 (ja) 2000-11-07 2000-11-07 オブジェクト連携装置

Country Status (1)

Country Link
JP (1) JP4145477B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1685680B1 (en) 2003-11-20 2012-01-04 Panasonic Corporation Association control apparatus, association control method and service association system
US7624141B2 (en) * 2004-01-23 2009-11-24 Microsoft Corporation Deterministic rule-based dispatch of objects to code
KR101190597B1 (ko) * 2008-12-19 2012-10-15 한국전자통신연구원 로봇 소프트웨어 컴포넌트를 위한 메소드 포트 장치 및 구성 방법
JP5084760B2 (ja) * 2009-02-20 2012-11-28 日本電信電話株式会社 シナリオ開発支援装置、およびシナリオ開発支援方法
CN102334101B (zh) * 2009-03-31 2014-10-08 三菱电机株式会社 执行顺序决定装置
JP5631270B2 (ja) * 2011-07-01 2014-11-26 三菱電機株式会社 支援装置及び支援システム及びコンピュータプログラム及び支援方法
CN107506355B (zh) * 2016-06-14 2020-09-29 阿里巴巴集团控股有限公司 对象分组方法及装置
ES2765415T3 (es) * 2016-10-21 2020-06-09 Fujitsu Ltd Aparato, método y programa de procesamiento de datos basado en microservicios

Also Published As

Publication number Publication date
JP2002149405A (ja) 2002-05-24

Similar Documents

Publication Publication Date Title
Sauro et al. Next generation simulation tools: the Systems Biology Workbench and BioSPICE integration
Geist PVM: Parallel virtual machine: a users' guide and tutorial for networked parallel computing
US7313552B2 (en) Boolean network rule engine
Li et al. A petri net approach to analyzing behavioral compatibility and similarity of web services
JP5894724B2 (ja) グラフ型計算の分散サービス
Bennaceur et al. Automated synthesis of mediators to support component interoperability
JPH11119986A (ja) 通信連携情報生成装置、3階層クライアント/サーバシステムおよび通信連携情報生成プログラムを記録した媒体
WO2004072851A1 (en) System and method for managing distributed computer processes
JP4145477B2 (ja) オブジェクト連携装置
Taher et al. Adaptation of web service interactions using complex event processing patterns
Eden A theory of object-oriented design
JP4125005B2 (ja) メッセージの型を利用するオブジェクト連携装置
Pahl et al. A semantical framework for the orchestration and choreography of web services
WO2000020966A1 (fr) Dispositif de cooperation objets
Anke et al. A service-oriented middleware for integration and management of heterogeneous smart items environments
Yu et al. Object-oriented Petri nets based architecture description language for multi-agent systems
Walton et al. An agent-based e-science experiment builder
Mokarizadeh et al. Applying semantic web service composition for action planning in multi-robot systems
Kamal et al. Modeling architectural patterns’ behavior using architectural primitives
Feijs Modelling Microsoft COM using π-calculus
Davis et al. Toward formalizing service integration glue code
Liu A distributed data flow model for composing software services
Li Towards a resilient service oriented computing based on ad-hoc web service compositions in dynamic environments
Cui et al. Detect and analyse the concurrent flaws of the BPEL process in a VPN-based approach
Guidi et al. Formalizing Mobility in Service Oriented Computing.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080325

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080526

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080617

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080618

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110627

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees