JP3989969B2 - クライアントサーバデータ処理システムのための通信システム - Google Patents
クライアントサーバデータ処理システムのための通信システム Download PDFInfo
- Publication number
- JP3989969B2 JP3989969B2 JP53957398A JP53957398A JP3989969B2 JP 3989969 B2 JP3989969 B2 JP 3989969B2 JP 53957398 A JP53957398 A JP 53957398A JP 53957398 A JP53957398 A JP 53957398A JP 3989969 B2 JP3989969 B2 JP 3989969B2
- Authority
- JP
- Japan
- Prior art keywords
- port
- program
- domain
- server
- client
- 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
Links
Images
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Description
本出願は、共に本発明の譲渡人に譲渡され共に本書に参考として内含されている、Rajeev Bharadhwajによって1996年12月30日に提出された「コンピュータプログラムの実行管理のためのシステム及び方法」及び1997年3月12日に提出されたRajeev Bharadhwajによる「階層的に命名されたコンピュータアクセス可能なオブジェクトのための命名システム」という同時係属特許出願に関係づけされる。
発明の背景
1.発明の分野
本発明は、一般に、クライアントサーバタイプのデータ処理システムに関するものであり、より特定的には、クライアントプログラムとサーバプログラムとの間のメッセージ転送を制御するのに使用するための通信システムに関する。
2.背景技術の説明
クライアントサーバタイプのデータ処理システムの利用は、増大し続けている。クライアントサーバシステムは、ネットワーク上のさまざまなシステム間で処理タスクを分配する上での融通性を提供する。
これらは、見かけ上普及が進んでいるにもかかわらず、クライアントサーバシステムを容易に作成するには障害がある。クライアントサーバタイプのデータ処理システムを作成する上での1つの障害は、クライアントプログラム及びサーバプログラムが共通の通信プロトコルにプログラミングされなくてはならないという点にある。利用されるプロトコルが1つしかない場合には、クライアント及びサーバをプログラミングすることが大きな障害とならない可能性が最も高い。しかしながら、各々が異なるプロトコル又は或る点では、類似しているもののその他の点では異なっている類似のプロトコルを必要とする多数のサーバプログラムが存在する場合、さまざまなサーバプログラムプロトコルをプログラミングするのに必要とされる作業は増大する。
サーバプログラムのためのオブジェクト特性が固定されているかぎり、クライアントプログラムのプログラミングという観点から見て、クライアントはその演算パラメータを変更する必要はないだろう。しかしながら、1つのサーバアプリケーションのためのネットワークアドレスが変更された時点で、クライアントは新しいアドレスについて知らされていなければならない。1つのクライアントプログラムしか存在しない場合、変更を行なうことは、全く取るに足らないことである。しかしながら何百さらには何千ものクライアントプログラムが存在する場合、変更を行なうには多大な努力が必要となる可能性がある。
従って、必要とされているのは、クライアントとサーバプログラムとの間の通信を調整するプロセスを単純化し、包括的に命名されたオブジェクトを支援する通信システムである。
発明の要約
本発明は、さまざまなタイプの通信プロトコルをもつ数多くのタイプのクライアントサーバシステムを確立し維持する上で関与してくる問題点を低減させる通信システムである。本発明は、クライアントプログラムとサーバプログラムとの間の異なるタイプの通信プロトコルを支援するのに各々使用される多数のドメインポートを定義づけする能力を提供する。さらに、メッセージ圧縮、メッセージ暗号化、メッセージロギング、ミラリング、ストライピングなどといった多彩な機能をサーバプログラムに提供するのに、ドメインポートを利用することができる。本発明は、同様に、分配されたサービスに対し命名されたアクセスをも提供し、かくして、クライアントプログラム及びサーバプログラムがサービスの命名/アドレス指定に関し直接互いと調整を行なう必要性を無くする。
各々の複数の特性をもつドメインポートが、ポートサービスモジュールにより確立される。1つのドメインポートの特性は、そのドメインポートを介して通信するクライアントプログラムとサーバプログラムとの間の通信を制御する上でポートサービスモジュールにより使用される。ポートサービスモジュールによるドメインポート特性を使用することで、クライアントプログラム及びサーバプログラムはさまざまな通信プロトコルセマンティクスを管理する義務から解放される。
クライアントプログラムとサーバプログラムとの間で交換されるメッセージを順序づけし計数するための特性をもつように、ドメインポートを定義づけすることが可能である。ドメインポートは、同様に、異なるタイプのエラー条件について監視するための特性をもつように定義づけすることもできる。メッセージを順序づけすべきであることを命令する定義づけされた特性をドメインポートが有する場合、ポートサービスモジュールは、特定のクライアント及びサーバプログラムの必要条件に従って予め決定される1つの順序に従ってクライアントプログラムとサーバプログラムとの間で送られたメッセージを順序づけする。同様にして、メッセージを計数すべきであることを命令する定義づけされた特性をドメインポートが有する場合、ポートサービスモジュールは、特定の必要条件に従ってクライアントプログラムとサーバプログラムとの間で交換されたメッセージを計数する。
メッセージ圧縮、メッセージ暗号化、メッセージロギング、ミラリング、ストライピングなどといった特性を有するようにドメインポートを定義づけすることが可能である。このような定義づけされた特性に応答して、ポートサービスモジュールは、特定された特性と対応付けされた機能を実行する。ポートサービスモジュールが希望の機能を提供することから、サーバプログラムはそれを行う必要がない。
本発明は、同様に、分配されたサービスに対する命名されたアクセスをも提供し、かくしてクライアントプログラム及びサーバプログラムがサービスの命名に関し直接互いに調整し合う必要性を無くする。ポートサービスモジュールは、命名されたサービスとのその結びつきがグローバルネーマーモジュールによって維持されているポート登録ハンドルに対する応答性をもつ。かくして、クライアントプログラムはサービス名を覚えている必要しかなく、一方、グローバルネーマーモジュールがドメインポートとの結びつきを提供し、ポートサービスモジュールはそのドメインポートをその特定のサーバプログラム及び/又はインスタンスと結びつける。
【図面の簡単な説明】
図1は、本発明に従ったクライアントサーバデータ処理システム例のブロック図である。
図2は、ポートサービスモジュールを例示するブロック図である。
図3は、ドメインポートについての特性テーブルのブロック図である。
図4は、ドメインポートを作り出すために行なわれる処理の流れ図である。
図5は、クライアントプログラムからの要求を処理すべくサーバプログラムを選択する上で行なわれる処理の流れ図である。
図6は、クライアントプログラムからの通信要求のためにポートサービスモジュールによって実行されサーバプログラムに対しアドレス指定される処理の流れ図である。
詳細な説明
図1は、本発明に従ったクライアントサーバデータ処理システムのブロック図である。システム例には、クライアントシステム104,サーバノード106及び108及びグローバルネーマーシステム110が内含されている。クライアントシステム104,サーバノード106及び108並びにグローバルネーマーシステム110の各々は、プログラムの処理ニーズに応じて特定のハードウェアが選択される従来のデータ処理システムである。クライアントシステム104,サーバノード106及び108及びグローバルネーマーシステム110はネットワーク111に統合されている。
クライアントシステム104はクライアントプログラム102のホストとなり、サーバノード106は第1のサーバプログラム112及び第2のサーバプログラム114aの第1のインスタンスのホストとなり、サーバノード108は114bと呼ばれる第2のサーバプログラムの第2のインスタンス及び第3のサーバプログラム116のホストとなり、グローバルネーマーシステム110はグローバルネーマーモジュール118のホストとなる。サーバノード106及び108の各々は、同様に、それぞれのポートサービスモジュール122及び124をも有している。
クライアントプログラム例102は、第2のサーバプログラム114aの第1のインスタンスのサービスを利用するように設計されている。第1のサーバプログラム112及び第3のサーバプログラム116は、例示目的でのみ示されている。
ポートサービスモジュール122及び124の各々は、サーバプログラム114a−bに対するアクセスについてクライアントプログラム102が行なった要求、並びにサーバプログラム112及び116に対してその他のクライアントプログラム(図示せず)により行なわれた要求に対する応答をもつ。ポートサービスモジュール122及び124は、各サーバプログラムについて1つずつの複数のドメインポートを維持する。ポートサービスモジュール122がドメインポート132と共に示され、ポートサービスモジュール124がドメインポート134と共に示されている。ドメインポート132及び134は、クライアントプログラム102とサーバプログラム112との間の通信を管理するためそれぞれのポートサービスモジュールによって使用される。ポートサービスモジュール122及び124は、同様に、その他のクライアントプログラム(図示せず)とサーバプログラム112及び116との間の通信をも管理する。
グローバルネーマーモジュール118は、グローバルネーマーシステム110をホストとしている。サービスの名前がわかっているため、グローバルネーマーモジュール118は、そのサービスに対する要求が導かれるべきドメインポート及びポートサービスモジュール122又は124についての識別子を供給する。グローバルネーマーモジュール118は、サーバプログラム112,114a−b及び116の名前と、それらがアクセスされるドメインポート132及び134との間の結びつきを維持する。グローバルネーマーは、かくして、ドメインポート132及び134とサーバプログラム112,114a−b及び116との間の結びつきを覚え維持する義務からクライアントプログラム102を解放する。クライアントプログラム102からグローバルネーマーモジュール118への要求には、そのサービスを利用するその他のクライアントプログラムにより同様に一般に知られているサービスの名前が含まれている。これらに応えて、グローバルネーマーモジュールは、ポート登録ハンドルを戻す。ポート登録ハンドルは、ポートサービスモジュールにより管理されるポート132又は134のうちの特定のポートと共に、特定のポートサービスモジュール122又は124を識別する。グローバルネーマーモジュール118は、当業者によって実現され得るものであり、そうでなければ、クロスレファレンスとして記した特許出願のグローバルネーマーシステムをグローバルネーマーモジュールとして使用することもできる。
図1の方向を示すラインは、クライアントプログラム102が第2のサーバプログラム114a−bのサービスを要求する、要求の流れの例を示している。クライアントプログラム102が第2のサーバプログラム114a及び114bの両方を明示的に要求せず、その代り、サーバプログラム114a及び114bにより提供されるサービスを名前で言及していることに留意されたい。
ライン1は、クライアントプログラム102からグローバルネーマーモジュール118への要求の流れを示す。要求は、サーバプログラム114a−bにより提供された1つのサービスの名前、つまりポートサービスハンドルを内含する。グローバルネーマーモジュール118は、ポート登録ハンドルをライン2に例示される通りクライアントプログラム102に戻す。ポート登録ハンドルは、ポートサービスモジュール122のアドレスを内含し、要求されたサーバプログラム114a−bにアクセスするのに用いられる特定のポート152を識別する。ライン3は、クライアントプログラムがポート登録ハンドルを介してポートサービスモジュール122に対し命名されたサービスについての要求を行なっていることを示す。ポートサービスモジュールは、このとき、その要求により識別されたドメインポート152を選択し、ライン4に示されているように、第2のサーバプログラム114aの第1のインスタンスを開始する。
ドメインポート152の定義に基づき、かつ、ライン5に示されているように、ポートサービスモジュール124は、ドメインポート152からの複製要求を受理する。このとき、ポートサービスモジュール124は、ライン6により示されているようにサーバノード108上で第2のサーバプログラム114bを開始する。サーバノード108上の第2のサーバプログラム114bの開始は、クライアントプログラム102には見えない。ポートサービスモジュールは、ポート152の定義づけに基づき、第2のサーバプログラム114bを開始する。サーバプログラム114bの第2のインスタンスが開始される例としては、データ複製サービスが要求された場合がある。すなわち、サーバノード108上の第2のサーバプログラム114bは、サーバノード106上の第2のサーバプログラム114aが行なっているのと同じ要求の同じ処理を行なう。第2のサーバプログラム114a−bは、ポート定義と組合わさってポートサービスモジュール152が望まれる複製を管理することから、サービスの複製(すなわち第1のインスタンス114a及び第2のインスタンスにおける)を管理する義務から解放される。サービスの複製は、ポートサービスモジュールが1つのサービスのために管理することのできる1つの機能にすぎない。その他の機能については、本明細書の他の場所で記述されている。
ライン7は、ポートサービスモジュール122からクライアントプログラム102まで第2のサーバプログラムの識別子が戻されていることを例示している。その後、クライアントプログラム102は、ライン8により示されているように、識別子に対する参照指示によりポートサービスモジュール122を介して、サーバプログラム114aと通信する。サーバプログラムの識別子は、ポートサービスモジュール122が単一のドメインポートを通してサーバプログラムの多数のインスタンスを管理する場合に用いられる。
図2は、ポートサービスモジュール202を例示するブロック図である。ポートサービスモジュール122及び124は、ポートサービスモジュール202のインスタンスである。ポートサービスモジュール202は、ドメインポート212の定義により左右される形でクライアントプログラム及びサーバプログラムと相互作用するソフトウェアコンポーネントである。ドメインポート212についての定義は、ホストサーバノード206又は208のメモリ内に記憶される。ドメインポート212の各々が、それぞれのドメインポート名212a,212b,212c,…,212n,それぞれの特性セット214a,214b,214c,…,214n,それぞれのサーバノードリスト216a,216b,216c,…,216n及びそれぞれのクライアント接続リスト218a,218b,218c,…,218nによって定義づけされる。
ドメインポート212a−nについての特性214a−nは、1つのドメインポートについてのさまざまな演算挙動を定義づけする。例えば、特性は、サーバプログラム112,114a−b及び116のどのインスタンスを実行すべきかを選択するための選択基準、クライアントプログラム102とサーバプログラムの間のメッセージ順序付け及びさまざまなその他のメッセージ処理ディテールを定義づけする。
ドメインポートサーバノードリスト216a−nは、それぞれのドメインポート212a−nと対応付けされたサーバプログラムのホストであるさまざまなサーバノード106及び108を識別する。例えばドメインポート152で、サーバノード106及びサーバノード108は、ドメインポートサーバノードリスト内で識別されることになる。
クライアント接続リスト218a−nは、それぞれドメインポートに接続されたさまざまなクライアントシステム104を識別する。例えば図1において、クライアントシステム104は、ドメインポート152に接続され、ドメインポート152についてのクライアント接続リスト218a−nのそれぞれ1つずつ及びポートサービスモジュール124の対応するドメインポートについてのクライアント接続リスト内で識別されることになる。クライアント接続リスト218a−nは、クライアントシステムが通信していないとき又はネットワーク111から除去されているとき、サーバプログラム112,114a−b又は116にそれを知らせるために使用され得る。
図3は、ドメインポート212a−nのための特性テーブル214のブロック図である。特性テーブル214は、6つの特性セット、すなわち選択基準306,ポートタイプ308,メッセージ順序づけ310,実行セマンティクス312,エラーセマンティクス314及び雑特性セット316から成る。どの特性が、ドメインポート212のそれぞれ1つに適用されるかを示すため、特性に対してメモリセルが割り当てられる。例えば、セル318aは、find next特性と結びつけられる。以下の段落では各々のセットについて記述する。
選択基準306特性は、1つの要求を処理するため114a又は114bといったようなサーバプログラムのインスタンスを選択することに向けられる。find-next特性は、入要求を処理するためにサーバプログラム112,114a−b,116の次に利用可能なインスタンスを選択すべきであることを示している。find-next特性は、その要求を処理するためにネットワーク11トポロジー内でSPM152に最も近いノードをホストとするサーバプログラムを選択すべきであることを指示する。find-in-specific-node特性は、開始されるべきサーバプログラム112,114a−b,116のホストであるサーバノード106又は108を特定する。当業者であれば、その他の選択基準も実現可能であることを認めるだろう。
ポートタイプ308特性は、例えば152といった対応付けされたドメインポートがアクセスを提供するオブジェクトタイプの特定に向けられている。本発明では、ポートタイプは、サーバプログラム112,114a−b又は116のあらゆるタイプでありうる。しかしながら、例示を目的として、クロスレファレンスされた特許プログラム内に記述されているドメインアレイに関連するポートタイプが示されている。
ポートタイプの例としては、domain array, domain port, domain group及びdomain objectがある。domain arrayポートタイプは、サーバプログラムが、クロスレファレンスされた特許プログラム内で記述されているようなドメインアレイであることを表わしている。対応付けされたドメインポートがdomain portのポートタイプ308を有する場合、ドメインポートはもう1つのドメインポートを参照指示する。図示されてはいないものの、当業者であれば、もう1つのドメインポートを参照指示するために参照指示されたドメインポートのための名前を記憶する必要があるということを認識することだろう。domain group特性は、1つのプログラムを実行するのに協働するドメインオブジェクトのグループを参照指示する。domain object特性は、ドメインポート212を介してアクセスを得ることのできるその他のタイプのオブジェクトを包括的に参照指示するのに使用される。
ドメインポート212は、同様に、メッセージ順序づけ310特性を有する可能性もある。メッセージ順序づけ特性は、クライアントプログラム102とサーバプログラム112,114a−b及び116の間でメッセージの交換を制御するためポートサービスモジュール122又は124よって使用される。メッセージ順序づけ特性の例としては、unordered, first-in-first-out, partial, priority及びtotalが内含される。unordered特性は、メッセージがいかなる順序でも到着及び送信しうることを表わす。かくして、ポートサービスモジュール122又は124は、交換されたメッセージの順序を調整する必要がない。first-in-first-out特性は、ポートサービスモジュール122又は124が、クライアントプログラム102からサーバプログラム112,114a−b,116まで、ポートサービスモジュールにより受信された順序でメッセージを転送するということを指示する。メッセージの順序づけは、サーバプログラム112,114a−b,116から受信したメッセージについて類似している。partial特性のためのメッセージの特定的順序づけは、順序づけがドメインポートに対応付けされたサーバプログラムについてのみ起こるというものである。priority順序づけ特性の利用例は、例えば先行する要求を打ち切るために急送メッセージを送信することである。total順序づけは、メッセージがドメインポート全体及びいずれかの対応付けされたポートのために順序づけされることを表わす。例えば、図1に関連する完全な順序づけは、第2のサーバプログラム114aに対する全てのメッセージについてPMS122及び124間の全てのメッセージを順序づけすることができる。
実行セマンティクス312特性は、同様に、サーバプログラム112,114a−b又は116に対し通信プロトコルを実施するために、ポートサービスモジュール122又は124によって使用される。at-most-once特性は、メッセージがただ1つのサーバプログラムl12,114a−b又は116に対してかつそのサーバプログラムに対し多くとも1回だけ送信されることを表わす。exactlyonce特性は、メッセージがサーバプログラム112,114a−b又は116に対して1回限り送られることを表わし、at-least-once特性は、メッセージがサーバプログラムに対し少なくとも1回送られなくてはならないことを示す。
エラーを検出し予め定められた行動をとるためにもドメインポート212を使用することができる。エラーセマンティクス314特性には、bounded time及びorphan detectionが内含される。bounded time特性では、ポートサービスモジュール122又は124は、サーバプログラム112,114a−b,又は116による要求の処理をタイミングどりし、プログラム必要条件に応じてクライアントプログラム102に、要求の処理時間が予め定められたしきい値を超えていることを通知することができる。orphan detection特性は、ポートサービスモジュール122又は124が失なわれたクライアントに対する接続を検出し、ドメインポート及びそれが支援するドメインオブジェクト内で必要となる可能性のあるすべてのクリーンナップを実施することを指示する。
雑316特性は、ドメインポート212の演算特性をさらに定義づけするために用いられる。voting, rerouting, filtering, mirroring, load balancing, striping, compression, encryption及びmessage loggingといった雑特性例は、当業者には周知のものであり、又当業者であれば、ドメインポート212を用いてその他の特性も実現できることを認識するであろう。
図4は、ドメインポート212を新規作成するために行なわれる処理の流れ図である。クライアントプログラム102がドメインポート212にアクセスできるようになる前に、ドメインポートを新規作成しなくてはならない。ポートサービスモジュール202は、入力として、ステップ402でドメインポート212のためのポート登録ハンドルを受理する。このポート登録ハンドルは、ドメインポート名エントリ212a−nの1つの中で使用される。ポート登録ハンドル及び対応付けされたポートサービスハンドルは、ステップ404においてグローバルネーマーモジュール118で登録される。グローバルネーマーモジュールは、好ましい実施形態においてはサーバプログラム112,114a−b,116又はその他を一意的に識別する64ビットの値であるポートサービスハンドルを戻す。ポート登録ハンドルがすでにグローバルネーマーモジュール118で登録されている場合には、グローバルネーマーモジュールはサーバノード106,108又はもう1つのサーバノードの識別子と共に64ビットのポートサービスハンドルを戻す。
複製されたサービスの場合のようにポート登録ハンドルがすでに登録されている場合、決定ステップ406が制御ステップ408に導く。そうでなければ、制御はステップ410まで導かれる。グローバルネーマーモジュール118から戻されたサーバノードの識別子は、ステップ408でドメインポート212のサーバノードリスト例えば216aに付加される。さらに、ノード名を指示するグローバルネーマーモジュール118でポート登録ハンドルをまず第1に登録したサーバノード(例えば106,108)に対しメッセージが送られる。このとき処理は完了する。
ポート登録ハンドル406がまだ登録されていないことを決定ステップ406が発見した場合、制御はステップ410に導かれ、ここでグローバルネーマーモジュール118から戻されたポートサービスハンドルはポート登録ハンドルと結びつけられる。この結びつきは、クライアントプログラム102がポートサービスハンドルで1つのサービスを参照指示するときドメインポート212を参照指示するのに用いられる。ドメインポート特性は、ドメインポートの動作を定義づけするためのステップ412で入力される。ステップ414では、特性テーブル214は入力特性で更新される。このときドメインポート212を新規作成するための処理は完了する。
図5は、クライアントプログラム102からの要求を処理するためサーバプログラム、例えば112を選択する上で実施される処理の流れ図である。処理は、ステップ502で開始し、ここで、クライアントプログラム102は、望ましいサービスと結びつけられているサーバノード例えば106、識別子及びポート登録ハンドルを得る。図1から、クライアントプログラム102がグローバルネーマーモジュール118からポート登録ハンドルを得ることを思い出して頂きたい。
ステップ504では、ステップ502において識別されたサーバノード106でポートサービスモジュール122に1つの要求が送られる。この要求は、同様にステップ502で識別されたポート登録ハンドルを内含する。ポートサービスモジュール122は、ステップ506で命名されたドメインポートのポート特性302を得る。特性214は、要求を処理するためサーバプログラム112,114a−b又は116を選択する上で使用される。
決定ステップ508は、ドメインポート例えば212aのポートタイプ308がdomain group又はdomain objectのいずれかであるか否かをテストする。そうである場合、制御はステップ510まで導かれ、ここでこの要求は命名されたサービスのためサーバ管理プログラムヘと転送される。
ポートタイプ308がdomain portである場合、決定ステップ512は制御をステップ514に導き、ここで要求は処理のためもう1つのドメインポート例えば212bへと転送される。
ポートタイプ308について最後の考えられる例は、domain arrayである。ドメインアレイポートタイプについては、制御はステップ516へと導かれ、ここで要求を処理するべく1つのドメインアレイが選択される。この選択は、ドメインポート特性302の選択基準306に基づいて行なわれる。選択されたドメインアレイは、ポートサービスモジュール202との関係においてローカルであっても又はリモートであってもよい。複製された又はミラリングされたサービスについては、ローカル及びリモートの両方のドメインアレイを選択することができる。ステップ520では、ローカルドメインアレイが選択された場合に要求を処理するためローカルドメインアレイの1インスタンスが開始される。要求はステップ522でリモートサービスモジュール例えば124に転送され、かくしてリモートドメインアレイが選択された場合にリモートドメイアレイが要求を処理できるようになっている。
ステップ524で、ドメインポートのためのクライアント接続リスト例えば218aが更新される。クライアントシステム104の識別子がリストに付加される。ポートサービスハンドル及びサーバプログラム識別子がステップ526でクライアントプログラム102に戻される。その後、クライアントプログラムは、ポートサービスモジュール122を介してサーバプログラム例えば122にメッセージを送信するとき、ポートサービスハンドル及びサーバプログラム識別子を使用することができる。
図6は、サーバプログラム例えば114aにアドレス指定されたクライアントプログラム102からの通信要求についてポートサービスモジュール例えば122が行なう処理の流れ図である。ステップ602において、ポートサービスモジュール202は、サーバプログラム識別子及びポートサービスハンドルを要求から得る。
ステップ604では、ポートサービスモジュール122又は124は、ポートサービスハンドルと対応付けされたドメインポート例えば212aのポート特性302をルックアップする。両方が同じサーバノード106上でホストされている場合にはサーバプログラム112がポートサービスモジュール122との関係において「ローカル」であるという点に留意されたい。同様に、第3のサーバプログラム116は異なるサーバノード108上でホストされていることから、このプログラム16はポートサービスモジュール122との関係において「リモート」である。サーバプログラム識別子により識別されたサーバプログラム例えばl12がポートサービスモジュール122との関係においてローカルである場合、ステップ608で、要求は、ポート特性302により決定された制御を用いて、処理のためにローカルサーバプログラムまで転送される。ステップ610において、リモートサーバプログラムが選択される場合、要求は、リモートサーバプログラム例えば116をホストするサーバノード108のポートサービスモジュール例えば124に送られる。
ポートサービスモジュール122からサーバプログラム例えば122からの応答を受理するステップ612において、処理が続行する。ステップ614で、クライアントプログラム102に対し応答を戻す上で、ポート特性302が用いられる。
本書で記述された実施例は、例示を目的とするものであって、制限的意味をもつべく意図されていない。従って、当業者であれば、以下で規定するクレームの範囲及び精神から逸脱することなくその他の実施形態を実践することができるということを認識することだろう。
Claims (13)
- サーバプログラムによって提供されるサービスへのアクセスをクライアントプログラムに提供する、コンピュータにより実施される方法であって、
該サービスについて複数の特性を有するドメインポートを確立する段階であって、該複数の特性の各々が該ドメインポートを介して通信するクライアントプログラムとサーバプログラムとの間の通信を制御するために使用されるものである、段階と、
該クライアントプログラムから該サービスの要求を受理する段階と、
該ドメインポートの該特性を使用して該クライアントプログラムと該サーバプログラムとの間の通信を選択的に制御する段階と、
該ドメインポートを介して該クライアントプログラムと該サーバプログラムとの間の通信リンクを確立する段階と、
該ドメインポートの該特性を使用して該クライアントプログラムと該サーバプログラムとの間で伝送されるメッセージの順序づけを選択的に制御する段階と、
を具備する方法。 - 該ドメインポートの該特性を使用して異なるタイプのエラー条件について選択的に監視する段階、を更に具備する、請求項1に記載の方法。
- 該ドメインポートの該特性を使用して該クライアントプログラムから該サーバプログラムまで何回メッセージが送信されるかを選択的に制御する段階、
を更に具備する、請求項1に記載の方法。 - 該ドメインポートの該特性を使用して異なるタイプのエラー条件について選択的に監視する段階、を更に具備する、請求項3に記載の方法。
- 該ドメインポートを確立する段階が、
グローバルネーマーモジュールでポート登録ハンドルを登録する段階と、
該グローバルネーマーモジュールから戻された第1のポートサービスハンドルを該ポート登録ハンドルと結びつける段階と、
ドメインポートテーブル内に該ドメインポートの該特性を格納する段階と、
を具備する、請求項1に記載の方法。 - ポートサービスモジュールに対し該ポート登録ハンドルを用いて要求を送る段階と、
該ポート登録ハンドルと対応付けされたドメインポートの特性を使用して、該サーバプログラムのインスタンスを選択する段階と、
該クライアントプログラムに対し該サーバプログラムのインスタンスと対応付けされたポートサービスハンドルを戻す段階と、
を更に具備する、請求項5に記載の方法。 - 該ドメインポートの該特性を使用して異なるタイプのエラー条件について選択的に監視する段階、を更に具備する、請求項6に記載の方法。
- 該ドメインポートの該特性を使用して、該クライアントプログラムから該サーバプログラムまで何回メッセージが送信されるかを選択的に制御する段階、
を更に具備する、請求項6に記載の方法。 - 該ドメインポートの該特性を使用して異なるタイプのエラー条件について選択的に監視する段階、を更に具備する、請求項8に記載の方法。
- 該ドメインポートの該特性を使用して異なるタイプのエラー条件について選択的に監視する段階、
を更に具備する、請求項6に記載の方法。 - 複数のサーバプログラムによって提供されるサービスへのアクセスを複数のクライアントプログラムに提供する、コンピュータにより実施される方法であって、
各々複数の特性を有する複数のドメインポートを確立する段階であって、該複数の特性の各々が該ドメインポートを介して通信するクライアントプログラムとサーバプログラムとの間の通信を制御するために使用されるものである、段階と、
該クライアントプログラムから該サービスの要求を受理する段階と、
該ドメインポートの該特性を使用して該クライアントプログラムと該サーバプログラムとの間の通信を選択的に制御する段階と、
該ドメインポートを介して該クライアントプログラムと該サーバプログラムとの間の通信リンクを確立する段階と、
該ドメインポートの該特性を使用して該クライアントプログラムと該サーバプログラムとの間で伝送されるメッセージの順序づけを選択的に制御する段階と、
を具備する方法。 - サーバプログラムによって提供されるサービスへのアクセスをクライアントプログラムに提供する装置であって、
該サービスについて複数の特性を有するドメインポートを確立する手段であって、該複数の特性の各々が該ドメインポートを介して通信するクライアントプログラムとサーバプログラムとの間の通信を制御するために使用されるものである、手段と、
該クライアントプログラムから該サービスの要求を受理する手段と、
該ドメインポートの該特性を使用して該クライアントプログラムと該サーバプログラムとの間の通信を選択的に制御する手段と、
該ドメインポートを介して該クライアントプログラムと該サーバプログラムとの間の通信リンクを確立する手段と、
該ドメインポートの該特性を使用して該クライアントプログラムと該サーバプログラムとの間で伝送されるメッセージの順序づけを選択的に制御する手段と、
を具備する装置。 - サーバプログラムによって提供されるサービスへのアクセスをクライアントプログラムに提供するようにコンピュータを誘発するプログラム命令を具備するコンピュータ読取り可能な媒体であって、該クライアントプログラムへの提供が、
該サービスについて複数の特性を有するドメインポートを確立する段階であって、該複数の特性の各々が該ドメインポートを介して通信するクライアントプログラムとサーバプログラムとの間の通信を制御するために使用されるものである、段階と、
該クライアントプログラムから該サービスの要求を受理する段階と、
該ドメインポートの該特性を使用して該クライアントプログラムと該サーバプログラムとの間の通信を選択的に制御する段階と、
該ドメインポートを介して該クライアントプログラムと該サーバプログラムとの間の通信リンクを確立する段階と、
該ドメインポートの該特性を使用して該クライアントプログラムと該サーバプログラムとの間で伝送されるメッセージの順序づけを選択的に制御する段階と、
を実行することによってなされる媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/815,742 US6061713A (en) | 1997-03-12 | 1997-03-12 | Communications system for client-server data processing systems |
US08/815,742 | 1997-03-12 | ||
PCT/US1998/003284 WO1998040820A1 (en) | 1997-03-12 | 1998-02-19 | A communications system for client-server data processing systems |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002511959A JP2002511959A (ja) | 2002-04-16 |
JP3989969B2 true JP3989969B2 (ja) | 2007-10-10 |
Family
ID=25218728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP53957398A Expired - Fee Related JP3989969B2 (ja) | 1997-03-12 | 1998-02-19 | クライアントサーバデータ処理システムのための通信システム |
Country Status (4)
Country | Link |
---|---|
US (1) | US6061713A (ja) |
JP (1) | JP3989969B2 (ja) |
AU (1) | AU6178098A (ja) |
WO (1) | WO1998040820A1 (ja) |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6438614B2 (en) | 1998-02-26 | 2002-08-20 | Sun Microsystems, Inc. | Polymorphic token based control |
US6138238A (en) | 1997-12-11 | 2000-10-24 | Sun Microsystems, Inc. | Stack-based access control using code and executor identifiers |
US6466947B2 (en) | 1998-03-20 | 2002-10-15 | Sun Microsystems, Inc. | Apparatus and method for dynamically verifying information in a distributed system |
US6446070B1 (en) * | 1998-02-26 | 2002-09-03 | Sun Microsystems, Inc. | Method and apparatus for dynamic distributed computing over a network |
US6421704B1 (en) | 1998-03-20 | 2002-07-16 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of group membership in a distributed system |
US6938263B2 (en) | 1996-04-23 | 2005-08-30 | Sun Microsystems, Inc. | System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space |
US6598094B1 (en) | 1998-03-20 | 2003-07-22 | Sun Microsystems, Inc. | Method and apparatus for determining status of remote objects in a distributed system |
US6185611B1 (en) | 1998-03-20 | 2001-02-06 | Sun Microsystem, Inc. | Dynamic lookup service in a distributed system |
US6578044B1 (en) | 1997-11-17 | 2003-06-10 | Sun Microsystems, Inc. | Method and system for typesafe attribute matching |
US6247026B1 (en) | 1996-10-11 | 2001-06-12 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of delegation certificates in a distributed system |
US6463446B1 (en) | 1998-02-26 | 2002-10-08 | Sun Microsystems, Inc. | Method and apparatus for transporting behavior in an event-based distributed system |
US6182083B1 (en) | 1997-11-17 | 2001-01-30 | Sun Microsystems, Inc. | Method and system for multi-entry and multi-template matching in a database |
US6560656B1 (en) | 1998-02-26 | 2003-05-06 | Sun Microsystems, Inc. | Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system |
US6487607B1 (en) | 1998-02-26 | 2002-11-26 | Sun Microsystems, Inc. | Methods and apparatus for remote method invocation |
US6708171B1 (en) | 1996-04-23 | 2004-03-16 | Sun Microsystems, Inc. | Network proxy |
US6832223B1 (en) | 1996-04-23 | 2004-12-14 | Sun Microsystems, Inc. | Method and system for facilitating access to a lookup service |
US6393497B1 (en) | 1998-03-20 | 2002-05-21 | Sun Microsystems, Inc. | Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system |
US6728737B2 (en) | 1996-10-11 | 2004-04-27 | Sun Microsystems, Inc. | Method and system for leasing storage |
US5832529A (en) | 1996-10-11 | 1998-11-03 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection |
US6237009B1 (en) | 1996-10-11 | 2001-05-22 | Sun Microsystems, Inc. | Lease renewal service |
US6604127B2 (en) | 1998-03-20 | 2003-08-05 | Brian T. Murphy | Dynamic lookup service in distributed system |
CN1298514A (zh) | 1998-02-26 | 2001-06-06 | 太阳微系统公司 | 确定性散列识别远程方法的方法和系统 |
US6567849B2 (en) * | 1998-08-17 | 2003-05-20 | International Business Machines Corporation | System and method for configuring and administering multiple instances of web servers |
US6643650B1 (en) | 2000-05-09 | 2003-11-04 | Sun Microsystems, Inc. | Mechanism and apparatus for using messages to look up documents stored in spaces in a distributed computing environment |
US6792466B1 (en) | 2000-05-09 | 2004-09-14 | Sun Microsystems, Inc. | Trusted construction of message endpoints in a distributed computing environment |
US8135796B1 (en) | 2000-05-09 | 2012-03-13 | Oracle America, Inc. | Mechanism and apparatus for accessing and addressing services in a distributed computing environment |
US7716492B1 (en) | 2000-05-09 | 2010-05-11 | Oracle America, Inc. | Method and apparatus to obtain service capability credentials |
US6789126B1 (en) | 2000-05-09 | 2004-09-07 | Sun Microsystems, Inc. | Addressing message gates in a distributed computing environment |
US6862594B1 (en) | 2000-05-09 | 2005-03-01 | Sun Microsystems, Inc. | Method and apparatus to discover services using flexible search criteria |
US8001232B1 (en) | 2000-05-09 | 2011-08-16 | Oracle America, Inc. | Event message endpoints in a distributed computing environment |
US6789077B1 (en) | 2000-05-09 | 2004-09-07 | Sun Microsystems, Inc. | Mechanism and apparatus for web-based searching of URI-addressable repositories in a distributed computing environment |
US8082491B1 (en) | 2000-05-09 | 2011-12-20 | Oracle America, Inc. | Dynamic displays in a distributed computing environment |
US6760815B1 (en) | 2000-06-02 | 2004-07-06 | Sun Microsystems, Inc. | Caching mechanism for a virtual heap |
US6763440B1 (en) | 2000-06-02 | 2004-07-13 | Sun Microsystems, Inc. | Garbage collection using nursery regions for new objects in a virtual heap |
US6941410B1 (en) | 2000-06-02 | 2005-09-06 | Sun Microsystems, Inc. | Virtual heap for a virtual machine |
US7296292B2 (en) * | 2000-12-15 | 2007-11-13 | International Business Machines Corporation | Method and apparatus in an application framework system for providing a port and network hardware resource firewall for distributed applications |
US7269647B2 (en) * | 2000-12-15 | 2007-09-11 | International Business Machines Corporation | Simplified network packet analyzer for distributed packet snooper |
US7296275B2 (en) * | 2001-01-04 | 2007-11-13 | Sun Microsystems, Inc. | Method and system for passing objects in a distributed system using serialization contexts |
US7320027B1 (en) * | 2001-05-14 | 2008-01-15 | At&T Corp. | System having generalized client-server computing |
US20060020688A1 (en) * | 2001-05-14 | 2006-01-26 | At&T Corp. | System having generalized client-server computing |
JP2003067274A (ja) * | 2001-08-27 | 2003-03-07 | Murata Mach Ltd | クライアント装置及び処理サーバ |
US7660887B2 (en) * | 2001-09-07 | 2010-02-09 | Sun Microsystems, Inc. | Systems and methods for providing dynamic quality of service for a distributed system |
US7756969B1 (en) | 2001-09-07 | 2010-07-13 | Oracle America, Inc. | Dynamic provisioning of identification services in a distributed system |
US7792874B1 (en) | 2004-01-30 | 2010-09-07 | Oracle America, Inc. | Dynamic provisioning for filtering and consolidating events |
US20070245005A1 (en) * | 2006-04-18 | 2007-10-18 | Banerjee Dwip N | Method and data processing system for managing a plurality of interfaces |
JP4324975B2 (ja) * | 2006-09-27 | 2009-09-02 | 日本電気株式会社 | 負荷低減システム、計算機、及び負荷低減方法 |
US20100111371A1 (en) * | 2008-10-07 | 2010-05-06 | Apteryx, Inc. | Image server with multiple image quality ports |
US9769292B2 (en) * | 2012-01-19 | 2017-09-19 | Miosoft Corporation | Concurrent process execution |
CN104636210B (zh) * | 2013-11-07 | 2018-11-09 | 腾讯科技(深圳)有限公司 | 一种实现进程间数据交换的方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5557798A (en) * | 1989-07-27 | 1996-09-17 | Tibco, Inc. | Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes |
JP3277654B2 (ja) * | 1993-12-20 | 2002-04-22 | 株式会社日立製作所 | 異種データベース・アクセス・システム |
US5483652A (en) * | 1994-01-24 | 1996-01-09 | Digital Equipment Corporation | Mechanism for locating without search discrete application resources known by common name only in a distributed network computing environment |
US5734903A (en) * | 1994-05-13 | 1998-03-31 | Apple Computer, Inc. | System and method for object oriented message filtering |
EP0737922B1 (en) * | 1995-03-22 | 2003-05-14 | Sun Microsystems, Inc. | Method and apparatus for managing computer processes |
-
1997
- 1997-03-12 US US08/815,742 patent/US6061713A/en not_active Expired - Lifetime
-
1998
- 1998-02-19 JP JP53957398A patent/JP3989969B2/ja not_active Expired - Fee Related
- 1998-02-19 AU AU61780/98A patent/AU6178098A/en not_active Abandoned
- 1998-02-19 WO PCT/US1998/003284 patent/WO1998040820A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JP2002511959A (ja) | 2002-04-16 |
US6061713A (en) | 2000-05-09 |
WO1998040820A1 (en) | 1998-09-17 |
AU6178098A (en) | 1998-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3989969B2 (ja) | クライアントサーバデータ処理システムのための通信システム | |
US7065526B2 (en) | Scalable database management system | |
US7185096B2 (en) | System and method for cluster-sensitive sticky load balancing | |
US7237027B1 (en) | Scalable storage system | |
CA2481686C (en) | System and method for dynamically altering connections in a data processing network | |
US7444405B2 (en) | Method and apparatus for implementing a MAC address pool for assignment to a virtual interface aggregate | |
US7633855B2 (en) | System and method for resolving address conflicts in a network | |
US7231461B2 (en) | Synchronization of group state data when rejoining a member to a primary-backup group in a clustered computer system | |
US8010683B2 (en) | Unobtrusive port and protocol sharing among server processes | |
US5781737A (en) | System for processing requests for notice of events | |
US7453865B2 (en) | Communication channels in a storage network | |
WO2004036344A2 (en) | System and method for the optimization of database | |
US20070150602A1 (en) | Distributed and Replicated Sessions on Computing Grids | |
US7864703B2 (en) | Packet communication device | |
CN113014611B (zh) | 一种负载均衡方法及相关设备 | |
JP3400916B2 (ja) | サーバアドレス管理方式 | |
KR20020013401A (ko) | 클러스터링된 컴퓨터 시스템을 위한 통합 프로토콜 | |
US5857076A (en) | Program product for obtaining the state of network resources in A distributed computing environment | |
US5781736A (en) | Method for obtaining the state of network resources in a distributed computing environment by utilizing a provider associated with indicators of resource states | |
CN110213365B (zh) | 基于用户分区的用户访问请求处理方法及电子设备 | |
JP3153129B2 (ja) | サーバ選択方式 | |
JP3562995B2 (ja) | サービス品質管理装置 | |
US20040143648A1 (en) | Short-cut response for distributed services | |
CN101534255A (zh) | 一种实现特定请求定向处理的方法及装置 | |
US7240088B2 (en) | Node self-start in a decentralized cluster |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040304 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070220 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070419 |
|
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: 20070619 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070719 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100727 Year of fee payment: 3 |
|
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: 20100727 Year of fee payment: 3 |
|
R154 | Certificate of patent or utility model (reissue) |
Free format text: JAPANESE INTERMEDIATE CODE: R154 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100727 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100727 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110727 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110727 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120727 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120727 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130727 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |