JP3822541B2 - オブジェクトインターフェイスにポインタをパスするためのコンピュータシステム - Google Patents

オブジェクトインターフェイスにポインタをパスするためのコンピュータシステム Download PDF

Info

Publication number
JP3822541B2
JP3822541B2 JP2002235096A JP2002235096A JP3822541B2 JP 3822541 B2 JP3822541 B2 JP 3822541B2 JP 2002235096 A JP2002235096 A JP 2002235096A JP 2002235096 A JP2002235096 A JP 2002235096A JP 3822541 B2 JP3822541 B2 JP 3822541B2
Authority
JP
Japan
Prior art keywords
instruction
message
stub
unmarshalling
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2002235096A
Other languages
English (en)
Other versions
JP2003140898A (ja
Inventor
ロバート ジー アトキンソン
トム コーベット
エドワード ケイ ユング
アントニー エス ウィリアムス
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2003140898A publication Critical patent/JP2003140898A/ja
Application granted granted Critical
Publication of JP3822541B2 publication Critical patent/JP3822541B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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/547Remote procedure calls [RPC]; Web services
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • 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]

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は一般にデータをパスするためのコンピュータ方法及びシステムに係り、より詳細には、プロセス間にオブジェクトに対するポインタをパスするための方法及びシステムに係る。
【0002】
【従来の技術】
コンピュータシステムは、通常、マルチタスク動作をサポートするオペレーティングシステムを有している。マルチタスクオペレーティングシステムは、多数のタスク(プロセス)を同時に実行できるようにする。例えば、データベースサーバプロセスは、該データベースサーバプロセスのサービスを要求する多数のクライエントプロセスと同時に実行することができる。クライエントプロセス(クライエント)は、遠隔手続き呼び出し(RPC)を発行することによりサービスを要求する。遠隔手続き呼び出しは、サーバプロセス(サーバ)がクライエントに代わってサーバ手続きを呼び出せるようにする。遠隔手続き呼び出しを発行するために、クライエントは、手続きの名前及び手続きのための実際の入パラメータをプロセス間通信メッセージへとパッケージしそしてそのメッセージをサーバへ送信する。サーバは、そのメッセージを受け取り、それをアンパッケージして手続きの名前と実際の入パラメータとに分け、その名前の付いた手続きを呼び出し、アンパッケージした入パラメータをそれにパスする。手続きが完了すると、サーバは、出パラメータをメッセージへとパッケージしそしてそのメッセージをクライエントへ送信する。パラメータをパッケージするプロセスは、「マーシャリング(marshalling)」として知られており、そしてパラメータをアンパッケージするプロセスは「アンマーシャリング(unmarshalling)」として知られている。
【0003】
パラメータは、実際のパラメータの値のコピーをメッセージに記憶することによりマーシャリングされる。ある形式のパラメータについては、マーシャリングは、値のコピーを単に記憶する以上のものを伴う。例えば、浮動小数点の値は、プロセスが異なるコンピュータシステムにあるときには、あるコンピュータシステムのフォーマットから別のコンピュータシステムのフォーマットに変換することが必要となる。
【0004】
実際のパラメータの値をコピーする場合には幾つかの欠点がある。第1に、コピーがパスされた場合に、元の値に対する変更がコピーに反映されない。例えば、1日の時間の値を表すパラメータがコピーによってクライエントからサーバへパスされる場合には、クライエントが1日の時間の値を更新したときに、サーバが受け取るコピーは更新されない。第2に、ある形式のパラメータの場合に、値のコピーをとることが不可能である。例えば、大きなアレーをコピーする場合のオーバーヘッドは受け入れられない。又、以下に述べるように、オブジェクトは大きく且つ種々のファンクションを含んでいるので、オブジェクトをマーシャリングするときにはオブジェクトのコピーをとることも不可能である。
【0005】
オブジェクト指向のプログラミング技術の使用は、公知技術に勝る多数の利点を有している。従って、オブジェクト指向の技術の使用が増加している。しかしながら、遠隔手続きを呼び出すときにオブジェクトを効率的にマーシャリング及びアンマーシャリングできないために、これらの利点が制限される。オブジェクトが通常いかにマーシャリング及びアンマーシャリングされるかの説明がこれらの制限を説明する助けとなろう。
【0006】
図1は、オブジェクトを表すのに使用される典型的なデータ構造体を示すブロック図である。オブジェクトは、オブジェクトの振舞いを具現化するインスタンスデータ(データメンバー)及びメンバーファンクションで構成される。オブジェクトを表すのに使用されるデータ構造体は、インスタンスデータ構造体101と、仮想ファンクションテーブル102と、ファンクションメンバー103、104、105とを備えている。インスタンスデータ構造体101は、仮想ファンクションテーブル102に対するポインタを含むと共に、データメンバーを含んでいる。仮想ファンクションテーブル102は、オブジェクトに対して定義された各仮想ファンクションメンバーのエントリーを含む。各エントリーは、対応するファンクションメンバーを具現化するコードに対する参照を含んでいる。このサンプルオブジェクトのレイアウトは、参考としてここに取り上げる「オブジェクト指向のプログラミング言語のためのコンパイラーにおいて仮想ファンクション及び仮想ベースを具現化する方法(A Method for Implementing Virtual Finctions and Virtual Bases in a Compiler for an Object Oriented Programming Language) 」と題する米国特許出願第07/682,537号に定義されたモデルに合致する。以下の説明において、オブジェクトは、C++プログラミング言語により定義されたクラスのインスタンスとして説明する。当業者であれば、オブジェクトは、他のプログラミング言語を用いても定義できることが明らかであろう。
【0007】
遠隔手続き呼び出し中にサーバプロセスのオブジェクトをコピーしてクライエントプロセスにパスするべき場合には、データメンバーをコピーするだけでなく、ファンクションメンバーもクライエントプロセスにアクセスされねばならない。コピーされたオブジェクトにアクセスするには、クライエントプロセスは、各ファンクションメンバーをそれ自身のプロセススペースにロードする必要がある。このロード動作は時間がかかる。更に、オブジェクトをコピーすることは、手に負えないものである。というのは、サーバプロセススペースにロードされるファンクションメンバーは、サーバプロセススペースにおけるデータ又は他のファンクションをアクセスする必要があるからである。
【0008】
オブジェクト指向の技術を用いる利点は、これらの技術を使用して複合文書を容易に形成できることである。複合文書とは、種々のコンピュータプログラムによって発生されたオブジェクトを含む文書である。(通常、複合文書にはオブジェクトのデータメンバー及びクラスタイプのみが記憶される。)例えば、スプレッドシートプログラムにより発生されたスプレッドシートオブジェクトを含むワードプロセス文書は、複合文書である。ワードプロセスプログラムは、ユーザがスプレッドシートオブジェクト(例えば、セル)をワードプロセス文書内に埋め込みできるようにする。この埋め込みを行えるようにするために、ワードプロセスプログラムは、埋め込まれたオブジェクトのファンクションメンバーをアクセスするために、埋め込まれるべきオブジェクトのクラス定義を用いてコンパイルされる。従って、ワードプロセスプログラムは、ワードプロセス文書に埋め込みできるオブジェクトの各クラスのクラス定義を用いてコンパイルされる必要がある。新たなクラスのオブジェクトをワードプロセス文書に埋め込むために、ワードプロセスプログラムは、新たなクラス定義で再コンパイルされる必要がある。従って、ワードプロセスプログラムの開発者によって選択されたクラスのオブジェクトしか埋め込むことができない。更に、新たなクラスは、ワードプロセスプログラムが新たにリリースされないとサポートできない。
【0009】
任意のクラスのオブジェクトを複合文書に埋め込めるようにするために、インターフェイス(抽象クラス)が定義され、これにより、ワードプロセスプログラムがコンパイル時にクラス定義にアクセスする必要なく、オブジェクトをアクセスすることができる。抽象クラスとは、仮想ファンクションメンバーが具現化をもたない(純粋な)クラスである。インターフェイスとは、データメンバーをもたずそしてその仮想ファンクションが全て純粋であるような抽象クラスである。
【0010】
以下のクラス定義は、インターフェイスの例示的な定義である。この例において、説明を簡単にするために、オブジェクトのクラスをその文書に埋め込みできるようにするのではなく、ワードプロセスプログラムは、スプレッドシートオブジェクトを埋め込みできるようにする。このインターフェイスを与えるスプレッドシートオブジェクトは、オブジェクトをいかに具現化するかにかかわりなく、埋め込むことができる。更に、スプレッドシートオブジェクトは、ワードプロセスプログラムがコンパイルされる前に具現化されるかその後に具現化されるかに関わりなく、埋め込むことができる。
【0011】
【数1】
Figure 0003822541
【0012】
スプレッドシートプログラムの開発者は、スプレッドシートオブジェクトをワードプロセス文書に埋め込めるようにするためにインターフェイスを具現化する必要がある。ワードプロセスプログラムがスプレッドシートオブジェクトを埋め込むときには、プログラムは、スプレッドシートオブジェクトに対するインターフェイスを具現化するコードをアクセスする必要がある。コードをアクセスするために、各具現化には独特のクラス識別子が与えられる。例えば、マイクロソフト社によって開発されたスプレッドシートオブジェクトは、「MSSpreadsheet」のクラス識別子を有し、一方、他社によって開発されたスプレッドシートオブジェクトは、「LTSSpreadsheet」のクラス識別子を有する。クラスを具現化するコードに対して各クラス識別子をマップする各コンピュータシステムの永続的な登録が維持される。通常、スプレッドシートプログラムがコンピュータシステムにインストールされるときには、スプレッドシートオブジェクトのそのクラスの利用性を反映するように永続的な登録が更新される。スプレッドシート開発者がインターフェイスによって定義された各ファンクションメンバーを具現化しそして永続的な登録が維持される限り、ワードプロセスプログラムは、開発者のスプレッドシートオブジェクトをワードプロセス文書に埋め込むことができる。
【0013】
しかしながら、種々のスプレッドシート開発者は、あるファンクションメンバーのみを具現化することを希望する。例えば、あるスプレッドシート開発者は、データベースサポートを具現化することを望まないが、他の全てのファンクションメンバーをサポートすることを望む。スプレッドシート開発者が、オブジェクトを埋め込めるようにしながらも、幾つかのファンクションメンバーのみをサポートできるようにするために、スプレッドシートオブジェクトに対する多数のインターフェイスが定義されている。例えば、インターフェイスIDatabase及びIBasicは、スプレッドシートオブジェクトに対し、次のように定義される。
【0014】
【数2】
Figure 0003822541
各スプレッドシート開発者は、IBasicインターフェイスを具現化し、そして任意にIDatabaseインターフェイスを具現化する。
【0015】
実行時に、ワードプロセスプログラムは、埋め込まれるべきスプレッドシートオブジェクトがIDatabaseインターフェイスをサポートするかどうかを判断しなければならない。この判断をなすために、オブジェクトに対してどのインターフェイスが具現化されるかを指示するファンクションメンバーと共に、別のインターフェイスが定義される(各スプレッドシートオブジェクトがそれを具現化する)。このインターフェイスは、IUnknownとして知られており、次のように定義される。
【0016】
【数3】
Figure 0003822541
【0017】
IUnknownインターフェイスは、ファンクションメンバー(メソッド)QueryInterfaceを定義する。このメソッドQueryInterfaceには、インターフェイス識別子(例えば、「IDatabase」)がパスされ、そしてこのメソッドは、これが呼び出されたところのオブジェクトに対し識別されたインターフェイスの具現化を指すポインタを返送する。オブジェクトがインターフェイスをサポートしない場合には、このメソッドは「偽」を返送する。
【0018】
IDatabaseインターフェイス及びIBasicインターフェイスは、IUnknownインターフェイスを継承する。継承は、オブジェクト指向の技術では良く知られており、これにより、クラス定義は、既に定義されたクラスのデータ及びファンクションメンバーを組み込むことができる。次の定義は、IUnknownインターフェイスの使用を示すものである。
【0019】
【数4】
Figure 0003822541
【0020】
図2は、スプレッドシートオブジェクトのサンプルデータ構造体を示すブロック図である。このスプレッドシートオブジェクトは、インターフェイスデータ構造体201と、IBasicインターフェイスデータ構造体202と、IDatabaseインターフェイスデータ構造体205と、メソッド208ないし212とを備えている。インターフェイスデータ構造体201は、具現化される各インターフェイスに対するポインタを含み、そして具現化のデータメンバーを含んでもよい。IBasicインターフェイスデータ構造体202は、インスタンスデータ構造体203及び仮想ファンクションテーブル204を含む。仮想ファンクションテーブル204の各エントリーは、IBasicインターフェイスに対して定義されたメソッドを指す。IDatabaseインターフェイスデータ構造体205は、インスタンスデータ構造体206及び仮想ファンクションテーブル207を含む。仮想ファンクションテーブル207の各エントリーは、IDatabaseインターフェイスで定められたメソッドに対するポインタを含む。IBasic及びIDatabaseインターフェイスはIUnknownインターフェイスを継承するので、各仮想ファンクションテーブル204及び207は、メソッドQueryInterface208に対するポインタを含む。以下の説明では、オブジェクトデータ構造体は、オブジェクトをアクセスするところのインターフェイスで示された形状213によって表される。
【0021】
以下の擬似コードは、スプレッドシートオブジェクトがIDatabaseインターフェイスをサポートするかどうかをワードプロセスプログラムがいかに決定するかを示すものである。
【0022】
【数5】
Figure 0003822541
【0023】
ポインタpIBasicは、オブジェクトのIBasicインターフェイスに対するポインタである。オブジェクトがIDatabaseインターフェイスをサポートする場合には、メソッドQueryInterfaceは、ポインタpIDatabaseを、IDatabaseデータ構造体を指すようにセットし、そしてその値として「真」を返送する。
【0024】
通常は、オブジェクトは、変数宣言によるか又は「新たな」演算子によりインスタンス生成することができる(メモリに形成されたオブジェクトのインスタンス)。しかしながら、両インスタンス生成技術は、コンパイル時にクラス定義を必要とする。ワードプロセスプログラムが実行時にスプレッドシートオブジェクトをインスタンス生成できるようにするには、異なる技術が必要とされる。その1つの技術は、IClassFactoryと称するインターフェイスを与えるもので、これは、次のように定義される。
【0025】
【数6】
Figure 0003822541
メソッドCreateInstanceはオブジェクトをインスタンス生成し、そしてアーギュメント(引数)iidInterfaceによって指定されたオブジェクトのインターフェイスに対するポインタpInterfaceを返送する。
【0026】
上記のインターフェイスを使用して、オブジェクトを複合文書に容易に埋め込むことはできるが、遠隔手続き呼び出しにおいてオブジェクト(インターフェイス)に対するポインタをパラメータとしてパスさせるようにする効率的な技術が要望される。ポインタをパスすることは、オブジェクトをコピーするオーバーヘッドを回避すると共に、送信プロセスがオブジェクトに対して行う変更を受信プロセスが見れるようにする。
【0027】
【発明が解決しようとする課題】
本発明の目的は、クライエントプロセスが、サーバプロセスにおいてインスタンス生成されたオブジェクトのインターフェイスをアクセスできるようにするための方法及びシステムを提供することである。
【0028】
本発明の別の目的は、オブジェクトに対するポインタをクラスに特定に(カスタム)マーシャリング及びアンマーシャリングするメソッドをオブジェクトが具現化できるようにするための方法及びシステムを提供することである。
【0029】
本発明の更に別の目的は、プロセス間にオブジェクトのインターフェイスに対するポインタをパスするための方法及びシステムを提供することである。
【0030】
【課題を解決するための手段】
これら及び他の目的は、本発明の以下の詳細な説明から明らかとなるように、インターフェイスに対するポインタをサーバプロセスからクライエントプロセスへパスするための方法及びシステムによって達成される。好ましい実施例において、サーバプロセスは、多数のインターフェイスを有するオブジェクトをインスタンス生成する。サーバプロセスは、クライエントプロセスへパスするためのインターフェイスを識別し、そしてそのインターフェイスのファンクションメンバーを呼び出すための要求を受け取ってその要求されたファンクションメンバーを要求受け取り時に呼び出すためのスタブオブジェクトを形成する。次いで、サーバプロセスは、スタブの識別子をクライエントプロセスへ送信する。クライエントプロセスは、スタブの識別子を受け取ると、インターフェイスのファンクションメンバーを呼び出すための要求を受け取ってその要求を識別されたスタブへ送信するためのプロキシーオブジェクトをインスタンス生成する。別の実施例においては、サーバプロセスは、プロキシーオブジェクトのクラスをクライエントプロセスへ送信し、クライエントは、プロキシーオブジェクトをインスタンス生成するようにコードを動的にロードする。別の実施例において、オブジェクトは、オブジェクトのインターフェイスに対するポインタをカスタムマーシャリング及びアンマーシャリングするメソッドでインターフェイスを具現化する。これらのメソッドは、インターフェイスに対するポインタをマーシャリング及びアンマーシャリングするために呼び出される。
【0031】
【発明の実施の形態】
本発明は、遠隔手続き呼び出しにおいてオブジェクトに対するポインタをパラメータとしてパスするための方法及びシステムを提供する。好ましい実施例では、サーバプロセスは、オブジェクトのインターフェイスに対するポインタをクライエントプロセスにパスする。サーバは、インターフェイスに対するポインタをマーシャリングし、そしてそのマーシャリングされたポインタをクライエントへ送る。クライエントプロセスは、ポインタをアンマーシャリングし、そしてそのアンマーシャリングされたポインタを用いてパスされたオブジェクトをアクセスする。本発明のマーシャリング及びアンマーシャリング技術は、コードをロードし、そしてクライエントによるオブジェクトのアクセスをサポートするためのデータ構造体を発生する。
【0032】
図3は、マーシャリング及びアンマーシャリング中に発生されるデータ構造体及びロードされるコードを示すブロック図である。このデータ構造体及びコードは、サーバ内のオブジェクト301及びスタブオブジェクト302と、クライエント内のプロキシーオブジェクト303とを備えている。プロキシー303及びスタブ302は、オブジェクト301に対するポインタがクライエントにパスされたときに形成される。サーバのマーシャリングプロセスは、スタブ302に対するコードをロードし、スタブに対するプロセス間通信メッセージアドレスを指定し、オブジェクト301のインターフェイスに対するポインタをスタブ内に記憶し、そしてスタブのメッセージアドレス及びプロキシーのクラス識別子をメッセージへとパッケージすることにより、オブジェクト301のインターフェイスに対するポインタをマーシャリングする。次いで、サーバは、メッセージをクライエントへ送信する。クライエントがメッセージを受け取ると、クライエントは、プロキシーのクラス識別子及びスタブのメッセージアドレスを検索し、その検索されたインスタンス生成プロキシー303により識別されるクラス識別子のクラスのインスタンスを形成するようにコードを動的にロードし、そしてスタブメッセージアドレスをプロキシー303と共に記憶することにより、オブジェクト301のインターフェイスに対するポインタをアンマーシャリングする。次いで、クライエントは、プロキシー303によりオブジェクト301のインターフェイスをアクセスする。
【0033】
プロキシー303は、オブジェクト301のインターフェイスと同じインターフェイスを異なる具現化により具現化するオブジェクトである。プロキシー303の各メソッドは、その名前及びその実際のパラメータをメッセージへとマーシャリングし、メッセージをスタブ302へ送信し、スタブ302からの返送メッセージを待機し、そしてその返送されたパラメータをアンマーシャリングする。テーブル1は、「File(ファイル)」と称するプロキシーメソッドに対する例示的な擬似コードをリストしたものである。
【0034】
【数7】
Figure 0003822541
【0035】
スタブ302は、クライエントからメッセージを受け取り、メソッド名及び入パラメータをアンマーシャリングして、オブジェクト301の名前付けされたメソッドを呼び出し、出パラメータをメッセージへとマーシャリングし、そしてそのメッセージをプロキシー303へ送信するというインターフェイスを具現化するオブジェクトである。テーブル2は、スタブに対する例示的な擬似コードをリストしたものである。
【0036】
【数8】
Figure 0003822541
【0037】
図4Aないし4Cは、インターフェイスポインタのマーシャリングを示すブロック図である。サーバ401は、スプレッドシートオブジェクト403、セルオブジェクト404、及びセルオブジェクト405を含む。スプレッドシートオブジェクト403は、IBasicインターフェイスの具現化を有する。IBasicインターフェイスのメソッドGetCellは、次のプロートタイプにより定義される。
void GetCell(string RC,cell*pCell)
【0038】
メソッドGetCellは、パスされた行/列指示子(RC)により指定されたセルを表すセルオブジェクトに対するポインタを検索しそしてそのセル(pCell)に対するポインタを返送する。セルオブジェクト404及び405は、インターフェイスIDataの具現化を有し、これは、次により定義される。
【0039】
【数9】
Figure 0003822541
【0040】
メソッドGetFormulaは、セルオブジェクトの式の値をストリングとして返送し、そしてメソッドSetFormulaは、セルオブジェクトにおける式をパスされたストリングにセットする。
【0041】
図4Bは、クライエントへのセルオブジェクトをマーシャリングする動作を示すブロック図である。クライエントが、セルオブジェクト404として示されたセルA1の式を検索しようとするときには、クライエントは次のステートメントを実行する。
【0042】
【数10】
Figure 0003822541
【0043】
スプレッドシートプロキシー407は、ポインタpIBasic408により指示される。クライエントは、先ず、スプレッドシートプロキシーメソッドGetCellを呼び出す。このメソッドGetCellは、メソッド名「GetCell」及びストリング「A1」をメッセージへとパッケージし、そしてそのメッセージをスプレッドシートスタブ406へ送信する。スプレッドシートスタブ406はメソッド名及びストリングをアンパッケージする。次いで、スプレッドシートスタブ406は、スプレッドシートオブジェクト403のメソッドGetCellを呼び出す。メソッドGetCellは、セルオブジェクト404に対するポインタをスプレッドシートスタブ406へ返送する。次いで、スプレッドシートスタブ406は、セルオブジェクト404に対するセルスタブ409を形成し、メッセージアドレスをセルスタブ409に指定し、メッセージアドレス及びアンマーシャリングされたクラス識別子(以下に述べる)をメッセージへとパッケージしそしてそのメッセージをスプレッドシートプロキシー407へ送信することにより、セルポインタをマーシャリングする。スプレッドシートプロキシー407がメッセージを受信すると、メソッドGetCellは、セルオブジェクト404に対するポインタをアンマーシャリングする。
【0044】
図4Cは、セルポインタのアンマーシャリング中に使用されるデータ構造体を示すブロック図である。メソッドGetCellは、先ず、メッセージアドレス及びアンマーシャリングクラス識別子(CellProxy)を受け取ったメッセージから検索することにより、セルA1に対するポインタをアンマーシャリングする。好ましい実施例では、永続的な登録413は、各クラスごとに動的なリンクライブラリーの名前を含む。動的なリンクライブラリーは、プログラムのランタイムにロードされるルーチン(メソッド、ファンクション、等)のライブラリーである。動的なリンクライブラリーは、マイクロソフト・プレス社により出版されたチャレス・ペトゾルド著の参考文献「プログラミングウインドウズ」に説明されている。クラスに対する各動的なリンクライブラリーは、クラスに対しIClassFactoryインターフェイスを指すポインタを返送するファンクションGetIClassFactoryを含んでいる。メソッドGetCellは、検索されたアンマーシャリングクラス識別子(アンマーシャリングクラス)に対して動的なリンクライブラリー410をロードし、そしてファンクションGetIClassFactoryを呼び出し、これは、IClassFactoryインターフェイス411に対するポインタを返送する。次いで、メソッドGetCellは、IClassFactoryインターフェイス411のメソッドCreateInstanceを呼び出し、セルプロキシー412を形成する。セルプロキシー412は、次いで、セルスタブ409に対して検索されたメッセージアドレスで初期化される。次いで、メソッドGetCellは、セルプロキシー412に対するポインタを返送する。これで、クライエントは、セルプロキシー412を介してセルオブジェクト404をアクセスすることができる。
【0045】
図5は、メソッドGetCellを示す流れ線図である。ステップ501ないし505は、スプレッドシートプロキシーのIBasicインターフェイスのメソッドGetCellに対する流れ線図である。ステップ506ないし512は、スプレッドシートスタブに対する流れ線図を構成する。メソッドGetCellは、入パラメータをマーシャリングし、そのマーシャリングされたパラメータをスプレッドシートスタブへ送り、入パラメータにより指示されたセルオブジェクトに対するマーシャリングされたポインタを受け取る。ステップ501において、このメソッドは、ファンクションMarshalを呼び出して、メソッド名(即ち「GetCell」)をメッセージ501Aへとマーシャリングする。ファンクションMarshal及びUnMarshalは、データをメッセージにパッケージしたりアンパッケージしたりする。ステップ502において、このメソッドは、ファンクションMarshalを呼び出し、入パラメータRCをメッセージ502Aへとマーシャリングする。ステップ503において、このメソッドは、メッセージをスプレッドシートスタブへ送る。ステップ504において、このメソッドは、スプレッドシートスタブからメッセージを受け取る。ステップ505において、このメソッドは、ファンクションUnMarshalInterfaceを呼び出し、メッセージ505Aにおいて受け取ったインターフェイスポインタをアンマーシャリングする。
このメソッドは、次いで、セルプロキシーを指すポインタpCellを返送する。
【0046】
ステップ506において、スタブは、クライエントから送られたメッセージを受け取ると共に、メッセージを送ったセルプロキシーのメッセージアドレスを受け取る。ステップ507において、スタブは、ファンクションUnMarshalを呼び出して、メソッド名をメッセージ507Aからアンマーシャリングする。ステップ508において、メソッド名が「GetCell」である場合は、スタブはステップ509に続き、さもなくば、スタブは、メソッド名がIBasicインターフェイスの別のメソッド(楕円で示すような)対応するかどうか判断し続ける。ステップ509において、スタブは、ファンクションUnMarshalを呼び出し、セルの位置を指定する入パラメータをメッセージ509Aからアンマーシャリングする。ステップ510において、スタブは、スプレッドシートオブジェクトに対するメソッドGetCellを呼び出し、セルの位置をパスする。メソッドGetCellは、パスされた位置に対するセルオブジェクトのポインタを返送する。ステップ511において、スタブは、ファンクションMarshalInterfaceを呼び出して、セルオブジェクトに対するポインタをそれにパスする。ステップ512において、スタブは、メッセージ511Aを、ステップ506で受け取ったメッセージを送ったセルプロキシーへ送信する。次いで、スタブは、ステップ506へループし、次のメッセージを待機する。
【0047】
上記のマーシャリング技術は、標準的マーシャリングと称する。好ましい実施例において、本発明は、カスタムマーシャリングと称するプロセスにおいてオブジェクトに対するポインタをいかにマーシャリングすべきかをオブジェクトが指定できるようにする。カスタムマーシャリングを具現化する各オブジェクトは、IMarshalと称するカスタムマーシャリングインターフェイスの具現化を与える。IMarshalインターフェイスは、インターフェイスポインタをマーシャリング及びアンマーシャリングするためのファンクションメンバーを与える。インターフェイスに対するポインタをマーシャリング及びアンマーシャリングするときには、オブジェクトのメソッドQueryInterfaceが呼び出されて、オブジェクトがIMarshalインターフェイスを具現化するかどうか判断する。オブジェクトがIMarshalインターフェイスを具現化する場合には、そのインターフェイスのファンクションメンバーが呼び出されて、インターフェイスポインタをマーシャリング及びアンマーシャリングする。図5において、ファンクションUnMarshalInterface(ステップ505)及びMarshalInterface(ステップ511)は、オブジェクトがIMarshalインターフェイスを具現化するかどうか判断しそしてIMarshalインターフェイスのファンクションメンバーを適宜に呼び出すのが好ましい。
【0048】
図6ないし10は、セルオブジェクトに対するポインタのマーシャリング及びアンマーシャリング中に呼び出されるメソッドとファンクションの流れ線図である。
【0049】
以下に述べるように、これらメソッド及びファンクションは、標準的マーシャリングを具現化するものである。
【0050】
図6はファンクションMarshalInterfaceの流れ線図である。このファンクションは、次のプロートタイプを有する。
void MarshalInterface(pstm,iid,pInterface,DestContext)
【0051】
このファンクションは、オブジェクトに対するインターフェイスの指定のポインタ(pInterface)を指定のメッセージ(pstm)へとマーシャリングする。ステップ601において、このファンクションは、オブジェクトがカスタムマーシャリングを具現化するかどうか判断する。このファンクションは、インターフェイスのメソッドQueryInterfaceを呼び出し、IMarshalインターフェイスに対するポインタを検索する。オブジェクトがカスタムマーシャリングを具現化する場合には、オブジェクトに対するIMarshalインターフェイスのポインタ(pMarshal)が返送され、そしてファンクションはステップ603に続くが、さもなくば、このファンクションはステップ602に続く。ステップ602において、このファンクションは、ファンクションGetStandardMarshalを呼び出して、IMarshalインターフェイスに対するポインタ(pMarshal)をデフォールトマーシャリングメソッドで検索する。ステップ603において、このファンクションは、検索されたポインタにより指示されたメソッドIMarshal::GetUnMarshalClassを呼び出す。メソッドGetUnMarshalClassは、指定のインターフェイス(iid)に対するプロキシーをインスタンス生成するためにアンマーシャリングプロセスに使用すべきクラスのクラス識別子を返送する。ステップ604において、このファンクションは、ファンクションMarshalを呼び出して、アンマーシャリングのクラス識別子を指定のメッセージへとマーシャリングする。ステップ605において、このファンクションは、検索されたポインタ(pMarshal)によって指示されたメソッドIMarshal::MarshalInterfaceを呼び出す。メソッドMarshalInterfaceは、指定のインターフェイスポインタ(pInterface)を指定のメッセージへとマーシャリングする。次いで、このメソッドは復帰となる。
【0052】
図7は、メソッドMarshalInterfaceの例示的な標準的具現化を示す流れ線図である。このメソッドは、次のプロートタイプを有する。
void IMarshal::MarshalInterface(pstm,idd,pInterface,DestContext)
【0053】
メソッドMarshalInterfaceは、インターフェイス(pInterface)に対する指定のポインタを指定のメッセージ(pstm)へとマーシャリングする。ステップ701において、このメソッドは、ファンクションMakeStubを呼び出す。このファンクションMakeStubは、インターフェイスに対する指定のポインタのためのスタブを形成し、そのスタブのメッセージアドレスを返送する。ステップ702において、このメソッドは、ファンクションMarshalを呼び出し、指定のメッセージにおける返送されたメッセージアドレスをマーシャリングする。このメソッドは、次いで、復帰する。
【0054】
図8は、ファンクションMakeStubの流れ線図である。このファンクションは、次のプロートタイプを有する。
void MakeStub(cid,iid,pInterface,MessageAddress)
【0055】
このファンクションMakeStubは、指定のインターフェイス(iid)に対する指定のポインタ(pInterface)のスタブを形成し、そしてそのスタブのメッセージアドレス(MessageAddress)を返送する。ステップ801において、このファンクションは、指定のインターフェイスに対するスタブコードのコピーをロードする。ステップ802において、このファンクションは、インターフェイスに対する指定のポインタを記憶し、スタブコードをアクセスできるようにする。ポインタを記憶することは、スタブコードを、指定のポインタによって指示されたオブジェクトに関連付けする。ステップ803において、このファンクションは、スタブコードをメッセージシステムと共に登録する。メッセージシステムは、スタブのメッセージアトルスを返送する。ステップ804において、このファンクションは、発呼者へ返送するためにメッセージアドレスを記憶する。次いで、ファンクションMakeStubは復帰となる。
【0056】
図9は、ファンクションUnMarshalInterfaceの流れ線図である。このファンクションは、次のプロートタイプを有する。
viod UnMarshalInterface(pstm,iid,pInterface)
【0057】
ファンクションUnMarshalInterfaceは、指定されたメッセージ(pstm)において既にマーシャリングされたインターフェイスに対するポインタをアンマーシャリングし、そしてオブジェクトの指定のインターフェイス(iid)に対するポインタ(pInterface)を返送する。ステップ901において、このファンクションは、ファンクションUnMarshalを呼び出し、指定のメッセージからのアンマーシャリングクラス識別子をアンマーシャリングする。ステップ902において、このファンクションは、ファンクションGetClassObjectを呼び出し、アンマーシャリングクラス識別子(アンマーシャリングクラス)により指示されたクラスに対するIClassFactoryインターフェイスを検索する。ステップ903において、このファンクションは、検索されたIClassFactoryのメソッドCreateInstanceを呼び出し、プロキシーのインスタンスを形成し、そしてそのIMarshalインターフェイスに対するポインタを返送する。ステップ904において、このファンクションは、プロキシーのメソッドUnMarshalInterfaceを呼び出す。次いで、ファンクションUnMarshalは復帰となる。
【0058】
図10は、メソッドUnMarshalInterfaceの例示的な具現化を示す流れ線図である。このメソッドは、次のプロートタイプを有する。
void IMarshal::UnMarshalInterface(pstm,iid,pInterface)
【0059】
メソッドUnMarshalInterfaceは、新たに形成されたプロキシーを初期化し、そして指定のインターフェイス(iid)に対するポインタ(pInterface)を返送する。ステップ1001において、このメソッドはファンクションUnMarshalを呼び出し、指定のメッセージからスタブメッセージアドレスをアンマーシャリングする。ステップ1002において、このメソッドは、スタブメッセージアドレスを記憶する。ステップ1003において、このメソッドは指定のインターフェイスに対するポインタを検索する。次いで、このメソッドUnMarshalInterfaceは復帰となる。
【0060】
図11は、ファンクションGetClassObjectの流れ線図である。このファンクションは、次のプロートタイプを有する。
void GetClassObject(cid,iid,pInterface)
【0061】
ファンクションGetClassObjectは、指定のクラス(cid)の指定のインターフェイス(iid)に対するポインタ(pInterface)を返送する。ステップ1101において、このファンクションは、永続的な登録から指定のクラスに対する動的なリンクライブラリーの名前を検索する。ステップ1102において、このファンクションは、動的なリンクライブラリーをロードする。ステップ1103において、指定のインターフェイスがIClassFactoryである場合に、このファンクションはステップ1104に続き、さもなくば、復帰となる。ステップ1104において、このファンクションは、ファンクションGetIClassFactoryを呼び出し、IClassFactoryインターフェイスに対するポインタを得る。ファンクションGetIClassFactoryは、オブジェクトの開発者によって与えられるのが好ましい。次いで、ファンクションGetClassObjectは復帰となる。
【0062】
オブジェクトの開発者は、オブジェクトに対するカスタムマーシャリング及びアンマーシャリングを行うようにIMarshalインターフェイスを具現化を与えることができる。IMarshalインターフェイスは、次のように定義される。
【0063】
【数11】
Figure 0003822541
【0064】
開発者は、マーシャリングプロセスを最適にするようにカスタムマーシャリングを具現化する。図12A及び12Bは、インターフェイスポインタのカスタムマーシャリングを示すブロック図である。図12Aは標準的なマーシャリングの作用を示す。図12Aにおいて、プロセスP1のセルオブジェクト1201は、セルスタブ1202及びセルプロキシー1203で表されたようにプロセスP2へとマーシャリングされている。セルプロキシー1203は、セルスタブ1204及びセルプロキシー1205で表されたようにプロセスP3へとマーシャリングされている。セルプロキシー1203は、図7に示す形式の標準的マーシャリングを用いてマーシャリングされたものである。プロセスP3がセルプロキシー1205のプロキシーメソッドを呼び出すと、このプロキシーメソッドはパラメータをマーシャリングしそしてメッセージをセルスタブ1204へ送信する。セルスタブ1204は、メッセージを受け取り、パラメータをアンマーシャリングし、そしてセルプロキシー1203の適当なプロキシーメソッドを呼び出す。セルプロキシー1203のプロキシーメソッドは、パラメータをマーシャリングし、そしてメッセージをセルスタブ1202へ送る。このセルスタブ1202は、メッセージを受け取り、パラメータをマーシャリングし、そしてセルオブジェクト1201の適当なメソッドを呼び出す。このメソッドが復帰すると、セルスタブ1202は、出パラメータをマーシャリングし、そしてメッセージをセルプロキシー1203へ送る。セルプロキシー1203がメッセージを受け取ると、プロキシーメソッドはパラメータをアンマーシャリングし、そしてその発呼者へセルスタブ1204を返送する。
【0065】
セルスタブ1204は、出パラメータをマーシャリングし、そしてメッセージをセルプロキシー1205へ送る。セルプロキシー1205がメッセージを受け取ると、プロキシーメソッドは、パラメータをアンマーシャリングし、そしてその発呼者へ戻す。従って、プロセスP3がセルオブジェクト1201をアクセスするときに、そのアクセスはプロセスP2を経て引き回される。
【0066】
図12Bはカスタムマーシャリングから得られる最適化を示している。図12Bにおいて、プロセスP3がセルオブジェクト1201をアクセスするときに、そのアクセスは、プロセスP2を経て引き回されず、プロセスP1へ直接送られる。この最適化を達成するために、セルプロキシーのIMarshalインターフェイスは、カスタムマーシャリングで実施される。メソッドIMarshal::MarshalInterfaceは、次の擬似コードによって示すように具現化される。
【0067】
【数12】
Figure 0003822541
【0068】
上記のように、標準的IMarshal::MarshalInterfaceは、スタブを形成し、そしてスタブのメッセージアドレスを送信する。しかしながら、カスタムのIMarshal::MarshalInterfaceは、それが通信するスタブのメッセージアドレスを単に送信する。従って、セルプロキシー1203のカスタムIMarshal::MarshalInterfaceが呼び出されたときには、セルスタブ1202のメッセージアドレスが、アンマーシャリングクラス識別子(CellProxy)と共にプロセスP3に送られる。プロセスP3は、標準的なアンマーシャリングメソッドを用いてセルプロキシー1205を初期化するときに、セルスタブ1202のメッセージアドレスを記憶する。従って、プロセスP3は、セルオブジェクト1201をアクセスするときに、プロセスP2をバイパスする。
【0069】
図13は、共用メモリでのカスタムマーシャリングを示すブロック図である。ある状態において、オブジェクトは、データメンバーをアクセスするための遠隔手続き呼び出しのオーバーヘッドを回避するために、プロセスにわたって共用されたメモリにデータメンバーを記憶する。図13において、セルオブジェクト1301のデータ1302は、共用メモリに記憶される。セルオブジェクト1303は、セルオブジェクト1301に対するポインタがマーシャリングされてプロセスP1からプロセスP2へ送られるときに形成される。セルオブジェクトのためのIMarshalインターフェイスのカスタムメソッドは、次の擬似コードによって具現化される。
【0070】
【数13】
Figure 0003822541
【0071】
メソッドIMarshal::MarshalInterfaceのパラメータDestContextは、セルオブジェクトのデータが共用メモリに記憶されるかどうか指示する。データが共用メモリに記憶されない場合には、標準的マーシャリングと同等のことが行われる。しかしながら、データが共用メモリに記憶される場合には、共用データのアドレスがメッセージへとマーシャリングされる。メソッドIMarshal::GetUnMarshalClassは、データが共用メモリにあるかどうかに基づいてアンマーシャリングクラスを決定する。データが共用メモリにない場合には、CellProxyクラスがアンマーシャリングクラスである。データが共用メモリにある場合には、Cellクラスがアンマーシャリングクラスである。共用データのアンマーシャリングクラス及びアドレスは、プロセスP2に送られる。プロセスP2がセルオブジェクト1303をインスタンス生成した後に、プロセスP2はカスタムメソッドIMarshal::UnMarshalInterfaceを呼び出し、これは、共用データのアドレスをアンマーシャリングしそしてそのデータを指すようにオブジェクトを初期化する。
【0072】
カスタムマーシャリングは、不変のオブジェクトを効率的にアクセスするように使用できる。不変のオブジェクトとは、そのデータメンバー(状態)が変更することのないオブジェクトである。不変のオブジェクトに対するインターフェイスオブジェクトがあるプロセスから別のプロセスへパスされたときには、カスタムマーシャリングを行って、他のプロセスにおいてオブジェクトのコピーを形成することができる。従って、他のプロセスがオブジェクトをアクセスするときは、ローカルコピーをアクセスし、プロセス間通信は不要である。不変のオブジェクトをコピーできるようにするために、不変のオブジェクトのIMarshalインターフェイスのメソッドは次のように具現化される。好ましい実施例においては、メソッドIMarshal::GetUnMarshalClassは、アンマーシャリングクラスが不変のオブジェクトのクラスと同じクラスであることを指定する。これは、同じ形式のオブジェクトが他のプロセスによってインスタンス生成されるよう確保する。メソッドIMarshal::MarshalInterfaceは、不変のオブジェクトのデータメンバーを、他のプロセスへパスするためのメッセージに記憶する。メソッドIMarshal::MarshalInterfaceはスタブを形成しない。他のプロセスは、メッセージを受け取ると、不変のオブジェクトのクラスのオブジェクトを形成する。次いで、メソッドIMarshal::UnMarshalInterfaceは、メッセージからデータメンバーを検索し、そして新たに形成されたオブジェクトを初期化する。次いで、他のプロセスは、不変のオブジェクトをアクセスする。
【0073】
以上、好ましい実施例について本発明を詳細に説明したが、本発明は、これらの実施例に限定されるものではない。本発明の精神内で変更がなされ得ることが当業者に明らかであろう。本発明の範囲は、以下の請求の範囲のみによって限定されるものとする。
【図面の簡単な説明】
【図1】オブジェクトを表すのに使用される典型的なデータ構造体を示すブロック図である。
【図2】スプレッドシートオブジェクトのサンプルデータ構造体を示すブロック図である。
【図3】マーシャリング及びアンマーシャリング中に発生されるデータ構造体及びロードされるコードを示すブロック図である。
【図4A】インターフェイスポインタのマーシャリング動作を示すブロック図である。
【図4B】インターフェイスポインタのマーシャリング動作を示すブロック図である。
【図4C】インターフェイスポインタのマーシャリング動作を示すブロック図である。
【図5】メソッドGetCellを示す流れ線図である。
【図6】ファンクションMarshalInterfaceを示す流れ線図である。
【図7】メソッドMarshalInterfaceの具現化例を示す流れ線図である。
【図8】ファンクションMakeStubの流れ線図である。
【図9】ファンクションUnMarshalInterfaceの流れ線図である。
【図10】IMarshalインターフェイスのメソッドUnMarshalInterfaceの具現化例を示す流れ線図である。
【図11】ファンクションGetClassObjectの流れ線図である。
【図12A】プロキシー対プロキシーメッセージを回避するためのカスタムマーシャリングを示すブロック図である。
【図12B】プロキシー対プロキシーメッセージを回避するためのカスタムマーシャリングを示すブロック図である。
【図13】共用メモリでのカスタムマーシャリングを示すブロック図である。
【符号の説明】
101、203、206 インスタンスデータ構造体
102、204、207 仮想ファンクションテーブル
103、104、105 ファンクションメンバー
201 インターフェイスデータ構造体
202 IBasicインターフェイスデータ構造体
205 IDatabaseインターフェイスデータ構造体
301 オブジェクト
302 スタブオブジェクト
303 プロキシーオブジェクト

