JPH09160856A - 通信管理方法及びコンピュータ・システム - Google Patents
通信管理方法及びコンピュータ・システムInfo
- Publication number
- JPH09160856A JPH09160856A JP8192028A JP19202896A JPH09160856A JP H09160856 A JPH09160856 A JP H09160856A JP 8192028 A JP8192028 A JP 8192028A JP 19202896 A JP19202896 A JP 19202896A JP H09160856 A JPH09160856 A JP H09160856A
- Authority
- JP
- Japan
- Prior art keywords
- rpc
- protocol
- unix
- host computer
- 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.)
- Granted
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/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
物理的ネットワークに接続されたホスト・コンピュータ
中に常駐し、分散計算環境内にあるクライアント・プロ
セス及びサーバ・プロセス間の通信路を管理する方法を
与える。 【解決手段】 クライアント・プロセスが遠隔プロシー
ジャ呼び出し(RPC)を行なった時、RPCによって
識別されたサーバ・プロセスがホスト・コンピュータ中
にあるか否かを検出することにより本発明の方法が開始
する。若し存在すれば、バインディング・ハンドルがク
ライアント・プロセスに返送される。バインディング・
ハンドル中のプロトコル順序は、物理的ネットワークの
トランスポート及びネットワーク層を通る通信路の代わ
りに、クライアント及びサーバ・プロセス間のインター
プロセス通信路を設定する第2プロトコル順序にマップ
される。次に、オペレーティング・システムの機能を用
いてRPCが実行される。
Description
信、より詳細に言えば、コンピュータ・ネットワーク中
のクライアント・プロセス及びサーバ・プロセスが同じ
ホスト・コンピュータにおいてサポートされている時、
クライアント・プロセス及びサーバ・プロセスとの間の
遠隔プロシージャ呼び出しを効率的に管理する方法に関
する。
かつリソースを共有することができるように、ローカル
・エリア・ネットワーク(LAN)に複数のコンピュー
タを相互に接続する技術は公知である。ローカル・エリ
ア・ネットワークは、分散されたリソースと複数のコン
ピュータ中のプロセス・アプリケーションとに対して、
ユーザがアクセスできるような分散計算環境を与える。
ネットワーク通信は、いわゆる通信プロトコルを用いて
遂行される。この通信規則によって、ローカル・エリア
・ネットワークにおける通信アーキテクチャは、通常、
物理層、論理リンク層、ネットワーク層、トランスポー
ト層、セッション層、プレゼンテーション層及びアプリ
ケーション層からなる7層モデルに標準化したものとし
て特徴付けられる。物理層は、情報を伝送するために使
用される実際の物理的な装置及び媒体を含んでいる。論
理リンク層は、データ・パケットをフレームし、かつ物
理層のデータ・フローを制御して、実際の物理的媒体と
は無関係にデータのデリバリーを保証する。ネットワー
ク層は、データ・パケットをアドレスし、そして経路指
定を行なう。この層は、ソース・ノードと宛先ノードと
の間で、ネットワーク中の経路を作成し、そして維持す
る。トランスポート層は、ノード間の伝送パイプライン
を作成し、そしてネットワーク層との接続を管理する。
セッション層は、通常、遠隔プロシージャ呼び出し(R
PC)のサポートを与え、ノード間の接続の一貫性を維
持し、そしてデータ交換を制御する。プレゼンテーショ
ン層は、データをエンコードし、かつデコードし、そし
てノード間の透過性動作態様を与える。最後に、アプリ
ケーション層は、エンド・ユーザのプロセスに対してイ
ンターフェースを与え、かつアプリケーションに対して
標準化されたサービスを与える。
多くの変形を持っている。従って、例えばAIXオペレ
ーティング・システムの下でIBM社のRISC System/60
00(商標)のコンピュータ・ワークステーションを動作
するTCP/IP(Transmission Control Protocol/In
ternet Protocol)アーキテクチャに基づいたネットワ
ーク・アーキテクチャにおいては、セッション層とトラ
ンスポート層との間に存在するソケット層と呼ばれる他
の層がある。ソケット層は、物理的なポートと等価な論
理構造を持つ所謂「ソケット」を作成する。このアーキ
テクチャにおいて、RPC機構は、セッション層におい
てサポートされるばかりでなく、セッション層の機能も
含んでいる。分散計算環境(DCE)において有用な周
知のRPC機構は「オープン・システムズ・ファンデー
ション(OSF)」によって与えられたソフトウェア・
コードを含んでいる。
ントが遠隔プロシージャ呼び出し(RPC)を用いてサ
ーバにサービスを要求する場合に、「クライアント」及
び「サーバ」間の通信を管理するために従来から使用さ
れている。「クライアント」とは、計算環境内の何処か
でアクセス可能なサービスを要求したネットワークの参
加者のことである。「サーバ」は、クライアントにより
要求されたサービスを提供する。OSF−DCE−RP
C機構において、各クライアント・プロセス(クライア
ントのコンピュータ中で実行されるプロセス)は、ソケ
ット層によって作成される1つの関連ソケットを持って
いる。同様に、各サーバ・プロセスは1つのソケットに
関連付けられる。RPCに応答して、呼び出しディレク
トリ・サービスは、サーバ・プロセスが実行されるネッ
トワーク・アドレス及びポート番号として、サーバ・プ
ロセスの位置を特定する「バインディング・ハンドル」
と呼ばれるデータ構造を戻す。次に、バインディング・
ハンドルは、クライアント・プロセスとサーバ・プロセ
スとの間の通信路を定義するためにRPC機構によって
使用される。この通信路は、ソケットをオープンするた
めに、「インターネット・ネットワーク・アドレス・フ
ァミリィ(AF_INET)」のipベース(即ち、ネ
ットワーク層)プロトコル順序を用いて定義される。こ
の通信路は、クライアント・プロセスから出発して、ト
ランスポート層及びネットワーク層を通ってネットワー
クへ出た後に、サーバ・プロセスが実行されるホスト・
コンピュータに関連した層へ戻るループ路を構成してい
る。
ライアント・プロセス及びサーバ・プロセスが同じホス
ト・コンピュータ中で動作されているか否かを判別する
ことはできない。すべての場合において、この機構は、
トランスポート(TCPまたはUDP)層及びネットワ
ーク(IP)層を通過する通信路を設定するAF_IN
ETプロトコル順序を含むクライアント・プロセスに、
バインディング・ハンドルを戻す。TCPを通る通信
は、接続指向プロトコル順序を使用するけれども、UD
Pを通る通信は、非接続プロトコル順序を使用する。然
しながら、いずれの場合においても、クライアント・プ
ロセス及びサーバ・プロセスが同じホスト・コンピュー
タ中に存在する時には、RPCは、所謂ループバック・
メッセージを生成する。何故ならば、ネットワーク層
(IP層)が宛先ネットワーク・アドレスを受け取った
ならば、IP層は、RPCが「ローカル」であると認識
し、従って、その通信路がトランスポート層を通ってア
プリケーション層上のサーバ・プロセスにループ・バッ
クされねばならないと認識するからである。このループ
・バックの要件のために、同じコンピュータ中のクライ
アント・プロセス及びサーバ・プロセス間のRPCは、
性能の観点から見て最適化されていない。何故ならば、
それらのRPCは、必要としないトランスポート層及び
ネットワーク層を使用するからである。
的は、ネットワーク中の同じホスト・コンピュータ中で
実行しているクライアント・プロセス及びサーバ・プロ
セス間の遠隔プロシージャ呼び出し(RPC)を効率的
に管理することにある。
セス及びサーバ・プロセスが同じホスト・コンピュータ
中で実行されているか否かを、ネットワークのRPC機
構によって識別させ、若しクライアント及びサーバ・プ
ロセスの両方が同じホスト・コンピュータ中で実行され
ているならば、ローカル・インタープロセス通信(IP
C)機能を活用する代替プロトコル順序を用いてネット
ワーク層及びトランスポート層をバイパスさせることに
ある。
ライアント・プロセス及びサーバ・プロセスが同じホス
ト・コンピュータ中に存在する場合を検知し、これによ
り、遠隔プロシージャ呼び出しを動作させるためのネッ
トワーク層(IP)またはトランスポート層(TP)の
経路の代わりに、ローカルIPC機構を使用することに
ある。IP層またはTP層をバイパスさせることは、性
能に顕著な向上を与える。
ュータ中で実行されている2つのプロセスの間で行なわ
れるRPCである「ローカル」RPCに影響するための
IPC機構を使用することにある。特定の実施例におい
て、IPC機構は「UNIXドメイン」ソケットであっ
て、本発明は「UNIXネットワーク・アドレス・ファ
ミリィ(AF_UNIX)」に基づいた上述のソケット
をオープンするために、接続指向プロトコル順序を使用
している。AF_UNIXを使用することによって、そ
のオペレーティング・システム・カーネルは、同じホス
ト・コンピュータ中の2つのプロセス間のブリッジ通信
のタスクを操作する。
びクライアント・プロセスが同じホスト・コンピュータ
中で動作している時に、ローカルRPC機構の使用を自
動化することにある。サーバ・プロセス及びクライアン
ト・プロセスが同じホスト・コンピュータ中に存在する
時に、アプリケーションがRPCのローカル性に気づく
ことなく、ローカルRPC用のプロトコル順序が使用さ
れる。
に使用可能にされていることが望ましく、そして「ロー
カル」RPCはクライアント・プロセスに対して透過的
な動作態様を持っている。従って、ローカル・サーバ・
プロセスに対するRPCの検出に応答して、予期された
プロトコル順序が、クライアント・プロセスに戻され、
他方、ホスト・コンピュータのIPC機構を通るRPC
を促進するために、代替のプロトコル順序が使用され
る。
ンスポート層及びネットワーク層を有する物理的ネット
ワークに接続されたホスト・コンピュータ中に常駐する
クライアント・プロセス及びサーバ・プロセス間の通信
であり、かつ分散計算環境内にある通信を管理するため
の方法によって具現化される。本発明の方法は、クライ
アント・プロセスが遠隔プロシージャ呼び出し(RP
C)を行なった時に、遠隔プロシージャ呼び出しによっ
て識別されたサーバ・プロセスが同じホスト・コンピュ
ータ中に存在するか否かを検出することによって開始す
る。若し、クライアント・プロセスとサーバ・プロセス
とが同じホスト・コンピュータ中に存在すれば、物理的
ネットワークのトランスポート層及びネットワーク層を
通る通信路の代わりに、クライアント・プロセス及びサ
ーバ・プロセス間にインタープロセス通信路を設定する
プロトコル順序を持つ少なくとも1つのバインディング
・ハンドルを含んでいるバインディング・ハンドル・ベ
クトルがクライアント・プロセスに戻される。次に、望
ましくはホスト・コンピュータのオペレーティング・シ
ステムの送信及び受信メッセージ伝達機能を用いて、遠
隔プロシージャ呼び出しが実行される。
ル」RPCは、クライアント・プロセスに対する影響が
透過的である(クライアント・プロセスに対して影響を
与えない)。従って、ローカル・サーバ・プロセスに対
するRPCの検出に応答して、予期されたプロトコル順
序がクライアント・プロセスに戻され、他方、RPCを
助長するために、代替プロトコル順序が使用される。代
替プロトコル順序は同じホスト・コンピュータのIPC
機構を通る通信路を設定する。
ランスポート層及びネットワーク層の両方を使用する通
信路を定義するプロトコル順序を含む第1のデータ構造
をクライアント・プロセスへ先ず戻すことによって、ロ
ーカルRPCに応答する。次に、第1のデータ構造は、
クライアント・プロセス及びサーバ・プロセス間のイン
タープロセス通信路を定義するプロトコル順序を含む第
2のデータ構造にマップされる。次に、遠隔プロシージ
ャ呼び出しは、第2のデータ構造中のプロトコル順序に
よって定義されたインタープロセス通信路を介して実行
される。従って、本発明の良好な実施例において、第1
のデータ構造のプロトコル順序は、RPCに影響を与え
ないで使用される。
オペレーティング・システムをサポートしている特定の
実施例において、本発明の方法は、RPCによって識別
されたサーバ・プロセスが同じホスト・コンピュータ中
に存在するか否かを検出することによってRPCに応答
する。若し、RPCによって定義されたサーバ・プロセ
スが同じホスト・コンピュータ中に存在しているなら
ば、本発明の方法は、遠隔プロシージャ呼び出しに通常
関連しているプロトコル順序を持っているバインディン
グ・ハンドルをクライアント・プロセスに戻す。遠隔プ
ロシージャ呼び出しに関連しているプロトコル順序は、
通常、接続指向プロトコル「ncacn_ip_tcp」か、または
非接続プロトコル「ncadg_ip_udp」かの何れかである。
次に、プロトコル順序は、クライアント・プロセス及び
サーバ・プロセス間のインタープロセス通信路を設定す
る代替プロトコル順序にマップされる。RPCが接続指
向プロトコルを識別した場合には、このステップは、
「ncacn_ip_tcp」をプロトコル順序「ncacn_unix_strea
m」にマップする。RPCが非接続プロトコルを識別し
た場合には、このステップは、「ncadg_ip_udp」を「nc
adg_unix_dgram」プロトコル順序にマップする。次に、
クライアント・プロセスは、クライアント・プロセスが
予期したプロトコル順序を「検出する(見る)」けれど
も、しかし、そのプロトコル順序は、RPCに影響せず
に使用される。上述の動作態様とは異なって、本発明の
方法は、代表例において、UNIXベースのオペレーテ
ィング・システムのメッセージ送受信機能を用いること
によって、クライアント・プロセスに対して透過的に実
行される。
つかの目的の概略を説明したものである。これらの目的
は、本発明の幾つかの特別な特徴及び適用例について単
に説明したものとして理解されるべきである。本発明の
実施の態様は以下に説明する通りであり、本発明を適用
することによって、多くの他の有益な結果を得ることが
できる。
的に言えば、複数のコンピュータに分散されたリソース
及びプロセス・アプリケーションに、ユーザがアクセス
することのできる分散計算環境を提供するローカル・エ
リア・ネットワーク中のクライアント・プロセス及びサ
ーバ・プロセス間の通信を管理することに向けられてい
る。従来の分散計算環境(DCE)は、図1に示されて
おり、そしてネットワーク14を介してサーバ12に相
互接続されたクライアント10を含んでいる。クライア
ント10及びサーバ12の各々はコンピュータである。
例えば、各コンピュータは、AIX(Advanced Interac
tive Executive)オペレーティング・システムを実行す
るIBM(商標)社のRISC System/6000(商標)(縮小
されたインストラクション・セット、即ち、所謂RIS
Cをベースとしたワークステーション)であってもよ
い。AIXオペレーティング・システムは、アプリケー
ションのインターフェース・レベルにおいて、AT&T
社のUNIXオペレーティング・システムのバージョン
5.2と互換性を持っている。RISCベースのワーク
ステーション型コンピュータの種々のモデルは、例えば
刊行物「RISC System/6000, 7073 and 7016 POWERstati
on and POWERserver Hardware Technical Reference, -
- Order No. SA23-2644-00」など、IBM社の多くの刊
行物に記載されている。AIXオペレーティング・シス
テムは、IBM社で刊行された刊行物「AIX Operating
System Technical Reference, First Edition(198
5年11月)及び他の刊行物に記載されている。UNI
Xオペレーティング・システムの設計に関する細部につ
いては、Prentice-Hall社により刊行された(1986
年)バッハ(Maurice J. Bach)著の刊行物「Design of
the Unix Operating System」を参照されたい。
Mのシステム・ネットワーク・アーキテクチャ(SN
A)、より特定して言えばSNAのLU6.2の拡張プ
ログラム間通信(Advanced Program to Program Commun
ication-APPC)によって相互接続された複数個のI
BM社のRISC System/6000において実行される。SNA
は、そのリンク・レベルとして、ゼロックス社によって
開発されたローカル・エリア・ネットワーク(LAN)
のイーサネットまたはSDLC(同期データ・リンク制
御)を使用する。ローカル・エリア・ネットワークの簡
単な説明は、ブレディ(Robert J. Brady、Prentice-Ha
ll社)により刊行された(1983年)ジョーダン及び
チャーチル(Larry E. Jordan and Bruce Churchill)
共著の刊行物「Communications and Networking for th
e IBM PC」に記載されている。本発明は、上述した刊行
物に記載されている技術を対象としているけれども、イ
ーサネットLAN及びIBMのSNA以外の他のネット
ワークによって相互接続されたIBMのRISCベース
のパーソナルコンピュータ以外の他の異なったコンピュ
ータを用いて実施することができることには注意を払う
必要がある。従って、本発明は、例えば、OS/2オペ
レーティング・システムの下で動作するIBM社のPS
/2において実施することができる。PS/2コンピュ
ータ及びOS/2オペレーティング・システムに関する
情報については、IBM社で刊行した刊行物「Technica
l Reference Manual Personal Systems/2 Model 50, 60
Systems, Part No. 68x2224 -- Order Number S68X-22
24」と、「OS/2 2.0 Technical Library, Programming
Guide Volume 1~3 Version 2.00 -- Order No. 10G6495
及び10G6494」とを参照されたい。
ト10及びサーバ12の各々は、そのコンピュータがサ
ービスを要求しているのか、またはそのコンピュータが
サービスを提供するのかに応じて、クライアントとして
か、またはサーバとして動作する。通常、クライアント
は、遠隔プロシージャ呼び出し(RPC)を用いてサー
バ・プロセスにサービスを要求する少なくとも1つのプ
ロセスを含んでいる。然しながら、多くのDCEアプリ
ケーションは、「クライアント」プロセス及び「サー
バ」プロセスの両方が同じホスト・コンピュータ中で実
行されるような態様で書かれている。この態様は、クラ
イアント/サーバ15によって図1に示されている。ク
ライアント/サーバ15中のサーバ・プロセスのために
意図されたクライアント・プロセスからのRPCは、下
記の説明を行なう目的のために、「ローカル」または
「ローカルRPC」と呼ぶ。
て、ローカルであると否とに拘らずすべてのRPCは、
「ncacn_ip_tcp」か、または「ncadg_ip_udp」プロトコ
ル順序であるネットワーク・ベース(例えば、「ipベ
ース」)プロトコル順序を用いて遂行される。この場
合、「ncacn」は接続指向のOSF−DCE−RPCプ
ロトコル順序を表わし、そして「ncadg」は非接続のO
SF−DCE−RPCプロトコル順序を表わす。これら
のプロトコルを用いた時、「ip」術語によって明らか
なように、インターネット・アドレス・ファミリィ(A
F_INET)通信ドメインが使用される。各プロトコ
ル順序の最後の構成要素はソケット・タイプを参照する
から、従って、例えば、「udp」はデータグラムを参照
する。RPCに応答して、セル・ディレクトリ・サービ
ス・デーモン(cell directory service daemon−CD
SD)の呼び出しは、サーバ・プロセスが実行されてい
るネットワーク・アドレス及びポート番号としてのサー
バ・プロセスの位置を特定する、所謂、「バインディン
グ・ハンドル」を戻す。また、バインディング・ハンド
ルは、RPCによって要求されたサーバ・プロセスを識
別する。次に、バインディング・ハンドルは、クライア
ント・プロセス及びサーバ・プロセス間の通信路を定義
するために、RPC機構によって用いられる。この通信
路は、ソケットをオープンするために、AF_INET
のipベース(即ちネットワーク層)のプロトコル順序
を用いて定義される。この通信路は、クライアント・プ
ロセスからトランスポート層及びネットワーク層を通っ
てネットワークに出た後に、サーバ・プロセスが動作し
ているホスト・コンピュータに関連された層に戻るルー
プを形成する。
バ・プロセスが同じホスト・コンピュータ中に存在して
いるとしても、トランスポート層(TCPまたはUD
P)及びネットワーク(IP)層がループバック・メッ
セージを送るのに使用される。これは、図2に示されて
いる。
順序を使用する代りに、クライアント・プロセスに対し
て透過的な態様(影響を与えない)でローカルRPCを
助長するための代替プロトコル順序が用いられる。この
透過的な態様のために、ローカルRPCは、アプリケー
ションに「隠されて」遂行されると言われる。若しオペ
レーティング・システムがAIX、またはOS/2オペ
レーティング・システムであれば、プロトコル順序「nc
acn_unix_stream」は、接続指向ipベースのプロトコ
ル順序(即ち、「ncacn_ip_tcp」)を識別するローカル
RPCに使用される。指定子「ncacn」は、接続指向R
PCプロトコルを指定し、「unix」はUNIXネットワ
ーク・アドレス・ファミリィ(AF_UNIX)通信ド
メインを識別し、そして「stream」はUNIXドメイン
のストリーム・ソケットを識別する。OS/2オペレー
ティング・システムの下でローカルRPC機能が動作し
ている場合、非接続ipベースのプロトコル順序(即
ち、「ncadg_ip_udp」)の下で発行されたRPCは、プ
ロトコル順序「ncadg_unix_dgram」の使用を生じる。こ
の場合、「ncadg」は非接続RPCプロトコルを表わ
し、そして「unix_dgram」はUNIXドメイン・データ
グラム・ソケットを識別する。勿論、上述したオペレー
ティング・システムは、単なる例示であって、本発明は
これらのオペレーティング・システムのみに限定して解
釈されるべきものではない。何れの場合でも、クライア
ント・プロセスには、実際のRPCが、異なったローカ
ルの機構を用いて遂行されたとしても、クライアント・
プロセスが予期するプロトコル順序が戻される。使用さ
れる実際のプロトコル順序は、「UNIXネットワーク
・アドレス・ファミリィ(AF_UNIX)」を使用す
ることによって、トランスポート層及びネットワーク層
の使用を回避する。
オペレーティング・システム・カーネルは、同じホスト
・コンピュータ中の2つのプロセスの間の通信を連結す
るタスクを操作する。AF_UNIXは、クライアント
・プロセスとサーバ・プロセスとの間のインタープロセ
ス通信(IPC)を実行するために好ましい技術である
けれども、他のオペレーティング・システム(OS)の
IPC機構(共有メモリとかメッセージ待ち行列など)
も同じように使用することができる。どのような場合で
も、ローカルIPC機構の使用は、トランスポート層及
びネットワーク層を通したループバック呼び出しを行な
うよりも著しく速いので、性能の改善は顕著なものがあ
る。本発明の機能は図3に示されている。
じホスト・コンピュータ中に存在するDCE(分散計算
環境)アプリケーションのプロセスの間で行なわれるR
PCによってのみ用いられるのが好ましい。RPCラン
タイム(runtime)は、若しサーバが同じホスト・コン
ピュータ中に存在しなければ、クライアント・アプリケ
ーションに、ncacn_unix_streamのバインディングを戻
さない。ncacn_unix_streamプロトコル順序は、同じホ
スト・コンピュータ中のDCEアプリケーションによっ
て使用されるものだから、これらのバインディングはネ
ットワーク・アドレスを含んでいない。また、ncacn_un
ix_streamのバインディング・ハンドルのエンドポイン
ト(endpoint)は、UNIXソケット・ファイルのフル
通信路名(full pathname)として表示される。固有の
ソケット・ファイルが、クライアント・プロセスとサー
バ・プロセスとの間で設定された各アソシエーション
(組み合せ)のために使用される。デフォルトによっ
て、これらのソケット・ファイルは、接頭部、DCE_CNを
持つファイル名を有するディレクトリ、/var/dce/rpc/s
ocket中にオープンされる。また、デフォルトによっ
て、各ソケット・ファイルの名前は、オブジェクトUU
ID(universal unique identifier−ユニバーサル・
ユニーク識別子)であり、このユニバーサル・ユニーク
識別子は各ファイル名の固有性を保証する。UUID
は、UUIDゼネレータ・ルーチンによって作成された
実質的に長くランダムな数字である。RPCランタイム
によって、エンドポイントをncacn_unix_streamのバイ
ンディングに割り当てる時、そのバインディングは、
「オブジェクトUUID」であり、これは、ソケット・
ファイル名の固有性を保証する。これは、DCEアプリ
ケーションの2つの呼び出しにおいて、ソケット・ファ
イルが再度使用されるような場合が皆無であることを意
味する。
テムにおいて、OSカーネルは、そのカーネルがユーザ
のために作業を行なう前に、ファイルをオープンするこ
とをユーザに要求する。本発明によって作成されたソケ
ット・ファイルは、OSカーネルのプレースホルダーと
して保存される長さのないファイルである。固有の各ソ
ケット・ファイルは、作成されたファイル・システム中
にiノードのエントリを占領する。OSカーネルは、フ
ァイル・システム中のプレースホルダーとしてソケット
・ファイルを用いることによってRPCを遂行し、次
に、それ自身のデータ構造を制御して、RPCを具現さ
せるために、クライアント・プロセス及びサーバ・プロ
セスの間でデータを送信し、かつ受信する。従って、O
Sカーネルは、この目的のために、例えば「Mbuf」
のデータ構造を使用することができる。
ncacn_unix_streamストリングのバインディングの幾つ
かの例を示している。 ncacn_unix_stream:[] ncacn_unix_stream:[/var/dce/rpc/socket/0063980e357
b-le07-878b-10005a4f3bce] このように、プロトコル順序は、接続指向の「ncacn」
RPCプロトコル、AF_UNIX通信ドメイン(「uni
x」のコンポーネントによって識別される)及び「stre
am」タイプのソケットの返却を含んでいる。1番目の例
示において、エンドポイント(つまり、括弧[]内のデ
ータ)は空である。2番目の例示においては、エンドポ
イントは、デフォルトのソケット・ディレクトリ「/var
/dce/rpc/socket/_」及びUUIDを識別する。
/socketディレクトリ中のオブジェクトUUIDである
必要はない。IDL(Interface Definition Langauge-
インターフェース定義言語)仕様書のファイル中の「エ
ンドポイント」の属性は、固有のファイルに対する通信
路名を特定するのに用いることができる。あるいは、ア
プリケーションは、ncacn_unix_streamストリングのバ
インディングを、コマンド・ライン引数として取ること
ができ、そして、その引数を、rpc_binding_from_strin
g_binding()ルーチンを用いてバインディング・ハンド
ルに変換することができる。ユーザにより特定されたソ
ケット・ファイル通信路の例を下記に示す。 ncacn_unix_stream:[/var/dce/rpc/socket/foo] ncacn_unix_stream:[/tmp/6094] ncacn_unix_stream:[/5423] 最後に示した例において、エンドポイントは絶対通信路
によって表示されていないので、ncacn_unix_stream:[/
var/dce/rpc/socket/5423]が仮定され、ソケット・ファ
イルを作成するために使用される。また、エンドポイン
ト・マップのエントリは、絶対通信路を持っている。こ
のことは、相対通信路が初めて使用される前に、相対通
信路は、絶対通信路まで常に拡張され得るので、2つの
フォームが相互に交換可能に用いられた時に問題を生じ
ることがない。
おいて、RPCランタイム(実行時)ライブラリは、ク
ライアント及びサーバが同じホスト・コンピュータ中に
存在する場合を認識し、そして、機能rpc_ns_binding_i
mport_next()が他のプロトコル順序のためのバインディ
ングを戻す前に、そのようなバインディングを、機能rp
c_ns_binding_import_next()に戻させることによるか、
あるいは、バインディング・ベクトルの低い位置中のす
べてのncacn_unix_streamのバインディングを、機能rpc
_ns_binding_lookup_next()に戻させることによってnca
cn_unix_streamの使用を促進する。性能上の理由のため
に、そのような実施例においてrpc_ns_binding_<import
/lookup>_next()ルーチンから戻されたncacn_unix_stre
amのバインディング・ハンドルは、完全に結合される。
これは、そのバインディングのベクトルがRPCエンド
ポイント・マップから到来し、そのバインディングの中
にエンドポイントを持っていたことによる。この実施例
において、ncacn_unix_streamのバインディング情報
は、RPCのAPIルーチンrpc_ns_binding_export()
が呼び出された時、CDS(セル・ディレクトリ・サー
ビス)ネーム・スペースのデータベースへエクスポート
されない。この理由は、クライアント及びサーバのアプ
リケーションが同じホスト・コンピュータ中に存在する
時だけに、ncacn_unix_streamのバインディングが使用
可能だからである。CDSネーム・スペースは、「DC
Eセル」中の任意のコンピュータ中のDCEのアプリケ
ーションによって読み取ることができるから、CDSネ
ーム・スペースのデータベース中のncacn_unix_stream
ストリームのバインディングは、遠隔地のサーバと通信
する必要のあるクライアントに対して使用不能である。
ンディングは、DCEのサーバ・アプリケーションがR
PCのAPIルーチンrpc_ep_register()を呼び出した
時に、RPCエンドポイント・マップのデータベース中
にのみ登録される。この理由は、DCEセル中の各ホス
ト・コンピュータで実行するRPCエンドポイント・マ
ップのデーモンがあるためであり、これは、ホスト・コ
ンピュータ特定の情報をストアするために、更に良い論
理的位置にする。クライアントが、互換性を有するサー
バのバインディング用のCDSネーム・スペースを問い
合わせた時、RPCランタイムは、セルがローカル・ホ
スト・コンピュータ中のサーバ用であるか否かを決定す
る。若しセルがサーバ用であれば、CDSネーム・スペ
ースから、すべてのバインディングを戻すことに加え
て、RPCランタイムは、互換性を有するncacn_unix_s
treamのバインディングがあるか否かを検出するために
RPCエンドポイント・マップに行く。若し互換性を持
つncacn_unix_streamのバインディングがあれば、その
バインディングはCDSネーム・スペースから戻された
バインディングよりも高い優先権を与えられる。若しク
ライアント及びサーバが異なったホスト・コンピュータ
の中にあれば、エンドポイント・マップの検索は行なわ
れない。何故ならば、この場合のエンドポイント・マッ
プの検索は、使用可能なバインディングを生じないから
である。
状態で存在する時、この状態は、DCEサーバ・アプリ
ケーションが存在する前に、RPCのエンドポイント・
マップから、他のものと共に、そのエンドポイントを登
録しない。ncacn_ip_tcp及びncacn_ip_udpのようなip
ベースのプロトコルの場合において、DECアプリケー
ションを受信しようとしていたポートは、オペレーティ
ング・システムによって整理されるから、ポートを解放
するためのアプリケーション動作は要求されない。ncac
n_unix_streamのエンドポイントは、ユーザ・スペース
・ファイルであり、これらのファイルは、DCEアプリ
ケーションが存在する時には、オペレーティング・シス
テムによって除去されない。
よって、エンドポイントをncacn_unix_streamのバイン
ディングに割り当てる時に、このバインディングは、固
有であることが保証されている「オブジェクトUUI
D」である。このことは、DCEアプリケーションの2
つの呼び出し中で、ソケット・ファイルが再度使用され
ることはあり得ないことを意味する。従って、古いソケ
ット・ファイルが残留している事実は、短時間では問題
にはならない。然しながら、時間の経過と共に、これら
のソケット・ファイルは累積されるであろう。既に述べ
たように、ソケット・ファイルは、長さがゼロであるけ
れども、しかし、各ソケット・ファイルは、ソケット・
ファイルが作成されたファイル・システム中にiノード
・エントリを占める。従って、これらの古いソケット・
ファイルを整理するための何らかの手段を持つことが必
要である。これは、RPCエンドポイント・マッパ(R
PCデーモン)によって行なわれる。
ケットだけが自動的に整理されることには注意を払う必
要がある。若しDCEアプリケーションがDCEアプリ
ケーション以外のディレクトリを用いて、そのncacn_un
ix_streamエンドポイントを作成したならば、古いエン
ドポイントが整理されることを保証することは、アプリ
ケーション、またはアプリケーションのユーザの責任で
ある。これは、rpc.cleanユティリティを用いて行なわ
れる。rpc.cleanユティリティは、検査されるべき古い
ソケット・ファイルに関するディレクトリを、ユーザに
より特定させる。このユティリティは、そのディレクト
リを検索し、そして検出されたすべての古いソケット・
ファイルを除去する。これは、RPCのエンドポイント
・マップが行なう整理と同じ整理を遂行する。DCE管
理記述、dce.clean、rc.dce、またはrmdceが実行される
時には常に、ソケット・ファイルの累積問題を解決する
付加的な保護策として、rpc.cleanユティリティが含ま
れる。
ーモン及びセキュリティ/ネーム・スペースのサービス
を含む通信活動)が、同じコンピュータにおいて実行さ
れている2つのプロセスの間でRPCを用いて遂行され
た場合であって、上述のローカルRPCのアプローチ
(unixドメイン・ソケットを用いた方法)が実施さ
れた場合、DCEシステム全体の性能は約40%向上し
た。このローカルRPC構造は、本発明に従って更に改
善される。本発明の実施例において理解できるように、
すべてのローカルRPC動作はデフォルト動作として最
適化されることが望ましい。明示的な接続指向(CN)
プロトコルは、RPCのアプリケーション及びクライア
ント・プロセスに対して透過的な態様(影響を与えな
い)で、しかも、速いローカルunix_streamプロトコル
に自動的に切換えられる。同様に、明示的な非接続(D
G)プロトコルは、速いローカルunix_dgramプロトコル
に自動的に切換えられる。本発明の実施例において、明
示的なunix_streamプロトコルをクライアント・プロセ
スに戻すことは最早や必要としない。プロトコルの切り
換えは、RPC機構及びアプリケーションに「隠され
て」遂行され、これは性能を更に向上させる。
Cアプローチにおいて、unix_streamプロトコルは、明
示的に与えられており、DCEデーモンの「エンドポイ
ント・マッパ」中に現われる異なったタイプのエンドポ
イントの形式でユーザに可視的である。アプリケーショ
ンが、接続指向プロトコル順序かまたは非接続プロトコ
ル順序を使用するように選択し、かつローカルRPC機
構が暗黙的に優先権を取る場合か、または、アプリケー
ションが、unix_streamプロトコルを使用するように選
択した場合に、改良型のローカルRPCが行なわれる。
改良型のローカルRPCは、unix_streamのエンドポイ
ントのための動作に関連された「エンドポイント・マッ
パ」を除去する。
おいて、透過的な態様の切換えはユーザのプロトコル順
序(RPCにおいて識別される)から、ある種のローカ
ル・プロトコルに移り、そして、この透過的な態様の切
換えは自動的に生じるのが望ましい。このアプローチ
は、明示的なunix_streamまたはunix_dgramプロトコル
を取り除き、そして、接続指向(CN)及び非接続(D
G)プロトコルのために最適化されたローカルRPCを
デフォルトとして設定する。然しながら、CN及びDG
デフォルトの意味を保存するために、別個のCNローカ
ルRPC内部サポート(ncacn_unix_stream)及びDG
ローカルRPC内部サポート(ncacn_unix_dgram)が作
成される。
ャ呼び出しを行なった時に、分散計算環境内のクライア
ント・プロセス及びサーバ・プロセス間の通信を管理す
る方法における主要なステップを示した図4の流れ図に
おいて、上述の代替プロトコル順序の処理方法が示され
ている。この方法において、クライアント・プロセス
は、ホスト・コンピュータがAIXのようなUNIXベ
ースのオペレーティング・システムをサポートしてお
り、かつ、トランスポート層及びネットワーク層を有す
る物理的ネットワークに接続されている同じホスト・コ
ンピュータ中に常駐しているものと仮定する。この方法
は、サーバ・プロセスが同じホスト・コンピュータ中に
存在しているか否かを決定するステップ30で開始す
る。若しサーバ・プロセスが同じホスト・コンピュータ
中にあれば、この方法は、遠隔プロシージャ呼び出しに
通常関連しているプロトコル順序を持つバインディング
・ハンドルをクライアント・プロセスへ戻すステップ3
2に続く。次に、クライアント・プロセスは、予期して
いるプロトコル順序(RPCで与えられたプロトコル順
序)を「検出」する。次に、この方法は、遠隔プロシー
ジャ呼び出しと通常関連しているプロトコル順序を、ク
ライアント・プロセス及びサーバ・プロセス間のインタ
ープロセス通信路を設定する代替プロトコル順序にマッ
プ処理するステップ34に続く。(ステップ32及び3
4を反対にすることができる。)従って、例示的な説明
目的に限定して、若し遠隔プロシージャ呼び出しに関連
したプロトコル順序が接続指向のプロトコル「ncacn_ip
_tcp」であれば、このステップは、そのプロトコル順序
を、同じコンピュータ上で実行している代替プロトコル
順序にマップする。この機能は常に使用可能にされてい
ることが望ましい。従ってサーバ・プロセス及びクライ
アント・プロセスが同じコンピュータ中に存在する場合
には、「ncacn_ip_tcp」プロトコル順序の代わりに「nc
acn_unix_stream」プロトコル順序が使用され、そし
て、「ncadg_ip_udp」プロトコル順序の代わりに「ncad
g_unix_dgram」プロトコル順序が使用される。上述した
2つの代表的なオペレーティング・システムのコンテキ
ストにおいて、この技術は、AIX及びOS/2の両方
のオペレーティング・システムに対して、「ncacn_ip_t
cp」プロトコル順序を「ncacn_unix_stream」に切換
え、そして、OS/2オペレーティング・システムだけ
に対して、この機能が動作可能にされる時に「ncacn_ip
_udp」プロトコル順序を「ncadg_unix_dgram」に切換え
ることが望ましい。OS/2オペレーティング・システ
ムだけに限定した後者の場合の理由は、「ncadg_unix_d
gram」プロトコル順序を実行することが、AIXオペレ
ーティング・システムの性能を顕著に改善しないからで
ある。従って、若しアプリケーションがAIXの「ncad
g_ip_udp」プロトコル順序を使用したならば、ローカル
RPCは、サーバ及びクライアントのプロセスが同じコ
ンピュータ中に存在したとしても推奨されるものではな
い。この機能を使用不能にするために、環境変数、DISA
BLE_AUTO_LRPCは1にセットされる。
C機構の細部を更に詳しく説明したものである。この説
明を総括的に言えば、DCEのプログラミング規則に精
通していること、より特定して言えば、RPC機構に精
通していることが前提とされる。設計の第1の局面は、
どのプロトコル順序がサポートされているかをユーザが
識別することであり、この識別はRPC初期化ルーチン
の間で行なわれる。若しユーザがRPC_SUPPOR
TED_PROTSEQSを、1つまたはそれ以上のプ
ロトコル順序にセットしたならば、これらのプロトコル
順序だけがサポートされる。然しながら、RPC初期化
ルーチンを終了する時に、DISABLED_AUTO
_LRPC変数がチェックされる。若しこの変数が1に
セットされていなければ、大域変数「defaultrpc」が
「真」にセットされる。次に、RPC「ランタイム」は
最適化されたローカルRPC機能をサポートする。これ
は、「ncacn_unix_stream」及び「ncadg_unix_dgram」
プロトコル順序がRPC「ランタイム」によってサポー
トされていることを意味する。「ランタイム」コードの
すべての変更は、defaultlrpc変数が「真」である時だ
けに実行される。
トするために必要な変更であって、アプリケーションの
サーバ・プロセスに関連する変更は、以下に説明する通
りである。以下の説明は、ncacn_ip_tcpプロトコル順序
の場合に関連するものであるけれども、同じ考え方をnc
acn_ip_udpプロトコル順序に適用することができるのは
理解されるべきである。ローカルRPCの1つの機能
は、サーバ・プロセスが聴取しているプロトコル順序用
の公知のエンドポイント及び動的エンドポイントのすべ
てのエンドポイントを含む「Unixドメイン」ソケッ
トをオープンしなければならないことである。この理由
は、若しストリング・バインディングが公知のエンドポ
イントまたは動的エンドポイントを用いてクライアント
に与えられたならば、DCEデーモンが同じコンピュー
タ中で実行されるものと推測することができないからで
ある。従って、ncacn_unix_streamプロトコル順序及び
特別のエンドポイントを用いて、完全な宛先rpcアドレ
スを作成し、次に、その宛先rpcアドレスをバインディ
ング表示中にストアする必要がある。これは、「Uni
xドメイン」ソケットに結合されている特別な公知のエ
ンドポイント及び動的エンドポイントのすべてを持って
いる「Unixドメイン」ソケットを、サーバ・プロセ
スが聴取しなければならないことを意味する。
めに、ファイルsrc/rpc/runtime/cnnet.cの中のrpc_cn_
network_use_protseq()は変更されねばならない。この
ルーチンにおいて、tcpソケットがオープンされる時
には常に、対応するunixストリーム・ソケットがオ
ープンされる。この処理が、図4に示したマップ作成ス
テップである。このunixストリーム・ソケットのた
めに、unixのrpc_addrが割り当てられ、tcpエンド
ポイントが命名規則に従ってunixストリームのエン
ドポイントに変換される。また、このunixストリー
ム・ソケットは、ソケット記述子に加えられる。従っ
て、rpc_cn_network_use_protseq()ルーチンは以下のよ
うに実行される。 if auto LRPC is on(若し自動LRPCがオンならば) Get the tcp endpoint(tcpエンドポイントを獲得せ
よ) Allocate memory for the new unix RPC address(新し
いunixRPCアドレス用のメモリを割り当てよ) Insert the protseq id, socket address structure le
ngth,and Network- Address Family into RPC addre
ssstructure(protseq識別子、ソケット・アドレス構造
の長さ及びネットワーク・アドレス・ファミリィをRP
Cアドレス構造中に挿入せよ) Open a unix socket and bind the RPC address to it
(unixソケットをオープンし、それにRPCアドレ
スを与えよ) Add the socket to the socket descriptor.(ソケット
にソケット記述子を加えよ。) end if 以上の説明は、アプリケーション・サーバ・プロセスに
関係した変更に関するものである。
スに関係した変更を以下に説明する。クライアントのア
プリケーションがRPCランタイムに対して先ず最初に
行なう第1の呼び出しは、rpc_call_start()であり、こ
の呼び出しは、転じて、バインディング・ハンドル中の
プロトコル識別子に従って、プロトコル特定のルーチ
ン、つまりrpc_dg_call_start()か、またはrpc_cn_call
_start()を呼び出す。プロトコル特定のルーチンを呼び
出す前に、rpc_call_start()に対して下記のような変更
が行なわれる。
ル中の宛先アドレスがローカル・ホスト・コンピュータ
のipアドレスの1つと等しいか否かを決定することによ
って開始する。(この比較は、若しTCP/IPがコン
ピュータ中に導入されていなければ動作しない。むし
ろ、NetBios用のRPCプロトコル順序に関係し
たアドレスのために、異なったタイプの比較が必要とさ
れる。)若しこの比較が真であれば、アプリケーション
がrpc_call_start()に通されたプロトコル順序に代わっ
て、ncacn_unix_streamプロトコル順序が使用されるよ
うに、バインディング表示中の該当するフィールドが変
更される。バインディング表示は下記のフィールドを持
っている。 typedef struct { rpc_list_t link; rpc_protocol_id_t protocol_id; signed8 refcnt; uuid_t obj; rpc_addr_p_t rpc_addr; unsigned is_server: 1; unsigned addr_is_dynamic: 1; rpc_auth_info_p_t auth_info; unsigned32fork_count; unsigned bound_server_instance: 1; unsigned addr_has_endpoint: 1; unsigned32 timeout; signed8 calls_in_progress; pointer_t ns_specific; rpc_clock_t call_timeout_time; } rpc_binding_rep_t, rpc_binding_rep_p_t; このルーチンに従って、バインディング表示中のプロト
コル識別子フィールドは、接続指向RPCプロトコル識
別子、つまり0で置き換えられる。バインディング表示
は、その中にストアされた宛先rpcアドレスを持って
おり、そしてrpc_addrは、rpc_addr_p_tタイプである。 typedef struct { rpc_protseq_id_t rpc_protseq_id; unsigned32 len; sockaddr_t sa; } rpc_addr_p_t;
能rpc_cn_call_start()は変更されなければならない。
先ず、元のrpc_addr構造が保存される。この時点におい
て、rpc_addrは公知のエンドポイントを持っている。ル
ーチンは、このエンドポイントをunixストリーム・
エンドポイントに変換した後にunixストリームのた
めの宛先rpcアドレスを作成する。次に、ルーチンは、
バインディング表示中のrpc_addrを、新しいrpc_addrに
置き換える。ncacn_unix_streamプロトコルを持つこのr
pc_addrは「エンドポイント・マッパ」に登録されず、
従って、ユーザに対して可視的ではない。その後、RP
Cはunixストリーム及び接続指向RPCプロトコル
を使用して可視的になる。すべての送信及び受信が完了
した後、元のrpc_addr構造は、バインディング表示にコ
ピーされ、そしてクライアント・プロセスに戻される。
rpc_cn_call_start()の機能は下記の通りである。 if auto LRPC is on(若し自動LRPCがオンならば) Allocate memory for the new unix RPC address(新し
いunixRPCアドレス用のメモリを割り当てよ) Insert the protseq id, socket address structure le
ngth,and Network- Address Family into RPC addresss
tructure(protseq識別子、ソケット・アドレス構造の
長さ及び「ネットワーク・アドレス・ファミリィ」をR
PCアドレス構造中に挿入せよ) Save the original rpc_addr from the bindingreprese
ntation(バインディング表示からオリジナルのRPC
アドレスを保存せよ) Copy the unix rpc_addr to the binding representati
on(unixRPCアドレスをバインディング表示にコ
ピーせよ) Do the transmits and receives(送信及び受信を行な
え) Copy the original rpc_addr back to the bindingrepr
esentation(オリジナルのRPCアドレスをバインディ
ング表示にコピーし戻せ) If any error occured in the transmit or receive us
ingunix stream,try again transmitting/receiving us
ing the originalrpc_addr(若しunixストリームを
用いた送信または受信においてエラーが発生したなら
ば、オリジナルのRPCアドレスを用いて送信/受信を
試行せよ) Return to the client(クライアントに戻れ) end if
て、unixストリームを持つバインディングは、「エ
ンドポイント・マッパ」中に登録されず、あるいはネー
ム・スペースにエクスポートされない。クライアント・
プロセスが、import_begin及びimport_next呼び出し機
能を用いてバインディングに問い合せを行なった時、ク
ライアント・プロセスは、ncacn_unix_streamを持つバ
インディングを獲得しない。API呼び出しrpc_server
_inq_bindingsは、RPCが行なわれるサーバのバイン
ディングを戻す。この機能はバインディングを得るため
に、聴取側のソケットからのソケットを使用する。サー
バはストリーム・ソケットにおいて聴取しているから、
下記のフィルタが与えられる。 for loop for enquiring the bindings from the liste
ner sockets(聴取ソケットからのバインディングの問
い合せを行なうためのループ) if the socket protseq is unix stream,(若しソケッ
トprotseqがunixストリームならば、) skip the binding(そのバインディングをスキップせ
よ) end for loop(ループの終り)
プリケーションのクライアントは、unixストリーム
・プロトコルを使用してアプリケーションのサーバと対
話するから、従って、このプロトコルはアプリケーショ
ンのサーバに露呈される。これを遮蔽するために、rpc_
binding_from_string_bindingルーチンが変更される。
この場合、rpc_addrは、バインディング・ハンドルから
のものではなく、ローカル・コンピュータのアドレス及
びncacn_ip_tcpプロトコル順序によって満たされる。こ
れを行なうことによって、クライアント・プロセスは、
それが予期していたプロトコル順序を「検知」し、そし
て代替プロトコル順序が通信路に影響するように使用さ
れる。その結果、ncacn_unix_streamが、ユーザから隠
蔽される。この機能は下記の通りである。 if the binding rep rpc_addr has unix stream in it
(若しバインディング表示rpc_addrがその中にunix
ストリームを持っているならば) enquire the local machine address with tcp protoco
lsequence(ローカル・コンピュータ・アドレスをtc
pプロトコル順序に問い合せよ) Insert the tcp protseq id, socket address structur
elength, and IP- Network Address family into RPCad
dress structure(tcp Protseq識別子、ソケット・アド
レス構造の長さ及びIPネットワーク・アドレス・ファ
ミリィをRPCアドレス構造に挿入せよ) Copy this rpc_addr to the binding representation
(このrpc_addrをバインディング表示にコピーせよ) return this rpc_addr back(このrpc_addrを戻せ) end if
PC構造を実行するために必要な変更を説明するもので
ある。この改善の重要な目標は、この最適化されたRP
C構造の実施がユーザに不可視的にすることと、従来の
クライアント/サーバ・アプリケーションに対して逆向
きの互換性を持たせることとを保証することである。
てどのようにしてRPCのサポートを付加するかについ
ての細部の説明を以下に記載する。
は以下のように変更される。ユーザは、従来からサポー
トされているプロトコル順序に加えて、付加的なプロト
コル順序を指定するための新しい能力を持っている。こ
の新しいプロトコル順序は「ncacn_unix_stream」と名
付けられる。API機能パラメータ、環境変数、または
コマンド・ライン引数を、プロトコル順序用ストリング
・フォーマットの仕様に用いることができる場合には常
に、ストリーム「ncacn_unix_stream」の使用が可能で
ある。
・コンピュータ中に存在する場合に使用される新しいプ
ロトコル順序(ncacn_unix_stream)のためのサポート
を加える。
的に不可視であり、そして、従来のクライアント/サー
バ・アプリケーションとは逆向きの互換性を有する。
ムのような他のプラットホームに対して移植性(portab
le)がある。OS/2はUNIXドメインに対するサポ
ートを有する(MPTSを介して)。OS/2の「共通
ポーティング・プラットホーム(CPP)」のDLL
は、OS/2を変更することなく、殆どすべてのUNI
X特定サブルーチン呼び出しを使用可能にする。
ドを殆ど変更することなく、RPCランタイム・ライブ
ラリの設計を行なうことができる。これは、2つの手
段、即ち(1)モジュラー・データ構造と、(2)エン
トリ・ポイント・ベクトルとを使用することによって達
成される。モジュラー・データ構造は、プロトコル順序
を作る幾つかの要素に関する一貫した機構を与えること
によって新しいプロトコル順序を付加することを容易に
する。RPCランタイム・コードの大部分がすべてのプ
ロトコルに共通なので、エントリ・ポイント・ベクトル
を使用することは、インデックスを通して機能アレイの
ライン毎に、プロトコル特定のルーチンにアクセスする
ことができる。プロトコル識別子は、エントリ・ポイン
ト・ベクトル中のインデックスとして使用される。新し
いプロトコル順序には、そのプロトコル順序に特定され
た処理を操作するための新しいルーチンを加えることが
必要である。
UNIXアドレス・ファミリィと、SOCK__STREA
Mのソケット・タイプとを用いて作成される。ソケット
・アドレスは、インタープロセス通信機構としてのフル
通信路名の仕様を用いて、構造sockaddr_unを使用す
る。クライアント及びサーバはこのプロトコル順序を用
いるために同じホスト・コンピュータ中に常駐していな
ければならない。このプロトコル順序は接続指向であ
り、そしてCNプロトコル識別子を使用する。
を実行するために変更を必要とするRPCソース・ファ
イルを説明する。以下の説明において、広範な含意変更
(implication change)から開始して、より特別な変更
に減縮するようなファイルのリストを作るように試みら
れている。
数識別子を付加することが必要である。これらの定数
は、使用する構造及び適正なインデックス・エントリ・
ポイント・ベクトルにアクセスするために、すべてのR
PCランタイム・コードに亙って使用される。 RPCプロトコル順序識別子定数: #define rpc_c_protseq_id_ncacn_unix_stream 5 RPCプロトコル順序ストリング定数: #difine rpc_protseq_ccacn_unix_stream "ncacn_unix_
stream" RPC「ネットワーク・アドレス・ファミリィ」定数: #define rpc_c_naf_id_unix 1
ブル・エレメントを付加することが必要である。これら
のテーブル・エレメントは、「Unixドメイン・アド
レス・ファミリィ」と、ncacn_unix_streamプロトコル
順序とのためのサポートを付加する。
うに拡張された。 GLOBAL rpc_protseq_id_elt_t rpc_g_protseq_id[rpc_protseq_id_max] = { .../*existing table elements */ (存在するテーブル・エレメント) { 0, rpc_c_protseq_id_ncacn_unix_stream, rpc_c_protocol_id_ncacn, rpc_c_naf_id_unix, rpc_c_network_protocol_id_uns /*Unspecified*/ rpc_protseq_ncacn_unix_stream } {;
拡張されなければならない。 GLOBAL rpc_naf_id_elt_t rpc_g_naf_id[rpc_naf_id_max] = { ... /*existing table elements */ (存在するテーブル・エレメント ) { rpc_unix_init, rpc_c_naf_id_unix, rpc_c_network_if_id_stream, NULL } .../* existing table elements*/ (存在するテーブル・エレメント ) };
る。このファイルは、「Unixドメイン・ネットワー
ク・アドレス・ファミリィ」のために必要なエントリ・
ポイント・ベクトルのルーチンのためのサポートを与え
る。下記のように定義されたrpc_naf_epv_tと呼ばれる
RPC構造がある。 typedef struct { rpc_naf_addr_alloc_fn_t naf_addr_alloc; rpc_naf_addr_copy_fn_t naf_addr_copy; rpc_naf_addr_free_fn_t naf_addr_free; rpc_naf_addr_set_endpoint_fn_t naf_addr_set_endpoint; rpc_naf_addr_inq_endpoint_fn_t naf_addr_inq_endpoint; rpc_naf_addr_set_netaddr_fn_t naf_addr_set_netaddr; rpc_naf_addr_inq_netaddr_fn_t naf_add_inq_netaddr; rpc_naf_addr_set_options_fn_t naf_addr_set_options; rpc_naf_addr_inq_options_fn_t naf_addr_inq_options; rpc_naf_desc_inq_addr_fn_t naf_desc_inq_addr; rpc_naf_desc_inq_network_fn_t naf_desc_inq_network; rpc_naf_inq_max-tsdu_fn_t naf_inq_max_tsdu; rpc_naf_get_broadcast_fn_t naf_get_broadcast; rpc_naf_addr_compare_fn_t naf_addr_compare; rpc_naf_inq_pth_unfrg_tpdu_fn_t naf_inq_max_pth_unfrg_tpdu; rpc_naf_inq_loc_unfrg_tpdu_fn_t naf_inq_max_loc_unfrg_tpdu; rpc_naf_set_pkt_nodelay_fn_t naf_set_pkt_nodelay; rpc_naf_is_connect_closed_fn_t naf_is_connect_closed; rpc_naf_twr_flrs_from_addr_fn_t naf_tower_flrs_from_addr; rpc_naf_twr_flrs_to_addr_fn_t naf_tower_flrs_to_addr; rpc_naf_desc_inq_peer_addr_fn_t naf_desc_inq_peer_addr; }rpc_naf_epv_t, *rpc_naf_epv_p_t;
特定されたNAFのためのrpc_g_naf_id[]テーブルのエ
ントリにそれを付加する初期化ルーチンを持っている。
この時点から、「Unixネットワーク・アドレス・フ
ァミリィ」のすべての呼び出しは、これらのEPVを通
して行なわれる。「Unixネットワーク・アドレス・
ファミリィ」を実施するために、下記のルーチンを作成
しなければならない。
ルである。このファイルは、主として、「UnixのN
AF epv」ルーチンのためのプロトタイプを含んでい
る。加えて、このファイルは、「unixドメイン」R
PCアドレスの表示の定義を含んでいる。これは以下の
ように定義される。
時に、RPCアドレスは、疑似透明構造(rpc_addr_t)
として通過されるが、しかし、この構造がNAF特定ル
ーチンに通された時、この構造は使用するファミリィ用
のRPCアドレス構造に与えられる。unixストリー
ムの場合、この構造はrpc_unix_addr_tに与えられる。
部分は、AIXオペレーティング・システムにおける
「Unixドメイン」ソケット呼び出しに使用するため
のファイル名を作成するために使用されるデフォルト・
パス名である。これは、「オペレーティング・システ
ム」特定のものであり、OS/2に関しては必要としな
い。エンドポイントを作成する時に、若しエンドポイン
トが存在しないか、または使用されるエンドポイントが
フル・パス名を特定しなければ、デフォルト・パス名が
用いられる。デフォルト・パス名は下記のようにして定
義される。 #ifdefined(AIX_RROD) #define RPC_DEFAULT_UNIX_DOMAIN_PATH "_" /var/dce/rpc/socket" #endif
しては、「Unixドメイン」ソケット・ファイルは内
部的のみに使用される。ユーザが目視できるファイルは
作成されない。OS/2オペレーティング・システム
は、ソケット・ファイルに関連した管理的なタスク(即
ち、整理動作)を取り扱う。特別なパスを生成する必要
はない。
sys.c これは、作成しなければならない新しいファイルであ
る。このファイルは、「Unixドメイン・ネットワー
ク・アドレス・ファミリィ」に付属するような、RIO
Sプラットフォームに対してシステム特定のルーチンを
含んでいる。
スを得るために問い合せられたソケット記述子を受信す
る。若しこの情報が「Unixドメイン」アドレスに対
して有効ならば、ソケットから得られた情報によって初
期化されるRPCアドレス用のスペースが割り当てられ
る。作成されたRPCアドレスを表示したアドレスはrp
c_addr中に戻される。 PRIVATE void rpc_unix_desc_inq_addr(protseq_id,desc,rpc_addr_vec,statu s) rpc_protseq_id_t protseq_id; rpc_socket_t desc; rpc_addr_vector_p_t *rpc_addr_vec; unsigned 32 *status; { Simply do a "getsockname" into a local Unix Domain RPC address.(ローカル「Unixドメイン」RPCアドレスの中にソケッ ト名を単純に獲得せよ。) Allocate memory for the RPC address, and RPC address vector.(R PCアドレス及びRPCアドレス・ベクトル用のメモリを割り当てよ。) Fill in the RPC address structure with the protocol sequence id, and the Unix sockaddr structure.(RPCアドレス構造の中に、 プロトコル順序識別子及びUnixソケット・アドレス構造を満たせ。) Add the RPC address to the RPC address vector.(RPCアドレスを RPCアドレス・ベクトルに加えよ。) }
であり、NAF_epvの中にエントリがある。 PRIVATE void rpc_unix_get_broadcast(naf_id,protseq_id,rpc_addr_vec,sta tus) rpc_naf_id_t naf_id; rpc_protseq_id_t protseq_id; rpc_addr_vector_p_t *rpc_addr_vec; unsigned32 *status; { Do nothing. Set output parameters to NULL and return.(何もせず 。出力パラメータを「無効」にセットし、復帰せよ。) }
い。このファイルは宣言と、twr_unix.cファイルに特定
するプロトタイプとを含んでいる。現在、このファイル
だけが、ルーチンrpc_rpcd_is_running()のためのプロ
トタイプを含んでいる。
い。このファイルは、タワー表示からソケット・アドレ
スへの変換を行なうことと、ソケット・アドレスからタ
ワー表示への変換を行なうこととを特定するルーチンを
含んでいる。また、このファイルは、RPCランタイム
及びRPCDの両方によって使用されるユティリティ・
ルーチンを含んでいる。
2つの目的のために使用される。2つの目的とは(1)
RPCDのインスタンスが既に実行されているか否かを
決定するための初期化の間で、RPCDがこのルーチン
を使用する目的と、(2)ローカル・ホスト・コンピュ
ータ中のRPCDが実行されているか否かと、このプロ
シージャがncacn_unix_streamプロトコル順序をサポー
トするか否かとを決定するためにRPCランタイムがこ
のルーチンを使用する目的とである。
ポートするRPCDのインスタンスをチェックする。こ
れは、RPCDエンドポイント・ファイルの存在を検索
することによって行なわれる。若しこのファイルが存在
しなければ、RPCDは、Unixストリームのサポー
トによって実行されない。若しこのファイルが存在すれ
ば、このファイルは、RPCDインスタンスへの接続を
試みるために使用される。若し接続が不成功に終わった
ならば、RPCDはUnixストリームのサポートによ
って実行されない。このファイルは除去される。若し接
続が成功したならば、RPCDは実行される。このファ
イルは除去されない。 PRIVATE boolean32 rpc_rpcd_is_running(status) unsigned32 *status; { Check if the Unix Stream protocol sequence is supported. If not, return the error rpc_s_protseq_not_supported.(Unix ストリーム・プロトコル順序がサポートされているか否かをチェックせよ。若し サポートされていなければ、エラーrpc_s_protseq_not_supportedを戻せ。) Inspect the instance specification for the RPCD(ept_ v30_cifspec) and get the well-known endpoint for the Unix Stream protocol sequence.(RPCD(ept_v30_cifspec)のイ ンスタンス仕様を検査し、そしてUnixストリーム・プロトコル順序の公知の エンドポイントを獲得せよ。) The endpoint is used as a socket file for communicating to the RPCD. First, check if the file exists. If it does exist, then we expect it to be a file associated with a socket, and the fopen() should fail with the appropriate error. If it doesn't exist, then there is no rpcd running (at least with support for ncacn_unix_stream). So just return. Everything is OK.(そのエンドポイントはRPCDと通信するためのソケット・フ ァイルとして使用される。先ず、そのファイルが存在するか否かをチェックせよ 。若しそのファイルが存在すれば、そのファイルはソケットに関連されたファイ ルであると想定され、そしてfopen()は適当なエラーで不成功にされる。若しそ のファイルが存在しなければ、RPCD(少なくともncacn_unix_streamをサポ ートするRPCD)は実行されない。従って、戻るだけである。すべてOKであ る。) If this file can be opened, then it is NOT a socket file. Therefore remove it (i.e. it shouldn't be therein the first place) and return.(若しこのファイルがオープンできれば、そ れはソケット・ファイルではない。従って、それを除去し(即ち、最初の位置で はない)、そして戻れ。) If the file exists, and is a socket file, check if there is an RPCD actively using it. Do this via a socket()/connect() sequence.(若しこのファイルが存在し、ソケット・ファイルであれば 、それを積極的に使用するRPCDがあるか否かをチェックせよ。これを、sock et()/connect()順序を介して行なえ。) If no rpcd is running, we expect the connect call to fail. We check for the proper error, and flag the case where an unexpected error occurs.(若しRPCDが実行されていなければ、接 続呼び出しは不成功に終わると予測される。ユーザはエラーの適正をチェックし 、そして、予想外のエラーが発生した場合、フラグする。) If able to connect to the RPCD, return true. Otherwise, return false.(若しRPCDへの接続が成功したならば、真を戻せ。 RPCDへの接続が不成功ならば、偽を戻せ。) }
タワー参照子構造及びオクテット・ストリングの構造及
び検査に関する宣言を含んでいる。このファイルは下記
の付加的なラインを含ませるために変更される。 /* Protocol identifiers for each lower tower floor. */ #define twr_c_flr_prot_id_fname 0x20 /* Unix Domain filename */ #define twr_c_flr_prot_id_dummy 0x21 /* Dummy prot id for floor 5 */ /* Number of lower floors in Unix address family. */ #define twr_c_num_unix_lower_flrs 2 /* Number lower flrs in unix tower */ /* Unix family filename size */ #define twr_c_unix_frame_size 108
子はタワー・フロアを4個しか使用しないけれども、し
かし、第5のフロアが含まれており、これはデータを含
んでいない。これは、5個のフロアが「フル・タワー」
であると見做されるタワー・オクテット・ストリングを
検査するのに用いられるRPCランタイムのアルゴリズ
ムに原因がある。「Unixドメイン」はフル・タワー
であるけれども、タワーに関連するデータを持つフロア
は4個だけしかない。
ル・タワーのランタイム参照子表示に関して動作するル
ーチンを含んでいる。
d() このルーチンは変更される。このルーチンは、そのプロ
トコル順序のためのタワー参照子を作る上位フロア3及
び下位タワー・フロアのためのプロトコル識別子の組み
合せに対して使用可能なすべてのプロトコル順序のマッ
ピングを含む静的テーブルを含んでいる。このテーブル
は、ncacn_unix_streamプロトコル順序用のエントリの
付加を含ませるために変更されなければならない。 static_rpc_tower_prot_ids_t rpc_tower_prot_ids[rpc_c_protseq_id_max + 1] = { {rpc_c_protseq_id__ncacn_unix_stream,3, {{rpc_c_cn_proto_id,{0}}, {twr_c_flr_prot_id_fname,{0}}, {twr_c_flr_prot_id_dummy,{0}}, {0x00,{0}} } }, .../* other existing table elements */ };
ーバが来た時、ncacn_unix_streamを介する要求を聴取
するのに使用されるソケット・ファイルが存在するか否
かを、rpcdサーバがチェックするように、変更される必
要がある。若しソケット・ファイルが存在していれば、
そのソケット・ファイルは削除する必要がある。これ
は、ファイルが既に存在しているならば、ソケット・フ
ァイルは作成できないからである。
ポートが設定される前に、下記のコード付加されなけれ
ばならない。 ..../* database initialization */ .... if (rpc_rpcd_is_running(&status)) { fprintf(stderr, "(rpcd) Instance already running. Can't continue.?n"); exit(1); } if((status ! = rpc_s_ok) && (status ! = rpc_s_protseq_not_supported)) } fprintf(stderr, "(rpcd) Error checking for other rpcd instances.?n"); exit(1); } .... ..../* rest of rpcd setup */
ンrpc_rpcd_is_running()を含ませるために更新する必
要がある。これは、libdce.aの外側のルーチンまたはプ
ログラムがこのルーチンにアクセスできるようにするた
めである。rpcdがこのルーチンを呼び出すので、このル
ーチンが必要である。下記のラインをlibdce.-symsに付
加するだけでよい。 rpc_rpcd_is_running
ードがバインディング・ハンドルを獲得し及び/又はそ
のバインディング・ハンドルのエンドポイントを分析す
るための責任を持たないことを表示する。[auto_handl
e]の属性は、RPCランタイムがこれのすべてを操作す
ることを特定する。ユーザが特定するすべてのものは、
RPCランタイムがバインディング・ハンドルの検索を
開始するネーム・スペースのエントリ位置を特定するだ
けである。(これは、環境変数RPC_DEFAULT_ENTRYを介
して行なわれる。)クライアント及びサーバが同じホス
ト・コンピュータに存在する場合に、RPCランタイム
は、ncacn_unix_streamを使用するインテリジェンスを
持つ。
のユティリティの作成を必要とする。これらのユティリ
ィティは下記に説明されている。
network_inq_protseqs()を単に呼び出し、そして、呼び
出されたプロトコル順序のストリング・ベクトルを、1
行に1プロトコル順序づつ印刷する。このユティリティ
は、与えられたホスト・コンピュータに使用可能なプロ
トコル順序を決定するためのmkdceに対して使用され
る。1実施例において、サポートされたプロトコル順序
はmkdce記述子に配線される。また、この記述子は、与
えられたホスト・コンピュータにおいてサポートされた
プロトコル順序を決定するための管理用の迅速な方法に
使用することができる。このユティリティのためのコー
ドは以下の通りである。 *include <stdio.h> *include <dce/rpc.h> *include <dce/ecd_error.h> char message[dce_c_error_string_len]; main(unsigned32argc,unsigned_char_p_t argv[]) { rpc_protseq_vector_p_t psvp; unsigned32i,status=0,tmp_status=); rpc_network_inq_protseqs( &psvp, &status); if(status ! = rpc_s_ok) { dce_error_inq_text(status,message,&tmp_status); printf("%s: %s/n, argv[0], message); exist(1); } for (i = 0;i<psvp->count;i+ +) { printf("%s/n",psvp->protseq[i]); } }
twork_inq_protseqs()を単純に呼び出し、そして、呼び
出されたプロトコル順序のストリング・ベクトルを、1
行に1プロトコル順序づつ印刷する。このユティリティ
は、与えられたホスト・コンピュータに使用可能なプロ
トコル順序を決定するためのmkdceに対して使用され
る。1実施例において、サポートされたプロトコル順序
はmkdce記述子に配線される。また、この記述子は、与
えられたホスト・コンピュータにおいてサポートされた
プロトコル順序を決定するための管理用の迅速な方法に
使用することができる。このユティリティのためのコー
ドは以下の通りである。 #include <stdio.h> #include <dce/rpc.h> #include <dce/dce_error.h> char message[dce_c_error_string_len]; main(unsigned32 argc,unsigned_char_p_t argv[]) { rpc_protseq_vector_p_t psvp; unsigned32 i,status=0,tmp_status=0; rpc_network_inq_protseqs(&psvp,&status); if(status ! = rpc_s_ok) { dce_error_inq_text(status,message,&tmp_status); printf("%s; %s/n, argv[0], message); exit(1); } for (i = 0;i<psvp->count;i+ +) { printf("%s/n",psvp->protseq[i]); } }
CEをアップグレードすることができ、修正を施すこと
なく実行することができる。また、クライアント/サー
バ・アプリケーションが異なったホスト・コンピュータ
にあり、一方のアプリケーションがこの機能を使用し、
他方のアプリケーションがこの機能を使用しない場合で
も、修正することなく実行することができる。複数のコ
ンピュータに跨がって「Unixドメイン」を使用する
ことはできないので、上述のことは、互換性の問題では
なく、共存の問題である。
る。AIX及びOS/2プラットフォームの間を通信す
るクライアント/サーバ・アプリケーションは、この機
能の利益を享受することができないけれども、既存のア
プリケーションは、この機能を含ませるためにDCEを
アップグレードすることができ、そして修正することな
く実行することができる。
能であった範囲内で、プラットフォームに跨がってのみ
拡大する。この機能の範囲を越えたソースからの他の非
互換性の導入があるにも拘らず、勿論、互換性のすべて
のクレームがある。
ar/dce/rpc/socketが作成されなければならない。若し
このディレクトリが既に存在しているならば、そのディ
レクトリは消去され、再作成されねばならない。これ
は、DCE導入のアップグレードが起きた時、すべての
DCEアプリケーションが停止されるものと仮定され、
「Unixドメイン」ソケット・ファイルが作成される
場合、このディレクトリ中に残されたすべてのファイル
は古いファイルとなるからである。
性)に対する影響 この機能によってRASに及ぼす影響はない。
る影響 この機能によってNLSに及ぼす影響はない。
・コンピュータ中に存在する場合、10%乃至20%ま
での性能向上がある。クライアント及びサーバが異なっ
たホスト・コンピュータ中にある場合でも、性能は影響
されない。
バが登録する各「Unixドメイン」のエンドポイント
に対してソケット・ファイルが作成されるけれども、こ
のファイルは長さが0である。
ト・ファイルを除去するために、rpccleanユティリティ
(この明細書において既に説明されている)を実行する
ことができる。これは、ファイルシステム中に用いられ
ているiノードの数を減小する。
正しく動作することを保証するのに必要とする付加的な
テストケースまたはテスト構成を示した現用のRPC
FVTテスト計画の付属書を参照されたい。
ンピュータ、またはワークステーションのランダム・ア
クセス・メモリ中に常駐するコード・モジュール中のイ
ンストラクションの組として実行される。コンピュータ
・システムによって要求されるまで、インストラクショ
ンの組は、例えばハード・ディスク・ドライブ、または
オプティカル・ディスク(CD−ROM中に使用されて
いる)や、フロッピィ・ディスク(フロッピィ・デイス
ク・ドライブ中で使用されている)などの取り外し可能
なメモリなどの他のコンピュータ・メモリ中にストアす
ることができる。
システム及びネットワーク環境における良好な実施例に
ついて説明してきたが、本発明の技術思想の範囲内で、
本発明の実施例を他のオペレーティング・システム及び
ネットワーク・アーキテクチャによって変更し、または
置換することは当業者であれば容易に行なうことができ
るのは自明であろう。従って、例えば、DCE−RPC
アーキテクチャの術語において、クライアント・プロセ
スはサーバ・プロセスに「バインディング・ハンドル」
を渡す。然しながら、本発明はDCE−RPCアーキテ
クチャに限定して解釈されるべきではなく、従って、本
発明は、例えば、サーバ・プロセスの位置を特定し、そ
してクライアント及びサーバ・プロセスの間で使用され
る通信プロトコルを設定するデータ構造を、サーバ・プ
ロセスに通過することなどにより、クライアント・プロ
セスがローカル通信を獲得し、かつ設定する任意のネッ
トワーク環境をカバーするようなより包括的な観点から
解釈されるべきである。
の事項を開示する。
ト・プロセスとサーバ・プロセスの間の通信を管理する
方法であって、上記クライアント・プロセスは、トラン
スポート層及びネットワーク層を有する物理ネットワー
クに接続されたホスト・コンピュータ中に存在し、上記
方法は、(a) クライアント・プロセスによって行な
われた遠隔プロシージャ呼び出し(RPC)に応答し
て、該RPCによって識別されたサーバ・プロセスが上
記ホスト・コンピュータ中に存在するか否かを決定する
ステップを含み、上記RPCは、トランスポート層及び
ネットワーク層の使用を介した通信路を定義するプロト
コル順序を持ち、(b) 若し上記サーバ・プロセスが
上記ホスト・コンピュータ中に存在するならば、上記R
PCのプロトコル順序には関係なく、上記クライアント
・プロセスと上記サーバ・プロセスとの間にインタープ
ロセス通信路を設定するステップと、(c) 上記RP
Cのプロトコル順序を上記クライアント・プロセスに戻
すステップと、(d) 上記インタープロセス通信路を
介して上記遠隔プロシージャ呼び出しを実行するステッ
プと、を含む通信管理方法。 (2)上記プロトコル順序はRPCに影響を与えないで
使用されることを特徴とする(1)に記載の通信管理方
法。 (3)上記プロトコル順序は接続指向プロトコル順序で
あることを特徴とする(1)に記載の通信管理方法。 (4)上記プロトコル順序は非接続プロトコル順序であ
ることを特徴とする(1)に記載の通信の管理方法。 (5)上記遠隔プロシージャ呼び出しは、上記ホスト・
コンピュータのオペレーティング・システムのメッセー
ジ送受信機能を用いて実行されることを特徴とする
(1)に記載の通信管理方法。 (6)分散計算環境内におけるクライアント・プロセス
とサーバ・プロセスの間の通信を管理する方法であっ
て、上記クライアント・プロセスは、トランスポート層
及びネットワーク層を有する物理ネットワークに接続さ
れたホスト・コンピュータ中に存在し、上記方法は、
(a) 遠隔プロシージャ呼び出し(RPC)が上記ク
ライアント・プロセスによって行なわれた時、上記遠隔
プロシージャ呼び出しによって識別されたサーバ・プロ
セスが上記ホスト・コンピュータ中に存在しているか否
かを決定するステップと、(b) 若し上記サーバ・プ
ロセスが上記ホスト・コンピュータ中にあれば、トラン
スポート層及びネットワーク層の使用を介した通信路を
定義するプロトコル順序を含む第1データ構造を上記ク
ライアント・プロセスに戻すステップと、(c) 上記
第1データ構造を、上記クライアント・プロセス及び上
記サーバ・プロセス間のインタープロセス通信路を定義
するプロトコル順序を含む第2データ構造にマップする
ステップと、(d) 上記第2データ構造中のプロトコ
ル順序によって定義された上記インタープロセス通信路
を介して上記遠隔プロシージャ呼び出しを実行するステ
ップと、を含む通信管理方法。 (7)上記遠隔プロシージャ呼び出しは、上記ホスト・
コンピュータのオペレーティング・システムのメッセー
ジ送受信機能を用いて実行されることを特徴とする
(6)に記載の通信管理方法。 (8)上記第1データ構造のプロトコル順序は上記RP
Cに影響を与えることなく使用されることを特徴とする
(6)に記載の通信管理方法。 (9)上記第1データ構造のプロトコル順序は接続指向
プロトコル順序であることを特徴とする(6)に記載の
通信管理方法。 (10)上記第2データ構造のプロトコル順序はソケッ
ト・ファイルに対するフル・パス名を含んでいることを
特徴とする(9)に記載の通信管理方法。 (11)命名規則及びエンドポイントが上記パス名を決
定するのに用いられることを特徴とする(10)に記載
の通信管理方法。 (12)ホスト・コンピュータがUNIXベースのオペ
レーティング・システムをサポートしており、クライア
ント・プロセスがトランスポート層及びネットワーク層
を有する物理ネットワークに接続された上記ホスト・コ
ンピュータ中に常駐している分散計算環境内において、
上記クライアント・プロセスが遠隔プロシージャ呼び出
しを行なった時に、上記クライアント・プロセス及びサ
ーバ・プロセス間の通信を管理する方法であって、
(a) 若し上記サーバ・プロセスが上記ホスト・コン
ピュータ中に存在するならば、上記遠隔プロシージャ呼
び出しに通常関連しているプロトコル順序を持つバンイ
ンディング・ハンドルを上記クライアント・プロセスに
戻すステップと、(b) 上記遠隔プロシージャ呼び出
しに通常関連しているプロトコル順序を、上記クライア
ント・プロセス及び上記サーバ・プロセス間のインター
プロセス通信路を設定する代替プロトコル順序にマップ
するステップと、(c) 上記UNIXベースのオペレ
ーティング・システムのメッセージ送受信機能を用い
て、上記インタープロセス通信路を介して上記遠隔プロ
シージャ呼び出しを実行するステップと、を含む通信管
理方法。 (13)「ncacn」は接続指向RPCプロトコルであ
り、「unix」は「UNIXネットワーク・アドレス・フ
ァミリィ(AF_UNIX)通信ドメイン」を識別し、
「stream」はUNIXドメイン・ソケットを識別するも
のとした場合、上記遠隔プロシージャ呼び出しに関連し
たプロトコル順序は接続指向プロトコル「ncacn_ip_tc
p」であり、上記代替プロトコル順序は「ncacn_unix_st
ream」であることを特徴とする(12)に記載の通信管
理方法。 (14)「ncadg」は非接続RPCプロトコルであり、
「unix」は「UNIXネットワーク・アドレス・ファミ
リィ(AF_UNIX)通信ドメイン」を識別し、「dg
ram」はUNIXドメイン・ソケットを識別するものと
した場合、上記遠隔プロシージャ呼び出しに関連したプ
ロトコル順序は非接続指向プロトコル「ncacn_ip_udp」
であり、上記代替プロトコル順序は「ncadg_unix_dgra
m」であることを特徴とする(12)に記載の通信管理
方法。 (15)ホスト・コンピュータがインタープロセス通信
(IPC)機構を有し、かつ、ユーザが分散されたリソ
ース及びプロセス・アプリケーションにアクセスするこ
とのできる分散計算環境を与えるローカル・エリア・ネ
ットワークであって、クライアント・プロセスからの遠
隔プロシージャ呼び出し(RPC)に応答して、該RP
Cによって識別されたサーバ・プロセスが上記ホスト・
コンピュータ中にあるか否かを検出する検出手段と、該
検出手段に応答して、予期されたプロトコル順序を上記
クライアント・プロセスに戻し、かつ、上記RPCを助
長するために代替プロトコル順序を用いる手段を含み、
上記代替プロトコル順序はIPC構造を通る通信路を設
定することと、を含むローカル・エリア・ネットワー
ク。 (16)ユーザが分散されたリソース及びプロセス・ア
プリケーションにアクセスすることのできる分散計算環
境を与え、かつ、トランスポート層及びネットワーク層
を有するローカル・エリア・ネットワークに接続された
ホスト・コンピュータを含むコンピュータ・システムで
あって、クライアント・プロセスからの遠隔プロシージ
ャ呼び出し(RPC)に応答して、該RPCによって識
別されたサーバ・プロセスが上記ホスト・コンピュータ
中にあるか否かを検出する検出手段と、該検出手段に応
答して、予期されたプロトコル順序を上記クライアント
・プロセスに戻し、かつ、上記RPCを助長するために
代替プロトコル順序を用いる手段を含み、上記代替プロ
トコル順序の使用は上記クライアント・プロセスに影響
を与えないことと、を含むコンピュータ・システム。 (17)ホスト・コンピュータによって読み取り可能で
あり、かつ、上記ホスト・コンピュータで実行されるク
ライアント・プロセスからの通信を管理する方法を実施
するための、該ホスト・コンピュータによって実行可能
な命令からなるプログラムを具現化するプログラム記憶
装置であって、上記ホスト・コンピュータはトランスポ
ート層及びネットワーク層を有するローカル・エリア・
ネットワークに接続されており、上記方法は、(a)
遠隔プロシージャ呼び出しが上記クライアント・プロセ
スによって行なわれた時、上記遠隔プロシージャ呼び出
しによって識別されたサーバ・プロセスが上記ホスト・
コンピュータ中にあるか否かを検出するステップと、
(b) 若し上記サーバ・プロセスが上記ホスト・コン
ピュータ中にあるならば、上記トランスポート層及びネ
ットワーク層の使用を介した通信路を定義するプロトコ
ル順序を含む第1データ構造を上記クライアント・プロ
セスに戻すステップと、(c) 上記第1データ構造
を、上記クライアント・プロセス及び上記サーバ・プロ
セス間のインタープロセス通信路を定義するプロトコル
順序を含む第2データ構造にマップするステップと、
(d) 上記第2データ構造のプロトコル順序によって
定義された上記インタープロセス通信路を介して上記遠
隔プロシージャ呼び出しを実行するステップと、を含む
プログラム記憶装置。
クを説明するための図である。
ンスポート層を使用した従来のRPCを説明するための
図である。
C構造を用いて遂行された本発明の実施例を説明するた
めの図である。
めのプロシージャを最適化するための本発明の実施例を
説明するための図である。
Claims (17)
- 【請求項1】 分散計算環境内におけるクライアント・
プロセスとサーバ・プロセスの間の通信を管理する方法
であって、上記クライアント・プロセスは、トランスポ
ート層及びネットワーク層を有する物理ネットワークに
接続されたホスト・コンピュータ中に存在し、上記方法
は、 (a) クライアント・プロセスによって行なわれた遠
隔プロシージャ呼び出し(RPC)に応答して、該RP
Cによって識別されたサーバ・プロセスが上記ホスト・
コンピュータ中に存在するか否かを決定するステップを
含み、上記RPCは、トランスポート層及びネットワー
ク層の使用を介した通信路を定義するプロトコル順序を
持ち、 (b) 若し上記サーバ・プロセスが上記ホスト・コン
ピュータ中に存在するならば、上記RPCのプロトコル
順序には関係なく、上記クライアント・プロセスと上記
サーバ・プロセスとの間にインタープロセス通信路を設
定するステップと、 (c) 上記RPCのプロトコル順序を上記クライアン
ト・プロセスに戻すステップと、 (d) 上記インタープロセス通信路を介して上記遠隔
プロシージャ呼び出しを実行するステップと、 を含む通信管理方法。 - 【請求項2】 上記プロトコル順序はRPCに影響を与
えないで使用されることを特徴とする請求項1に記載の
通信管理方法。 - 【請求項3】 上記プロトコル順序は接続指向プロトコ
ル順序であることを特徴とする請求項1に記載の通信管
理方法。 - 【請求項4】 上記プロトコル順序は非接続プロトコル
順序であることを特徴とする請求項1に記載の通信の管
理方法。 - 【請求項5】 上記遠隔プロシージャ呼び出しは、上記
ホスト・コンピュータのオペレーティング・システムの
メッセージ送受信機能を用いて実行されることを特徴と
する請求項1に記載の通信管理方法。 - 【請求項6】 分散計算環境内におけるクライアント・
プロセスとサーバ・プロセスの間の通信を管理する方法
であって、上記クライアント・プロセスは、トランスポ
ート層及びネットワーク層を有する物理ネットワークに
接続されたホスト・コンピュータ中に存在し、上記方法
は、 (a) 遠隔プロシージャ呼び出し(RPC)が上記ク
ライアント・プロセスによって行なわれた時、上記遠隔
プロシージャ呼び出しによって識別されたサーバ・プロ
セスが上記ホスト・コンピュータ中に存在しているか否
かを決定するステップと、 (b) 若し上記サーバ・プロセスが上記ホスト・コン
ピュータ中にあれば、トランスポート層及びネットワー
ク層の使用を介した通信路を定義するプロトコル順序を
含む第1データ構造を上記クライアント・プロセスに戻
すステップと、 (c) 上記第1データ構造を、上記クライアント・プ
ロセス及び上記サーバ・プロセス間のインタープロセス
通信路を定義するプロトコル順序を含む第2データ構造
にマップするステップと、 (d) 上記第2データ構造中のプロトコル順序によっ
て定義された上記インタープロセス通信路を介して上記
遠隔プロシージャ呼び出しを実行するステップと、 を含む通信管理方法。 - 【請求項7】 上記遠隔プロシージャ呼び出しは、上記
ホスト・コンピュータのオペレーティング・システムの
メッセージ送受信機能を用いて実行されることを特徴と
する請求項6に記載の通信管理方法。 - 【請求項8】 上記第1データ構造のプロトコル順序は
上記RPCに影響を与えることなく使用されることを特
徴とする請求項6に記載の通信管理方法。 - 【請求項9】 上記第1データ構造のプロトコル順序は
接続指向プロトコル順序であることを特徴とする請求項
6に記載の通信管理方法。 - 【請求項10】 上記第2データ構造のプロトコル順序
はソケット・ファイルに対するフル・パス名を含んでい
ることを特徴とする請求項9に記載の通信管理方法。 - 【請求項11】 命名規則及びエンドポイントが上記パ
ス名を決定するのに用いられることを特徴とする請求項
10に記載の通信管理方法。 - 【請求項12】 ホスト・コンピュータがUNIXベー
スのオペレーティング・システムをサポートしており、
クライアント・プロセスがトランスポート層及びネット
ワーク層を有する物理ネットワークに接続された上記ホ
スト・コンピュータ中に常駐している分散計算環境内に
おいて、上記クライアント・プロセスが遠隔プロシージ
ャ呼び出しを行なった時に、上記クライアント・プロセ
ス及びサーバ・プロセス間の通信を管理する方法であっ
て、 (a) 若し上記サーバ・プロセスが上記ホスト・コン
ピュータ中に存在するならば、上記遠隔プロシージャ呼
び出しに通常関連しているプロトコル順序を持つバンイ
ンディング・ハンドルを上記クライアント・プロセスに
戻すステップと、 (b) 上記遠隔プロシージャ呼び出しに通常関連して
いるプロトコル順序を、上記クライアント・プロセス及
び上記サーバ・プロセス間のインタープロセス通信路を
設定する代替プロトコル順序にマップするステップと、 (c) 上記UNIXベースのオペレーティング・シス
テムのメッセージ送受信機能を用いて、上記インタープ
ロセス通信路を介して上記遠隔プロシージャ呼び出しを
実行するステップと、 を含む通信管理方法。 - 【請求項13】 「ncacn」は接続指向RPCプロトコ
ルであり、「unix」は「UNIXネットワーク・アドレ
ス・ファミリィ(AF_UNIX)通信ドメイン」を識
別し、「stream」はUNIXドメイン・ソケットを識別
するものとした場合、上記遠隔プロシージャ呼び出しに
関連したプロトコル順序は接続指向プロトコル「ncacn_
ip_tcp」であり、上記代替プロトコル順序は「ncacn_un
ix_stream」であることを特徴とする請求項12に記載
の通信管理方法。 - 【請求項14】 「ncadg」は非接続RPCプロトコル
であり、「unix」は「UNIXネットワーク・アドレス
・ファミリィ(AF_UNIX)通信ドメイン」を識別
し、「dgram」はUNIXドメイン・ソケットを識別す
るものとした場合、上記遠隔プロシージャ呼び出しに関
連したプロトコル順序は非接続指向プロトコル「ncacn_
ip_udp」であり、上記代替プロトコル順序は「ncadg_un
ix_dgram」であることを特徴とする請求項12に記載の
通信管理方法。 - 【請求項15】 ホスト・コンピュータがインタープロ
セス通信(IPC)機構を有し、かつ、ユーザが分散さ
れたリソース及びプロセス・アプリケーションにアクセ
スすることのできる分散計算環境を与えるローカル・エ
リア・ネットワークであって、 クライアント・プロセスからの遠隔プロシージャ呼び出
し(RPC)に応答して、該RPCによって識別された
サーバ・プロセスが上記ホスト・コンピュータ中にある
か否かを検出する検出手段と、 該検出手段に応答して、予期されたプロトコル順序を上
記クライアント・プロセスに戻し、かつ、上記RPCを
助長するために代替プロトコル順序を用いる手段を含
み、上記代替プロトコル順序はIPC構造を通る通信路
を設定することと、 を含むローカル・エリア・ネットワーク。 - 【請求項16】 ユーザが分散されたリソース及びプロ
セス・アプリケーションにアクセスすることのできる分
散計算環境を与え、かつ、トランスポート層及びネット
ワーク層を有するローカル・エリア・ネットワークに接
続されたホスト・コンピュータを含むコンピュータ・シ
ステムであって、 クライアント・プロセスからの遠隔プロシージャ呼び出
し(RPC)に応答して、該RPCによって識別された
サーバ・プロセスが上記ホスト・コンピュータ中にある
か否かを検出する検出手段と、 該検出手段に応答して、予期されたプロトコル順序を上
記クライアント・プロセスに戻し、かつ、上記RPCを
助長するために代替プロトコル順序を用いる手段を含
み、上記代替プロトコル順序の使用は上記クライアント
・プロセスに影響を与えないことと、 を含むコンピュータ・システム。 - 【請求項17】 ホスト・コンピュータによって読み取
り可能であり、かつ、上記ホスト・コンピュータで実行
されるクライアント・プロセスからの通信を管理する方
法を実施するための、該ホスト・コンピュータによって
実行可能な命令からなるプログラムを具現化するプログ
ラム記憶装置であって、上記ホスト・コンピュータはト
ランスポート層及びネットワーク層を有するローカル・
エリア・ネットワークに接続されており、上記方法は、 (a) 遠隔プロシージャ呼び出しが上記クライアント
・プロセスによって行なわれた時、上記遠隔プロシージ
ャ呼び出しによって識別されたサーバ・プロセスが上記
ホスト・コンピュータ中にあるか否かを検出するステッ
プと、 (b) 若し上記サーバ・プロセスが上記ホスト・コン
ピュータ中にあるならば、上記トランスポート層及びネ
ットワーク層の使用を介した通信路を定義するプロトコ
ル順序を含む第1データ構造を上記クライアント・プロ
セスに戻すステップと、 (c) 上記第1データ構造を、上記クライアント・プ
ロセス及び上記サーバ・プロセス間のインタープロセス
通信路を定義するプロトコル順序を含む第2データ構造
にマップするステップと、 (d) 上記第2データ構造のプロトコル順序によって
定義された上記インタープロセス通信路を介して上記遠
隔プロシージャ呼び出しを実行するステップと、を含む
プログラム記憶装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/526833 | 1995-09-12 | ||
US08/526,833 US5682534A (en) | 1995-09-12 | 1995-09-12 | Transparent local RPC optimization |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09160856A true JPH09160856A (ja) | 1997-06-20 |
JP3962112B2 JP3962112B2 (ja) | 2007-08-22 |
Family
ID=24098997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP19202896A Expired - Fee Related JP3962112B2 (ja) | 1995-09-12 | 1996-07-22 | 通信管理方法及びコンピュータ・システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US5682534A (ja) |
JP (1) | JP3962112B2 (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003177930A (ja) * | 2001-09-04 | 2003-06-27 | Samsung Electronics Co Ltd | プロセス間通信方法及び装置 |
JP2005506629A (ja) * | 2001-10-24 | 2005-03-03 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 効率的な通信方法及びシステム |
JP2010237977A (ja) * | 2009-03-31 | 2010-10-21 | Fujitsu Ltd | マルチプロセッサ及び制御プログラム |
US8656120B2 (en) | 2009-09-21 | 2014-02-18 | Samsung Electronics Co., Ltd. | Device, method and computer-readable medium relocating remote procedure call data in heterogeneous multiprocessor system on chip |
JP2014186473A (ja) * | 2013-03-22 | 2014-10-02 | Fuji Xerox Co Ltd | プログラム及び装置 |
JP2020042809A (ja) * | 2018-08-31 | 2020-03-19 | サブコム,エルエルシー | ウェブサービスとインターフェース記述言語(idl)ベースのリモートプロシージャコール(rpc)サービスとの間をインターフェースするための技術及びそれを実施する光通信システム |
WO2024053733A1 (ja) * | 2022-09-09 | 2024-03-14 | コネクトフリー株式会社 | 情報処理装置、仮想サービス提供プログラムおよび通信方法 |
Families Citing this family (156)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6718399B1 (en) * | 1993-05-21 | 2004-04-06 | Candle Distributed Solutions, Inc. | Communications on a network |
US6418324B1 (en) | 1995-06-01 | 2002-07-09 | Padcom, Incorporated | Apparatus and method for transparent wireless communication between a remote device and host system |
US6782538B1 (en) * | 1995-12-14 | 2004-08-24 | International Business Machines Corporation | Object oriented information handling system including an extensible instance manager |
US6128647A (en) | 1996-04-05 | 2000-10-03 | Haury; Harry R. | Self configuring peer to peer inter process messaging system |
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 |
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 |
US6446070B1 (en) | 1998-02-26 | 2002-09-03 | Sun Microsystems, Inc. | Method and apparatus for dynamic distributed computing over a network |
US6185611B1 (en) * | 1998-03-20 | 2001-02-06 | Sun Microsystem, Inc. | Dynamic lookup service in a distributed system |
US6625641B1 (en) * | 1996-06-03 | 2003-09-23 | Sun Microsystems, Inc. | Method and apparatus for providing client support without installation of server software |
US6718550B1 (en) * | 1996-06-26 | 2004-04-06 | Sun Microsystems, Inc. | Method and apparatus for improving the performance of object invocation |
US6266709B1 (en) | 1996-07-01 | 2001-07-24 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server failure reporting process |
US5999972A (en) | 1996-07-01 | 1999-12-07 | Sun Microsystems, Inc. | System, method and article of manufacture for a distributed computer system framework |
US5987245A (en) | 1996-07-01 | 1999-11-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework |
US6038590A (en) | 1996-07-01 | 2000-03-14 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system |
US6304893B1 (en) | 1996-07-01 | 2001-10-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system |
US6424991B1 (en) | 1996-07-01 | 2002-07-23 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server communication framework |
US6272555B1 (en) | 1996-07-01 | 2001-08-07 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system |
US6052711A (en) * | 1996-07-01 | 2000-04-18 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server session web access in an interprise computing framework system. |
US6233620B1 (en) * | 1996-07-02 | 2001-05-15 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a presentation engine in an interprise computing framework system |
US5848246A (en) | 1996-07-01 | 1998-12-08 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system |
US5857191A (en) * | 1996-07-08 | 1999-01-05 | Gradient Technologies, Inc. | Web application server with secure common gateway interface |
US5935211A (en) * | 1996-07-10 | 1999-08-10 | Microsoft Corporation | Distributed notification |
US6212578B1 (en) * | 1996-09-09 | 2001-04-03 | Oracle Corporation | Method and apparatus for managing dependencies in a distributed computing environment for ensuring the safety of remote procedure calls |
US6687762B1 (en) * | 1996-10-10 | 2004-02-03 | Hewlett-Packard Development Company, L.P. | Network operating system adapted for simultaneous use by different operating systems |
US5832529A (en) | 1996-10-11 | 1998-11-03 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection |
US6208952B1 (en) * | 1996-10-24 | 2001-03-27 | Microsoft Corporation | Method and system for delayed registration of protocols |
WO1998025376A2 (en) * | 1996-12-02 | 1998-06-11 | First Data Corporation | Method and apparatus for improved transaction processing in a distributed computing environment |
US6363433B1 (en) * | 1997-03-12 | 2002-03-26 | Microsoft Corporation | Method and mechanism for client-side handling of extensions originally written for servers |
US6088728A (en) * | 1997-06-11 | 2000-07-11 | Oracle Corporation | System using session data stored in session data storage for associating and disassociating user identifiers for switching client sessions in a server |
US6243751B1 (en) * | 1997-06-11 | 2001-06-05 | Oracle Corporation | Method and apparatus for coupling clients to servers |
US6065045A (en) * | 1997-07-03 | 2000-05-16 | Tandem Computers Incorporated | Method and apparatus for object reference processing |
US6157959A (en) * | 1997-07-03 | 2000-12-05 | Tandem Computers, Incorporated | Method and apparatus for providing portable kernel-mode support for fast interprocess communication |
US6253253B1 (en) * | 1997-08-25 | 2001-06-26 | International Business Machines Corporation | Method and apparatus for optimizing references to objects in a data processing system |
US6434620B1 (en) | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
US8621101B1 (en) | 2000-09-29 | 2013-12-31 | Alacritech, Inc. | Intelligent network storage interface device |
US8539112B2 (en) | 1997-10-14 | 2013-09-17 | Alacritech, Inc. | TCP/IP offload device |
US7167927B2 (en) * | 1997-10-14 | 2007-01-23 | Alacritech, Inc. | TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism |
US7237036B2 (en) | 1997-10-14 | 2007-06-26 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding a TCP connection |
US7185266B2 (en) | 2003-02-12 | 2007-02-27 | Alacritech, Inc. | Network interface device for error detection using partial CRCS of variable length message portions |
US6658480B2 (en) | 1997-10-14 | 2003-12-02 | Alacritech, Inc. | Intelligent network interface system and method for accelerated protocol processing |
US8782199B2 (en) | 1997-10-14 | 2014-07-15 | A-Tech Llc | Parsing a packet header |
US6226680B1 (en) | 1997-10-14 | 2001-05-01 | Alacritech, Inc. | Intelligent network interface system method for protocol processing |
US6697868B2 (en) | 2000-02-28 | 2004-02-24 | Alacritech, Inc. | Protocol processing stack for use with intelligent network interface device |
US7133940B2 (en) | 1997-10-14 | 2006-11-07 | Alacritech, Inc. | Network interface device employing a DMA command queue |
US7174393B2 (en) * | 2000-12-26 | 2007-02-06 | Alacritech, Inc. | TCP/IP offload network interface device |
US6687758B2 (en) | 2001-03-07 | 2004-02-03 | Alacritech, Inc. | Port aggregation for network connections that are offloaded to network interface devices |
US6757746B2 (en) | 1997-10-14 | 2004-06-29 | Alacritech, Inc. | Obtaining a destination address so that a network interface device can write network data without headers directly into host memory |
US6249803B1 (en) | 1997-12-18 | 2001-06-19 | Sun Microsystems, Inc. | Method and apparatus for executing code during method invocation |
US6510460B1 (en) | 1997-12-18 | 2003-01-21 | Sun Microsystems, Inc. | Method and apparatus for enforcing locking invariants in multi-threaded systems |
US6516354B2 (en) | 1997-12-18 | 2003-02-04 | Sun Microsystems, Inc. | Method and apparatus for efficient representation of variable length identifiers in a distributed object system |
AU2680399A (en) * | 1998-02-26 | 1999-09-15 | Sun Microsystems, Inc. | Apparatus and method for dynamically verifying information in a distributed system |
US6026414A (en) * | 1998-03-05 | 2000-02-15 | International Business Machines Corporation | System including a proxy client to backup files in a distributed computing environment |
US20020046228A1 (en) * | 1998-03-20 | 2002-04-18 | Sun Microsystems, Inc. | Method and system for facilitating access to a lookup service |
US6185695B1 (en) | 1998-04-09 | 2001-02-06 | Sun Microsystems, Inc. | Method and apparatus for transparent server failover for highly available objects |
US6694366B1 (en) | 1998-04-29 | 2004-02-17 | Symbol Technologies, Inc. | Data reconciliation between a computer and a mobile data collection terminal |
US6826571B1 (en) | 1998-05-22 | 2004-11-30 | International Business Machines Corporation | Method and apparatus for dynamically customizing and extending functions of a server program to enable and restrict functions of the server |
US6366916B1 (en) | 1998-05-22 | 2002-04-02 | International Business Machines Corporation | Configurable and extensible system for deploying asset management functions to client applications |
US6912561B1 (en) | 1998-05-22 | 2005-06-28 | International Business Machines Corporation | Method and apparatus for using classes, encapsulating data with its behaviors, for transferring between databases and client applications and for enabling applications to adapt to specific constraints of the data |
US6917939B1 (en) | 1998-05-22 | 2005-07-12 | International Business Machines Corporation | Method and apparatus for configurable mapping between data stores and data structures and a generalized client data model using heterogeneous, specialized storage |
EP0973094B1 (en) * | 1998-05-29 | 2002-04-24 | Sun Microsystems, Inc. | Fast invocations for local highly available objects |
US6237053B1 (en) | 1998-06-30 | 2001-05-22 | Symbol Technologies, Inc. | Configurable operating system having multiple data conversion applications for I/O connectivity |
US6826756B1 (en) | 1998-06-30 | 2004-11-30 | Symbol Technologies, Inc. | Automatic transfer of data from an input device to a software application |
US7664883B2 (en) | 1998-08-28 | 2010-02-16 | Alacritech, Inc. | Network interface device that fast-path processes solicited session layer read commands |
JP2000099332A (ja) | 1998-09-25 | 2000-04-07 | Hitachi Ltd | 遠隔手続き呼び出し最適化方法とこれを用いたプログラム実行方法 |
US6675203B1 (en) | 1998-10-05 | 2004-01-06 | Symbol Technologies, Inc. | Collecting data in a batch mode in a wireless communications network with impeded communication |
US7206849B1 (en) | 1998-10-05 | 2007-04-17 | Symbol Technologies, Inc. | Communication in a wireless communications network when a mobile computer terminal may be unreachable |
US7293107B1 (en) | 1998-10-09 | 2007-11-06 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US8078727B2 (en) | 1998-10-09 | 2011-12-13 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US7136645B2 (en) | 1998-10-09 | 2006-11-14 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US6546425B1 (en) | 1998-10-09 | 2003-04-08 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US7778260B2 (en) | 1998-10-09 | 2010-08-17 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US8060656B2 (en) | 1998-10-09 | 2011-11-15 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
EP1681827A1 (en) * | 1998-10-16 | 2006-07-19 | Auspice, Inc. | Enterprise level integration and communication techniques |
AU769359B2 (en) * | 1998-10-16 | 2004-01-22 | Auspice, Inc. | Enterprise level integration and communication techniques |
US6519636B2 (en) * | 1998-10-28 | 2003-02-11 | International Business Machines Corporation | Efficient classification, manipulation, and control of network transmissions by associating network flows with rule based functions |
US9239763B2 (en) | 2012-09-28 | 2016-01-19 | Oracle International Corporation | Container database |
US6665304B2 (en) * | 1998-12-31 | 2003-12-16 | Hewlett-Packard Development Company, L.P. | Method and apparatus for providing an integrated cluster alias address |
US6920475B1 (en) * | 1999-04-23 | 2005-07-19 | Oracle International Corporation | Communication architecture for distributed computing environment |
US7882247B2 (en) | 1999-06-11 | 2011-02-01 | Netmotion Wireless, Inc. | Method and apparatus for providing secure connectivity in mobile and other intermittent computing environments |
WO2001025894A1 (en) * | 1999-10-05 | 2001-04-12 | Ejasent Inc. | Snapshot virtual-templating |
US6526433B1 (en) * | 1999-12-15 | 2003-02-25 | International Business Machines Corporation | Adaptive timeout value setting for distributed computing environment (DCE) applications |
US7331058B1 (en) | 1999-12-16 | 2008-02-12 | International Business Machines Corporation | Distributed data structures for authorization and access control for computing resources |
US6728788B1 (en) | 1999-12-16 | 2004-04-27 | International Business Machines Corporation | Method and system for converting a remote procedure call to a local procedure call when the service is on the same device as the calling client |
US6915525B2 (en) * | 2000-04-14 | 2005-07-05 | Sony Corporation | Method and apparatus for controlling set-top box hardware and software functions |
US6934933B2 (en) * | 2000-08-14 | 2005-08-23 | Twin Communications Of America, Inc. | Portable operating environment for information devices |
US20020095528A1 (en) * | 2000-09-29 | 2002-07-18 | International Business Machines Corporation | Method and system for operating a client in a client/server system |
US8019901B2 (en) | 2000-09-29 | 2011-09-13 | Alacritech, Inc. | Intelligent network storage interface system |
US20020091826A1 (en) * | 2000-10-13 | 2002-07-11 | Guillaume Comeau | Method and apparatus for interprocessor communication and peripheral sharing |
US7039717B2 (en) | 2000-11-10 | 2006-05-02 | Nvidia Corporation | Internet modem streaming socket method |
US20020112181A1 (en) * | 2000-12-12 | 2002-08-15 | Smith Mark Elwin | Multilevel secure network access system |
US7051108B1 (en) * | 2000-12-21 | 2006-05-23 | Emc Corporation | Method and system of interprocess communications |
US7047536B1 (en) * | 2000-12-29 | 2006-05-16 | Nortel Networks Ltd | Method and apparatus for classifying remote procedure call transport traffic |
US7296275B2 (en) | 2001-01-04 | 2007-11-13 | Sun Microsystems, Inc. | Method and system for passing objects in a distributed system using serialization contexts |
US6986147B2 (en) | 2001-03-28 | 2006-01-10 | International Business Machines Corporation | Method for transparent, location-independent, remote procedure calls in a heterogeneous network environment |
US7028313B2 (en) * | 2001-03-28 | 2006-04-11 | International Business Machines Corporation | Method for transmitting function parameters to a remote node for execution of the function thereon |
US20050198379A1 (en) | 2001-06-13 | 2005-09-08 | Citrix Systems, Inc. | Automatically reconnecting a client across reliable and persistent communication sessions |
US7562146B2 (en) | 2003-10-10 | 2009-07-14 | Citrix Systems, Inc. | Encapsulating protocol for session persistence and reliability |
US7219161B1 (en) * | 2001-08-29 | 2007-05-15 | Cisco Technology, Inc. | Techniques for network address and port translation for network protocols that do not use translated ports when requesting network resources |
US7131004B1 (en) * | 2001-08-31 | 2006-10-31 | Silicon Image, Inc. | Method and apparatus for encrypting data transmitted over a serial link |
EP1296239A3 (en) * | 2001-09-04 | 2004-05-19 | Samsung Electronics Co., Ltd. | Interprocess communication method and apparatus |
US7263701B2 (en) | 2001-09-04 | 2007-08-28 | Samsung Electronics Co., Ltd. | Interprocess communication method and apparatus |
US7756969B1 (en) | 2001-09-07 | 2010-07-13 | Oracle America, Inc. | Dynamic provisioning of identification services in a distributed system |
US7660887B2 (en) | 2001-09-07 | 2010-02-09 | Sun Microsystems, Inc. | Systems and methods for providing dynamic quality of service for a distributed system |
US20030051029A1 (en) | 2001-09-07 | 2003-03-13 | Reedy Dennis G. | Dynamic provisioning of sevice components in a distributed system |
US7406693B1 (en) * | 2001-09-10 | 2008-07-29 | Ncr Corporation | Method of controlling applications |
US7644171B2 (en) | 2001-09-12 | 2010-01-05 | Netmotion Wireless, Inc. | Mobile networking system and method using IPv4 and IPv6 |
US6811085B2 (en) | 2001-10-26 | 2004-11-02 | Symbol Technologies, Inc. | Miniature imager |
US7661129B2 (en) | 2002-02-26 | 2010-02-09 | Citrix Systems, Inc. | Secure traversal of network components |
US7984157B2 (en) | 2002-02-26 | 2011-07-19 | Citrix Systems, Inc. | Persistent and reliable session securely traversing network components using an encapsulating protocol |
US7496689B2 (en) | 2002-04-22 | 2009-02-24 | Alacritech, Inc. | TCP/IP offload device |
US7543087B2 (en) | 2002-04-22 | 2009-06-02 | Alacritech, Inc. | Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device |
US7945636B2 (en) * | 2002-05-15 | 2011-05-17 | In-Store Broadcasting Network, Llc | Providing a multi-tier enterprise level application |
US7337241B2 (en) | 2002-09-27 | 2008-02-26 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
US20040268362A1 (en) * | 2003-06-25 | 2004-12-30 | International Business Machines Corporation | Method, apparatus and program storage device for providing a two-step communication scheme |
US7472398B2 (en) * | 2003-11-17 | 2008-12-30 | Hewlett-Packard Development Company, L.P. | Method and system for hosting an application with a facade server |
US7792874B1 (en) | 2004-01-30 | 2010-09-07 | Oracle America, Inc. | Dynamic provisioning for filtering and consolidating events |
US7502824B2 (en) * | 2004-08-12 | 2009-03-10 | Oracle International Corporation | Database shutdown with session migration |
US7415470B2 (en) * | 2004-08-12 | 2008-08-19 | Oracle International Corporation | Capturing and re-creating the state of a queue when migrating a session |
EP1810160A4 (en) * | 2004-09-22 | 2008-05-21 | Xyratex Tech Ltd | INTERCONTROLLER INTERPROCESSOR COMMUNICATION IN XML / SOAP PROTOCOL |
JP2006127461A (ja) * | 2004-09-29 | 2006-05-18 | Sony Corp | 情報処理装置、通信処理方法、並びにコンピュータ・プログラム |
US8248939B1 (en) | 2004-10-08 | 2012-08-21 | Alacritech, Inc. | Transferring control of TCP connections between hierarchy of processing mechanisms |
DE102004062116B3 (de) * | 2004-12-23 | 2006-05-11 | Ab Skf | Lageranordnung für einen Computertomographen |
US7366734B2 (en) * | 2004-12-25 | 2008-04-29 | Oracle International Corporation | Enabling client systems to discover services accessible by remote procedure calls (RPC) on server systems |
US9176772B2 (en) * | 2005-02-11 | 2015-11-03 | Oracle International Corporation | Suspending and resuming of sessions |
US8332485B1 (en) | 2005-03-04 | 2012-12-11 | Cisco Technology, Inc. | Lock optimization and lock prediction approaches for reducing client-server messages |
US7853962B1 (en) * | 2005-05-31 | 2010-12-14 | Cisco Technology, Inc. | Method and apparatus for optimization of remote procedure call communications |
US20070027877A1 (en) * | 2005-07-29 | 2007-02-01 | Droshev Mladen I | System and method for improving the efficiency of remote method invocations within a multi-tiered enterprise network |
US9606846B2 (en) * | 2005-07-29 | 2017-03-28 | Sap Se | System and method for dynamic proxy generation |
US10805275B1 (en) * | 2005-08-23 | 2020-10-13 | Trend Micro Incorporated | Multi-process architecture for implementing a secure internet service |
US7716307B1 (en) | 2005-10-21 | 2010-05-11 | Cisco Technology, Inc. | Method and apparatus for reducing client-server messages associated with opening a file |
US7636767B2 (en) * | 2005-11-29 | 2009-12-22 | Cisco Technology, Inc. | Method and apparatus for reducing network traffic over low bandwidth links |
US7738500B1 (en) | 2005-12-14 | 2010-06-15 | Alacritech, Inc. | TCP timestamp synchronization for network connections that are offloaded to network interface devices |
US20070168509A1 (en) * | 2005-12-30 | 2007-07-19 | Droshev Mladen I | System and method for remote loading of classes |
US8032900B2 (en) * | 2006-08-02 | 2011-10-04 | Microsoft Corporation | Conducting client-server inter-process communication |
US20080155103A1 (en) * | 2006-12-21 | 2008-06-26 | Kimberly Tekavec Bailey | AF UNIX Socket Across Systems in the Same Computer on Computer Systems that Support Multiple Operating System Images |
US10120733B2 (en) * | 2007-08-30 | 2018-11-06 | Red Hat, Inc. | Remote procedure call supporting multiple versions |
US20090064208A1 (en) * | 2007-08-30 | 2009-03-05 | Thomas Mitchell Elrod | SSL socket builder |
US8539513B1 (en) | 2008-04-01 | 2013-09-17 | Alacritech, Inc. | Accelerating data transfer in a virtual computer system with tightly coupled TCP connections |
US8341286B1 (en) | 2008-07-31 | 2012-12-25 | Alacritech, Inc. | TCP offload send optimization |
US8271996B1 (en) * | 2008-09-29 | 2012-09-18 | Emc Corporation | Event queues |
US9306793B1 (en) | 2008-10-22 | 2016-04-05 | Alacritech, Inc. | TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies |
US8549038B2 (en) * | 2009-06-15 | 2013-10-01 | Oracle International Corporation | Pluggable session context |
US8635632B2 (en) * | 2009-10-21 | 2014-01-21 | International Business Machines Corporation | High performance and resource efficient communications between partitions in a logically partitioned system |
US8656412B2 (en) * | 2009-12-25 | 2014-02-18 | International Business Machines Corporation | Pipeline across isolated computing environments |
US20110219387A1 (en) * | 2010-03-04 | 2011-09-08 | Microsoft Corporation | Interactive Remote Troubleshooting of a Running Process |
US8438220B2 (en) | 2010-06-30 | 2013-05-07 | International Business Machines Corporation | Method for optimizing remote object implementations |
WO2015151113A1 (en) | 2014-04-02 | 2015-10-08 | Hewlett-Packard Development Company, L.P. | Direct access to network file system exported share |
US10387387B2 (en) | 2015-12-17 | 2019-08-20 | Oracle International Corporation | Enabling multi-tenant access to respective isolated data sets organized using different application schemas |
US10289617B2 (en) | 2015-12-17 | 2019-05-14 | Oracle International Corporation | Accessing on-premise and off-premise datastores that are organized using different application schemas |
CN107438060B (zh) * | 2016-05-28 | 2020-12-15 | 华为技术有限公司 | 一种网络设备中的远程过程调用方法及网络设备 |
US10303894B2 (en) | 2016-08-31 | 2019-05-28 | Oracle International Corporation | Fine-grained access control for data manipulation language (DML) operations on relational data |
KR20180046791A (ko) * | 2016-10-28 | 2018-05-09 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 데이터 전송 방법 |
CA3088394C (en) | 2018-03-08 | 2023-08-01 | Landmark Graphics Corporation | Using existing servers in a wellbore environment as data sources for streaming servers |
CN108681490B (zh) * | 2018-03-15 | 2020-04-28 | 阿里巴巴集团控股有限公司 | 针对rpc信息的向量处理方法、装置以及设备 |
US10880388B1 (en) * | 2018-09-17 | 2020-12-29 | EMC IP Holding Company LLC | Automatic redirection in scale-out cluster environments that perform distributed deduplication |
US10983930B1 (en) * | 2020-01-14 | 2021-04-20 | EMC IP Holding Company LLC | Efficient non-transparent bridge (NTB) based data transport |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4914586A (en) * | 1987-11-06 | 1990-04-03 | Xerox Corporation | Garbage collector for hypermedia systems |
US5187787B1 (en) * | 1989-07-27 | 1996-05-07 | Teknekron Software Systems Inc | Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes |
US5257369A (en) * | 1990-10-22 | 1993-10-26 | Skeen Marion D | Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes |
US5218699A (en) * | 1989-08-24 | 1993-06-08 | International Business Machines Corporation | Remote procedure calls in heterogeneous systems |
US5404519A (en) * | 1989-10-11 | 1995-04-04 | Texas Instruments Incorporated | System for extending software calls to functions on another processor by means of a communications buffer |
DE4112638A1 (de) * | 1990-04-20 | 1991-10-24 | Mazda Motor | Einrichtung zur steuerung der drehmomentverteilung fuer allradgetriebene fahrzeuge |
US5280610A (en) * | 1990-08-14 | 1994-01-18 | Digital Equipment Corporation | Methods and apparatus for implementing data bases to provide object-oriented invocation of applications |
US5297285A (en) * | 1991-07-23 | 1994-03-22 | Telefonaktiebolaget L M Ericsson | System for dynamically linking modular portions of computer software |
US5363489A (en) * | 1991-12-30 | 1994-11-08 | At&T Bell Laboratories | Auxiliary circuit for complementing the signaling of incompatible protocol systems |
US5307490A (en) * | 1992-08-28 | 1994-04-26 | Tandem Computers, Inc. | Method and system for implementing remote procedure calls in a distributed computer system |
US5497463A (en) * | 1992-09-25 | 1996-03-05 | Bull Hn Information Systems Inc. | Ally mechanism for interconnecting non-distributed computing environment (DCE) and DCE systems to operate in a network system |
US5386568A (en) * | 1992-12-01 | 1995-01-31 | Yamaha Corporation | Apparatus and method for linking software modules |
US5377350A (en) * | 1993-04-30 | 1994-12-27 | International Business Machines Corporation | System for cooperative communication between local object managers to provide verification for the performance of remote calls by object messages |
US5379430A (en) * | 1993-08-04 | 1995-01-03 | Taligent, Inc. | Object-oriented system locator system |
US5404523A (en) * | 1993-11-10 | 1995-04-04 | Digital Equipment Corporation | Method of managing requests in a transaction processing system |
-
1995
- 1995-09-12 US US08/526,833 patent/US5682534A/en not_active Expired - Lifetime
-
1996
- 1996-07-22 JP JP19202896A patent/JP3962112B2/ja not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003177930A (ja) * | 2001-09-04 | 2003-06-27 | Samsung Electronics Co Ltd | プロセス間通信方法及び装置 |
JP2005506629A (ja) * | 2001-10-24 | 2005-03-03 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 効率的な通信方法及びシステム |
JP2010237977A (ja) * | 2009-03-31 | 2010-10-21 | Fujitsu Ltd | マルチプロセッサ及び制御プログラム |
US8656120B2 (en) | 2009-09-21 | 2014-02-18 | Samsung Electronics Co., Ltd. | Device, method and computer-readable medium relocating remote procedure call data in heterogeneous multiprocessor system on chip |
JP2014186473A (ja) * | 2013-03-22 | 2014-10-02 | Fuji Xerox Co Ltd | プログラム及び装置 |
JP2020042809A (ja) * | 2018-08-31 | 2020-03-19 | サブコム,エルエルシー | ウェブサービスとインターフェース記述言語(idl)ベースのリモートプロシージャコール(rpc)サービスとの間をインターフェースするための技術及びそれを実施する光通信システム |
WO2024053733A1 (ja) * | 2022-09-09 | 2024-03-14 | コネクトフリー株式会社 | 情報処理装置、仮想サービス提供プログラムおよび通信方法 |
Also Published As
Publication number | Publication date |
---|---|
JP3962112B2 (ja) | 2007-08-22 |
US5682534A (en) | 1997-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH09160856A (ja) | 通信管理方法及びコンピュータ・システム | |
US6842903B1 (en) | System and method for providing dynamic references between services in a computer system | |
US6542908B1 (en) | Technique for automatically and transparently transforming software components into software components capable of execution in a client/server computing environment | |
US6282581B1 (en) | Mechanism for resource allocation and for dispatching incoming calls in a distributed object environment | |
US9183066B2 (en) | Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system | |
Jiang et al. | Soda: A service-on-demand architecture for application service hosting utility platforms | |
US6820267B2 (en) | Method and system for remote automation of object oriented applications | |
US6654794B1 (en) | Method, data processing system and program product that provide an internet-compatible network file system driver | |
US8151281B2 (en) | Method and system of mapping at least one web service to at least one OSGi service | |
US6101328A (en) | System for preventing multiple instances of the same dynamic executable module | |
US20080320503A1 (en) | URL Namespace to Support Multiple-Protocol Processing within Worker Processes | |
JPH09506726A (ja) | オブジェクト指向ネットワーク・プロトコル構成システム | |
JP2003533766A (ja) | 分散コンピューティング環境でサービスにアクセスし、アドレッシングする機構および装置 | |
JP2000057113A (ja) | サ―バ上で働くJavaプログラムの性能向上を図るコンピュ―タ・システム | |
EP0709994B1 (en) | Communications management between client and server processes | |
CA2358131A1 (en) | Dynamic class loading | |
US7418712B2 (en) | Method and system to support multiple-protocol processing within worker processes | |
Schmidt et al. | Osgi 4c: enabling osgi for the cloud | |
Brune et al. | Message-passing environments for metacomputing | |
Ismail et al. | Evaluation of the mobile agents technology: Comparison with the Client/Server Paradigm | |
Schmidt et al. | Applying patterns to develop a pluggable protocols framework for orb middleware | |
Hanslo et al. | The efficiency of XML as an intermediate data representation for wireless middleware communication | |
Ogle et al. | Dynamically selecting protocols for socket applications | |
Diehl | Towards lean and open multi-user technologies | |
Ismail et al. | Evaluation of the Mobile Agents Technology and Comparison Studies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20060725 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070412 Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070412 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070509 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20070509 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070518 |
|
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: 20110525 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110525 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120525 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120525 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130525 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140525 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |