JP2000029730A - メソッド・インボケーション中にコードを 実行するための方法及びその装置 - Google Patents

メソッド・インボケーション中にコードを 実行するための方法及びその装置

Info

Publication number
JP2000029730A
JP2000029730A JP10377827A JP37782798A JP2000029730A JP 2000029730 A JP2000029730 A JP 2000029730A JP 10377827 A JP10377827 A JP 10377827A JP 37782798 A JP37782798 A JP 37782798A JP 2000029730 A JP2000029730 A JP 2000029730A
Authority
JP
Japan
Prior art keywords
filter
server
client
filters
code
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
JP10377827A
Other languages
English (en)
Inventor
Anita Jindal
アニタ・ジンダル
Ken M Cavanaugh
ケン・エム・キャヴァノウ
Sanjeev Krishnan
サンジーヴ・クリシュナン
Rohit Garg
ローイット・ガルグ
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 JP2000029730A publication Critical patent/JP2000029730A/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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]

Abstract

(57)【要約】 (修正有) 【課題】クライアントあるいはサーバのオブジェクトで
静的に定義されていたフィルタを、システムオペレーシ
ョン中であっても定義したり修正したりできること。 【解決手段】各CORBAサーバ・オブジェクトは、フ
ィルタののユニークな識別子及び仕様とフィルタを提供
すべき順序を含むフィルタ・レジストリを保持する。C
ORBAクライアント・オブジェクトはサーバから受信
した情報からフィルタ・レジストリを作成する。フィル
タはORBのクライアント側で行なわれる整列及び整列
解除の前と後にコードを実行するためにORBのクライ
アント側に存在しても良く、後者のフィルタはこのクラ
イアント・フィルタ・レジストリにも含まれる。次にク
ライアントは自分のフィルタ・レジストリを使用して後
続のメソッド・インボケーション中にフィルタを起動す
る。

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号が付された「高速ローカルCORB
Aオブジェクト参照のための方法及び装置」と題する米
国特許出願。本出願と同日に、Christia J.
Callsen及びKen M.Cavanaughに
より出願された、代理人ドケット番号P2772/PJ
SIが付された、「共有データ収集において安定反復子
を作成する方法及びその装置」と題する米国特許出願。
本出願と同日に、Christian J.Calls
en及びKen M.Cavanaughにより出願さ
れた、代理人ドケット番号P2747/PJSIが付さ
れた「マルチスレッド・システムにおいてロックしてい
る不変量を強制するための方法及び装置」と題する米国
特許出願。本出願と同日に、Ken M.Cavana
ughにより出願された、代理人ドケット番号P275
0/PJSIが付された「分散オブジェクトシステムに
おいて可変長識別子の効率的表現のための方法及び装
置」と題する米国特許出願。本出願と同日に、Anit
a Jindal、Ken M.Cavanaugh及
びSanjeev Krishnanにより出願され
た、代理人ドケット番号P2769/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オブジェク
トに対するインボケーションを満足させるために使用で
きる実際のオブジェクトの実装は一般にプラットフォー
ムと言語の両方に依存し、サーバにオブジェクトを実装
するための様々なモデルが考えられる。当初のCORB
A標準ではサーバの実装を実装に依存しないORBに適
合させる構造であるベーシック・オブジェクト・アダプ
タ(別名BOA)を定義した。もっと新しいOMG移植
性標準ではポータブル・オブジェクト・アダプタ(別名
POA)を定義しており、これはBOAに代わるもので
プラットフォームに依存しないことを意図している。多
くのORBもCORBAオブジェクトを実装するための
その他の専用フレームワークをサポートしている。これ
らの構フレームワークの全部が一般的にオブジェクト・
アダプタ(別名OA)と呼ばれている。
【0010】
【発明が解決しようとする課題】オブジェクト要求ブロ
ーカ技術を使用するアプリケーション・プログラマはメ
ソッド・インボケーション・プロセスの一部として、特
に整列処理プロセス及び整列解除処理プロセスの途中で
コード・セグメントを実行したいことがある。こうした
コード・セグメントは例えばプログラムをモニタしデバ
ッグするため、又は保安メカニズムを実装するために機
能する。フィルタ即ちオブジェクト要求ブローカ・シス
テムにおいて引数の整列又は整列解除の前又は後でメソ
ッド・インボケーション・プロセス中に実行する部分コ
ードは周知である。フィルタは各種のタスク例えばオブ
ジェクトへ又はオブジェクトからの通信に適用すること
のできる圧縮、暗号化、トレース、デバッグなどを実行
するために使用される。しかし、こうしたフィルタはク
ライアント・オブジェクト及びサーバ・オブジェクトに
ついて静的に定義されており、クライアント・コード及
びサーバ・コードと共に丁寧にコンパイルされるのが代
表的である。システム運用中にフィルタを定義し変更で
きるとすれば、シミュレーション、デバッグ、その他の
操作が大幅に拡張されるであろう。
【0011】
【課題を解決するための手段】本発明の原理によれば、
各オブジェクト実装についてスケルトン・コードに1つ
以上のフィルタが含まれ、各サーバ・オブジェクトはフ
ィルタの各々に対するユニークな識別子及び仕様とフィ
ルタを適用すべき順番とを含むフィルタのレジストリを
保持する。フィルタは選択されたコードをメソッド・イ
ンボケーション中に行なわれる従来の整列及び整列解除
の前又は後のどちらかで実行する。
【0012】クライアントは、クライアント側ORBが
サーバに対して特別なメソッドである” retrie
ve filters()”を使ってインボケーション
する時に作成されるフィルタ・レジストリを含む。こ
の” retrieve filters()”コール
に応答して、サーバはオブジェクト実装に関連付けられ
たフィルタの識別と、これらがインボケーションされる
べき順番をクライアントに渡す。クライアントは適用す
べき順番に構成されたフィルタ・レジストリを構築し、
このフィルタ・レジストリを後のメソッド・インボケー
ション中に使用する。
【0013】本発明の別の観点によれば、サーバをダウ
ンさせることなくシステムオペレーション中にフィルタ
リストにフィルタを追加したりそのリストから減らした
りできる。サーバは現在のフィルタ構成を識別するため
にタイムスタンプを初期化し、サーバのフィルタ・レジ
ストリへの各々の変更でタイムスタンプを更新する。サ
ーバ上にあるフィルタのリストをクライアントが”
etrieve filters()”メソッドを使用
して取り出す場合、サーバはこのタイムスタンプをクラ
イアントに渡す。サーバに対する後続のメソッド・イン
ボケーションでは、クライアントはクライアントが受信
したタイムスタンプの値を含ませる。サーバはこのメソ
ッド・インボケーションの中のタイムスタンプを自分自
身のタイムスタンプと比較して、タイムスタンプが一致
しない場合にはクライアントに例外を返す。この例外に
応答して、最新のフィルタ・レジストリ内容とタイムス
タンプをサーバから取得するために、クライアントは”
retrieve filters()”メソッドを
再度インボケーションする。クライアントは新規に受信
したフィルタ・リストとタイムスタンプを使用してメソ
ッドの再度インボケーションに進む。
【0014】現時点で好適な実施態様の別の観点におい
ては、フィルタ・コードは、ORBがクラス・ダウンロ
ードをサポートしている場合、例えばJavaによるO
RBの場合、システムオペレーション中にクライアント
側にダウンロードされることもある。Javaを用いた
環境では、アプリケーション・プログラマはクライアン
ト側とサーバ側両方のフィルタ・コードをオブジェクト
実装に登録する。クライアント側ORBは ” ret
rieve filters()”メソッドをインボケ
ーションしてフィルタ識別の順位リストを受信する。次
にクライアント側ORBはJavaクラスローダを使用
してサーバからフィルタ・コードを動的にロードし、ロ
ードしたフィルタ・クラスのこの新規インスタンスを作
成し、新規インスタンスをクライアント側フィルタ・レ
ジストリに格納する。
【0015】
【発明の実施の形態】図1は代表的なクライアント・コ
ンピュータ100例えばIBM社製ThinkPad
701▲R▼型コンピュータ又はデジタル・イクイップ
メント・コーポレーション製HiNoteTMコンピュ
ータなど、本発明に開示のネットワーク・アクセスシス
テム(以下、システムという)を実装可能なシステム・
アーキテクチャを示す。図1の代表的なコンピュータ・
システムは説明目的だけで議論するが、本発明の制限と
見なすべきものではない。以下の説明では特定のコンピ
ュータ・システムを記述する際に共通に使用される術語
を参照するが、説明される概念は図1に図示したシステ
ムとは異なるアーキテクチャを有するシステムを含め、
他のコンピュータ・システムにも等しく適用される。
【0016】クライアント・コンピュータ100は、従
来のマイクロプロセッサを含む中央オペレーションユニ
ット(CPU)105、情報の一時的記憶のためのラン
ダム・アクセス・メモリ(RAM)110、情報の永久
的記憶のためのリード・オンリー・メモリ(ROM)1
15を含む。メモリ・コントローラ120はシステムR
AM110制御のために提供される。バス・コントロー
ラ125はバス130を制御するために提供され、割り
込みコントローラ135は他のシステム・コンポーネン
トからの各種割り込み信号を受信し処理するために使用
される。
【0017】大容量記憶はディスケット142、CD−
ROM147又はハードディスク装置152により提供
される。データ及びソフトウェアはリムーバブル媒体例
えばディスケット142及びCD−ROM147経由で
クライアント・コンピュータ100と交換できる。ディ
スケット142はディスケット・ドライブ装置141に
挿入でき、当該装置がコントローラ140によりバス1
30に接続される。同様に、CD−ROM147はCD
−ROMドライブ装置146に挿入でき、当該装置はコ
ントローラ145によりバス130へ接続される。最後
に、ハードディスク152は固定ディスクドライブ装置
151の一部であり、当該装置はコントローラ150に
よりバス130へ接続される。
【0018】クライアント・コンピュータ100へのユ
ーザ入力は多数の装置により提供される。例えば、キー
ボード156とマウス57はキーボード兼マウス・コン
トローラ155によりバス130へ接続される。オーデ
ィオ変換器196はマイクロホン及びスピーカの両方と
して機能し、オーディオ・コントローラ197によりバ
ス130へ接続される。他の入力装置、例えばペン及び
/又はタブレットや音声入力用マイクロホンなどもバス
130と適当なコントローラを介してクライアント・コ
ンピュータ100へ接続できることは当業者には明らか
なはずである。DMAコントローラ160はシステムR
AM110への直接メモリアクセスを実行するために提
供される。視覚的表示はビデオ・コントローラ165に
よって生成され、当該装置がビデオディスプレイ170
を制御する。
【0019】クライアント・コンピュータ100は、ク
ライアント・コンピュータ100をバス191経由でネ
ットワーク195へ相互接続できるようにするネットワ
ーク・アダプタ190も含む。ネットワーク195は、
ローカル・エリア・ネットワーク(LAN)、広域ネッ
トワーク(WAN)、又はインターネットで、多数のネ
ットワーク装置を相互接続する汎用通信回線を使用す
る。
【0020】クライアント・コンピュータ・システム1
00は、一般にオペレーティング・システム・ソフトウ
ェア、例えばWINDOWS 95▲R▼オペレーティ
ング・システム(ワシントン州、レッドモンドのマイク
ロソフト社から入手可能)などにより制御調節される。
その他のコンピュータ・システム制御機能の中でも、オ
ペレーティング・システムはシステム資源の割り当てを
制御し、プロセスのスケジューリング、メモリ管理、ネ
ットワーク及びI/Oサービスなどのタスクを実行す
る。
【0021】図2は非常に単純な形で、分散コンピュー
ティング設備を形成する多数のコンピューティング・シ
ステム例えば図1に図示したシステムなどの接続を示
す。個々のステーション200、202、204、20
8、210の各々がネットワーク・メカニズムにより相
互接続される。分散コンピューティング設備は単一のコ
ンピューティング・システム上に存在できるがネットワ
ーク伝送媒体上で動作するのが適当である。こうした伝
送媒体は図2に図示したようなLANであることもある
が、インターネットを含む他のネットワーク構造でも良
い。必要とされるのは端末200、202、204、2
08、210が所定のプロトコルを用いて相互に通信し
情報を交換できることだけである。前述のように、CO
RBAアーキテクチャはこうしたネットワークの上に乗
っかりネットワーク上の情報伝送の詳細な処理から個々
のアプリケーションを開放する。更に詳しくは、COR
BAアーキテクチャは詳細や実際のネットワーク・プロ
トコルの全部をアプリケーション・プログラムから隠蔽
する。ソフトウェアが動作するように設計されたプラッ
トフォームと無関係に、また離れたコンピューティング
・システムを相互接続するために使用されるネットワー
ク・プロトコルとも無関係に、アプリケーション・プロ
グラムが互いに動作することを保証する。
【0022】図3は全アプリケーションがオブジェクト
(オブジェクト指向の意味で)であるピア・ツー・ピア
(peer−to−peer)型分散コンピューティン
グ設備を定義する基本的CORBAアーキテクチャを極
めて模式的に示す。オブジェクトはクライアントの役割
300とサーバの役割302との間で役割を変えること
ができる。オブジェクトはオブジェクト・インボケーシ
ョンの発信側の場合にはクライアントの役割300で動
作する。オブジェクト・インボケーションの受信側の場
合にはオブジェクト実装と呼ばれるサーバの役割320
で動作する。
【0023】クライアント300はオブジェクト要求ブ
ローカ、即ち、ORB308を用いてサーバ302と通
信する。ORB308はクライアント300とサーバ3
02の間で情報を伝送するトランスポート層310と共
に動作し、前述のように、ORB308はクライアント
300とサーバ302の間の情報の整列、伝送、整列解
除を処理する。クライアント300は、矢印304で模
式的に示してあるように、オブジェクト封入を記述する
実装非依存型シンタックスを用いてORB308と通信
する。このシンタックスはインタフェース定義言語(I
DL)と呼ばれOMGにより作成されたCORBA仕様
に定義されている。OMGインタフェース定義言語は属
性とオペレーション・シグネチャを有するインタフェー
スを定義するために使用できる。言語は開発者による再
利用を容易にするためインタフェース記述の間の継承を
サポートしている。サーバ302のオブジェクト又はサ
ーバントはクライアントによる使用のためOMG・ID
Lで規定されたインタフェースと共にオブジェクト参照
(オブジェクト・レファレンス)をエクスポートする。
オブジェクト参照はオブジェクト実装の識別を含むので
オブジェクト・アダプタ316はサーバ内の正しいオブ
ジェクトに要求を渡すことができる。
【0024】CORBAアーキテクチャ全体は、実際に
は従来のプログラミング言語、例えば、C、C++、J
ava又はSmalltalkなどで実装される。各種
言語での実装はORB製品にバンドルされたIDLコン
パイラを代表的に提供している多数のベンダーから入手
できる。IDLコンパイラは、OMG・IDLインタフ
ェースを定義しアプリケーション・プログラムに組み込
むことのできるヘッダファイルを生成する。IDLコン
パイラは各インタフェースについてスタブ・コード30
6とスケルトン・コード314も生成する。
【0025】クライアント・アプリケーション・プログ
ラム300はOMG・IDLスタブ・コード306にリ
ンクできる。クライアント・アプリケーション・プログ
ラムに関する限り、スタブ・コード306のインボケー
ションはファンクションのローカルコールであるように
見える。一旦インボケーションされると、スタブ・コー
ド306はオペレーション・パラメータをトランスポー
ト層310でサーバ302へ送信するのに適した通信フ
ォーマットにエンコード(暗号化)するために整列を実
行するORB308へのインタフェースを提供する。
【0026】サーバ側では、OMG・IDLスケルトン
・コード314はOMG・IDLインタフェースの対応
する実装である。ORB308が要求を受信すると、ス
ケルトン・コード314は要求パラメータを整列解除
し、矢印312で模式的に示しているようにサーバ30
2のオブジェクト実装へのコールを生成する。サーバが
要求の処理を終えると、スケルトン・コード314とス
タブ・コード306は結果をクライアント・プログラム
300に返す。エラーが発生した場合、サーバによって
又はORBによって生成された例外情報が返される。
【0027】オブジェクト・アダプタ316はORB3
08とスケルトン・コード314とサーバ302の間の
インタフェースを含む。オブジェクト・アダプタ316
などのアダプタはオブジェクト実装の登録やサーバの活
性化などの機能をサポートする。オブジェクト・アダプ
タにはアダプタの目的によって様々な種類がある。当初
のCORBA仕様では汎用のベーシック・オブジェクト
・アダプタ即ちBOAだけを定義した。BOAは一部の
基本的機能を実行する。例えば、クライアントの要求が
活性化していないサーバ・プロセスを指定したときに
は、BOAはサーバ・プロセスを自動的に活性化する。
サーバが活性化するとこれの実装をBOAに登録する。
BOAはこの登録を保存し将来のオブジェクト要求で使
用する。オブジェクトが活性化された後には、スケルト
ン・コード314のコールバック・メソッドを使用して
クライアント要求を受信できる。BOAのサービスには
例外処理とオブジェクト参照管理も含まれる。
【0028】図4の略ブロック図は図3のORBアーキ
テクチャへのフィルタの追加を示している。図4におい
て、図3の要素に対応する要素には対応する参照番号を
割り当ててある。例えば、図3のスタブ・コード306
は図4のスタブ・コード406に対応する。クライアン
ト側で、クライアント400はスタブ・コード406と
相互作用し、コードは更にORB408と交信する。O
RB408はクライアント側フィルタ422〜436の
実装を含む。サーバ側では、サーバ・フィルタ・レジス
トリ420がサーバ側フィルタ438〜452の実装を
含む。
【0029】フィルタはメソッド・インボケーションの
プロセス内でフィルタが適用される相対的配置に従って
又適用の対象となるメッセージの種類により分類され
る。つまりフィルタはプレ要求フィルタ、ポスト要求フ
ィルタ、プレ応答フィルタ、ポスト応答フィルタに分類
できる。プレ要求フィルタ422と450はクライアン
ト側において要求メッセージの中への引数整列424の
前であって、かつ、スケルトン414における要求引数
の整列解除448前に適用される。ポスト要求フィルタ
426と446はクライアント側における引数整列42
4の後であって、かつ、スケルトン414における要求
引数の整列解除448後に適用される。図4においては
フィルタの各種類について1つの要素しか図示していな
いが、実際には数個の独立したプレ・フィルタ、数個の
独立したポスト・フィルタなどがあることには注意すべ
きである。各フィルタは独立して有効化又は無効化でき
る。
【0030】同様に、プレ応答フィルタ438と434
はスケルトン414における応答結果の整列440前で
あって、かつ、クライアント側における応答結果の整列
解除432前に適用される。ポスト応答フィルタ442
と430はスケルトン414において結果値の整列44
0後であって、かつ、クライアント側において結果の整
列解除432後に適用される。
【0031】変換フィルタもデータの暗号化及び復号化
又はデータ圧縮を実装するために使用できる。例えば、
クライアント変換フィルタ428はサーバ変換フィルタ
452により復号されたデータを暗号化するために使用
でき、一方でサーバ変換フィルタ444はクライアント
変換フィルタ436により復号されたデータを暗号化す
ることもできる。本発明の現時点で好適な実施態様でサ
ポートされる変換フィルタには2種類あり、それは要求
フィルタと応答フィルタである。要求フィルタ428、
452は、全部のプレ・フィルタ及びポスト・フィルタ
が要求メッセージに適用された後ではクライアント側
に、プレ・フィルタ及びポスト・フィルタが要求メッセ
ージに適用される前ではサーバ側に呼び出される。応答
フィルタ444、436は、応答メッセージにプレ・フ
ィルタ及びポスト・フィルタの全部が適用された後では
サーバ側に、応答メッセージにプレ・フィルタ及びポス
ト・フィルタが適用される前ではクライアント側に呼び
出される。変換フィルタはメッセージ本体にだけ適用さ
れ、メッセージ・ヘッダには適用されないが、これはメ
ッセージ・ヘッダーの一部をなすオブジェクトがメッセ
ージを適当な下請けに配送するためと適用すべき特定の
変換フィルタを選択するためにオブジェクト要求ブロー
カによって必要とされる情報を含むためである。しか
し、ダミー・メッセージ・ヘッダを従来のプロトコルに
従って生成してメッセージ・ヘッダに対する変換が適用
できるようにしても良い。これにより正しい下請けへの
適切な配送ができるようになる。
【0032】フィルタは使用できるようになる前にクラ
イアントとサーバの両方に登録される。クライアント側
フィルタ・レジストリ418とサーバ側レジストリ42
0は図5に更に詳細に図示してある。図4と同様に、図
3及び図4の要素に対応する図5の要素には対応する参
照番号が与えられている。一般に、フィルタ適用の順序
は重要でフィルタのリンクされたリストが実際には登録
されることになる。リンクされたリスト(以下、リンク
・リスト)はフィルタとその適用順序の両方を表示す
る。フィルタは実装に特有なものであり、サーバ側の登
録は実装レベルで行なわれる。クライアント側の登録
は、クライアントがオブジェクトの実装に気付かないの
で、オブジェクト要求ブローカのレベルで行なわれる。
【0033】図5を参照すると、クライアント500は
フィルタ識別子519及び523からそれぞれクライア
ント・フィルタ実装521及び525への順不同マッピ
ングを含むフィルタ・レジストリ518を含む。各々の
クライアント・プロセスに対して1つのクライアント・
フィルタ・レジストリがあり、各々のエントリにはクラ
イアント側でインボケーションされるべきフィルタと、
関連付けられているフィルタ名と実装とが含まれてい
る。これらは” register filter
s()”を用いクライアント側でORBに登録されたフ
ィルタであることもあり、又はこのサーバから動的にダ
ウンロードされたフィルタであることもある。フィルタ
実装グループ523はプレ・フィルタ554、ポスト・
フィルタ556、変換フィルタ558に対しての順位付
けしたフィルタ・インタフェース・リストを含む。この
様なリストは、好ましくは” retrieve fi
lters()”のインボケーションに応答してORB
により作成される。各々のクライアント・オブジェク
ト、即ちプロセス内に見られるCORBAオブジェクト
の各クライアント側表現はフィルタ実装グループ523
を有する。現時点で好適な実施態様においては、クライ
アントはオブジェクト実装識別子からフィルタ実装グル
ープへのマッピングを保持するキャッシュを含む。オブ
ジェクト実装識別子はサーバのホスト名、サーバID、
実装IDを含む。サーバ側では、登録はオブジェクト実
装レベルで行なわれる。従って、サーバ502は多数の
フィルタ・レジストリを含み、その内フィルタ・レジス
トリ1である560とフィルタ・レジストリ2である5
74が図示してある。各レジストリはプレ・フィルタ識
別、ポスト・フィルタ識別、及び、変換フィルタ識別の
リンク・リストを含む。例えばサーバ側にあるフィルタ
・レジストリ560は、クライアント側にあるフィルタ
実装グループ523からの番号を用いて、プレ・フィル
タに対応するリスト562、ポスト・フィルタに対応す
るリスト564、変換フィルタに対応するリスト566
の3種類のリストを含む。同様に、フィルタ・レジスト
リ574はプレ・フィルタに対応するリスト568、ポ
スト・フィルタに対応するリスト570、変換フィルタ
に対応するリスト572を含む。レジストリ560、5
74の各々は各々タイムスタンプ567、573も含
む。これらのタイムスタンプは、詳細には後述するよう
に、対応するフィルタ・レジストリの現在の構成を表わ
すために用いられる。
【0034】2つのフィルタ登録アプリケーション・プ
ログラミング・インタフェース(以下、アプリケーショ
ン・プログラミング・インターフェースを、単にAPI
という)、” register filter()”
と” remove filter()”がオブジェク
ト要求ブローカ・オブジェクトに存在し、プログラム開
発者がクライアント側でフィルタを登録したり削除した
りできるようにする。サーバには4種類のフィルタ登録
APIがあり、これらは、” register fi
lter()”、” register filter
after()”、” register_filt
er_before()”、及び、”_remove_
filter()”である。これらのAPIによりサー
バは、初期設定位置(リンク・リストの最後)に、又は
フィルタ名リストの中の以前に登録されたフィルタに対
して相対的に、フィルタを登録できる。削除APIは指
定したフィルタを削除する。フィルタは名前で登録され
各フィルタは階層的に生成することのできるユニークな
名前を有する。
【0035】図6のフローチャートはサーバ・フィルタ
登録処理を示す。登録はステップ600で始まり、決定
ブロック602に進み、ここで更にフィルタを登録すべ
きか否かが決定される。更にフィルタを登録する場合、
プロセス(処理)はステップ604に進み、ここで次の
フィルタが前述のAPIを用いて登録される。ステップ
604から、プロセスはステップ602に戻る。これ以
上登録すべきフィルタがない場合、プロセスはステップ
602からステップ606に進み、ここでサーバはタイ
ムスタンプを生成する。タイムスタンプは実際の時刻指
定か、又は時間的順序を表示する他の何らかの指定であ
る。例えば、タイムスタンプはUNIX時間とプロセス
IDの組み合わせであったり、又は単に一様に増加する
数であり得る。タイムスタンプはフィルタ・リストと併
せて保存されフィルタ・リストに何らかの変更があった
場合に更新される。ステップ606の後、プロセスはス
テップ608へ進み終了する。
【0036】クライアントはサーバに対して特別なメソ
ッドである”_retrieve_filter
s()”のコールを行なうことでサーバの実装によって
サポートされている全フィルタのリストを取得できる。
サーバはオブジェクト実装に関連付けられたプレ・フィ
ルタ、ポスト・フィルタ、変換フィルタの各々全部の名
前の入ったリストを3つ返す。クライアントはフィルタ
が適用されるべき順番に配列されたフィルタ・リストを
構築できる。別の実施態様においては、全部の実装のフ
ィルタ・リストはホスト実装IDレベルでキャッシュす
ることができる。
【0037】現時点で好適な本発明の実施態様において
は、フィルタ・リストは何時でも、システムがオペレー
ション中であっても、変更できる。従来のシステムで
は、新規フィルタ・リストをクライアントに通知するた
めにサーバをシャットダウンする必要がある。インボケ
ーションを行なう度にクライアントに現在のフィルタ・
リストを要求するのではなく、クライアントによって使
用されるフィルタ・リストをフィルタの適用前にサーバ
側で「認証」するために前述したタイムスタンプが用い
られる。更に詳しく説明すると、タイムスタンプを取得
した後、後続の全てのメソッド・インボケーションにお
いて、クライアントは、要求メッセージのサービス内容
リスト・フィールドの中でサーバにタイムスタンプのク
ライアントによるコピーを送信する。サーバは、このサ
ービス内容リスト・フィールドからタイムスタンプを取
り出して、タイムスタンプの自分自身のコピーと比較す
るが、このタイムスタンプのコピーはサーバがフィルタ
・リストの変更(修正)により更新する。タイムスタン
プの不一致がある場合、サーバはクライアントに例外を
返し、これに応答してクライアントはサーバに対して”
_retrieve_filters()”のメソッド
・を再度インボケーションして新規のフィルタ・リスト
と最新のタイムスタンプを取得する。クライアントは新
規フィルタと新規タイムスタンプを使用してメソッドを
再度ンボケーションをする。
【0038】この処理が図7A及び図7Bのフロー図に
説明してあり、処理はステップ700で始まりステップ
702に進み、ここで他の何らかのメソッドをインボケ
ーションする前に、クライアントがサーバに対して”
retrieve filters()”のメソッド・
インボケーションを行う。これに応答して、サーバはス
テップ704でフィルタ・リストとタイムスタンプを返
す。このフィルタ・リストはフィルタ名の3つのリスト
であり、プレ・フィルタ、ポスト・フィルタ、変換フィ
ルタの各々に1つのリストが対応している。このフィル
タ・リストを返した後、処理はステップ706に進み、
ここでクライアントは図4のステップ422からステッ
プ428に図示したようにメソッドをインボケーション
する。このメソッドのインボケーション・プロセス中に
おいて、ステップ704でサーバからクライアントが取
得したタイムスタンプのクライアントによるコピーを要
求メッセージのサービス内容リストに含める。ステップ
708において、サーバはメソッド・インボケーション
を受け取り、自分自身のタイムスタンプを取り出すが、
自分自身のタイムスタンプはフィルタ・リストへの修正
を反映するように更新されている。
【0039】ステップ710において、サーバはクライ
アントから受信したタイムスタンプを自分自身の更新さ
れたタイムスタンプと比較する。この処理はページ間連
結子714及び718を経由して決定ブロック720に
進む。サーバはタイムスタンプ同士を比較して、タイム
スタンプ同士が一致しない場合、処理はステップ722
に進み、ここでサーバは”_rebind_filte
rs()”例外をクライアントに返す。”_rebin
d_filters()”例外に続けて、処理はページ
間連結子716及び712を経由してステップ702に
戻り、ここでクライアントは前述したように最新のフィ
ルタ・リストとタイムスタンプをサーバから取得するた
め”_retrieve_filters()”のメソ
ッドのインボケーションを再度行う。
【0040】ステップ720において、タイムスタンプ
が等しいことが分かった場合、処理はステップ724に
進み、ここでサーバはクライアントのメソッド・インボ
ケーションを処理して、処理はステップ726に進み終
了する。
【0041】本発明の別の観点においては、フィルタ・
コードはクライアント側に動的にダウンロードすること
もできる。このようにすると、クライアント・アプリケ
ーション・プログラマはこれらをプログラミングした
り、どの種類のフィルタが提供されなければならないか
考えることなく、フィルタを使用できる。この種の動作
は、クラス・ダウンロードをサポートするJava実装
に基づいたORBで特に有用である。こうしたシステム
では、クライアント・プログラマは単純に通常のアプリ
ケーションを書くだけで、Javaオブジェクト要求ブ
ローカそれ自体がフィルタの発見と適用を担当する。こ
の処理が図8のフロー図に図示してある。処理はステッ
プ800で始まりステップ802に進み、ここでクライ
アントは” retrieve filters()”の
メソッド・インボケーションを行う。このステップでク
ライアントはサーバから完全に適格なフィルタ名を取り
出す。処理はステップ804に進み、選択されたフィル
タ・クラスをダウンロードするために、ここでクライア
ントはJavaクラスローダを使用する。処理はステッ
プ806に進みクライアントはクラス生成関数メソッド
を使用してロードしたクラスの新規インスタンスを作成
する。次に処理はステップ808に進んで終了する。
【0042】
【発明の効果】前述した実施態様のソフトウェアによる
実装は、有形媒体例えばコンピュータで読み取り可能な
媒体例えば図1のディスケット142、CD−ROM1
47、ROM115、又は固定ディスク装置152上に
固定されるか、又はコンピュータ・システムへ、モデム
又はその他のインタフェース装置例えば媒体191上で
ネットワーク195に接続されたネットワーク・アダプ
タ190などを経由して送信可能な、一連のコンピュー
タ命令を含む。媒体191は光通信線又はアナログ通信
線を含みこれに限定されない有形の媒体とするか、又は
マイクロ波、赤外線又はその他の伝送技術を含みこれに
制限されない無線技術で実現できる。これはまたインタ
ーネットでも良い。一連のコンピュータ命令は本発明に
関連して本明細書で前述した機能の全部又は一部を実現
する。このようなコンピュータ命令は多くのコンピュー
タ・アーキテクチャ又はオペレーティング・システムで
使用するための多数のプログラム言語で書けることが当
業者には理解されよう。更に、こうした命令は半導体、
磁気、光又はその他のメモリ装置を含みこれに限定され
ない現在又は将来のあらゆるメモリ技術を使用して記憶
するか、又は光、赤外線、マイクロ波、又はその他の伝
送技術を含みこれに限定されない現在又は将来のあらゆ
る通信技術を使用して伝送できる。この様なコンピュー
タ・プログラム製品は例えばシュリンクラップ・ソフト
ウェアなど印刷又は電子文書を添付したリムーバブル媒
体として配布する、例えばシステムROM又は固定ディ
スク上でコンピュータ・システムへ導入済みソフトウェ
アとして、又はインターネット又はワールドワイドウェ
ブなどネットワーク上のサーバ又は電子掲示板から配布
することができる。
【0043】本発明の典型的な実施態様を開示したが、
本発明の精神と範囲から逸脱することなく本発明の利点
の幾つかを実現する様々な変化及び変更を成し得ること
は当業者には明らかであろう。同じ機能を実行する他の
コンポーネントを適当に置換え得ることは当業者には明
らかであろう。更に、本発明の方法は適当な処理装置命
令を使用したどのようなソフトウェア実装としても、又
はハードウェア論理とソフトウェア論理の組み合わせを
使用して同じ結果を達成するどのようなハイブリッド実
装としてのどちらかでも実現できる。更に、本発明は分
散オブジェクト・システムに関して説明したが、共有デ
ータ集合を有するあらゆるマルチスレッド・システムに
おいて安定反復子を作成するように応用可能であること
が当業者には明らかであろう。更に、メモリのサイズ、
及び特定の関数を実現するために用いられる論理および
/または命令の特定の構成などの側面ならびに本発明の
概念に対するその他の変更は添付の請求項で包含される
ことを意図している。
【図面の簡単な説明】
【図1】本発明を実行できるコンピュータ・システムの
一部分を形成する従来技術のハードウェア・プラットフ
ォームの略ブロック図である。
【図2】CORBAシステムを構築できる従来技術のコ
ンピュータ・ネットワーク・システムの略図である。
【図3】従来技術のCORBA環境を示す略ブロック図
である。
【図4】本発明の原理に従って構築したクライアント及
びサーバのフィルタを含むCORBA環境を示す略ブロ
ック図である。
【図5】本発明の原理によるクライアント及びサーバの
フィルタ・レジストリの更に詳細なビューを示す略ブロ
ック図である。
【図6】本発明の原理によるフィルタの登録を示すフロ
ーチャートである。
【図7】図7A及び図7Bを併せて本発明の原理による
動的フィルタ・リストの保守を示すフローチャートを形
成する。
【図8】本発明の原理によりクライアントによるフィル
タ・コードのダウンロードを示すフローチャートであ
る。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ケン・エム・キャヴァノウ アメリカ合衆国、カリフォルニア州 94037、 モンタラ、ピー・オー・ボック ス 371480 (72)発明者 サンジーヴ・クリシュナン アメリカ合衆国、カリフォルニア州 94087、 サニーヴェール、 エル・カミ ノ・リアル 870 イー、#216 (72)発明者 ローイット・ガルグ アメリカ合衆国、カリフォルニア州 95134、 サン・ホゼ、ナヴァロ・プレイ ス 430、#115