Claims (10)

  1. コンピュータのサーバプロセスからクライエントプロセスへのソフトウエアオブジェクトのインターフェイスにアクセスするプロセッサを有するコンピュータシステムであって、
    上記サーバプロセス及び上記クライエントプロセスを維持するメモリを備え、
    上記メモリ中の上記クライエントプロセスは、
    上記クライエントプロセスの上記メモリ及び上記サーバプロセスの上記メモリの双方に存在する手続きを呼び出すための呼出命令と、
    上記手続きの名前及び少なくとも1つのパラメータをメッセージにパッキングするためのパッキング命令と、
    対応するサーバスタブオブジェクトに上記メッセージを送信するための送信命令と
    を有し、
    上記メモリ中の上記サーバプロセスは、
    上記サーバスタブオブジェクトで上記クライエントプロセスからの上記メッセージを受け取るための受取命令と、
    上記サーバスタブオブジェクトに上記メッセージから上記手続きの名前及び上記少なくとも1つのパラメータをアンマーシャリングさせるためのアンマーシャリング命令と、
    上記サーバスタブオブジェクトに上記パラメータを用いて上記手続きを起動させ、上記ソフトウエアオブジェクトの上記インターフェイスのポインタを生成するためのサーバオブジェクト呼出命令と、
    上記サーバスタブオブジェクトが上記ソフトウエアオブジェクトの上記インターフェイスの上記ポインタをマーシャリングするようにするためのマーシャリング命令であって、
    スタブメッセージアドレス及びアンマーシャリングクラス識別子を有するオブジェクトインターフェイススタブを生成するための生成命令、
    上記オブジェクトインターフェイススタブへ上記ソフトウエアオブジェクトの上記インターフェイスの上記ポインタを格納するための格納命令、及び
    上記オブジェクトインターフェイススタブに、マーシャリングメッセージを生成させ、上記スタブメッセージアドレス及び上記アンマーシャリングクラス識別子を上記マーシャリングメッセージにパッキングするための生成命令
    を有するマーシャリング命令と、
    上記クライエントプロセスへ上記マーシャリングメッセージを送信するための送信命令と
    を有し、
    上記メモリ中の上記クライエントプロセスは、さらに
    上記サーバプロセスからの上記マーシャリングメッセージを受け取るためのクライエント受取命令と、
    上記サーバプロセスからの上記マーシャリングメッセージをアンマーシャリングするためのクライエントアンマーシャリング命令であって、
    受け取った上記マーシャリングメッセージから上記スタブメッセージアドレス及び上記アンマーシャリングクラス識別子を検索ためのクライエントアンマーシャリング検索命令、
    上記アンマーシャリングクラス識別子によって識別されるタイプの上記ソフトウエアオブジェクトの上記インターフェイスと関連づけられたプロキシーを生成するためのクライエントアンマーシャリング生成命令、及び
    検索された上記スタブメッセージアドレスで上記プロキシーを初期化するためのクライエントアンマーシャリング初期化命令
    を有するクライエントアンマーシャリング命令と、
    上記オブジェクトインターフェイススタブに格納された上記ソフトウエアオブジェクトの上記インターフェイスのポインタへアクセスするための検索された上記スタブメッセージアドレスを有する上記プロキシーを使用し、上記サーバプロセスから上記クライエントプロセスへの上記ソフトウエアオブジェクトの上記インターフェイスへアクセスするためのクライエント使用命令と
    を有し、
    上記クライエントプロセスが上記呼出命令、上記パッキング命令、及び上記送信命令を実行し、次いで、上記サーバプロセスが、上記受取命令、上記アンマーシャリング命令、上記サーバオブジェクト呼出命令、及び上記マーシャリング命令を上記メモリから実行し、次いで、上記クライエントプロセスが、上記クライエント受取命令、上記クライエントアンマーシャリング命令、及び上記クライエント使用命令を呼び出して、上記サーバプロセス中の上記ソフトウエアオブジェクトの上記インターフェイスへアクセスするための上記スタブメッセージアドレスをパスことにより、上記サーバプロセスから上記クライエントプロセスへの上記ソフトウエアオブジェクトの上記インターフェイスにアクセスすることを特徴とするコンピュータシステム。
  2. 上記オブジェクトインターフェイススタブを生成するための上記生成命令は、上記オブジェクトインターフェイススタブに関するオブジェクトインターフェイススタブコードのコピーをロードするための関数命令と、上記スタブメッセージアドレスを受け取るための命令と、上記スタブメッセージアドレスを格納するための命令とをさらに有することを特徴とする請求項1に記載のコンピュータシステム。
  3. 上記アンマーシャリングクラス識別子によって識別されるタイプの上記ソフトウエアオブジェクトの上記インターフェイスと関連づけされた上記プロキシーを生成するための上記クライエントアンマーシャリング生成命令は、
    永続的な登録から動的なリンクライブラリーの名前を読み出すための命令と、
    上記動的なリンクライブラリーをロードするための命令と、
    ロードされた上記動的なリンクライブラリーを使用して、上記アンマーシャリングクラス識別子によって識別されるタイプの上記ソフトウエアオブジェクトの上記インターフェイスと関連づけされた上記プロキシーを生成するための命令と
    をさらに有することを特徴とする請求項1に記載のコンピュータシステム。
  4. ソフトウエアオブジェクトの場所を見つけるための方法についての命令を有するメッセージをパスする中央演算処理装置を有する中央処理装置コンピュータシステムであって、
    上記メッセージは、上記コンピュータシステムにおいてサーバプロセスからクライエントプロセスへパスされるものであって、
    上記コンピュータシステムは、上記サーバプロセス及び上記クライエントプロセスを維持するメモリを備え、
    上記メモリ中の上記クライエントプロセスは、
    上記クライエントプロセスの上記メモリ及び上記サーバプロセスの上記メモリの双方に存在する手続きを呼び出すための呼出命令と、
    上記手続きの名前及び少なくとも1つのパラメータをメッセージにパッキングするためのパッキング命令と、
    上記サーバプロセスの対応するサーバスタブオブジェクトに上記メッセージを送信するための送信命令と、
    上記手続きのプロキシーオブジェクトを生成するためのプロキシー生成命令と
    を有し、
    上記メモリ中の上記サーバプロセスは、
    上記サーバスタブオブジェクトで上記クライエントプロセスからの上記メッセージを受け取るための受取命令と、
    上記サーバスタブオブジェクトに、上記メッセージから上記手続きの名前及び上記少なくとも1つのパラメータをアンマーシャリングさせるためのアンマーシャリング命令と、
    上記サーバスタブオブジェクトに、上記パラメータを用いて上記手続きを起動させ、上記ソフトウエアオブジェクトの上記インターフェイスのポインタを生成するためのサーバオブジェクト呼出命令と、
    上記サーバスタブオブジェクトが上記ソフトウエアオブジェクトの上記インターフェイスの上記ポインタをマーシャリングするようにするためのマーシャリング命令であって、
    スタブメッセージアドレス及びアンマーシャリングクラス識別子を有するオブジェクトインターフェイススタブを生成するための生成命令、
    上記オブジェクトインターフェイススタブへ上記ソフトウエアオブジェクトの上記インターフェイスの上記ポインタを格納するための格納命令、及び
    上記オブジェクトインターフェイススタブに、マーシャリングメッセージを生成させ、上記スタブメッセージアドレス及び上記アンマーシャリングクラス識別子を上記マーシャリングメッセージにパッキングするためのメッセージ生成命令
    を有するマーシャリング命令と、
    上記クライエントプロセスへ上記マーシャリングメッセージを送信するための送信命令と
    を有し、
    上記メモリ中の上記クライエントプロセスは、さらに
    上記サーバプロセスからの上記マーシャリングメッセージを受け取るための受取命令と、
    上記サーバプロセスからの上記マーシャリングメッセージをアンマーシャリングするためのアンマーシャリング命令であって、
    受け取った上記マーシャリングメッセージから上記スタブメッセージアドレス及び上記アンマーシャリングクラス識別子を検索ためのアンマーシャリング検索命令、
    セルプロキシーを生成する上記アンマーシャリングクラス識別子のクラスを動的にロードするための動的ロード命令、及び
    上記スタブメッセージアドレスを上記セルプロキシーとともに格納するためのクライエント格納命令
    を有するクライエントアンマーシャリング命令と、
    検索された、上記オブジェクトインターフェイススタブに格納された上記ソフトウエアオブジェクトの上記インターフェイスのポインタへアクセスするための上記スタブメッセージアドレスを有する上記セルプロキシーを使用し、上記サーバプロセスから上記クライエントプロセスへの上記ソフトウエアオブジェクトの上記インターフェイスへアクセスするようにするためのクライエント使用命令と
    を有することを特徴とするコンピュータシステム。
  5. 上記メモリ中の上記クライエントプロセスは、永続的な登録から動的にロードされる上記クライエントのオブジェクトをインスタンス生成する命令を読み出すための読み出し命令を含み、
    上記永続的な登録は、上記アンマーシャリングクラス識別子を永続的な登録のエントリー指示子に関連付けるエントリーを有することを特徴とする請求項4に記載のコンピュータシステム。
  6. サーバプロセスから第1クライエントプロセスへの、及び上記第1のクライエントプロセスから第2クライエントプロセスへのソフトウエアオブジェクトのポインタのインターフェイスにアクセスするコンピュータシステムであって、
    上記サーバプロセス、上記第1クライエントプロセス、及び上記第2クライエントプロセスを維持するメモリを備え、
    上記メモリ中の上記サーバプロセスは、
    上記メモリ中にオブジェクトをインスタンス生成するインスタンス生成命令と、
    上記オブジェクトのファンクションメンバーを呼び出す要求を受け取り、要求されたファンクションメンバーを当該要求の受け取り時に呼び出すサーバスタブであって、メッセージアドレスを有するサーバスタブを上記メモリ中に形成する形成命令と、
    上記第1及び第2のクライエントプロセスでインスタンス生成されるべきオブジェクトのクラスを識別するアンマーシャリングクラス識別子と上記サーバスタブの上記メッセージアドレスとを上記第1クライエントプロセスへ送信する送信命令と
    を有し、
    上記第1クライエントプロセスは、
    上記サーバプロセスからの上記アンマーシャリングクラス識別子と上記サーバスタブの上記メッセージアドレスとを受け取る受取命令と、
    上記アンマーシャリングクラス識別子により識別されたクラスの第1プロキシーオブジェクトをインスタンス生成するための第1ソフトウェアモジュールを動的にロードする命令と、
    上記アンマーシャリングクラス識別子により識別されたクラスの第1プロキシーオブジェクトであって、上記サーバスタブの上記メッセージアドレスを上記第2クライエントプロセスに送るべきであることを指示するマーシャリングファンクションメンバーを有する第1プロキシーオブジェクトを上記メモリにインスタンス生成し、当該第1プロキシーオブジェクトが上記オブジェクトのファンクションメンバーを呼び出す要求を受け取るときに当該第1プロキシーオブジェクトが当該要求を上記識別された上記サーバスタブへ送信するように当該第1プロキシーオブジェクトを初期化するように、動的にロードされた上記第1ソフトウェアモジュールを実行するための実行命令と、
    上記第1プロキシーオブジェクトのマーシャリングファンクションメンバーを呼び出す呼出命令と、
    上記アンマーシャリングクラス識別子及び上記サーバスタブの上記メッセージアドレスを上記第2クライエントプロセスに送信する送信命令と
    を有し、
    上記メモリ中の上記第2クライエントプロセスは、
    上記第1クライエントプロセスから上記アンマーシャリングクラス識別子及び上記サーバスタブの上記メッセージアドレスを受け取る受取命令と、
    上記アンマーシャリングクラス識別子により識別されたクラスの第2オブジェクトプロキシーをインスタンス生成するための第2ソフトウェアモジュールを動的にロードする命令と、
    上記動的にロードされた第2ソフトウェアモジュールを実行して、上記アンマーシャリングクラス識別子により識別されたクラスの第2オブジェクトプロキシーをインスタンス生成し、当該第2オブジェクトプロキシーが上記オブジェクトのファンクションメンバーを呼び出す要求の受け取るときに当該第2オブジェクトプロキシーが当該要求を識別された上記サーバスタブへ送信するように当該第2オブジェクトプロキシーを初期化するための実行命令と
    を有し、
    上記コンピュータシステム中の中央処理装置は、上記サーバスタブの上記メッセージアドレスを上記メモリ中の上記サーバプロセスから上記メモリ中の上記第1のクライエントプロセス、上記メモリ中の上記第2のクライエントプロセスへパスする命令を実行することを特徴とするコンピュータシステム。
  7. 上記オブジェクトは複数のインターフェイスを有し、かつ上記オブジェクトのポインタは、上記オブジェクトのインターフェイスの1つに対するポインタであることを特徴とする請求項6に記載のコンピュータシステム。
  8. オブジェクトに対するポインタにアクセスするコンピュータシステムであって、上記ポインタはサーバプロセス及びクライエントプロセス相互間でアクセスされ、上記コンピュータシステムは、
    上記サーバプロセス及び上記クライエントプロセスを維持するメモリを備え、
    上記メモリ中の上記サーバプロセスは、
    上記メモリ中にオブジェクトをインスタンス生成するインスタンス生成命令と、
    上記オブジェクトのファンクションメンバーを呼び出す要求を受け取るため、及び上記要求の受け取りに応じてと必要な上記ファンクションメンバーを呼び出すための、メッセージアドレスを有するサーバスタブを上記メモリ中に形成する形成命令と、
    上記クライエントプロセス中でインスタンス生成されるオブジェクトのクラスを識別するアンマーシャリングクラス識別子及び上記サーバスタブの上記メッセージアドレスを上記クライエントプロセスへ送信するための送信命令と、
    上記サーバプロセス及び上記クライエントプロセスによってアクセス可能なオブジェクトを共用メモリにインスタンス生成するインスタンス生成命令と、
    上記オブジェクトのデータメンバーを共用メモリに格納するかを判定する判定命令であって、上記オブジェクトのデータメンバーを共用メモリに格納すると判定すると上記共用メモリ中に格納された上記オブジェクトのデータメンバーのアドレスをメッセージに格納し、上記オブジェクトのデータメンバーを共用メモリに格納しないと判定すると上記共用メモリ中にない上記オブジェクトのメッセージアドレスを上記メッセージに格納する判定命令と、
    上記メッセージを生成するためのメッセージ命令であって、上記クライエントプロセス中でインスタンス生成されるべきオブジェクトのクラスを識別するアンマーシャリングクラス識別子を上記メッセージ中に格納する命令、及び上記第1クライエントプロセスに対する上記サーバスタブの上記メッセージアドレスを上記メッセージに格納する格納命令を有するメッセージ命令と、
    上記メッセージを上記クライエントプロセスへ送信する送信命令と
    を有し、
    上記メモリ中の上記クライエントプロセスは、
    上記サーバプロセスからの上記メッセージを受け取る受取命令と、
    上記メッセージから上記アンマーシャリングクラス識別子を検索する検索命令と、
    上記アンマーシャリングクラス識別子によって識別されたクラスのオブジェクトをインスタンス生成するソフトウェアを動的にロードする命令と、
    動的にロードされた上記ソフトウェアを実行する実行命令であって、上記アンマーシャリングクラス識別子によって識別されたクラスのオブジェクトであって、アンマーシャリングファンクションメンバーを有するオブジェクトを上記メモリにインスタンス生成する実行命令と、
    上記アンマーシャリングクラス識別子によって識別されたクラスのオブジェクトの上記アンマーシャリングファンクションメンバーを呼び出す呼出命令であって、上記アンマーシャリングファンクションメンバーが上記データメンバーについての上記メッセージアドレスを上記オブジェクト中に格納し、上記オブジェクトのファンクションメンバーが上記共用メモリ中の上記データメンバーにアクセスできるようにする呼出命令と
    を有し、
    上記コンピュータシステム中の中央処理装置は、上記メモリ中の上記サーバプロセスから上記メモリ中のクライエントプロセスへ上記ポインタをパスする命令を実行することを特徴とするコンピュータシステム。
  9. 上記アンマーシャリングクラス識別子は、上記サーバプロセスによってインスタンス生成された上記オブジェクトと同じクラスを識別することを特徴とする請求項8に記載のコンピュータシステム。
  10. 上記サーバプロセスによってインスタンス生成された上記オブジェクトは、複数のインターフェイスを有し、上記オブジェクトに対するポインタは、上記オブジェクトの当該インターフェイスの1つに対するポインタであることを特徴とする請求項8に記載のコンピュータシステム。
