JPH11353182A - 分散オブジェクトシステムにおいて可変長識別子の効率的表現のための方法及び装置 - Google Patents

分散オブジェクトシステムにおいて可変長識別子の効率的表現のための方法及び装置

Info

Publication number
JPH11353182A
JPH11353182A JP10377825A JP37782598A JPH11353182A JP H11353182 A JPH11353182 A JP H11353182A JP 10377825 A JP10377825 A JP 10377825A JP 37782598 A JP37782598 A JP 37782598A JP H11353182 A JPH11353182 A JP H11353182A
Authority
JP
Japan
Prior art keywords
identifier
server
compact
database
variable length
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
Application number
JP10377825A
Other languages
English (en)
Inventor
Ken M Cavanaugh
ケン・エム・キャヴァノウ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH11353182A publication Critical patent/JPH11353182A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 CORBA分散オブジェクト・システ
ムにおいて、可変長オブジェクト識別子を使用すること
なく、高速で復号化できて、オブジェクト呼び出し時間
を短縮するようなユニークなPOA識別子を提供する。 【解決手段】 CORBA分散オブジェクト・システ
ムにおいて、ポータブル・オブジェクト・アダプタの潜
在的なオブジェクト名の曖昧さが、可変長オブジェクト
識別子を使用することなく、可変長識別子から固定長コ
ンパクト識別子たとえば整数に変換することで解決され
る。永続性オブジェクトのマッピングは永続状態を有す
るIDサーバ上に保持されマッピングは最終的にファイ
ルに書き込まれる。サーバIDLインタフェースをID
サーバに定義し、当該インタフェースには可変長完全修
飾名を受け取りコンパクトな識別子を返すメソッドを含
む。メソッドは識別子が存在していない場合には識別子
を割り当てる。別のメソッドは識別子を受け取り名前を
返す。

Description