Claims (56)

    【特許請求の範囲】
  1. 【請求項1】クライアントとサーバを有する分散オブジ
    ェクト・システムにおいてメソッド・インボケーション
    中に、選択した時点でサーバ指定コードを実行するため
    の構造を提供するための装置であって、前記装置が、 複数のサーバ・フィルタであって、前記サーバフィルタ
    の各々が識別子を有し、かつ、選択したコードを前記メ
    ソッド・インボケーション中に実行する複数のサーバ・
    フィルタと、 サーバ・オブジェクトにおけるサーバ・フィルタ・レジ
    ストリであって、フィルタ識別子と、前記レジストリか
    ら前記フィルタ識別子を取り出すためのメソッドとを含
    むサーバ・フィルタ・レジストリと、 クライアント・オブジェクトにおけるクライアント・フ
    ィルタ・レジストリであって、前記クライアント・フィ
    ルタ・レジストリが前記フィルタ識別子を取り出すため
    のメソッドのインボケーションに応答して前記サーバ・
    オブジェクトから取得したフィルタ識別子を含み、前記
    クライアント・オブジェクトはクライアント・フィルタ
    ・レジストリのフィルタ識別子を使用して1つ以上の前
    記サーバ・フィルタを選択的にインボケーションするこ
    とができることを特徴とするクライアント・フィルタ・
    レジストリとを含むことを特徴とする装置。
  2. 【請求項2】前記サーバにおける複数のフィルタ・レジ
    ストリであって、各々のレジストリは前記サーバにより
    サポートされる実装に対応し、各々のフィルタ・レジス
    トリはフィルタ識別子と前記レジストリから前記フィル
    タ識別子を取り出すためのメソッドを含む複数のフィル
    タ・レジストリと、 複数のクライアント・フィルタであって、前記クライア
    ント・フィルタの各々が識別子を有し、かつ、選択した
    コードを前記メソッド・インボケーション中に実行する
    複数のクライアント・フィルタと、 前記クライアントにおけるクライアント・フィルタ・レ
    ジストリであって、前記クライアント・フィルタ・レジ
    ストリがフィルタ識別子とこれに対応するクライアント
    側フィルタ実装を含むことを特徴とするクライアント・
    フィルタ・レジストリと、 各クライアント・オブジェクトにおけるフィルタ実装グ
    ループであって、前記フィルタ実装グループがクライア
    ント側フィルタ実装を有するフィルタ・リストを含み、
    前記クライアント側フィルタ実装の前記識別子は前記サ
    ーバ・オブジェクトからフィルタ識別子を取り出すため
    のメソッドに応答して前記クライアント・オブジェクト
    に対応する前記サーバ・オブジェクトから取得した前記
    フィルタ識別子に対応することを特徴とするフィルタ実
    装グループとを有する請求項1に記載の装置。
  3. 【請求項3】前記フィルタ・リストはプレ・フィルタ、
    ポスト・フィルタ、変換フィルタに対応することを特徴
    とする請求項2に記載の装置。
  4. 【請求項4】前記クライアント・オブジェクトでインボ
    ケーションされたメソッドは前記クライアント・オブジ
    ェクトの前記フィルタ・リストによって表示された前記
    フィルタもインボケーションすることを特徴とする請求
    項1に記載の装置。
  5. 【請求項5】前記クライアントはオブジェクト実装識別
    子からフィルタ実装グループへのマッピングを保持する
    フィルタ実装グループ・キャッシュを含み、オブジェク
    ト実装識別子はサーバのホスト名、サーバ識別子、実装
    識別子を含むことを特徴とする請求項1に記載の装置。
  6. 【請求項6】前記分散オブジェクト・システムはクライ
    アント・オブジェクトからサーバ・オブジェクトへ前記
    メソッド・インボケーションを送信するオブジェクト要
    求ブローカを含み、かつ、前記サーバ・フィルタは前記
    オブジェクト要求ブローカへ前記サーバ・オブジェクト
    を接続する実装特有コードに配置されることを特徴とす
    る請求項1に記載の装置。
  7. 【請求項7】各々が識別子を有し、かつ、前記オブジェ
    クト要求ブローカに配置される複数のクライアント・フ
    ィルタを更に含むことを特徴とする請求項6に記載の装
    置。
  8. 【請求項8】前記クライアント・フィルタ・レジストリ
    は前記クライアント・フィルタと前記サーバ・フィルタ
    の両方についてのフィルタ識別子を含むことを特徴とす
    る請求項7に記載の装置。
  9. 【請求項9】前記オブジェクト要求ブローカは前記メソ
    ッド・インボケーション中に動作可能な整列及び整列解
    除メカニズムを含み、かつ、前記複数のサーバ・フィル
    タは前記整列及び整列解除が動作する前にコードを実行
    するプレ・フィルタを含むことを特徴とする請求項6に
    記載の装置。
  10. 【請求項10】前記オブジェクト要求ブローカは前記メ
    ソッド・インボケーション中に動作可能な整列及び整列
    解除メカニズムを含み、かつ、前記複数のサーバ・フィ
    ルタは前記整列及び整列解除が動作した後にコードを実
    行するポスト・フィルタを含むことを特徴とする請求項
    6に記載の装置。
  11. 【請求項11】前記オブジェクト要求ブローカは前記メ
    ソッド・インボケーション中に動作可能な整列及び整列
    解除メカニズムを含み、かつ、前記複数のサーバ・フィ
    ルタは前記整列及び整列解除が動作する前にコードを実
    行するプレ・フィルタと、前記整列及び整列解除が動作
    した後にコードを実行するポスト・フィルタと、前記プ
    レ・フィルタが動作する前であって、かつ、前記ポスト
    ・フィルタが動作した後にコードを実行する変換フィル
    タとを含むことを特徴とする請求項6に記載の装置。
  12. 【請求項12】前記クライアント・オブジェクトは前記
    サーバ・オブジェクトを前記オブジェクト要求ブローカ
    に接続する前記実装特有コードに実現された全てのサー
    バフィルタを使用することを特徴とする請求項6に記載
    の装置。
  13. 【請求項13】前記フィルタ識別子の各々がユニークで
    あることを特徴とする請求項1に記載の装置。
  14. 【請求項14】前記フィルタ識別子が階層化されている
    ことを特徴とする請求項1に記載の装置。
  15. 【請求項15】前記サーバ・フィルタ・レジストリはフ
    ィルタをインボケーションするべき順序を表示すること
    を特徴とする請求項1に記載の装置。
  16. 【請求項16】前記サーバ・フィルタ・レジストリと前
    記クライアント・フィルタ・レジストリは各々が各フィ
    ルタによって要求されるパラメータの表示を含むことを
    特徴とする請求項1に記載の装置。
  17. 【請求項17】フィルタ登録アプリケーション・プログ
    ラマ・インタフェースを更に含み、これによって分散オ
    ブジェクト・システム運用中にフィルタを前記複数のフ
    ィルタ及び前記サーバ・フィルタ・レジストリに追加し
    又削除することができることを特徴とする請求項1に記
    載の装置。
  18. 【請求項18】前記サーバ・フィルタ・レジストリは前
    記複数のサーバ・フィルタの現在の構成を反映する表示
    を格納する格納部を含むことを特徴とする請求項17に
    記載の装置。
  19. 【請求項19】前記サーバ・オブジェクトは前記表示を
    前記クライアント・オブジェクトへ送信するメカニズム
    を含むことを特徴とする請求項18に記載の装置。
  20. 【請求項20】前記クライアント・オブジェクトは前記
    メソッド・インボケーションの中に前記表示を含み、か
    つ、前記サーバ・オブジェクトは前記クライアント・フ
    ィルタ・レジストリが前記複数のサーバ・フィルタの現
    在の構成を含まないことを前記メソッド・インボケーシ
    ョンの中の前記表示が表示する場合に前記クライアント
    ・オブジェクトに警告するためのメカニズムを含むこと
    を特徴とする請求項19に記載の装置。
  21. 【請求項21】前記サーバ・オブジェクトから前記クラ
    イアント・オブジェクトへフィルタ・コードをダウンロ
    ードして前記クライアント・オブジェクトが前記フィル
    タ・コードを実行できるようにするためのメカニズムを
    更に含むことを特徴とする請求項1に記載の装置。
  22. 【請求項22】クライアント・オブジェクトとサーバ・
    オブジェクトとを有する分散オブジェクト・システムに
    おいてメソッド・インボケーション中に、選択した時点
    でクライアント指定コードを実行するための構造を提供
    するための方法であって、前記方法が、 (a) 複数のサーバ・フィルタを作成するステップで
    あって、前記サーバ・フィルタの各々が識別子を有し、
    かつ、選択したコードを前記メソッド・インボケーショ
    ン中に実行することを特徴とするステップと、 (b) サーバ・オブジェクトにおいてサーバ・フィル
    タ・レジストリを作成するステップであって、前記サー
    バ・フィルタ・レジストリがフィルタ識別子と、レジス
    トリからフィルタ識別子を取り出すためのメソッドとを
    含むことを特徴とするステップと、 (c) クライアント・オブジェクトにおいてクライア
    ント・フィルタ実装グループを作成するステップであっ
    て、前記サーバ・フィルタ・レジストリが前記フィルタ
    識別子を取り出すための前記メソッドの呼び出しに応答
    して前記サーバ・オブジェクトから取得したフィルタ識
    別子に対応するクライアントフィルタ実装を含むことを
    特徴とするステップと、 (d) 前記フィルタ実装グループの1つ以上のフィル
    タをインボケーションするために前記クライアント・オ
    ブジェクトを用いるステップとを含むことを特徴とする
    方法。
  23. 【請求項23】ステップ(d)は、 (e) 前記サーバによってオプションとしてフラッグ
    の付けられているフィルタを選択的にインボケーション
    するために前記クライアント・オブジェクトを用いるス
    テップを含むことを特徴とする請求項22に記載の方
    法。
  24. 【請求項24】前記分散オブジェクト・システムは前記
    クライアント・オブジェクトから前記サーバ・オブジェ
    クトへ前記メソッド・インボケーションを送信するオブ
    ジェクト要求ブローカを含み、かつ、前記ステップ
    (a)は、 (a1) 前記サーバ・オブジェクトを前記オブジェク
    ト要求ブローカに接続する実装特有コードの中に前記サ
    ーバ・フィルタを作成するステップを含むことを特徴と
    する請求項23に記載の方法。
  25. 【請求項25】(e) 複数のクライアント・フィルタ
    を作成するステップであって、前記クライアント・フィ
    ルタの各々が識別子を有し前記オブジェクト要求ブロー
    カに配置され手いることを特徴とするステップを更に含
    むことを特徴とする請求項24に記載の方法。
  26. 【請求項26】前記ステップ(c)は、 (c1) 前記クライアント・フィルタと前記サーバ・
    フィルタの両方についてのフィルタ識別子で前記クライ
    アント・フィルタ・レジストリを作成するステップを含
    むことを特徴とする請求項25に記載の方法。
  27. 【請求項27】前記オブジェクト要求ブローカは前記メ
    ソッド・インボケーション中に動作可能な整列及び整列
    解除メカニズムを含み、前記ステップ(a)は、 (a2) 前記整列及び整列解除が動作する前にコード
    を実行するプレ・フィルタを作成するステップを含むこ
    とを特徴とする請求項24に記載の方法。
  28. 【請求項28】前記オブジェクト要求ブローカは前記メ
    ソッド・インボケーション中に動作可能な整列及び整列
    解除メカニズムを含み、前記ステップ(a)は、 (a3) 前記整列及び整列解除が動作した後にコード
    を実行するポスト・フィルタを作成するステップを含む
    ことを特徴とする請求項24に記載の方法。
  29. 【請求項29】前記オブジェクト要求ブローカは前記メ
    ソッド・インボケーション中に動作可能な整列及び整列
    解除メカニズムを含み、前記ステップ(a)は、 (a4) 前記整列及び整列解除が動作する前にコード
    を実行するプレ・フィルタを作成するステップと、 (a5) 前記整列及び整列解除が動作した後にコード
    を実行するポスト・フィルタを作成するステップと、 (a6) 前記プレ・フィルタの前にコードを実行する
    変換フィルタを作成するステップと、 (a7) 前記ポスト・フィルタの後でコードを実行す
    る変換フィルタを作成するステップとを含むことを特徴
    とする請求項24に記載の方法。
  30. 【請求項30】前記ステップ(d)は、 (d1) 前記サーバ・オブジェクトを前記オブジェク
    ト要求ブローカに接続する前記実装特有コードに実現さ
    れた全てのサーバ・フィルタを使用するステップを含む
    ことを特徴とする請求項24に記載の方法。
  31. 【請求項31】前記ステップ(a)は、 (a8) 各フィルタをユニークな識別子で作成するス
    テップを含むことを特徴とする請求項23に記載の方
    法。
  32. 【請求項32】前記ステップ(a)は、 (a9) 階層化フィルタ識別子で前記複数のフィルタ
    を作成するステップを含むことを特徴とする請求項23
    に記載の方法。
  33. 【請求項33】前記ステップ(b)は、 (b1) 前記フィルタをインボケーションすべき順序
    を表わすための前記サーバ・フィルタ・レジストリを作
    成するステップを含むことを特徴とする請求項23に記
    載の方法。
  34. 【請求項34】前記ステップ(b)は、 (b2) 各フィルタによって要求されるパラメータの
    表示で前記サーバ・フィルタ・レジストリを作成するス
    テップを含み、かつ、前記ステップ(c)は、 (c2) 各フィルタによって要求されるパラメータの
    表示で前記クライアント・フィルタ・レジストリを作成
    するステップを含むことを特徴とする請求項23に記載
    の方法。
  35. 【請求項35】(f) 分散オブジェクト・システム運
    用中にフィルタを前記複数のフィルタ及び前記サーバ・
    フィルタ・レジストリに追加し又削除するためにフィル
    タ登録アプリケーション・プログラマ・インタフェース
    を用いるステップを更に含むことを特徴とする請求項2
    3に記載の方法。
  36. 【請求項36】(g) 前記サーバ・オブジェクトの格
    納部に前記複数のサーバ・フィルタの現在の構成を反映
    する表示を格納するステップを更に含むことを特徴とす
    る請求項35に記載の方法。
  37. 【請求項37】(h) 前記表示を前記サーバ・オブジ
    ェクトから前記クライアント・オブジェクトへ送信する
    ステップを更に含むことを特徴とする請求項36に記載
    の方法。
  38. 【請求項38】(i) 前記メソッド・インボケーショ
    ンに前記表示を含めるステップと、 (j) 前記サーバ・オブジェクトにおいて前記メソッ
    ド・インボケーションを受信するステップと、 (k) 前記クライアント・フィルタ・レジストリが前
    記複数のサーバ・フィルタの現在の構成を含まないこと
    を前記受信したメソッド・インボケーションにおける表
    示が表示する場合に前記クライアント・オブジェクトに
    警告するステップとを更に含むことを特徴とする請求項
    37に記載の方法。
  39. 【請求項39】(1) 前記サーバ・オブジェクトから
    前記クライアント・オブジェクトへフィルタ・コードを
    ダウンロードして前記クライアント・オブジェクトが前
    記フィルタ・コードを実行できるようにするステップ
    を更に含むことを特徴とする請求項23に記載の方法。
  40. 【請求項40】クライアント・オブジェクト及びサーバ
    ・オブジェクトを有する分散オブジェクト・システムに
    おいてメソッド・インボケーション中に、選択した時点
    でアプリケーション・プログラム指定コードを実行する
    ための構造を提供するためのコンピュータ・プログラム
    製品であって、前記コンピュータ・プログラム製品はコ
    ンピュータで読み取り可能なプログラム・コードを記録
    されたコンピュータで使用可能な媒体を含み、前駆プロ
    グラム・コードが、 複数のサーバ・フィルタを作成するためのプログラム・
    コードであって、前記サーバ・フィルタの各々が識別子
    を有し、かつ、選択したコードを前記メソッド・インボ
    ケーション中に実行することを特徴とするプログラム・
    コードと、 サーバ・オブジェクトにおいてサーバ・フィルタ・レジ
    ストリを作成するためのプログラム・コードであって、
    前記サーバ・フィルタ・レジストリがフィルタ識別子
    と、レジストリからフィルタ識別子を取り出すための前
    記メソッドとを含むことを特徴とするプログラム・コー
    ドと、 クライアント・オブジェクトにおいて、クライアント・
    フィルタ・レジストリを作成するためのプログラム・コ
    ードであって、前記クライアント・フィルタ・レジスト
    リが前記フィルタ識別子を取り出すためのメソッドのイ
    ンボケーションに応答して前記サーバ・オブジェクトか
    ら取得したフィルタ識別子を含むことを特徴とするプロ
    グラム・コードと、 クライアント・オブジェクトにおけるプログラム・コー
    ドであって、クライアント・フィルタ・レジストリの中
    の前記フィルタ識別子を使用して少なくとも一つの前記
    サーバ・フィルタを選択的にインボケーションするため
    のプログラム・コードとを含むことを特徴とするコンピ
    ュータ・プログラム製品。
  41. 【請求項41】前記分散オブジェクト・システムは前記
    クライアント・オブジェクトから前記サーバ・オブジェ
    クトへ前記メソッド・インボケーションを送信するオブ
    ジェクト要求ブローカを含み、かつ、フィルタを作成す
    るための前記プログラム・コードは前記オブジェクト要
    求ブローカへ前記サーバ・オブジェクトを接続する実装
    特有コードの中に前記サーバ・フィルタを作成するため
    のプログラム・コードを含むことを特徴とする請求項4
    0に記載のコンピュータ・プログラム製品。
  42. 【請求項42】複数のクライアント・フィルタを形成す
    るためのプログラム・コードを更に含み、前記複数のク
    ライアント・フィルタの各々が識別子を有し、かつ、前
    記オブジェクト要求ブローカに配置されることを特徴と
    する請求項41に記載のコンピュータ・プログラム製
    品。
  43. 【請求項43】クライアント・フィルタ・レジストリを
    作成するためのプログラム・コードは前記クライアント
    ・フィルタと前記サーバ・フィルタの両方についてのフ
    ィルタ識別子の付いた前記クライアント・フィルタ・レ
    ジストリを作成するためのプログラム・コードを含むこ
    とを特徴とする請求項42に記載のコンピュータ・プロ
    グラム製品。
  44. 【請求項44】前記オブジェクト要求ブローカは前記メ
    ソッド・インボケーション中に動作可能な整列及び整列
    解除メカニズムを含み、かつ、前記複数のフィルタを作
    成するためのプログラム・コードは前記整列及び整列解
    除メカニズムが動作する前にコードを実行するプレ・フ
    ィルタを作成するためのプログラム・コードを含むこと
    を特徴とする請求項41に記載のコンピュータ・プログ
    ラム製品。
  45. 【請求項45】前記オブジェクト要求ブローカは前記メ
    ソッド・インボケーション中に動作可能な整列及び整列
    解除メカニズムを含み、かつ、前記複数のフィルタを作
    成するためのプログラム・コードは前記整列及び整列解
    除メカニズムが動作した後にコードを実行するポスト・
    フィルタを作成するためのプログラム・コードを含むこ
    とを特徴とする請求項41に記載のコンピュータ・プロ
    グラム製品。
  46. 【請求項46】前記オブジェクト要求ブローカは前記メ
    ソッド・インボケーション中に動作可能な整列及び整列
    解除メカニズムを含み、かつ、前記複数のフィルタを作
    成するための前記プログラム・コードは、 前記整列及び整列解除が動作する前にコードを実行する
    プレ・フィルタを作成するためのプログラム・コード
    と、 前記整列及び整列解除が動作した後にコードを実行する
    ポスト・フィルタを作成するためのプログラム・コード
    と、 前記プレ・フィルタの前にコードを実行する変換フィル
    タを作成するためのプログラム・コードと、 前記ポスト・フィルタの後にコードを実行する変換フィ
    ルタを作成するためのプログラム・コードとを含むこと
    を特徴とする請求項41に記載のコンピュータ・プログ
    ラム製品。
  47. 【請求項47】少なくとも一つの前記サーバ・フィルタ
    を選択的にインボケーションするための前記プログラム
    ・コードは前記サーバ・オブジェクトを前記オブジェク
    ト要求ブローカに接続する前記実装特有コードに実現さ
    れた全てのサーバフィルタを使用するためのプログラム
    ・コードを含むことを特徴とする請求項41に記載のコ
    ンピュータ・プログラム製品。
  48. 【請求項48】前記複数のフィルタを作成するためのプ
    ログラム・コードは各フィルタをユニークな識別子で作
    成するためのプログラム・コードを含むことを特徴とす
    る請求項47に記載のコンピュータ・プログラム製品。
  49. 【請求項49】前記複数のフィルタを作成するためのプ
    ログラム・コードは階層化フィルタ識別子で前記複数の
    フィルタを作成するためのプログラム・コードを含むこ
    とを特徴とする請求項40に記載のコンピュータ・プロ
    グラム製品。
  50. 【請求項50】前記サーバ・フィルタ・レジストリを作
    成するための前記プログラム・コードは前記フィルタを
    インボケーションすべき順序を表示するための前記サー
    バ・フィルタ・レジストリを作成するためのプログラム
    ・コードを含むことを特徴とする請求項40に記載のコ
    ンピュータ・プログラム製品。
  51. 【請求項51】前記サーバ・フィルタ・レジストリを作
    成するためのプログラム・コードは各フィルタによって
    要求されるパラメータの表示で前記サーバ・フィルタ・
    レジストリを作成するためのプログラム・コードを含
    み、かつ、前記クライアント・フィルタ・レジストリを
    作成するためのプログラム・コードは各フィルタによっ
    て要求されるパラメータの表示で前記クライアント・フ
    ィルタ・レジストリを作成するためのプログラム・コー
    ドを含むことを特徴とする請求項40に記載のコンピュ
    ータ・プログラム製品。
  52. 【請求項52】分散オブジェクト・システム運用中にフ
    ィルタを前記複数のフィルタ及び前記サーバ・フィルタ
    ・レジストリに追加し又削除するためのフィルタ登録ア
    プリケーション・プログラマ・インタフェースを更に含
    むことを特徴とする請求項40に記載のコンピュータ・
    プログラム製品。
  53. 【請求項53】前記複数のサーバ・フィルタの現在の構
    成を反映する表示を前記サーバ・オブジェクトの格納部
    に格納するためのプログラム・コードを更に含むことを
    特徴とする請求項52に記載のコンピュータ・プログラ
    ム製品。
  54. 【請求項54】前記表示を前記サーバ・オブジェクトか
    ら前記クライアント・オブジェクトへ送信するためのプ
    ログラム・コードを更に含むことを特徴とする請求項5
    3記載のコンピュータ・プログラム製品。
  55. 【請求項55】前記メソッド・インボケーションに前記
    表示を含めるためのプログラム・コードと、 前記サーバ・オブジェクトにおいて前記メソッド・イン
    ボケーションを受信するためのプログラム・コードと、 前記クライアント・フィルタ・レジストリが前記複数の
    サーバ・フィルタの現在の構成を含まないことを前記受
    信したメソッド・インボケーションにおける前記表示が
    表示する場合に前記クライアント・オブジェクトに警告
    するためのプログラム・コードとを更に含むことを特徴
    とする請求項54に記載のコンピュータ・プログラム製
    品。
  56. 【請求項56】前記サーバ・オブジェクトから前記クラ
    イアント・オブジェクトへフィルタ・コードをダウンロ
    ードして前記クライアント・オブジェクトが前記フィル
    タ・コードを実行できるようにするためのプログラム・
    コードを更に含むことを特徴とする請求項40に記載の
    コンピュータ・プログラム製品。