JP2002235096A 1992-11-13 2002-08-12 オブジェクトインターフェイスにポインタをパスするためのコンピュータシステム Expired - Lifetime JP3822541B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US97577592A 1992-11-13 1992-11-13
US07/975,775 1992-11-13

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP6512381A Division JPH09502547A (ja) 1992-11-13 1993-11-12 遠隔手続き呼び出しのためのインターフェイスポインタをマーシャリングする方法及びシステム

Publications (2)

Publication Number Publication Date
JP2003140898A JP2003140898A (ja) 2003-05-16
JP3822541B2 true JP3822541B2 (ja) 2006-09-20

Family

ID=25523380

Family Applications (2)

Application Number Title Priority Date Filing Date
JP6512381A Pending JPH09502547A (ja) 1992-11-13 1993-11-12 遠隔手続き呼び出しのためのインターフェイスポインタをマーシャリングする方法及びシステム
JP2002235096A Expired - Lifetime JP3822541B2 (ja) 1992-11-13 2002-08-12 オブジェクトインターフェイスにポインタをパスするためのコンピュータシステム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP6512381A Pending JPH09502547A (ja) 1992-11-13 1993-11-12 遠隔手続き呼び出しのためのインターフェイスポインタをマーシャリングする方法及びシステム

Country Status (5)