【発明の詳細な説明】
【0001】
【関連出願への相互参照】以下の米国特許出願は本出願
に関連しその全体として本明細書で参照に含まれる。1
992年12月21日付米国特許出願第07/995,
863号(現在は放棄されている)の継続出願として
の、1995年11月7日付米国特許出願第08/55
4,794号。1996年6月26日付米国特許出願第
08/670,682号。1996年6月26日付米国
特許出願第08/673,181号。1996年6月2
6日付米国特許出願第08/670,700号。199
6年6月26日付米国特許出願第08/670,681
号。1996年6月26日付米国特許出願第08/67
0,684号。1996年6月26日付米国特許出願第
08/669,782号。本出願と同日に、Chris
tian J.Callsen及びKen M.Cav
anaughにより出願された、代理人ドケット番号S
UN1P171/P2736号が付された、「C++に
おける例外の破棄保留のための方法及び装置」と題する
米国特許出願。本出願と同日に、Christian
J.Callsen及びKen M.Cavanaug
hにより出願された、代理人ドケット番号SUN1P1
70/P2735号が付された、「高速ローカルCOR
BAオブジェクト参照のための方法及び装置」と題する
米国特許出願。本出願と同日に、Christian
J.Callsen及びKen M.Cavanaug
hにより出願された、代理人ドケット番号P2772/
PJSIが付された「共有データ収集において安定反復
子を作成する方法及びその装置」と題する米国特許出
願。本出願と同日に出願されChristian J.
Callsen及びKenM.Cavanaughによ
り出願された、代理人ドケット番号P2747/PJS
Iが付された、「マルチスレッド・システムにおいてロ
ックしている不変量を強制するための方法及び装置」と
題する米国特許出願。本出願と同日に、Anita J
indal、Ken M.Cavanaugh、San
jeev Krishnan及びRohitGargに
より出願された、代理人ドケット番号P2755/PJ
SIが付された、「メソッド・インボケーション中のコ
ード実行のためのフィルタ構造」と題する米国特許出
願。本出願と同日に、Anita Jindal、Ke
n M.Cavanaugh及びSanjeev Kr
ishnanにより出願された、代理人ドケット番号P
2769/PJSIが付された「分散オブジェクト・シ
ステムにおいてフィルタをサポートするための整列・整
列解除構造」と題する米国特許出願。
【0002】
【産業上の利用分野】本発明は共通オブジェクト要求ブ
ローカ・アーキテクチャ(CORBA)を使用する分散
オブジェクト・システムに関し、更に詳しくはオブジェ
クト・アダプタにグループ・オブジェクト識別を実装す
るための方法及び装置に関する。
【0003】
【従来の技術】ソフトウェア・プログラムはとどまるこ
となく複雑になり続けている。初期のプログラムは、ユ
ーザに対する単純なコマンド・ライン・インタフェース
と文字表示を表わす簡単な手続きコードで構成されてい
た。これらの簡単なプログラムはグラフィカル・ユーザ
・インターフェースと多数の機能を有する複雑なプログ
ラムで次第に置き換えられて来た。プログラムが複雑に
なると、プログラムを書きデバッグするのに必要な作業
量も劇的に増加した。結果として、現代の多機能製品を
作成するのに必要なプログラミングの量を低減するため
多大な努力が払われている。こうした努力の内最も成功
したものの1つが、「オブジェクト」と呼ばれる独立し
た要素の集合としてプログラムを設計するオブジェクト
指向プログラミングの開発である。オブジェクトは多く
の場合に変更可能で再利用できるため開発にかかる労力
を削減できる。
【0004】当業者には理解されるように、オブジェク
ト指向プログラミングのコンテクストにおけるオブジェ
クトはデータとそのデータに対するメソッド又はオペレ
ーションを含むソフトウェア実体である。オブジェクト
のメソッドはそのオブジェクト内のデータを操作するた
めのインタフェースを集合的に形成する。このオブジェ
クトはプログラムのランタイムにだけ存在し、プログラ
マによって実際に書かれたオブジェクトの「クラス」か
ら作成又はインスタンス化される。プログラマによって
書かれたクラス・コードはそのコードからオブジェクト
をインスタンス化することで別のプログラマが「再利
用」できる。
【0005】プログラミングの負担を更に低減するた
め、サーバに常駐するオブジェクト内のメソッドをクラ
イアント・アプリケーションからネットワーク上で遠隔
的に実行又はインボケーションできる分散オブジェクト
・システムが開発された。このようにするとクライアン
ト・アプリケーションを開発した者とは違う者がオブジ
ェクトを開発し維持することができる。このようなシス
テムではクライアントとサーバの間で情報が転送又はス
トリーミングされる。この情報はクライアントからサー
バ上のオブジェクトをインボケーションする要求とサー
バからクライアントへ戻るメソッド実行による結果とデ
ータを含む。更に、オブジェクト指向プログラムはプロ
グラム間でオブジェクトをストリーミングすることによ
り頻繁に通信する。
【0006】こうしたストリーミング・オペレーション
において、ストリーム・ライターがシリアルデータ・ス
トリームを形成するように情報を構成又は整列する。シ
リアルデータ・ストリームはサーバに送信され、ここで
ストリーム・リーダがシリアルデータ・ストリームを整
列解除してオリジナル情報のコピーを再構成する。スト
リーム・リーダは整列解除が整列化の効果を正確に「取
り消し」てオリジナル情報を再構成できるようにオペレ
ーションする必要がある。通常、このようなオペレーシ
ョンは問題にならないが、ストリーム・リーダがストリ
ーム・ライターと同じ作者によって書かれていない場合
には非互換性が発生することがある。
【0007】整列及び整列解除とデータ転送処理を標準
化するため、相互運用可能なソフトウェアのインタフェ
ース・セットを定義することを任務とするオブジェクト
管理グループ(OMG)と呼ばれる業界団体が構成され
た。最初の仕様である共通オブジェクト要求ブローカ・
アーキテクチャ(CORBA)仕様はプログラミング言
語、オペレーティング・システム、オブジェクト・ロケ
ーションの間の全ての相違を隠蔽する業界の一致した標
準である。CORBA標準はオブジェクト要求ブローカ
(ORB)を定義し、これがアプリケーション間の情報
の整列、伝送、整列解除を処理する。ORBは通信イン
フラストラクチャとして機能し、分散異質コンピューテ
ィング環境間でその存在を意識させることなくオブジェ
クト要求を中継する。相互運用性は、クライアント・ア
プリケーションがORBに接続できるようにする明確に
定義されたオブジェクト・インタフェース仕様によって
実現される。CORBAはOMGインタフェース定義言
語(以下、インタフェース定義言語をIDLという)と
呼ばれるインタフェースを定義するための実装非依存型
標記を提供する。
【0008】OMG・CORBA仕様はプログラミング
言語例えばC++やJavaにより実際に構築されてい
る実装非依存型オブジェクトモデルを定義している。こ
のモデルではCORBAオブジェクト(「サーバント」
とも呼ばれる)はサーバに実装されクライアントにエク
スポートできる参照(レファレンス)を有している。ク
ライアントとサーバは単一プログラムについて相互に排
他的にならないタスクという役割がありどのプログラム
もクライアントとサーバのどちらにでもなることができ
る。オブジェクトとオブジェクトの参照は典型的には異
なるプログラム言語オブジェクトだが、必ずしもそうで
ある必要はない。オブジェクトはオブジェクト・マネー
ジャによっても制御される。
【0009】サーバにおいて、CORBAオブジェクト
に対するインボケーションの要求を満足させるために使
用できる実際のオブジェクトの実装は一般にプラットフ
ォームと言語の両方に依存し、サーバでオブジェクトを
実装するための様々なモデルが考えられる。当初のCO
RBA標準ではサーバの実装を実装に依存しないORB
に適合させる構造であるベーシック・オブジェクト・ア
ダプタ(別名BOA)を定義した。もっと新しいOMG
移植性標準ではポータブル・オブジェクト・アダプタ
(別名POA)を定義しており、これはBOAに代わる
ものでプラットフォームに依存しないことを意図してい
る。多くのORBもCORBAオブジェクトを実装する
ためのその他の専用構造をサポートしている。これらの
構造の全部が共通してオブジェクト・アダプタ(別名O
A)と呼ばれている。
【0010】
【発明が解決しようとする課題】多くのOAで共有され
る一つの共通の特徴はOAが制御する各種ポリシーが関
連オブジェクトの集合に拡張できることである。例とし
て、前述のPOA仕様はPortableServe
r::POAとして周知のオブジェクトを定義してお
り、これはCORBAオブジェクトのグループ化として
機能する。こうしたグループ化には多くの理由がある。
例えば、ある種のオブジェクト・グループは特定のイン
ボケーションのためにサーバントをCORBAオブジェ
クトに関連付ける同じメカニズムを共有することがあ
る。従ってオブジェクト参照に保存された情報に基づい
て同一グループ内の全オブジェクトを識別する必要があ
る。
【0011】CORBAサーバ内には多くのPorta
bleServer::POAオブジェクトを定義する
ことがあり、これらのオブジェクトの各々には名前があ
る。又これらのオブジェクトは階層状に構成され、ルー
トPortableServer::POAオブジェク
トがPOAによって定義される。個別のPOAオブジェ
クトの名前は同じ親を共有するPortableSer
ver::POAの集合内でのみユニークである。例え
ば、以下の階層によりCORBAサーバにおけるPor
tableServer::POAの規定集合(leg
al collection)を定義する。 図示したように、C及びDの名前のオブジェクトは各々
AとBグループ内部でのみユニークである。特定のPo
rtableServer::POAオブジェクトを完
全識別するためにはルートから始まる全ての名前の配列
が必要になる。例えば以下は完全修飾(fully q
ualified)POA名であることもある(COR
BA標準ではPOA名についてのシンタックスを定義し
ていないことに注意する): ルート/A/C ルート/B/C
【0012】PortableServer::POA
クラスの特定のインスタンスを識別するある種のデータ
がPOAオブジェクトについてのCORBAオブジェク
ト参照に存在してサーバが参照されるオブジェクトに向
けられた要求をPortableServer::PO
Aクラスの正しいインスタンスに割り振ることができる
ようにしなければならない。オブジェクトを識別する一
つの方法としては、全部の先祖の名前に連結したPor
tableServer::POAインスタンスの名前
を表わす文字列を使用することである。こうしたストリ
ングは各インスタンスをユニークに識別するが、先祖の
個数に依存して長さが変わる。これらの可変長識別子は
復号化時間のため、特に超高速トランスポートが使用さ
れる場合にオブジェクト・インボケーション処理を大幅
に遅くする。従って、高速で復号化できてオブジェクト
呼出し時間を短縮するようなユニークなPOA識別子を
使用するのが望ましい。
【0013】
【課題を解決するための手段】本発明の原理によれば、
可変長オブジェクト識別子が固定長のコンパクトな識別
子、例えば整数に変換される。永続的オブジェクトのマ
ッピングは永続状態でサーバ上に保持されマッピングは
最終的にファイルに書き込まれる。更に詳しくは、完全
修飾名を受け取ってコンパクトな識別子を返すメソッド
を含む新規のサーバIDLインタフェースを定義する。
メソッドは識別子が存在していなければ識別子を割り当
てる。別のメソッドは識別子を受け取り名前を返す。サ
ーバがサーバを除去するための従来のAPIルーチンを
用いて消去(破壊)されるまでは名前−識別子のマッピ
ングを保持する。
【0014】
【発明を実施する形態】
ータ又はデジタル・イクイップメント・コーポレーショ
ン製HiNoteTMコンピュータなど、本発明に開示
のネットワーク・アクセスシステム(以下、システムと
いう)を実装可能なシステム・アーキテクチャを示す。
図1の代表的なコンピュータ・システムは説明目的だけ
で議論するが、本発明の制限と見なすべきものではな
い。以下の説明では特定のコンピュータ・システムを記
述する際に共通に使用される術語を参照するが、説明さ
れる概念は図1に図示したシステムとは異なるアーキテ
クチャを有するシステムを含め、他のコンピュータ・シ
ステムにも等しく適用される。
【0015】クライアント・コンピュータ100は、従
来のマイクロプロセッサを含む中央オペレーションユニ
ット(CPU)105、情報の一時的記憶のためのラン
ダム・アクセス・メモリ(RAM)110、情報の永久
的記憶のためのリード・オンリー・メモリ(ROM)1
15を含む。メモリ・コントローラ120はシステムR
AM110制御のために提供される。バス・コントロー
ラ125はバス130を制御するために提供され、割り
込みコントローラ135は他のシステム・コンポーネン
トからの各種割り込み信号を受信し処理するために使用
される。
【0016】大容量記憶はディスケット142、CD−
ROM147又はハードディスク装置152により提供
される。データ及びソフトウェアはリムーバブル媒体例
えばディスケット142及びCD−ROM147経由で
クライアント・コンピュータ100と交換できる。ディ
スケット142はディスケット・ドライブ装置141に
挿入でき、当該装置がコントローラ140によりバス1
30に接続される。同様に、CD−ROM147はCD
−ROMドライブ装置146に挿入でき、当該装置はコ
ントローラ145によりバス130へ接続される。最後
に、ハードディスク152は固定ディスクドライブ装置
151の一部であり、当該装置はコントローラ150に
よりバス130へ接続される。
【0017】クライアント・コンピュータ100へのユ
ーザ入力は多数の装置により提供される。例えば、キー
ボード156とマウス57はキーボード兼マウス・コン
トローラ155によりバス130へ接続される。オーデ
ィオ変換器196はマイクロホン及びスピーカの両方と
して機能し、オーディオ・コントローラ197によりバ
ス130へ接続される。他の入力装置、例えばペン及び
/又ははタブレットや音声入力用マイクロホンなどもバ
ス130と適当なコントローラを介してクライアント・
コンピュータ100へ接続できることは当業者には明ら
かなはずである。DMAコントローラ160はシステム
RAM110への直接メモリアクセスを実行するために
提供される。視覚的表示はビデオ・コントローラ165
によって生成され、当該装置がビデオディスプレイ17
0を制御する。
【0018】クライアント・コンピュータ100は、ク
ライアント・コンピュータ100をバス191経由でネ
ットワーク195へ相互接続できるようにするネットワ
ーク・アダプタ190も含む。ネットワーク195は、
ローカル・エリア・ネットワーク(LAN)、広域ネッ
トワーク(WAN)、又はインターネットで、多数のネ
ットワーク装置を相互接続する汎用通信回線を使用す
る。
【0019】クライアント・コンピュータ・システム1
00は、一般にオペレーティング・システム・ソフトウ
ェア、 社から入手可能)などにより制御調節される。その他の
コンピュータ・システム制御機能の中でも、オペレーテ
ィング・システムはシステム資源の割り当てを制御し、
プロセスのスケジューリング、メモリ管理、ネットワー
ク及びI/Oサービスなどのタスクを実行する。
【0020】図2は非常に単純な形で、分散コンピュー
ティング設備を形成する多数のコンピューティング・シ
ステム例えば図1に図示したシステムなどの接続を示
す。個々のステーション200、202、204、20
8、210の各々がネットワーク・メカニズムにより相
互接続される。分散コンピューティング設備は単一のコ
ンピューティング・システム上に存在できるがネットワ
ーク伝送媒体上で動作するのが適当である。こうした伝
送媒体は図2に図示したようなLANであることもある
が、インターネットを含む他のネットワーク構造でも良
い。必要とされるのは端末200、202、204、2
08、210が所定のプロトコルを用いて相互に通信し
情報を交換できることだけである。前述のように、CO
RBAアーキテクチャはこうしたネットワークの上に乗
っかりネットワーク上の情報伝送の詳細な処理から個々
のアプリケーションを開放する。更に詳しくは、COR
BAアーキテクチャは詳細や実際のネットワーク・プロ
トコルの全部をアプリケーション・プログラムから隠蔽
する。ソフトウェアが動作するように設計されたプラッ
トフォームと無関係に、また離れたコンピューティング
・システムを相互接続するために使用されるネットワー
ク・プロトコルとも無関係に、アプリケーション・プロ
グラムが互いに動作することを保証する。
【0021】図3は全アプリケーションがオブジェクト
(オブジェクト指向の意味で)であるピア・ツー・ピア
(peer−to−peer)型分散コンピューティン
グ設備を定義する基本的CORBAアーキテクチャを極
めて模式的に示す。オブジェクトはクライアントの役割
300とサーバの役割302との間で役割を変えること
ができる。オブジェクトはオブジェクト・インボケーシ
ョンの発信側の場合にはクライアントの役割300で動
作する。オブジェクト・インボケーションの受信側の場
合にはオブジェクト実装と呼ばれるサーバの役割320
で動作する。
【0022】クライアント300はオブジェクト要求ブ
ローカ、即ち、ORB308を用いてサーバ302と通
信する。ORB308はクライアント300とサーバ3
02の間で情報を伝送するトランスポート層310と共
に動作し、前述のように、ORB308はクライアント
300とサーバ302の間の情報の整列、伝送、整列解
除を処理する。クライアント300は、矢印304で模
式的に示してあるように、オブジェクト封入を記述する
実装非依存型シンタックスを用いてORB308と通信
する。このシンタックスはインタフェース定義言語(I
DL)と呼ばれOMGにより作成されたCORBA仕様
に定義されている。OMGインタフェース定義言語は属
性とオペレーション・シグネチャを有するインタフェー
スを定義するために使用できる。言語は開発者による再
利用を容易にするためインタフェース記述の間の継承を
サポートしている。サーバ302のオブジェクト又はサ
ーバントはクライアントによる使用のためOMG・ID
Lで規定されたインタフェースと共にオブジェクト参照
(オブジェクト・レファレンス)をエクスポートする。
オブジェクト参照はオブジェクト実装の識別を含むので
サーバ302は正しいオブジェクトに要求を渡すことが
できる。
【0023】CORBAアーキテクチャ全体は実際には
従来のプログラミング言語、例えばC、C++又はSm
alltalkなどで実装される。各種言語での実装は
ORB製品にバンドルされたコンパイラを代表的に提供
している多数のベンダーから入手できる。コンパイラは
OMG−IDLインタフェースを定義しアプリケーショ
ン・プログラムに組み込むことのできるヘッダファイル
を生成する。コンパイラは各インタフェースについてス
タブ・コード306とスケルトン・コード314も生成
する。
【0024】クライアント・アプリケーション・プログ
ラム300はOMG・IDLスタブ・コード306にリ
ンクできる。クライアント・アプリケーション・プログ
ラムに関する限り、スタブ・コード306のインボケー
ション(又は呼び出し)はファンクションのローカルコ
ールであるように見える。一旦インボケーションされる
と、スタブ・コード306はオペレーション・パラメー
タをトランスポート層310でサーバ302へ送信する
のに適した通信フォーマットにエンコード(暗号化)及
びデコード(復号化)するために整列を実行するORB
308へのインタフェースを提供する。
【0025】サーバ側では、OMG・IDLスケルトン
・コード314はOMG−IDLインタフェースの対応
する実装である。ORB308が要求を受信すると、ス
ケルトン・コード314は要求パラメータを整列解除
し、矢印312で模式的に示しているようにサーバ30
2のオブジェクト実装へのコールを生成する。サーバが
要求の処理を終えると、スケルトン・コード314とス
タブ・コード306は結果をクライアント・プログラム
300に返す。エラーが発生した場合、サーバによって
又はORBによって生成された例外情報が返される。
【0026】オブジェクト・アダプタ316はORB3
08とスケルトン・コード314とサーバ302の間の
インタフェースを含む。オブジェクト・アダプタ316
などのアダプタはオブジェクト実装の登録やサーバの活
性化などの機能をサポートする。オブジェクト・アダプ
タにはアダプタの目的によって様々な種類がある。当初
のCORBA仕様では汎用のベーシック・オブジェクト
・アダプタ、即ちBOAだけを定義した。BOAは一部
の基本的機能を実行する。例えば、クライアントの要求
が活性化していないサーバ・プロセスを指定したときに
は、BOAはサーバ・プロセスを自動的に活性化する。
サーバが活性化するとこれの実装をBOAに登録する。
BOAはこの登録を格納(記憶)し将来のオブジェクト
要求で使用する。オブジェクトが活性化された後には、
スケルトン・コード314のコールバック・メソッドを
使用してクライアント要求を受信できる。BOAのサー
ビスには例外処理とオブジェクト参照管理も含まれる。
【0027】最近、プラットフォームに依存しないこと
を意図したポータブル・オブジェクト・アダプタ(PO
A)が定義された。これは、BOAと同様のサービスを
提供する。代表的には、POAはPortableSe
rver::POAクラスのインスタンスであるPor
tableServer::POAオブジェクトとして
知られているオブジェクトを含む。PortableS
erver::POAオブジェクトの各々は命名され命
名規則は階層化している。例えば、PortableS
erver::POAオブジェクトの名前は図4に図示
したような階層に構成することができる。
【0028】階層の先頭はPOA定義により指定された
名前を有するルート・オブジェクト400である。例示
すると2種類のグループ・オブジェクトがあり、これは
PortableServer::POAオブジェクト
A(402)と、PortableServer::P
OAオブジェクトB(404)である。グループ・オブ
ジェクト402と404の各々は同じ名前を持つサブオ
ブジェクトを有する。例えば、オブジェクト402は2
個のオブジェクト、PortableServer::
POAオブジェクトC(406)と、Portable
Server::POAオブジェクトD(408)を有
している。同様に、オブジェクト404は2個のオブジ
ェクト、PortableServer::POAオブ
ジェクトC(410)と、PortableServe
r::POAオブジェクトD(412)を有している。
前述したように、名前をユニークにする一つの方法はオ
ブジェクト自身の名前を親や祖父母の名前と連結するこ
とで各オブジェクトを命名する。この命名規則では可変
長の名前となり、復号化時間が大幅に遅くなる。
【0029】オブジェクト自身の名前とその親や祖父母
の名前を連結して各オブジェクトに命名することなく、
オブジェクト406と410をユニークに識別できるよ
うにするには、各オブジェクトにコンパクトな「識別
子」を割り当てる。こうした識別子は例として固定長を
有するので復号化時間が最短化される。例えば、32ビ
ット符号なし整数をPOA識別子(POA・ID)に使
用できる。
【0030】こうすれば各POAオブジェクト名はユニ
ークなPOA・IDにマッピングできる。POAは過渡
的か、又は、永続的かのどちらか2つの場合を考える。
過渡的POAは、POAを含むサーバのプロセスがリス
タートするとオブジェクト参照を全部「忘れる」タイプ
である。この場合、POA名からPOA・IDへのマッ
ピングは異なるPOA名を異なるPOA・IDにマップ
することを保証するだけで良い。後続のサーバ実体化で
は異なるマッピングを使用することもある。例えば、ル
ート/A/Cとルート/B/Cがどちらも過渡的POA
であるとすれば、サーバの第1の実体化(インスタンス
化)ではPOA名からPOA・IDへのマッピングを使
用できる。 Root/A/C −> 1 Root/B/C −> 2
【0031】また次の実体化では以下を使用することが
ある: Root/A/C −> 2 Root/A/C −> 5
【0032】しかし、POAが永続的な場合、同一サー
バの複数の実体化にわたって存続するCORBAオブジ
ェクトをサポートしなければならない。CORBAオブ
ジェクト参照の内容はオブジェクト参照が作成された時
に固定されるので、オブジェクト参照によって参照され
る全識別子は多数のサーバ実体化にわたって固定された
ままでなければならない。例えば、ルート/A/Dとル
ート/B/Dがどちらも永続的POAである場合に、サ
ーバの一つの実体化で以下のPOA名からPOA・ID
へのマッピングを使用するものとすると、サーバの将来
の全ての実体化で同じマッピングを使用しなければなら
ない。従って、マッピングを永続的なものにするため
に、同じメカニズムを使用しなければならない。 Root/A/D −> 10 Root/B/D −> 11
【0033】本発明の原理によれば、永続状態のサーバ
がマッピングを保持する。このサーバが図5に図示して
ある。図3の要素に対応する図5の要素には同様な参照
番号が割り当ててある。例えば、図3のクライアント3
00は図5のクライアント500に相当する。POA・
IDサーバ518は矢印520で示したようにORB5
06と相互作用するように図示してある。マッピングは
最終的にファイル522に書き込まれる。
【0034】サーバ518は、マッピングを取り出すた
めのメソッドを含む所定のIDLインタフェースを用い
てアクセスされる。例えば、以下のインタフェースを定
義できる。このインタフェースにおいて、サーバ機能に
関係しない重要でない子細は無視した。 interface ServerDef { typedef sequence<string> Name; typedef unsigned long ID; ID get id(in Name the name); Name get name(in ID the id); };
【0035】ServerDef::get_idメソ
ッドは、引数としてPOA名文字列を受け取りPOA・
IDを返す。ある名前についてPOA・IDが存在しな
い場合、get_idメソッドはPOA名the_na
meに新規POA・IDを割り当てて新規のPOA・I
Dを返す。サーバは永続的であり永続状態を有するの
で、ServerDefオブジェクトが存在する限りこ
のマッピングを維持することになる。POA・IDから
POA名への変換も、到着する要求に応答してPort
ableServer::POAオブジェクトのインス
タンスを動的に作成するために使用できるPortab
leServer::AdapterActivato
rメカニズムをサポートするのに必要である。後者の変
換はServerDef::get_nameメソッド
によって処理され、このメソッドは引数としてPOA・
IDを受け取りPOA名文字列を返し、これについては
以下の図7において詳細に説明する。get_name
とget_idメソッドは逆関数である。即ち、どの名
前についても、get_name(get_id(na
me))=nameであり、又、get_nameがi
dについて定義されている場合、get_id(get
_name(id))=idである。
【0036】従来の管理CORBA・APIコールはS
erverDefオブジェクトの作成と消去のために存
在している。これらの動作はORBにおいてサーバを作
成し消去することに対応する。POA名からPOA・I
DへのマッピングをServerDefオブジェクトか
ら削除するための用意は、ServerDefオブジェ
クトの消去以外には設けていないが、これはマッピング
が永続的でなければならないためと、POAが存在する
かしないかORBが知る方法が無いためである。サーバ
実装だけにこれが判り、この情報はORBに提供されな
い。
【0037】ServerDefオブジェクトは多くの
方法でPOA名とPOA・IDの間の永続的マッピング
を実装できる。例えば、オブジェクトはファイルに(名
前、ID)対のリストを保持できる。次に、適当なメソ
ッドへの引数が見付かるまで集合を検索し対の他方の要
素を返すことでget_id及びget_nameメソ
ッドを実装できる。
【0038】これ以外に、辞書を用いてデータへの効率
的なアクセスを提供することができる。この様な構成に
おいて、辞書をPOA・IDについて構築し、POA・
IDからPOA名への効率的マッピングを提供すること
ができる。同様に、POA名について辞書を使用しPO
A名からPOA・IDへの効率的マッピングを提供する
ことができる。辞書技術と線形検索の組み合わせも使用
できる。
【0039】図6Aと図6BはPOA・IDサーバの使
用を示すフローチャートである。POAが既存のPOA
の子供として作成された場合、過渡的又は永続的どちら
か適当な方のServerDefにget_idをコー
ルすることによりPOA・IDを割り当てる。図6Aに
図示したソフトウェア・ルーチンはステップ600で始
まりステップ602に進み、ここで新規にPortab
leServer::POAオブジェクトが作成され
る。このステップには従来の幾つかのステップ、例えば
内部データ構造をセットアップするなどが含まれるが、
これらはget_idメソッドの使用を図示するために
は関係がない。次に、ステップ604において、get
_idメソッドが呼び出され完全なPOA名を受け取
る。ステップ606において、得られたIDがPort
ableServer::POAオブジェクトに格納さ
れる。ルーチンはステップ608で終了する。
【0040】図6BはCORBAオブジェクトを作成す
るためのPOAの使用を示す。POAがオブジェクトを
作成する場合、オブジェクトはPOA・IDならびにオ
ブジェクトを識別するために必要なその他の情報でラベ
ル付けされる。POAは1つ以上のオブジェクトをサポ
ートできるので、一般にオブジェクトキーと呼ばれるあ
る種の識別子も要求される。このルーチンはステップ6
10で始まりステップ612に進み、ここで新規COR
BAオブジェクトがPOAに作成される。ステップ61
4において、POA・IDがPortableServ
er::POAオブジェクトから得られる。ステップ6
16において、POA・IDはオブジェクト参照に格納
される。最後にステップ618で、オブジェクト参照が
返され、ルーチンはステップ620で終了する。オブジ
ェクト参照の作成には追加のステップが関係している
が、ここでの説明には関係しない。
【0041】POAオブジェクトについての要求がOR
Bで受信されたときはいつでも、この要求のPOA・I
Dを用いて要求をどのPOAインスタンスが扱うべきか
決定する。要求がPOAインスタンスに割り当てられた
後、POAインスタンスはオブジェクトに対するメソッ
ド・インボケーションを終了するが、これにはオブジェ
クト・キーに関連したあらゆる必要な処理も含まれる。
【0042】POAはPOA名に基づいてPortab
leServer::POAオブジェクトの動的作成を
サポートし、固定ID又はその他のコンパクトな識別子
の使用がこの動的作成メカニズムに影響する。get_
nameメソッドはPOA・IDからPOA名を復元す
るために使用され、次にPOA名はfind_POAメ
ソッド(これは標準POAインタフェースの一部であ
る)を反復使用して名前の配列に対応するPOAの配列
を見付けることによってPOAを作成するために使用さ
れる。
【0043】更に詳しく説明すると、標準POAインタ
フェースはfind_POAメソッドを含み、これは次
のようなIDLシグネチャを有している。
【0044】このメソッドは、現在のPOAの子供であ
る既存のPOAを見付けるため、又は、activat
e_itが真で任意のadapter_nameを有す
る子供がすでに存在していない場合には新規の子POA
を生成するために使用される。
【0045】図7A及び図7BはServerDef
get_nameメソッドの動作を示す例示的なフロー
チャートを構成する。メソッドはステップ700で始ま
りステップ705へ進み、ここでPOA・IDを到着要
求から取得する。各々の到着要求は固定長IDが要求に
埋め込まれている必要がある。これは各種の従来のメカ
ニズムにより実現できる。
【0046】次に、ステップ710において、POA・
IDはORBのPOA・IDマップの中で参照される。
ORBはPOA・IDをPOAオブジェクト・インスタ
ンスにマッピングする参照テーブルを保持している。こ
のテーブルはORBが全てのPOAインスタンスの状態
を追跡して到着要求を割り当てられるようにするために
必要である。これの実装はマルチスレッドに対して安全
な単なる標準テーブル(代表的にはハッシュ・テーブ
ル)である。
【0047】ステップ715において、POA・IDが
ORBのPOA・IDマップで発見されたかどうかの決
定を行なう。発見した場合には、メソッドはステップ7
20に進み、ここで要求がPOAに渡され、これから従
来の方法で処理を終了する。次にメソッドはステップ7
25で終了する。
【0048】これ以外に、ステップ715で求めたPO
A・IDがORBのPOA・IDマップに見付からない
場合、このメソッドはステップ730に進み、ここでル
ートPOA名をORBから取得する。ステップ735に
おいて、正しいServerDefを取得する。このS
erverDefは過渡的又は永続的のどちらかであ
る。過渡的なものと永続的なものとの2種類のServ
erDefが存在するが、永続的ServerDefは
本発明のPOA・IDサーバによって実装される。
【0049】ステップ740において、例示的なSer
verDef get_nameメソッドを用いてPO
A・IDに対応するPOA名の配列を取得し、ステップ
745において、名前をPOA名の配列の第1番目の名
前になるようにセットする。ステップ750において、
POAはルートPOAとなるようにセットする。ステッ
プ755からステップ785はファイルシステム内のデ
ィレクトリを横断するために使用されるループと同様の
参照ループを形成するが、見つからないディレクトリが
ループの横断中に作成される点で異なっている。
【0050】更に詳しく説明すると、ステップ755で
チェックを行ない名前が空か調べる。空の場合には、メ
ソッドはステップ720に進み、ここで要求がPOAに
渡される。これ以外に、ステップ755において、名前
が空でないと分かった場合、メソッドはページ間連結子
760と770を経由してステップ780に進み、ここ
でfind_POAメソッドを用いて現在のPOAの子
供である既存のPOAを発見するか、又は空でないPO
A名の子供が未だ存在していない場合は(ステップ75
7で調べたように)新規の子供を作成する。
【0051】この様なPOAが発見されるか作成された
場合、このメソッドはステップ785に進み、ここで名
前がPOA名の配列における次の名前にセットされる。
このメソッドはページ間連結子775と765を経由し
てステップ755に戻り、ここで名前が空かどうかの決
定を行なう。ステップ755から、動作はステップ72
0又はステップ780のどちらかへ進む。このメソッド
がステップ725で終了するまで動作を継続する。
【0052】
【発明の効果】前述した実施態様のソフトウェアによる
実装は、有形媒体例えばコンピュータで読み取り可能な
媒体例えば図1のディスケット142、CD−ROM1
47、ROM115、又は固定ディスク装置152上に
固定されるか、又はコンピュータ・システムへ、モデム
又はその他のインタフェース装置例えば媒体191上で
ネットワーク195に接続されたネットワーク・アダプ
タ190などを経由して送信可能な、一連のコンピュー
タ命令を含む。媒体191は光通信線又はアナログ通信
線を含みこれに限定されない有形の媒体とするか、又は
マイクロ波、赤外線又はその他の伝送技術を含みこれに
制限されない無線技術で実現できる。これはまたインタ
ーネットでも良い。一連のコンピュータ命令は本発明に
関連して本明細書で前述した機能の全部又は一部を実現
する。このようなコンピュータ命令は多くのコンピュー
タ・アーキテクチャ又はオペレーティング・システムで
使用するための多数のプログラム言語で書けることが当
業者には理解されよう。更に、こうした命令は半導体、
磁気、光又はその他のメモリ装置を含みこれに限定され
ない現在又は将来のあらゆるメモリ技術を使用して記憶
するか、又は光、赤外線、マイクロ波、又はその他の伝
送技術を含みこれに限定されない現在又は将来のあらゆ
る通信技術を使用して伝送できる。この様なコンピュー
タ・プログラム製品は例えばシュリンクラップ・ソフト
ウェアなど印刷又は電子文書を添付したリムーバブル媒
体として配布する、例えばシステムROM又は固定ディ
スク上でコンピュータ・システムへ導入済みソフトウェ
アとして、又はインターネット又はワールドワイドウェ
ブなどネットワーク上のサーバ又は電子掲示板から配布
することができる。
【0053】本発明の典型的な実施態様を開示したが、
本発明の精神と範囲から逸脱することなく本発明の利点
の幾つかを実現する様々な変化及び変更を成し得ること
は当業者には明らかであろう。同じ機能を実行する他の
コンポーネントを適当に置換え得ることは当業者には明
らかであろう。更に、本発明の方法は適当な処理装置命
令を使用したどのようなソフトウェア実装としても、又
はハードウェア論理とソフトウェア論理の組み合わせを
使用して同じ結果を達成するどのようなハイブリッド実
装としてのどちらかでも実現できる。更に、本発明は分
散オブジェクト・システムに関して説明したが、共有デ
ータ集合を有するあらゆるマルチスレッド・システムに
おいて安定反復子を作成するように応用可能であること
が当業者には明らかであろう。更に、メモリのサイズ、
コンパクトな識別子を表わすために用いられるビット
数、及び特定の関数を実現するために用いられる論理及
び/又は命令の特定の構成などの側面並びに本発明の概
念に対するその他の変更は添付の請求項で包含されるこ
とを意図している。
【図面の簡単な説明】
【図1】本発明を実行できるコンピュータ・システムの
一部分を形成する従来技術の代表的ハードウェア・プラ
ットフォームの略ブロック図である。
【図2】CORBAシステムを構築できる従来技術のコ
ンピュータ・ネットワーク・システムの略図である。
【図3】従来技術のCORBA環境を示しクライアント
とORBとオブジェクト・アダプタ及びサーバの関連性
を表わす略ブロック図である。
【図4】同じ名前のオブジェクトを含むグループを示す
POA名前階層の略図である。
【図5】本発明の原理により構築したPOA・IDサー
バを使用するCORBAシステムを示す略ブロック図で
ある。
【図6】図6A及び図6BはPOAの作成とPOAによ
るオブジェクトの作成を示すフローチャートである。
【図7】図7A及び図7Bは組み合わせるとServe
rDef get_nameメソッドの動作を示すフロ
ーチャートを構成する。

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】クライアントとオブジェクト・サーバを有
    する分散オブジェクト・システムにおいて可変長オブジ
    ェクト識別子の効率的表現のための装置であって、前記
    装置が、 複数のコンパクトなオブジェクト識別子を含むデータベ
    ースと、 可変長オブジェクト識別子に応答して前記データベース
    からコンパクトなオブジェクト識別子を取り出し、か
    つ、前記可変長識別子に対応する前記取り出したコンパ
    クトなオブジェクト識別子の一つを返すためのメソッド
    を有するIDサーバと、 前記分散オブジェクト・システム上で前記IDサーバの
    メソッドをインボケーションするために前記オブジェク
    ト・サーバが使用できるIDLインタフェースとを含む
    ことを特徴とする装置。
  2. 【請求項2】前記クライアントは、前記オブジェクトサ
    ーバにおけるオブジェクト実装を識別し、かつ、前記識
    別したオブジェクト実装におけるメソッドをインボケー
    ションするために前記IDサーバから返された前記1つ
    の取り出したコンパクト識別子を用いるオブジェクト・
    インボケーション・メカニズムを含むことを特徴とする
    請求項1に記載の装置。
  3. 【請求項3】前記分散オブジェクト・システムはメモリ
    を有し前記データベースは前記メモリに格納されること
    を特徴とする請求項1に記載の装置。
  4. 【請求項4】前記IDサーバは永続状態を有することを
    特徴とする請求項1に記載の装置。
  5. 【請求項5】前記複数のコンパクトなオブジェクト識別
    子の各々は固定長を有することを特徴とする請求項1に
    記載の装置。
  6. 【請求項6】前記複数のコンパクトなオブジェクト識別
    子の各々は固定長整数を含むことを特徴とする請求項1
    に記載の装置。
  7. 【請求項7】前記データベースは複数の可変長オブジェ
    クト識別子/コンパクトなオブジェクト識別子の対を含
    み、かつ、前記IDサーバは、任意の可変長オブジェク
    ト識別子を特定するために前記複数の対を検索し、か
    つ、前記対の対応するコンパクトなオブジェクト識別子
    を返すことを特徴とする請求項1に記載の装置。
  8. 【請求項8】前記データベースは複数の可変長オブジェ
    クト識別子/コンパクトなオブジェクト識別子の対と前
    記可変長オブジェクト識別子について構築された辞書と
    を含むことを特徴とする請求項1に記載の装置。
  9. 【請求項9】前記データベースは複数の可変長オブジェ
    クト識別子/コンパクトなオブジェクト識別子の対と前
    記コンパクトなオブジェクト識別子について構築された
    辞書とを含むことを特徴とする請求項1に記載の装置。
  10. 【請求項10】前記分散オブジェクト・システムはポー
    タブル・オブジェクト・アダプタを動的に作成するため
    のメソッドを有し、かつ、前記IDサーバはコンパクト
    なオブジェクト識別子に応答して前記データベースから
    可変長オブジェクト識別子を取り出すためのメソッドを
    有し当該取り出しメソッドは前記ポータブル・オブジェ
    クト・アダプタに対する名前を生成するためにポータブ
    ル・オブジェクト・アダプタを動的に作成するための前
    記メソッドによってコールされることを特徴とする請求
    項1に記載の装置。
  11. 【請求項11】クライアントとオブジェクト・サーバと
    を有する分散オブジェクト・システムにおいて可変長オ
    ブジェクト識別子の効率的表現のための方法であって、
    前記方法が、 (a)複数のコンパクトなオブジェクト識別子を含むデ
    ータベースを構築するステップと、 (b)可変長オブジェクト識別子に応答して前記データ
    ベースからコンパクトなオブジェクト識別子を取り出し
    て前記可変長識別子に対応する前記取り出したコンパク
    トなオブジェクト識別子の1つを返すステップと、 (c)前記分散オブジェクト・システム上で前記IDサ
    ーバ・メソッドをインボケーションするために前記オブ
    ジェクトサーバが利用できるIDLインタフェースを定
    義するステップとを含むことを特徴とする方法。
  12. 【請求項12】前記クライアントはオブジェクト・イン
    ボケーション・メカニズムを含み、かつ、前記メソッド
    は更に、 (d)前記オブジェクト・サーバにおけるオブジェクト
    実装を識別して前記識別したオブジェクト実装における
    メソッドをインボケーションするために前記IDサーバ
    から返された前記1つのコンパクトなオブジェクト識別
    子を用いるステップを含むことを特徴とする請求項11
    に記載の方法。
  13. 【請求項13】前記分散オブジェクト・システムはメモ
    リを有し、かつ、前記ステップ(a)は、 (a1) 前記データベースを前記メモリに格納するス
    テップを含むことを特徴とする請求項11に記載の方
    法。
  14. 【請求項14】前記ステップ(b)は永続状態を有する
    IDサーバで実行されることを特徴とする請求項11に
    記載の方法。
  15. 【請求項15】前記ステップ(a)は、 (a2) 前記複数のコンパクトなオブジェクト識別子
    の各々が固定長を有するデータベースを構築するステッ
    プを含むことを特徴とする請求項11に記載の方法。
  16. 【請求項16】前記ステップ(a)は、 (a3) 前記複数のコンパクトなオブジェクト識別子
    の各々が固定長整数を含むデータベースを構築するステ
    ップを含むことを特徴とする請求項11に記載の方法。
  17. 【請求項17】前記データベースは複数の可変長オブジ
    ェクト識別子/コンパクトなオブジェクト識別子の対を
    含み、前記ステップ(b)は、 (b1) 任意の可変長オブジェクト識別子を特定する
    ために前記複数の対を検索するステップと、 (b2) 前記対に対応するコンパクトなオブジェクト
    識別子を返すステップとを含むことを特徴とする請求項
    11に記載の方法。
  18. 【請求項18】前記データベースは複数の可変長オブジ
    ェクト識別子/コンパクトなオブジェクト識別子の対を
    含み、前記ステップ(a)は、 (a4) 前記可変長オブジェクト識別子についての辞
    書を作成するステップを含むことを特徴とする請求項1
    1に記載の方法。
  19. 【請求項19】前記データベースは複数の可変長オブジ
    ェクト識別子/コンパクトなオブジェクト識別子の対を
    含み、前記ステップ(a)は、 (a5) 前記コンパクトなオブジェクト識別子につい
    ての辞書を作成するステップを含むことを特徴とする請
    求項11に記載の方法。
  20. 【請求項20】(e)コンパクトなオブジェクト識別子
    に応答して前記データベースから可変長オブジェクト識
    別子を取り出すステップと、 (f)前記ボータブル・オブジェクト・アダプタ名を形
    成するために前記可変長識別子を用いてポータブル・オ
    ブジェクト・アダプタを動的に作成するステップとを含
    むことを特徴とする請求項11に記載の方法。
  21. 【請求項21】クライアントとオブジェクト・サーバを
    有する分散オブジェクト・システムにおいて可変長オブ
    ジェクト識別子の効率的表現のためのコンピュータ・プ
    ログラム製品であって、前記コンピュータ・プログラム
    製品はコンピュータで読み取り可能なプログラム・コー
    ドを記録したコンピュータで使用可能な媒体を含み、前
    記プログラム・コードが、 複数のコンパクトなオブジェクト識別子を含むデータベ
    ースを構築するためのプログラム・コードと、 可変長オブジェクト識別子に応答して前記データベース
    からコンパクトなオブジェクト識別子を取り出し、か
    つ、前記可変長識別しに対応する前記取り出したコンパ
    クトなオブジェクト識別子の1つを返すためのプログラ
    ム・コードと、 前記分散オブジェクト・システム上で前記IDサーバ・
    メソッドをインボケーションするために前記オブジェク
    ト・サーバが利用できるIDLインタフェースを定義す
    るためのプログラム・コードとを含むことを特徴とする
    コンピュータ・プログラム製品。
  22. 【請求項22】前記クライアントはオブジェクト・イン
    ボケーション・メカニズムを含み、かつ、前記コンピュ
    ータ・プログラム製品は、前記オブジェクト・サーバに
    おけるオブジェクト実装を識別し、かつ、前記識別した
    オブジェクト実装におけるメソッドをインボケーション
    するために前記IDサーバから返された前記1つの取り
    出したコンパクトなオブジェクト識別子を用いるプログ
    ラム・コードを更に含むことを特徴とする請求項21に
    記載のコンピュータ・プログラム製品。
  23. 【請求項23】データベースを構築するための前記プロ
    グラム・コードは前記複数のコンパクトなオブジェクト
    識別子の各々が固定長整数を含むようなデータベースを
    構築するためのプログラム・コードを含むことを特徴と
    する請求項21に記載のコンピュータ・プログラム製
    品。
  24. 【請求項24】コンパクトなオブジェクト識別子に応答
    して前記データベースから可変長オブジェクト識別子を
    取り出すためのプログラム・コードと、 前記ポータブル・オブジェクト・アダプタ名を形成する
    ために前記可変長識別子を使用してポータブル・オブジ
    ェクト・アダプタを動的に作成するプログラム・コード
    とを更に含むことを特徴とする請求項21に記載のコン
    ピュータ・プログラム製品。