JP10377827A 1997-12-18 1998-12-11 メソッド・インボケーション中にコードを 実行するための方法及びその装置 Withdrawn JP2000029730A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/993,287 US6249803B1 (en) 1997-12-18 1997-12-18 Method and apparatus for executing code during method invocation
US08/993,287 1997-12-18

Publications (1)

Publication Number Publication Date
JP2000029730A true JP2000029730A (ja) 2000-01-28

Family

ID=25539346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10377827A Withdrawn JP2000029730A (ja) 1997-12-18 1998-12-11 メソッド・インボケーション中にコードを 実行するための方法及びその装置

Country Status (4)

Country Link
US (1) US6249803B1 (ja)
EP (1) EP0924617A3 (ja)
JP (1) JP2000029730A (ja)
CA (1) CA2255406A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6405264B1 (en) * 1997-12-18 2002-06-11 Sun Microsystems, Inc. Marshaling and unmarshaling framework for supporting filters in a distributed object system
GB9828794D0 (en) * 1998-12-29 1999-02-17 Sgs Thomson Microelectronics Generation of a system model
US7562369B1 (en) * 1999-01-29 2009-07-14 Iona Technologies, Plc Method and system for dynamic configuration of activators in a client-server environment
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
DE60039554D1 (de) * 1999-06-25 2008-09-04 Canon Res Ct France S A Verteilte Verwaltung von Datenobjekten in einem Kommunikations-Netzwerk
US6556220B1 (en) * 1999-10-21 2003-04-29 International Business Machines Corporation Method and system to display, modify or substitute the contents of self-describing objects
US6912578B1 (en) * 2000-02-25 2005-06-28 Sun Microsystems, Inc. Method and apparatus for improving utilization of a resource on a shared client
US7962603B1 (en) 2000-06-06 2011-06-14 Nobuyoshi Morimoto System and method for identifying individual users accessing a web site
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
US7457858B1 (en) * 2001-04-02 2008-11-25 Fujitsu Limited Filtering network management messages
JP2004537776A (ja) * 2001-04-27 2004-12-16 シムデスク・テクノロジーズ・インコーポレーテッド 高速サーバシステム
US20030236925A1 (en) * 2001-05-17 2003-12-25 Dusan Balek Interactive portable object adapters support in an integrated development environment
US20030177484A1 (en) * 2002-03-15 2003-09-18 Bosschaert Allaert J. D. Firewall class loader
US6925586B1 (en) * 2002-05-09 2005-08-02 Ronald Perrella Methods and systems for centrally-controlled client-side filtering
US7406695B2 (en) 2003-01-17 2008-07-29 Sap Aktiengesellschaft Automatically upgradeable extension of software
FR2877116B1 (fr) * 2004-10-27 2012-04-27 Thales Sa Systeme d'appel de services locaux d'au moins une application locale a architecture de messagerie classique a partir d'au moins une application distante a architecture de messagerie classique
US7933881B2 (en) * 2006-03-17 2011-04-26 Microsoft Corporation Concurrency control within an enterprise resource planning system
US20080201481A1 (en) * 2007-02-20 2008-08-21 Microsoft Corporation Remote interface marshalling
US10262264B2 (en) 2014-06-09 2019-04-16 Cognitive Scale, Inc. Method for performing dataset operations within a cognitive environment
US10325206B2 (en) * 2014-06-09 2019-06-18 Cognitive Scale, Inc. Dataset engine for use within a cognitive environment

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
AU628264B2 (en) * 1990-08-14 1992-09-10 Oracle International Corporation Methods and apparatus for providing a client interface to an object-oriented invocation of an application
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
DE69317982T2 (de) * 1992-10-09 1998-11-19 Sun Microsystems Inc Verfahren und Anlage zur Realzeitdatensammlung und Anzeigevorrichtung
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
US5481706A (en) 1993-11-01 1996-01-02 International Business Machines Corporation System and method for creating thread-safe shared libraries
US5699518A (en) * 1993-11-29 1997-12-16 Microsoft Corporation System for selectively setting a server node, evaluating to determine server node for executing server code, and downloading server code prior to executing if necessary
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
US5832487A (en) 1994-12-15 1998-11-03 Novell, Inc. Replicated object identification in a partitioned hierarchy
US5577261A (en) 1995-01-23 1996-11-19 Tandem Computers Incorporated Ordered and reliable maintenance of inter-process relationships in a distributed multiprocessor
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
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
DE19519104C1 (de) 1995-05-24 1996-05-23 Siemens Ag Verfahren zur Behebung von programmbezogenen Fehlern in programmgesteuerten Kommunikationsanlagen
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
US5682534A (en) 1995-09-12 1997-10-28 International Business Machines Corporation Transparent local RPC optimization
US5892946A (en) 1995-09-12 1999-04-06 Alcatel Usa, Inc. System and method for multi-site distributed object management environment
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
US5870605A (en) * 1996-01-18 1999-02-09 Sun Microsystems, Inc. Middleware for enterprise information distribution
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
US6044409A (en) 1996-06-26 2000-03-28 Sun Microsystems, Inc. Framework for marshaling and unmarshaling argument object references
US5727145A (en) * 1996-06-26 1998-03-10 Sun Microsystems, Inc. Mechanism for locating objects in a secure fashion
US5991823A (en) * 1996-06-26 1999-11-23 Sun Microsystems, Inc. Low overhead object adaptor
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)
US5974410A (en) * 1996-06-28 1999-10-26 Microsoft Corporation Method and system for filtering in a uniform data interface
US5835906A (en) 1996-07-01 1998-11-10 Sun Microsystems, Inc. Methods and apparatus for sharing stored data objects in a computer system
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
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
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

