JPH10511794A - クライアント−サーバ環境用ブリッジ - Google Patents

クライアント−サーバ環境用ブリッジ

Info

Publication number
JPH10511794A
JPH10511794A JP9511731A JP51173197A JPH10511794A JP H10511794 A JPH10511794 A JP H10511794A JP 9511731 A JP9511731 A JP 9511731A JP 51173197 A JP51173197 A JP 51173197A JP H10511794 A JPH10511794 A JP H10511794A
Authority
JP
Japan
Prior art keywords
server
client
bridge
interface
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP9511731A
Other languages
English (en)
Other versions
JP3605416B2 (ja
Inventor
コリア、アドリアン、マーク
Original Assignee
インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Publication of JPH10511794A publication Critical patent/JPH10511794A/ja
Application granted granted Critical
Publication of JP3605416B2 publication Critical patent/JP3605416B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 クライアント−サーバ分散コンピューティング環境においてクライアント(53)とサーバ(54)との間にソフトウェア・ブリッジ(300)を設ける。このブリッジ(300)は、クライアント(53)に対するサーバ(54)のインタフェースと、サーバ(54)に対するクライアント(53)のインタフェースとを提供する。ブリッジ(300)は、クライアント(53)とサーバ(54)の間を流れる要求とそれに付随するデータのモニタまたはログのために使用され、たとえば問題判別の際に役立つ。ブリッジ(300)はサーバ(54)間の作業負荷分散にも使用される。ブリッジを使用してクライアント(53)とサーバ(54)の間のネットワーク接続を減らすこともできる。これらの利点はすべて、既存のクライアント(53)コードまたはサーバ(54)コードにまったく修正を加えずに得られる。

Description

【発明の詳細な説明】 クライアント−サーバ環境用ブリッジ発明の分野 本発明は、クライアント−サーバ環境における分散コンピューティングに関し 、具体的には前記環境におけるクライアントとサーバの間でのブリッジの使用に 係わる。発明の背景 オブジェクト指向プログラミングの概要 オブジェクト指向プログラミングが開発される以前に、構造化プログラミング と呼ばれるプログラミングの一形態が使用され、今でも広く使用されている。こ の技法では、まずさまざまな関数を定義し、次にプログラムがその定義された関 数を適切な時点で呼び出してアプリケーション・プログラムの全体的な目的を実 現することから成る。このような関数は、データを操作するために使用するメソ ッドを定義するが、データ自体は定義しない。構造化プログラミングはモジュー ル化手法の機会をもたらした。これは、メンテナンスやデバッグが難しい「スパ ゲッティ・コード」を克服する重要な改良であった。それにもかかわらず、構造 化プログラミングには、プログラムによってモデル化される世界における概念お よび実体と、プログラミング言語における概念との間の「意 味ギャップ」や、プログラム・コードのテキスト性、コード・モジュールの再使 用可能性の限界などいくつかの欠点も残されている。 その後、オブジェクト指向プログラミングと呼ばれる新しいプログラミング・ パラダイムが開発された。この技法では、関数を定義する代わりに、「クラス」 を定義する。クラス定義によって、そのクラスの任意のインスタンスが実行する ことができるメソッドと、そのクラスのインスタンスに含まれる属性(またはデ ータ)とを定義する。オブジェクトはクラスのメンバーであり、クラス定義で定 義されているメソッドを実際に実行することができる。オブジェクトは、クラス によって定義された各属性に付随する値を持つ。オブジェクトは、ゼロまたは1 個以上の属性を持ち、そのオブジェクトに対して実行することができるゼロまた は1個以上のメソッドを持つ。 オブジェクトとのインタフェースは、メソッドを介して属性にアクセスするこ とができる方法である。そのクラスから導き出されるすべてのオブジェクトがそ のクラスのインタフェースを共有する。オブジェクトの実現部分はオブジェクト を呼び出すアプリケーションから隠蔽される。オブジェクトへのインタフェース が変わらない限り、アプリケーションに影響を与えることなく実現部分を完全に 変えることはできない。 オブジェクトが内部でどのように「見える」か、また内部 で何を「行う」かを記述する必要なしにオブジェクトの「外観」を記述するこの 技法を単純化した例として、また、そのようなオブジェクト指向プログラミング の重要な利点を例示するための例として、オブジェクト指向手法によってモデル 化することができる普通の家庭用トースタを考えてみる。外部「インタフェース 」は、トーストの所望の焼き加減を調節するパラメータを本質的に表すつまみと 、パンを入れるスロットと、トースタへの挿入とトースタの起動を行うレバーと から成る。重要な概念は、この種の家電製品のエンドユーザはそれを使用するた めにトースタの「内部」を知る必要がないことである。たとえば、熱が電気によ って供給されるのか、化学薬品やその他の手段によって供給されるのかを知る必 要はない。ユーザは上記の外面部と正しくインタフェースするだけでよい。 プログラミングにおけるこの進化の利点は、上記の例を続けて用いると、トー スタをモデル化するプログラミング・コードのモジュールであるオブジェクトの 設計者が、ユーザにとって内部が見えないために、たとえばユーザがそのオブジ ェタトを使用する能力に影響を与えることなくトースタの内部要素を改良するこ とに焦点を絞ることができ、効率を向上させることができることである。したが って、より抽象的に言うと、オブジェクト指向技法は本質的に、オブジェクトの インタフェースをオブジェクトの実現部分から分離する利点をもたらすものと見 なすことができる。ソフトウェア環境に おいては、それによって、外部の「つまみ」などやその予想される動作が変わら ない限り、アプリケーション・プログラム全体を書き直さなくてもオブジェクト の内部を書き直し、改良することができる。 本発明の理解を助けるオブジェクト技法に関するその他の一般的背景について は、デイビッドA.テイラー(David A.Taylor)による「Obj ect Oriented Technology − A Manager’ s Guide」(copyright 1990,Servio Corpo ration)を参照されたい。 オブジェクト指向プログラミングの発展に伴い、様々な組織やソフトウェア会 社によっていくつかの「オブジェクト・モデル」がさらに改良され、開発された 。オブジェクトとその外部インタフェースを定義する方法が規定され、そのよう な様々なオブジェクト・モデルによって特にカプセル化と継承の特性が規定され た。ある程度の高レベルから見れば、これらの様々なオブジェクト・モデルはき わめて類似している。たとえば、システム・オブジェクト・モデル(SOM)、 コモンLispオブジェクト・システム(CLOS)、Smalltalk、お よびC++などがある。本質的には、これらの様々なオブジェクト・モデルはオ ブジェクトが何であるかという問いに答える規則の集まりに過ぎず、より低レベ ルで検討するとそれぞれわずかに異なった答えが出る。たとえば、言語構文とカ プセル化および継承の機能はオブジェク ト・モデルによって異なる。 これらの相違の直接の結果として、異なるオブジェクト指向言語およびオブジ ェクト・モデルの使用可能性により生じる1つの問題は、そのような言語の混合 で書かれたオブジェクト・プログラム間のインターオペラビリティを実現するこ とができないことであった。この問題は、オブジェクト技法の重要な利点の1つ であるコードの再使用可能性に悪影響を与える。業界を悩ませるこの問題を解決 しようとして、委員会は共通オブジェクト要求ブローカ・アーキテクチャ(CO RBA)に到達した。これには標準化インタフェース定義言語(IDL)が含ま れていた。業界ではオブジェクトインタフェースをどのように規定するか、すな わち、オブジェクト・インタフェースを定義する標準に関して本質的に合意に達 し、その結果、1つのベンダーによって定義されたオブジェクトを他のベンダー が使用することが可能になった。「The Common Object Re quest Broker:Architecture and Specif ication」(OMG Document Number 91.12.1 Revisionl.1)を参照されたい。 オブジェクト要求ブローカ(ORB) CORBAアーキテクチャで記述されたオブジェクト要求ブローカ(ORB) は、UNIXオペレーティング・システ ム環境で作業をする人には周知のリモート・プロシージャ・コール(RPC)に 似ている(UNIXはX/Open CO.Ltd.によって独占的にライセン ス許諾される商標である)。 従来技術のシステムを第1図に示す。これは、クライアント/サーバ環境にあ る従来技術のオブジェクト要求ブローカを示すブロック図である。 このORBは2つの部分に分かれており、そのうちの部分50はORBを使用 して各クライアントで実行され、部分52はORBをサポートする各サーバで実 行される。RPCと同様に、ORBは1つのアドレス空間53で稼働しているク ライアント・アプリケーション48が別のアドレス空間54のオブジェクト51 と通信することができるようにする機構である。他方のアドレス空間54、すな わちクライアント・アプリケーション48が実行されているアドレス空間と同じ アドレス空間53ではないアドレス空間にあるオブジェクト51を「リモート」 オブジェクトと呼ぶ。クライアント・アプリケーション48と同じアドレス空間 53にあるオブジェクトを「ローカル」オブジェクトと呼ぶ。ORB50は1つ のアドレス空間53内のクライアント・アプリケーション48からの呼出しを代 行受信し、それをネットワーク・プロトコルにカプセル化し、別のアドレス空間 54内のターゲット・オブジェクト51に合わせて呼出しをデコードし、その結 果を呼び出し側クライアント・アプリケーション48に返す 。これによって、一方のアドレス空間(ローカル)で稼働しているクライアント ・アプリケーション48が他方のアドレス空間(リモート)内のオブジェクト5 1と通信することができる。ORBは、オブジェクト指向プログラミングによっ て得られる高度の柔軟性と能力を備えるように設計されている点で、RPCが改 良されたものである。プロキシ・オブジェクト49の機能については後で詳述す る。 「オブジェクト・モデル」は様々な組織やソフトウェア会社によって開発され ている。オブジェクト・モデルはオブジェクトとその外部インタフェースの定義 の仕方を規定する。このようなオブジェクト・モデルの1つは、IBM Corporatio nのシステム・オブジェクト・モデル(SOM)である。SOMでは、オブジェ クトを使用するすべてのアプリケーションはそれらのオブジェクトが入っている 1つのアドレス空間内で実行される。SOM内で作成されるものは、分散システ ム・オブジェクト・モデル(DSOM)と呼ばれるオブジェクト・クラスのフレ ームワークである。DSOMでは、1つのアドレス空間内の(クライアントで稼 働している)アプリケーションは別のアドレス空間(サーバに属するアドレス空 間など)内のオブジェクトにアクセスすることができる。これらのアドレス空間 は同じシステムと異なるシステムのどちらにあってもよい。実際には、システム は同じプラットフォームで稼働している必要はない。たとえば、OS/2システ ム上のアドレス空間で稼働しているクライアント・アプリケー ションがAIX/6000システム上のアドレス空間にあるオブジェクトにアク セスすることができ、その逆も可能である。SOMとDSOMの両方については 、IBM Corporationが発行している「SOMobject:A Practic al Introduction to SOM and DSOM」(Cop yright 1994,Order no.GG24−4357−00)に記 載されている。 欧州特許出願第0501610号では、異なるプロセス内のオブジェクトが通 信することができるようにする機構が開示されている。通信アプリケーション・ プログラミング・インタフェース(API)を使用するようにプログラムが明示 的に作成される。 上記のシステム・オブジェクト・モデル(SOM)は、CORBAとIDLに 準拠した1つのオブジェクト・モデルである。準拠とは、SOMオブジェクトが CORBAのセマンティクスに従っており、SOMオブジェクトがIDL構文で 定義されているという意味である。 DSOMのフレームワークは、ターゲット・オブジェクトがインスタンス化さ れる場所やプラットフォームのタイプをクライアント・プログラマが知らなくて も済むようにするオブジェクト実現部を備える。このプロセス間通信に使用され る通信機構は、プログラマには見えないように完全に隠蔽される。 クライアント−サーバ・アーキテクチャ クライアント−サーバ・アーキテクチャでは、アプリケーション・プログラム は個別の構成要素として実行される個別のタスクに分けられる。各構成要素には クライアントまたはサーバの役割が割り当てられる。1つの構成要素は、ある目 的のためにはサーバの役割を果たし、他の目的のためにはクライアントの役割を 果たすことができる。各構成要素は独立して動作し、特定の責任を担う。クライ アントの役割が割り当てられた構成要素は、サーバ・プロセス内のオブジェクト に対するメソッド呼出しを行うことによって、サーバにサービスを要求する。サ ーバの役割が割り当てられた構成要素は、それらのメソッド呼出しを受け取り、 該当するオブジェクトに対してそれらのメソッド呼出しを行い、その結果をクラ イアントに返すことによってサービスを提供する。クライアントとサーバは事前 定義されたプロトコルを使用してメッセージを交換する。サーバは多くのクライ アントにサービスを提供することができ、クライアントは多くのサーバにサービ スを要求することができる。 このようなシステムでは、クライアントまたはサーバがその中に特定のコード を持っていない限り、サーバのクライアントによって行われた要求の監視やログ を行ったり、そのような要求に付随するデータの監視やログを行ったりすること ができない。問題判別のために、そのような要求の監視またはログを行うことが 望ましいと考えられる。 上述のシステムでは、サーバ間の作業負荷分散は、クライアントがクライアン ト自体内にそのような作業負荷分散機能を含むように設計されていない限り不可 能である。クライアント自体内にそのような作業負荷分散機能を組み込むことの 欠点は、クライアント内の各要求に付随するオーバーヘッドと、そのような作業 負荷分散機能を含む各クライアントに複雑さが生じることである。最高のパフォ ーマンスを提供するサーバを選定することによってクライアントの全体的なパフ ォーマンスを向上させるために、作業負荷分散が望ましい。 各クライアントと、そのクライアントがサービスを要求することができること が望ましい各サーバとの間に通信リンクを設ける必要がある。その結果、多数の クライアントと多数のサーバがあるシステムは著しく複雑化する。 背景技術 機能伝送によって、アプリケーション・プログラムはファイル制御要求を伝送 して他のシステムが所有しているファイルにアクセスすることができ、一時デー タ機能および一時記憶域機能を求める要求を伝送して他のシステム内の一時デー タ待ち行列および一時記憶待ち行列との間でデータの送受信を行うことができる 。また、SNA LUタイプ6プロトコルを実施する他のシステムでのトランザ クションの開始も可能にする。システム・プログラマは資源定義テーブルの項目 を使用して、指定資源がローカル(または要求側)システム 上ではなくリモート(または所有側)システム上にあるように指定することがで きる。機能伝送の使用は、要求側システムとリモートシステムの両方にとって透 過である。要求とそれに付随するデータの記録と監視が可能であるが、そのよう な監視機能を持たせたい各アプリケーションごとに別々に実施しなければならな い。機能伝送の詳細は、「CICS/ESA V4.1 Intercommu nication Guide」(IBM Corporation発行、Copyright 1977、1994、Order no.SC33−1181−00)に記載 されている。 プロキシを使用して、クライアントで稼働しているローカル・アプリケーショ ンからサーバ内のリモート資源にアクセスすることができる。プロキシとは、他 のオブジェクトの代わりとなり、そのメッセージを受信し、それらを何らかの方 法で処理することができる、第1図のプロキシ・オブジェクト49のようなオブ ジェクトである。これには、メッセージを第1図の51などのターゲット・オブ ジェクトに転送することが含まれることが多い。プロキシは、オブジェクト指向 プログラミングで周知であり、DSOM(分散システムオブジェクト・モデル) によって使用される。詳細については、SOMobjects Publica tionsに含まれているSOMobjects Developer Too lkit User's Guide Version2.0(IBM Corporation 発行、Copyright 1994、O rder no.S96F−8649)を参照されたい。プロキシは、クライア ントからサーバに送られる要求メッセージを受け取り、サーバからクライアント に送られる戻りメッセージを受け取る。プロキシは、クライアントに宛てられた サーバからの非同期戻りメッセージを受け取ることはできない。プロキシは、一 般にサーバ内の単一のターゲット・オブジェクトに関連づけられ、単一のサーバ 内または複数のサーバ内の複数のオブジェクトに関連づけられることはない。 欧州特許出願第0518195号では、アプリケーション・プログラムにリン クされたライブラリ・ルーチンによって実施されるプラットフォーム独立アプリ ケーション・プログラミング・インタフェース(API)が開示されている。ア プリケーション・プログラムはそのAPIに合わせて特別に作成され、クライア ント・プロセスおよびサーバ・プロセスはAPIを明示的に知ってそれを使用し なければならない。この実施態様の問題点は、クライアントとサーバにリダイレ クトがわからないようにクライアント−サーバ・フローを代行受信する透過的な 機構を備えないことである。 PCT特許出願WO95/17718号では、オペレーティング・システムと 統合された、リモート・プロシージャ・コール(RPC)とのオブジェクト指向 インタフェースが開示されている。クライアント・プログラムとサーバ・プログ ラムは、互いに通信するときにRPCアプリケーション・プログラミング・イン タフェース(API)を利用するように 特別に作成される。この実施態様も、クライアントとサーバにリダイレクトがわ からないようにクライアント−サーバ・フローを代行受信する透過的機構を備え ない。 PC Magazine v13,n10(1994年5月31日発行、Ga gnon G)の「Building a better app、SQL s tyle」では、共通APIを多くの異なるAPIにマップすることができるよ うにする方法が開示されている。 DBMS,v5,n9(1992年8月発行、Roti S)の「SQL*N ET version2:client/server networking is easier with SQL*NET V2 and the M ultiProtocol Interchange」では、1つのAPIから もう1つのAPIに変換する中間構成要素が開示されている。この中間要素はそ れに対して要求される変換タスクを実行するように特別に作成される。この中間 要素がないと、その2つのAPIに合わせて作成された構成要素は通信すること ができない。発明の開示 したがって、本発明は、分散オブジェクト指向コンピュータ・システムにおい てクライアントとサーバの間で使用するブリッジを提供する。このブリッジは、 サーバのインタフェースに対応するクライアントとのインタフェースと、クライ アントのインタフェースに対応するサーバとのインターネットとを定義する。 第1の実施例では、クライアントとサーバは非同期的に動作し、ブリッジはク ライアントおよびサーバから継承によって導き出され、ブリッジはサーバから継 承されたメソッドを上書きして、要求を行うクライアントの名前を記録し、その 要求をサーバに転送し、ブリッジはクライアントから継承したメソッドを上書き してクライアントに応答パラメータを転送する。 第2の実施例では、クライアントとサーバは同期して動作し、ブリッジは継承 によってサーバから導き出され、ブリッジはサーバから継承されたメソッドを上 書きしてサーバ上のメソッドを呼び出し、クライアントに応答パラメータを転送 する。 好ましい実施例では、ブリッジはクライアントとサーバとの間の要求とその要 求に付随するデータの監視と記録を行う手段をさらに含む。また、好ましい実施 例では、ブリッジは、サーバ間の作業負荷分散を行う手段をさらに含む。そのよ うな作業負荷分散は、応答時間を測定し、測定された応答時間に応じてサーバに クライアント要求を送ることによって行うことができる。他の好ましい実施例で は、ブリッジはm個のクライアントとn個のサーバ(ただしnおよびmは2以上 の整数)に接続され、ブリッジはネットワーク接続数をn*m個からn+m個に 減らす。 分散オブジェクト指向コンピュータ・システムはCORBA準拠システムであ り、分散オブジェクト指向コンピュータ・システムはDSOMクラス・ライブラ リを使用することが好ましい。しかし、本発明はそのようなシステムでの応用や そのようなクラス・ライブラリの使用には限定されない。たとえば、分散オブジ ェクト指向システムはマイクロソフトのコンポーネント・オブジェクト・モデル (COM)に準拠していてもよい。また、分散オブジェクト環境としてSunS oftから、およびORBプラスとしてヒューレット・パッカードCo.から入 手可能な、分散オブジェクト管理機能(DOMF)を使用することもできる。 本発明は、分散クライアント−サーバ・コンピュータ・システムを稼働させる 方法であって、ブリッジのために、サーバのインタフェースに対応するクライア ントとのインタフェースを定義するステップと、クライアントのインタフェース に対応するサーバとのインタフェースを定義するステップとを含む方法も提供す る。 第1の実施例では、クライアントとサーバは非同期的に動作し、クライアント とのインタフェースを定義するステップが、クライアント・インタフェースをサ ーバから継承によって導き出すステップと、サーバから継承した方法を上書きし て、要求を行うクライアントの名前を記録し、その要求をサーバに転送するステ ップとを含み、サーバとのインタフェースを定義するステップが、前記サーバ・ インタフェースをク ライアントから継承によって導き出すステップと、前記クライアントから継承し たメソッドを上書きして前記クライアントに応答パラメータを転送するステップ とを含む。 第2の実施例では、クライアントとサーバは同期して動作し、クライアントと のインタフェースを定義するステップが、クライアント・インタフェースをサー バから継承によって導き出すステップと、サーバから継承したメソッドを上書き してサーバ上でメソッドを呼出し、クライアントに応答パラメータを転送するス テップとを含む。 本発明は、1つまたは複数のサーバと、1つまたは複数のクライアントと、前 述のブリッジとを含む分散オブジェクト指向コンピュータ・システムも提供する 。図面の簡単な説明 以下に本発明の実施例について例として添付図面を参照しながら説明する。 第1図は、クライアント/サーバ環境にある従来技術のオブジェクト要求ブロ ーカを示すブロック図である。 第2図は、本発明と共に使用するのに適した従来技術のコンピュータ・システ ムを示すブロック図である。 第3図は、非同期的に動作するように構成された従来技術のクライアントとサ ーバを含むシステムを、本発明のブリッジと共に示すブロック図である。 第4図は、従来技術のクライアントとサーバの非同期動作 を示す流れ図である。 第5図は、本発明による第3図のシステムの非同期動作を示す流れ図である。 第6図は、同期して動作するように構成された従来技術のクライアントとサー バを含むシステムを、本発明のブリッジと共に示すブロック図である。 第7図は、従来技術のクライアントとサーバの同期動作を示す流れ図である。 第8図は、本発明による第6図のシステムの同期動作を示す流れ図である。 第9図は、本発明によるブリッジを使用した複数のサーバ間の作業負荷分散を 示すブロック図である。 第10図は、複数のクライアントと複数のサーバの従来技術の接続を示すブロ ック図である。 第11図は、本発明によるブリッジを使用した複数のクライアントと複数のサ ーバとの接続を示すブロック図である。発明の詳細な説明 本発明を実施することができる適合するハードウェア 本発明は、いくつかの異なるオペレーティング・システム下にある様々なコン ピュータまたはコンピュータの集合上で実行することができる。コンピュータは 、たとえばパーソナル・コンピュータ、ミニ・コンピュータ、メインフレーム・ コンピュータ、または他のコンピュータの分散ネットワーク 内で稼働するコンピュータとすることができる。特定のコンピュータの選定はメ モリおよびディスクの必要記憶容量によってのみ限定されるが、本発明ではIB M PS/2シリーズのコンピュータを使用することができる(IBMはIBM Co rporationの登録商標であり、PS/2は商標である)。IBMのPS/2シリ ーズ・コンピュータの詳細については、Technical Referenc e Manual Personal System/2(Model 80) (IBM Corporation Part No.68X 2256 Or der Number S68X−2254)を参照されたい。IBM PS/ 2パーソナル・コンピュータで実行することができるオペレーティング・システ ムはIBMのOS/2 2.0であり、IBM OS/2 2.0オペレーティ ング・システムの詳細については、OS/2 2.0 Technical L ibrary,Programming Guide Vol.1,2,3 V ersion 2.00(Order Nos.10G6261,10G649 5、10G6494)を参照されたい(OS/2はIBM Corporationの商標であ る)。 代替実施例では、コンピュータ・システムはAIXオペレーティング・システ ム上で稼働するIBM RISC System/6000ラインのコンピュー タとすることができる(RISC System/6000およびAIXはIBM Corporationの商標である)。RISC System/60 00の様々なモデルについては、たとえばRISC System/6000, 7073および7016 POWERstation and POWERse rver Hardware Technical Reference(Or der No.SA23−2644−00)など、IBM Corporationの多くの刊 行物に記載されている(POWERstationおよびPOWERserve rはIBM Corporationの商標である)。AIXオペレーティング・システムにつ いては、General Concepts and Procedure−− AIX Version3 for RISC System/6000(Or der No.sc23−2202−00)およびIBM Corporationのその他の 刊行物に記載されている。 第2図には、システム・ユニット11と、キーボード12と、マウス13と、 表示装置14を含むコンピュータ10のブロック図が図示されている。システム ・ユニット11は、1本または複数のシステム・バス21を含み、システム・バ スには様々な構成要素が接続され、それによって様々な構成要素間の通信を行う 。マイクロプロセッサ22がシステム・バス21に接続され、やはりシステム・ バス21に接続された読取り専用メモリ(ROM)23とランダム・アクセス・ メモリ(RAM)24によってサポートされている。IBM PS/2シリーズ のコンピュータのマイクロプロセッサは、386または486マイクロプロセッ サを含むインテル・ ファミリのマイクロプロセッサのうちの1つである。しかし、68000、68 020、または68030マイクロプロセッサなどのモトローラのマイクロプロ セッサ・ファミリや、PowerPCチップなどのIBM製の様々な縮小命令セ ット・コンピュータ(RISC)マイクロプロセッサその他のマイクロプロセッ サ、またはヒューレット・パッカード、サン、モトローラおよびその他のマイク ロプロセッサなど、他のマイクロプロセッサもこの特定のコンピュータで使用す ることができる。 ROM23は、他のコードの他に、ライブ、キーボードなどの基本ハードウェ ア動作を制御する基本入出力システム(BIOS)を含む。RAM24は、オペ レーティング・システムとアプリケーション・プログラムがロードされるメイン ・メモリである。メモリ管理チップ25がシステム・バス21に接続され、RA M24とハードウェア・ディスク・ドライブ26とフロッピィ・ディスク・ドラ イブ27との間のデータの受渡しを含む直接メモリ・アクセス操作を制御する。 システム・バス21にはCD ROM32も結合され、たとえばマルチメディア ・プログラムやプレゼンテーションなど大量のデータを記憶するために使用され る。 このシステム・バス21には、様々な入出力コントローラ、キーボード・コン トローラ28、マウス・コントローラ29、ビデオ・コントローラ30、および オーディオ・コントローラ31も接続される。当然ながら、キーボード・コント ローラ28はキーボード12のハードウェア・インタフェース、マウス・コント ローラ29はマウス13のハードウェア・インタフェース、ビデオ・コントロー ラ30は表示装置14のハードウェア・インタフェース、オーディオ・コントロ ーラ31はスピーカ15aおよび15bのハードウェア・インタフェース機能を 備える。トークン・リンク・アダプタなどの入出力コントローラ40によって、 他の同様に構成されたデータ処理システムとネットワーク46を介して通信する ことができる。 本発明の好ましい実施例の1つでは、第1図を参照しながら前述した命令48 〜52のセットが、大体前述のように構成された1つまたは複数のコンピュータ ・システムのランダム・アクセス・メモリ24に入っている。この1組の命令は 、コンピュータ・システムが必要とするまで、たとえばハードウェア・ディスク ・ドライブ26、または最終的にCD−ROM32で使用される光ディスクまた は最終的にフロッピィ・ディスク・ドライブ27で使用されるフロッピィ・ディ スクなどの取り外し可能メモリなど、別のコンピュータ・メモリに記憶すること ができる。ORBを使用して相互に結合されるメモリ・アドレス空間は、ネット ワーク46を介して通信する別々のシステムに存在することもでき、第2図に示 すように1つのコンピュータ・システムのメモリ内の2つ以上のアドレス空間5 3、54とすることもできる。 ブリッジ 第3図を参照すると、本発明ではクライアント53とサーバ54の間にブリッ ジ300を設ける。このブリッジ300の目的は、サーバ54に宛てられたクラ イアント53からの要求を受け取り、その要求をサーバ54に転送し、クライア ント53に宛てられたサーバ54からの応答を受け取り、その応答をクライアン ト53に転送することである。ブリッジ300は、サーバ54のインタフェース に対応するクライアント53とのインタフェースと、クライアント53のインタ フェースに対応するサーバ54とのインタフェースとを提供する。このようにし て、クライアント53とサーバ54のいずれもブリッジ300の存在を判断する ことができず、両者ともブリッジが存在しないかのように動作する。 本発明の実施例について説明する。1つは非同期環境用で稼働し、1つは同期 環境で稼働するものである。非同期環境(第5図に示す)では、クライアント5 3はサーバ54からの応答を待つ間、他の処理を続ける。同期環境(第8図に示 す)では、クライアント53はサーバ54からの応答を待ってから処理を続ける 。 非同期環境 第3図を参照すると、非同期モードで動作するクライアントとサーバと共に使 用するブリッジ300の構成要素が含まれている。クライアント53、ブリッジ 300、およびサー バ54はすべて、DSOM用語で「サーバ・オブジェクト」と呼ばれるものを備 える。これらはそれぞれ、「クライアントのサーバ・オブジェクト」404、「 ブリッジのサーバ・オブジェクト」301、および「サーバのサーバ・オブジェ クト」501として図示されている。これらのオブジェクトを、サーバが実行す る機能やサーバ自体と混同してはならない。サーバ・オブジェクトとは、サーバ 内のオブジェクトを管理してクライアント・アプリケーションがサーバ内のオブ ジェクトの作成と破棄を行うことができるようにするオブジェクトである。サー バ・オブジェクトは、サーバ内のどのオブジェクトが要求を処理すべきかを識別 し、受信したそのサーバに対するそのような要求を、識別したオブジェクトにデ ィスパッチして実行させる。 クライアント53は、クライアントのオブジェクト」403と呼ばれる少なく とも1つのオブジェクトを含む。このオブジェクトは、クライアントにおいてサ ーバ54に対してサービスの提供を求める要求のイニシエータである。クライア ント・アプリケーション(図示せず)が「クライアントのオブジェクト」403 に対して呼び出しを行い、データに対する操作を実行する。これらの操作は、「 クライアントのオブジェクト」403自体内でローカルに行われるか、またはサ ーバ54にサービスを要求する「クライアントのオブジェクト」403を使用し てリモートで行われる。サーバ54は、「サーバのオブジェクト」503(サー バ・オブジェクトと 混同してはならない)と呼ばれる少なくとも1つのオブジェクトを含む。これは 、第1図および第2図を参照しながら前述したターゲット・オブジェクトに相当 する。これは、「クライアントのオブジェクト」403によって要求されたサー ビスを実際に提供するオブジェクトである。ブリッジ300は、「ブリッジのオ ブジェクト」304と呼ぶオブジェクトを含み、ブリッジ自体の機能を備える。 プロキシ・オブジェクト クライアント53、ブリッジ300、およびサーバ54はすべて、DSOM用 語でプロキシ・オブジェクトと呼ばれるものを備える。プロキシ・オブジェクト とは、リモート・ターゲット・オブジェクトの代わりをするローカルの代理であ る。プロキシ・オブジェクトは、ターゲット・オブジェクトのインタフェースを 継承し、それによって同じメソッドに応答する。プロキシ・オブジェクト上で呼 び出されたメソッドはローカルでは実行されず、実ターゲット・オブジェクトに 転送されて実行される。クライアントで稼働しているプログラムは、そのプログ ラムがそれに対して操作を行うサーバ内の各リモート・オブジェクトのローカル ・プロキシ・オブジェクトをクライアント内に常に有する。プロキシ・オブジェ クトはその内部に、ターゲット・オブジェクトが入っているサーバ内の記憶場所 を指すポインタを含む。プロキシ・オブジェクトは、リモート・オブジェクトに 対するメソッドを呼 び出すようにリモート・サーバに対して要求が行われると、DSOM実行時環境 によって作成される。 クライアント53は、「ブリッジのサーバ・オブジェクト」301の代わりを するローカルにおける代理である「ブリッジのサーバ・プロキシ」(401)と 呼ぶプロキシ・オブジェクトを含む。クライアントは、これがサービスを提供す るサーバ内の「サーバのサーバ・オブジェクト]501の代理をするものとみな す。同様に、ブリッジ300は、「サーバのサーバ・オブジェクト」501のロ ーカルにおける代理である「サーバのサーバ・プロキシ」302と呼ぶプロキシ ・オブジェクトを含む。前述のように「サーバ・オブジェクト」とは、サーバ内 のオブジェクトを管理するオブジェクトである。 クライアント53は、「ブリッジのオブジェクト」304のローカルにおける 代理である「ブリッジのオブジェクト・プロキシ」402と呼ぶプロキシ・オブ ジェクトも含む。クライアントはこの代理を、サービスを提供するサーバ内のオ ブジェクト503であるとみなす。同様に、ブリッジ300は、「サーバのオブ ジェクト」503のローカルの代理である「サーバの・オブジェクト・プロキシ 」303と呼ぶプロキシ・オブジェクトを含む。これらのプロキシは、クライア ント53によって開始されるクライアント53とサーバ54との間の通信に使用 される。非同期システムでは、サーバ54がクライアント53宛ての応答を持っ ている場合、通信は サーバ54によっても開始される。これらの通信は、サーバ54がブリッジ30 0と通信することができるようにするサーバ内にある「ブリッジのオブジェクト ・プロキシ」502と、ブリッジ300がクライアント53と通信することがで きるようにするブリッジ300内にある「クライアントのオブジェクト・プロキ シ」305とを使用して行われる。 上記の説明からわかるように、第3図でクライアント53、ブリッジ300、 およびサーバ54を示す各ブロックの上部にあるオブジェクトとプロキシ・オブ ジェクトは、クライアントとブリッジによるオブジェクトの作成、破棄、および 探索に使用される。第3図でクライアント53、ブリッジ300、およびサーバ 54を示す各ブロックの下部にあるオブジェクトとプロキシ・オブジェクトは、 クライアント53とブリッジ300とサーバ54との間における通信プロセスに 使用される。 第4図に、非同期環境における従来技術のクライアントと従来技術のサーバと の間で従来技術のネットワークを介して行われる対話を示す。非同期環境では、 クライアントはサーバに対してサービスを提供するように求める要求を行うこと によってサーバとの通信を開始する。サーバはその要求に肯定応答し、クライア ントは他の処理を続ける。サーバは遅延後に要求を処理することができ、サーバ もその遅延の間に他の処理を実行することができる。サーバは要求を処理すると 、クライアントに応答を送ることによってクライアントとの 別の通信を開始する。この通信は、「サーバ」が「クライアント」に対して、前 の要求からの応答を受け入れるように求める要求を事実上行うことによって開始 される。このような状況では、「サーバ」と「クライアント」が逆の役割を持っ ていると見なすことができ、サーバはクライアントに対して応答を受け入れるよ うに要求する。非同期的に動作している場合にクライアントが「サーバ・オブジ ェクト」を必要とするのはこのためである。 ステップ310で、クライアントはサーバに対してサービスの提供を求める要 求を行う。この要求はステップ320でネットワークを介してサーバに送信され る。サーバはステップ322でクライアントに即時肯定応答を送信する。サーバ はステップ330でサービス要求を受け入れ、ステップ332でサービス要求を 処理する。サーバが要求を処理している間、クライアントはステップ312で他 の処理を行っている。サーバも、この要求を処理する前に他の要求を処理するこ とができる。ステップ332で要求の処理が完了すると、ステップ334でサー バはクライアントに応答324を送る。この応答はステップ314で受信され、 クライアントは処理を続ける。 第4図の非同期システムにブリッジを挿入した場合に行われる対話を第5図に 示す。ステップ310、312、および314での対話は第4図と同じであり、 ステップ330、332、および334でのサーバの対話も同じである。要求3 20、即時応答322、および応答324は、それに対応するクライアントとブ リッジとの間と、ブリッジとサーバとの間の応答に分割される。以下に、これら の対話に応答するブリッジの動作について述べる。ステップ310で要求320 Aがクライアントからブリッジに送られる。ブリッジはステップ410でクライ アントに即時肯定応答322Aを送り、ブリッジはサービス要求320Aを受け 入れる。ブリッジは要求を処理する代わりに、ステップ412でクライアント名 を記録し、ステップ414で別途処理があればそれを実行する。 この別途処理は、クライアントからの要求またはそれに付随するデータに対し て実行することが望ましいものであればどのような別途処理でもよい。このよう な処理は、要求またはそれに付随するデータに変更を加えることもあれば、その まま変えない場合もある。このような処理の例としては次のような処理がある。 1.要求で詳述されているメソッドが、要求に付随するデータと等しいパラメー タを使用して呼び出されたことをログする。 2.サーバ間の作業負荷分散を行うためにいくつかのサーバのうちのどのサーバ にこの要求を送るべきかを判断する処理を行い、その結果を使用して要求の送り 先を決める。 3.要求を検査してどのサーバをクライアントが要求の送信先とみなしていたか を調べ、それからブリッジによってその サーバに送る。 ステップ416で、ブリッジはサービス要求320Bをサーバに転送する。サ ーバはステップ330で即時肯定応答322Bをブリッジに送る。サーバが要求 を処理している間、ブリッジはステップ420で他の処理を実行している。ステ ップ332でサーバによる要求の処理が完了すると、サーバはステップ334で ブリッジに応答324Aを送る。この応答はステップ430で受け取られ、サー バからクライアントに返されるパラメータのログなどの別途処理があればそれが ステップ432でブリッジによって行われる。ブリッジは次にステップ434で クライアントに応答324Bを転送する。 ブリッジ(第3図の300)はクライアント・オブジェクトおよびサーバ・オ ブジェクトから継承によって導き出される。これは、クライアント・オブジェク トとサーバ・オブジェクトの両方のインタフェース(すなわち全ての属性および メソッド)がブリッジによって継承されることを意味する。例1に、非同期シス テムの場合にブリッジがIDL言語でどのように定義されるかを示す。 例1−非同期ブリッジ・クラスの定義 同期環境 第6図を参照すると、同期モードで動作するクライアント53とサーバ54と 共に使用するブリッジ300の構成要素が含まれている。ブリッジ300とサー バ54は「サーバ・オブジェクト」を含む。これらは、それぞれ「ブリッジのサ ーバ・オブジェクト」301と「サーバのサーバ・オブジェクト」501である 。サーバ54は、「サーバのオブジェクト」503(サーバ・オブジェクトと混 同してはならない)と呼ぶ少なくとも1つのオブジェクトを含む。これが、クラ イアントによって要求されたサービスを実際に提供するオブジェクトである。ブ リッジ300は、ブリッジ自体の機能を備える「ブリッジのオブジェクト」30 4と呼ぶオブジェクトを含む。 クライアント53は、「ブリッジのサーバ・オブジェクト」301のローカル における代理である「ブリッジのサーバ・プロキシ」401と呼ぶプロキシ・オ ブジェクトを含む。クライアントは、これがサービスを提供するサーバ内の「サ ーバのサーバ・オブジェクト」501の代わりをするとみなす。同様に、ブリッ ジ300は、「サーバのサーバ・オブジェクト」501のローカルにおける代理 である「サーバのサーバ・プロキシ」302と呼ぶプロキシ・オブジェクトを含 む。前述のように、「サーバ・オブジェクト」とはサーバ内のオブジェクトを管 理するオブジェクトである。 クライアント53は、「ブリッジのオブジェクト」304のローカルの代理で ある「ブリッジのオブジェクト・プロキシ」402と呼ぶプロキシ・オブジェク トも含む。クライアントは、これがサービスを提供するサーバ内の「オブジェク ト」503の代わりをするとみなす。同様に、ブリッジ300は、「サーバのオ ブジェクト」503のローカルにおける代理である「サーバのオブジェクト・プ ロキシ」303と呼ぶプロキシ・オブジェクトを含む。これらのプロキシは、ク ライアント53によって開始されるクライアント53とサーバ54との間の通信 で使用される。 同期システムでは、クライアント53によって通信が開始される。これらの通 信は、クライアント53がブリッジ300と通信することができるようにするク ライアント53内にある「ブリッジのオブジェクト・プロキシ」402と、ブリ ッジ300がサーバ54と通信することができるようにするブリッジ300内に ある「サーバのオブジェクト・プロキシ」303とを使用して行われる。 第6図からわかるように、クライアント53、ブリッジ300、およびサーバ 54を示す各ブロックの上部にあるオブジェクトとプロキシ・オブジェクトは、 クライアントとブリッジによるオブジェクトの作成、破棄、および探索に使用さ れる。クライアント53、ブリッジ300、およびサーバ54を示す各ブロック の下部にあるオブジェクトとプロキシ・オブジェクトは、クライアント53とブ リッジ300とサーバ54との間の通信処理に使用される。 第7図に、同期環境において従来技術のクライアントと従来技術のサーバとの 間で従来技術のネットワークを介して行われる対話を示す。同期環境では、クラ イアントがサーバにサービスの提供を求める要求を行うことによってサーバとの 通信を開始する。サーバはその要求を処理し、要求の処理からの単純な戻りによ ってクライアントにその結果を返す。サーバはこの応答を戻すためにクライアン トとの通信を開始しない。クライアント53は応答を、サーバ54上で呼び出し たメソッドからの戻りパラメータを介して受け取るだけである。 従来技術のシステムでは、第4図を参照しながら前述した同期環境と非同期環 境における動作には相違点が2つある。第1の相違は、ステップ310でクライ アントがサービスを 求める要求を行った後、クライアントはステップ312で他の処理を実行せず、 ステップ510でサーバからの応答を待つことである。第2の相違点は、サーバ がステップ322でクライアントに対して即時肯定応答を送らないことである。 それ以外は、第7図に示す番号付きのステップは、第4図の対応する番号の付い たステップと同じである。 第7図の同期システムにブリッジを挿入した場合に行われる対話を第8図に示 す。ステップ310および314でのクライアントの対話は第7図と同じであり 、ステップ330、332、および334でのサーバの対話も同じである。要求 320と応答324は、クライアントとブリッジとの間と、ブリッジとサーバと の間の対応する応答に分割される。以下に、これらの対話に応答するブリッジの 動作について述べる。 ステップ410で、ブリッジはサービス要求320Aを受け入れる。ブリッジ はこの要求を処理する代わりに、ステップ412でクライアント名を記録し、別 途処理があればそれをステップ414で行う。この別途処理には、非同期環境に 関連して第5図を参照しながら前述した別途処理項目の一部または全部が含まれ る。ステップ416で、ブリッジはサービス要求をサーバに転送する。サーバが 要求を処理している間、ブリッジはステップ610でサーバからの応答を待つ。 ステップ332でサーバによる要求の処理が完了すると、サーバはステップ33 4でブリッジに応答324Aを送る。こ の応答はステップ430で受け取られ、サーバからクライアントに返されたパラ メータのログなどの別途処理があればそれがステップ432でブリッジによって 行われる。ブリッジ300は次にステップ434でクライアントに応答324B を返す。 上述の説明からわかるように、クライアントはブリッジと同期して動作し、し たがってクライアントがブリッジから見るインタフェースは、クライアントがサ ーバと直接通信している場合と同じである。ブリッジはサーバと同期して動作し 、したがってサーバがブリッジから見るインタフェースはサーバがクライアント と直接通信している場合と同じである。 ブリッジはサーバのみから導き出される。クライアント53はサーバ54上で メソッドを呼び出し、それと同じメソッド内の戻りパラメータを介して応答を受 け取るだけなので、明示的なクライアント・オブジェクトは不要である。別個の 通信がサーバ54によって開始されることはない。同期システムの場合のオブジ ェクト300の定義を例2に示す。 例2−同期ブリッジ・クラスの定義 以上、非同期動作と同期動作の両方の場合について、ブリッジの構造と定義を 定義した。いずれかの動作方法で使用するようにブリッジを定義したら、定義し たブリッジをクライアントとサーバの間に透過的に挿入し、それによってサーバ 作成要求が行われた場合にサーバ・オブジェクトの全インタフェースを備えたブ リッジが代わりに作成されるようにする必要がある。 クライアント53とサーバはそれぞれのクライアント・クラスとサーバ・クラ スのインスタンスを含む。リモート・オブジェクトの検索、リモート・オブジェ クトのインスタンスの作成、およびリモート・オブジェクトに対するメソッドの 呼出しに使用可能な方法は様々ある。 典型的な従来技術の方法について、第1図に戻って参照しながら以下に説明す る。 1.DSOMオブジェクト・マネージャ(SOMD ObjectMgr)(5 0にある)が、クライアントが初期設定 されたときに作成されているか、または、クライアント53でオブジェクト要求 ブローカ50の一部として使用可能なSOMD Init()関数を呼び出すこ とによってこの時点で作成しなければならない。 2.クライアント53と共に使用する適切なオブジェクト・クラスのサーバ54 を探し出すために、クライアント53はSOMDObject Mgrに対して メソッドを実行する。SOMDObject Mgrは、リモート・サーバ54 上の「サーバ・オブジェクト」(52にある)のローカルにおける代理として、 クライアント53内にプロキシ・オブジェクト(50にある)を作成する。リモ ート・サーバ54内には「サーバ・オブジェクト」はまだ存在しないことに留意 されたい。 3.クライアント53はサーバ・プロキシ・オブジェクトに対してSomdCr eateObj()メソッド呼出しを出す。このメソッド呼出しにはパラメータ として、クライアントが作成したいターゲット・オブジェクト51のクラスが含 まれる。リモート・サーバとの通信が確立され、リモート・サーバ54上で適切 なタラスの「サーバ・オブジェクト」(図示せず)が作成される。「サーバ・オ ブジェクト」(図示せず)が作成されると、その「サーバ・オブジェクト」は要 求されたクラスのターゲット・オブジェクト51をサーバ54自体内に作成する 。戻りパラメータの一部として、クライアント53に情報が供給され、ターゲッ ト・オブジェクト5 1のプロキシ・オブジェクト49を作成することができるようにする。 4.これでクライアントはそのローカル・プロキシ・オブジェクト49に対して メソッド呼出しを出すことができるようになり、それらのメソッドがターゲット ・オブジェクト51で実行され、その結果がクライアント53に返される。 「サーバ・オブジェクト」のクラスが複数ある場合がある。たとえば、プリン ト・サービスを提供するために使用されるサーバのクラスと、ファイル記憶サー ビスのためのクラスと、通信サービスのためのクラスがある場合がある。従来の 技術では、これらのクラスは本発明の支援なしに互いに通信する。 以下に、ブリッジをクライアントとサーバの間に透過的に挿入する方法につい て第3図を参照しなら説明する。 従来技術の各「サーバ・オブジェクト」クラスに対応するブリッジ・クラスを 作成する。「サーバのサーバ・オブジェクト」501は従来技術の「サーバ・オ ブジェクト」クラスのインスタンスである。「ブリッジのサーバ・オブジェクト 」301はデフォルト・サーバ・クラスのサブクラスである。上記の例では、プ リント・サービスの提供に使用するサーバのブリッジ・クラスと、ファイル記憶 サービスに使用されるブリッジ・クラスと、通信サービスに使用されるブリッジ ・クラスとがある。 各ブリッジ・サーバ・クラスの定義内の「サーバ・オブジ ェクト」(サーバ・クラスから継承される)を修正し、ブリッジ・サーバ・クラ スのメンバとして「ブリッジのサーバ・オブジェクト」301が作成されるとそ れにその修正が組み込まれるようにする。これらの修正はターゲット・オブジェ クトを作成するメソッドと、「サーバ・オブジェクト」が受け取ったメソッドを サーバ内のターゲット・オブジェクトにディスパッチするメソッドに加えられる 。 「サーバ・オブジェクト」503(ターゲット・オブジェクト)を作成する修 正されたメソッドは、サーバ内に「サーバのオブジェクト」503を作成するこ とを求めるクライアントからの要求を受け取って、「ブリッジ・オブジェクト」 304をその場所に作成する。 「ブリッジのサーバ・オブジェクト」301が受け取ったメソッドをサーバ内 の「サーバのオブジェクト」503(ターゲット・オブジェクト)にディスパッ チする修正されたメソッドは、単にクライアント名を記録するだけで(第5図の ステップ412)、別途処理(第5図のステップ414)を行い、メソッドをオ ブジェクトにディスパッチする元のディスパッチ・メソッドを呼び出す。 前述の実施例の適用 第9図を参照すると、前述の本発明のブリッジ300を使用して、1つのクラ イアント53が複数のサーバ54A〜54Dにサービスを要求することができる 。クライアント53 は、要求が異なるサーバ54Aから54Dで実行されていることがわからない。 ブリッジ300は、要求を複数のサーバ54A〜54Dのうちのどのサーバに宛 てて送るべきかを決定する。 クライアント53でもサーバ54A〜54Dでの追加のプログラミングを必要 とせずに、複数のサーバ54A〜54Dのそれぞれの間における作業負荷分散を 実現することができる。作業負荷分散を実現する実施例では、ブリッジ300は 「ラウンドロビン」アルゴリズムを使用する。このアルゴリズムでは、新しいク ライアント要求が出されるたびに次のサーバ54A〜54Dに順に送られる。作 業負荷分散を実現する他の実施例では、各サーバ54A〜54Dから入手した応 答時間を測定し、当業者に周知のより高度なアルゴリズムを使用して各サーバ5 4A〜54D間で作業負荷を分散させる。この2つの実施例は両方とも、サーバ 54A〜54Dとクライアント53のいずれでもコードに修正をまったく加えず に実現することができる。 第10図に、従来技術の方式で一緒に接続された3個のサーバ54A〜54C に接続された3個のクライアント53A〜53Cを示す。各クライアント53A 〜53Cが各サーバ54A〜54Cへの接続901〜909を有する。 第11図を参照すると、前述の本発明のブリッジ300を使用することによっ て、複数のサーバ54A〜54Cに対してサービスを要求する複数のクライアン ト53A〜53Cが 存在することが可能であり、その際、異なるサーバ54A〜54C上で要求が実 行されていることやサーバ54A〜54Cが他のクライアント53A〜53Cの ための要求を処理していることは、クライアント53A〜53Cのいずれにもわ からない。ブリッジ300は、各クライアント53A〜54Cからの各要求を、 複数のサーバ54A〜54Cのうちのどのサーバに宛てて送るかを決定する。 すべての要求をブリッジ300を介して経路指定することによって、ネットワ ーク内の接続が削減される。より一般的な態様では、n個のクライアント53と m個のサーバ54を有するシステムにおいて、接続数がn*m個からn+m個に 減少する。
【手続補正書】 【提出日】1998年3月11日 【補正内容】 請求の範囲 1.分散オブジェクト指向コンピュータ・システムにおいてクライアント(53 )とサーバ(54)との間で使用するブリッジ(300)であって、サーバのイ ンタフェースに対応するクライアント・アドレス空間内にあるプロキシ・オブジ ェクトとのインタフェースと、クライアント・アドレス空間内にあるプロキシオ ブジェクトのインタフェースに対応するサーバとのインタフェースとを有し、ク ライアント・アドレス空間内にあるプロキシ・オブジェクトとサーバとの間に透 過的に挿入されたブリッジ(300)。 2.前記クライアント(53)と前記サーバ(54)とが非同期的に動作し、 前記ブリッジがクライアントおよびサーバから継承によって導き出され、 前記ブリッジが前記サーバから継承されたメソッドを上書きして要求を行うク ライアントの名前を記録し、要求を前記サーバに転送し、 前記ブリッジが前記クライアントから継承したメソッドを上書きして前記クラ イアントに応答パラメータを転送する、請求項1に記載のブリッジ(300)。 3.前記クライアント(53)と前記サーバ(54)とが同期的に動作し、 前記ブリッジがサーバから継承によって導き出され、 前記ブリッジが前記サーバから継承したメソッドを上書きして前記サーバ上の 前記メソッドを呼出し、前記クライアントに応答パラメータを返す、請求項1に 記載のブリッジ(300)。 4.クライアント(53)とサーバ(54)の間の要求と前記要求に付随するデ ータの監視とログを行う手段をさらに含む、請求項1に記載のブリッジ。 5.サーバ(54)間の作業負荷分散を行う手段をさらに含む、請求項1に記載 のブリッジ(300)。 6.作業負荷分散を行う前記手段が応答時間を測定し、前記測定された応答時間 に応答してクライアント(53)の要求をサーバ(54)に宛てて送る、請求項 5に記載のブリッジ(300)。 7.前記分散オブジェクト指向コンピュータ・システムがm個のクライアント( 53)とn個のサーバ(54)(ただし、nおよびmは2以上の整数である)と を含み、前記m個のクライアントの各クライアントが前記m個のサーバの各サー バに対してサービスを要求することができ、 前記ブリッジが前記m個のクライアントと前記n個のサーバとに接続され、 それによって前記ブリッジが前記m個のクライアントと前記n個のサーバとの 間の接続数をn*m個からn+m個に減少させる、請求項1に記載のブリッジ( 300)。 8.オブジェクト間のインタフェースがCORBAインタフェースである、請求 項1ないし7のいずれか一項に記載のブリッジ(300)。 9.前記分散オブジェクト指向コンピュータ・システムがDSOMクラス・ライ ブラリを使用する、請求項8に記載のブリッジ(300)。 10.分散クライアント−サーバコンピュータ・システムを動作させる方法であ って、 クライアント・アドレス空間内にあるプロキシ・オブジェクト(53)とのイ ンタフェースがサーバ(54)のインタフェースに対応し、サーバとのインタフ ェースがクライアント・アドレス空間内にあるプロキシ・オブジェクトのインタ フェースに対応するように、ブリッジ(300)のためにインタフェースを定義 するステップと、 前記ブリッジをクライアント・アドレス空間内にある前記プロキシ・オブジェ クトと前記サーバの間に透過的に挿入するステップとを含む方法。 11.前記クライアント(53)と前記サーバ(54)とが非同期的に動作し、 インタフェースを定義する前記ステップが、 クライアントとの前記インタフェースをサーバから継承によって導き出すステ ップと、 前記サーバから継承したメソッドを上書きして、要求を行うクライアントの名 前を記録し、前記サーバに要求を転送す るステップと、 サーバとの前記インタフェースをクライアントから継承によって導き出すステ ップと、 前記クライアントから継承したメソッドを上書きして前記クライアントに応答 パラメータを転送するステップとを含む、請求項11に記載の方法。 12.前記クライアント(53)と前記サーバ(54)が同期的に動作し、イン タフェースを定義する前記ステップが、 前記インタフェースをサーバから継承によって導き出すステップと、 前記サーバから継承したメソッドを上書きして、前記サーバ上で前記メソッド を呼出し、前記クライアントに応答パラメータを返すステップとを含む、請求項 11に記載の方法。 13.1つまたは複数のサーバと、1つまたは複数のクライアント(53)と、 前記請求項1ないし7のいずれか一項に記載のブリッジ(300)とを含む分散 オブジェクト指向コンピュータ・システム。

Claims (1)

  1. 【特許請求の範囲】 1.分散オブジェクト指向コンピュータ・システムにおいてクライアント(53 )とサーバ(54)の間で使用するブリッジ(300)であって、サーバのイン タフェースに対応するクライアントとのインタフェースとクライアントのインタ フェースに対応するサーバとのインタフェースとを有し、クライアントとサーバ の間に透過的に挿入されるブリッジ。 2.前記クライアント(53)と前記サーバ(54)とが非同期的に動作し、 前記ブリッジがクライアントおよびサーバから継承によって導き出され、 前記ブリッジが前記サーバから継承されたメソッドを上書きして要求を行うク ライアントの名前を記録し、要求を前記サーバに転送し、 前記ブリッジが前記クライアントから継承したメソッドを上書きして前記クラ イアントに応答パラメータを転送する、請求項1に記載のブリッジ(300)。 3.前記クライアント(53)と前記サーバ(54)とが同期的に動作し、 前記ブリッジがサーバから継承によって導き出され、 前記ブリッジが前記サーバから継承したメソッドを上書きして前記サーバ上の 前記メソッドを呼出し、前記クライアントに応答パラメータを返す、請求項1に 記載のブリッジ(3 00)。 4.クライアント(53)とサーバ(54)の間の要求と前記要求に付随するデ ータの監視とログを行う手段をさらに含む、請求項1に記載のブリッジ。 5.サーバ(54)間の作業負荷分散を行う手段をさらに含む、請求項1に記載 のブリッジ(300)。 6.作業負荷分散を行う前記手段が応答時間を測定し、前記測定された応答時間 に応答してクライアント(53)の要求をサーバ(54)に宛てて送る、請求項 5に記載のブリッジ(300)。 7.前記分散オブジェクト指向コンピュータ・システムがm個のクライアント( 53)とn個のサーバ(54)(ただし、nおよびmは2以上の整数である)と を含み、前記m個のクライアントの各クライアントが前記m個のサーバの各サー バに対してサービスを要求することができ、 前記ブリッジが前記m個のクライアントと前記n個のサーバとに接続され、 それによって前記ブリッジが前記m個のクライアントと前記n個のサーバとの 間の接続数をn*m個からn+m個に減少させる、請求項1に記載のブリッジ( 300)。 8.前記分散オブジェクト指向コンピュータ・システムがCORBA準拠システ ムである、請求項1ないし7のいずれか一項に記載のブリッジ(300)。 9.前記分散オブジェクト指向コンピュータ・システムがD SOMクラス・ライブラリを使用する、請求項8に記載のブリッジ(300)。 10.分散クライアント−サーバ・コンピュータ・システムを動作させる方法で あって、 クライアント(53)とのインタフェースがサーバ(54)のインタフェース に対応し、サーバとのインタフェースがクライアントのインタフェースに対応す るように、ブリッジ(300)のためにインタフェースを定義するステップと、 前記ブリッジを前記クライアントと前記サーバの間に透過的に挿入するステッ プとを含む方法。 11.前記クライアント(53)と前記サーバ(54)とが非同期的に動作し、 インタフェースを定義する前記ステップが、 クライアントとの前記インタフェースをサーバから継承によって導き出すステ ップと、 前記サーバから継承したメソッドを上書きして、要求を行うクライアントの名 前を記録し、前記サーバに要求を転送するステップと、 サーバとの前記インタフェースをクライアントから継承によって導き出すステ ップと、 前記クライアントから継承したメソッドを上書きして前記クライアントに応答 パラメータを転送するステップとを含む、請求項11に記載の方法。 12.前記クライアント(53)と前記サーバ(54)が同 期的に動作し、インタフェースを定義する前記ステップが、 前記インタフェースをサーバから継承によって導き出すステップと、 前記サーバから継承したメソッドを上書きして、前記サーバ上で前記メソッド を呼出し、前記クライアントに応答パラメータを返すステップとを含む、請求項 11に記載の方法。 13.1つまたは複数のサーバと、1つまたは複数のクライアント(53)と、 前記請求項1ないし7のいずれか一項に記載のブリッジ(300)とを含む分散 オブジェクト指向コンピュータ・システム。
JP51173197A 1995-09-15 1996-02-07 クライアント−サーバ環境用ブリッジ Expired - Fee Related JP3605416B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB9518871.0 1995-09-15
GB9518871A GB2305270A (en) 1995-09-15 1995-09-15 Bridge for a client-server environment
PCT/GB1996/000247 WO1997010546A1 (en) 1995-09-15 1996-02-07 Bridge for a client-server environment

Publications (2)

Publication Number Publication Date
JPH10511794A true JPH10511794A (ja) 1998-11-10
JP3605416B2 JP3605416B2 (ja) 2004-12-22

Family

ID=10780751

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51173197A Expired - Fee Related JP3605416B2 (ja) 1995-09-15 1996-02-07 クライアント−サーバ環境用ブリッジ

Country Status (6)

Country Link
US (1) US5862328A (ja)
EP (1) EP0850446B1 (ja)
JP (1) JP3605416B2 (ja)
DE (1) DE69606184T2 (ja)
GB (1) GB2305270A (ja)
WO (1) WO1997010546A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11338720A (ja) * 1998-05-28 1999-12-10 Nec Software Ltd クライアントサーバ間通信制御方法及び装置及び記録媒体
JP2005505831A (ja) * 2001-10-05 2005-02-24 ビーイーエイ システムズ, インコーポレイテッド Javaサーブレットを非同期メッセージと統合するための方法
US7633640B2 (en) 1999-01-29 2009-12-15 Canon Kabushiki Kaisha Network print system, and information processing apparatus and its control method
US8166095B2 (en) 2000-07-27 2012-04-24 Oracle International Corporation System and method for achieving scalability in domain computing
US8171074B2 (en) 2005-10-25 2012-05-01 Canon Kabushiki Kaisha Web service system, schedule execution apparatus and control method thereof

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052718A (en) * 1997-01-07 2000-04-18 Sightpath, Inc Replica routing
NZ337772A (en) 1997-03-12 2001-09-28 Nomadix Inc Nomadic translator or router
US6157960A (en) * 1997-05-07 2000-12-05 International Business Machines Corporation Technique for programmatically creating distributed object programs
CA2204971A1 (en) * 1997-05-09 1998-11-09 Michael Cheng Uniform access to and interchange between objects employing a plurality of access methods
CN100380374C (zh) * 1997-07-25 2008-04-09 西门子公司 同步描述网络内容的方法,同步服务器和客户计算机的客户机
EP0911727A3 (en) * 1997-10-24 2002-08-14 Sun Microsystems, Inc. A method, apparatus, system and program product for a client-server environment
GB9725742D0 (en) * 1997-12-04 1998-02-04 Hewlett Packard Co Object gateway
US6633922B1 (en) * 1997-12-15 2003-10-14 International Business Machines Corporation Object access mechanism that dynamically switches between multiple distributed access models
US6003083A (en) * 1998-02-19 1999-12-14 International Business Machines Corporation Workload management amongst server objects in a client/server network with distributed objects
US6490623B1 (en) * 1998-08-24 2002-12-03 International Business Machines Corporation System, method and computer readable code for encapsulating system, language and device independent communications socket functionality in a lightweight uniform communications object model
FR2784479B1 (fr) * 1998-10-09 2000-11-17 Bull Cp8 Protocole d'echange interne de donnees entre applications d'un objet portatif multi-applications et objet portatif multi-applications correspondant
US20040154027A1 (en) * 1998-10-14 2004-08-05 Jean-Jacques Vandewalle Method and means for managing communications between local and remote objects in an object oriented client server system in which a client application invokes a local object as a proxy for a remote object on the server
US6356930B2 (en) * 1998-10-16 2002-03-12 Silverstream Software, Inc. Connection concentrator for distributed object systems
US8266266B2 (en) * 1998-12-08 2012-09-11 Nomadix, Inc. Systems and methods for providing dynamic network authorization, authentication and accounting
US8713641B1 (en) 1998-12-08 2014-04-29 Nomadix, Inc. Systems and methods for authorizing, authenticating and accounting users having transparent computer access to a network using a gateway device
US7194554B1 (en) 1998-12-08 2007-03-20 Nomadix, Inc. Systems and methods for providing dynamic network authorization authentication and accounting
DE19910345A1 (de) * 1999-03-09 2000-09-21 Siemens Ag Verfahren zur Nachrichtenübertragung zwischen einer einem ersten Prozeß zugewiesenen Clientinstanz und wenigstens einer mindestens einem weiteren Prozeß zugewiesenen Serverinstanz innerhalb eines verteilten Systems
WO2000057300A1 (en) * 1999-03-22 2000-09-28 Interlink Computer Communications Ltd. Automatic interface generation for an enterprise resource
US6370436B1 (en) * 1999-03-26 2002-04-09 Emware, Inc. Distributed objects for a computer system
US6829642B1 (en) * 1999-07-01 2004-12-07 International Business Machines Corporation Method and system for automatically and optimally selecting a TN3270 server in an internet protocol network
JP3461146B2 (ja) * 1999-09-28 2003-10-27 株式会社ジャストシステム 時間認証システム、ネットワークシステム、サーバ装置及びクライアント装置、並びに記録媒体
AU1224101A (en) 1999-10-22 2001-05-08 Nomadix, Inc. Gateway device having an xml interface and associated method
EP1117220A1 (en) * 2000-01-14 2001-07-18 Sun Microsystems, Inc. Method and system for protocol conversion
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
AU2001249402A1 (en) * 2000-03-29 2001-10-08 Nextset Software Inc. System and method of generating and using proxy beans
US6732175B1 (en) 2000-04-13 2004-05-04 Intel Corporation Network apparatus for switching based on content of application data
US7162542B2 (en) * 2000-04-13 2007-01-09 Intel Corporation Cascading network apparatus for scalability
US7146422B1 (en) 2000-05-01 2006-12-05 Intel Corporation Method and apparatus for validating documents based on a validation template
EP1168752A1 (en) 2000-06-23 2002-01-02 Matra Nortel Communications Access control in client-sever systems
US7003481B2 (en) * 2000-08-25 2006-02-21 Flatrock Ii, Inc. Method and apparatus for providing network dependent application services
US7032002B1 (en) * 2000-09-06 2006-04-18 Xanboo, Inc. Service broker for processing data from a data network
US6941560B1 (en) * 2000-12-19 2005-09-06 Novell, Inc. XML-based integrated services event system
US20020103850A1 (en) * 2001-01-31 2002-08-01 Moyer Stanley L. System and method for out-sourcing the functionality of session initiation protocol (SIP) user agents to proxies
JP2002237815A (ja) * 2001-02-08 2002-08-23 Pioneer Electronic Corp ネットワークシステム、ネットワーク運用方法、仲介モジュール及び端末装置並びに情報記録媒体及びプログラム
US20020112013A1 (en) * 2001-02-12 2002-08-15 Fiona Walsh Method for generating commercial email communications while preserving Internet privacy
US7958024B2 (en) 2001-03-15 2011-06-07 Versata Development Group, Inc. Method and apparatus for processing sales transaction data
US7925513B2 (en) * 2001-03-15 2011-04-12 Versata Development Group, Inc. Framework for processing sales transaction data
US7908304B2 (en) * 2001-03-15 2011-03-15 Versata Development Group, Inc. Method and system for managing distributor information
US6915520B2 (en) * 2001-04-06 2005-07-05 Hewlett-Packard Development Company, L.P. Java C++ proxy objects
US20020169863A1 (en) * 2001-05-08 2002-11-14 Robert Beckwith Multi-client to multi-server simulation environment control system (JULEP)
US7904326B2 (en) 2001-06-29 2011-03-08 Versata Development Group, Inc. Method and apparatus for performing collective validation of credential information
US7065541B2 (en) * 2001-10-10 2006-06-20 International Business Machines Corporation Database migration
US6757899B2 (en) 2001-10-11 2004-06-29 Harris Corporation Dynamic CORBA gateway for CORBA and non-CORBA clients and services
US7096249B2 (en) * 2002-03-29 2006-08-22 Intel Corporation Method and system for distributing applications
FR2852753B1 (fr) * 2003-03-18 2005-06-03 Twd Ind Systeme de transmission de donnees client/serveur securise
US7424721B2 (en) * 2003-05-19 2008-09-09 Sun Microsystems, Inc. Inter-object communication interface bridge
US7454758B2 (en) * 2004-02-05 2008-11-18 Aol Llc, A Delaware Limited Liability Company Inter-process communication on a computer
US7444536B1 (en) 2004-04-16 2008-10-28 Sun Microsystems, Inc. RMI-IIOP request failover mechanism
DE112008002634T5 (de) * 2007-09-27 2011-01-13 Hilton, Ronald N., Holladay Gerät, System und Verfahren zur systemübergreifenden Proxy-basierten Aufgabenentlastung
EP3842959A1 (en) * 2019-12-23 2021-06-30 Amadeus S.A.S. System and method for legacy-based access to non-legacy data
US11263286B2 (en) 2019-12-23 2022-03-01 Amadeus S.A.S. System and method for legacy-based access to non-legacy data
FR3105476B1 (fr) * 2019-12-23 2022-12-09 Amadeus Système et procédé pour un accès basé sur un environnement d’exploitation hérité à des données non héritées
US20230342231A1 (en) * 2022-04-21 2023-10-26 Centurylink Intellectual Property Llc Enhanced proxy for distributing and collating for application programming interfaces

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0512025A (ja) * 1991-06-20 1993-01-22 Fujitsu Ltd オブジエクト指向言語間インタフエース実現方法
JPH05113959A (ja) * 1991-10-23 1993-05-07 Hitachi Ltd リモ−トプロシジヤコ−ル要求代行処理方法および装置
WO1994011810A1 (en) * 1992-11-13 1994-05-26 Microsoft Corporation A method and system for marshalling interface pointers for remote procedure calls
JPH06301618A (ja) * 1993-04-15 1994-10-28 Matsushita Electric Ind Co Ltd 遠隔手続き呼び出し方法
JPH0713776A (ja) * 1993-06-14 1995-01-17 Internatl Business Mach Corp <Ibm> 代理オブジェクトを用いた通信方法および装置並びにデータ処理システム
JPH07225685A (ja) * 1994-02-09 1995-08-22 Hitachi Ltd 分散オブジェクト指向システム構築方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69228621T2 (de) * 1991-02-25 1999-07-22 Hewlett-Packard Co., Palo Alto, Calif. Objektorientiertes verteiltes Rechnersystem
JPH0778775B2 (ja) * 1991-06-12 1995-08-23 インターナショナル・ビジネス・マシーンズ・コーポレイション アプリケーション・プログラム間における情報交換システム及び方法
EP0529864B1 (en) * 1991-08-22 2001-10-31 Sun Microsystems, Inc. Network video server apparatus and method
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
US5452459A (en) * 1993-01-08 1995-09-19 Digital Equipment Corporation Method and apparatus for allocating server access in a distributed computing environment
US5491800A (en) * 1993-12-20 1996-02-13 Taligent, Inc. Object-oriented remote procedure call networking system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0512025A (ja) * 1991-06-20 1993-01-22 Fujitsu Ltd オブジエクト指向言語間インタフエース実現方法
JPH05113959A (ja) * 1991-10-23 1993-05-07 Hitachi Ltd リモ−トプロシジヤコ−ル要求代行処理方法および装置
WO1994011810A1 (en) * 1992-11-13 1994-05-26 Microsoft Corporation A method and system for marshalling interface pointers for remote procedure calls
JPH06301618A (ja) * 1993-04-15 1994-10-28 Matsushita Electric Ind Co Ltd 遠隔手続き呼び出し方法
JPH0713776A (ja) * 1993-06-14 1995-01-17 Internatl Business Mach Corp <Ibm> 代理オブジェクトを用いた通信方法および装置並びにデータ処理システム
JPH07225685A (ja) * 1994-02-09 1995-08-22 Hitachi Ltd 分散オブジェクト指向システム構築方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11338720A (ja) * 1998-05-28 1999-12-10 Nec Software Ltd クライアントサーバ間通信制御方法及び装置及び記録媒体
US7633640B2 (en) 1999-01-29 2009-12-15 Canon Kabushiki Kaisha Network print system, and information processing apparatus and its control method
US8166095B2 (en) 2000-07-27 2012-04-24 Oracle International Corporation System and method for achieving scalability in domain computing
JP2005505831A (ja) * 2001-10-05 2005-02-24 ビーイーエイ システムズ, インコーポレイテッド Javaサーブレットを非同期メッセージと統合するための方法
US8171074B2 (en) 2005-10-25 2012-05-01 Canon Kabushiki Kaisha Web service system, schedule execution apparatus and control method thereof

Also Published As

Publication number Publication date
EP0850446A1 (en) 1998-07-01
US5862328A (en) 1999-01-19
GB9518871D0 (en) 1995-11-15
EP0850446B1 (en) 2000-01-12
DE69606184T2 (de) 2000-07-13
GB2305270A (en) 1997-04-02
WO1997010546A1 (en) 1997-03-20
DE69606184D1 (de) 2000-02-17
JP3605416B2 (ja) 2004-12-22

Similar Documents

Publication Publication Date Title
JPH10511794A (ja) クライアント−サーバ環境用ブリッジ
US5613148A (en) Method and apparatus for activating and executing remote objects
JP3072709B2 (ja) 要求伝達方法
US6434594B1 (en) Virtual processing network enabler
US6704803B2 (en) Method and system for distributing data events over an information bus
US5790789A (en) Method and architecture for the creation, control and deployment of services within a distributed computer environment
US5511197A (en) Method and system for network marshalling of interface pointers for remote procedure calls
US6266716B1 (en) Method and system for controlling data acquisition over an information bus
US6226690B1 (en) Method and apparatus for utilizing proxy objects to communicate with target objects
US6182155B1 (en) Uniform access to and interchange between objects employing a plurality of access methods
US6704804B1 (en) Method and system for communicating information among interactive applications
US20020078255A1 (en) Pluggable instantiable distributed objects
US7424549B2 (en) System, method, and article of manufacture for using a replaceable component to select a replaceable quality of service capable network communication channel component
Bever et al. Distributed systems, OSF DCE, and beyond
Chatterjee Futures: a mechanism for concurrency among objects
US20030061398A1 (en) Method and system for retrieving data over an information bus
US20110238702A1 (en) Creating multiple mbeans from a factory mbean
Arnold et al. Hector: Distributed objects in python
Berry et al. The A1√ architecture model
Fauth et al. Remote procedure call: Technology, standardization and OSF’s distributed computing environment
AU2006200734B2 (en) Pipeline architecture for use with net-centric application program architectures
Janson et al. CORBA vs. DCOM
Hasan Distributed Programming Using CORBA Services
Ekberg et al. Enabling technologies for web centric applications
Chiang Leveraging software reengineering systems for heterogeneous distributed computing environments

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040806

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041004

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: 20071008

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20081008

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees