JP2002014937A - メッセージ通信システム - Google Patents

メッセージ通信システム

Info

Publication number
JP2002014937A
JP2002014937A JP2000195860A JP2000195860A JP2002014937A JP 2002014937 A JP2002014937 A JP 2002014937A JP 2000195860 A JP2000195860 A JP 2000195860A JP 2000195860 A JP2000195860 A JP 2000195860A JP 2002014937 A JP2002014937 A JP 2002014937A
Authority
JP
Japan
Prior art keywords
service
communication
client
message
unit
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.)
Pending
Application number
JP2000195860A
Other languages
English (en)
Inventor
Haruo Fukuda
春生 福田
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2000195860A priority Critical patent/JP2002014937A/ja
Publication of JP2002014937A publication Critical patent/JP2002014937A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【課題】 広域に展開される情報システムにおいて,帯
域幅の狭いネットワーク上でも効率的な通信を行い,か
つ不安定なネットワークに対して十分な耐性を持ったメ
ッセージ通信システムを提供する。 【解決手段】 Jiniサービス201,ルックアップサー
ビス203,プロキシ部204,サービス側接続部20
5,サービス側情報配信部207,第1のメッセージ格
納部208,およびサービス側通信部211はそれぞ
れ,サービスを提供するネットワーク・ノード上で動作
するJavaオブジェクトである。クライアント202,ク
ライアント側接続部206,クライアント側情報配信部
209,第2のメッセージ格納部210,およびクライ
アント側通信部212はそれぞれ,サービスを利用する
ネットワーク・ノードで動作するJavaオブジェクトであ
る。サービス側通信部211とクライアント側通信部2
12は,ネットワークを介して接続される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は,コンピュータ・ネ
ットワークを介したクライアントプログラムとサーバプ
ログラムとの間のメッセージ通信に用いられるシステ
ム,特に分散オブジェクトとして表現されるプログラム
間のメッセージ通信システムに関するものである。
【0002】
【従来の技術】分散オブジェクトを利用したクライアン
ト/サーバ間の通信システムとして,Sun Microsystem
s,Inc.によって開発されたJiniTMシステムが,下記文献
に開示されている。
【0003】文献:「Jiniアーキテクチャの仕様」Sun
Microsystems,Inc.
【0004】図3にJiniアーキテクチャの概要を示す。
【0005】101は,Jini環境上で何らかのサービス
機能を提供する「Jiniサービス」である。Jiniアーキテ
クチャでは,人間やプログラム,または他のサービスに
よって使用されるあらゆるものがサービスであり,プリ
ンタ,カメラなどのハードウエアであっても,ウェブ・
サーバなどのソフトウェアであってもJiniサービス10
1となる。
【0006】102は,Jiniサービス101が提供する
機能を利用する「Jiniクライアント」である。
【0007】103は,Jiniアーキテクチャが提供する
基本サービスである「ルックアップサービス」である。
ルックアップサービス103は,Jiniサービス101か
らの登録要求,ならびに,Jiniクライアント102から
のサービス検索要求および参照要求を処理する機能を提
供する。
【0008】104および106は,Jiniサービス10
1が提供する機能をソフトウェアによって表現したオブ
ジェクトであり,Jini技術ではこれを「プロキシ部」と
呼ぶ。
【0009】105は,プロキシ部104に関連付けら
れた「属性情報」であり,Jiniサービス101が提供す
るサービスに関する補助情報などが格納される。
【0010】以上のように構成されたJiniシステムの動
作について説明する。
【0011】Jiniサービス101はまず,ネットワーク
上に存在するルックアップサービス103を探索する。
探索にはIPマルチキャスト技術を用いた方式と直接指定
によるTCP/IP接続方式の2つが選択的に利用される。
【0012】マルチキャストによる探索方式は,Jiniサ
ービス101がルックアップサービス103の運用に関
する事前の知識をもたなくても利用可能なため,サービ
スの作成,運用が容易に行えるが,ネットワーク上の距
離が近い場合にのみ利用可能となる。
【0013】これに対して,直接指定による接続方式
は,ネットワーク上の距離が離れていてもTCP/IPによる
直接接続が可能であれば利用可能となる。ただし,Jini
サービス101が事前にルックアップサービス103の
運用に関する知識をもっていなければならない。
【0014】上記のいずれかの方法により,ルックアッ
プサービス103と接続したJiniサービス101は,ル
ックアップサービス103に1つのプロキシ部104と
0個以上任意の数の属性情報105を登録する。
【0015】次にJiniクライアント102は,上記と同
様の手順でルックアップサービス103を探索する。Ji
niクライアント102はルックアップサービス103に
対して,利用するサービスの検索処理を行う。この検索
にはJiniサービス101が実装するインターフェイスお
よび属性情報を使用することができる。検索の結果,該
当するJiniサービス101が見つかった場合,Jiniクラ
イアント102は,ルックアップサービス103に登録
されているプロキシ部104のコピーであるプロキシ部
106を取得する。プロキシ部106を取得したJiniク
ライアント102は,プロキシ部106が提供するサー
ビスインターフェイスに定義されているメッソドを呼び
出すことによって,Jiniサービス101が提供する機能
を利用することが可能となる。Jiniクライアント102
がプロキシ部106に対してメソッド呼び出しを行う
と,プロキシ部106はJiniサービス101と通信して
Jiniクライアント102からの要求を処理する。
【0016】
【発明が解決しようとする課題】しかしながら,従来の
技術には,企業間あるいは広域に分散した企業内におい
て情報システムを構築する上で次のような問題点があっ
た。
【0017】一般に企業間あるいは広域に分散した企業
内を対象とした情報システムでは,システムを構築する
ネットワークの種類を特定することはできない。インタ
ーネットなどの広域ネットワークや電話回線などを用い
た通信性能の低いネットワークを利用してシステムを構
築する可能性がある。また,携帯型端末などを利用して
外出先から社内のサービスを利用する場合には,帯域幅
が狭く不安定な移動体通信ネットワークが利用されるこ
とになる。
【0018】ところが,従来のJini技術は,高速で安定
したLAN(Local Area Network)において利用されること
によってその性能を十分に発揮するのであって,以下の
理由により,広域情報システムにそのまま利用すること
は困難であった。
【0019】Jini技術がインフラストラクチャとして使
用するJavaの分散オブジェクト技術(RMI:Remote Metho
d Invocation)による直接接続が可能な環境でのみサー
ビスの利用,提供が可能となる。すなわち,従来のRMI
によれば,任意のIPサポートに対するTCP/IP接続が可能
な環境,またはクライアント側からのHTTP(HyperTextTr
ansfer Protocol)接続が可能な環境が必要となる。さら
に,HTTPを使った通信(HTTPトンネリング)では双方向
通信が行えないため,サーバ側からのコールバックやイ
ベント情報の通知などの通信が行えない。これらは,ア
プリケーション・システムを構築する上で大きな制約と
なる。
【0020】Jiniクライアント102がサービスを利用
している期間中,Jiniクライアント102とJiniサービ
ス101との間に確立されるネットワークのコネクショ
ンを保持しなければならない。例えば,Jiniサービス1
01の処理動作中,あるいは処理結果である戻り値の通
信中に通信障害が発生した場合,Jiniクライアント10
2の呼び出しから再度行う必要がある。このように,従
来のJiniシステムは,移動体通信ネットワークなどの不
安定なネットワークに対する耐性が十分ではない。
【0021】RMIが同期型の通信機構を採用しているた
め,戻り値を必要としない処理要求に対してもJiniクラ
イアント102は,Jiniサービス101における処理が
終了するまで処理動作を中断しなければならない。この
点も,ネットワークに対するシステムの耐性を弱める要
因となり得る。
【0022】Jini技術によるサービスの機能を十分に利
用するためにはJava2環境をサポートしたプラットフォ
ームが必要となる。携帯型端末など計算資源に乏しいプ
ラットフォームでは,ユーザに対してJava2環境を提供
することが困難である。この結果,ユーザは,携帯型端
末を介して十分にJiniサービスを利用することができな
い。
【0023】本発明は,上記のような問題点に鑑みてな
されたものであり,その目的は,広域に展開される情報
システムにおいて,帯域幅の狭いネットワーク上でも効
率的な通信を行い,かつ不安定なネットワークに対して
十分な耐性を持ったメッセージ通信システムを提供する
ことにある。さらに,クライアントがネットワークと非
接続の状態にあってもサービス機能の利用が可能なメッ
セージ通信システムを提供することにある。
【0024】
【課題を解決するための手段】上記課題を解決するため
に,請求項1によれば,ネットワークによって接続され
た複数のコンピュータから成るコンピュータ・システム
上で稼動するサービス手段と,サービス手段が提供する
機能を直接的または間接的に使用するクライアントと,
サービス手段が存在するサーバ・ノード内に配置され,
クライアントが存在するクライアント・ノードから送信
されて来たクライアント通信メッセージをサービス手段
に対するメソッド呼び出しに変換しメソッド呼び出しを
実行する第1の接続手段と,クライアント通信メッセー
ジを第1のメッセージ格納手段に格納するとともに,ク
ライアント通信メッセージを第1の接続手段に送信する
第1の情報配信手段と,クライアント・ノードに配置さ
れた第2の通信手段にネットワークを介して接続され,
第2の通信手段が送信するクライアント通信メッセージ
を受信し第1の情報配信手段に送信する第1の通信手段
と,クライアント・ノード内に配置され,クライアント
が発行するメソッド呼び出しをクライアント通信メッセ
ージに変換する第2の接続手段と,第2の接続手段から
送信されたクライアント通信メッセージを第2のメッセ
ージ格納手段に格納するとともに,第2の通信手段に送
信する第2の情報配信手段と,を備えることを特徴とす
るメッセージ通信システムが提供される。かかる構成に
よれば,クライアントによって発行されたメソッド呼び
出しは,第2の接続手段によってクライアント通信メッ
セージに変換される。変換されたクライアント通信メッ
セージは,第2の情報配信手段,第2の通信手段,ネッ
トワーク,第1の通信手段,および第1の情報配信手段
を経由して,第1の接続手段に送信される。
【0025】また,請求項2によれば,第1の接続手段
は,クライアント通信メッセージを変換して得られたメ
ソッド呼び出しの処理をサービス手段が実行した結果か
らサービス通信メッセージを作成し,第1の情報配信手
段は,サービス通信メッセージを第1のメッセージ格納
手段に格納するとともに,サービス通信メッセージを第
1の通信手段に送信し,第1の通信手段は,サービス通
信メッセージをネットワークを介して,第2の通信手段
に送信し,第2の通信手段は,サービス通信メッセージ
を第2の情報配信手段に送信し,第2の情報配信手段
は,サービス通信メッセージを第2のメッセージ格納手
段に格納するとともに,サービス通信メッセージを第2
の接続手段に送信し,第2の接続手段は,サービス通信
メッセージを解析し,サービス手段のメソッド呼び出し
処理の結果としてクライアントに対して通知する。かか
る構成によれば,第1の接続手段によって作成されたサ
ービス通信メッセージは,第1の情報配信手段,第1の
通信手段,ネットワーク,第2の通信手段,および第2
の情報配信手段を経由して,第2の接続手段に送信され
る。
【0026】このように,クライアント通信メッセージ
およびサービス通信メッセージは,サービス・ノードと
クライアント・ノードとの間のネットワークに対して,
第1の通信手段または第2の通信手段を経由して送信さ
れる。これら第1の通信手段,第2の通信手段の仕様を
適宜選択することによって,クライアント通信メッセー
ジおよびサービス通信メッセージのサービス・ノードと
クライアント・ノードとの間での送受信において,多様
なネットワーク・プロトコルの使用が可能となる。
【0027】また,クライアント通信メッセージおよび
サービス通信メッセージはともに,第1のメッセージ格
納手段および第2のメッセージ格納手段に格納されてお
り,クライアント通信メッセージおよびサービス通信メ
ッセージの再送信は容易であるため,ネットワーク障害
の発生等にも柔軟に対応することが可能となる。
【0028】請求項3によれば,請求項1または2に記
載のメッセージ通信システムに対して,サービス手段の
起動に応じて第1の接続手段を生成するサービス管理手
段が備えられる。請求項5に記載のようにサービス手段
がJiniサービスである場合,サービス手段の起動とは,
Jiniサービスのルックアップサービスへの登録に相当す
る。かかる構成によれば,サービス管理部は,サービス
手段に最適な第1の接続手段を生成することが可能とな
る。
【0029】また,請求項4によれば,請求項1,2,
または3に記載のメッセージ通信システムに対して,ク
ライアントの要求に応じて第2の接続手段を生成するサ
ービス呼び出し手段が備えられる。かかる構成によれ
ば,サービス手段が提供する機能を利用することが可能
なクライアントの多様化が実現する。
【0030】
【発明の実施の形態】以下に添付図面を参照しながら,
本発明にかかるメッセージ通信システムの好適な実施の
形態について詳細に説明する。なお,以下の説明および
添付された図面において,略同一の機能および構成を有
する構成要素については,同一符号を付することによっ
て重複説明を省略する。
【0031】[第1の実施の形態]本発明の第1の実施
の形態にかかるメッセージ通信システムとしてのプログ
ラム間通信システム(ソフトウェアコンポーネント)の
構成を図1に示す。
【0032】図1の左側に示したJiniサービス201,
ルックアップサービス203,プロキシ部204,サー
ビス側接続部205,サービス側情報配信部207,第
1のメッセージ格納部208,およびサービス側通信部
211はそれぞれ,サービスを提供するネットワーク・
ノード上で動作するJavaオブジェクトである。
【0033】図1の右側に示したクライアント202,
クライアント側接続部206,クライアント側情報配信
部209,第2のメッセージ格納部210,およびクラ
イアント側通信部212はそれぞれ,サービスを利用す
るネットワーク・ノードで動作するJavaオブジェクトで
ある。
【0034】各ノード内部において各オブジェクトは,
特に明記しない限り,同一のJava仮想マシン上に存在す
る直接的なメソッド呼び出し,または,RMIによる分散
オブジェクト間のメソッド呼び出しによって接続される
ものとする。
【0035】以下,本実施の形態にかかるプログラム間
通信システムの構成を図1に基づいて詳細に説明する。
【0036】Jiniサービス201は,Jini環境上で何ら
かのサービス機能を提供するオブジェクトである。Jini
アーキテクチャでは,人間やプログラム,または他のサ
ービスによって使用されるあらゆるものがサービスであ
り,プリンタ,カメラなどのハードウエアであっても,
ウェブ・サーバなどのソフトウェアであってもJiniサー
ビス201となる。
【0037】クライアント202は,本実施の形態にか
かるプログラム間通信システムにおいて,Jiniサービス
201が提供する機能を利用するオブジェクトである。
図3に示した従来のJini技術におけるJiniクライアント
102に相当する。例えば,人が使用するために設計さ
れたユーザインターフェイスを備えるアプリケーショ
ン,あるいは,Jiniサービス201を利用することによ
って新たな機能を提供する他のサーバ・アプリケーショ
ンが,クライアント202となり得る。
【0038】ルックアップサービス203は,Jiniシス
テムにおける基本サービスであり,Jiniサービス201
からの登録要求を受け付けるオブジェクトである。Jini
サービス201は,ルックアップサービス203に1つ
のプロキシ部204と0個以上の属性情報を登録する。
【0039】プロキシ部204は,Jiniサービス201
が提供するオブジェクトであり,ルックアップサービス
203に対する検索によって獲得される。
【0040】サービス側接続部205は,プロキシ部2
04を介してJiniサービス201に接続するオブジェク
トであり,ルックアップサービス203に対して検索を
実行する。また,サービス側接続部205は,1つ以上
のサービス側情報配信部207と接続する。サービス側
接続部205は,サービス側情報配信部207から配信
される通信メッセージをJiniサービス201に対するメ
ソッド呼び出しに変換する。そして,変換して得られた
メソッド呼び出し処理を,プロキシ部204を介して,
Jiniサービス201に対して実行する。必要に応じて,
その処理結果から再び送信メッセージを作成してサービ
ス側情報配信部207に配送する。
【0041】なお,本実施の形態にかかるプログラム間
通信システムにおいて,「通信メッセージ」は,通信内
容を表すオブジェクト,すなわち,本文の他に少なくと
も送信先を示す情報および送信先を示す情報を備えるオ
ブジェクトである。
【0042】クライアント側接続部206は,クライア
ント202と1つ以上のクライアント側情報配信部20
9と接続するオブジェクトである。このオブジェクト
は,クライアント202から発せられたメソッド呼び出
しから適切な通信メッセージを作成してクライアント側
情報配信部209に配送する一方,クライアント側情報
配信部209から届けられた通信メッセージを解釈して
クライアント202にイベントとして通知する。クライ
アント側接続部206が提供するインターフェイスは,
接続先であるJiniサービス201が提供するインタフェ
ースと同じであっても,異なるものであってもよい。
【0043】サービス側情報配信部207は,1つ以上
のサービス側接続部205と1つ以上のサービス側通信
部211に接続し,これらのオブジェクトから送信され
る通信メッセージを適切に配信するためのオブジェクト
である。サービス側情報配信部207は,Jiniシステム
におけるサービスとして機能するものであり,ルックア
ップサービス203に自身を登録する。サービス側情報
配信部207は,一時的に通信メッセージを格納する第
1のメッセージ格納部208と接続する。
【0044】第1の通信メッセージ格納部208は,格
納対象である通信メッセージそれぞれに対して,未配送
/配送済みを示すフラグなどの付加情報を設定する手段
を有する。
【0045】サービス側情報配信部207は,ネットワ
ーク障害等の理由によって配送に失敗した通信メッセー
ジに対して,未配送のフラグを第1のメッセージ格納部
208に設定する手段,格納されている未配送の通信メ
ッセージを再送する手段,およびこの再送処理を制御す
るポリシー情報を外部から設定する手段を備える。さら
に,サービス側情報配信部207は,サービス側通信部
211が備えるネットワークに関する諸情報(ネットワ
ークの種類,接続状態,過去の通信性能に関する情報
等)の提供機能を利用して,サービス側接続部205に
対してこれらの情報を提供する機能を有する。
【0046】クライアント側情報配信部209は,クラ
イアント202が動作するノード上で稼動するオブジェ
クトであり,サービス側情報配信部207と同様の機能
を有する。すなわち,1つ以上のクライアント側接続部
206と1つ以上のクライアント側通信部212とに接
続し,これらのオブジェクトから送信された通信メッセ
ージを適切に配信する。クライアント側情報配信部20
9は,一時的な通信メッセージの格納機能を具備するた
めに第2のメッセージ格納部210と接続する。この第
2のメッセージ格納部210との連携によって,クライ
アント側情報配信部209は,各通信メッセージに未配
送/配送済みのフラグを設定する機能,ネットワーク障
害等の理由により配送に失敗した通信メッセージを未配
送通信メッセージとして格納する機能,格納されている
未配送の通信メッセージを再送する機能,およびこの再
送処理を制御するためのポリシー情報を外部から設定す
る機能を備える。また,クライアント側情報配信部20
9は,クライアント側通信部212が備えるネットワー
クに関する諸情報(ネットワークの種類,接続状態,過
去の通信性能に関する情報等)の提供機能を利用して,
クライアント側接続部212に対してこれらの情報を提
供する機能を有する。このように,クライアント側情報
配信部209は,サービス側情報配信部207と同様の
機能を有するものの,サービス側情報配信部207と異
なり,必ずしもJiniサービスである必要はない。
【0047】サービス側通信部211は,1つ以上のサ
ービス側情報配信部207および1つ以上の対となるク
ライアント側通信部212と接続するオブジェクトであ
る。同様に,クライアント側通信部212は1つ以上の
クライアント側情報配信部209および1つ以上の対と
なるサービス側通信部211と接続するオブジェクトで
ある。
【0048】サービス側通信部211とクライアント側
通信部212との間の接続は,LANを経由するものに限
定されない。これら2つの通信部の間の通信には,イン
ターネットにおけるHTTPや無線通信,衛星通信など,シ
ステムに応じたネットワークプロトコルの利用が可能で
ある。このため,利用するネットワークの種類に応じ
て,複数のサービス側通信部211とクライアント側通
信部212が用意され,同じ種類のネットワークを対象
とする通信部が対になって動作する。そして,いずれの
ネットワーク接続を利用した場合でも,サービス側情報
配信部207とクライアント側情報配信部209の間で
は仮想的に双方向の通信が実現される。
【0049】サービス側通信部211は,サービス側情
報配信部207に対して,ネットワークの種類,接続状
態,過去の通信性能等に関する情報を提供する機能を有
する。また,クライアント側通信部212は,クライア
ント側情報配信部209に対して,ネットワークの種
類,接続状態,過去の通信性能等に関する情報を提供す
る機能を有する。
【0050】以上のように構成された本実施の形態にか
かるプログラム間通信システムの動作(「サービスの利
用処理」)を説明する。以下,Jiniサービス201とク
ライアント202間での通信時における各コンポーネン
ト間の相互作用を順に説明する。
【0051】<ステップ1>クライアント202が,ク
ライアント側接続部206が実装するインターフェイス
を経由して,希望する機能を提供するメソッドを呼び出
す。
【0052】<ステップ2>クライアント側接続部20
6は,クライアント202が実行したメソッド呼び出し
処理から通信メッセージを構築して,これをクライアン
ト側情報配信部209に送付する。
【0053】<ステップ3>クライアント側情報配信部
209は,受信した通信メッセージを第2のメッセージ
格納部210に格納した後,通信メッセージに記載され
ている送付先情報に基づいて,複数のクライアント側通
信部から一のクライアント側通信部212を選択し,通
信メッセージをこのクライアント側通信部212に送付
する。ただし,クライアント側通信部212が存在しな
い場合には,通信に使用するネットワークの種類に基づ
き適切なクライアント側通信部を新たに生成して,これ
に対して通信メッセージを送付する。
【0054】<ステップ4>クライアント側通信部21
2は,サービス側通信部211にネットワーク接続し
て,通信メッセージをサービス側通信部211に送付す
る。クライアント側通信部212は,この通信メッセー
ジの送信に成功した場合にのみ,クライアント側情報配
信部209に対してこの通信メッセージに送信済みのフ
ラグを設定するように要求する。ネットワーク障害など
の理由により送信に失敗した場合,あるいは明示的(意
図的)にネットワーク接続が遮断されている場合には,
この通信メッセージに対して送信済みのフラグが設定さ
ず,この通信メッセージは自動的に再送処理の対象とな
る。そして,予め設定してある再送ポリシーに従って,
ステップ3からの処理を再実行する。
【0055】<ステップ5>クライアント側通信部21
2から通信メッセージを受け取ったサービス側通信部2
11は,サービス側情報配信部207にこの通信メッセ
ージを送付する。
【0056】サービス側情報配信部207は,この通信
メッセージのコピーを第1のメッセージ格納部208に
保存した後,通信メッセージに記載されている配送先情
報に基づき,サービス側接続部205に通信メッセージ
を送付する。
【0057】<ステップ7>サービス側接続部205
は,通信メッセージをJiniサービス201に対する1ま
たは2以上のメソッド呼び出し処理に変換して,プロキ
シ部204を経由してその処理を実行する。
【0058】<ステップ8>サービス側接続部205
は,Jiniサービス201への処理結果から応答用の通信
メッセージを作成する。このとき作成する通信メッセー
ジには,送付先および発信元に関する情報が記載され
る。
【0059】<ステップ9>サービス側接続部205
は,ステップ8において作成した通信メッセージをサー
ビス側情報配信部207に送付する。
【0060】<ステップ10>サービス側情報配信部2
07は,通信メッセージを第1のメッセージ格納部20
8に格納した後,通信メッセージに記載されているネッ
トワークの種類に関する情報に基づき,複数のサービス
側通信部から一のサービス側通信部211を選択し,通
信メッセージをこのサービス側通信部211に送付す
る。
【0061】<ステップ11>サービス側通信部211
は,通信メッセージに記載されている配信先情報に基づ
き,クライアント側通信部212に対してこの通信メッ
セージを送付する。サービス側通信部211は,この通
信メッセージの送信に成功した場合にのみ,サービス側
情報配信部207に対してこの通信メッセージに送信済
みのフラグを設定するように要求する。ネットワーク障
害などの理由により送信に失敗した場合,あるいは明示
的(意図的)にネットワーク接続が遮断されている場合
には,この通信メッセージに対して送信済みのフラグが
設定さず,この通信メッセージは自動的に再送処理の対
象となる。そして,予め設定してある再送ポリシーに従
って,ステップ10から処理を再実行する。
【0062】<ステップ12>クライアント側通信部2
12は,受信した通信メッセージをクライアント側情報
配信部209に送付する。
【0063】<ステップ13>通信メッセージを受信し
たクライアント側情報配信部209は,通信メッセージ
を第2のメッセージ格納部210に格納した後,通信メ
ッセージの送付先情報に基づき,この通信メッセージを
クライアント側接続部206に送付する。
【0064】<ステップ14>通信メッセージを受信し
たクライアント側接続部206は,この通信メッセージ
を解析して,クライアント202が行ったメソッド呼び
出しに対する結果として,クライアント202にイベン
トを通知する。ここで一連の処理が終了する。
【0065】以上,クライアント202がJiniサービス
201の機能を利用する際の各コンポーネント間の相互
作用を順に説明したが,逆にJiniサービス201がクラ
イアント202に対してコールバックを行う場合,すな
わちイベント情報を送付する場合も各コンポーネント間
において略同一の動作が行われる。
【0066】ここではクライアント202のメソッド呼
び出しに対して,Jiniサービス201が戻り値を返
す場合に即して各コンポーネント間の動作を説明した。
これに対して,戻り値を必要としないメソッド呼び出し
が発せられた場合には,サービス側からの応答メッセー
ジ送付の手順は不要となる。
【0067】応答メッセージが必要であるか否かは,暗
黙の設定または明示的な設定のいずれかによって区別さ
れる。暗黙の設定とは,クライアント側接続部206が
提供するインターフェイスに定義されるメソッドの戻り
値が存在しない場合(Java言語では,戻り値の型がvoid
と宣言される)に相当する。その他,メソッド定義上は
戻り値が存在するが,クライアント202がその戻り値
を必要としない場合もある。この場合,クライアント2
02は,通信メッセージに対応メッセージが不要である
旨を記載しておく。これを明示的な設定と呼ぶ。
【0068】以上,説明したように本実施の形態にかか
るプログラム間通信システムによれば,次の効果が得ら
れる。
【0069】通信部(サービス側通信部211,クライ
アント側通信部212)が運用段階においてネットワー
クプロトコルに応じて選択されるため,従来のRMIがサ
ポートしていない多様なネットワークへの対応が可能と
なる。また,ネットワークの種類に依存する処理は,す
べて通信部によって行われるため,使用するネットワー
クの変更が,Jiniサービス201,クライアント202
などのアプリケーションに対して影響を及ぼすことはな
い。
【0070】本実施の形態にかかるプログラム間通信シ
ステムによれば,従来のJiniサービスを変更せずにその
まま利用することが可能となる。さらに,クライアント
側接続部206に実装されるインターフェイスと,Jini
サービス201のプロキシに実装されるインターフェイ
スが同じである場合,従来のクライアントもそのまま利
用することが可能となる。
【0071】通信中にネットワーク障害などが発生した
場合には,情報配信部(サービス側情報配信部207,
クライアント側情報配信部209)が自動的にメッセー
ジデータを再送する。したがって,不安定なネットワー
クに対する耐性が高まる。
【0072】クライアント(またはサーバ)環境が明示
的にネットワークへの接続を解除した場合,ネットワー
クへの接続が復元されると同時に,情報配信部が通信を
自動的に再開するため,アプリケーションは,ネットワ
ークへの接続状態を意識せずに動作することが可能とな
る。
【0073】サービス側接続部205およびクライアン
ト側接続部206は,ネットワークに関する諸情報(ネ
ットワークの種類,接続状態,応答時間の履歴など)を
知り得るため,効果的なネットワーク利用のための動的
な通信制御を行うことが可能となる。また,ネットワー
クの種類に基づく静的な再送ポリシーを設定することも
可能である。
【0074】サービス側接続部205は,クライアント
202からの1つの通信メッセージに対して複数回のサ
ービスアクセスを行い,その結果をまとめて1つの応答
メッセージデータとしてクライアント側へ返すように動
作する。したがって,ネットワーク効率の良いサービス
アクセスが容易に実現される。
【0075】サービス側接続部205およびクライアン
ト側接続部206において,通信メッセージを作成する
際に暗号化処理を施すことによって,セキュアな通信が
容易に実現される。
【0076】サービス側接続部205およびクライアン
ト側接続部206において,通信メッセージを作成する
際に可逆符号化処理を施すことによって,通信メッセー
ジのデータ量を減らすことが可能となる。
【0077】従来,リソース不足が原因で十分なJiniサ
ービスが受けられなかったクライアント202であって
も,Java2マイクロエディション(Java2 Micro Editio
n)あるいはJDK1.1環境で動作可能なクライアント側接
続部206を用意することによって,多様なJiniサービ
スを利用することが可能となる。なお,この場合,Jini
サービス自体の変更は不要である。
【0078】[第2の実施の形態]本発明の第2の実施
の形態にかかるメッセージ通信システムとしてのプログ
ラム間通信システム(ソフトウェアコンポーネント)の
構成を図2に示す。
【0079】本実施の形態にかかるプログラム間通信シ
ステムは,第1の実施の形態にかかるプログラム間通信
システムに対して,サービス管理部313とサービス呼
び出し部314が追加された構成を有する。
【0080】サービス管理部313は,サービス・ノー
ド上で動作するオブジェクトであり,本実施の形態にか
かるプログラム間通信システムにおいて,オブジェクト
間通信に対応したJiniサービス201の登録および管理
を担当する。サービス管理部313は,ルックアップサ
ービス203との連携によって管理対象であるJiniサー
ビス201の登録/削除を監視する機能,必要に応じて
サービス側接続部205を生成/削除する機能,クライ
アント側からのサービス・リスト取得要求に対する応答
メッセージを作成する機能,および監視対象であるJini
サービス201に変化があった場合のクライアント側へ
の通知機能を有する。また,サービス管理部313は,
クライアント側への変更通知を実現するために,接続中
のクライアントのリストを管理する機能も有する。
【0081】サービス呼び出し部314は,クライアン
ト・ノード上で動作するオブジェクトであり,クライア
ント202からのサービス検索要求および参照要求を受
け付ける。サービス呼び出し部314は,内部に各サー
ビス・ノード上で稼動中のサービスに関するリスト・テ
ーブルを備え,クライアント202からの検索要求に対
してこのリスト・テーブルを参照することによって応答
する。サービス呼び出し部314は,クライアント20
2が指定する検索条件にマッチしたサービスの数を返
し,クライアント202がサービスを利用するために必
要なクライアント側接続部206を生成する機能を有す
る。
【0082】以上のように構成された本実施の形態にか
かるプログラム間通信システムの動作を説明する。以
下,サービスの登録,検索,参照の3つの動作に関する
各コンポーネント間の相互作用を説明する。
【0083】まず,Jiniサービスの起動をトリガとし
て,本実施の形態にかかるプログラム間通信システムが
備える通信機構を用いて通信路を確立し,それをクライ
アントに通知するまでの過程,すなわち「サービスの登
録処理」の工程について説明する。
【0084】<登録ステップ1>サービス管理部313
がルックアップサービス303に対して,本実施の形態
にかかるプログラム間通信システムに対応するJiniサー
ビスが新たにルックアップサービス203に登録された
場合,または,既にルックアップサービス203に登録
されているJiniサービスが削除された場合にイベントを
通知するようにイベント登録を行う。
【0085】<登録ステップ2>Jiniサービス201を
起動する。このJiniサービス201は,その初期化処理
において,プロキシ部204およびJiniサービス201
が本実施の形態にかかるプログラム間通信システムに対
応していることを示す属性情報をルックアップサービス
203に登録する。
【0086】<登録ステップ3>ルックアップサービス
203に対してJiniサービス212が登録されたこと
(サービス登録)がイベント情報としてサービス管理部
313に通知される。このサービス登録が,登録ステッ
プ1においてサービス管理部313が行うイベント登録
動作のトリガとなる。
【0087】<登録ステップ4>イベント情報を受信し
たサービス管理部313は,Jiniサービス201からこ
のサービスを利用するために必要となる諸情報を入手す
る。この情報にはサービス側接続部205およびクライ
アント側接続部206を生成するために必要な情報(Ja
vaクラス名およびこのクラスのロード元情報),およ
び,クライアント202が利用可能なネットワークの種
類に関する情報などが含まれる。
【0088】<登録ステップ5>サービス管理部313
は,登録ステップ4において入手したサービス側接続部
に関する情報に基づいて,サービス側接続部205を生
成する。このとき,サービス管理部313は,Jiniサー
ビス201が提供するプロキシ部204およびクライア
ント202との通信に使用するネットワークの種類に関
する情報をサービス側接続部205に対して設定する。
【0089】<登録ステップ6>生成されたサービス側
接続部205は,その初期化処理において,サービス側
情報配信部207との接続を確立する。すなわち,生成
時に指定されたネットワークの種類に関する情報に基づ
き,このネットワークへの通信を担当するサービス側情
報配信部207をルックアップサービス203から検索
し,サービス側情報配信部207に対応するプロキシ部
204を獲得する。
【0090】<登録ステップ7>サービス側接続部20
5の初期化処理が終了したことを確認したサービス管理
部313は,新しく追加されたJiniサービス201に関
する情報を表す通信メッセージを作成し,サービス側情
報配信部207に対して送付する。
【0091】<登録ステップ8>この通信メッセージ
は,第1の実施の形態にかかるプログラム間通信システ
ムの動作手順(ステップ10〜ステップ1)と略同一の
手順でクライアント側情報配信部209まで配送され
る。
【0092】<登録ステップ9>クライアント側情報配
信部209は,配送された通信メッセージをサービス呼
び出し部314に送付する。
【0093】<登録ステップ10>サービス呼び出し部
314に到達した通信メッセージは,ここでサービスを
利用するための情報に変換され,サービス呼び出し部3
14が備えるサービス・テーブルに格納される。ここで
一連のサービスの登録処理が終了する。
【0094】次に,クライアントが新たなサーバ・ノー
ドに接続する場合に行われる,「サービスの検索処理」
について説明する。
【0095】<検索ステップ1>クライアント202が
サービス呼び出し部314に対してサーバ・ノードを指
定する。
【0096】<検索ステップ2>サービス呼び出し部3
14は,指定されたサーバ・ノードが未知のノードであ
る場合,そのサーバ・ノード上で動作するサービスに関
するリストを取得するための通信メッセージを生成し
て,これをクライアント側情報配信部209に送付す
る。
【0097】<検索ステップ3>クライアント側情報配
信部209は,通信メッセージに記載されている情報に
基づいて,この通信メッセージを適切なクライアント側
通信部212に送付する。ただし,適切なクライアント
側通信部212が存在しない場合には,通信に使用する
ネットワークの種類に基づき適切なクライアント側通信
部を新たに生成して,これに通信メッセージを送付す
る。
【0098】<検索ステップ4>クライアント側通信部
212は,サービス側通信部211にネットワーク接続
して通信メッセージを送付する。ここで,ネットワーク
障害等の理由により通信メッセージの配送に失敗した場
合には,この通信メッセージは,第1の実施の形態にお
いて説明したステップ4と同様に自動的な再送処理の対
象となる。
【0099】<検索ステップ5>サービス側通信部21
1は,サービス側情報配信部207に通信メッセージを
送付する。
【0100】<検索ステップ6>サービス側情報配信部
207は,この通信メッセージをサービス管理部313
に送付する。
【0101】<検索ステップ7>通信メッセージを受信
したサービス管理部313は,内部に所有するサービス
のリストに基づいて応答のための通信メッセージを作成
する。
【0102】以後,サービス管理部313からサービス
呼び出し部314に対して,登録ステップ7〜9と同様
の手順で通信メッセージが配送される。これによって,
サービス呼び出し部314には,対象とするサービス・
ノード上で稼動するサービスのリスト・テーブルが作成
される。
【0103】次に,上述のようにクライアント・ノード
上で管理されるサービスのリスト・テーブルを用いて,
クライアントがサービスとの接続を確立する過程,すな
わち「サービスの参照処理」の過程を説明する。
【0104】<参照ステップ1>クライアント202が
サービス呼び出し部314に対して,所定の条件を満足
し,かつ,利用可能なサービスの情報一覧の出力を要求
する。
【0105】<参照ステップ2>サービス呼び出し部3
14は,内部に所有するサービス・リストから検索条件
に該当するサービスの部分リストを作成してクライアン
ト202に返す。
【0106】<参照ステップ3>クライアント202
は,サービス呼び出し部314から獲得したリストか
ら,1つ以上の使用するサービスを特定する。そして,
サービス呼び出し部314に対して,サービス利用のた
めのインターフェイスとして使用するクライアント側接
続部206の生成・獲得を要求する。
【0107】<参照ステップ4>サービス呼び出し部3
14は,上述の「サービスの登録処理」または「サービ
スの検索処理」によって獲得したサービスに関する情報
からクライアント側接続部206の生成に必要な情報を
読み出して,クライアント側接続部206を生成する。
そして,生成したクライアント側接続部をクライアント
202に渡す。
【0108】クライアント202は,獲得したクライア
ント側接続部206が実装するインターフェイスを経由
して,メソッド呼び出しを行うことが可能となる。これ
以降,第1の実施の形態において説明した「サービスの
利用処理」が行われる。
【0109】以上,説明したように本実施の形態にかか
るプログラム間通信システムによれば,クライアント2
02は,サービス・ノード上で現在稼動中のサービスに
関する情報およびそのサービスを利用するためのクライ
アント側接続部206を広域ネットワーク上においても
自動的に取得することが可能となる。したがって,サー
ビス・ノード上で追加/削除されたサービスについての
情報の入手が容易となる。
【0110】また,クライアント202は,サービス呼
び出し部314にローカルに管理されているサービス・
リストにアクセスすることによって,サービスを検索す
ることが可能となるため,検索のたびにサービス・ノー
ドにアクセスする必要がなく,サービス検索処理の高速
化が実現する。
【0111】添付図面を参照しながら本発明の好適な実
施の形態について説明したが,本発明はかかる実施の形
態に限定されない。当業者であれば,特許請求の範囲に
記載された技術的思想の範疇内において各種の変更例ま
たは修正例に想到し得ることは明らかであり,それらに
ついても当然に本発明の技術的範囲に属するものと了解
される。
【0112】例えば,本発明の実施の形態では,サービ
ス側情報配信部207およびクライアント側情報配信部
209によって,通信メッセージに対して,未配送/配
送済みを識別するためのフラグが付与されると説明した
が,各通信メッセージの配送状態が識別可能な別の手段
を用いてもよい。例えば,配送状態に応じたキューを2
つ用意し,どちらのキューに通信メッセージが格納され
ているかによって配送状態を判断することも可能であ
る。
【0113】本発明の実施の形態では,クライアント側
接続部206に対するクライアント202のメソッド呼
び出しが,呼び出し直後に後続の処理シーケンスを実行
する非同期型呼び出しである場合に即して説明したが,
メソッド呼び出しの結果が返るまで処理シーケンスをブ
ロックする同期型呼び出しを用いることも可能である。
【0114】
【発明の効果】以上説明したように,本発明にかかるメ
ッセージ通信システムによれば,広域に展開され,か
つ,帯域幅の狭いネットワーク上でも効率的な通信を行
うことが可能となる。また,不安定なネットワークに対
する耐性が向上する。さらに,クライアントがネットワ
ークと非接続の状態にあってもサービス機能の利用が可
能となる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態にかかるプログラム
間通信システムの構成を示すブロック図である。
【図2】本発明の第1の実施の形態にかかるプログラム
間通信システムの構成を示すブロック図である。
【図3】従来のJiniシステムの構成を示すブロック図で
ある。
【符号の説明】
201:Jiniサービス 202:クライアント 203:ルックアップサービス 204:プロキシ部 205:サービス側接続部 206:クライアント側接続部 207:サービス側情報配信部 208:第1のメッセージ格納部 209:クライアント側情報配信部 210:第2のメッセージ格納部 211:サービス側通信部 212:クライアント側通信部 313:サービス管理部 314:サービス呼び出し部

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 ネットワークによって接続された複数の
    コンピュータから成るコンピュータ・システム上で稼動
    するサービス手段と,前記サービス手段が提供する機能
    を直接的または間接的に使用するクライアントと,前記
    サービス手段が存在するサーバ・ノード内に配置され,
    前記クライアントが存在するクライアント・ノードから
    送信されて来たクライアント通信メッセージを前記サー
    ビス手段に対するメソッド呼び出しに変換し前記メソッ
    ド呼び出しを実行する第1の接続手段と,前記クライア
    ント通信メッセージを第1のメッセージ格納手段に格納
    するとともに,前記クライアント通信メッセージを前記
    第1の接続手段に送信する第1の情報配信手段と,前記
    クライアント・ノードに配置された第2の通信手段にネ
    ットワークを介して接続され,前記第2の通信手段が送
    信する前記クライアント通信メッセージを受信し前記第
    1の情報配信手段に送信する第1の通信手段と,前記ク
    ライアント・ノード内に配置され,前記クライアントが
    発行するメソッド呼び出しを前記クライアント通信メッ
    セージに変換する第2の接続手段と,前記第2の接続手
    段から送信された前記クライアント通信メッセージを第
    2のメッセージ格納手段に格納するとともに,前記第2
    の通信手段に送信する第2の情報配信手段と,を備える
    ことを特徴とする,メッセージ通信システム。
  2. 【請求項2】 前記第1の接続手段は,前記クライアン
    ト通信メッセージを変換して得られたメソッド呼び出し
    の処理を前記サービス手段が実行した結果からサービス
    通信メッセージを作成し,前記第1の情報配信手段は,
    前記サービス通信メッセージを前記第1のメッセージ格
    納手段に格納するとともに,前記サービス通信メッセー
    ジを前記第1の通信手段に送信し,前記第1の通信手段
    は,前記サービス通信メッセージを前記ネットワークを
    介して,前記第2の通信手段に送信し,前記第2の通信
    手段は,前記サービス通信メッセージを前記第2の情報
    配信手段に送信し,前記第2の情報配信手段は,前記サ
    ービス通信メッセージを前記第2のメッセージ格納手段
    に格納するとともに,前記サービス通信メッセージを前
    記第2の接続手段に送信し,前記第2の接続手段は,前
    記サービス通信メッセージを解析し,前記サービス手段
    のメソッド呼び出し処理の結果として前記クライアント
    に対して通知する,ことを特徴とする,請求項1に記載
    のメッセージ通信システム。
  3. 【請求項3】 さらに,前記サービス手段の起動に応じ
    て,前記第1の接続手段を生成するサービス管理手段を
    備えることを特徴とする,請求項1または2に記載のメ
    ッセージ通信システム。
  4. 【請求項4】 さらに,前記クライアントの要求に応じ
    て,前記第2の接続手段を生成するサービス呼び出し手
    段を備えることを特徴とする,請求項1,2,または3
    に記載のメッセージ通信システム。
  5. 【請求項5】 前記サービス手段は,Jiniサービスであ
    ることを特徴とする,請求項1,2,3,または4に記
    載のメッセージ通信システム。
