JP2000311094A - 遠隔オブジェクト間の通信方法 - Google Patents
遠隔オブジェクト間の通信方法Info
- Publication number
- JP2000311094A JP2000311094A JP2000047304A JP2000047304A JP2000311094A JP 2000311094 A JP2000311094 A JP 2000311094A JP 2000047304 A JP2000047304 A JP 2000047304A JP 2000047304 A JP2000047304 A JP 2000047304A JP 2000311094 A JP2000311094 A JP 2000311094A
- Authority
- JP
- Japan
- Prior art keywords
- manager
- message
- communication method
- server
- service
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
- Near-Field Transmission Systems (AREA)
Abstract
く通信方法を提供すること。 【解決手段】 この通信方法は、第1のプロセスのオブ
ジェクトに関連したプロキシ/スタブタイプの代理エレ
メント対の第1の代理エレメントを修正し、第1の代理
エレメントは、所定のサービスに関係し、第1のプロセ
スのオブジェクトによって他のプロセスのオブジェクト
に送られた、メッセージを、第1のプロセスにおいて該
サービスに対応する呼出のマネージャーに送る。呼出マ
ネージャーは、受信したメッセージを管理し、各宛先プ
ロセスにおいて対応する受信マネージャーにメッセージ
のいくつかを送信する。メッセージと任意の結果は、呼
出マネージャーと受信マネージャーの間を、パケットで
送信される。クライアントマネージャーは、それを通過
するすべてのメッセージを修正することができる。
Description
求ブローカー(ORB)分散オブジェクトマネージャ
ー」に基づいた遠隔オブジェクト間の通信方法に関す
る。
RBは「共通オブジェクト要求ブローカーアーキテクチ
ャ(CORBA)」と「分散コンポーネントオブジェク
トモデル(DCOM)」を含む。
記の種類の環境を用いる。テレコミュニケーション用ま
たは輸送管理用の適用例、インテリジェントネットワー
クを構成する適用例等が、例として挙げられるであろう
適用例である。
ライアントにサービスを提供するために、様々なサーバ
を使用することができる。クライアントプロセスは、サ
ービスを使用するプログラムであり、サーバプロセス
は、クライアントにサービスを提供するプログラムであ
る。クライアントプロセスのオブジェクトは、対応する
メッセージをサーバに送ることによって、サーバからの
サービスを要求することができる。サーバの対応するオ
ブジェクトは、サービスを実行し、適切である場合、要
求者に応答を返す。2つの遠隔オブジェクト間の通信
は、実際は、オブジェクト−オブジェクトプロトコルを
使う。
れによって、クライアントプロセスPROCLIENT
のオブジェクトObjCは、サーバプロセスの所定のサ
ーバオブジェクトに任意のサービスを要求する場合、対
応するメッセージは、オブジェクトの「代理(repr
esentative)エレメント」の対の間を通過す
る。クライアントオブジェクトとサーバーオブジェクト
と呼ばれる2つの遠隔オブジェクトに透過的な方法で、
対応するインタープロセスコールを管理するのは、この
オブジェクトの対である。
ObjAの場合、オブジェクトObjAの代理エレメン
トProxy(A)が、クライアントプロセスで作成さ
れ、それに対応する代理エレメントStub(A)が、
サーバプロセスで作成される。クライアントプロセスの
オブジェクトObjCからサーバプロセスのオブジェク
トObjAへのすべてのメッセージとそれらのメッセー
ジへの任意の応答(結果)は、オブジェクト−オブジェ
クトプロトコルのプロキシ/スタブ(Proxy/St
ub)インタフェースを通過する。
通信することを望むサーバプロセスの各オブジェクトに
対して、代理オブジェクトの対Proxy/Stubが
ある。この「プロキシ/スタブ」という用語は、DCO
M環境の用語である。それは、CORBA環境の「スタ
ブ/スケルトン(Stub/Skeleton)」とい
う用語に対応する。DCOM用語は、以下で用いられる
が、当分野の技術者は、どのように以下の説明を当技術
分野で知られているORBに拡張するべきかを知ってい
るであろう。
Cを介して、サーバープロセスのオブジェクトObjA
とObjBによって提供された様々なサービスにそれぞ
れアクセスする、2つの代理エレメントの対Proxy
(A)/Stub(A)及びProxy(B)/Stu
b(B)を示す。
は、サーバオブジェクトによって、クライアントオブジ
ェクトに送信されたメッセージにも、同様によく当ては
まる。ORBによってサポートされる「通知サービス」
は、クライアントプロセスのクライアントオブジェクト
が、サーバプロセスからの通知を受信することを登録す
ることを可能にする。上記種類の通知サービスの使用の
代表的な例は、クライアントがオブジェクトの特性の変
更についてアドバイスされることを望む、監視用の適用
例に関係する。オブジェクト−オブジェクトプロトコル
によれば、図2で示されるように、クライアントオブジ
ェクトは、サーバプロセスPROSERVのオブジェク
トObjAからの通知に対して、シンク(sink)オ
ブジェクトSinkCであることを登録した場合、その
サーバオブジェクトによってそのクライアントオブジェ
クトに送られた通知は、シンクオブジェクトの代理エレ
メントの対を介して送信される。その代理エレメントの
対は、サーバプロセスPROSERVでのシンククライ
アントSinkCの代理エレメントProxy(C)
と、クライアントプロセスPROCLIENTでの対応
する代理エレメントStub(C)とを含む。
ライアントSinkCへの通知メッセージn(x
a,...)は、代理エレメントProxy(C)に送
られ、その代理エレメントProxy(C)は、その通
知メッセージを、対応するクライアントSinkCの対
応する代理エレメントStub(C)に送る。したがっ
て、その代理エレメントStub(C)は、オブジェク
トObjAとSinkCが、それらのそれぞれの位置を
知ることを必要としないで、その代理エレメントStu
b(C)にアドレス指定されている通知メッセージn
(xa,...)を受信する。
ロトコルの利点は、オブジェクトが、メッセージを交換
するオブジェクトの位置を知る必要がないことである。
このプロトコルで、ORBは、オブジェクトの位置を隠
す。いわば、オブジェクトは、どこに位置しているとし
ても、オブジェクトへのアクセスをかなり単純化する。
これらの代理エレメントの対は、当分野の技術者によく
知られていて、ここでは、より詳細に説明しない。
ッセージが、一方の方向でまたは他方の方向で、このプ
ロトコルにしたがって、交換されることができる。
サイクルサービス」と呼ばれるサービスでは、サーバオ
ブジェクトがまだアベイラブルであるか、すなわち破壊
されていないか、または、ネットワークが故障していな
いかを、クライアントオブジェクトが発見することを可
能にし、メッセージは、この情報を必要とするすべての
サーバオブジェクトに関係しているすべてのクライアン
トオブジェクトよって、周期的に送られる。サーバプロ
セスがアンアベイラブルの場合、そのサーバプロセスの
すべてのサーバオブジェクトもアンアベイラブルであ
る。
ジェクトは、サーバオブジェクトが位置しているプロセ
スの名前を、クライアントオブジェクトに返すことを、
サーバオブジェクトに要求することができる。すべての
クライアントオブジェクトは、同じプロセス上にあるこ
のサーバオブジェクトのサービスを要求することができ
る。
れる通知サービスに関する例では、システムの様々な装
置ユニットの特性(アクティビティ、ステータス)に関
係する非常に多数の通知メッセージがある。
実行されるサービスに加入するメッセージの例、たとえ
ば、通知チャンネルがある。クライアントプロセスは、
作成されると、一般的には、自身が含んでいるいくつか
のまたはすべてのオブジェクトを、1つまたは複数のサ
ーバプロセスに登録する。明らかに、きわめて多数の登
録メッセージがある。
は、最適ではないことは、明らかである。コール数を減
らすことは、有益である。
ル数を減らすために、および通信を最適化するために、
グループでメッセージを送るように、2つのプロセス間
のメッセージをグループ化することは、有益である。
についてのメッセージは、集中化させられる。「集中化
サービス(concentration servic
e)」は、それから、対応するサービスに加入している
プロセスからのすべてのメッセージを受信して処理す
る。たとえば、集中化サービスは、メッセージを修正
し、メッセージをフィルタリングして、周期的に宛先プ
ロセスに送ること等ができる。
の種類の通信方法は、図3で示される。上記の種類のプ
ロセスで、サーバプロセスのオブジェクトObjBは、
宛先シンクオブジェクトSinkDを識別するパラメー
タ、一般的にはポインタpSinkDを有する、オブジ
ェクトObjBの通知メッセージを送らなくてはならな
い。オブジェクトObjBは、n(pSinkD,x
b,...)タイプのメッセージを送り、シンクオブジ
ェクトSinkDは、n(xb,...)タイプのメッ
セージを受信する。上記の種類のサービスで、オブジェ
クト−オブジェクトプロトコルの透過性(transp
arency)は、明らかに失われる。送信するオブジ
ェクトは、宛先オブジェクトに対するポインタを提供し
なくてはならない。
クト−オブジェクトプロトコルの透過性の利点が失われ
る通信プロトコルにおけるもう1つの仲介者(inte
rmediary)である。
ジェクトが、前述の欠点を有していない遠隔オブジェク
ト間の通信方法を提供することである。
ェクトプロトコルの機構を用いる。すなわち、それは、
ORBの内部の機構に入らず、オブジェクト−オブジェ
クトプロトコルの透過性を失わないで、メッセージの集
中化を可能にする通信プロトコルを提供することであ
る。
とによって、通信方法は、移植可能で有利である。すな
わち、いずれのORBにも適用できる。
技術で知られている機構を用いて、オブジェクト−オブ
ジェクトプロトコルのプロキシ/スタブタイプの代理エ
レメントを修正することは可能である。本発明は、各プ
ロセスで、中央に集中したサービスマネージャーによっ
て、メッセージを送信するこの特性を用いる。
ーオブジェクトは、所定のサービスに関連するメッセー
ジを集中化させる各プロセスで作成される。
ing)プロセス」での「呼出(calling)マネ
ージャー」と「宛先(destination)プロセ
ス」での「受信(receiving)マネージャー」
が、作成される。
におけるそのサービスに対応する呼出マネージャーに、
呼出プロセスのプロキシタイプの代理エレメントによっ
て受信された関係しているサービスに関連するメッセー
ジの送信を可能にするように修正される。
たがって、メッセージを処理することができる。たとえ
ば、呼出マネージャーは、宛先プロセスにおける対応す
る受信マネージャー等にメッセージを送るために、メッ
セージをフィルタリングし、パラメータを修正し、メッ
セージを分類し、メッセージをグループ化することがで
きる。
先オブジェクトに、このように受信されたメッセージを
分配するか、または、各受信マネージャー自体で、対応
するサービスを提供することができる。
ェクトマネージャーに基づいて、通信方法を提供する。
この通信方法では、メッセージが、代理エレメントの対
によって、第1のプロセスのオブジェクトから他のプロ
セスのオブジェクトに送信される。その際、代理エレメ
ントの各対が、呼出プロセスにおける第1の代理エレメ
ントと、他のプロセスにおける第2の代理エレメントと
を含む。そして、第1のプロセスの第1の代理エレメン
トは修正され、その結果、第1のプロセスの第1の代理
エレメントは、所定のサービスに関連し、第1のプロセ
スのオブジェクトによって、他のプロセスのオブジェク
トに送信された、メッセージを、第1のプロセスにおけ
る該所定のサービスに対応する呼出マネージャーへ送
る。呼出マネージャーは、こうして受信したメッセージ
を管理し、該メッセージのいくつかを、各宛先プロセス
において対応する受信マネージャーに送信する。
クトが、サーバオブジェクトにメッセージを送るサービ
スと、サーバオブジェクトが、クライアントオブジェク
トに通知メッセージを送るサービスにも、同様によく当
てはまる。
スのオブジェクトによって、サーバプロセスのアドレス
に送られた登録メッセージの数を減らすことである。こ
の目的のために、本発明は、オブジェクトの集合を含む
クライアントプロセスをサーバプロセスに登録する方法
を提供する。そのオブジェクトのそれぞれは、登録メッ
セージを送り、登録メッセージは、前に説明された通信
方法によって、サーバプロセスに通信される。
となる限定しない実施例のみによって、および、添付の
図面を参照して、与えられる以下の記述で説明される。
ROCLIENT1のクライアントオブジェクトObj
Cから、サーバプロセスPROSERV1のサーバオブ
ジェクトObjAとObjBに、所与のサービスSXに
対応するメッセージを送信するために、所定のサービス
SXに適用された本発明の第1の実施形態に対応する。
ントオブジェクトを含むことができる。クライアントオ
ブジェクトが様々なサービスに対してそれらのクライア
ントオブジェクト上に登録する場合に作成されるプロキ
シ/スタブタイプの代理エレメントは、様々なクライア
ントオブジェクトの各々に対応する。
一のクライアントオブジェクトObjCがある。2つの
プロキシ/スタブタイプの代理エレメントの対、Pro
xy(A)/Stub(A)とProxy(B)/St
ub(B)が、前記クライアントオブジェクトObjC
に対して、この実施例では同じサーバプロセスPROS
ERV1の一部であるサーバオブジェクトObjAとO
bjBによって提供される様々なサービスにアクセスを
提供するために作成されている。
1は、さらに、サービスSXに対する呼出マネージャー
GCLIENT1を含む。呼出マネージャーは、クライ
アントプロセスのプロキシタイプの代理エレメントによ
って送信されたサービスSXに関連するメッセージを受
信する。メッセージが、サービスSXに関連しない場
合、第1のプロキシタイプの代理エレメントは、対応す
るスタブタイプの第2の代理エレメントにメッセージを
向けることによる標準的な方法で、または、対応するサ
ービスの呼出マネージャーへメッセージを再ルーティン
グすることによる本発明に従った特定の専門的な方法
で、動作することができる。サーバプロセスPROSE
RV1は、様々な呼出プロセスの対応する呼出マネージ
ャーから(すなわち、同じサービスSXから)メッセー
ジを受信し、宛先サーバオブジェクトに分配する、サー
ビスSXの受信マネージャーGSERV1を含む。
標準のプロキシ/スタブタイプの代理エレメントは、ク
ライアントオブジェクトが、サーバオブジェクト上のサ
ービスに対して登録する場合に作成され、本発明による
サービスSXの呼出マネージャーとサーバマネージャー
の間の通信を可能にするために修正される。クライアン
トプロセスにおけるサービスの呼出マネージャーは、自
身が受信する各メッセージのために、宛先の遠隔サーバ
オブジェクトの識別パラメータだけではなく対応する受
信マネージャーの識別パラメータも知る必要がある。
トは、メッセージが呼出しているサーバオブジェクトの
位置を知らない。他方、各代理エレメントは、関連する
オブジェクトを介して、該代理エレメントが位置してい
るプロセスにおけるオブジェクトのアドレスを知ってい
る、または、発見することができる。このように、関係
しているプロセスにおけるスタブタイプの代理エレメン
トまたはそれに対応するサーバオブジェクトは、宛先サ
ーバオブジェクトの識別パラメータとそれに対応する受
信マネージャーの識別パラメータを知っている(また
は、発見することができる)。
たがって、サーバプロセスのスタブタイプの代理エレメ
ントは、各スタブタイプの代理エレメントが関連付けら
れているプロキシタイプの代理エレメントに、情報を送
るように修正される。それに応じて、図4でダッシュ線
の矢印によって示されるように、Proxy(A)/S
tub(A)対の代理エレメントStub(A)は、代
理エレメントProxy(A)に、関連するサーバプロ
セスのサーバオブジェクトObjA及び受信マネージャ
ーGSERV1の識別パラメータpObjA及びpGS
ERV1を送る。その情報は、代理エレメントの対が作
成される場合またはその後に、送られる。
/スタブゲートウェイは、呼出マネージャーと受信マネ
ージャーが通信するために必要とされる情報を、プロキ
シタイプのエレメントに送還するために用いられる。当
分野の技術者が、他の機構を適用する方法を知っている
であろうことに留意されたい。1つのそのような他の機
構の1つは、たとえば、共有されたリソースを用いて、
プロキシタイプのエレメントに、上記の情報を直接提供
するために、宛先サーバオブジェクトを使用する。
トプロセスのプロキシタイプの代理エレメントは、サー
ビスSXに関連するメッセージを、対応する代理エレメ
ントStubに送信せずに、クライアントプロセスにお
けるそのサービスの呼出マネージャーに送信するように
修正される。各メッセージは、宛先オブジェクトの識別
パラメータとそれに対応する受信マネージャーの識別パ
ラメータを含む。
ObjCが、サービスSXに関連するa(x,
y,...)タイプのメッセージをサーバプロセスPR
OSERV1のオブジェクトObjAに送ることを望む
場合、対応するProxy(A)は、前記a(x,
y,...)タイプのメッセージを、代理エレメントS
tub(A)に直接送る代わりに、a(pObjA,p
GSERVI,x,y,...)タイプのメッセージ
を、クライアントプロセスにおけるサービスSXの呼出
マネージャーGCLIENT1に送る。
る呼出マネージャーは、クライアントプロセスのクライ
アントオブジェクトからのサービスSXに関連し、任意
のサーバプロセスの任意のサーバオブジェクトにアドレ
ス指定される、すべてのメッセージを受信する。
ジャーは、関係しているサービスSXの要求に従って、
メッセージを処理することができる。前記呼出マネージ
ャーは、たとえば、メッセージをグループ化して送る際
の事前定義された方針にしたがって、各サーバプロセス
に、受信されたメッセージの対応するグループを送るた
めに、サーバプロセスに対して、メッセージをフィルタ
リングし、ソートし、グループ化することができる。
ージを、パケットで非同期的に送ることができる。受信
マネージャーは、メッセージのパケットを受信した場
合、呼出マネージャーを解放する。その結果、呼出マネ
ージャーは、他のメッセージの管理に関係することがで
きる。呼出マネージャーがメッセージをパケットで送る
場合、その送信は、周期的であることが可能である。送
信が周期的である場合、その周期は、各呼出マネージャ
ーによって、または、受信マネージャーによって定義さ
れる周期である。
ッセージが受信された場合のような、特定のイベントに
よってトリガされた送信によって、補完されることがで
きる。
る本発明の適用例の実施例に関連して以下に説明される
ように、所定の基準にしたがって、メッセージのいくつ
かだけを送信するように、フィルタリングされることが
できる。
ジャーにメッセージを送るために用いられることがで
き、続いて、返される結果を待つ。
サービスに依存している多くの実際の適用例が存在す
る。
を示す。サービスSXのために、クライアントオブジェ
クトは、サーバオブジェクトにメッセージを送る。関係
しているサービスに依存して、結果がクライアントオブ
ジェクトに返されるか否かが決まってもよい。
れる結果がある場合、結果は、通常、呼出オブジェクト
への反転した送信経路をとる(ObjA→GSERV1
→GCLIENT1→Proxy(A)→ObjC)。
結果は、反対のプロセスを用いて、受信マネージャーと
呼出マネージャーによって、メッセージとほぼ同じ方法
で、処理される。受信マネージャーは、直接サーバオブ
ジェクトから結果を受信する。受信マネージャーは、結
果を、該結果が対応するメッセージにリンクし、分類
し、グループ化することができる。受信マネージャー
は、対応する呼出マネージャーへパケットで、該結果を
送ることができる。その呼出マネージャーは、対応する
クライアントオブジェクトに、該結果を分配する。送信
は、周期的であり、特定のイベントなどによってトリガ
される。マネージャーによるメッセージの管理でのすべ
ての前述の注目すべきことは、該メッセージに対応する
結果の管理にも、等しく当てはまる。
は、本発明による上記の方法で、メッセージを管理する
ために、適切なデータ構造(テーブル、スタックなど)
を用いる。
CLIENT1によって管理されたテーブルの形でのデ
ータ構造Tab1を示す。いつでも、このデータ構造
は、関係している各受信のマネージャーに対する各宛先
オブジェクトによって受信されたメッセージのリストを
含む。この実施例では、呼出マネージャーGCLIEN
T1は、ポインタGSERV1によって識別された受信
マネージャーに対する2つのメッセージと、ポインタp
GSERV2によって識別された他の受信マネージャー
に対する1つのメッセージとを含んでいる。
ERV1は、それ自体、図4に示したデータ構造Tab
2のような、データ構造を管理しなければならない。受
信マネージャーGSERV1は、受信したメッセージ
を、前記データ構造内に記憶する。特に、これは、受信
マネージャーGSERV1が、宛先サーバオブジェクト
に対して受信したメッセージを分類し、該メッセージを
それらの宛先サーバオブジェクトに送ることを可能にす
る。前記データ構造は、受信マネージャーGSERV1
が、任意の対応する結果を、対応する呼出マネージャー
に返すために、返事として受信する前記任意の対応する
結果を管理することも可能にする。
たように、1つまたは複数のデータ構造を管理する。各
マネージャーは、メッセージ、結果、たとえば、メッセ
ージ送信フラグ、結果待ちフラグなどのそれ自体の管理
に関する情報を、データ構造に記憶することができる。
ーは、メッセージおよび/または結果を送信する各ステ
ップにおいて、フィルタリングまたは圧縮のタイプの変
換を適用することができ、または、メッセージまたは対
応する結果の特定のパラメータを修正することができ
る。この機能は、通知サービスへの本発明の適用例の実
施例に関連して、以下で詳細に説明される。しかしなが
ら、前期機能は、一般にサービスの必要性のために、お
よび、プロセス間のコールを最適化するために、本発明
が適用するサービスのいずれかに用いられることができ
る。
いて、サーバプロセスの受信マネージャーは、それ自
体、対応するサービスを提供することができる。このよ
うに、サービスの集中化自体は、メッセージ(適用可能
である場合には、結果)の送信の集中化を補完すること
ができる。
バプロセス識別サービス」または「障害検出サービス」
のようなサービスに向けられる。クライアントオブジェ
クトは、自身がアドレス指定しているサーバオブジェク
トが位置するプロセスを発見するために、サーバプロセ
ス識別サービスを用いる。クライアントオブジェクト
は、自身がアドレス指定しているサーバオブジェクト
が、まだアベイラブルであるかどうか(すなわち、なく
なっていないかどうか)を、または、ネットワークが、
ダウンしていないのを発見するために、障害検出サービ
スを用いる。
中したオブジェクトは、各サーバオブジェクトの代わり
に、サービスをとてもよく提供することができる。この
ように、本発明のこの変形では、サービスは、受信マネ
ージャー自体によって提供される。それに応じて、サー
ビスの対応するコードは、各サーバオブジェクトにおい
てではなく、受信マネージャーにおいてだけ、実装され
なければならない。これは、非常に有利である。それ
は、また、クライアントオブジェクトに対して透過的な
方法で達成される。
かのサービスが、プロセス間のコールをかなり減らす呼
出マネージャーにおいて中央に集中することもできる。
呼出マネージャーは、サーバプロセスの識別子を発見す
るにつれて、およびサーバプロセスの識別子を発見する
ときに、そのデータ構造に、サーバプロセスの識別子を
記憶することができる。このように、呼出マネージャー
が、すでに識別要求メッセージを受信するサーバプロセ
スの識別子を知っている場合、クライアントオブジェク
ト自体に、要求された結果を返す。したがって、求めら
れている各サーバプロセスのために、呼出マネージャー
は、受信する第1の要求に基づいて、1度だけ受信マネ
ージャーに対応する識別要求を送信する。
ケットが、マネージャーの間で、必ずしも送信されない
ことに留意されたい。すなわち、通信プロセスは、その
時、同期していることが可能であり、返される結果を待
つメッセージを送る各エレメントが含まれることに留意
されたい。すなわち、メッセージを送るクライアントオ
ブジェクトと、該メッセージを受信し、クライアントオ
ブジェクトに返信する結果を知らない場合、受信マネー
ジャーにメッセージを送信する呼出マネージャーとがあ
ることに留意されたい。
「通知サービス」への本発明の適用例を示す。この場合
は、呼出マネージャーは、サーバプロセス内にあり、受
信マネージャーは、クライアントプロセス内にある。本
発明によれば、各サーバプロセス、それぞれのクライア
ントプロセスは、通知サービスのために、単一の呼出マ
ネージャー、それぞれの受信マネージャーを含んでい
る。各サーバプロセスは、その呼出マネージャーによっ
て、様々なクライアントプロセスに、通知を送ることが
できる。各クライアントプロセスは、その対応する受信
マネージャーによって、様々なサーバプロセスから、通
知を受信することができる。
ーバープロセスPROSERV1には、通知サービスの
ために呼出マネージャーGNSERV1があり、クライ
アントプロセスには、受信マネージャーGNCLIEN
T1がある。
ージを送るサーバプロセスのすべてのサーバオブジェク
トから、すべての通知メッセージを受信する。受信マネ
ージャーは、異なるプロセスの呼出マネージャーから通
知を受信することができる。受信マネージャーは、受信
した通知を、宛先を収集しているオブジェクトに分配す
る。より一般的には、メッセージ(または返された結
果)が、少なくとも2つのマネージャーの間にパケット
で送られるとすぐに、2つのプロセス間のこの独立性が
得られる。関係しているサービスの種類タイプに依存し
て、マネージャーのレベルにおいてだけ、または、送信
システムのすべてのレベルにおいて、非同期であること
が可能である。当分野での技術者は、この非同期性を導
入する標準的なテクニック(スレッド、割り込みなど)
を用いることができる。
に変換を適用するパケットで宛先呼出マネージャーに送
るために、宛先クライアントオブジェクトに応じたその
サーバプロセスのサーバオブジェクトから、また、宛先
シンクオブジェクトに応じて各宛先プロセス毎に、受信
する様々な通知メッセージを分類しなくてはならない。
呼出マネージャーは、このために適切なデータ構造Ta
b3を用いる(図5参照)。この例では、データ構造
は、3つのメッセージを含む。すなわち、クライアント
プロセスPROCLIENT1に対して、2つのメッセ
ージm1とm2がある。そのうち一方のメッセージm1
は、シンクオブジェクトSinkCに対するサーバオブ
ジェクトObjAからのものであり、他方のメッセージ
m2は、シンクオブジェクトSinkDに対するサーバ
オブジェクトObjBからのものである。そして、メッ
セージm3は、クライアントプロセスPROCLIEN
T2のシンクオブジェクトSinkOに対するサーバオ
ブジェクトObjAからのものであり、図示していな
い。
単一のコールにおけるパケットでメッセージを送るため
に、同じクライアントプロセスの対応する受信マネージ
ャーにアドレス指定されたメッセージをまとめるのが好
ましい。フィルタリングまたは圧縮機構のような変換
を、この段階において呼出マネージャーが送るメッセー
ジのパケットに適用することもできることが示された。
呼出マネージャーは、いくつかのパラメータを修正する
こともできる。
の特性の最も新しい修正に対応するものだけを送信する
ことによって、メッセージをフィルタリングすることが
できる。この場合、呼出マネージャーは、より以前のメ
ッセージを削除する。呼出マネージャーは、それから、
その状態がフィルタリングが適用されたかどうかを示す
メッセージのフラグタイプパラメータを修正することが
できる。
セスの受信マネージャーも、呼出マネージャーから受信
する通知メッセージ/シンクオブジェクトの対を記憶す
るデータ構造Tab4を管理することができる。受信マ
ネージャーは、関係しているオブジェクトへメッセージ
を分配する前に、メッセージを処理することおよび/ま
たはいくつかのメッセージパラメータを修正することも
できる。
ネージャーは、その管理を容易にするために、および一
般にサービスについての必要性のために、メッセージま
たは対応する結果のパラメータを修正することができる
ことが、すでに示された。マネージャーによって修正さ
れることができるパラメータの一実施例は、前に説明さ
れたフィルタリングフラグパラメータである。
関連している。多くの多様なメッセージを送るエレメン
トは、通常「キー割当て機構」を使用する。キーは、ロ
グオンする場合、クライアントによって割り当てられる
識別子である。キーは、通知において送信され、クライ
アントが、通知の対応する接続を識別することを可能に
する。
が、マネージャーによって集中化させられるので、マネ
ージャーは、それぞれがそれ自体のキー割当て機構を用
いる様々なエレメントによって送られたメッセージを受
信する。このように、各マネージャーは、同じキーを用
いるメッセージに出合うことができる。
メッセージを使用するために、各呼出マネージャーまた
は受信マネージャーに、キー割当て機構を提供する。図
6に示した実施例では、受信マネージャーは、クライア
ントプロセスの呼出マネージャーGCLIENT1から
サーバオブジェクトObjAに対するメッセージを受信
する。該メッセージは、a(pObjA,X,Y,ke
y1,...)というタイプのメッセージである。該メ
ッセージにおいて、key1が、呼出マネージャーGC
LIENT1によって割り当てられた対応するキーであ
る。
ロセスの呼出マネージャーGCLIENT2から同じサ
ーバオブジェクトObjAに対する別のメッセージを受
信する。このメッセージは、key1が、呼出マネージ
ャーGCLIENT2によって割り当てられたキーであ
るa(pObjA,X,Y,key1,...)という
タイプのである。key1が、呼出マネージャーGCL
IENT2によって割り当てられたキーである。
信する場合、それ自体の割当て機構(たとえば、メッセ
ージの到着のオーダーによる)を用いて、新しいキーを
割り当てることができる。したがって、受信マネージャ
ーは、各メッセージにおいて受信したキーを、自身が割
り当てる新しいキーに置き換える。受信マネージャー
は、データ構造Tab6において、新しいキーとオリジ
ナルで受信したキーとの間の対応関係を保持することが
でき、その結果、呼出マネージャーに、オリジナルのキ
ーを有する任意の対応する結果を返すことができる。し
たがって、図5に示した実施例においては、第1のメッ
セージの新しいキーは、keys1であり、第2のメッ
セージの新しいキーは、keys2である。したがっ
て、一般的に言って、呼出マネージャーまたは受信マネ
ージャーは、メッセージのパラメータまたは対応する結
果のパラメータを修正することができる。
プロセスと宛先プロセスを独立させることに留意された
い。通知サービスの実施例で、図5に示した対応する送
信システムを考慮すると、オブジェクトが通知メッセー
ジを送る場合、それを受信するのは、サーバプロセスに
おける対応する呼出マネージャーである。それから、サ
ーバプロセスは、他のタスクを行うためにサーバーオブ
ジェクトを解放する。呼出マネージャーが、受信マネー
ジャーに通知メッセージのパケットを送ることを決める
場合、受信マネージャーは、該パケットを受信し、すぐ
に呼出マネージャーを解放する。そして、受信マネージ
ャーは、他のパケット及び他の呼出マネージャーなどを
扱うことができる。最終的に、受信マネージャーが、ク
ライアントオブジェクトにメッセージを分配する場合、
該メッセージが受信されるとすぐに、クライアントオブ
ジェクトは、受信マネージャーを解放する。
が、純粋な実例によって説明された通信方法では、呼出
オブジェクトは、呼出マネージャーが用いられているこ
とを知らない。そして、当てはまる場合、宛先オブジェ
クトは、受信マネージャーによって呼ばれていることを
知らない。
テストを行うために、システムが、標準的なプロキシ/
スタブ対を用いて、いつでも通信の標準的な形式に戻る
ことができることに留意されたい。呼出プロセスで要求
されることは、再びProxyタイプの代理エレメント
を修正し、その結果、Proxyタイプの代理エレメン
トが、再び対応するStubタイプの代理エレメントに
メッセージを送信するようにすることだけである。本発
明による通信方法は、したがって、逆にすることが可能
である。
の通信が、オブジェクト−オブジェクトプロトコルの標
準的なプロキシ/スタブ対のスキームを用いることがで
きることに留意されたい。前記通信は、図4と図5に示
したように、ORB上にまたはオペレーティングシステ
ムで提供された共有リソースRを使うこともできる。共
有リソースは、メモリ、ネットワーク接続などである。
内部の機構を使わないで、移植可能にする、すなわち、
いずれのORBにも使用できるようにする。
セス間のコールの数を減らす。前記通信方法は、変換
(フィルタリング、圧縮)の有無にかかわらず、メッセ
ージのパケットを送る機構によって、適用可能である場
合は、サービスそれ自体を中央に集中することによっ
て、オブジェクト−オブジェクトプロトコルの透過性を
失うことなく前記サービスに適用される。
合では、呼出プロセスと宛先プロセスを独立させるのが
有利である。なぜなら、この場合、通信サービスが、プ
ロセスを非同期にするからである。
かなりの自由度を持たせ、該通信方法が、様々な潜在的
な適用例に適合されることを可能にする。
アントプロセスのオブジェクトの登録を可能にする本発
明の方法を用いることが可能である。登録は、サーバプ
ロセスが、登録されたオブジェクトに、前に参照された
通知メッセージを送ることができるようにする。同じサ
ーバプロセスと共に登録することを望んでいるクライア
ントプロセスの中のオブジェクトの数は、一般的に非常
に多い。したがって、基礎をなしている通信手段(特に
データ処理ネットワーク)に負荷をかけ過ぎないため
に、登録メッセージの数を減らすことが必要である。
とができる。すなわち、各登録メッセージは、関連した
代理エレメント(Proxy(A))によって、呼出マ
ネージャーに送られる。呼出マネージャーは、それか
ら、単一の登録メッセージで、サーバプロセスに、登録
要求に関連するすべてのデータを送信することができ
る。
メッセージを送信するオブジェクト−オブジェクトプロ
トコルの使用方法を示す図である。
に、通知メッセージを送信するオブジェクト−オブジェ
クトプロトコルの使用方法を示す図である。
よって、クライアントとサーバプロセスの間で交換され
るメッセージの管理を示す図(逆方向もまた同様)であ
る。
セスとサーバプロセスの間で交換されるメッセージの管
理を示す図である。
によるメッセージの管理を示す図である。
である。
tub(D)、Proxy(A)、Proxy(B)、
Proxy(C)、Proxy(D) 代理エレメント SinkC、SinkD シンクオブジェクト PROSERV サーバプロセス PROCLIENT クライアントプロセス
Claims (17)
- 【請求項1】 メッセージが、代理エレメントの対を介
して、第1のプロセスのオブジェクトから他のプロセス
のオブジェクトに送信される、ORB分散オブジェクト
マネージャーに基づく通信方法であって、 代理エレメントの対の各々が、呼出プロセスにおける第
1の代理エレメントと、他のプロセスにおける第2の代
理エレメントとを含み、 前記第1のプロセスの第1の代理エレメントが修正さ
れ、その結果、前記第1のプロセスの第1の代理エレメ
ントが、所定のサービスに関連し、前記第1のプロセス
のオブジェクトによって他のプロセスのオブジェクトに
送信された、メッセージを、前記第1のプロセスにおけ
る所定のサービスに対応する呼出マネージャーへ送信
し、 前記呼出マネージャーが、こうして受信したメッセージ
を管理し、メッセージのいくつかを、各宛先プロセスに
おける対応する受信マネージャーに送信する通信方法。 - 【請求項2】 各修正された第1の代理エレメントが、
宛先プロセスにおける対応する受信マネージャーの識別
パラメータおよび宛先オブジェクトの識別パラメータを
備えた、前記所定のサービスに関連するメッセージを、
対応する呼出マネージャーに送信する請求項1に記載の
通信方法。 - 【請求項3】 前記識別パラメータが、前記第1の代理
エレメントに関連付けられた第2の代理エレメントまた
は前記宛先オブジェクトによって、前記第1の代理エレ
メントに提供される請求項2に記載の通信方法。 - 【請求項4】 宛先プロセスの受信マネージャーが、呼
出マネージャーから受信したメッセージを、該宛先プロ
セスの関係しているオブジェクトに送信する請求項1に
記載の通信方法。 - 【請求項5】 前記受信マネージャーが、関係している
呼出マネージャーに転送する、メッセージに応答する結
果を受信する請求項4に記載の通信方法。 - 【請求項6】 前記受信マネージャーが、それ自体で、
メッセージに対して、対応するサービスを提供し、適用
可能である場合、対応する結果を関係している呼出マネ
ージャーに返す請求項1に記載の通信方法。 - 【請求項7】 メッセージおよび/または対応する結果
が、代理エレメントの対によって、呼出マネージャーと
受信マネージャーの間で、送信される請求項1に記載の
通信方法。 - 【請求項8】 メッセージが、呼出マネージャーと受信
マネージャーの間で、共有されたリソースを用いて、送
信される請求項1に記載の通信方法。 - 【請求項9】 呼出マネージャーまたは受信マネージャ
ーが、メッセージのパラメータおよび/または対応する
結果を修正する請求項1に記載の通信方法。 - 【請求項10】 メッセージおよび/または対応する結
果が、事前の変換をともなって、または事前の変換をと
もなわずに、前記呼出マネージャーと前記受信マネージ
ャーの間で、パケットで送信される請求項1に記載の通
信方法。 - 【請求項11】 前記パケットが、前記呼出マネージャ
ーまたは前記受信マネージャーによって定義された周期
にしたがって、周期的に送信される請求項10に記載の
通信方法。 - 【請求項12】 パケットの送信が、特定のイベントの
発生によってもトリガされる請求項11に記載の通信方
法。 - 【請求項13】 前記呼出プロセスがクライアントプロ
セスであり、前記宛先プロセスがサーバプロセスであ
る、サービスに適用された請求項1に記載の通信方法。 - 【請求項14】 前記呼出プロセスがサーバプロセスで
あり、前記宛先プロセスがクライアントプロセスであ
る、サービスに適用された請求項1に記載の通信方法。 - 【請求項15】 ORB環境が、CORBA環境である
請求項1に記載の通信方法。 - 【請求項16】 ORB環境が、DCOM環境である請
求項1に記載の通信方法。 - 【請求項17】 各オブジェクトが登録メッセージを送
信する、オブジェクトの集合を含むクライアントプロセ
スを、サーバプロセスに登録する方法であって、 前記登録メッセージが、請求項1から16のいずれかの
請求項に記載の方法によって、前記サーバプロセスに通
信される方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9902358A FR2790351A1 (fr) | 1999-02-25 | 1999-02-25 | Procede de communication entre objets distants |
FR9902358 | 1999-02-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000311094A true JP2000311094A (ja) | 2000-11-07 |
JP2000311094A5 JP2000311094A5 (ja) | 2007-04-12 |
Family
ID=9542526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000047304A Pending JP2000311094A (ja) | 1999-02-25 | 2000-02-24 | 遠隔オブジェクト間の通信方法 |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP1031926B1 (ja) |
JP (1) | JP2000311094A (ja) |
AT (1) | ATE374398T1 (ja) |
AU (1) | AU1943600A (ja) |
CA (1) | CA2299663A1 (ja) |
DE (1) | DE60036503T2 (ja) |
FR (1) | FR2790351A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010170389A (ja) * | 2009-01-23 | 2010-08-05 | Alpine Electronics Inc | データ処理システム |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7739387B2 (en) * | 2007-03-08 | 2010-06-15 | Sap Ag | System and method for message packaging |
US7945949B2 (en) | 2007-03-19 | 2011-05-17 | Microsoft Corporation | Providing remote services to legacy applications |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10232780A (ja) * | 1997-02-19 | 1998-09-02 | Hitachi Ltd | インタフェース定義記述の変換方法およびオブジェクト間通信方法 |
-
1999
- 1999-02-25 FR FR9902358A patent/FR2790351A1/fr active Pending
-
2000
- 2000-02-21 DE DE60036503T patent/DE60036503T2/de not_active Expired - Fee Related
- 2000-02-21 AT AT00400461T patent/ATE374398T1/de not_active IP Right Cessation
- 2000-02-21 EP EP00400461A patent/EP1031926B1/fr not_active Expired - Lifetime
- 2000-02-22 CA CA002299663A patent/CA2299663A1/fr not_active Abandoned
- 2000-02-23 AU AU19436/00A patent/AU1943600A/en not_active Abandoned
- 2000-02-24 JP JP2000047304A patent/JP2000311094A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010170389A (ja) * | 2009-01-23 | 2010-08-05 | Alpine Electronics Inc | データ処理システム |
Also Published As
Publication number | Publication date |
---|---|
DE60036503D1 (de) | 2007-11-08 |
DE60036503T2 (de) | 2008-06-26 |
AU1943600A (en) | 2000-08-31 |
ATE374398T1 (de) | 2007-10-15 |
EP1031926B1 (fr) | 2007-09-26 |
CA2299663A1 (fr) | 2000-08-25 |
FR2790351A1 (fr) | 2000-09-01 |
EP1031926A1 (fr) | 2000-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5085831B2 (ja) | リクエストの集中及びロードバランシングのためのシステム及び方法 | |
US5519875A (en) | Distributed processing system for modules, each having modularized objects | |
US6782420B1 (en) | Telecommunications network with a distributive network management system | |
US5983233A (en) | Process for managing the naming of objects, process for mapping an object name to a CORBA object reference, program module, computer unit, and computer system | |
US20040019465A1 (en) | Event router and method for handling events in distributing computing applications | |
US20110004701A1 (en) | Provisioning highly available services for integrated enterprise and communication | |
AU2001276932A1 (en) | System and method for concentration and load-balancing of requests | |
Kaiser et al. | Implementing the real-time publisher/subscriber model on the controller area network (CAN) | |
US7934218B2 (en) | Interprocess communication management using a socket layer | |
JPH10187641A (ja) | 第1のエンティティと第2のエンティティとの間のアドレスインタラクションをサポートするための方法、アドレスインタラクションのためのコンバータ、及びコンピュータシステム | |
US6269378B1 (en) | Method and apparatus for providing a name service with an apparently synchronous interface | |
US6546432B2 (en) | Process for sending a notification in a data processing network with distributed applications | |
US7574525B2 (en) | System and method for managing communication between server nodes contained within a clustered environment | |
JP2000311094A (ja) | 遠隔オブジェクト間の通信方法 | |
JP2000200245A (ja) | 情報利用システム及び情報利用方法 | |
KR100439761B1 (ko) | 코바에서의 그룹 통신 시스템 및 방법 | |
KR100735667B1 (ko) | 컨텍스트 지향 이벤트 서비스 시스템 및 그 방법 | |
JP2000339280A (ja) | 分散オブジェクト間のプロトコル修正方法 | |
CN116132538A (zh) | 一种多应用间接口调用方法、装置、设备及存储介质 | |
Dalpee et al. | Beyond RPC: The virtual network | |
JP2000020327A (ja) | 分散処理装置とその方法およびネットワークシステム | |
KR100327112B1 (ko) | 분산객체 시스템에서의 객체 일관성 유지방법 | |
JPH0546569A (ja) | 分散処理システム | |
Fleisch | An architecture for pup services on a distributed operating system | |
Shah et al. | On the use of IP multicast to facilitate group communication between mobile agents |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070221 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070221 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090730 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090804 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100105 |