JP10377825A 1997-12-18 1998-12-11 分散オブジェクトシステムにおいて可変長識別子の効率的表現のための方法及び装置 Withdrawn JPH11353182A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/993,204 US6516354B2 (en) 1997-12-18 1997-12-18 Method and apparatus for efficient representation of variable length identifiers in a distributed object system
US08/993,204 1997-12-18

Publications (1)

Publication Number Publication Date
JPH11353182A true JPH11353182A (ja) 1999-12-24

Family

ID=25539230

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10377825A Withdrawn JPH11353182A (ja) 1997-12-18 1998-12-11 分散オブジェクトシステムにおいて可変長識別子の効率的表現のための方法及び装置

Country Status (4)

Country Link
US (1) US6516354B2 (ja)
EP (1) EP0924614A3 (ja)
JP (1) JPH11353182A (ja)
CA (1) CA2255133A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7039919B1 (en) * 1998-10-02 2006-05-02 Microsoft Corporation Tools and techniques for instrumenting interfaces of units of a software program
US6983463B1 (en) 1998-10-02 2006-01-03 Microsoft Corporation Network independent profiling of applications for automatic partitioning and distribution in a distributed computing environment
US6988271B2 (en) * 1998-10-02 2006-01-17 Microsoft Corporation Heavyweight and lightweight instrumentation
AU2738500A (en) * 1999-01-29 2000-08-18 Iona Technologies Inc. Method and system for dynamic configuration of activators in a client-server environment
JP2000347866A (ja) * 1999-06-04 2000-12-15 Nec Corp 分散システムとアクセス制御装置及び方法、並びにアクセス制御用プログラムを記録した記録媒体
NO310750B1 (no) * 1999-07-29 2001-08-20 Ericsson Telefon Ab L M Håndtering av objekter i telekommunikasjonssystemer
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
US20030236925A1 (en) * 2001-05-17 2003-12-25 Dusan Balek Interactive portable object adapters support in an integrated development environment
US6788317B2 (en) * 2001-05-18 2004-09-07 Sun Microsystems, Inc. Generation of delegating implementation for IDL interfaces which use inheritance
JP4536292B2 (ja) * 2001-06-14 2010-09-01 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークシステム、サーバ、クライアント、オブジェクト間通信方法、プロファイルオブジェクト登録方法、プログラム、および記憶媒体
US7203738B1 (en) 2002-03-15 2007-04-10 Novell, Inc. System and method for distributing application objects
US7000017B1 (en) * 2002-03-15 2006-02-14 Novell, Inc. System and method for distributing a selected object and for automatically distributing the objects that are associated with the selected object
US7149751B1 (en) 2002-03-15 2006-12-12 Novell, Inc. System and method for distributing selected objects from a source database to a destination database
WO2004057469A1 (en) * 2002-12-19 2004-07-08 Red Plain Technology Limited A distributed object processing system and method
CN103870267B (zh) * 2012-12-17 2017-04-05 国际商业机器公司 用于处理数据中心网络中的数据对象的在计算机系统中实现的方法和计算机实现的系统
US9049252B2 (en) * 2012-12-17 2015-06-02 International Business Machines Corporation Efficient name management for named data networking in datacenter networks
US10831775B2 (en) 2017-01-06 2020-11-10 International Business Machines Corporation Efficient representation, access and modification of variable length objects
US11809709B2 (en) * 2021-03-02 2023-11-07 Red Hat, Inc. Metadata size reduction for data objects in cloud storage systems

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5551049A (en) * 1987-05-26 1996-08-27 Xerox Corporation Thesaurus with compactly stored word groups
US4823310A (en) 1987-08-10 1989-04-18 Wang Laboratories, Inc. Device for enabling concurrent access of indexed sequential data files
US5218699A (en) 1989-08-24 1993-06-08 International Business Machines Corporation Remote procedure calls in heterogeneous systems
AU639802B2 (en) 1990-08-14 1993-08-05 Oracle International Corporation Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment
US5263160A (en) 1991-01-31 1993-11-16 Digital Equipment Corporation Augmented doubly-linked list search and management method for a system having data stored in a list of data elements in memory
CA2098461A1 (en) 1992-06-17 1993-12-18 Antony S. Williams Method and system for registering data formats for objects
JPH06103075A (ja) 1992-07-06 1994-04-15 Internatl Business Mach Corp <Ibm> オブジェクト指向適用業務
US5307490A (en) 1992-08-28 1994-04-26 Tandem Computers, Inc. Method and system for implementing remote procedure calls in a distributed computer system
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
DE69327448T2 (de) 1992-12-21 2004-03-04 Sun Microsystems, Inc., Mountain View Verfahren und Vorrichtung für Teilaufgaben in verteiltem Verarbeitungssystem
US5566302A (en) 1992-12-21 1996-10-15 Sun Microsystems, Inc. Method for executing operation call from client application using shared memory region and establishing shared memory region when the shared memory region does not exist
US5379432A (en) 1993-07-19 1995-01-03 Taligent, Inc. Object-oriented interface for a procedural operating system
US5455951A (en) 1993-07-19 1995-10-03 Taligent, Inc. Method and apparatus for running an object-oriented program on a host computer with a procedural operating system
DE69426143T2 (de) 1993-09-10 2001-06-13 Sun Microsystems Inc Kundenseitiger Stubinterpretor
US5581680A (en) * 1993-10-06 1996-12-03 Silicon Graphics, Inc. Method and apparatus for antialiasing raster scanned images
US5481706A (en) 1993-11-01 1996-01-02 International Business Machines Corporation System and method for creating thread-safe shared libraries
US5515508A (en) 1993-12-17 1996-05-07 Taligent, Inc. Client server system and method of operation including a dynamically configurable protocol stack
US5491800A (en) 1993-12-20 1996-02-13 Taligent, Inc. Object-oriented remote procedure call networking system
US5734903A (en) 1994-05-13 1998-03-31 Apple Computer, Inc. System and method for object oriented message filtering
US5540014A (en) 1994-06-15 1996-07-30 Smith; A. Graeme Plant cover
US5581765A (en) * 1994-08-30 1996-12-03 International Business Machines Corporation System for combining a global object identifier with a local object address in a single object pointer
US5832487A (en) * 1994-12-15 1998-11-03 Novell, Inc. Replicated object identification in a partitioned hierarchy
US5758342A (en) 1995-01-23 1998-05-26 International Business Machines Corporation Client server based multi-processor file system wherein client files written to by a client processor are invisible to the server
US5790848A (en) 1995-02-03 1998-08-04 Dex Information Systems, Inc. Method and apparatus for data access and update in a shared file environment
EP0729097A1 (en) 1995-02-07 1996-08-28 Sun Microsystems, Inc. Method and apparatus for run-time memory access checking and memory leak detection of a multi-threaded program
US5819093A (en) 1995-03-03 1998-10-06 Sun Microsystems, Inc. System and method for a distributed debugger for debugging distributed application programs
US5793965A (en) 1995-03-22 1998-08-11 Sun Microsystems, Inc. Method and apparatus for determining the type of an object in a distributed object system
US5907675A (en) 1995-03-22 1999-05-25 Sun Microsystems, Inc. Methods and apparatus for managing deactivation and shutdown of a server
US5724503A (en) 1995-03-31 1998-03-03 Sun Microsystems, Inc. Method and apparatus for interpreting exceptions in a distributed object system
US5787447A (en) 1995-05-08 1998-07-28 Sun Microsystems, Inc. Memory allocation maintaining ordering across multiple heaps
US5748963A (en) * 1995-05-12 1998-05-05 Design Intelligence, Inc. Adaptive binding
US5852731A (en) 1995-06-05 1998-12-22 International Business Machines Corporation Computer program product for synchronizing static variable initialization and reference under a multi-threaded computer environment
US5761499A (en) 1995-12-21 1998-06-02 Novell, Inc. Method for managing globally distributed software components
US5881315A (en) 1995-08-18 1999-03-09 International Business Machines Corporation Queue management for distributed computing environment to deliver events to interested consumers even when events are generated faster than consumers can receive
US5892946A (en) * 1995-09-12 1999-04-06 Alcatel Usa, Inc. System and method for multi-site distributed object management environment
US5682534A (en) 1995-09-12 1997-10-28 International Business Machines Corporation Transparent local RPC optimization
US5737607A (en) 1995-09-28 1998-04-07 Sun Microsystems, Inc. Method and apparatus for allowing generic stubs to marshal and unmarshal data in object reference specific data formats
JP3426428B2 (ja) 1995-10-27 2003-07-14 富士通株式会社 トランザクションのトレース装置
JP3097525B2 (ja) 1995-11-10 2000-10-10 株式会社日立製作所 情報フィルタリング処理を行うデータ伝送方法
US5958006A (en) 1995-11-13 1999-09-28 Motorola, Inc. Method and apparatus for communicating summarized data
US5761670A (en) 1995-12-08 1998-06-02 Sun Microsystems, Inc. System and method for space efficient object locking using global and local locks
US5751962A (en) * 1995-12-13 1998-05-12 Ncr Corporation Object-based systems management of computer networks
US5870753A (en) * 1996-03-20 1999-02-09 International Business Machines Corporation Method and apparatus for enabling a persistent metastate for objects in an object oriented environment
US5848236A (en) 1996-03-22 1998-12-08 Sun Microsystems, Inc. Object-oriented development framework for distributed hardware simulation
US5928323A (en) 1996-05-30 1999-07-27 Sun Microsystems, Inc. Apparatus and method for dynamically generating information with server-side software objects
US5862376A (en) 1996-06-24 1999-01-19 Sun Microsystems, Inc. System and method for space and time efficient object locking
US5727145A (en) 1996-06-26 1998-03-10 Sun Microsystems, Inc. Mechanism for locating objects in a secure fashion
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
US5974410A (en) 1996-06-28 1999-10-26 Microsoft Corporation Method and system for filtering in a uniform data interface
US5815703A (en) 1996-06-28 1998-09-29 Microsoft Corporation Computer-based uniform data interface (UDI) method and system using an application programming interface (API)
US5809507A (en) 1996-07-01 1998-09-15 Sun Microsystems, Inc. Method and apparatus for storing persistent objects on a distributed object network using a marshaling framework
US5835906A (en) 1996-07-01 1998-11-10 Sun Microsystems, Inc. Methods and apparatus for sharing stored data objects in a computer system
US5915252A (en) 1996-09-30 1999-06-22 International Business Machines Corporation Object oriented framework mechanism for data transfer between a data source and a data target
US6128640A (en) 1996-10-03 2000-10-03 Sun Microsystems, Inc. Method and apparatus for user-level support for multiple event synchronization
US5873116A (en) 1996-11-22 1999-02-16 International Business Machines Corp. Method and apparatus for controlling access to data structures without the use of locks
US5913038A (en) 1996-12-13 1999-06-15 Microsoft Corporation System and method for processing multimedia data streams using filter graphs
US5870805A (en) 1997-01-06 1999-02-16 Baxter International Inc. Disposable tubing set and organizer frame for holding flexible tubing
US5864866A (en) * 1997-03-26 1999-01-26 International Business Machines Corporation Apparatus and method for providing externalization in an object-oriented environment
JPH1139209A (ja) 1997-07-07 1999-02-12 Internatl Business Mach Corp <Ibm> コンピュータ資源アクセス制御装置およびその方法
US6016499A (en) * 1997-07-21 2000-01-18 Novell, Inc. System and method for accessing a directory services respository
US5978940A (en) 1997-08-20 1999-11-02 Mci Communications Corporation System method and article of manufacture for test operations
US5926775A (en) 1997-10-08 1999-07-20 National Instruments Corporation Mini driver software architecture for a data acquisition system
US5946680A (en) * 1997-11-28 1999-08-31 International Business Machines Corporation Method of determining the unique ID of an object in a peer to peer configuration of object indexes
GB2341951A (en) * 1998-09-22 2000-03-29 Ibm Thin-client remote object execution

