JPH09231076A - 汎用スタブがオブジェクト参照固有のデータフォーマットのデータを整列/整列解除できるようにする方法及びそのための装置 - Google Patents
汎用スタブがオブジェクト参照固有のデータフォーマットのデータを整列/整列解除できるようにする方法及びそのための装置Info
- Publication number
- JPH09231076A JPH09231076A JP8276814A JP27681496A JPH09231076A JP H09231076 A JPH09231076 A JP H09231076A JP 8276814 A JP8276814 A JP 8276814A JP 27681496 A JP27681496 A JP 27681496A JP H09231076 A JPH09231076 A JP H09231076A
- Authority
- JP
- Japan
- Prior art keywords
- orb
- code mechanism
- call
- program code
- client application
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
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)
- Multi Processors (AREA)
Abstract
(57)【要約】
【課題】 汎用スタブがオブジェクト参照固有のデータ
フォーマットのデータを整列/整列解除できるようにす
る方法及びそのための装置を提供すること。 【解決手段】 本発明は、クライアントアプリケーショ
ン及びスタブを含むオブジェクト要求ブロ−カ(OR
B)独立レイヤ、ORB従属コード/サブコントラクト
コードメカニズム及び様々なORB用のORB固有性マ
−シャルバッファを含むORB従属−OS独立レイヤ、
及びオペレーティングシステム(OS)レイヤを含むマ
ルチORB通信用のコンピュータシステムを設けた。 【効果】 本発明によれば、オブジェクトアプリケーシ
ョンが様々なプロトコルと様々なデータフォーマットに
よって異なるORBと透明に通信することが可能にな
る。
フォーマットのデータを整列/整列解除できるようにす
る方法及びそのための装置を提供すること。 【解決手段】 本発明は、クライアントアプリケーショ
ン及びスタブを含むオブジェクト要求ブロ−カ(OR
B)独立レイヤ、ORB従属コード/サブコントラクト
コードメカニズム及び様々なORB用のORB固有性マ
−シャルバッファを含むORB従属−OS独立レイヤ、
及びオペレーティングシステム(OS)レイヤを含むマ
ルチORB通信用のコンピュータシステムを設けた。 【効果】 本発明によれば、オブジェクトアプリケーシ
ョンが様々なプロトコルと様々なデータフォーマットに
よって異なるORBと透明に通信することが可能にな
る。
Description
【0001】
【発明が属する技術分野】本発明は、分散型コンピュー
タシステム、クライアント−サーバ計算及びオブジェク
ト指向プログラミングの分野に関するものである。より
詳しくは、本発明は、汎用スタブがオブジェクト参照固
有のデータフォーマット(object-reference-specific
data format )のデータを整列/整列解除できるように
するプログラムメカニズムを得る方法及びそのための装
置に関する。
タシステム、クライアント−サーバ計算及びオブジェク
ト指向プログラミングの分野に関するものである。より
詳しくは、本発明は、汎用スタブがオブジェクト参照固
有のデータフォーマット(object-reference-specific
data format )のデータを整列/整列解除できるように
するプログラムメカニズムを得る方法及びそのための装
置に関する。
【0002】
【従来の技術】現在のオブジェクト指向分散型処理シス
テムの大きな課題は、サポートしているコードメカニズ
ムをほんの少し修正するだけで、オブジェクトアプリケ
ーションが、各々独自のデータフォーマットを有する新
しいオブジェクト要求ブローカ(「ORB」)と通信で
きるようにすることである。同様に、クライアントアプ
リケーション及びスタブは、各ORBがそれぞれ独自の
データフォーマットを有する複数のORBと通信するこ
とができるシステムにおいて、種々のORBとシ−ムレ
スに通信することができるべきである。
テムの大きな課題は、サポートしているコードメカニズ
ムをほんの少し修正するだけで、オブジェクトアプリケ
ーションが、各々独自のデータフォーマットを有する新
しいオブジェクト要求ブローカ(「ORB」)と通信で
きるようにすることである。同様に、クライアントアプ
リケーション及びスタブは、各ORBがそれぞれ独自の
データフォーマットを有する複数のORBと通信するこ
とができるシステムにおいて、種々のORBとシ−ムレ
スに通信することができるべきである。
【0003】例えば、オブジェクトマネジメントグルー
プ(OMG)は、分散型オブジェクト指向プログラミン
グ用のマルチベンダ標準を作ろうとしている業界標準機
関である。OMGの作業の土台の1つは、使用中の特定
のネットワークプロトコルあるいはクライアント及びサ
ーバが使用している特定のプログラミング言語に従属し
ない仕方でネットワークオブジェクトに対してインタフ
ェースを定義する標準的な方法として現在広く普及して
いるIDLとして知られた共通のインタフェース定義言
語の定義であった。
プ(OMG)は、分散型オブジェクト指向プログラミン
グ用のマルチベンダ標準を作ろうとしている業界標準機
関である。OMGの作業の土台の1つは、使用中の特定
のネットワークプロトコルあるいはクライアント及びサ
ーバが使用している特定のプログラミング言語に従属し
ない仕方でネットワークオブジェクトに対してインタフ
ェースを定義する標準的な方法として現在広く普及して
いるIDLとして知られた共通のインタフェース定義言
語の定義であった。
【0004】IDL言語は、オブジェクト指向言語で、
多重継承をサポートしている。この言語には、豊富な内
蔵基本命令タイプ(float、boolean等のよ
うな)のセットが付いており、またstruct、un
ion及びsequenceを含む構造化タイプのセッ
トも定義する。
多重継承をサポートしている。この言語には、豊富な内
蔵基本命令タイプ(float、boolean等のよ
うな)のセットが付いており、またstruct、un
ion及びsequenceを含む構造化タイプのセッ
トも定義する。
【0005】オブジェクトマネジメントグループは、I
DL(インタフェース定義言語)をネットワークオブジ
ェクトに対してインタフェースを定義する統一的な方法
として定義した。しかしながら、OMGは、当初、オン
ザワイヤ(on-the-wire )・プロトコル及びデータフォ
ーマットを無定義のまま放置した。その結果、様々なベ
ンダが様々なプロトコルと様々なデータフォーマットで
ORBを実装した。
DL(インタフェース定義言語)をネットワークオブジ
ェクトに対してインタフェースを定義する統一的な方法
として定義した。しかしながら、OMGは、当初、オン
ザワイヤ(on-the-wire )・プロトコル及びデータフォ
ーマットを無定義のまま放置した。その結果、様々なベ
ンダが様々なプロトコルと様々なデータフォーマットで
ORBを実装した。
【0006】
【発明が解決しようとする課題】最近、OMGは、共通
のORBインタ−オペラビリティプロトコルである汎用
ネットワーク化オブジェクト(UNO)プロトコルにつ
いて合意に達した。しかしながら、これは、主として、
様々なベンダからのオブジェクトシステムを接続するた
めのゲートウェイプロトコルであると見られる。少なく
とも短期的には、ベンダは彼ら自身のオブジェクトシス
テム内ではより高い性能が得られるよう彼らの現行プロ
トコルを使用し続ける一方で、他のORBに対してはよ
り低い性能のUNOゲートウェイをサポートするように
思われる。このように、目下、オブジェクトアプリケー
ションが様々なプロトコルと様々なデータフォーマット
によってこれらのORBと透明に通信することができる
ようにする必要が存在する。
のORBインタ−オペラビリティプロトコルである汎用
ネットワーク化オブジェクト(UNO)プロトコルにつ
いて合意に達した。しかしながら、これは、主として、
様々なベンダからのオブジェクトシステムを接続するた
めのゲートウェイプロトコルであると見られる。少なく
とも短期的には、ベンダは彼ら自身のオブジェクトシス
テム内ではより高い性能が得られるよう彼らの現行プロ
トコルを使用し続ける一方で、他のORBに対してはよ
り低い性能のUNOゲートウェイをサポートするように
思われる。このように、目下、オブジェクトアプリケー
ションが様々なプロトコルと様々なデータフォーマット
によってこれらのORBと透明に通信することができる
ようにする必要が存在する。
【0007】オブジェクト指向設計及びプログラミング
技術のさらに詳しい説明については、、バ−トランド・
マイヤ−(Bertrand Meyer)著「オブジ
ェクト指向ソフトウェアの構造(Object−ori
ented Software Constructi
ion)」(Prentice Hall、1988年
刊)を参照のこと。OMG、COBRA、ORB及びI
DLに関する詳細な情報については、「共用オブジェク
ト要求ブローカ;ア−キテクチャ及び仕様」、改訂版
2.0(1955年6月)(これは参照によって全面的
に本願に組み込まれる)を参照のこと。
技術のさらに詳しい説明については、、バ−トランド・
マイヤ−(Bertrand Meyer)著「オブジ
ェクト指向ソフトウェアの構造(Object−ori
ented Software Constructi
ion)」(Prentice Hall、1988年
刊)を参照のこと。OMG、COBRA、ORB及びI
DLに関する詳細な情報については、「共用オブジェク
ト要求ブローカ;ア−キテクチャ及び仕様」、改訂版
2.0(1955年6月)(これは参照によって全面的
に本願に組み込まれる)を参照のこと。
【0008】現在、インタ−ネットブラウザは、ネット
ワークサーバと対話する能力が非常に限定されている。
通常、Mosaicのようなブラウザは、HTMLドキ
ュメントをダウンラインロ−ドした後、ユ−ザが他のド
キュメントを選択するか、サーバへ送り返すことができ
るHTML形式の情報を入れるのを受動的に待つように
なっている。
ワークサーバと対話する能力が非常に限定されている。
通常、Mosaicのようなブラウザは、HTMLドキ
ュメントをダウンラインロ−ドした後、ユ−ザが他のド
キュメントを選択するか、サーバへ送り返すことができ
るHTML形式の情報を入れるのを受動的に待つように
なっている。
【0009】インタ−ネットをよりダイナミックな環境
にするものとして、目下、2つの進展が期待を持てる。
その第1は、ブラウザが対話型スクリプトをダウンロ−
ドし、実行することができるようにインタ−ネットブラ
ウザにおけるスクリプティング言語(例えば、以下に説
明するサン・マイクロシステムズ(Sun Micro
systems, Inc.)社(SUN)のJAVA
言語のような)に対するサポートである。これによれ
ば、ブラウザは、受動ビュ−ワの状態から、ユ−ザのに
代わりにインタ−ネットと対話することができ、高速で
変化する情報を表示することができるダイナミックエ−
ジェントの状態に変換される。第2の進展は、IDL
(インタフェース定義言語)に基づくオブジェクトマネ
ジメントグループ配布のオブジェクトインタフェースが
広範に採用されていることである。これらのインタフェ
ースによれば、ネットワークサーバが言語及びベンダに
従属しない仕方でサ−ビスを「ネットワークオブジェク
ト」としてエクスポ−トするための標準的な方法が得ら
れる。その結果、様々なクライアント環境から透明にア
クセスすることができるネットワークサ−ビスを構築す
ることがはるかに容易になる。
にするものとして、目下、2つの進展が期待を持てる。
その第1は、ブラウザが対話型スクリプトをダウンロ−
ドし、実行することができるようにインタ−ネットブラ
ウザにおけるスクリプティング言語(例えば、以下に説
明するサン・マイクロシステムズ(Sun Micro
systems, Inc.)社(SUN)のJAVA
言語のような)に対するサポートである。これによれ
ば、ブラウザは、受動ビュ−ワの状態から、ユ−ザのに
代わりにインタ−ネットと対話することができ、高速で
変化する情報を表示することができるダイナミックエ−
ジェントの状態に変換される。第2の進展は、IDL
(インタフェース定義言語)に基づくオブジェクトマネ
ジメントグループ配布のオブジェクトインタフェースが
広範に採用されていることである。これらのインタフェ
ースによれば、ネットワークサーバが言語及びベンダに
従属しない仕方でサ−ビスを「ネットワークオブジェク
ト」としてエクスポ−トするための標準的な方法が得ら
れる。その結果、様々なクライアント環境から透明にア
クセスすることができるネットワークサ−ビスを構築す
ることがはるかに容易になる。
【0010】Javaは、Cのようなシンタクスによっ
て強く型付けされた言語である。Javaのコンパイラ
及びランタイムメカニズムは、ワイルドポインタあるい
は言語のタイプシステムに適合しないその他の参照があ
り得ないようにするために、タイプセ−フティが必須の
条件となる。従って、例えば、「ボイド」は全くなく、
キャストは全て実行時に確認される。
て強く型付けされた言語である。Javaのコンパイラ
及びランタイムメカニズムは、ワイルドポインタあるい
は言語のタイプシステムに適合しないその他の参照があ
り得ないようにするために、タイプセ−フティが必須の
条件となる。従って、例えば、「ボイド」は全くなく、
キャストは全て実行時に確認される。
【0011】JavaJava言語は、通常、マシン独
立バイトコードにコンパイルされた後、Java仮想計
算機がJavaプログラムを実行するためにそれらのバ
イトコードを翻訳する。Javaはドキュメントを見る
操作の一環としてJavaバイトコードの集合をダウン
ラインロ−ドしてクライアントマシンで実行することが
できるよう、ネットワークHTMLブラウザに組み込む
ことができる。Javaは完全にタイプセ−フなので、
クライアントブラウザは、Javaプログラムはクライ
アントのセキュリティまたは保全性を危うくすることな
く安全に実行できるということに確信を持つことができ
る。Javaについては、サン・マイクロシステムズ
(Sun Microsystems, Inc.)社
刊行の「Java言語仕様(The Language
Specification)」、リリ−ス1.0ア
ルファ3(1995年5月11日刊行)(これは参照に
よって全面的に本願に組み込まれる)により詳しく説明
されている。
立バイトコードにコンパイルされた後、Java仮想計
算機がJavaプログラムを実行するためにそれらのバ
イトコードを翻訳する。Javaはドキュメントを見る
操作の一環としてJavaバイトコードの集合をダウン
ラインロ−ドしてクライアントマシンで実行することが
できるよう、ネットワークHTMLブラウザに組み込む
ことができる。Javaは完全にタイプセ−フなので、
クライアントブラウザは、Javaプログラムはクライ
アントのセキュリティまたは保全性を危うくすることな
く安全に実行できるということに確信を持つことができ
る。Javaについては、サン・マイクロシステムズ
(Sun Microsystems, Inc.)社
刊行の「Java言語仕様(The Language
Specification)」、リリ−ス1.0ア
ルファ3(1995年5月11日刊行)(これは参照に
よって全面的に本願に組み込まれる)により詳しく説明
されている。
【0012】Javaのようなスクリプト型言語系は、
移植性を具備するように、また種々異なる環境で展開さ
れるように設計されたJavaプログラムを生成する。
従って、Javaプログラムは、プログラムに全く変更
を加える必要なく、異なるORBを使用できるようにす
ることが望ましい。生成されるスタブはJavaプログ
ラムの一部であるから、Javaプログラム及びその関
連スタブを様々なORBのいずれでも使用することがで
きるように、それらのスタブはORB独立性であること
が必要である。
移植性を具備するように、また種々異なる環境で展開さ
れるように設計されたJavaプログラムを生成する。
従って、Javaプログラムは、プログラムに全く変更
を加える必要なく、異なるORBを使用できるようにす
ることが望ましい。生成されるスタブはJavaプログ
ラムの一部であるから、Javaプログラム及びその関
連スタブを様々なORBのいずれでも使用することがで
きるように、それらのスタブはORB独立性であること
が必要である。
【0013】
【課題を解決するための手段】本発明は、スタブとOR
B固有性データメカニズムとの間に汎用インタフェース
を生成することによって上記の基本的問題を解決する手
段を開示するものである。これらのORB固有性データ
メカニズムは、1つ以上の特定ORB関連オンザワイヤ
・データフォーマットを整列/整列解除するためのメソ
ッドと、オブジェクト参照(Objref)を用いてこ
の特定のオブジェクトコールに使用する特定のマ−シャ
ルバッファオブジェクトを指示する方法及びそのための
装置を含む。
B固有性データメカニズムとの間に汎用インタフェース
を生成することによって上記の基本的問題を解決する手
段を開示するものである。これらのORB固有性データ
メカニズムは、1つ以上の特定ORB関連オンザワイヤ
・データフォーマットを整列/整列解除するためのメソ
ッドと、オブジェクト参照(Objref)を用いてこ
の特定のオブジェクトコールに使用する特定のマ−シャ
ルバッファオブジェクトを指示する方法及びそのための
装置を含む。
【0014】本発明は、クライアントアプリケーション
によるオブジェクトの呼出し及びクライアントアプリケ
ーションとオブジェクト実装系との間で受け渡されるア
−ギュメントのためのメカニズムであって、クライアン
トアプリケーション或いはオペレーティングシステムが
それらのメカニズムがどのように作用するかを詳細に知
る必要のないメカニズムを得るための簡単かつ優れた方
法を提供するものである。さらに、これらのメカニズム
は、クライアントアプリケーションが一つのコンピュー
タノードにあり、オブジェクト実装系が他のコンピュー
タノードにあるというような分散型コンピュータ環境に
おいて同様の容易性と効率で機能する。
によるオブジェクトの呼出し及びクライアントアプリケ
ーションとオブジェクト実装系との間で受け渡されるア
−ギュメントのためのメカニズムであって、クライアン
トアプリケーション或いはオペレーティングシステムが
それらのメカニズムがどのように作用するかを詳細に知
る必要のないメカニズムを得るための簡単かつ優れた方
法を提供するものである。さらに、これらのメカニズム
は、クライアントアプリケーションが一つのコンピュー
タノードにあり、オブジェクト実装系が他のコンピュー
タノードにあるというような分散型コンピュータ環境に
おいて同様の容易性と効率で機能する。
【0015】本発明の一態様においては、クライアント
アプリケーション及びスタブを含むオブジェクト要求ブ
ローカ(ORB)独立レイヤ;ORB従属コード/サブ
コントラクトコードメカニズム及び様々なORB用のO
RB固有性マ−シャルバッファを含むORB従属−OS
独立レイヤ;及びオペレーティングシステム(OS)レ
イヤを含む「マルチORB通信用のコンピュータシステ
ム」が開示される。
アプリケーション及びスタブを含むオブジェクト要求ブ
ローカ(ORB)独立レイヤ;ORB従属コード/サブ
コントラクトコードメカニズム及び様々なORB用のO
RB固有性マ−シャルバッファを含むORB従属−OS
独立レイヤ;及びオペレーティングシステム(OS)レ
イヤを含む「マルチORB通信用のコンピュータシステ
ム」が開示される。
【0016】本発明のもう一つの態様においては、クラ
イアントアプリケーション及び関連スタブが、ターゲッ
トオブジェクトに対する動作を、そのターゲットオブジ
ェクトがどのORBを使用するか、あるいは呼び出され
た動作のアーギュメントに対してORBが必要とするデ
ータフォーマットについての知識または関心が全くなし
に呼び出すことが可能な「マルチORB整列システム」
が開示される。
イアントアプリケーション及び関連スタブが、ターゲッ
トオブジェクトに対する動作を、そのターゲットオブジ
ェクトがどのORBを使用するか、あるいは呼び出され
た動作のアーギュメントに対してORBが必要とするデ
ータフォーマットについての知識または関心が全くなし
に呼び出すことが可能な「マルチORB整列システム」
が開示される。
【0017】本発明のもう一つの態様においては、特定
ORB用のデータ整列メソッドを含む「マ−シャルバッ
ファメカニズム」が開示される。
ORB用のデータ整列メソッドを含む「マ−シャルバッ
ファメカニズム」が開示される。
【0018】本発明のもう一つの態様においては、クラ
イアントアプリケーションから特定のデータフォーマッ
トが必要なORBへのコールをコンピュータによって処
理する方法であって、クライアントアプリケーションお
よその関連スタブが、どのORBが使用されているか、
あるいは当該データにはどのフォーマットが必要かを知
る必要がない方法が開示される。この方法は、適切なO
RBに対して適切なデータフォーマット整列動作を行う
ことができるマ−シャルバッファ(MarshalBu
ffer)を探し出すプロセスを含む。
イアントアプリケーションから特定のデータフォーマッ
トが必要なORBへのコールをコンピュータによって処
理する方法であって、クライアントアプリケーションお
よその関連スタブが、どのORBが使用されているか、
あるいは当該データにはどのフォーマットが必要かを知
る必要がない方法が開示される。この方法は、適切なO
RBに対して適切なデータフォーマット整列動作を行う
ことができるマ−シャルバッファ(MarshalBu
ffer)を探し出すプロセスを含む。
【0019】同様に、本発明には、本発明によるこれら
の方法を採用したコンピュータプログラムを格納した媒
体、すなわちコンピュータプログラム製品が含まれる。
の方法を採用したコンピュータプログラムを格納した媒
体、すなわちコンピュータプログラム製品が含まれる。
【0020】表記法及び用語 以下の実施形態の詳細な説明は、コンピュータまたはコ
ンピュータネットワーク上で実行されるプログラム手続
きによって行う。これらの手続きの説明及び表現は、当
業者がその仕事の内容を他の当業者に最も効果的に伝達
するのに使用される手段である。
ンピュータネットワーク上で実行されるプログラム手続
きによって行う。これらの手続きの説明及び表現は、当
業者がその仕事の内容を他の当業者に最も効果的に伝達
するのに使用される手段である。
【0021】本願において、また一般に、手続きとは、
所望の結果に至る首尾一貫した一連のステップであると
考えられる。これらのステップは、物理量の物理的操作
が必要なステップである。必ずではないにしても、これ
らの物理量は、通常、記憶、転送、結合、比較、及びそ
の他の操作を行うことができる電気信号または磁気信号
の形を取る。主として共通の利用上の理由から、時に
は、これらの信号をビット、値、要素(元)、記号、文
字、項、数等と称すると好都合であるということがわか
る。しかしながら、これら及びこれらと類似の用語は、
全て適切な物理量に対応付けられたものであり、これら
の物理量に当てられた便宜的なラベルに過ぎないという
ことに留意すべきである。
所望の結果に至る首尾一貫した一連のステップであると
考えられる。これらのステップは、物理量の物理的操作
が必要なステップである。必ずではないにしても、これ
らの物理量は、通常、記憶、転送、結合、比較、及びそ
の他の操作を行うことができる電気信号または磁気信号
の形を取る。主として共通の利用上の理由から、時に
は、これらの信号をビット、値、要素(元)、記号、文
字、項、数等と称すると好都合であるということがわか
る。しかしながら、これら及びこれらと類似の用語は、
全て適切な物理量に対応付けられたものであり、これら
の物理量に当てられた便宜的なラベルに過ぎないという
ことに留意すべきである。
【0022】さらに、これらの物理量に対して行われる
操作は、人間のオペレ−タによって行われる知的操作に
対応付けられた加算や比較というような用語で呼ばれる
ことがしばしばある。本願で記載する本発明の一部をな
す全ての操作ないしは動作において、そのような人間の
オペレ−タの能力はまったく不要であるし、あるいはほ
とんどの場合望ましくない。操作は全て機械操作であ
る。本発明の操作ないしは動作を行うために役立つ機械
には、汎用ディジタルコンピュータもしくはこれと同様
の装置が含まれる。
操作は、人間のオペレ−タによって行われる知的操作に
対応付けられた加算や比較というような用語で呼ばれる
ことがしばしばある。本願で記載する本発明の一部をな
す全ての操作ないしは動作において、そのような人間の
オペレ−タの能力はまったく不要であるし、あるいはほ
とんどの場合望ましくない。操作は全て機械操作であ
る。本発明の操作ないしは動作を行うために役立つ機械
には、汎用ディジタルコンピュータもしくはこれと同様
の装置が含まれる。
【0023】本発明は、また、これらの操作を実行する
ための装置に関するものである。この装置は、所要の目
的に合わせて特別に組み立てたものでも、コンピュータ
に記憶されたコンピュータプログラムによって選択的に
起動される、あるいはリコンフィギュレ−ションされる
汎用コンピュータでもよい。本願で開示する手続きは、
特定のコンピュータまたはその他の装置と固有の関係を
有するものではない。様々な汎用計算機を本発明の開示
技術に従って書かれたプログラムによって使用すること
もできれば、所要の方法ステップを実行するのにより専
用化された装置を組み立てる方がより好都合となる場合
もある。これらの様々な計算機に必要な構成について
は、以下の説明から明らかになろう。
ための装置に関するものである。この装置は、所要の目
的に合わせて特別に組み立てたものでも、コンピュータ
に記憶されたコンピュータプログラムによって選択的に
起動される、あるいはリコンフィギュレ−ションされる
汎用コンピュータでもよい。本願で開示する手続きは、
特定のコンピュータまたはその他の装置と固有の関係を
有するものではない。様々な汎用計算機を本発明の開示
技術に従って書かれたプログラムによって使用すること
もできれば、所要の方法ステップを実行するのにより専
用化された装置を組み立てる方がより好都合となる場合
もある。これらの様々な計算機に必要な構成について
は、以下の説明から明らかになろう。
【0024】
【発明の実施の形態】以下の説明においては、オブジェ
クト指向システムの設計者が、アーギュメントがオブジ
ェクトとなることが可能な分散型システムにおけるオブ
ジェクト呼出し及びアーギュメント用のスキ−ムを、オ
ブジェクト指向ベースシステムを後で変更することが困
難になる可能性のあるメソッドに固定しないような仕方
で実装しようとする際に遭遇する問題の解決方法を開示
する。さらに、本発明は、特定ORB用のデータを整列
するための操作(オブジェクト指向プログラミング用語
では「メソッド」と呼ばれる)を含む「マ−シャルバッ
ファメカニズム」;クライアントアプリケーション及び
関連スタブが、ターゲットオブジェクトに対する動作
を、そのターゲットオブジェクトがどのORBを使用す
るか、あるいは呼び出された動作のアーギュメントに対
してORBが必要とするデータフォーマットについての
知識または関心が全くなしに呼び出すことが可能な「マ
ルチORB整列システム」;及びクライアントアプリケ
ーション及びスタブを含むORB独立レイヤ、ORB従
属コード/サブコントラクトコードメカニズム及び様々
なORB用のORB固有性マ−シャルバッファを含むO
RB従属−OS独立レイヤ、及びオペレーティングシス
テム(OS)レイヤを含む「マルチORB通信用のコン
ピュータシステム」を開示する。本発明で使用する「O
RB従属コードメカニズムは、各オブジェクトに対応付
けられる「サブコントラクトメカニズム」に類似してお
り、このサブコントラクトメカニズムは、参照によって
全面的に本願に組み込まれる同時係属出願第07/99
5,863号(1992年12月21日出願)号に記載
されている。
クト指向システムの設計者が、アーギュメントがオブジ
ェクトとなることが可能な分散型システムにおけるオブ
ジェクト呼出し及びアーギュメント用のスキ−ムを、オ
ブジェクト指向ベースシステムを後で変更することが困
難になる可能性のあるメソッドに固定しないような仕方
で実装しようとする際に遭遇する問題の解決方法を開示
する。さらに、本発明は、特定ORB用のデータを整列
するための操作(オブジェクト指向プログラミング用語
では「メソッド」と呼ばれる)を含む「マ−シャルバッ
ファメカニズム」;クライアントアプリケーション及び
関連スタブが、ターゲットオブジェクトに対する動作
を、そのターゲットオブジェクトがどのORBを使用す
るか、あるいは呼び出された動作のアーギュメントに対
してORBが必要とするデータフォーマットについての
知識または関心が全くなしに呼び出すことが可能な「マ
ルチORB整列システム」;及びクライアントアプリケ
ーション及びスタブを含むORB独立レイヤ、ORB従
属コード/サブコントラクトコードメカニズム及び様々
なORB用のORB固有性マ−シャルバッファを含むO
RB従属−OS独立レイヤ、及びオペレーティングシス
テム(OS)レイヤを含む「マルチORB通信用のコン
ピュータシステム」を開示する。本発明で使用する「O
RB従属コードメカニズムは、各オブジェクトに対応付
けられる「サブコントラクトメカニズム」に類似してお
り、このサブコントラクトメカニズムは、参照によって
全面的に本願に組み込まれる同時係属出願第07/99
5,863号(1992年12月21日出願)号に記載
されている。
【0025】以下の説明においては、説明の便宜上、本
発明の完全な理解を図るために具体的なデータ及びコン
フィギュレ−ションを記載する。本願で説明する実施形
態は、Sun MicrosystemsTM, In
c.(Sun Microsystemsはサン・マイ
クロシステムズ(Sun Microsystems,
Inc.)社の登録商標である)によって創成された
SPRING−DISTRIBUTIONオブジェクト
指向オペレーティングシステムの一部として実装される
ものである。しかしながら、当業者にとっては、本発明
がこのような具体的な詳細事項の記載なしに実施可能で
あること、また種々のコンピュータシステムや種々のコ
ンフィギュレ−ションで、あるいはいろいろな方型やモ
デルの密結合プロセッサ、さらには種々のコンフィギュ
レ−ションの疎結合マイクロプロセッサシステムで実装
可能であるということは明らかであろう。Spring
−Distributionオブジェクト指向オペレー
ティングシステムについては、サン・マイクロシステム
ズ(Sun Microsystems, Inc.)
社により1994年9月に刊行されたSpring分散
型オブジェクト指向オペレーティングシステムに関する
論文集、「Spring論文集(”Speing Co
llection”)」(これは参照によって全面的に
本願に組み込まれる)に記載されている。
発明の完全な理解を図るために具体的なデータ及びコン
フィギュレ−ションを記載する。本願で説明する実施形
態は、Sun MicrosystemsTM, In
c.(Sun Microsystemsはサン・マイ
クロシステムズ(Sun Microsystems,
Inc.)社の登録商標である)によって創成された
SPRING−DISTRIBUTIONオブジェクト
指向オペレーティングシステムの一部として実装される
ものである。しかしながら、当業者にとっては、本発明
がこのような具体的な詳細事項の記載なしに実施可能で
あること、また種々のコンピュータシステムや種々のコ
ンフィギュレ−ションで、あるいはいろいろな方型やモ
デルの密結合プロセッサ、さらには種々のコンフィギュ
レ−ションの疎結合マイクロプロセッサシステムで実装
可能であるということは明らかであろう。Spring
−Distributionオブジェクト指向オペレー
ティングシステムについては、サン・マイクロシステム
ズ(Sun Microsystems, Inc.)
社により1994年9月に刊行されたSpring分散
型オブジェクト指向オペレーティングシステムに関する
論文集、「Spring論文集(”Speing Co
llection”)」(これは参照によって全面的に
本願に組み込まれる)に記載されている。
【0026】その他の背景情報 動作環境 本発明が使用される環境は、多くがオブジェクトの形の
プログラム及びデータをシステムの種々の構成メンバが
システムの他の構成メンバによる実行及びアクセスのた
めに使用できるようなクライアント−サーバ構成で汎用
コンピュータ、ワークステ−ション、あるいはパ−ソナ
ルコンピュータが種々の形の通信リンクを介して接続さ
れた普通の分散型計算機システムを全て含む。図1に
は、汎用ワ−クステ−ションコンピュータの構成要素の
一部が示されており、プロセッサ1は、入出力(“I/
O”)部2、中央処理装置(“CPU”)3及びメモリ
部4を有する。I/O部2は、キ−ボ−ド5、表示装置
6、ディスク記憶装置9及びCD−ROMドライブユニ
ット7に接続されている。CD−ROMドライブユニッ
ト7は、通常プログラムコードメカニズム10及びデー
タが書き込まれたCD−ROM媒体8を読み取ることが
できる。
プログラム及びデータをシステムの種々の構成メンバが
システムの他の構成メンバによる実行及びアクセスのた
めに使用できるようなクライアント−サーバ構成で汎用
コンピュータ、ワークステ−ション、あるいはパ−ソナ
ルコンピュータが種々の形の通信リンクを介して接続さ
れた普通の分散型計算機システムを全て含む。図1に
は、汎用ワ−クステ−ションコンピュータの構成要素の
一部が示されており、プロセッサ1は、入出力(“I/
O”)部2、中央処理装置(“CPU”)3及びメモリ
部4を有する。I/O部2は、キ−ボ−ド5、表示装置
6、ディスク記憶装置9及びCD−ROMドライブユニ
ット7に接続されている。CD−ROMドライブユニッ
ト7は、通常プログラムコードメカニズム10及びデー
タが書き込まれたCD−ROM媒体8を読み取ることが
できる。
【0027】スタブ リモート動作のために言語レベルベニヤ(language-lev
el veneer )を用いる技術(例えば、「リモート手続き
コール」)は長年にわたって用いられてきた。通常、こ
れらの技術は、リモートインタフェースを何らかの言語
で定義するという形を取る。次に、このインタフェース
から一対のスタブが生成される。そのクライアントスタ
ブは、1つの計算機で実行されて、リモートインタフェ
ースから導出される言語レベルインタフェースを生じさ
せる。また、サーバスタブは、他の何らかの計算機で実
行されて、リモートインタフェースから導出される言語
レベルインタフェースを呼び出す。図2において、リモ
ート動作を行うには、1つの計算機11上のクライアン
トアプリケーション12がクライアントスタブ14を呼
び出すと、このクライアントスタブがその呼出しに対応
付けられたアーギュメントをネットワークバッファ中に
整列し、リモート計算機18上のサーバスタブ22に転
送し、このサーバスタブは、ネットワークバッファから
のアーギュメントを整列解除し、サーバアプリケーショ
ン24を呼び出す。同様に、サーバアプリケーション2
4がレスポンスを返す時には、それらの結果はサーバス
タブ22によって整列され、クライアントスタブ14に
送り返されて、クライアントスタブがそれらの結果を整
列解除し、クライアントアプリケーション12へ返す。
アーギュメント及び結果転送ならびにリモートオブジェ
クト呼出しの全体的な手続きは、これらのスタブで実行
される。クライアントアプリケーションもサーバアプリ
ケーションも単に普通の言語レベルインタフェースで処
理を行うだけである。
el veneer )を用いる技術(例えば、「リモート手続き
コール」)は長年にわたって用いられてきた。通常、こ
れらの技術は、リモートインタフェースを何らかの言語
で定義するという形を取る。次に、このインタフェース
から一対のスタブが生成される。そのクライアントスタ
ブは、1つの計算機で実行されて、リモートインタフェ
ースから導出される言語レベルインタフェースを生じさ
せる。また、サーバスタブは、他の何らかの計算機で実
行されて、リモートインタフェースから導出される言語
レベルインタフェースを呼び出す。図2において、リモ
ート動作を行うには、1つの計算機11上のクライアン
トアプリケーション12がクライアントスタブ14を呼
び出すと、このクライアントスタブがその呼出しに対応
付けられたアーギュメントをネットワークバッファ中に
整列し、リモート計算機18上のサーバスタブ22に転
送し、このサーバスタブは、ネットワークバッファから
のアーギュメントを整列解除し、サーバアプリケーショ
ン24を呼び出す。同様に、サーバアプリケーション2
4がレスポンスを返す時には、それらの結果はサーバス
タブ22によって整列され、クライアントスタブ14に
送り返されて、クライアントスタブがそれらの結果を整
列解除し、クライアントアプリケーション12へ返す。
アーギュメント及び結果転送ならびにリモートオブジェ
クト呼出しの全体的な手続きは、これらのスタブで実行
される。クライアントアプリケーションもサーバアプリ
ケーションも単に普通の言語レベルインタフェースで処
理を行うだけである。
【0028】アーギュメントまたは結果が整数やストリ
ング(文字列)のように単純な値の場合は、整列/整列
解除の仕事はある程度簡単である。スタブは、通常は、
単にアーギュメントのリテラル値をネットワークバッフ
ァに入れるだけである。しかしながら、抽象データ型ま
たはオブジェクトをサポートする言語においては、整列
操作はこれよりかなり複雑になる。この場合の一つの解
決方法は、スタブにオブジェクトの内部データ構造を整
列させてから、このデータを整列解除して新しいオブジ
ェクトに入れることである。この方法には、いくつかの
重大な欠点がある。まず、スタブはオブジェクトの内部
について知る作業を全く行わないので、これはオブジェ
クト指向プログラミングの「抽象」原理に反している。
第2には、この方法は、オブジェクトのクライアント及
びサーバ実装系がそれらのデータの実装系について同じ
内部レイアウトを持つことが必要である。第3には、オ
ブジェクトの内部状態を必ずしも全部実際に他の計算機
に転送する必要があるとは限らないので、大量の不必要
なデータの整列を伴う場合がある。もう一つの解決方法
は、オブジェクトが整列されるとき、その内部状態を全
く転送しないという方法である。その代わりに、そのオ
ブジェクトの識別トークンを生成し、このトークンを転
送する。例えば、Edenシステムにおいては、オブジ
ェクトに名前が割り当てられ、オブジェクトを整列する
ときには、その実際の表現ではなくその名前が整列され
る。その後リモート計算機がこのオブジェクトに対して
処理を行いたいときは、それらの計算機はその名前を使
ってオブジェクトの元のサイトを探し出し、それらの呼
出しをそのサイトに転送しなければならない。この仕組
は、ファイルやデータベースのような重いオブジェクト
には適切であるが、デカルト座標対を表すオブジェクト
のような軽い抽象系には不適切であり、後者の場合はオ
ブジェクトの実際の状態を整列する方がよいのではない
かと思われる。最後に、一部のオブジェクト指向プログ
ラミングシステムでは、アーギュメントをどのように整
列/整列解除するかを制御するようオブジェクト実装す
るための手段が用意されている。たとえば、Argus
システムではオブジェクト・インプリメンタは、それら
の内部表現と特定の具体的な外部表現との間のマッピン
グを行う関数を用いることができる。Argusスタブ
は、オブジェクトを整列/整列解除するとき、いずれか
の特定の内部表現ではなくその外部表現が転送されるよ
うに、適切なマッピング関数を呼び出す。これらのいろ
いろな解決方法は、いずれも全てのオブジェクトに対し
てたった一つの標準的な整列方針を押し付けるものであ
るか、あるいは個々のオブジェクト・インプリメンタが
整列動作の細部まで引き受けることが必要である。進歩
的なオブジェクト整列プロセスが、「サブコントラク
ト」について記載がある前掲の同時係属特許出願第07
/995,863号(1992年12月21日出願)に
説明されている。
ング(文字列)のように単純な値の場合は、整列/整列
解除の仕事はある程度簡単である。スタブは、通常は、
単にアーギュメントのリテラル値をネットワークバッフ
ァに入れるだけである。しかしながら、抽象データ型ま
たはオブジェクトをサポートする言語においては、整列
操作はこれよりかなり複雑になる。この場合の一つの解
決方法は、スタブにオブジェクトの内部データ構造を整
列させてから、このデータを整列解除して新しいオブジ
ェクトに入れることである。この方法には、いくつかの
重大な欠点がある。まず、スタブはオブジェクトの内部
について知る作業を全く行わないので、これはオブジェ
クト指向プログラミングの「抽象」原理に反している。
第2には、この方法は、オブジェクトのクライアント及
びサーバ実装系がそれらのデータの実装系について同じ
内部レイアウトを持つことが必要である。第3には、オ
ブジェクトの内部状態を必ずしも全部実際に他の計算機
に転送する必要があるとは限らないので、大量の不必要
なデータの整列を伴う場合がある。もう一つの解決方法
は、オブジェクトが整列されるとき、その内部状態を全
く転送しないという方法である。その代わりに、そのオ
ブジェクトの識別トークンを生成し、このトークンを転
送する。例えば、Edenシステムにおいては、オブジ
ェクトに名前が割り当てられ、オブジェクトを整列する
ときには、その実際の表現ではなくその名前が整列され
る。その後リモート計算機がこのオブジェクトに対して
処理を行いたいときは、それらの計算機はその名前を使
ってオブジェクトの元のサイトを探し出し、それらの呼
出しをそのサイトに転送しなければならない。この仕組
は、ファイルやデータベースのような重いオブジェクト
には適切であるが、デカルト座標対を表すオブジェクト
のような軽い抽象系には不適切であり、後者の場合はオ
ブジェクトの実際の状態を整列する方がよいのではない
かと思われる。最後に、一部のオブジェクト指向プログ
ラミングシステムでは、アーギュメントをどのように整
列/整列解除するかを制御するようオブジェクト実装す
るための手段が用意されている。たとえば、Argus
システムではオブジェクト・インプリメンタは、それら
の内部表現と特定の具体的な外部表現との間のマッピン
グを行う関数を用いることができる。Argusスタブ
は、オブジェクトを整列/整列解除するとき、いずれか
の特定の内部表現ではなくその外部表現が転送されるよ
うに、適切なマッピング関数を呼び出す。これらのいろ
いろな解決方法は、いずれも全てのオブジェクトに対し
てたった一つの標準的な整列方針を押し付けるものであ
るか、あるいは個々のオブジェクト・インプリメンタが
整列動作の細部まで引き受けることが必要である。進歩
的なオブジェクト整列プロセスが、「サブコントラク
ト」について記載がある前掲の同時係属特許出願第07
/995,863号(1992年12月21日出願)に
説明されている。
【0029】現在の問題点の要約 現在のオブジェクト指向システムの特有の問題点 この場合に特有の問題は、異なるORBが異なるオンザ
ワイヤ・データフォーマットを有することである。従っ
て、一つのORBがバイトをリトルエンディアン順(li
ttle-endian order )に整列するのに、もう一つのOR
Bはビッグエンディアン順(big-endian order)に整列
するというような場合が起こり得る。また、異なるOR
Bは、アレイ(配列)、ストリング(文字列)、ユニオ
ン(共用体)に関しても異なるオンザワイヤ・フォーマ
ットを有する。
ワイヤ・データフォーマットを有することである。従っ
て、一つのORBがバイトをリトルエンディアン順(li
ttle-endian order )に整列するのに、もう一つのOR
Bはビッグエンディアン順(big-endian order)に整列
するというような場合が起こり得る。また、異なるOR
Bは、アレイ(配列)、ストリング(文字列)、ユニオ
ン(共用体)に関しても異なるオンザワイヤ・フォーマ
ットを有する。
【0030】従って、異なるオブジェクトにトークする
時にはデータを異なる仕方で整列することができるOR
B独立スタブを持つことが望ましい。このようにすれ
ば、DECオブジェクトにトークする時にはDECのデ
ータフォーマットを使用することができ、Sunオブジ
ェクトにトークする時はSunデータフォーマットを使
用することができる。そして、一組だけのスタブを異な
るORBと同時に使用できるようにすることは望ましい
ことである。
時にはデータを異なる仕方で整列することができるOR
B独立スタブを持つことが望ましい。このようにすれ
ば、DECオブジェクトにトークする時にはDECのデ
ータフォーマットを使用することができ、Sunオブジ
ェクトにトークする時はSunデータフォーマットを使
用することができる。そして、一組だけのスタブを異な
るORBと同時に使用できるようにすることは望ましい
ことである。
【0031】問題の解決方法 本発明による上記問題の解決方法は、下記の通りであ
る: (1)整列のための汎用インタフェースを定義する。こ
の汎用インタフェースは、整数、ショ−トワ−ド、バイ
ト、文字、及び文字列を整列/整列解除するためのメソ
ッドを提供する。しかし、これらのメソッドをどのよう
にして実装するかについては何も与えない。 (2)異なる各ORBは、汎用マ−シャルバッファ・イ
ンタフェースのそれぞれ独自の実装系を提供する。これ
らのORB固有性マ−シャルクラスは、汎用整列/整列
解除メソッドをサポートすると同時に、ORB固有性デ
ータを整列するための他のメソッドを提供することもで
きる。例えば、MarshalBufferのSpri
ngのORB実装系は、Springドアを整列/整列
解除するためのメソッドを与える。 (3)各オブジェクト参照(Objref)は、そのオ
ブジェクトを実装するORBに属する一群のORBル−
チン機械に対するポインタを含む。この実施形態におい
ては、これは当該オブジェクトについてのクライアント
側ORB従属コードメカニズム/サブコントラクトに対
するポインタからなる。 (4)上記(3)に記載されているORBル−チン機械
は、MarshalBufferオブジェクトを得るた
めのメソッドをサポートする。ル−チン機械は、そのO
RBにとって正しい整列/整列解除処理を実装したMa
rshalBufferオブジェクトを返す。 (5)汎用スタブは、全面的に汎用MarshalBu
fferインタフェースによって機能する。 (6)各コールの始めに、汎用スタブは、オブジェクト
参照に対応付けられたORB固有性ル−チンコードメカ
ニズムを呼び込んで適切なMarshalBuffer
オブジェクトを得る。スタブは、次に、汎用整列/整列
解除インタフェースを用いてMarshalBuffe
rオブジェクトへのデータ及びMarshalBufe
rオブジェクトからのデータを整列/整列解除する。こ
れらの整列/整列解除メソッドの実装系はORB固有性
であるから、これはデータがORB固有の仕方で整列/
整列解除されるということを意味する。
る: (1)整列のための汎用インタフェースを定義する。こ
の汎用インタフェースは、整数、ショ−トワ−ド、バイ
ト、文字、及び文字列を整列/整列解除するためのメソ
ッドを提供する。しかし、これらのメソッドをどのよう
にして実装するかについては何も与えない。 (2)異なる各ORBは、汎用マ−シャルバッファ・イ
ンタフェースのそれぞれ独自の実装系を提供する。これ
らのORB固有性マ−シャルクラスは、汎用整列/整列
解除メソッドをサポートすると同時に、ORB固有性デ
ータを整列するための他のメソッドを提供することもで
きる。例えば、MarshalBufferのSpri
ngのORB実装系は、Springドアを整列/整列
解除するためのメソッドを与える。 (3)各オブジェクト参照(Objref)は、そのオ
ブジェクトを実装するORBに属する一群のORBル−
チン機械に対するポインタを含む。この実施形態におい
ては、これは当該オブジェクトについてのクライアント
側ORB従属コードメカニズム/サブコントラクトに対
するポインタからなる。 (4)上記(3)に記載されているORBル−チン機械
は、MarshalBufferオブジェクトを得るた
めのメソッドをサポートする。ル−チン機械は、そのO
RBにとって正しい整列/整列解除処理を実装したMa
rshalBufferオブジェクトを返す。 (5)汎用スタブは、全面的に汎用MarshalBu
fferインタフェースによって機能する。 (6)各コールの始めに、汎用スタブは、オブジェクト
参照に対応付けられたORB固有性ル−チンコードメカ
ニズムを呼び込んで適切なMarshalBuffer
オブジェクトを得る。スタブは、次に、汎用整列/整列
解除インタフェースを用いてMarshalBuffe
rオブジェクトへのデータ及びMarshalBufe
rオブジェクトからのデータを整列/整列解除する。こ
れらの整列/整列解除メソッドの実装系はORB固有性
であるから、これはデータがORB固有の仕方で整列/
整列解除されるということを意味する。
【0032】本発明の実施形態においては、汎用Mar
shalBufferは、上記のほか、いくつかの既知
のORBの差違を処理する能力を有する。たとえば、
(a)単純データ型を整列/整列解除するためのメソッ
ドに加えて、汎用MarshalBufferは、アレ
イディスクリプタを整列する方法を提供する。このメソ
ッドは、アレイの上下限を取り込んだ後、アレイディス
クリプタをORB固有性の仕方で整列する。例えば、D
OEのORBコードは、アレイの長さを整列する。しか
し、SpringのORBコードは、下限及び上限を整
列し、そして(b)同様にアレイディスクリプタを整列
解除するためのメカニズムを提供する。
shalBufferは、上記のほか、いくつかの既知
のORBの差違を処理する能力を有する。たとえば、
(a)単純データ型を整列/整列解除するためのメソッ
ドに加えて、汎用MarshalBufferは、アレ
イディスクリプタを整列する方法を提供する。このメソ
ッドは、アレイの上下限を取り込んだ後、アレイディス
クリプタをORB固有性の仕方で整列する。例えば、D
OEのORBコードは、アレイの長さを整列する。しか
し、SpringのORBコードは、下限及び上限を整
列し、そして(b)同様にアレイディスクリプタを整列
解除するためのメカニズムを提供する。
【0033】本発明の構成及び使用方法 移植性ORB実装系 この本発明の実施形態の目標の一つは、Java OR
B実装系が様々の異なるオンザワイヤ・プロトコル及び
データフォーマットで直接稼動できるようにすることで
ある。特に、単一のJavaプログラムがいくつかの異
なるORBのオブジェクトに対するオブジェクト参照を
同時に使用することができなければならない。インタ−
ネットは非常に不均質な環境であり、JavaのIDL
クライアントを各時点で1つのサーバだけとしか作業し
ないような制限をしないことが望ましい。
B実装系が様々の異なるオンザワイヤ・プロトコル及び
データフォーマットで直接稼動できるようにすることで
ある。特に、単一のJavaプログラムがいくつかの異
なるORBのオブジェクトに対するオブジェクト参照を
同時に使用することができなければならない。インタ−
ネットは非常に不均質な環境であり、JavaのIDL
クライアントを各時点で1つのサーバだけとしか作業し
ないような制限をしないことが望ましい。
【0034】特に、この本発明の実施形態のJava
ORB実装系は、Sunの分散オブジェクト環境(DO
E)ともSpringの分散オペレーティングシステム
とも直接通信することができなければならない。また、
Java ORBコアは、UNOゲートウェイあるいは
DCEベースオブジェクトシステムとも通信することが
できるように設計することが望ましい。
ORB実装系は、Sunの分散オブジェクト環境(DO
E)ともSpringの分散オペレーティングシステム
とも直接通信することができなければならない。また、
Java ORBコアは、UNOゲートウェイあるいは
DCEベースオブジェクトシステムとも通信することが
できるように設計することが望ましい。
【0035】移植性の問題 移植性はいくつかの異なるレベルで問題になる。
【0036】最も下位のレベルでは、Javaのソケッ
トクラスを用いてIPプロトコルファミリーに対するマ
シン及びOS独立アクセスが行われる。
トクラスを用いてIPプロトコルファミリーに対するマ
シン及びOS独立アクセスが行われる。
【0037】その一つ上のレベルでは、異なるORBは
それぞれ異なる低レベルネットワーク移送プロトコルを
使用する。例えば、SunのDOEシステムはONC
RPCを使用し、Springシステムは最適化された
順序付けられた形のパケットプロトコルを使用し、UN
OはTCP/IPを使用し、他のいくつかのベンダはD
CE RPCを使用する等である。しかしながら、これ
はかなり大きな違いのように見えるかもしれないが、異
なる低レベル移送プロトコルをプラグインすることは実
際上比較的容易である。
それぞれ異なる低レベルネットワーク移送プロトコルを
使用する。例えば、SunのDOEシステムはONC
RPCを使用し、Springシステムは最適化された
順序付けられた形のパケットプロトコルを使用し、UN
OはTCP/IPを使用し、他のいくつかのベンダはD
CE RPCを使用する等である。しかしながら、これ
はかなり大きな違いのように見えるかもしれないが、異
なる低レベル移送プロトコルをプラグインすることは実
際上比較的容易である。
【0038】残念なことには、単純データ型の場合、異
なる移送プロトコルは、やはり異なるデータフォーマッ
トが伴う。たとえば、整数値は、ONC ORBではビ
ッグエンディアンバイト順で転送し、DCE ORBで
はリトルエンディアンバイト順で転送しなければならな
い場合がある。このことは、マ−シャルバッファからの
アーギュメントをどのようにして整列/整列解除するこ
とができるかに関係する。
なる移送プロトコルは、やはり異なるデータフォーマッ
トが伴う。たとえば、整数値は、ONC ORBではビ
ッグエンディアンバイト順で転送し、DCE ORBで
はリトルエンディアンバイト順で転送しなければならな
い場合がある。このことは、マ−シャルバッファからの
アーギュメントをどのようにして整列/整列解除するこ
とができるかに関係する。
【0039】その一つ上のレベルでは、2つのORB
が、単純データ型に関しては合意するとしても、IDL
構造データ型をどのように扱うかについては合意しない
かもしれない。例えば、Spring ORB及びDO
E ORBはどちらも単純データ型についてはONC
XDRフォーマットを使用するが、アレイディスクリプ
タを転送する際には、DOE ORBは長さを指定する
整数を送るだけであるのに対し、Spring ORB
は、アレイの下限を指定する整数と、アレイの上限を指
定する整数の2つの整数を送る。このことは、異なるO
RB間で使用することができるスタブが欲しい場合、そ
れらのスタブはアレイディスクリプタのようなものを直
接整列することができず、むしろ何らかのORB固有性
コードを呼び込まなければならないということを意味す
る。
が、単純データ型に関しては合意するとしても、IDL
構造データ型をどのように扱うかについては合意しない
かもしれない。例えば、Spring ORB及びDO
E ORBはどちらも単純データ型についてはONC
XDRフォーマットを使用するが、アレイディスクリプ
タを転送する際には、DOE ORBは長さを指定する
整数を送るだけであるのに対し、Spring ORB
は、アレイの下限を指定する整数と、アレイの上限を指
定する整数の2つの整数を送る。このことは、異なるO
RB間で使用することができるスタブが欲しい場合、そ
れらのスタブはアレイディスクリプタのようなものを直
接整列することができず、むしろ何らかのORB固有性
コードを呼び込まなければならないということを意味す
る。
【0040】最後に、オブジェクト参照、メソッド識別
子、例外識別子、及びタイプ識別子のような種々のID
L関連メタデータについては、様々なフォーマットがあ
るように思われる。例えば、Springはメソッド識
別子として整数を使用する。他のORBは、単純メソッ
ド名かまたは完全修飾されたインタフェース名とメソッ
ド名を組合せたものを送る。
子、例外識別子、及びタイプ識別子のような種々のID
L関連メタデータについては、様々なフォーマットがあ
るように思われる。例えば、Springはメソッド識
別子として整数を使用する。他のORBは、単純メソッ
ド名かまたは完全修飾されたインタフェース名とメソッ
ド名を組合せたものを送る。
【0041】移植性戦略 本発明のこの実施形態の場合、総合的戦略は、ORB独
立性のスタブを生成すること、及び個々のオブジェクト
参照内部のORB従属性を見えなくすることであった。
この戦略には、たった一つのJavaスタブコンパイラ
を使って、どのようなORBでも使用できるスタブを生
成することができるという大きな長所がある。しかしな
がら、このことは、スタブとこれらのスタブにORB独
立な仕方でアーギュメントを整列し、リモート操作を呼
び出させるオブジェクト参照との間にインタフェースが
なければならないということを意味する。
立性のスタブを生成すること、及び個々のオブジェクト
参照内部のORB従属性を見えなくすることであった。
この戦略には、たった一つのJavaスタブコンパイラ
を使って、どのようなORBでも使用できるスタブを生
成することができるという大きな長所がある。しかしな
がら、このことは、スタブとこれらのスタブにORB独
立な仕方でアーギュメントを整列し、リモート操作を呼
び出させるオブジェクト参照との間にインタフェースが
なければならないということを意味する。
【0042】Springシステムでサブコントラクト
メカニズムを使用した経験を用いて、スタブとORB固
有レイヤとの間の区切りを設計した。Springは、
反復やデータキャッシング等をサポートすることができ
るように、異なるオブジェクト参照が異なるフォーマッ
トを持ち、かつ異なる呼出しメカニズムを持つことを可
能にする。これは、サブコントラクトと呼ばれるソフト
ウェアモジュ−ルに各オブジェクト参照を関連付けるこ
とによって可能になる。Springスタブがオブジェ
クト参照を整列したい場合または呼び出したい時は、そ
れらの整列動作またはオブジェクト呼出しがサブコント
ラクトにとって適切な仕方で行われるように、そのオブ
ジェクト呼出しに対応付けられたサブコントラクトを読
み込む。
メカニズムを使用した経験を用いて、スタブとORB固
有レイヤとの間の区切りを設計した。Springは、
反復やデータキャッシング等をサポートすることができ
るように、異なるオブジェクト参照が異なるフォーマッ
トを持ち、かつ異なる呼出しメカニズムを持つことを可
能にする。これは、サブコントラクトと呼ばれるソフト
ウェアモジュ−ルに各オブジェクト参照を関連付けるこ
とによって可能になる。Springスタブがオブジェ
クト参照を整列したい場合または呼び出したい時は、そ
れらの整列動作またはオブジェクト呼出しがサブコント
ラクトにとって適切な仕方で行われるように、そのオブ
ジェクト呼出しに対応付けられたサブコントラクトを読
み込む。
【0043】この実施形態のJAVA ORB実装系に
おいては、一組のスタブが多数のORBと通信できるよ
うに、特別な抽象インタフェースが付加された。抽象M
arshalBufferインタフェースが付加され、
MarshalBufferの生成は、異なるORBが
各ORBにとって適切なフォーマットでデータを整列/
整列解除するMarshalBufferの各々異なる
サブクラスを提供することができるように、スタブから
サブコントラクトに移された。図3は、Java OR
Bクラスの構成を示す。図3において、Javaアプリ
ケーション70は、一組のスタブ68を用いて一組のリ
モートオブジェクト(図示省略)とトークする。これら
のスタブ及びアプリケーションは、汎用的に「OS独立
/ORB従属」レイヤ61とのインタフェースを取る
「ORB独立」レイヤ69をなす。一例の「OS独立/
ORB従属」レイヤ61は、例えば、同じMarsha
lBuffer60及びSpringネットワークプロ
トコル・コードメカニズム56を用いてリモートオブジ
ェクト(図示省略)とトークする2つの異なるSpri
ngサブコントラクトメカニズム66、64よりなる。
図には、DOEMarshalBuffer58を使用
するSunのDOE ORBによって使用されるORB
従属コードメカニズム62が示されており、一方DOE
MarshalBuffer58はDOEネットワー
クプロトコル・コードメカニズム54を使用する。この
例においては、Springネットワークプロトコル・
コードメカニズム56及びDOEネットワークプロトコ
ル・コードメカニズム54は、どちらもJavaネット
ワーク「Socket」コードメカニズム52を使用す
る。(Java 「Socket」クラスは、UNIX
バ−クレイ配布版で提供されるソケットインタフェース
と大まかな点で類似したやり方でTCP/IP及びUD
P関数系へのアクセスを可能にする。)このJavaネ
ットワーク「Socket」コードメカニズム52は、
実行中のどのようなOSからでもオペレーティングシス
テム(OS)サ−ビス51を利用する。
おいては、一組のスタブが多数のORBと通信できるよ
うに、特別な抽象インタフェースが付加された。抽象M
arshalBufferインタフェースが付加され、
MarshalBufferの生成は、異なるORBが
各ORBにとって適切なフォーマットでデータを整列/
整列解除するMarshalBufferの各々異なる
サブクラスを提供することができるように、スタブから
サブコントラクトに移された。図3は、Java OR
Bクラスの構成を示す。図3において、Javaアプリ
ケーション70は、一組のスタブ68を用いて一組のリ
モートオブジェクト(図示省略)とトークする。これら
のスタブ及びアプリケーションは、汎用的に「OS独立
/ORB従属」レイヤ61とのインタフェースを取る
「ORB独立」レイヤ69をなす。一例の「OS独立/
ORB従属」レイヤ61は、例えば、同じMarsha
lBuffer60及びSpringネットワークプロ
トコル・コードメカニズム56を用いてリモートオブジ
ェクト(図示省略)とトークする2つの異なるSpri
ngサブコントラクトメカニズム66、64よりなる。
図には、DOEMarshalBuffer58を使用
するSunのDOE ORBによって使用されるORB
従属コードメカニズム62が示されており、一方DOE
MarshalBuffer58はDOEネットワー
クプロトコル・コードメカニズム54を使用する。この
例においては、Springネットワークプロトコル・
コードメカニズム56及びDOEネットワークプロトコ
ル・コードメカニズム54は、どちらもJavaネット
ワーク「Socket」コードメカニズム52を使用す
る。(Java 「Socket」クラスは、UNIX
バ−クレイ配布版で提供されるソケットインタフェース
と大まかな点で類似したやり方でTCP/IP及びUD
P関数系へのアクセスを可能にする。)このJavaネ
ットワーク「Socket」コードメカニズム52は、
実行中のどのようなOSからでもオペレーティングシス
テム(OS)サ−ビス51を利用する。
【0044】MarshalBufferインタフェー
ス 本発明のこの実施形態においては、スタブとMarsh
alBufferインタフェ−スの間のインタフェース
は、スタブが文字やロングワ−ドのような単純な基本型
を整列するだけでなく、構造化IDLデータ型をどのよ
うにして整列するかに対する制御権も与えられるように
して定義された。これは、アレイヘッダやユニオンディ
スクリミネ−タを整列/整列解除するための汎用Mar
shalBufferメソッドを提供するということで
あった。
ス 本発明のこの実施形態においては、スタブとMarsh
alBufferインタフェ−スの間のインタフェース
は、スタブが文字やロングワ−ドのような単純な基本型
を整列するだけでなく、構造化IDLデータ型をどのよ
うにして整列するかに対する制御権も与えられるように
して定義された。これは、アレイヘッダやユニオンディ
スクリミネ−タを整列/整列解除するための汎用Mar
shalBufferメソッドを提供するということで
あった。
【0045】統合 本発明の文脈においては、異なるアプリケーションが異
なるORBと対応付けられた実装系を有するオブジェク
トをコールし、あるいはそれらのオブジェクトにデータ
を送ることができるが、この場合は、ターゲットORB
を決定し、ターゲット実装系用のデータを整列する方法
を知っているMarshalBufferを探し出し、
ターゲット実装系が入っている計算機と通信するために
ORB独立コード/サブコントラクトメカニズムを使用
する。次に、図5において、クライアントアプリケーシ
ョン112はやはりスタブ114に対してコールを発す
る。しかしながら、この場合、スタブ114は、この実
施形態においてはobjref中の指示によって決定さ
れるORB固有コード/サブコントラクトメカニズム2
12へコールを送る。他の実施形態は、特定のオブジェ
クトコールによって要求されたORB固有コードメカニ
ズムを識別するための何らかのORB−IDメカニズム
を有することもあり、その場合、このORB−IDメカ
ニズムは、例えばオブジェクト実装系が生成される時に
指定し、その後このオブジェクトがコールされる度に使
用することも可能である。当業者であれば、オブジェク
ト参照によって要求されたORB固有コードを識別する
には、多くのやり方があるということは理解できよう。
このORB固有コード/サブコントラクトメカニズム2
12は、ターゲットORBがどのようなフォーマットを
要求しているかを決定し、適切な整列を行うことができ
るMarshalBufferオブジェクト210を用
意し、クライアントスタブ114にどのMarshal
Bufferオブジェクト210を使用すべきかを知ら
せる。クライアントスタブ114は、このMarsha
lBufferオブジェクト210を用いてデータを整
列し、前と同様に、ネットワークソフトウェア・コード
メカニズム/装置116に送る。サーバ側118では、
ターゲットORB固有コードメカニズム214はデータ
を整列解除する方法を知っており、データをUnmar
shalBufferへ送るが、このUnmarsha
lBufferは、Java転送の場合、サーバマシン
による実行のためにバイトコードデータを翻訳するため
の仮想計算機であってもよい。
なるORBと対応付けられた実装系を有するオブジェク
トをコールし、あるいはそれらのオブジェクトにデータ
を送ることができるが、この場合は、ターゲットORB
を決定し、ターゲット実装系用のデータを整列する方法
を知っているMarshalBufferを探し出し、
ターゲット実装系が入っている計算機と通信するために
ORB独立コード/サブコントラクトメカニズムを使用
する。次に、図5において、クライアントアプリケーシ
ョン112はやはりスタブ114に対してコールを発す
る。しかしながら、この場合、スタブ114は、この実
施形態においてはobjref中の指示によって決定さ
れるORB固有コード/サブコントラクトメカニズム2
12へコールを送る。他の実施形態は、特定のオブジェ
クトコールによって要求されたORB固有コードメカニ
ズムを識別するための何らかのORB−IDメカニズム
を有することもあり、その場合、このORB−IDメカ
ニズムは、例えばオブジェクト実装系が生成される時に
指定し、その後このオブジェクトがコールされる度に使
用することも可能である。当業者であれば、オブジェク
ト参照によって要求されたORB固有コードを識別する
には、多くのやり方があるということは理解できよう。
このORB固有コード/サブコントラクトメカニズム2
12は、ターゲットORBがどのようなフォーマットを
要求しているかを決定し、適切な整列を行うことができ
るMarshalBufferオブジェクト210を用
意し、クライアントスタブ114にどのMarshal
Bufferオブジェクト210を使用すべきかを知ら
せる。クライアントスタブ114は、このMarsha
lBufferオブジェクト210を用いてデータを整
列し、前と同様に、ネットワークソフトウェア・コード
メカニズム/装置116に送る。サーバ側118では、
ターゲットORB固有コードメカニズム214はデータ
を整列解除する方法を知っており、データをUnmar
shalBufferへ送るが、このUnmarsha
lBufferは、Java転送の場合、サーバマシン
による実行のためにバイトコードデータを翻訳するため
の仮想計算機であってもよい。
【0046】この実施形態においては、タイプFOOの
何らかのIDLオブジェクト参照に対して、一組のスタ
ブメソッドとサーバオブジェクトを識別する情報を含む
サブコントラクトオブジェクトに対するポインタとから
なるスタブクラスFOOが用意される。スタブクラスの
各オブジェクトは、異なるサブコントラクトオブジェク
トを指し、これらのサブコントラクトオブジェクトは、
異なる実装系を有することが可能であり、これによって
異なるORBとトークすることができる。スタブメソッ
ドがオブジェクト呼出しをしたいときは、適当なMar
shalBufferオブジェクトを与えるようサブコ
ントラクトに求め、そのMarshalBufferを
用いてアーギュメントを整列し、結果を整列解除する。
一例のMarshalBufferを図6に示す。図6
に示すMarshalBufferインタフェースで
は、データを整列/整列解除するORB従属コードの関
数系の間に明確な区切りがある。これらのスタブは、特
定のIDLに必要な特定の一組のアーギュメントまたは
結果がわかる。次に、スタブは、アーギュメントまたは
結果に入っている各データ項目を整列(または整列解
除)するために、MarshalBufferインタフ
ェースを実装するORB従属コードメカニズムを呼び込
む。ORB従属コードメカニズムはIDLインタフェー
スについてはまったく知らず、単に各データ項目をその
ターゲットORBにとって適切なフォーマットで整列す
るだけである。この実施形態の基本的な考え方は、
(1)図6に示すようなMarshalBufferイ
ンタフェースは、異なるORBがこれに対してそれぞれ
の実装系を提供することができるインタフェースである
ということ、及び(2)ORB従属コードがスタブにM
arshalBufferオブジェクトを提供するとい
うことである。
何らかのIDLオブジェクト参照に対して、一組のスタ
ブメソッドとサーバオブジェクトを識別する情報を含む
サブコントラクトオブジェクトに対するポインタとから
なるスタブクラスFOOが用意される。スタブクラスの
各オブジェクトは、異なるサブコントラクトオブジェク
トを指し、これらのサブコントラクトオブジェクトは、
異なる実装系を有することが可能であり、これによって
異なるORBとトークすることができる。スタブメソッ
ドがオブジェクト呼出しをしたいときは、適当なMar
shalBufferオブジェクトを与えるようサブコ
ントラクトに求め、そのMarshalBufferを
用いてアーギュメントを整列し、結果を整列解除する。
一例のMarshalBufferを図6に示す。図6
に示すMarshalBufferインタフェースで
は、データを整列/整列解除するORB従属コードの関
数系の間に明確な区切りがある。これらのスタブは、特
定のIDLに必要な特定の一組のアーギュメントまたは
結果がわかる。次に、スタブは、アーギュメントまたは
結果に入っている各データ項目を整列(または整列解
除)するために、MarshalBufferインタフ
ェースを実装するORB従属コードメカニズムを呼び込
む。ORB従属コードメカニズムはIDLインタフェー
スについてはまったく知らず、単に各データ項目をその
ターゲットORBにとって適切なフォーマットで整列す
るだけである。この実施形態の基本的な考え方は、
(1)図6に示すようなMarshalBufferイ
ンタフェースは、異なるORBがこれに対してそれぞれ
の実装系を提供することができるインタフェースである
ということ、及び(2)ORB従属コードがスタブにM
arshalBufferオブジェクトを提供するとい
うことである。
【0047】従って、例えば、図7を参照して説明する
と、Springサーバ(図示省略)を指すIDLタイ
プFOOのオブジェクト参照404が、Springの
Singletonサブコントラクト408を使用する
場合が考えられる。FOO用のスタブ406がFOOの
1つに対してコールを発する時は、まずMarshal
Bufferを与えるようサブコントラクトに要求す
る。Singletonサブコントラクト408は、S
pringオンザワイヤ・データフォーマットに従うS
pring MarshalBuffer410を送り
返す。次に、スタブ406は、メソッドアーギュメント
をそのマ−シャルバッファ410中に整列する。スタブ
406は、全てのアーギュメントを整列し終えると、サ
ブコントラクト408を呼び込んで、メソッド呼出しを
実際にサーバに転送する。Singletonサブコン
トラクト408は、Springネットワークプロトコ
ル・ハンドラ412を用いて要求をSpringサーバ
に送り、結果を受け取る。これで、スタブ406は、M
arshalBuffer410から結果を受け取っ
て、クライアントアプリケーション402へ返すことが
できる。
と、Springサーバ(図示省略)を指すIDLタイ
プFOOのオブジェクト参照404が、Springの
Singletonサブコントラクト408を使用する
場合が考えられる。FOO用のスタブ406がFOOの
1つに対してコールを発する時は、まずMarshal
Bufferを与えるようサブコントラクトに要求す
る。Singletonサブコントラクト408は、S
pringオンザワイヤ・データフォーマットに従うS
pring MarshalBuffer410を送り
返す。次に、スタブ406は、メソッドアーギュメント
をそのマ−シャルバッファ410中に整列する。スタブ
406は、全てのアーギュメントを整列し終えると、サ
ブコントラクト408を呼び込んで、メソッド呼出しを
実際にサーバに転送する。Singletonサブコン
トラクト408は、Springネットワークプロトコ
ル・ハンドラ412を用いて要求をSpringサーバ
に送り、結果を受け取る。これで、スタブ406は、M
arshalBuffer410から結果を受け取っ
て、クライアントアプリケーション402へ返すことが
できる。
【0048】この実施形態においては、IDLインタフ
ェース用の完全なクライアントスタブを生成するスタブ
コンパイラcontojavaが用いられる。
ェース用の完全なクライアントスタブを生成するスタブ
コンパイラcontojavaが用いられる。
【0049】さらに、DOEともSpringサーバと
も通信できる実用的なJava ORB実装系が使用さ
れる。Springとコールするためのコードは2つの
サブコントラクトCaching及びSingleto
n)及びSpringのプロキシ−プロキシプロトコル
のJava実装系を含む。DOEとトークするためのコ
ードは、単一のサブコントラクト(ベ−シックオブジェ
クトアダプタ(BOA)用)及びDOE BOAオブジ
ェクトを探し出し、起動するためのコードを含む。この
ORBは、全てJavaで書かれており、異なるJav
a環境間で移送可能である。このORBは、他のベンダ
によって実装されるUNOまたはORBとトークできる
サブコントラクトによって容易に拡張することができる
と考えられる。
も通信できる実用的なJava ORB実装系が使用さ
れる。Springとコールするためのコードは2つの
サブコントラクトCaching及びSingleto
n)及びSpringのプロキシ−プロキシプロトコル
のJava実装系を含む。DOEとトークするためのコ
ードは、単一のサブコントラクト(ベ−シックオブジェ
クトアダプタ(BOA)用)及びDOE BOAオブジ
ェクトを探し出し、起動するためのコードを含む。この
ORBは、全てJavaで書かれており、異なるJav
a環境間で移送可能である。このORBは、他のベンダ
によって実装されるUNOまたはORBとトークできる
サブコントラクトによって容易に拡張することができる
と考えられる。
【0050】以上、本発明を特定のオペレーティングシ
ステム環境における実施形態によって説明したが、当業
者にとっては、本発明が、修正や変更により、特許請求
の範囲に記載する本発明の範囲内において他の様々なオ
ペレーティングシステムでも実施可能であるということ
は明らかであろう。
ステム環境における実施形態によって説明したが、当業
者にとっては、本発明が、修正や変更により、特許請求
の範囲に記載する本発明の範囲内において他の様々なオ
ペレーティングシステムでも実施可能であるということ
は明らかであろう。
【図1】 本発明で使用する本発明の一部をなす典型的
なコンピュータハ−ドウェアシステムの構成を示す説明
図である。
なコンピュータハ−ドウェアシステムの構成を示す説明
図である。
【図2】 従来技術におけるクライアント及びサーバア
プリケーションとスタブ及びネットワークソフトウェア
との関係を示す説明図である。
プリケーションとスタブ及びネットワークソフトウェア
との関係を示す説明図である。
【図3】 JavaのORBクラスを示すシステムの説
明図である。
明図である。
【図4】 シングルORBシステムにおけるスタブオブ
ジェクト、ORB固有性コード/サブコントラクトメカ
ニズム、及びサーバアプリケーションオブジェクトの間
の関係を示す説明図である。
ジェクト、ORB固有性コード/サブコントラクトメカ
ニズム、及びサーバアプリケーションオブジェクトの間
の関係を示す説明図である。
【図5】 マルチORBシステムにおけるORB固有性
コード/サブコントラクト、ORB固有性Marsha
lBufferメカニズムを用いたリモートオブジェク
ト呼出しを示す説明図である。
コード/サブコントラクト、ORB固有性Marsha
lBufferメカニズムを用いたリモートオブジェク
ト呼出しを示す説明図である。
【図6】 MarshalBufferコードメカニズ
ムの一例を示す説明図である。
ムの一例を示す説明図である。
【図7】 マルチORBシステムにおけるORB固有性
コード/サブコントラクト、ORB固有性Marsha
lBufferメカニズムを用いたより具体的にリモー
トオブジェクト呼出しを示す説明図である。
コード/サブコントラクト、ORB固有性Marsha
lBufferメカニズムを用いたより具体的にリモー
トオブジェクト呼出しを示す説明図である。
112 クライアント・アプリケーション、114 ク
ライアントスタブ、210 MarshalBuffe
r、212 ORB固有性コード、116 ネットワー
クソフトウエア。
ライアントスタブ、210 MarshalBuffe
r、212 ORB固有性コード、116 ネットワー
クソフトウエア。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 スウィー・ブーン・リム アメリカ合衆国 94043 カリフォルニア 州・マウンテンビュー・スターリン ロー ド・405 (72)発明者 ピーター・ビイ・ケスラー アメリカ合衆国 94306 カリフォルニア 州・パロ アルト・ヴァドーサ ドライ ブ・4121 (72)発明者 ジェフリー・ディ・ナイスワンガー アメリカ合衆国 95112 カリフォルニア 州・サン ホゼ・ノース 16ティエイチ ストリート・532 (72)発明者 サンジェイ・アール・ラディア アメリカ合衆国 94555 カリフォルニア 州・フレモント・デッカー テラス・5474
Claims (9)
- 【請求項1】 プロセッサ、メモリ、表示装置、入出力
装置、オペレーティングシステム(OS)を有する、複
数のリモートオブジェクト要求ブローカ(ORB)の1
つに向けられたプログラムコードメカニズム呼出しを処
理するためのコンピュータシステムにおいて:プログラ
ムアプリケーション及び関連スタブを含むコードメカニ
ズムのORB独立レイヤと;そのORB独立レイヤに結
合されたコードメカニズムのORB従属レイヤで、 ORB固有で、かつORBの要求フォーマットでデータ
を整列するための整列コードメカニズムを生成するよう
構成されたプログラコードメカニズムと、 前記ORB独立レイヤからのプログラムアプリケーショ
ンコードメカニズムがそれによってリモートの実装プロ
グラムコードメカニズムに対するコールを呼び出すこと
ができ、またORB固有性のプログラムコードメカニズ
ムがそれによってORBの要求フォーマットでデータを
整列するための適切な整列コードメカニズムを決定する
特定のネットワークプロトコルコードを使用するよう構
成されたプログラムコードメカニズムと、 を有するORB従属レイヤと;を備えて各ORBが固有
のフォーマットであるデータを要求する複数のORBと
通信することができるコンピュータシステム。 - 【請求項2】 オブジェクト実装系を有するリモートコ
ンピュータノードと通信するためのクライアントアプリ
ケーション及び関連スタブを有するコンピュータノード
で使用するマルチORB整列システムにおいて:呼出し
側クライアントアプリケーションによるターゲットオブ
ジェクト実装系の呼出しを受け取るよう構成されてお
り、そおの呼出しが呼出し側クライアントアプリケーシ
ョンに関連するスタブから供給され、呼出し側クライア
ントアプリケーション及び関連スタブがその呼出しを処
理しなければならないORBについてまったく知らない
ORB固有性プログラムコードメカニズムで、複数のM
arshalBufferプログラムコードメカニズム
の1つを選択するよう構成されたORB固有性プログラ
ムコードメカニズムと;ターゲットオブジェクト実装系
の呼出しを受け取るよう構成された前記ORB固有性プ
ログラムコードメカニズムに結合されていて、前記呼出
しを処理しなければならないORBが要求する特定フォ
ーマットにアーギュメント及びデータを整列するよう構
成されたMarshalBufferプログラムコード
メカニズムと;を具備したマルチORB整列システム。 - 【請求項3】 オブジェクト実装系を有するリモートコ
ンピュータノードと通信するためのクライアントアプリ
ケーション及び関連スタブを有するコンピュータノード
で使用するMarshalBufferプログラムコー
ドメカニズムにおいて:クライアントアプリケーション
によってなされたオブジェクト実装系呼出しに関連する
アーギュメント及びデータをフォーマットするよう構成
されたプログラムコードメカニズムであって、前記呼出
し及びクライアントアプリケーションがその呼出しを処
理することができるORBについてまったく知らず、前
記呼出し及びクライアントアプリケーションがその呼出
しを処理することができるORBが要求するデータフォ
ーマットについてまったく知らないプログラムコードメ
カニズム;を具備したMarshalBufferプロ
グラムコードメカニズム。 - 【請求項4】 プロセッサ、メモリ、ディスプレイ、入
出力手段、オペレーティングシステム及び少なくとも1
つのクライアントアプリケーションプログラム、そのク
ライアントアプリケーションに関連する1つ以上のスタ
ブプログラムを有するコンピュータシステムを動作させ
る方法において:プログラム実装コードメカニズムに対
するコールを呼び出すステップであって、そのコールの
呼出しが、コールがプログラム実装コードメカニズムの
参照を含むクライアントアプリケーションによって行わ
れるステップと;前記クライアントアプリケーションに
関連するスタブプログラムコードメカニズムを用いて前
記コールの呼出しを受け取るステップであって、前記ス
タブプログラムコードメカニズムが、前記コールの呼出
しと共にクライアントアプリケーションによって供給さ
れるデータを整列するために必要なフォーマットについ
て全く知らないステップと;前記スタブプログラムコー
ドメカニズムによって第1の特定のプログラムコードメ
カニズムをコールし、その第1の特定のプログラムコー
ドメカニズムに、前記コールの呼出しと共にクライアン
トアプリケーションによって供給されるデータをフォー
マットする方法を知っているMarshalBuffe
rコードメカニズムを与えるよう要求するステップと;
前記コールの呼出しと共にクライアントアプリケーショ
ンによって供給されるデータを、MarshalBuf
ferコードメカニズムを用いてスタブプログラムコー
ドメカニズムにより整列するステップと;前記コールの
ターゲットであるプログラム実装コードメカニズムを有
するサーバにコールの呼出しを送るステップと;を具備
した方法。 - 【請求項5】 上記MarshalBufferからの
結果を整列解除するステップで、その結果が上記呼出し
によってコールされたプログラム実装コードメカニズム
によって供給されるステップをさらに具備する請求項4
記載の方法。 - 【請求項6】 複数のリモートのオブジェクト要求ブロ
ーカ(ORB)の1つに指向されたプログラムコードメ
カニズムをコンピュータシステムに処理させるためにコ
ンピュータ可読コードが収納されたコンピュータシステ
ムで使用可能な記憶媒体からなるコンピュータプログラ
ム製品において:クライアントアプリケーション及び関
連スタブプログラムコードメカニズムを含むコードメカ
ニズムのORB独立レイヤを具備するよう構成された第
1のコンピュータ可読プログラムコードメカニズムと;
前記ORB独立レイヤに結合され、コードメカニズムの
ORB従属レイヤを具備するよう構成された第2のコン
ピュータ可読プログラムコードメカニズムであって、そ
のORB従属レイヤが、ORB固有性であり、ORBの
要求フォーマットでデータを整列するための整列コード
メカニズムを生成するよう構成されたプログラムコード
メカニズムと、前記ORB独立レイヤからのプログラム
アプリケーションコードメカニズムがそれによってリモ
−トの実装プログラムコードメカニズムに対するコール
を呼び出すことができ、またがORB固有性のプログラ
ムコードメカニズムがそれによってORBの要求フォー
マットでデータを整列するための適切な整列コードメカ
ニズムを決定する特定のネットワークプロトコルコード
を使用するように構成されたプログラムコードメカニズ
ムとからなる第2のコンピュータ可読プログラムコード
メカニズムと;を有し、各ORBがデータが固有のフォ
ーマットであることを要求する複数のORBと通信する
ことができるコンピュータシステムを形成するコンピュ
ータプログラム製品。 - 【請求項7】 コンピュータの実装系が呼出しデータが
特定フォーマットで実行されることを要求するオブジェ
クト実装系を有するリモートコンピュータノ−ドと通信
するためのクライアントアプリケーション及び関連スタ
ブを有するコンピュータノードで使用するためのコンピ
ュータによって実行される方法において:呼出し側クラ
イアントアプリケーションによるターゲットオブジェク
ト実装系の呼出しを受け取るよう構成されたオブジェク
ト要求ブローカ(ORB)固有性プログラムコードメカ
ニズムであって、その呼出しが呼出し側クライアントア
プリケーションに関連するスタブから供給され、前記呼
出し側クライアントアプリケーション及び関連スタブが
その呼出しを処理しなければならないORBについてま
ったく知らず、複数のMarshalBufferプロ
グラムコードメカニズムの1つを選択するよう構成され
たORB固有性プログラムコードメカニズムを使用する
ステップと;前記呼出しを処理しなければならないOR
Bが要求する特定フォーマットにアーギュメント及びデ
ータを整列するよう構成されたMarshalBuff
erプログラムコードメカニズムを使用するステップ
と;を具備した方法。 - 【請求項8】 オブジェクト実装系を有するリモートコ
ンピュータノードと通信するためのクライアントアプリ
ケーション及び関連スタブを有するコンピュータノード
で使用するための特定フォーマットにデータを整列する
コンピュータによって実行される方法において:クライ
アントアプリケーションによってなされたオブジェクト
実装系呼出しに関連するアーギュメント及びデータをフ
ォーマットするよう構成された整列プログラムコードメ
カニズムであって、前記呼出し及びクライアントアプリ
ケーションがその呼出しを処理することができるオブジ
ェクト要求ブローカ(ORB)についてまったく知ら
ず、前記呼出し及びクライアントアプリケーションがそ
の呼出しを処理することができる前記ORBが要求する
データフォーマットについてまったく知らない整列プロ
グラムコードメカニズムを用意するステップと;前記整
列プログラムコードメカニズムを用いて前記アーギュメ
ント及びデータを整列及び整列解除するステップと;を
具備した方法。 - 【請求項9】 サーバ側ORB充足コードメカニズムに
よってリモートコンピュータシステムからのオブジェク
ト呼出しを受け取るステップと;ORB独立サーバアプ
リケーションに対する呼び出しを発するステップであっ
て、その呼び出しが、サーバアプリケーションにどのO
RBから呼び出しが出されているかを知る必要なくアー
ギュメントを整列解除させ、結果を整列させるMars
halBufferで送られるサーバ側ORB独立コー
ドメカニズムによって行われるステップと;をさらに具
備した請求項4記載の方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/534966 | 1995-09-28 | ||
| US08/534,966 US5737607A (en) | 1995-09-28 | 1995-09-28 | Method and apparatus for allowing generic stubs to marshal and unmarshal data in object reference specific data formats |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH09231076A true JPH09231076A (ja) | 1997-09-05 |
Family
ID=24132257
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8276814A Withdrawn JPH09231076A (ja) | 1995-09-28 | 1996-09-30 | 汎用スタブがオブジェクト参照固有のデータフォーマットのデータを整列/整列解除できるようにする方法及びそのための装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5737607A (ja) |
| EP (1) | EP0766172B1 (ja) |
| JP (1) | JPH09231076A (ja) |
| DE (1) | DE69615978T2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000242587A (ja) * | 1999-02-24 | 2000-09-08 | Pfu Ltd | オブジェクト処理装置及びそのプログラム記憶媒体 |
Families Citing this family (173)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6038395A (en) * | 1994-12-16 | 2000-03-14 | International Business Machines Corporation | System and method for implementing proxy objects in a visual application builder framework |
| US6009464A (en) * | 1995-09-20 | 1999-12-28 | Sun Microsystems, Inc. | Method and apparatus for enabling application programs to communicate with network clients and servers |
| US6078308A (en) | 1995-12-13 | 2000-06-20 | Immersion Corporation | Graphical click surfaces for force feedback applications to provide user selection using cursor interaction with a trigger position within a boundary of a graphical object |
| US5887172A (en) | 1996-01-10 | 1999-03-23 | Sun Microsystems, Inc. | Remote procedure call system and method for RPC mechanism independent client and server interfaces interoperable with any of a plurality of remote procedure call backends |
| US9094384B2 (en) * | 1996-02-16 | 2015-07-28 | Reference Ltd., Limited Liability Company | TCP/IP protocol network with satellite nodes |
| US6173332B1 (en) | 1996-03-06 | 2001-01-09 | Paul L. Hickman | Method and apparatus for computing over a wide area network |
| US7100069B1 (en) * | 1996-02-16 | 2006-08-29 | G&H Nevada-Tek | Method and apparatus for controlling a computer over a wide area network |
| US6075863A (en) * | 1996-02-28 | 2000-06-13 | Encanto Networks | Intelligent communication device |
| US7080127B1 (en) * | 1996-03-06 | 2006-07-18 | Hickman Paul L | Method and apparatus for computing within a wide area network |
| US6446070B1 (en) | 1998-02-26 | 2002-09-03 | Sun Microsystems, Inc. | Method and apparatus for dynamic distributed computing over a network |
| US6463446B1 (en) | 1998-02-26 | 2002-10-08 | Sun Microsystems, Inc. | Method and apparatus for transporting behavior in an event-based distributed system |
| US6466947B2 (en) | 1998-03-20 | 2002-10-15 | Sun Microsystems, Inc. | Apparatus and method for dynamically verifying information in a distributed system |
| US6247026B1 (en) | 1996-10-11 | 2001-06-12 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of delegation certificates in a 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 |
| US6226746B1 (en) | 1998-03-20 | 2001-05-01 | Sun Microsystems, Inc. | Stack-based system and method to combine security requirements of methods |
| 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 |
| US6578044B1 (en) | 1997-11-17 | 2003-06-10 | Sun Microsystems, Inc. | Method and system for typesafe attribute matching |
| US6272559B1 (en) * | 1997-10-15 | 2001-08-07 | Sun Microsystems, Inc. | Deferred reconstruction of objects and remote loading for event notification in a distributed system |
| US6185611B1 (en) | 1998-03-20 | 2001-02-06 | Sun Microsystem, Inc. | Dynamic lookup service in a distributed system |
| US6438614B2 (en) | 1998-02-26 | 2002-08-20 | Sun Microsystems, Inc. | Polymorphic token based control |
| US6708171B1 (en) | 1996-04-23 | 2004-03-16 | Sun Microsystems, Inc. | Network proxy |
| US6138238A (en) | 1997-12-11 | 2000-10-24 | Sun Microsystems, Inc. | Stack-based access control using code and executor identifiers |
| US6598094B1 (en) | 1998-03-20 | 2003-07-22 | Sun Microsystems, Inc. | Method and apparatus for determining status of remote objects 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 |
| US6421704B1 (en) | 1998-03-20 | 2002-07-16 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of group membership in a distributed system |
| US6237024B1 (en) | 1998-03-20 | 2001-05-22 | Sun Microsystem, Inc. | Method and apparatus for the suspension and continuation of remote processes |
| US6832223B1 (en) | 1996-04-23 | 2004-12-14 | Sun Microsystems, Inc. | Method and system for facilitating access to a lookup service |
| 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 |
| US6189048B1 (en) * | 1996-06-26 | 2001-02-13 | Sun Microsystems, Inc. | Mechanism for dispatching requests in a distributed object system |
| US6044409A (en) | 1996-06-26 | 2000-03-28 | Sun Microsystems, Inc. | Framework for marshaling and unmarshaling argument object references |
| US5991823A (en) * | 1996-06-26 | 1999-11-23 | Sun Microsystems, Inc. | Low overhead object adaptor |
| US6032199A (en) * | 1996-06-26 | 2000-02-29 | Sun Microsystems, Inc. | Transport independent invocation and servant interfaces that permit both typecode interpreted and compiled marshaling |
| US6260078B1 (en) * | 1996-07-03 | 2001-07-10 | Sun Microsystems, Inc. | Using a distributed object system to find and download java-based applications |
| US6347342B1 (en) * | 1996-07-15 | 2002-02-12 | Next Software, Inc. | Method and apparatus for dynamically brokering object messages among object models |
| US6102965A (en) * | 1996-09-23 | 2000-08-15 | National Instruments Corporation | System and method for providing client/server access to graphical programs |
| US5832529A (en) | 1996-10-11 | 1998-11-03 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection |
| US6728737B2 (en) | 1996-10-11 | 2004-04-27 | Sun Microsystems, Inc. | Method and system for leasing storage |
| US6237009B1 (en) | 1996-10-11 | 2001-05-22 | Sun Microsystems, Inc. | Lease renewal service |
| US6553428B1 (en) * | 1996-11-18 | 2003-04-22 | International Business Machines Corporation | Distributed object instantiation of native objects in java |
| US6401109B1 (en) * | 1996-11-18 | 2002-06-04 | International Business Machines Corp. | Virtual socket for JAVA interprocess communication |
| US6026404A (en) * | 1997-02-03 | 2000-02-15 | Oracle Corporation | Method and system for executing and operation in a distributed environment |
| US6247056B1 (en) | 1997-02-03 | 2001-06-12 | Oracle Corporation | Method and apparatus for handling client request with a distributed web application server |
| US6845505B1 (en) | 1997-02-03 | 2005-01-18 | Oracle International Corporation | Web request broker controlling multiple processes |
| US6225995B1 (en) | 1997-10-31 | 2001-05-01 | Oracle Corporaton | Method and apparatus for incorporating state information into a URL |
| US6710786B1 (en) | 1997-02-03 | 2004-03-23 | Oracle International Corporation | Method and apparatus for incorporating state information into a URL |
| US6112183A (en) * | 1997-02-11 | 2000-08-29 | United Healthcare Corporation | Method and apparatus for processing health care transactions through a common interface in a distributed computing environment |
| US7203769B2 (en) * | 1997-03-14 | 2007-04-10 | International Business Machines Corporation | Bootstrapping technique for distributed object client systems |
| US6189046B1 (en) * | 1997-03-27 | 2001-02-13 | Hewlett-Packard Company | Mechanism and method for merging cached location information in a distributed object environment |
| US6282581B1 (en) * | 1997-03-27 | 2001-08-28 | Hewlett-Packard Company | Mechanism for resource allocation and for dispatching incoming calls in a distributed object environment |
| US5999988A (en) * | 1997-03-31 | 1999-12-07 | Sun Microsystems, Inc. | Method and apparatus for generating and employing a run-time generated stub to reference an object in object oriented systems |
| JP3490256B2 (ja) * | 1997-06-12 | 2004-01-26 | 三菱電機株式会社 | エージェント方式 |
| US6374305B1 (en) * | 1997-07-21 | 2002-04-16 | Oracle Corporation | Web applications interface system in a mobile-based client-server system |
| EP0915419A3 (en) | 1997-10-06 | 2003-11-12 | Sun Microsystems, Inc. | Remote object access |
| US6957427B1 (en) * | 1997-10-15 | 2005-10-18 | Sun Microsystems, Inc. | Remote object activation in a distributed system |
| US6253256B1 (en) * | 1997-10-15 | 2001-06-26 | Sun Microsystems, Inc. | Deferred reconstruction of objects and remote loading in a distributed system |
| US6334114B1 (en) | 1997-10-31 | 2001-12-25 | Oracle Corporation | Method and apparatus for performing transactions in a stateless web environment which supports a declarative paradigm |
| 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 |
| US6405264B1 (en) | 1997-12-18 | 2002-06-11 | Sun Microsystems, Inc. | Marshaling and unmarshaling framework for supporting filters in a distributed object system |
| 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 |
| US6167565A (en) * | 1998-01-08 | 2000-12-26 | Microsoft Corporation | Method and system of custom marshaling of inter-language parameters |
| KR20010034514A (ko) | 1998-02-26 | 2001-04-25 | 케네쓰 올센 | 원격 메소드를 식별하는 해시 판정 방법 및 시스템 |
| US6604127B2 (en) | 1998-03-20 | 2003-08-05 | Brian T. Murphy | Dynamic lookup service in distributed system |
| US6298391B1 (en) * | 1998-03-13 | 2001-10-02 | Microsoft Corporation | Remote procedure calling with marshaling and unmarshaling of arbitrary non-conformant pointer sizes |
| US7028312B1 (en) * | 1998-03-23 | 2006-04-11 | Webmethods | XML remote procedure call (XML-RPC) |
| US6195685B1 (en) * | 1998-05-22 | 2001-02-27 | International Business Machines Corporation | Flexible event sharing, batching, and state consistency mechanisms for interactive applications |
| US6490623B1 (en) * | 1998-08-24 | 2002-12-03 | International Business Machines Corporation | System, method and computer readable code for encapsulating system, language and device independent communications socket functionality in a lightweight uniform communications object model |
| US6631515B1 (en) | 1998-09-24 | 2003-10-07 | International Business Machines Corporation | Method and apparatus to reduce code size and runtime in a Java environment |
| US6847987B2 (en) | 1998-09-30 | 2005-01-25 | International Business Machines Corporation | System and method for extending client-server software to additional client platforms for servicing thin clients requests |
| US6385661B1 (en) * | 1998-10-19 | 2002-05-07 | Recursion Software, Inc. | System and method for dynamic generation of remote proxies |
| SE521114C2 (sv) * | 1998-10-20 | 2003-09-30 | Corus Technologies Ab | Anordning och förfarande för integrering av ett antal datoriserade väsentligen godtyckliga klientsystem |
| US6421739B1 (en) * | 1999-01-30 | 2002-07-16 | Nortel Networks Limited | Fault-tolerant java virtual machine |
| US6901518B1 (en) | 1999-04-08 | 2005-05-31 | Sun Microsystems, Inc. | Method and system for establishing trust in downloaded proxy code |
| US8346971B2 (en) * | 1999-05-04 | 2013-01-01 | At&T Intellectual Property I, Lp | Data transfer, synchronising applications, and low latency networks |
| US6877163B1 (en) | 1999-06-14 | 2005-04-05 | Sun Microsystems, Inc. | Method and system for dynamic proxy classes |
| US6845393B1 (en) | 1999-06-14 | 2005-01-18 | Sun Microsystems, Inc. | Lookup discovery service in a distributed system having a plurality of lookup services each with associated characteristics and services |
| US6611817B1 (en) | 1999-06-17 | 2003-08-26 | International Business Machines Corporation | Automated technique for code generation of datastream mappings |
| US6412010B1 (en) * | 1999-06-18 | 2002-06-25 | Hewlett-Packard Company | Apparatus and method for implementing a network protocol that supports the transmission of a variable number of application-usable object over a network as a single network transmittable container object and the re-creation of those application-usable object therefrom |
| US6606660B1 (en) * | 1999-08-31 | 2003-08-12 | Accenture Llp | Stream-based communication in a communication services patterns environment |
| US6615253B1 (en) | 1999-08-31 | 2003-09-02 | Accenture Llp | Efficient server side data retrieval for execution of client side applications |
| US7289964B1 (en) | 1999-08-31 | 2007-10-30 | Accenture Llp | System and method for transaction services patterns in a netcentric environment |
| US6640238B1 (en) | 1999-08-31 | 2003-10-28 | Accenture Llp | Activity component in a presentation services patterns environment |
| US6578068B1 (en) | 1999-08-31 | 2003-06-10 | Accenture Llp | Load balancer in environment services patterns |
| US6640244B1 (en) | 1999-08-31 | 2003-10-28 | Accenture Llp | Request batcher in a transaction services patterns environment |
| US6549949B1 (en) | 1999-08-31 | 2003-04-15 | Accenture Llp | Fixed format stream in a communication services patterns environment |
| US6601234B1 (en) | 1999-08-31 | 2003-07-29 | Accenture Llp | Attribute dictionary in a business logic services environment |
| US6842906B1 (en) | 1999-08-31 | 2005-01-11 | Accenture Llp | System and method for a refreshable proxy pool in a communication services patterns environment |
| US6571282B1 (en) | 1999-08-31 | 2003-05-27 | Accenture Llp | Block-based communication in a communication services patterns environment |
| US6715145B1 (en) | 1999-08-31 | 2004-03-30 | Accenture Llp | Processing pipeline in a base services pattern environment |
| US6636242B2 (en) | 1999-08-31 | 2003-10-21 | Accenture Llp | View configurer in a presentation services patterns environment |
| US6640249B1 (en) | 1999-08-31 | 2003-10-28 | Accenture Llp | Presentation services patterns in a netcentric environment |
| US6601192B1 (en) | 1999-08-31 | 2003-07-29 | Accenture Llp | Assertion component in environment services patterns |
| US6742015B1 (en) | 1999-08-31 | 2004-05-25 | Accenture Llp | Base services patterns in a netcentric environment |
| US6477580B1 (en) * | 1999-08-31 | 2002-11-05 | Accenture Llp | Self-described stream in a communication services patterns environment |
| US6954220B1 (en) | 1999-08-31 | 2005-10-11 | Accenture Llp | User context component in environment services patterns |
| US6629128B1 (en) * | 1999-11-30 | 2003-09-30 | Recursion Software, Inc. | System and method for distributed processing in a computer network |
| US6678743B1 (en) | 1999-11-30 | 2004-01-13 | Recursion Software, Inc. | Method for moving objects in a distributed computing environment |
| US6947965B2 (en) * | 1999-11-30 | 2005-09-20 | Recursion Software, Inc. | System and method for communications in a distributed computing environment |
| EP1122644A1 (en) * | 2000-01-14 | 2001-08-08 | Sun Microsystems, Inc. | A method and system for dynamically dispatching function calls from a first execution environment to a second execution environment |
| EP1117033A1 (en) * | 2000-01-14 | 2001-07-18 | Sun Microsystems, Inc. | Dynamic dispatch function |
| EP1117220A1 (en) | 2000-01-14 | 2001-07-18 | Sun Microsystems, Inc. | Method and system for protocol conversion |
| US6678700B1 (en) * | 2000-04-27 | 2004-01-13 | General Atomics | System of and method for transparent management of data objects in containers across distributed heterogenous resources |
| US7260543B1 (en) | 2000-05-09 | 2007-08-21 | Sun Microsystems, Inc. | Automatic lease renewal with message gates in a distributed computing environment |
| US7200848B1 (en) | 2000-05-09 | 2007-04-03 | Sun Microsystems, Inc. | Migrating processes using data representation language representations of the processes in a distributed computing environment |
| US6918084B1 (en) | 2000-05-09 | 2005-07-12 | Sun Microsystems, Inc. | Spawning new repository spaces using information provided in advertisement schema messages |
| 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 |
| 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 |
| US8135796B1 (en) | 2000-05-09 | 2012-03-13 | Oracle America, Inc. | Mechanism and apparatus for accessing and addressing services in a distributed computing environment |
| US6789126B1 (en) | 2000-05-09 | 2004-09-07 | Sun Microsystems, Inc. | Addressing message gates in a distributed computing environment |
| US6868447B1 (en) | 2000-05-09 | 2005-03-15 | Sun Microsystems, Inc. | Mechanism and apparatus for returning results of services in a distributed computing environment |
| US6950875B1 (en) | 2000-05-09 | 2005-09-27 | Sun Microsystems, Inc. | Message conductors in a distributed computing environment |
| US6970869B1 (en) | 2000-05-09 | 2005-11-29 | Sun Microsystems, Inc. | Method and apparatus to discover services and negotiate capabilities |
| US6973493B1 (en) | 2000-05-09 | 2005-12-06 | Sun Microsystems, Inc. | Mechanism and apparatus for security of newly spawned repository spaces in a distributed computing environment |
| US6850979B1 (en) | 2000-05-09 | 2005-02-01 | Sun Microsystems, Inc. | Message gates in a distributed computing environment |
| US7010573B1 (en) * | 2000-05-09 | 2006-03-07 | Sun Microsystems, Inc. | Message gates using a shared transport in a distributed computing environment |
| US7065574B1 (en) | 2000-05-09 | 2006-06-20 | Sun Microsystems, Inc. | Messaging system using pairs of message gates in a distributed computing environment |
| US7716492B1 (en) | 2000-05-09 | 2010-05-11 | Oracle America, Inc. | Method and apparatus to obtain service capability credentials |
| US7080078B1 (en) | 2000-05-09 | 2006-07-18 | Sun Microsystems, Inc. | Mechanism and apparatus for URI-addressable repositories of service advertisements and other content in a distributed computing environment |
| US6898618B1 (en) | 2000-05-09 | 2005-05-24 | Sun Microsystems, Inc. | Client-specified display services in a distributed computing environment |
| US7016966B1 (en) * | 2000-05-09 | 2006-03-21 | Sun Microsystems, Inc. | Generating results gates in a distributed computing environment |
| US7577834B1 (en) | 2000-05-09 | 2009-08-18 | Sun Microsystems, Inc. | Message authentication using message gates in a distributed computing environment |
| US7072967B1 (en) | 2000-05-09 | 2006-07-04 | Sun Microsystems, Inc. | Efficient construction of message endpoints |
| US7370091B1 (en) | 2000-05-09 | 2008-05-06 | Sun Microsystems, Inc. | Method and apparatus for obtaining space advertisements |
| 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 |
| US7188251B1 (en) | 2000-05-09 | 2007-03-06 | Sun Microsystems, Inc. | System and method for secure message-based leasing of resources in a distributed computing environment |
| US6917976B1 (en) | 2000-05-09 | 2005-07-12 | Sun Microsystems, Inc. | Message-based leasing of resources 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 |
| US7395333B1 (en) | 2000-05-09 | 2008-07-01 | Sun Microsystems, Inc. | Method and apparatus to obtain negotiated service advertisement |
| US7243356B1 (en) | 2000-05-09 | 2007-07-10 | Sun Microsystems, Inc. | Remote method invocation with secure messaging in a distributed computing environment |
| US6957237B1 (en) | 2000-06-02 | 2005-10-18 | Sun Microsystems, Inc. | Database store 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 |
| US6854115B1 (en) | 2000-06-02 | 2005-02-08 | Sun Microsystems, Inc. | Process persistence in a virtual machine |
| US6941410B1 (en) | 2000-06-02 | 2005-09-06 | Sun Microsystems, Inc. | Virtual heap for a virtual machine |
| US6865657B1 (en) | 2000-06-02 | 2005-03-08 | Sun Microsystems, Inc. | Garbage collector for a virtual heap |
| US6760815B1 (en) | 2000-06-02 | 2004-07-06 | Sun Microsystems, Inc. | Caching mechanism for a virtual heap |
| US20030005407A1 (en) * | 2000-06-23 | 2003-01-02 | Hines Kenneth J. | System and method for coordination-centric design of software systems |
| FR2810755B1 (fr) * | 2000-06-27 | 2003-01-17 | Cit Alcatel | Procede de gestion d'informations en java |
| US6769123B1 (en) * | 2000-09-07 | 2004-07-27 | Cisco Technology, Inc. | Method and apparatus of using a single computer program source code base to provide a program that is operable in either a client-server mode or a standalone mode |
| US7543304B2 (en) * | 2000-12-14 | 2009-06-02 | Borland Software Corporation | Method for efficient location of corba objects based on an unmarshaled object key in a request |
| US7082116B2 (en) * | 2000-12-28 | 2006-07-25 | Nortel Networks Limited | Methods and systems implementing mobility support in a packet-based wireless access network |
| US7296275B2 (en) | 2001-01-04 | 2007-11-13 | Sun Microsystems, Inc. | Method and system for passing objects in a distributed system using serialization contexts |
| US20020178141A1 (en) * | 2001-05-25 | 2002-11-28 | Kushnirskiy Igor Davidovich | Method and apparatus for remote inter-language method calling |
| 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 |
| US20030144970A1 (en) * | 2001-12-10 | 2003-07-31 | Coyne Patrick J. | Project management database and method of managing project related information |
| US8935297B2 (en) * | 2001-12-10 | 2015-01-13 | Patrick J. Coyne | Method and system for the management of professional services project information |
| US7464384B2 (en) * | 2002-03-14 | 2008-12-09 | International Business Machines Corporation | Method for inter-object communication |
| US20040006653A1 (en) * | 2002-06-27 | 2004-01-08 | Yury Kamen | Method and system for wrapping existing web-based applications producing web services |
| US7151830B2 (en) * | 2002-12-24 | 2006-12-19 | International Business Machines Corporation | Method, system, program product and state machine representation for encrypting and decrypting a message |
| US7523169B1 (en) | 2003-02-28 | 2009-04-21 | Verizon Data Services Llc | Method and system for mapping network data for network database access |
| US7331049B1 (en) | 2003-04-21 | 2008-02-12 | Borland Software Corporation | System and methodology providing typed event and notification services |
| JP2005038076A (ja) * | 2003-07-17 | 2005-02-10 | Fujitsu Ltd | プログラムテスト用会話型スタブ装置およびスタブプログラム記憶媒体 |
| US7260216B2 (en) * | 2003-08-20 | 2007-08-21 | International Business Machines Corporation | State machine representation for encrypting and decrypting a set of data values and method for protecting the same |
| WO2005038650A1 (en) * | 2003-10-14 | 2005-04-28 | Live Media Pty Ltd | A computep, system and methods therefor |
| US7792874B1 (en) | 2004-01-30 | 2010-09-07 | Oracle America, Inc. | Dynamic provisioning for filtering and consolidating events |
| US7810077B2 (en) * | 2005-04-18 | 2010-10-05 | Oracle America Inc. | Reifying generic types while maintaining migration compatibility |
| US7533388B1 (en) * | 2005-04-28 | 2009-05-12 | Sun Microsystems, Inc. | Method and apparatus for dynamic Stubs and Ties in RMI-IIOP |
| US7735070B2 (en) * | 2005-06-30 | 2010-06-08 | Oracle America, Inc. | Allowing non-generified methods to override generified methods |
| US20070299863A1 (en) * | 2006-04-27 | 2007-12-27 | Qualcomm Incorporated | Portable object serialization |
| US20080201481A1 (en) * | 2007-02-20 | 2008-08-21 | Microsoft Corporation | Remote interface marshalling |
| US8239877B2 (en) * | 2007-08-28 | 2012-08-07 | International Business Machines Corporation | Pre-population of meta data cache for resolution of data marshaling issues |
| US20090100439A1 (en) * | 2007-10-12 | 2009-04-16 | Mcneil Donald H | Information engine |
| US20100269104A1 (en) * | 2009-04-16 | 2010-10-21 | International Business Machines Corporation | System and Methods for Generic Data Marshalling without Object Modification |
| US20110314256A1 (en) * | 2010-06-18 | 2011-12-22 | Microsoft Corporation | Data Parallel Programming Model |
| US8589867B2 (en) | 2010-06-18 | 2013-11-19 | Microsoft Corporation | Compiler-generated invocation stubs for data parallel programming model |
| US9069804B2 (en) * | 2010-07-07 | 2015-06-30 | Fujitsu Limited | System and a method for generating database model for analysis of applications |
| US8584105B1 (en) * | 2011-12-12 | 2013-11-12 | Google Inc. | Javascript application programming interfaces for independently compiled javascript binaries |
| US9176712B2 (en) * | 2013-03-14 | 2015-11-03 | Oracle International Corporation | Node Grouped Data Marshalling |
| US9830135B2 (en) * | 2014-01-29 | 2017-11-28 | Dell Products L.P. | Declarative and pluggable business logic for systems management |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 |
| US5327529A (en) * | 1990-09-24 | 1994-07-05 | Geoworks | Process of designing user's interfaces for application programs |
| EP0495279B1 (en) * | 1991-01-18 | 1997-07-16 | International Business Machines Corporation | Object oriented programming platform |
| DE69228621T2 (de) * | 1991-02-25 | 1999-07-22 | Hewlett-Packard Co., Palo Alto, Calif. | Objektorientiertes verteiltes Rechnersystem |
| JP3489123B2 (ja) * | 1992-04-15 | 2004-01-19 | 株式会社日立製作所 | アプリケーション結合方法 |
| US5526491A (en) * | 1992-09-22 | 1996-06-11 | International Business Machines Corporation | System and method for calling selected service procedure remotely by utilizing conditional construct switch statement to determine the selected service procedure in common stub procedure |
| JPH09502547A (ja) * | 1992-11-13 | 1997-03-11 | マイクロソフト コーポレイション | 遠隔手続き呼び出しのためのインターフェイスポインタをマーシャリングする方法及びシステム |
| DE69327448T2 (de) * | 1992-12-21 | 2004-03-04 | Sun Microsystems, Inc., Mountain View | Verfahren und Vorrichtung für Teilaufgaben in verteiltem Verarbeitungssystem |
| 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 |
| DE69426143T2 (de) * | 1993-09-10 | 2001-06-13 | Sun Microsystems, Inc. | Kundenseitiger Stubinterpretor |
| US5404523A (en) * | 1993-11-10 | 1995-04-04 | Digital Equipment Corporation | Method of managing requests in a transaction processing system |
| US5548723A (en) * | 1993-12-17 | 1996-08-20 | Taligent, Inc. | Object-oriented network protocol configuration system utilizing a dynamically configurable protocol stack |
-
1995
- 1995-09-28 US US08/534,966 patent/US5737607A/en not_active Expired - Lifetime
-
1996
- 1996-07-25 DE DE69615978T patent/DE69615978T2/de not_active Expired - Fee Related
- 1996-07-25 EP EP96305456A patent/EP0766172B1/en not_active Expired - Lifetime
- 1996-09-30 JP JP8276814A patent/JPH09231076A/ja not_active Withdrawn
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000242587A (ja) * | 1999-02-24 | 2000-09-08 | Pfu Ltd | オブジェクト処理装置及びそのプログラム記憶媒体 |
Also Published As
| Publication number | Publication date |
|---|---|
| DE69615978T2 (de) | 2002-04-11 |
| US5737607A (en) | 1998-04-07 |
| EP0766172B1 (en) | 2001-10-17 |
| EP0766172A1 (en) | 1997-04-02 |
| DE69615978D1 (de) | 2001-11-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH09231076A (ja) | 汎用スタブがオブジェクト参照固有のデータフォーマットのデータを整列/整列解除できるようにする方法及びそのための装置 | |
| JP2978807B2 (ja) | 遠隔プロシージャ・コール・システムおよび方法 | |
| US6959307B2 (en) | Process and system for a client object to perform a remote method invocation of a method in a server object | |
| US6393497B1 (en) | Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system | |
| US5787251A (en) | Method and apparatus for subcontracts in distributed processing systems | |
| US6487607B1 (en) | Methods and apparatus for remote method invocation | |
| US6272559B1 (en) | Deferred reconstruction of objects and remote loading for event notification in a distributed system | |
| US6820267B2 (en) | Method and system for remote automation of object oriented applications | |
| US6993774B1 (en) | System and method for remote enabling classes without interfaces | |
| US6951021B1 (en) | System and method for server-side communication support in a distributed computing environment | |
| US8359570B2 (en) | Adaptive scripting tool | |
| Satoshi | HORB: Distributed execution of Java programs | |
| EP0695992A2 (en) | Shared memory subcontract | |
| JPH1063506A (ja) | タイプコードで解釈されコンパイル(編集)されたマーシャリングを可能にするトランスポートから独立した呼出しとサーバントインターフェイス | |
| US20030055862A1 (en) | Methods, systems, and articles of manufacture for managing systems using operation objects | |
| Janssen et al. | ILU 2.0 alpha8 Reference Manual | |
| Rock-Evans | DCOM explained | |
| EP1057113B1 (en) | Deferred reconstruction of objects and remote loading for event notification in a distributed system | |
| Muckelbauer | Structural subtyping in a distributed object system | |
| Krzyzanowski | Remote Procedure Calls | |
| Huang | Design and implementation of DOSS | |
| Muckelbauer et al. | The Renaissance Distributed Object System | |
| Chiang | Development of reusable components through the use of adapters | |
| Zhang | A comparative study of DCOM/CORBA and. NET/J2EE | |
| Janson et al. | CORBA vs. DCOM |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20040902 |