Country Link
US (2) US5511197A (ja)
EP (1) EP0669020B1 (ja)
JP (2) JPH09502547A (ja)
DE (1) DE69309485T2 (ja)
WO (1) WO1994011810A1 (ja)

Families Citing this family (247)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69327138T2 (de) * 1992-07-06 2000-04-27 Microsoft Corp Verfahren zur Namensgebung und zur Bindung von Objekten
US5805885A (en) 1992-12-24 1998-09-08 Microsoft Corporation Method and system for aggregating objects
JP3365576B2 (ja) * 1993-06-14 2003-01-14 インターナショナル・ビジネス・マシーンズ・コーポレーション オブジェクトの実行方法および装置
EP1047002A3 (en) * 1993-07-20 2002-06-19 Canon Kabushiki Kaisha Document processing apparatus and method
US6813769B1 (en) * 1997-10-28 2004-11-02 Microsoft Corporation Server application components with control over state duration
GB9407971D0 (en) * 1994-04-21 1994-06-15 British Telecomm Messaging system
DE69530731D1 (de) * 1994-07-22 2003-06-18 Sun Microsystems Inc Verfahren und Gerät für Speicherplatzeffiziente Kommunikation zwischen Prozessen
US5778228A (en) * 1994-08-16 1998-07-07 International Business Machines Corporation Method and system for transferring remote procedure calls and responses over a network
US5922054A (en) * 1994-08-19 1999-07-13 Canon Kabushiki Kaisha System for managing external applications and files
US5732270A (en) * 1994-09-15 1998-03-24 Visual Edge Software Limited System and method for providing interoperability among heterogeneous object systems
JP3361663B2 (ja) * 1994-10-03 2003-01-07 インターナショナル・ビジネス・マシーンズ・コーポレーション 通信管理方法
US5758074A (en) * 1994-11-04 1998-05-26 International Business Machines Corporation System for extending the desktop management interface at one node to a network by using pseudo management interface, pseudo component interface and network server interface
US5754854A (en) * 1994-11-14 1998-05-19 Microsoft Corporation Method and system for providing a group of parallel resources as a proxy for a single shared resource
JP3072709B2 (ja) * 1994-11-21 2000-08-07 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 要求伝達方法
EP0733972B1 (en) * 1995-03-22 2003-07-09 Sun Microsystems, Inc. Method and apparatus for managing relationships among objects in a distributed object environment
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
US6009266A (en) * 1995-03-22 1999-12-28 Sun Microsystems, Inc. Methods, apparatus and data structures for managing objects
US6249822B1 (en) 1995-04-24 2001-06-19 Microsoft Corporation Remote procedure call method
WO1996034354A1 (en) * 1995-04-28 1996-10-31 United Parcel Service Of America, Inc. System and method for validating and geocoding addresses
EP0762273B1 (en) 1995-09-06 2002-05-15 Seiko Epson Corporation Peripheral device control system using a plurality of objects
GB2305270A (en) * 1995-09-15 1997-04-02 Ibm Bridge for a client-server environment
GB2305271A (en) * 1995-09-15 1997-04-02 Ibm Proxy object recovery in an object-oriented environment
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
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
US5815708A (en) * 1995-10-06 1998-09-29 Sun Microsystems, Inc. Method and apparatus for dynamically loading method call exception code in response to a software method exception generated in a client/server computer system
CA2162188C (en) * 1995-11-06 1999-05-25 Harold Jeffrey Gartner Location transparency of distributed objects over multiple middlewares
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
US6185728B1 (en) * 1996-01-31 2001-02-06 Inprise Corporation Development system with methods for type-safe delegation of object events to event handlers of other objects
US6260074B1 (en) * 1996-03-30 2001-07-10 Sun Microsystems, Inc. Method and apparatus for passing generic objects in a distributed system
US6578044B1 (en) 1997-11-17 2003-06-10 Sun Microsystems, Inc. Method and system for typesafe attribute matching
US6247026B1 (en) 1996-10-11 2001-06-12 Sun Microsystems, Inc. Method, apparatus, and product for leasing of delegation certificates in a distributed system
US6708171B1 (en) 1996-04-23 2004-03-16 Sun Microsystems, Inc. Network proxy
US6438614B2 (en) 1998-02-26 2002-08-20 Sun Microsystems, Inc. Polymorphic token based control
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
US6446070B1 (en) 1998-02-26 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic distributed computing over a network
US6832223B1 (en) * 1996-04-23 2004-12-14 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
US6138238A (en) 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
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
US6185611B1 (en) 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US6282652B1 (en) 1998-02-26 2001-08-28 Sun Microsystems, Inc. System for separately designating security requirements for methods invoked on a computer
US6421704B1 (en) 1998-03-20 2002-07-16 Sun Microsystems, Inc. Method, apparatus, and product for leasing of group membership in a distributed system
US6226746B1 (en) 1998-03-20 2001-05-01 Sun Microsystems, Inc. Stack-based system and method to combine security requirements of methods
US6598094B1 (en) 1998-03-20 2003-07-22 Sun Microsystems, Inc. Method and apparatus for determining status of remote objects 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
US6466947B2 (en) 1998-03-20 2002-10-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information 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
US6182083B1 (en) 1997-11-17 2001-01-30 Sun Microsystems, Inc. Method and system for multi-entry and multi-template matching in a database
US6487607B1 (en) 1998-02-26 2002-11-26 Sun Microsystems, Inc. Methods and apparatus for remote method invocation
US6463446B1 (en) 1998-02-26 2002-10-08 Sun Microsystems, Inc. Method and apparatus for transporting behavior in an event-based distributed system
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
US5977967A (en) * 1996-05-01 1999-11-02 Electronic Data Systems Corporation Object-oriented business object interface framework and method
US5987512A (en) * 1996-06-12 1999-11-16 Sun Microsystems, Inc. Method and apparatus for access to remote gateway servers
US6434598B1 (en) 1996-07-01 2002-08-13 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework 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
US6266709B1 (en) 1996-07-01 2001-07-24 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server failure reporting process
US6272555B1 (en) 1996-07-01 2001-08-07 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system
US5848246A (en) 1996-07-01 1998-12-08 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system
US5999972A (en) 1996-07-01 1999-12-07 Sun Microsystems, Inc. System, method and article of manufacture for a distributed computer system framework
US6038590A (en) 1996-07-01 2000-03-14 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system
US6424991B1 (en) 1996-07-01 2002-07-23 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server communication framework
US6304893B1 (en) 1996-07-01 2001-10-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system
US5987245A (en) 1996-07-01 1999-11-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework
US5748897A (en) * 1996-07-02 1998-05-05 Sun Microsystems, Inc. Apparatus and method for operating an aggregation of server computers using a dual-role proxy server computer
US6263485B1 (en) 1996-07-11 2001-07-17 Andrew Schofield Method and apparatus for describing an interface definition language-defined interface, operation, and data type
US6308225B1 (en) * 1996-07-11 2001-10-23 724 Solutions, Inc. Method for performing distributed object calls
US6173327B1 (en) 1996-07-11 2001-01-09 Jeroen De Borst Object-oriented method and apparatus for information delivery
US6347342B1 (en) * 1996-07-15 2002-02-12 Next Software, Inc. Method and apparatus for dynamically brokering object messages among object models
US6212578B1 (en) * 1996-09-09 2001-04-03 Oracle Corporation Method and apparatus for managing dependencies in a distributed computing environment for ensuring the safety of remote procedure calls
GB9620196D0 (en) * 1996-09-27 1996-11-13 British Telecomm Distributed processing
US6237009B1 (en) 1996-10-11 2001-05-22 Sun Microsystems, Inc. Lease renewal service
US6728737B2 (en) 1996-10-11 2004-04-27 Sun Microsystems, Inc. Method and system for leasing storage
US5832529A (en) 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US5948072A (en) * 1996-10-31 1999-09-07 International Business Machines Corporation Method and apparatus for defining the scope of a CORBAservices factory finder
US5913025A (en) * 1996-11-14 1999-06-15 Novell, Inc. Method and apparatus for proxy authentication
US6047296A (en) * 1996-12-09 2000-04-04 Omnimark Technologies Corporation Comprehensive method of resolving nested forward references in electronic data streams within defined resolution scopes
US5930471A (en) * 1996-12-26 1999-07-27 At&T Corp Communications system and method of operation for electronic messaging using structured response objects and virtual mailboxes
US6038593A (en) * 1996-12-30 2000-03-14 Intel Corporation Remote application control for low bandwidth application sharing
US6732183B1 (en) * 1996-12-31 2004-05-04 Broadware Technologies, Inc. Video and audio streaming for multiple users
US6006230A (en) * 1997-01-15 1999-12-21 Sybase, Inc. Database application development system with improved methods for distributing and executing objects across multiple tiers
US6304918B1 (en) * 1997-03-11 2001-10-16 Microsoft Corporation Object interface control system
US6496865B1 (en) * 1997-03-12 2002-12-17 Novell, Inc. System and method for providing interpreter applications access to server resources in a distributed network
US6035342A (en) * 1997-03-19 2000-03-07 Microsoft Corporation Method and computer program product for implementing object relationships
US6189046B1 (en) * 1997-03-27 2001-02-13 Hewlett-Packard Company Mechanism and method for merging cached location information in a distributed object environment
US6408342B1 (en) * 1997-03-28 2002-06-18 Keith E. Moore Communications framework for supporting multiple simultaneous communications protocols 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
US6415334B1 (en) * 1997-05-14 2002-07-02 Microsoft Corporation Method and system for accessing objects of different thread types
US6151638A (en) * 1997-06-25 2000-11-21 Unisys Corp. System and method for performing external procedure calls from a client program to a server program to a server program and back to the client program while both are running in a heterogenous computer
US6141697A (en) * 1997-06-25 2000-10-31 Unisys Corp. System and method for performing external procedure calls in heterogeneous computer systems utilizing program stacks
US5920725A (en) * 1997-07-02 1999-07-06 Adaptivity Inc. Run-time object-synthesis and transparent client/server updating of distributed objects using a meta server of all object descriptors
US6981255B2 (en) * 1997-07-17 2005-12-27 Microsoft Corporation Method and system for accessing objects of different thread types
US6253253B1 (en) * 1997-08-25 2001-06-26 International Business Machines Corporation Method and apparatus for optimizing references to objects in a data processing system
US6567861B1 (en) * 1997-09-17 2003-05-20 International Business Machines Corporation Method and apparatus for remotely running objects using data streams and/or complex parameters
US6275870B1 (en) * 1997-09-24 2001-08-14 Sony Corporation Network object request broker
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
US6185609B1 (en) * 1997-10-24 2001-02-06 Sun Microsystems, Inc. Method, apparatus and program to provide client access to a management information service residing on a server in a computer network system
US6631425B1 (en) 1997-10-28 2003-10-07 Microsoft Corporation Just-in-time activation and as-soon-as-possible deactivation or server application components
US7076784B1 (en) 1997-10-28 2006-07-11 Microsoft Corporation Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment
US6134594A (en) 1997-10-28 2000-10-17 Microsoft Corporation Multi-user, multiple tier distributed application architecture with single-user access control of middle tier objects
US6272492B1 (en) 1997-11-21 2001-08-07 Ibm Corporation Front-end proxy for transparently increasing web server functionality
US6018805A (en) * 1997-12-15 2000-01-25 Recipio Transparent recovery of distributed-objects using intelligent proxies
US6167565A (en) * 1998-01-08 2000-12-26 Microsoft Corporation Method and system of custom marshaling of inter-language parameters
CN1298514A (zh) 1998-02-26 2001-06-06 太阳微系统公司 确定性散列识别远程方法的方法和系统
US6604127B2 (en) 1998-03-20 2003-08-05 Brian T. Murphy Dynamic lookup service in distributed system
US6138269A (en) * 1998-05-20 2000-10-24 Sun Microsystems, Inc. Determining the actual class of an object at run time
US7089331B1 (en) 1998-05-29 2006-08-08 Oracle International Corporation Method and mechanism for reducing client-side memory footprint of transmitted data
US6442620B1 (en) 1998-08-17 2002-08-27 Microsoft Corporation Environment extensibility and automatic services for component applications using contexts, policies and activators
US6425017B1 (en) 1998-08-17 2002-07-23 Microsoft Corporation Queued method invocations on distributed component applications
JP2000099332A (ja) 1998-09-25 2000-04-07 Hitachi Ltd 遠隔手続き呼び出し最適化方法とこれを用いたプログラム実行方法
US6385661B1 (en) * 1998-10-19 2002-05-07 Recursion Software, Inc. System and method for dynamic generation of remote proxies
US6826763B1 (en) 1998-12-11 2004-11-30 Microsoft Corporation Accelerating a distributed component architecture over a network using a direct marshaling
US6799320B1 (en) * 1998-12-16 2004-09-28 Microsoft Corporation Providing binding options for component interfaces
US6684393B1 (en) 1999-01-29 2004-01-27 International Business Machines Corporation Compilation method and system to reuse memory storage instead of allocating it
US6421739B1 (en) * 1999-01-30 2002-07-16 Nortel Networks Limited Fault-tolerant java virtual machine
US7117446B2 (en) * 1999-02-01 2006-10-03 Sonic Solutions, Inc. User interface method and system for application programs implemented with component architectures
US6670934B1 (en) 1999-02-03 2003-12-30 William H. Gates, III Method and system for distributing art
US6684246B1 (en) 1999-02-03 2004-01-27 William H. Gates, III Method and system for tracking clients
ATE368253T1 (de) * 1999-02-03 2007-08-15 Gates William H Iii Verfahren und system zur klientenverfolgung
US6529962B1 (en) * 1999-02-05 2003-03-04 International Business Machines Corporation Preserving thread identity during remote calls
US6748455B1 (en) 1999-02-23 2004-06-08 Microsoft Corporation Object connectivity through loosely coupled publish and subscribe events with filtering
US6829770B1 (en) * 1999-02-23 2004-12-07 Microsoft Corporation Object connectivity through loosely coupled publish and subscribe events
US6757903B1 (en) * 1999-04-05 2004-06-29 Gateway, Inc. Object driven software architecture method and apparatus
US7010792B1 (en) * 1999-04-05 2006-03-07 Gateway Inc. Method for managing interaction between information appliances and appliance services
US6901518B1 (en) 1999-04-08 2005-05-31 Sun Microsystems, Inc. Method and system for establishing trust in downloaded proxy code
FR2792435B1 (fr) * 1999-04-15 2001-07-13 Cit Alcatel Procede de modification d'un protocole entre objets distribues
US8346971B2 (en) 1999-05-04 2013-01-01 At&T Intellectual Property I, Lp Data transfer, synchronising applications, and low latency networks
US6539374B2 (en) 1999-06-03 2003-03-25 Microsoft Corporation Methods, apparatus and data structures for providing a uniform representation of various types of information
US6778971B1 (en) 1999-06-03 2004-08-17 Microsoft Corporation Methods and apparatus for analyzing computer-based tasks to build task models
US6606613B1 (en) 1999-06-03 2003-08-12 Microsoft Corporation Methods and apparatus for using task models to help computer users complete tasks
US6330554B1 (en) 1999-06-03 2001-12-11 Microsoft Corporation Methods and apparatus using task models for targeting marketing information to computer users based on a task being performed
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
US6877163B1 (en) 1999-06-14 2005-04-05 Sun Microsystems, Inc. Method and system for dynamic proxy classes
US6356933B2 (en) * 1999-09-07 2002-03-12 Citrix Systems, Inc. Methods and apparatus for efficiently transmitting interactive application data between a client and a server using markup language
US6748555B1 (en) * 1999-09-09 2004-06-08 Microsoft Corporation Object-based software management
US6438560B1 (en) * 1999-09-16 2002-08-20 International Business Machines Corporation Reuse of immutable objects during object creation
US7120899B1 (en) * 1999-10-21 2006-10-10 Unisys Corporation Method for implementing component object model interfaces
US20040255043A1 (en) * 1999-11-10 2004-12-16 Randy Salo Data transmission architecture for secure remote access to enterprise networks
US6947965B2 (en) 1999-11-30 2005-09-20 Recursion Software, Inc. System and method for communications in a distributed computing environment
US6678743B1 (en) 1999-11-30 2004-01-13 Recursion Software, Inc. Method for moving objects in a distributed computing environment
US6920636B1 (en) 1999-12-15 2005-07-19 Microsoft Corporation Queued component interface passing for results outflow from queued method invocations
US6728788B1 (en) * 1999-12-16 2004-04-27 International Business Machines Corporation Method and system for converting a remote procedure call to a local procedure call when the service is on the same device as the calling client
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
EP1117035A1 (en) * 2000-01-14 2001-07-18 Sun Microsystems, Inc. Runtime environment component services
EP1117220A1 (en) * 2000-01-14 2001-07-18 Sun Microsystems, Inc. Method and system for protocol conversion
US7389284B1 (en) 2000-02-29 2008-06-17 Oracle International Corporation Method and mechanism for efficient processing of remote-mapped queries
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
US7577834B1 (en) 2000-05-09 2009-08-18 Sun Microsystems, Inc. Message authentication using message gates in a distributed computing environment
US6862594B1 (en) 2000-05-09 2005-03-01 Sun Microsystems, Inc. Method and apparatus to discover services using flexible search criteria
US7260543B1 (en) 2000-05-09 2007-08-21 Sun Microsystems, Inc. Automatic lease renewal with message gates in a distributed computing environment
US8082491B1 (en) 2000-05-09 2011-12-20 Oracle America, Inc. Dynamic displays in a distributed computing environment
US7395333B1 (en) 2000-05-09 2008-07-01 Sun Microsystems, Inc. Method and apparatus to obtain negotiated service advertisement
US6789126B1 (en) 2000-05-09 2004-09-07 Sun Microsystems, Inc. Addressing message gates in a distributed computing environment
US7243356B1 (en) 2000-05-09 2007-07-10 Sun Microsystems, Inc. Remote method invocation with secure messaging in a distributed computing environment
AU2001263033A1 (en) * 2000-05-09 2001-11-20 Sun Microsystems, Inc. Method and apparatus for proximity discovery of services
US7065574B1 (en) 2000-05-09 2006-06-20 Sun Microsystems, Inc. Messaging system using pairs of message gates in a distributed computing environment
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
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
US6850979B1 (en) * 2000-05-09 2005-02-01 Sun Microsystems, Inc. Message gates 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
US7010573B1 (en) * 2000-05-09 2006-03-07 Sun Microsystems, Inc. Message gates using a shared transport in a distributed computing environment
US8001232B1 (en) 2000-05-09 2011-08-16 Oracle America, Inc. Event message endpoints 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
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
US7016966B1 (en) * 2000-05-09 2006-03-21 Sun Microsystems, Inc. Generating results 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
US7370091B1 (en) 2000-05-09 2008-05-06 Sun Microsystems, Inc. Method and apparatus for obtaining space advertisements
US6950875B1 (en) 2000-05-09 2005-09-27 Sun Microsystems, Inc. Message conductors 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
US7072967B1 (en) 2000-05-09 2006-07-04 Sun Microsystems, Inc. Efficient construction of message endpoints
US8135796B1 (en) 2000-05-09 2012-03-13 Oracle America, Inc. Mechanism and apparatus for accessing and addressing services 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
US6792466B1 (en) 2000-05-09 2004-09-14 Sun Microsystems, Inc. Trusted construction of message endpoints 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
US6970869B1 (en) 2000-05-09 2005-11-29 Sun Microsystems, Inc. Method and apparatus to discover services and negotiate capabilities
US6898618B1 (en) 2000-05-09 2005-05-24 Sun Microsystems, Inc. Client-specified display services in a distributed computing environment
US6957237B1 (en) 2000-06-02 2005-10-18 Sun Microsystems, Inc. Database store for a virtual heap
US6760815B1 (en) * 2000-06-02 2004-07-06 Sun Microsystems, Inc. Caching mechanism for a virtual heap
US6865657B1 (en) 2000-06-02 2005-03-08 Sun Microsystems, Inc. Garbage collector for a virtual heap
US6854115B1 (en) 2000-06-02 2005-02-08 Sun Microsystems, Inc. Process persistence in a virtual machine
US6763440B1 (en) 2000-06-02 2004-07-13 Sun Microsystems, Inc. Garbage collection using nursery regions for new objects in a virtual heap
US6941410B1 (en) 2000-06-02 2005-09-06 Sun Microsystems, Inc. Virtual heap for a virtual machine
US20020065946A1 (en) * 2000-10-17 2002-05-30 Shankar Narayan Synchronized computing with internet widgets
US6754501B1 (en) 2000-11-02 2004-06-22 Motorola, Inc. Media access adaptive control to improve system throughput
US7346842B1 (en) 2000-11-02 2008-03-18 Citrix Systems, Inc. Methods and apparatus for incorporating a partial page on a client
US7194743B2 (en) * 2000-12-12 2007-03-20 Citrix Systems, Inc. Methods and apparatus for communicating changes between a user interface and an executing application using property paths
US7296275B2 (en) 2001-01-04 2007-11-13 Sun Microsystems, Inc. Method and system for passing objects in a distributed system using serialization contexts
US6842786B1 (en) * 2001-02-09 2005-01-11 Adobe Systems Incorporated Method and apparatus for remote communication of data associated with dynamically generated type object at runtime to describe the data type
US6996832B2 (en) * 2001-05-30 2006-02-07 Bea Systems, Inc. System and method for software component plug-in framework
US7428752B2 (en) * 2001-06-01 2008-09-23 Applications In Internet Time, Llc Secure data accessing system and method
US7647597B2 (en) * 2001-06-28 2010-01-12 Microsoft Corporation Transparent and sub-classable proxies
US20030028583A1 (en) * 2001-07-31 2003-02-06 International Business Machines Corporation Method and apparatus for providing dynamic workload transition during workload simulation on e-business application server
US7949668B2 (en) * 2001-08-20 2011-05-24 Pardalis, Inc. Common point authoring system for the complex sharing of hierarchically authored data objects in a distribution chain
US7136869B2 (en) * 2001-08-20 2006-11-14 Pardalis Software Inc. Common point authoring system for tracking and authenticating objects in a distribution chain
US6671696B1 (en) * 2001-08-20 2003-12-30 Pardalis Software, Inc. Informational object authoring and distribution system
US7103590B1 (en) * 2001-08-24 2006-09-05 Oracle International Corporation Method and system for pipelined database table functions
US20030051029A1 (en) * 2001-09-07 2003-03-13 Reedy Dennis G. Dynamic provisioning of sevice components in a distributed system
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
US7146617B2 (en) 2001-09-29 2006-12-05 Siebel Systems, Inc. Method, apparatus, and system for implementing view caching in a framework to support web-based applications
US8359335B2 (en) 2001-09-29 2013-01-22 Siebel Systems, Inc. Computing system and method to implicitly commit unsaved data for a world wide web application
US7203948B2 (en) * 2001-09-29 2007-04-10 Siebel Systems, Inc. Method, apparatus, and system for implementing caching of view custom options in a framework to support web-based applications
US6907451B1 (en) * 2001-09-29 2005-06-14 Siebel Systems, Inc. Method, apparatus, and system for immediate posting of changes in a client server environment
US7885996B2 (en) * 2001-09-29 2011-02-08 Siebel Systems, Inc. Method, apparatus, and system for implementing notifications in a framework to support web-based applications
US7870492B2 (en) * 2001-10-02 2011-01-11 Siebel Systems, Inc. Method, apparatus, and system for managing commands in a client server environment
US7000238B2 (en) * 2001-10-10 2006-02-14 Borland Software Corporation Development system providing extensible remoting architecture
DE10157633A1 (de) * 2001-11-26 2003-08-28 Siemens Ag Medizinische Systemarchitektur mit einer komponentenorientierten Architektur zur Befundung und Dokumentation
US7051341B2 (en) 2001-12-14 2006-05-23 International Business Machines Corporation Method, system, and program for implementing a remote method call
US7290267B2 (en) * 2002-01-23 2007-10-30 International Business Machines Corporation Multi-protocol object distribution
US7516447B2 (en) * 2002-02-22 2009-04-07 Bea Systems, Inc. Methods and apparatus for building, customizing and using software abstractions of external entities
US7610351B1 (en) * 2002-05-10 2009-10-27 Oracle International Corporation Method and mechanism for pipelined prefetching
US6973457B1 (en) 2002-05-10 2005-12-06 Oracle International Corporation Method and system for scrollable cursors
US7685287B2 (en) * 2002-05-30 2010-03-23 Microsoft Corporation Method and system for layering an infinite request/reply data stream on finite, unidirectional, time-limited transports
US7234109B2 (en) * 2002-11-19 2007-06-19 Microsoft Corp. Equality of extensible markup language structures
US7523169B1 (en) 2003-02-28 2009-04-21 Verizon Data Services Llc Method and system for mapping network data for network database access
US7197512B2 (en) * 2003-03-26 2007-03-27 Microsoft Corporation Type bridges
US7792874B1 (en) 2004-01-30 2010-09-07 Oracle America, Inc. Dynamic provisioning for filtering and consolidating events
WO2005114953A1 (en) * 2004-05-21 2005-12-01 Computer Associates Think, Inc. Method and apparatus for remote management
US8578399B2 (en) * 2004-07-30 2013-11-05 Microsoft Corporation Method, system, and apparatus for providing access to workbook models through remote function cells
KR101122807B1 (ko) * 2004-09-14 2012-03-21 마이크로소프트 코포레이션 임의의 기하학적 경로에 동작하는 함수들
US7636888B2 (en) * 2005-03-15 2009-12-22 Microsoft Corporation Verifying compatibility between document features and server capabilities
US20060282460A1 (en) * 2005-06-09 2006-12-14 International Business Machines Corporation Method and system for generic data objects
US8478300B2 (en) * 2005-12-20 2013-07-02 Microsoft Corporation Proximity service discovery in wireless networks
US8559350B2 (en) 2005-12-20 2013-10-15 Microsoft Corporation Mechanism to convey discovery information in a wireless network
US7865583B2 (en) 2006-03-31 2011-01-04 The Invention Science Fund I, Llc Aggregating network activity using software provenance data
US10681151B2 (en) 2006-05-15 2020-06-09 Microsoft Technology Licensing, Llc Notification framework for wireless networks
US7587694B1 (en) 2006-07-21 2009-09-08 Ciranova, Inc. System and method for utilizing meta-cells
US7698662B1 (en) * 2006-07-21 2010-04-13 Ciranova, Inc. System and method for proxied evaluation of PCells
US20080201481A1 (en) * 2007-02-20 2008-08-21 Microsoft Corporation Remote interface marshalling
CN100578458C (zh) 2007-03-22 2010-01-06 华为技术有限公司 分布式系统中的调用请求处理方法及分布式系统和服务器
CN101304350B (zh) * 2007-05-11 2013-02-13 华为技术有限公司 访问家庭网络设备的方法、系统和家庭网络接入设备
US7971175B2 (en) * 2007-06-27 2011-06-28 Cadence Design Systems, Inc. Method and system for implementing cached parameterized cells
US7949987B1 (en) 2008-02-08 2011-05-24 Cadence Design Systems, Inc. Method and system for implementing abstract layout structures with parameterized cells
US9105031B2 (en) * 2008-02-22 2015-08-11 Microsoft Technology Licensing, Llc Authentication mechanisms for wireless networks
US8364656B2 (en) * 2008-10-31 2013-01-29 Cadence Design Systems, Inc. Method and system for implementing multiuser cached parameterized cells
US9021510B2 (en) 2009-12-04 2015-04-28 International Business Machines Corporation Remote procedure call (RPC) bind service with physical interface query and selection
US8266639B2 (en) * 2009-12-04 2012-09-11 International Business Machines Corporation Remote procedure call (RPC) bind service with physical interface query and selection
US9116778B2 (en) 2010-04-29 2015-08-25 Microsoft Technology Licensing, Llc Remotable project
US9674637B2 (en) 2011-06-16 2017-06-06 Microsoft Technology Licensing, Llc Object marshaling
US8863129B2 (en) 2011-12-06 2014-10-14 International Business Machines Corporation Automated caching and mirroring of immutable data in distributed virtual machines via native interface components
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
US9870266B2 (en) * 2015-07-30 2018-01-16 Nasdaq, Inc. Background job processing framework
US11314718B2 (en) 2019-11-21 2022-04-26 International Business Machines Corporation Shared disk buffer pool update and modification
US11469890B2 (en) * 2020-02-06 2022-10-11 Google Llc Derived keys for connectionless network protocols
CN113515389B (zh) * 2020-04-09 2024-03-01 奇安信安全技术(珠海)有限公司 中间接口的调用方法及装置、系统、存储介质、电子装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5062040A (en) * 1986-12-22 1991-10-29 At&T Bell Laboratories Handling of notification of asynchronous events by user and stub processes of a distributed process executing on a plurality of processors of a multi-processor system
CA1293042C (en) * 1988-02-04 1991-12-10 Ian Macmillan Communication system supporting remote operations
US5430876A (en) * 1989-06-27 1995-07-04 Digital Equipment Corporation Remote procedure callback system and method
US5187790A (en) * 1989-06-29 1993-02-16 Digital Equipment Corporation Server impersonation of client processes in an object based computer operating system
US5218699A (en) * 1989-08-24 1993-06-08 International Business Machines Corporation Remote procedure calls in heterogeneous systems
DE4131380A1 (de) * 1991-09-20 1993-03-25 Siemens Ag Verfahren zur adaption einer objektorientierten applikation
DE69329577T2 (de) * 1992-07-01 2001-05-31 Ericsson Telefon Ab L M Verfahren und system für implementierung-unabhängige schnittstellenspezifikation
US5307490A (en) * 1992-08-28 1994-04-26 Tandem Computers, Inc. Method and system for implementing remote procedure calls in a distributed computer system
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
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
DE9306548U1 (de) * 1993-04-30 1993-11-04 Ernst Vogelsang GmbH, 58849 Herscheid Niedrig-Kopfplatte für Doppelbodenstützen
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
CA2107299C (en) * 1993-09-29 1997-02-25 Mehrad Yasrebi High performance machine for switched communications in a heterogenous data processing network gateway
US5517645A (en) * 1993-11-05 1996-05-14 Microsoft Corporation Method and system for interfacing components via aggregate components formed by aggregating the components each with an instance of a component manager