JP2000195860A 2000-06-29 2000-06-29 メッセージ通信システム Pending JP2002014937A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000195860A JP2002014937A (ja) 2000-06-29 2000-06-29 メッセージ通信システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000195860A JP2002014937A (ja) 2000-06-29 2000-06-29 メッセージ通信システム

Publications (1)

Publication Number Publication Date
JP2002014937A true JP2002014937A (ja) 2002-01-18

Family

ID=18694454

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000195860A Pending JP2002014937A (ja) 2000-06-29 2000-06-29 メッセージ通信システム

Country Status (1)

Country Link
JP (1) JP2002014937A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2224329A2 (en) 2009-02-27 2010-09-01 Canon Kabushiki Kaisha Information processing apparatus, control method, and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2224329A2 (en) 2009-02-27 2010-09-01 Canon Kabushiki Kaisha Information processing apparatus, control method, and program

Similar Documents

Publication Publication Date Title
US6976080B1 (en) Multiple-protocol communication subsystem controller
US7979519B2 (en) System for providing information between different protocol environments cooperative with each other and a method therefor
US6782420B1 (en) Telecommunications network with a distributive network management system
US7447756B2 (en) Temporary aliasing for resource list
US20060069723A1 (en) System and method for concentration and load-balancing of requests
JP2003208365A (ja) 適応ディスパッチャを有する仮想ネットワーク
EP1401169A1 (en) Method and system using a Meta service selector for deploying services over a plurality of networks
US20100241715A1 (en) Method of realizing uniqueness assurance and method of determining message destination
US6625117B1 (en) Method and apparatus for switching messages from a primary message channel to a secondary message channel in a message queuing system
Jung et al. Design of MOBILE MOM: Message oriented middleware service for mobile computing
US20030177259A1 (en) Remote services systems data delivery mechanism
KR101301447B1 (ko) 독립적인 메시지 저장소 및 메시지 전송 에이전트
JP4591117B2 (ja) プレゼンス情報配布システム
US8204930B1 (en) Method and system for controlling and accessing content servers
US20060168553A1 (en) Software development kit for real-time communication applications and system
US7260536B1 (en) Distributed voice and wireless interface modules for exposing messaging/collaboration data to voice and wireless devices
JP2002014937A (ja) メッセージ通信システム
JP2011154703A (ja) トランスレーション・エージェント・サーバ
US9479599B2 (en) Reroute of a web service in a web based application
US20030149771A1 (en) Remote services system back-channel multicasting
US6678742B1 (en) Object-oriented computer system and computer-readable storage medium which stores program
US20030147383A1 (en) Object communication services software development system and methods
KR100687730B1 (ko) 액티브 노드, 액티브 노드를 이용한 컨텐츠 전송 시스템및 그 방법
CN114268615B (zh) 基于tcp连接的业务处理方法和系统
JP2006120080A (ja) Webサービス要求中継システム、Webサービス要求中継方法、中継サーバ、及びそのプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060822

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090327

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090407

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090804