Also Published As

Publication number Publication date
EP0924617A2 (en) 1999-06-23
US6249803B1 (en) 2001-06-19
EP0924617A3 (en) 2004-12-15
CA2255406A1 (en) 1999-06-18

Similar Documents

Publication Publication Date Title
US6405264B1 (en) Marshaling and unmarshaling framework for supporting filters in a distributed object system
JP2000029730A (ja) メソッド・インボケーション中にコードを 実行するための方法及びその装置
Schmidt et al. Pattern-oriented software architecture, patterns for concurrent and networked objects
US5864866A (en) Apparatus and method for providing externalization in an object-oriented environment
Schmidt et al. C++ Network Programming, Volume 2: Systematic Reuse with ACE and Frameworks
US7546606B2 (en) System and method using a connector architecture for application integration
US6094688A (en) Modular application collaboration including filtering at the source and proxy execution of compensating transactions to conserve server resources
US6954220B1 (en) User context component in environment services patterns
US7801996B2 (en) Systems and methods for providing a local client proxy
US20030135850A1 (en) System of reusable software parts and methods of use
CA2251123A1 (en) Method, apparatus &amp; program product for interfacing a multi-threaded, client-based api to a single-threaded, server-based api
JP2000155679A (ja) 共有デ―タ収集において安定反復子を作成する方法及びその装置
AU2002318249A1 (en) System and method for transaction processing with transaction property feature
EP1417563A1 (en) System and method for transaction processing with transaction property feature
US20070124740A1 (en) Systems and methods for adapting procedure calls to service providers
US6516354B2 (en) Method and apparatus for efficient representation of variable length identifiers in a distributed object system
US6510460B1 (en) Method and apparatus for enforcing locking invariants in multi-threaded systems
US20060047781A1 (en) Method and system for providing remote portal service modules
US20060010421A1 (en) Methods and apparatus for portable object-oriented components
JP2002505478A (ja) 分散形システムにおけるイベント通知のためのオブジェクトの据置き復元及び遠隔ローディング
Jololian et al. A framework for a meta-semantic language for smart component-adapters
Simons et al. FastCGI the forgotten treasure
Hickey et al. Architectural Issues For Integrating Legacy Systems Using CORBA 2 in the LIOM Project
Shaofeng et al. A framework design of workflow management system with Java RMI
Gehrke et al. Jini-supported distributed version and configuration management system

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