Also Published As

Publication number Publication date
EP0669020A1 (en) 1995-08-30
US5724588A (en) 1998-03-03
JP2003140898A (ja) 2003-05-16
DE69309485D1 (de) 1997-05-07
WO1994011810A1 (en) 1994-05-26
US5511197A (en) 1996-04-23
EP0669020B1 (en) 1997-04-02
DE69309485T2 (de) 1997-07-10
JPH09502547A (ja) 1997-03-11

Similar Documents

Publication Publication Date Title
JP3822541B2 (ja) オブジェクトインターフェイスにポインタをパスするためのコンピュータシステム
CA2049125C (en) Methods and apparatus for implementing server functions in a distributed heterogeneous environment
US5802367A (en) Method and system for transparently executing code using a surrogate process
AU638138B2 (en) Methods and apparatus for implementing data bases to provide object-oriented invocation of applications
JP4322967B2 (ja) オブジェクト集合方法及びシステム
US5608909A (en) Method and system for caching presentation data of a source object in a presentation cache
JP3868013B2 (ja) コードのリモート実行方法およびシステム
US5911068A (en) Container independent control architecture
US5341478A (en) Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment
EP0474339B1 (en) Methods and apparatus for providing a client interface to an object-oriented invocation of an application
US8205213B2 (en) Method and apparatus for dynamically brokering object messages among object models
US6321275B1 (en) Interpreted remote procedure calls
JP4070248B2 (ja) オブジェクト接続を動的に発生する方法及びシステム
US6941561B1 (en) Method and apparatus for remotely running objects using data streams and/or complex parameters
US6438616B1 (en) Method and apparatus for fast, local corba object references
US6415334B1 (en) Method and system for accessing objects of different thread types
US6708196B1 (en) Method and system for caching presentation data
US6981255B2 (en) Method and system for accessing objects of different thread types
JP3672334B2 (ja) オブジェクト集合方法およびシステム
Guide PV-WAVE®

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20031215

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040315

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040318

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040615

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040712

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20041022

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20041022

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041111

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20041111

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20041022

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20041111

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050126

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20050218

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060130

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060428

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060622

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100630

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110630

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110630

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120630

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120630

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130630

Year of fee payment: 7

EXPY Cancellation because of completion of term