Also Published As

Publication number Publication date
EP0924614A2 (en) 1999-06-23
EP0924614A3 (en) 2003-06-04
US20020029297A1 (en) 2002-03-07
US6516354B2 (en) 2003-02-04
CA2255133A1 (en) 1999-06-18

Similar Documents

Publication Publication Date Title
US5864866A (en) Apparatus and method for providing externalization in an object-oriented environment
JP3251800B2 (ja) ネットワーク内のコンピュータ間でデータを交換するための通信システム
US6405264B1 (en) Marshaling and unmarshaling framework for supporting filters in a distributed object system
EP0766172B1 (en) A method and apparatus for allowing generic stubs to marshal and unmarshal data in object reference specific data formats
US6282581B1 (en) Mechanism for resource allocation and for dispatching incoming calls in a distributed object environment
US6016489A (en) Method and apparatus for constructing stable iterators in a shared data collection
JPH11353182A (ja) 分散オブジェクトシステムにおいて可変長識別子の効率的表現のための方法及び装置
US6910216B2 (en) IMS transaction messages metamodel
US8010967B2 (en) Method and system for dynamic configuration of interceptors in a client-server environment
US6189046B1 (en) Mechanism and method for merging cached location information in a distributed object environment
US7546606B2 (en) System and method using a connector architecture for application integration
US6249803B1 (en) Method and apparatus for executing code during method invocation
JPH1063505A (ja) 引数オブジェクトリファレンスをマーシャリングおよびアンマーシャリングするフレームワーク
AU3378095A (en) System and method for providing interoperability among heterogeneous object systems
JP2002505466A (ja) 遠隔メソッド呼出し方法及び装置
JPH0926890A (ja) オブジェクトを管理するための方法、装置、および、データ構造
Chiang Wrapping legacy systems for use in heterogeneous computing environments
US6510460B1 (en) Method and apparatus for enforcing locking invariants in multi-threaded systems
Rock-Evans DCOM explained
JP2002505478A (ja) 分散形システムにおけるイベント通知のためのオブジェクトの据置き復元及び遠隔ローディング
Simons et al. FastCGI the forgotten treasure
O'Connell et al. Distributed Memo: A Heterogeneously Distributed and Parallel Software Development Environment
Fauth et al. Remote procedure call: Technology, standardization and OSF’s distributed computing environment
Griffin et al. Linux Network Programming, Part 3
Newcomer et al. STDL as a high-level interoperability concept for distributed transaction processing systems

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060307