JP2004505372A - リクエストの集中及びロードバランシングのためのシステム及び方法 - Google Patents
リクエストの集中及びロードバランシングのためのシステム及び方法 Download PDFInfo
- Publication number
- JP2004505372A JP2004505372A JP2002515576A JP2002515576A JP2004505372A JP 2004505372 A JP2004505372 A JP 2004505372A JP 2002515576 A JP2002515576 A JP 2002515576A JP 2002515576 A JP2002515576 A JP 2002515576A JP 2004505372 A JP2004505372 A JP 2004505372A
- Authority
- JP
- Japan
- Prior art keywords
- connection
- client
- handler
- server
- shared memory
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000004891 communication Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 29
- 230000002457 bidirectional effect Effects 0.000 description 11
- 238000007901 in situ hybridization Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 239000000796 flavoring agent Substances 0.000 description 3
- 235000019634 flavors Nutrition 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 239000000872 buffer Substances 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000003619 Marshal aromatic alkylation reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1034—Reaction to server failures by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/59—Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/10015—Access to distributed or replicated servers, e.g. using brokers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
Description
著作権通告
本明細書の一部は、著作権保護を受ける内容を含んでいる。著作権者は、特許明細書又は本発明開示のファクシミリ再生を、何人が行なうことも、それが、特許庁のファイル又は記録に現れる場合においは、なんら異議を有さないが、それ以外の場合には、如何なる場合も、全ての著作権を保有する。
【0002】
本出願の特許請求の範囲は、西暦2000年7月27日付け米国特許出願第60/221,057号であり、本明細書で参照される、仮出願「リクエスの集中及びロードバランシングのためのシステム及び方法」の優先権を主張する。
【0003】
【産業上の利用分野】
本発明は、分散型コンピューティング環境に一般的に関する。特に、インターネットインターORBプロトコル(IIOP)環境内のオブジェクトリクエストブローカ(ORB)の数を減少するためのシステム及び方法に関する。
【0004】
【発明の背景】
分散型コンピューティングの分野において、マシンが互いに通信すること、又はマシンが、複数の分散型又はネット集中型アプリケーションを共有することを可能にするサーバアーキテクチャが存在する。これらアプリケーションの一つは、共通のオブジェクトリクエストブローカアーキテクチャ(CORBA)を含む。CORBAは、オブジェクトコンピューティングで使用するための開発基準に向けられた独立グループであるオブジェクト管理グループ(OMG)によって開発されたアーキテクチャデザイン仕様である。CORBA迎合システムの例は、ネットスケープONE製品、及びBEAシステムウェブロジックエンタープライズサーバを含む。
【0005】
CORBAは、インタフェース定義言語(IDL)に対する仕様を提供する。この言語は、ソフトウエア開発者が、標準的な方法でそれらのオブジェクト指向アプリケーションに対するインタフェースを定義することを可能にする。IDLは、IDLの定義及び形態(タイプ)がC、C++及びJava(登録商標)を含む種々のプログラミング言語にマップされることを可能にするマッピングを含む。従って、CORBAは、オリジナルプログラミング言語に独立してインタープリトされることができる「トランスペアレント」型アプリケーションを開発者が作り出すことを可能にする。開発者及び第三者のベンダーは、オブジェクトリクエストブローカ(ORB)を介して他のオブジェクトと対話するオブジェクトを生成する。言語マッピングを使用して、開発者は、ORBが理解できるクライアント側「スタブ」及びサーバ側「スケルトン」を作り出すことができる。
【0006】
CORBA2.0から、CORBA仕様は、ORBが互いにシームレスに通信することを可能にする方法を含んでいる。ORBの相互運用性アーキテクチャ、又はより詳細には、総称インターORBプロトコル(GIOP)基準は、ORBがネットワークに渡って作る一組のメッセージリクエストを定義する。GIOPの種々のフレーバが存在し、各々は、特定のネットワーク送信に必要のことに対して調整される。OMGによって定義されたGIOPは3つの構成要素からなる。
【0007】
共通データ表現 − ネットワークエージェント間で使用するための低レベル形態にIDL形態をマッピングする転送シンタックス。
【0008】
GIOPメッセージフォーマット − クライアントリクエス、サーバリプライ(応答)、クライアントキャンセルリクエスト、クライアント位置決めリクエスト、サーバ位置決めリプライ、サーバクローズ接続、及びメッセージエラーを含む現在7つのフォーマットがある。
【0009】
GIOPメッセージ伝送前提 − 伝送は、接続指向であり、信頼性があり、バイトストリームと見ることができ、障害による接続損失に付いて理由のある通知を与え、そして、接続を開始するための転送モデルをTCP/IPの一般的な接続モデルにマップすることができることを含む。
【0010】
全てのORBが仕様によって使用することが出来る必要がある共通のGIOP実装は、インターネットインターORBプロトコル(IIOP)である。IIOPはGIOPメッセージをTCP/IPにマップし、ORBがTCP/IPネットワーク、例えば、インターネットを、通信バス又はバックボーンとして使用することを可能にする。図1のピラミッド構造を参照する。ピラミッドの最下位レベルに物理装置、例えば、MAC(メディアアクセスコントロール)アドレスを有するイーサネット(登録商標)カードが存在する。この上に、イーサネット(登録商標)プロトコルが位置しており、これは、接続ベースのブロードキャストトポロジーを提供し、ここで、メッセージがコード化され、且つ衝突が解消される。次の層は、インターネットプロトコル(IP)であり、これは、インターネットを横断するパケットのフォーマットを特定し、且つ、ホストネーム及びIPアドレスをサポートする。ホストネームはIPがルート指定されることを可能にする。IPの上は、伝送制御プロトコル(TCP)であり、ポート番号及びパケットセグメント化及び存続時間の様な制御指令の機能を加える。これは、信頼性のある、ストリームベースの配送を可能にする。IIOPはTCP上に構築される。IIOP上に、ORBレベルが位置し、これは、IIOPリクエストをマーシャル(結集)する。ピラミッドの頂部には、アプリケーションレベル自体があり、これはオブジェクト実装及び他のORBオブジェクト、及びネーミングサービスの様なサービスを含む。
【0011】
上述され且つ図2に更に示される様な分散型オブジェクトシステムにおいて、リクエスト50はオブジェクトファンクション42、44、46、48を要求するプロセスとオブジェクトファンクション52、54、56、58を実施するプロセスとの間を行き来する。図2の例は、m個のサーバに呼び掛けを行なうn個のクライアントを示す。この様なシステムでは、n×m個の接続が存在する場合に拡張性を達成することが困難である。ここで、nは一群のオブジェクトファンクションを要求するプロセスを表し、mはこの一群のオブジェクトファンクションを実施するプロセスを表している。このことは、「ファンナウト問題」として一般的に知られており、システムリソースが拡張性を可能にするのに十分であることを保証するのを困難する。コンセントレータプロセスを介してIIOP/ORBドメイン又はオブェクト実装のグループへの要求が集中することを可能にする技術が存在する。この問題は、ドメイン内のオブジェクト実装からそのドメイン外の他のオブジェクト実装へ、反対方向に進んで、どの様にして拡張性を達成することが出来るかということである。
【0012】
【発明の要約】
オブジェクトシステムにおける拡張性の問題に着目すると、本発明の実施の形態は、ネイティブクライアント及びネイティブクライアントとして活動するサーバが、リモートオブジェクトリファレンスに呼び掛けを行なうことを可能にする。リモートオブジェクトリファレンスに呼び掛けを行なうために必要な能力としては、拡張性、耐久性、外部のORBサーバに実装されるオブジェクトリファレンスへの呼び掛けを実施する機構として利用可能であり、リモートクライアントに実装される呼び掛け(クライアントコールバック)を実施する機構として利用可能であり、及びイベントをリモートクライアントに送る呼び掛けを実施する機構として利用可能であることがある。
【0013】
本発明の一解法及び実施の形態は、ドメイン内からそのドメイン外部へ行くリクエストに対してインテリジェントコンセントレータプロセスを利用することにある。一つ以上のマスタープロセスは、リクエストを実際に取り扱うサブプロセスへ向かうリクエストをロードバランスする様に構成されている。マスタープロセスは、ロード(負荷)によって要求されと、サブプロセスを動的に加えることができる。更に、ドメイン内からの複数のリクエストが、そのドメイン外のオブジェクト実装へのリクエストに対して同じ実際の接続を使用することを保証することによって、マスタープロセスが、集中を許容することができる。これらのマスタープロセスの多重性は、マスタープロセスが死んだ場合の、故障復旧及び障害回復性を可能とする。
【0014】
本発明の実施の形態は、ネイティブクライアント、及びクライアントとして機能するネイティブサーバの両方が、その実装がインターネットインターORBプロトコル(IIOP)ドメイン外に存在するオブジェクトリファレンスに呼び掛けを行なうことを可能にする。これは、リモートクライアントがイベントを受信し、リモートクライアントがコールバックを受信し、且つネイティブクライアント及びクライアントとして機能するサーバが、その実装がオブジェクトリクエストブローカ(ORB)で構築されたリモートサーバ内のオブジェクトリファレンスに呼び掛けを行なうことを可能にする下層機構を提供する。
【0015】
好適な実施の形態の詳細な記述
本発明の種々の実施の形態が、添付図面を参照して記述される。数々の定義が以下に与えられており、これらは、好適な実施の形態の議論に有効である。
クライアント/サーバ − クライアント又はサーバの何れか、又は両方として活動することができるマシン又はプロセス。
ドメイン − ユニットとして管理することができるマシン及びリソースの集まり。ドメインは、アプリケーションファンクション、セキュリティの必要性、又は、地理的位置に基づいて設定することができ、複数のアプリケーションが相互通信する状況で特に有用である。
ネイティブ − ドメイン内のクライアント又はサーバ。
コールバック − IIOPリクエストがリモートクライアント内のオブジェクト実装に与えられる様に、(サーバとして機能する)リモートクライアントによって生成されたオブジェクトリファレンスに呼び掛けを行なう能力。
コールアウト − 或るリモートサーバに対するオブジェクトリファレンスを得、リクエストがリモートサーバに送られる様にそのオブジェクトリファレンスに呼び掛けを行なう能力。コールアウトはサーバとして機能するリモートクライアントに向かうもの(コールバック)又はリモートORBサーバへの向かうものとすることができる。
ISH(IIOPサーバハンドラ) − IIOPメッセージをリモートクライアントから受信し、これをトンネルGIOP(TGIOP)メッセージとしてネイティブ(又はドメイン内)サーバに転送する構成を特に意味している。この構成要素は、リプライも受信し、それが適当なリモートクライアントに戻されることを確認する。本発明の一実施の形態において、ISHはネイティブクライアント/サーバからTGIOPリクエストメッセージも受信し、IIOPリクエストメッセージをリモートサーバに送る。この構成要素は、このリプライを受信し、それが適当なネイティブクライアント/サーバに戻されることを確実にする。
【0016】
ISL(IIOP サーバリスナー) − どのISHが、ネイティブサーバと特定のリモートクライアントとの対話を、扱うべきかを決める構成要素を意味する。ISLがISHに対する故障復旧及びネイティブオブジェクトへの接続のロードバランシングを扱う。本発明の或る実施の形態において、ISLは、ISHに接続されたクライアント内に位置していないオブジェクトリファレンスに対するリモートサーバとの特定の対話をどのISHが扱うかも決める。ISLは、同じリモートオブジェクトへの多重の呼び掛けに対する接続を集中する。
インバウントIIOP − リモートサーバからドメイン内のネイティブクライアントへのIIOPリクエストを初期化することを示す従来技術で知られている概念。
アウトバウンドIIOP − ドメイン内のネイティブクライアント、又はクライアントとして機能するサーバからそのドメイン内に無いリモートサーバへのIIOPリクエストを初期化する本発明の方法を意味している。
非対称IIOP − GIOPの或るバージョンにおいて、IIOP接続は非対称、具体的には、クライアントのみがリクエストを送ることができ、サーバのみがそれらを受信することができる。サーバがリクエストをクライアント内のオブジェクトに送る必要がある場合、サーバからクライアントへの第2の接続を生成する必要がある。
双方向IIOP − クライアントとサーバとの間の接続が対称である。即ち、クライアントは、リクエストを接続上のサーバに送ることができ、サーバは、同じ接続上のクライアントによって輸出されたオブジェクトに、リクエストを送ることができる。
【0017】
IIOP集中
図3は、本発明の典型的な集中プロセスを示す。現在のシステムは、インバウンドIIOP集中用にのみ提供されているが、本発明は、アウトバウンドIIOP集中用のサポートを追加する。図3に示される様に、ISHコンセントレータ66は、複数のローカルクライアントからの接続を「集中」して、リモートクライアント/サーバ70に要求される接続の数を減少して、単一サーバリンク68に渡って動作する。幾つかのクライアントは、ISHと同じドメイン内に含まれ、プロセス間通信によって互いに通信する。ドメイン外のクライアント/サーバ(リモートクライアント/サーバ)は標準TCP/IPリンクを介してISHと通信する。
【0018】
図4に図示される様に、本発明のISHコンセントレータの実施の形態は、図2に示されるシステムの拡張性を改良するのに使用される。ISH90は、アクティブな接続の数をn×m個からn+m個に減少する。本発明の実施の形態において、メッセージキューは、直接リンクをリモートサーバに置き換えるために使用され、これは、アクティブな接続の数を丁度n個に減少する。
【0019】
アウトバウンドIIOPサポート
本発明の一つの実施の形態を含む例示的システムが図5に示される。図示される様に、幾つかのクライアントが一連のリモートサーバに呼び掛けを行なう。クライアントは、例えば、ネイティブC++クライアント102、Java(登録商標)クライシント104、通知サーバ106、又はクライアント108として機能するネイティブサーバとすることができる。リモートサーバは他のネイティブサーバ110、イベントに対して登録されたネイティブクライアント112、又は、非ネイティブCORBA迎合ORBサーバ114とすることができる。クライアントの一つが、サーバに呼び掛けを行う時、ルーティングプロセスは、BINDサーバ122を呼ぶことにより、接続をISLに向ける。どのISH130、132、又は134が接続を取り扱うのに最も好適であるかをISLは決定する。少なくとも一つのISHが従って要求されるが、多くのISHを使用することができる。何れのISHが宛て先サーバへの接続を現在取り扱っているかを先ずチェックして知り、ISLはそれへの接続を取り扱うISHを決定する。いずれもがこの様な接続を現在扱っていない場合、最小負荷のISHが選択される。この仕方で、ISLは、全ての利用可能なISH間で増大する数の接続のロード(負荷)をバランスする様機能する。
【0020】
ISHが選択されると126、クライアントは従ってそのISH128を介してサーバに呼び掛けを行なう。クライアント及びISHは同じドメイン内にあり、それらは、トンネル化GIOP(TGIOP)136を使用して、通信することができる。ISHは、TCP/IP138を介してIIOPを使用して、ドメイン外のサーバと通信する。
【0021】
本発明の実施の形態であるアウトバンウンドIIOPサポートは、ネイティブクライアント及びネイティブクライアントとして機能するサーバに、ドメインの外のリモートオブジェクトリファレンスに呼び掛ける能力を提供する。このことは、イベントが、イベントに対して登録されたリモートクライアントへ流れることができ、コールバックをリモートクライアントに対して行なうことができ、且つリモートサーバ内のオブジェクトにアクセスするとこができることを意味している。
【0022】
ISHに接続されたクライアントに含まれるオブジェクトに対する双方向IIOPのサポート リモートORBが双方向GIOP1.2をサポートする場合、ISHは、接続されたクライアントとの間で、リクエストを送り且つリプライを受信するために同じ接続を利用することができる。
【0023】
ISHに接続されたクライアントに含まれるオブジェクトに対する双方向様IIOPのサポート ORBが双方向GIOP1.2をサポートしない場合、クライアントは、アプリケーションプログラムインタフェース(API)を呼出して、クライアント内のリスニングホスト/ポートをISHに通知する。ISHは、第2の対にされるアウトバウンド接続を利用して、リクエストを接続されたクライアントに送り、且つこれからリプライを受信する。このアウトバウント接続は、入力(着信)接続と対にされる。クライアントがこの入力接続を切断する場合、アウトバウンド接続も同様に切断される。
【0024】
ISH又はネイティブクライアントに呼び掛けを行なうためのサポート このインフラストラクチャーは、クライアント情報に基づいて、ISH又はネイティブクライアントへのルート決めをサポートする。ORBは、クライアント識別子情報をオブジェクトリファレンスに埋め込むように修正される。
【0025】
ISHに接続されるクライアント内に含まれないオブジェクトに対する非対称アウトバウンドIIOPのサポート ISLは、同じリモートサーバに向かう異なるネイティブクライアント/サーバからのリクエストが同じ接続を介する集中を可能にする。ISLは、特定の接続が過大の負荷を得ない様にリクエストのロードバランスを行なうことを可能にする。
【0026】
拡張性をサポートするために、ISLは、必要な時に追加ハンドラをスタートすることができる。そして、追加のISL及び追加のISHを、増大したアウトバウンドIIOPトラフィックをサポートするように必要な時に加えることができる。
【0027】
フレーバをサポートするために、複数のISHが、マシン上で、又はドメイン内でスタートアップすることができる。クライアントがISHを使用する試みが失敗する場合、オブジェクトリファレンス及びフレーバを他のISHに再バインドする試みが成される。
【0028】
本発明の実施の形態の典型的な環境においては、システム管理者を、アウトバウンドIIOPサポート構成要素と直接相対話する唯一のユーザとすることができる。彼らは、正しいスタートアップパラメータで、ISLをブートして、オブジェクトに対するアウトバウンドIIOPが、接続されたクライアント内に位置しなくすることができる。ブートされたISLの数、及び種々のスタートアップパラメータは、インストール特定の仕事量の特徴に対して最も良い構成を得る様に、調整することができる。
【0029】
アウトバウンドルーティング
アウトバウンドルーティングプロセス内の機能的特徴は、図6−9に示される。図6に示される様に、ISL160及びISH168(幾つかが例示目的のために示されているが、システムは一つのみのISHで作動することができる)は共有メモリ166を介して互いに通信する。本発明の或る実施の形態において、ISLは、リモートサーバへの接続に付いての情報を維持するための責任を有している。この様な接続の記録は、共有メモリ内に保持されている。ISHは、この情報を使用して、リモートサーバに呼び掛けを行なう。代わりに、ISHは、閉鎖又は破壊された接続を反映するために情報を更新することによって、共有メモリ内の情報をメンテナンスする。ISLは、更新された情報を次に使用して、呼び掛けに対する入力リクエストを旨く割り当てる。リモートサービスへの呼び掛けを求めるクライアントは、ルーティングコードを呼ぶ。ルーティングコードは、接続が既に存在するかを決めるために、ISLと対話する。もし、存在する場合は、情報を各ISHに受け流す。接続がまだ存在しない場合、ISLは新たな接続をサービスするISHを選択する。
【0030】
図7は、ISL160が、クライアントに対して広告するか又はクライアントに対して利用可能にするサービスの幾つかを示す。原理的に、クライアントは、ISLからのBIND(バインド)161又はUNBIND(アンバインド)162に対するルーティングコードを介して、要求を行なうことができる。エラールーチン163は、失敗した要求を扱うことができる。図8に示される様に、ルーティングコード180は、リモートサーバを考慮して、使用するのに適当なISH188を決定するISL184のBINDに呼び掛けを行なう182。ISL184は、この情報をクライアントに戻す186。この後、クライアントは特定されたISHに呼び掛けを行なう187。その後ISHはクライアントとサーバとの間での通信を扱う。図9に示される様に、クライアントがサーバインスタンスで終了するか190、又は、接続が切断されることが要求される時、アプリケーションはISL194のUNBINDに呼び掛けを行なう192。ISLは次に接続が切断したことを記録する196。一定期間の後、特定の接続に対するエントリがガーベッジコレクションプロセス中に共有メモリから除去される。
【0031】
アウトバウンドIIOP形態
3つの異なる形態のアウトバウンドIIOP
・ 同じ接続を再使用する双方向アウトバウンドIIOP
・ 第2の対にされる接続を介する双方向様アウトバウンドIIOP
・ 第2の接続を介する非対称アウトバウンドIIOP
【0032】
双方向アウトバウンドIIOP
本発明の実施の形態は、ISH(図10)に接続されるクライアント内に含まれるオブジェクトに対する双方向IIOPに対するISL/ISH224、226、228を含む。クライアントORBが双方向GIOP1.2をサポートする場合、ISHは、接続されたクライアントへリクエストを送り、これからリプライを受信するために同じ接続を利用する。クライアント222は、オブジェクトリファレンスを生成して、ネイティブサーバに呼び掛けを行なう。クライアントORBは、接続がサービスコンテクストを使用する双方向であると識別する。サービスコンテクストは、メッセージと共にネイティブサーバ236に伝達する。オブジェクトリファレンスをマーシャル(結集)する時、ネイティブサーバは、サービスコンテクスト内のホスト/ポートをオブジェクトリファレンス内のホスト/ポートと比較する。それらが一致する場合、ORBは、ISHクライアント識別子及びルートを付けるのに必要な他のクライアント情報をオブジェクトリファレンス内のタグが付けられた構成要素に加える。このクライアント情報は、それが他のネイティブサーバに通過される時は常に、オブジェクトリファレンスと共に伝達する。
【0033】
或るポイントにおいて、ネイティブサーバ又はネイティブクライアントはオブジェクトリファレンスに呼び掛けを行なう。ルーティングコードは、クライアント情報に与えられた適当なISHに呼び掛けを行なう。ISHは同じクライアント接続に渡ってリクエストをクライアントに送る。クライアントはこの方法を実行し、リプライをクライアント接続を介してISHに戻す。ISHはリプライを受信し、これをネイティブサーバに送る。
【0034】
対にされる第2接続を介するアウトバウンドIIOP
本発明は、ISHに接続されるクライアントに含まれるオブジェクトへの双方向様IIOPに対するISHサポートを含む(図11)。クライアントORBが双方向GIOP1.2をサポートしない場合、クライアントはAPIルーチンを呼出して、ISHにクライアント内のリスニングポートを通知する。ISHは次に別の対にされるアウトバウンド接続を生成して、接続されたクライアントにリクエストを送り且つこれからリプライを受信する。
【0035】
クライアントは、オブジェクトリファレンスを生成する。クライアントは次に、オブジェクトリファレンスを通してブートストラップを呼び出す。ISHは、相互運用可能なオブジェクトリファレンス(IOR)からホスト/ポートを得、これをクライアントコンテクストに記憶する。クライアントはオブジェクトリファレンスを通してネイティブサーバに呼び掛けを行なう。ISHは、レジスタコールからホスト/ポートを含むサービスコンテキストを生成する。このサービスコンテクストは、ネイティブサーバへメッセージを伴って伝達する。オブジェクトリファレンスをアンマーシャル(分離)する時、ネイティブサーバはサービスコンテクスト内ホスト/ポートをオブジェクトリファレンス内のホスト/ポートと比較する。それらが一致する場合、ORBはオブジェクトリファレンス内のタグが付された構成要素に、ISH idとクライアント情報を加える。このクライアント情報は、これが他のネイティブサーバに通過される時は常に、オブジェクトリファレンスと共に伝達する。
【0036】
或るポイントで、ネイティブサーバ又はネイティブクライアントは、オブジェクトリファレンスに呼び掛けを行なう。ルーティングコードは、クライアント情報を通して適当なISHに呼び掛けを行なう。ISHはクライアントに対して第2の接続を生成する。ISHは、第2の接続を介して、リクエストをクライアントに送る。クライアントは、メソッドを実行し、リプライをクライアント接続を介してISHに戻す。ISHはリプライを受信し、これをネイティブサーバに送る。クライアントはISHから切断され、第2の接続も同様に切断される。
【0037】
非対称アウトバウンドIIOP
本発明の実施の形態は、ISHに接続されたクライアント中に含まれないオブジェクトへの非対称アウトバウンドIIOPに対するISL/ISHサポートも含む(図12)。ISLは、異なるネイティブクライアント/サーバからのリクエストが、同じリモートサーバに向かい同じ接続を通過する集中を許容する。ISLは、特定の接続が過負荷にならない様に、リクエストの負荷バランスを考慮することができる。サーバ280は、或るソースからオブジェクトリファレンスを得るが、ソースはネームサーバであることができ、または、ソースはクライアントを通過することができるが、クライアント内に位置してはいない。オブジェクトリファレンスは、ISHに接続されたクライアント内に位置していないので、出力コールは、双方向方法を使用して、行なうことはできない。
【0038】
或るポイントにおいて、ネイティブサーバ又はネイティブクライアントは、オブジェクトリファレンスに呼び掛けを行なう。第1の呼び掛けの際、オブジェクトリファレンスには、ISH idも、クライアント情報も含まれない。ルーティングコードは、オブジェクトキーを非ネイティブサーバオブジェクトリファレンスとして認識する。ISH id及びクライアント情報が渡されない場合、ルーティングコードは、ホスト/ポートを通過してISL224内のサービスを呼び出す。ISLは、オブジェクトリファレンスとISH272のクライアント情報を切り離す(アンバインドする)のに使用するために、サービス名を戻す。このクライアント情報は、ISHのクライアント情報であり、ISHに接続された何れのクライアントのクライアント情報ではない。
【0039】
ORBは、オブジェクトリファレンスに呼び掛けを行なう。インフラストラクチャーはISHに呼び掛けを行なう。ISHは、クライアント情報から接続識別子を得、リクエストをクライアントに送るのにどの外出接続を使用するかを決定する226。何も接続されていない場合、ISHは、別の接続をホスト/ポートに生成する。ORBは、IOR内のIIOPプロファイルのバージョンに対する適当なバージョンのGIOPを利用する。クライアントは、その方法を実行し、別の接続を介してリプライをISHに戻す。ISHは、リプライを受信し、それをネイティブサーバに送る。
【0040】
プロセス フロー
以下は詳細なプロセスフロー記述であり、本発明の一実施の形態において、どの様に、クライアント、ISL及びISHが対話するかを説明している。
【0041】
ネイティブクライアントの観点から
オブジェクトリファレンスバインド時に、ORBはオブジェクトリファレンスがリモートであるかを決定する。そうであれば、ORBは、オブジェクトリファレンスからのクライアント情報(もしあれば)で初期化される。クライアント情報が存在しない場合、BINDフラグが特定される。そうでない場合、フラグは特定されない。
【0042】
ルーティングコードは、リモートオブジェクトリファレンスを有するか否かを決める。
BINDフラグが存在する場合、BINDサービスを呼出し、戻されたISHクライアント情報及びISL情報を共有メモリ内に記憶する。
BINDフラグが存在しない場合、クライアント情報を共有メモリ内に記憶する。
ルーティングコードは、クライアント識別子に対する共有メモリ内を見、それに呼び掛けを行なう。
接続が破壊される時、システムは、適当なエントリに対する共有メモリ内を見、そして、UNBINDを呼び出す。
一方で、ISLは、接続は閉鎖であることを共有メモリに記し、ISHが接続を閉鎖する。
【0043】
ISHの観点から
ISHがクライアントidを使用して呼び出される。
ISHがメッセージキューからメッセージを受信する。リクエストが、リプライに対して逆の方法で取り扱われる。
【0044】
インフラストラクチャーは、ISHをクライアントに基づいた適当なコンテキストに切り換える。非対称アウトバウンドIIOPの場合、コンテキストはISHコンテキスト(0)であり、クライアントコンテキストではない。
【0045】
IIOPリクエストのコピーが作られ、IIOPリクエストidがユニークなidで置き換えられる。リクエストは、このコンテキストに対する未処理のリクエストのリストに置かれる。
【0046】
コンテキストがクライアントコンテキストである場合、コンテキストは双方向接続又は対にされる第2接続を有する。対にされる第2接続及び双方向接続がまだ存在しない場合は、一つの接続が生成される。IIOPリクエストをクライアントに送るためにルーチンが呼び出される。接続が完了するまで、ルーチンがリクエストをバッファ記憶する。IIOPリクエストをクライアントに送るためにルーチンが呼び出される。
【0047】
コンテキストがISHコンテキストである場合、接続インデックスがアウトバウンド接続を決めるために使用される。接続が存在しない場合、一つの接続が生成される。IIOPリクエストをクライアントに送るためにルーチンが呼び出される。接続完了されるまで、ルーチンはリクエストをバッファ記憶する。接続が存在する場合、IIOPリクエストをクライアントに送るためにルーチンが呼び出される。
【0048】
ISHがネットワーク及びメッセージキューイベントを取り扱う。リプライが接続から戻る時、未処理リクエストのリストが対応するリクエストに対して検索される。ISHはユニークなidをオリジナルidで置き換え、リプライをクライアントに送る。
【0049】
ISLの観点から
ISLは、オブジェクトリファレンスへの第1の呼び掛けで呼び掛けられる。
サービスルーチンは、オブジェクトリファレンスをバインドするために呼び出される。パラメータは、ホスト、ポート及びクライアント識別子である。
ISLはホスト/ポートをハッシュし、ホスト/ポートが既に使用されているか否かを決定するためにデータ構造内を見る。使用中であり、且つ多重ユーザ制限にない場合、適当なISHクライアント識別子、ドメイン、クライアントプロセス識別子、クライアントキュー、ISLグループ及びサーバ識別子が戻される。
ユーザ多重化リファレンスカウントが増加される。
見出せず且つ現存するISHが接続を取り扱うことができる場合、現存するISHはリクエストを取り扱うように割り当てられる。適当なISHクライアントid、ドメイン、クライアントプロセス識別子、クライアントキュー、ISLグループ及びサーバ識別子が戻される。
ISHが接続を取り扱うことができない場合、新たなISHがスタートされる。
適当なISHクライアント識別子、クライアントプロセス識別子、クライアントキュー、ISLグループ及びサーバ識別子が戻される。
【0050】
接続管理
接続管理は、クライアントとサーバとの間の接続を扱うためのプロセスであり、特に、現在使用されていないと評価した接続をどの様にしてシステムが扱うかのプロセスである。
【0051】
本発明の目的の一つは、拡張性である。従って、アウトバウンド接続の数を最少にすることが望まれる。この理由のために、接続されているクライアント内に含まれるオブジェクトへの有効な機構に呼び掛けをおこなわせるために、システムは、双方向接続及び対にされる第2の接続をサポートする。これらの場合は、アウトバウンドIIOPトラフィックの大部分を含む。しかしながら、何処の顧客が、現在接続されているクライアントには含まれないオブジェクトリファレンスに呼び掛けを行なうことを望んでいるかのシナリオが依然として存在する。これは、外のORBサーバ;ネイティブドメインに接続され且つこれから切断されるクライアント/サーバ、又はネームサーバから得られる何らかのオブジェクトリファレンスとすることができる。オブジェクトリファレンスのこれらの形態をサポートするが、依然として拡張性を与えるために、システムは、これらのTCP/IP接続を呼出し側プロセスからISHへ再配置する。呼出し側(ネイティブクライアント又はネイティブサーバ)はIORに呼び掛けを行なう、ネイティブインフラストラクチャーがメッセージをISHに送るのに使用される。ISHは次にメッセージをTCP/IP接続を使用して、リモートサーバに送る。しかしながら、TCP/IP接続が、最早実際の呼出し側プロセス内にないので、それらは、呼出し側(ネイティブクライアント又はネイティブサーバ)が存在する時には、自動的に切断されない。
【0052】
(如何なる呼出し側によっても現在使用されていない)非対称アウトバウンドIIOP接続は、呼出し側(ネイティブクライアント又はネイティブサーバ)が存在する場合は、切断されるべきである。これは、最後の呼出し側が存在した直後又はタイムアウト期間の後とすることができる。非対称アウトバウンドIIOPを管理するための異なる代替例が、以下のセクションに記述される。
【0053】
リファレンスカウンティグ及びユーザ確認
この代替例は以下の様に作動する。
ネイティブクライアント又はネイティブサーバ(オブジェクトリファレンスのユーザ)は、オブジェクトリファレンスに呼び掛ける。
第1の呼び掛けで、ORBはISL内のBINDサービスにコール(呼出し)を行なう。このホスト/ポートに対するエントリが、共有メモリに加えられる。ユーザの識別子に対するエントリ(ネイティブクライアント識別子又はネイティブサーバグループ/サーバid)が共有メモリに加えられる。ISLは接続識別子(共有メモリ内のホスト/ポートエントリに対するマップ)及びリモートサーバへのTCP/IP接続を含むISHに対する適当なクライアント情報を戻す。
【0054】
ORBは、クライアント情報を使用して、メッセージを適当なISHに送る。ISHは、接続識別子を使用して、どのアウトバウンドIIOP接続が使用されるかを決定する。
ネイティブクライアント又はネイティブサーバは、オブジェクトリファレンスへの呼び掛けを達成する。各呼び掛けは、ISHに送られるメッセージをもたらす。
【0055】
他のネイティブクライアントが、同じホスト/ポートエントリを有するオブジェクトリファレンスに呼び掛けを行なう場合、BINDは、第1のユーザと同じ接続識別子及び同じクライアント情報を戻す。ホスト/ポートのリファレンスカウントが増加される。第2のユーザ(ネイティブクライアント又はネイティブサーバ)の識別子に対するエントリが共有メモリに加えられる。
【0056】
最終的に、第1及び第2ユーザはオブジェクトリファレンスを解放する。第1のユーザ解放はUNBINDサービスへのコールである。UNBINDサービスは、ホスト/ポートエントリのリファレンスカウントを減少し、ユーザの識別子を除去する。第2のユーザ解放の際に、ホスト/ポートエントリのリファレンスカウントがゼロに減少される。ISLは、共有メモリからホスト/ポートエントリを除去し、(ホスト/ポートエントリとは異なる)接続エントリが閉鎖であることを共有メモリに記す。
【0057】
ISHは、それが、共有メモリに接続エントリは閉鎖であると記されていることを知った時に、接続を閉鎖する。
ISHは接続エントリが未使用であると記す。
【0058】
これは、ユーザが通常通り退出し且つオブジェクトリファレンスを解放する場合である。この場合は、オブジェクトリファレンスを解放することなしに退出するユーザ、及び、異常で退出するユーザを含む。最早必要の無い場合に、接続が解放されることを保証するために、この代替例は確認を使用する。その確認では、ISLは、接続のユーザの識別子を確認し、共有メモリ内にidを記憶し、サーバが非アクティブであるかをチェックし、サーバが、ローカルマシン上にある場合に、ISLはタイムスタンプを比較して、ネイティブクライアントが依然として活動しているかを調べ、ローカルマシン上にない場合は、ネイティブクライアントがISLと同じマシン上にないことを確認するためにコールを使用する。
【0059】
アンバインド(解放)を有さない非対称アウトバウンド接続タイムアウト
この代替例は、以下の様に作動する。
ネイティブクライアント又はネイティブサーバ(オブジェクトリファレンスのユーザ)はオブジェクトリファレンスに呼び掛ける。
【0060】
第1の呼び掛けで、ORBは、ISL内のBINDサービスを呼び出す。このホスト/ポートに対するエントリは、共有メモリに加えられる。ISLは、接続識別子(共有メモリ内のホスト/ポートエントリ+追加のジェネレーション/タイムスタンプフィールド)及びリモートサーバへのTCP/IP接続を含むISHに対する適当なクライアント情報を戻す。
【0061】
ORBは、クライアント情報を使用して、メッセージを適当なISHに送る。ISHは、接続識別子を使用して、どのアウトバウンドIIOPソケットを使用するかを決める。(接続タイムアウトのために)接続識別子は最早有効ではなく、エラーが戻される。
【0062】
ネイティブクライアント又はネイティブサーバが、連続して、オブジェクトリファレンスへの呼び掛けを達成する。各呼び掛けはISHに送られるメッセージを結果としてもたらす。
【0063】
別のネイティブクライアントは、同じホスト/ポートでオブジェクトリファレンスに呼び掛けを行なう場合、BINDサービスは、第1の呼び掛けと同じ接続識別子及び同じクライアント情報を戻す。リファレンスカウンティングは、ホスト/ポートエントリで達成される。
【0064】
最終的に、第1及び第2のユーザは、オブジェクトリファレンスを解放する。アンバインドサービスは呼び出されない。接続は、維持される。
【0065】
各呼び掛けで、ISHは、接続のための共有メモリ内の活動タイムスタンプフィールドを更新する。通常ベースでは、ISLは、活動がユーザ特定の時間期間内で生じない場合、接続をタイムアウトする。ISLはその接続は閉鎖であると記し、ホスト/ポートエントリを除去する。ISHは、それが、接続が閉鎖されると記されていることを知ると、接続を切断する。ISHは、接続エントリに未使用であると示す。接続のユーザが死ぬか又はオブジェクトリファレンスを解放しない場合、接続は、それがアクティブである限り維持される。接続が特定の時間期間アクティブで無いと、その接続が切断される。オブジェクトリファレンスは依然として有効であるが、特定のタイムアウト期間内では使用されない場合がある。この場合、接続は切断され、ホスト/ポートエントリは除去される。ISHはリクエストを受信し、接続idを確認し、且つエラーを戻す。このエラーはORBにオブジェクトリファレンスを再バインドさせる。これは、ISL BINDサービスへコールを呼び掛け、現存する接続が使用されるか、又は新たな接続を生成することができる。この再バインドはユーザに可視的である必要はない。
【0066】
非対称アウトバウンド接続タイムアウトを有するリファレンスカウント
これは、代替例1及び2の組合せである。主な差異は、誰も接続を使用していないと、その接続が直ちに切断される点にある。
この代替例は以下の様に作動する。
【0067】
ネイティブクライアント又はネイティブサーバ(オブジェクトリファレンスのユーザ)は、オブジェクトリファレンスに呼び掛けを行なう。
第1の呼び掛けの際に、ORBは、ISL内のBINDサービスを呼び出す。このホスト/ポートに対するエントリが共有メモリに加えられる。ISLは接続識別子(共有メモリ内のホスト/ポートエントリへのマップ+追加のジェネレーション/タイムスタンプフィールド)及び適当なISHid及びクライアント情報を示す。この情報は、リモートサーバへのTCP/IP接続を含む。
【0068】
ORBは、ISHid及びクライアント情報を使用して、メッセージを適当なISHに送る。ISHは、接続識別子を使用して、使用するアウトバウンドIIOP接続を決める。接続識別子が(接続タイムアウトのために)最早有効でない場合、エラーが戻される。
【0069】
ネイティブクライアント又はネイティブサーバは、オブジェクトリファレンスへの呼び掛けを達成する。各呼び掛けは、ISHへ送られるメッセージを結果としてもたらす。
【0070】
他のネイティブクライアントが同じホスト/ポートでオブジェクトリファレンスに呼び掛けを行なう場合、BINDサービスは、第1の呼び掛けと同じ接続識別子及び同じクライアント情報を戻す。ホスト/ポートエントリのリファレンスカウントは増加される。
【0071】
最終的に、第1及び第2のユーザはオブジェクトリファレンスを解放する。第1のユーザ解放は、UNBINDサービスへのコール(呼出し)を結果としてもたらす。このことは、ホスト/ポートエントリのリファレンスカウントを減少する。第2のユーザ解放の際、ホスト/ポートエントリのリファレンスカウントはゼロに減少される。ISLは、共有メモリからホスト/ポートエントリを除去し、接続は閉鎖と共有メモリに記す。
【0072】
ISHは、それが、共有メモリで接続エントリは閉鎖されると記されていることを知る時に、接続を閉鎖する。
【0073】
このことは、接続エントリが未使用であることを示している。
【0074】
接続のユーザが死ぬか又は、オブジェクトリファレンスを解放しない場合、接続は、それがアクティブである限り維持される。接続が特定の時間期間に渡ってアクティブで無かった場合に、接続は切断される。オブジェクトリファレンスは依然として有効であるが、特定のタイムアウト期間内に使用されない場合がある。この場合、接続は切断され、ホスト/ポートエントリが除去される。以降の呼び掛けの際に、ISHはリクエストを受信し、接続識別子を確認し、エラーを戻す。このエラーは、ORBにオブジェクトリファレンスを再バインドさせる。これは、ISL BINDサービスへコール(呼出し)を呼び掛け、現存する接続を使用すか、又は新たな接続を生成することができる。この再バインドは、ユーザに取って可視的である必要はない。
【0075】
追加の特徴
コールアウトに対する双方向接続の使用
或るシナリオにおいて、クライアントは接続し、イベントへの永続的なサブスクリプション(申し込み)を生成し、そしてISHから切断する。クライアントはISHに再接続する時、クライアントは、その永続的なサブスクリプションに対するイベントを受け入れることを期待する。
【0076】
本発明の或る実施の形態において、ISLは、現在の双方向接続に付いての情報を得、次に、IOR内のホスト/ポートへの別の接続を生成する代わりに、現在の双方向接続を使用する。ISLに双方向接続を通知することにより、リソースのオプション的使用を可能にする。ISHはISLに双方向情報を通知する。このことは、接続生成及び除去に付いて共有メモリ又は特別のメッセージのロッキングを必要とする。
【0077】
クライアント切断
図13に示されるこのシナリオにおいて、クライアントはドメインから切断されるが、同じホスト及びポートで依然としてリスニングを行なう。このオブジェクトリファレンスは、切断されたクライアントのクライアント情報を含む。ORBが利用可能でないサービスに呼び掛けを行なう時、インフラストラクチャーはエラーを戻す。ORBは、このエラーを取扱い、且つオブジェクトリファレンスを再バインドする304。ISHが、リモートサーバへの新たな接続を生成するために、選択され、クライアント情報が更新される。
【0078】
データ設計
ISL及びISHはそれぞれがメモリ内に保持するデータを各々有する。ISL及びISHは、ISL及びISHの寿命に渡って永続されることを必要とする項目に対してメモリを共有する。ISLが死んで、再スタートする場合、ISLは、共有メモリに再び付随し、共有メモリ内に格納されたいかなる状態も回復することができる。
【0079】
共有メモリ
ISLは、それが制御するISHとメモリを共有する。非対称アウトバウンドIIOPが利用可能な場合、追加のセクションが共有メモリテーブル内に存在する。このメモリは、ISLによって使用され、適当な集中及びロードバランスを行ない、又は、このメモリは、ISHが生成を必要としている接続のトラックを保持するためにISHによって使用される。ISLは共有メモリの一次ライターである。
【0080】
ISH故障
ISHは、共有メモリ内にある必要がないことに付いての情報を保持する必要がある。共有される必要がない情報の中に、現在の要求に付いての情報を維持するための領域、リクエストidをクライアント(サーバ)にマップするための領域がある。ISLは、ISHを再スタートするための責務を負っている。ISLかISHを再スタートする時、死んだISHに対する古い共有メモリスロットをクリアーにし、ISHがISLの共有メモリに接続することを保証する。
【0081】
クライアントは、故障したISHにバインドしたオブジェクトリファレンスに呼び掛けを行なう場合、エラーが発生する。呼出し側が再バインドし、ISHが呼び掛けを達成するために、選択される。これは、再スタートされたISH又は他のISHであることができる。
【0082】
ISL故障
システム管理者が、推奨されたセッティングでISLをスタートする場合、ISLが最終的に再スタートする。
【0083】
オブジェクトコードがサービスを呼び出すが、サーバを依然として選択していていない場合、別のISLが選択される。オブジェクトコードがサービスを呼び出し且つサービスを選択した場合、システムがエラーをクライアントに戻す。ISLが最終的に再スタートする時、ISLは、共有メモリに再結合する。
【0084】
ネイティブクライアント(又はクライアントとして機能するサーバ)故障
ISLは、アウトバウンド接続のリストを周期的にスキャンする。接続が特定された時間期間内でアクティブとならない場合、対応するエントリは、解放され、アウトバウンド接続は切断される。このことによって、ネイティブクライアント又はサーバが故障する場合、ネイティブクライアント又はサーバによって生成されたアウトバウンド接続は常に切断されることが保証される。
【0085】
ガーベッジコレクション(ゴミ収集)
共有メモリのある部分をクリーンナップすることができる「イベント」がある。
リモートサーバが故障する。ISHはエラーをクライアント(又は、多重クライアントが接続を使用した場合は複数のクライアント)に戻す。クライアントが退出し、且つISLに通知される時、適当なホスト及びポートスロット及び適当なクライアント識別子スロットが一掃される。
【0086】
接続が管理者によって設定されたタイムアウトを越えたことを、ISHが理解する。対応するエントリが解放され、ソケットは閉鎖と記される。次の呼び掛けにおいて、エラーは呼出し側に戻される。ORBは、オブジェクトリファレンス再バイントする。新たな接続が生成され、呼び掛けが発生する。
【0087】
ISHが死ぬ。ISLはISHを再スタートする。バウンドオブジェクトリファレンスへの次の呼び掛けの際に、エラーが発生する。呼び掛け側は、再バインドし、ISHが、呼び掛けを達成するために選択される。ISHに対する現存するエントリは共有メモリに残る。第1の呼び掛けの際、再スタートされたISHは、リモートサーバに接続される。
【0088】
ISLが死ぬ。再スタート時に、ISLは、全てのISHをチェックし、何れの死んだISHに対するエントリーをクリーンナップする。
ISLがシャットダウンされる。ISLは、シャットダウンメッセージをISHに送る。ISLは共有メモリを除去する。
マシンは、その機能を停止する。ISL及び全てのISHは、同じ時刻に死ぬ。共有メモリは消失する。
【0089】
本発明の他の特徴、形態及び目的は、図面及び特許請求の範囲を閲覧することにより得ることができる。本発明の他の実施の形態を発展することができ、これらが本発明の精神及び範囲及び特許請求の範囲内に入ることが理解されるべきある。
【0090】
工業利用性
本発明は、オブジェクト指向システム、特に、n個のクライアントがm個のサーバに呼び掛けを行なうことができるCORBA準拠システムの分野での特定の使用を含む。典型的には、これは、リクエストを扱うのにn×m個の接続を要求する。記述される発明は、サーバにn個の接続のみをが存在することを可能にし、リソースの必要性を相当減少し、且つ拡張性を可能にする。本発明は、更に、多重インテリジェントマスターコンセントレータプロセスを可能にし、コンセントレータ故障を取扱い及び動的な拡張性を提供する。
【図面の簡単な説明】
【図1】IIOP及びORB層が、どの様に従来技術における他のネットワーク通信プロトコルに関係するかを図示している。
【図2】従来公知のファンナウトを図示している。
【図3】多重クライアントとサーバへのTCP/IPとの間のインタフェースとしてどの様にISHを使用できるかを本発明の実施の形態に対して示す。
【図4】ISL/ISHコンセントレータは、n個のクライアントをサービスするのに必要とされるサーバ接続の数を最小にするのにどの様にして使用することができるかを、本発明の実施の形態に対して示す。
【図5】ISL及び多重ISHサーバが種々のクライアント及びサーバ形態をサーブする本発明の実施の形態を図示する。
【図6】ルーティングコードがどの様にしてISL及びISHと対話するかを本発明の一実施例に対して示す。
【図7】ISL内に含まれるサービスを本発明の実施の形態に対して示す。
【図8】ルーティング/バインディングプロセスにおける本発明のステップの実施の形態を示す。
【図9】アンバインディングプロセスを本発明の実施の形態に対して示す。
【図10】双方向接続を使用する本発明のアウトバウンドIIOPの実施の形態を図示する。
【図11】対接続を使用する本発明のアウトバウンドIIOPの実施の形態を図示する。
【図12】非対称接続を使用する本発明のアウトバウンドIIOPの実施の形態を図示する。
【図13】クライアントが切断された後どの様にして双方向接続が回復するかを本発明の実施の形態に対して示す。
Claims (24)
- ローカルクライアントアプリケーションがリモートサーバサービスに呼び掛けることを可能にするための、分散型オブジェクト環境で使用するたのシステムであり、
リモートサービスに呼び掛けを行なうためにクライアントアプリケーションからのリクエストをバインドし、リモートサーバを識別し、且つクライアントをリモートサーバに作動的に接続するコンセントレータを含む、システム。 - 前記コンセントレータが、
クライアントからサーバへの接続を扱う少なくとも一つの接続ハンドラ、及び
どの接続ハンドラを接続を扱うのに使用するかを決めるリスナーを更に含むことを特徴とする請求項1記載のシステム。 - 前記リスナー及び接続ハンドラが共有メモリを介して通信することを特徴とする請求項2記載のシステム。
- 前記共有メモリが現在接続されるサーバのリストを含み、前記接続ハンドラが各接続を扱うことを特徴とする請求項3記載のシステム。
- 前記コンセントレータが複数の接続ハンドラから成ることを特徴とする請求項2記載のシステム。
- 前記リスナーが、どの接続ハンドラを共有メモリ内のエントリに基づいて使用するかを決めることを特徴とする請求項5記載のシステム。
- ローカルアプリケーションがリモートサーバ上のリモートサービスに呼び掛けを行なうことを可能にする分散型オブジェクト環境で使用する方法であり、
リモートサービスへ呼び掛けを行なうためクライアントアプリケーションからのリクエストをバインドし、
リモートサーバを識別し、そして
クライアントを接続ハンドラを介して前記リモートサーバに作動的に接続することから成る方法。 - 前記リモートサーバが接続ハンドラに現在接続されているかを知るために共有メモリスペースを参照することを更に含む請求項7記載の方法。
- 前記リモートサーバが、接続ハンドラに現在接続されていない場合、リモートサーバを接続ハンドラに接続し、且つ共有メモリを更新することを更に含む請求項7記載の方法。
- 共有メモリを更新する前記ステップが、現在接続されているサーバのリストを更新し、前記接続ハンドラが各接続を取り扱うことを特徴とする請求項9記載の方法。
- 複数の多重接続ハンドラの一つを、接続を扱うために使用することができる請求項7記載の方法。
- 共有メモリ内のエントリを参照して、どの接続ハンドラが接続を扱うべきかを決める工程を更に含む請求項1記載の方法。
- ローカルクライアントがリモートサーバサービスに呼び掛けを行なうことを可能にするための分散型オブジェクト環境で使用するためのシステムにおいて、
クライアントアプリケーションからのリモートサービスへの呼び掛けリクエストをバインドするためのコンセントレータを具備し、このコンセントレータが更に、
クライアントからサーバへの接続を扱うための複数の接続ハンドラ、
接続を扱うための前記複数の接続ハンドラの特定の接続ハンドラを決めるリスナー、及び
前記リスナーと前記複数の接続ハンドラとの間での通信を可能にする共有メモリを含み、前記共有メモリが現在接続されているサーバのリストを含み、前記接続ハンドラが各接続を扱うことを特徴とするシステム。 - 前記ローカルクライアントアプリケーションが、
オブジェクトリファレンスバインド時において、オブジェクトリファレンスがリモートであるかを決め、リモートである場合、ORBを、オブジェクトリファレンスからのクライアント情報で初期化し、
バインドフラグが存在する場合、サービスをバインドし、戻されたISHクライアント情報及びリスナー情報を前記共有メモリに記憶し、
バインドフラッグが存在しない場合、クライアント情報を前記共有メモリ内に記憶し、
クライアント識別子について前記共有メモリ内を検索し、そのクライアント識別子に呼び掛けを行い、そして
接続が切断された時、適当なエントリについて前記共有メモリ内を検索し、前記エントリを使用して、サービスをアンバインドする工程を達成することを特徴とする請求項13記載のシステム。 - 前記接続ハンドラが、
メッセージキューからのメッセージを受信し、
クライアントに基づいて、ハンドラをクライアントコンテキスト又はハンドラコンテキストに切り換え、
IIOPリクエストのコピーを作り、且つIIOPリクエストidをユニークなidで置き換え、
前記リクエストをこのコンテキストに対する未処理リクエストのリストに置き、
前記コンテキストがクライアントコンテキストである場合で、且つ対の第2の接続及び前記接続が存在しない場合、一つの接続を生成し、IIOPリクエストをクライアントに送り、
コンテクストがハンドラコンテクストである場合、接続インデックスを使用して、アウトバウンド接続を決め、接続が存在しない場合、接続を生成し、IIOPリクエストをクライアントに送り、且つ
リプライが接続から戻る時、対応するリクエストに対する未処理リクエストのリストを検索し、ユニークなidをオリジナルのリクエストidで置き換え、リプライをクライアントに送る工程を達成することを特徴とする請求項13記載のシステム。 - 前記リスナーは、
ホスト、ポート及びクライアント識別子パラメータと一緒にオブジェクトリファレンスとバインドするためにサービスルーチンを呼び出し、
ホスト/ポートが既に使用されているか否かを決めるために共有メモリ内を検索し、
ユーザ多重化リファレンスカウントを増加し、
現存するハンドラが接続を扱うことが出来る場合、リクエストを扱うために現存するハンドラを割り当て、
接続を扱うことのできるハンドラが現存しない場合、新たなハンドラをスタートする工程を達成する請求項13記載のシステム。 - 前記クライアントは、ネイティブC++クライアント、Java(登録商標)クライアント、通知サービス、又はクライアントとして機能するネイティブサーバの何れか一つである請求項13記載のシステム。
- 前記リモートサーバが、ネイティブサーバ、イベントに対して登録されたネイティブクライアント、又は非ネイティブCORBA迎合ORBサーバの何れか一つである請求項13記載のシステム。
- ローカルクライアントアプリケーションがリモートサーバサービスに呼び掛けを行なうことを可能にする分散型オブジェクト環境で使用するための方法において、
クライアントからサーバへの接続を扱うために、複数の接続ハンドラを提供し、
前記複数の接続ハンドラの内のどの特定の接続ハンドラが接続を扱うかを決め、そして
リモートサービスに呼び掛けを行なうクライアントアプリケーションからのリクエストをバインドすることを含み、前記バインドする工程が、
リモートサーバを識別し、且つ
クライアントを、前記特定の接続ハンドラを介して前記リモートサーバに作動的に接続することを含む、方法。 - 前記ローカルクライアントアプリケーションが、
オブシェクトリファレンスバインド時に、オブジェクトリファレンスがリモートであるか否かを決定し、リモートである場合、ORBをオブジェクトリファレンスからのクライアント情報で初期化し、
バインドフラグが存在する場合、サービスをバインドし、戻されたISHクライアント情報及びリスナー情報を前記共有メモリ内に記憶し、
バインドフラグが存在しない場合、クライアント情報を前記共有メモリ内に記憶し、
クライアント識別子に付いて前記共有メモリ内を検索し、クライアント識別子に呼び掛けを行い、そして
前記接続が切断される時、適当なエントリに付いて共有メモリ内を検索し、そして前記エントリを使用して、サービスをアンバインドする追加の工程を達成することを特徴とする請求項19記載の方法。 - 前記接続ハンドラが、
メッセージキューからのメッセージを受信し、
クライアントに基づいて、ハンドラをクライアントコンテクスト又はハンドラコンテクストの何れかに切り換え、
IIOPリクエストのコピーを作り、そしてIIOPリクエストidをユニークなidで置き換え、
リクエストを、このコンテキストに対する未処理リクエストのリストに置き、
コンテクストがクライアントコンテクストである場合で、且つ、対にされる第2の接続及び接続が依然として存在しない場合、接続を生成し、IIOPリクエストをクライアントに送り、
コンテクストがハンドラコンテクストである場合、接続インデックスを使用してアウトバウンド接続を決定し、接続が存在しない場合、接続を生成し、IIOPリクエストをクライアントに送る追加の工程を達成し、リプライが、接続から戻される時、対応する要求に対する未処理リクエストのリストを検索し、ユニークなidをオリジナルリクエストidで置き換え、リプライをクライアントに送り戻すことを特徴とする請求項19記載の方法。 - 前記リスナーが、
ホスト、ポート、及びクライアント識別子パラメータと一緒にオブジェクトリファレンスをバインドするために、サービスルーチンを呼び出し、
ホスト/ポートが既に使用されているかを決めるために、共有メモリ内を検索し、
ユーザ多重化リファレンスカウントを増加し、
現存するハンドラが接続を扱うことができる場合、リクエストを扱うために現存するハンドラを割り当て、
接続を扱うことのできるハンドラが現存しない場合、新たなハンドラをスタートする追加の工程を達成することを特徴とする請求項19記載の方法。 - クライアントが、ネイティブC++クライアント、Java(登録商標)クライアント、通知サービス、又はクライアントとして機能するネイティブサーバの内の何れかであることを特徴とする請求項19記載の方法。
- リモートサーバが、ネイティブサーバ、イベントに対して登録されたネイティブクライアント、又は非ネイティブCORBA迎合ORBサーバの何れかである請求項19記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US22105700P | 2000-07-27 | 2000-07-27 | |
US60/221,057 | 2000-07-27 | ||
PCT/US2001/022343 WO2002010917A1 (en) | 2000-07-27 | 2001-07-17 | System and method for concentration and load-balancing of requests |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004505372A true JP2004505372A (ja) | 2004-02-19 |
JP2004505372A5 JP2004505372A5 (ja) | 2008-09-04 |
JP5085831B2 JP5085831B2 (ja) | 2012-11-28 |
Family
ID=22826149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002515576A Expired - Lifetime JP5085831B2 (ja) | 2000-07-27 | 2001-07-17 | リクエストの集中及びロードバランシングのためのシステム及び方法 |
Country Status (8)
Country | Link |
---|---|
US (3) | US6990511B2 (ja) |
EP (1) | EP1311946B1 (ja) |
JP (1) | JP5085831B2 (ja) |
KR (1) | KR100798504B1 (ja) |
CN (1) | CN1249576C (ja) |
AU (2) | AU2001276932B2 (ja) |
CA (1) | CA2417509C (ja) |
WO (1) | WO2002010917A1 (ja) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002010917A1 (en) * | 2000-07-27 | 2002-02-07 | Bea Systems, Inc. | System and method for concentration and load-balancing of requests |
US20020124083A1 (en) * | 2000-09-06 | 2002-09-05 | Sun Microsystems, Inc. | Method and apparatus for increasing the efficiency of transactions and connection sharing in an enterprise environment |
FI20011239A (fi) * | 2001-06-12 | 2002-12-13 | Nokia Corp | Tiedonsiirtomenetelmä ja -järjestely |
US6980997B1 (en) * | 2001-06-28 | 2005-12-27 | Microsoft Corporation | System and method providing inlined stub |
IL145104A (en) * | 2001-08-23 | 2007-02-11 | Gregory Bondar | A method and system for balancing the load on a computer resource between computers |
US7406074B2 (en) * | 2002-07-12 | 2008-07-29 | Lucent Technologies Inc. | Bundling messages in communication networks |
CA2425048C (en) | 2003-04-08 | 2008-06-03 | Ibm Canada Limited - Ibm Canada Limitee | Method and system for resource access |
CN100388183C (zh) * | 2003-07-05 | 2008-05-14 | 华为技术有限公司 | 一种实现加权最小连接分配的服务器负载均衡方法 |
US7689986B2 (en) * | 2003-10-21 | 2010-03-30 | Gemstone Systems, Inc. | Shared listeners in shared object space |
US7444536B1 (en) * | 2004-04-16 | 2008-10-28 | Sun Microsystems, Inc. | RMI-IIOP request failover mechanism |
BRPI0418950B1 (pt) * | 2004-07-12 | 2018-03-20 | Zte Corporation | Método de balanceamento de carga para uma rede de área sem fio |
US7836202B2 (en) * | 2005-01-19 | 2010-11-16 | Iona Technologies Limited | Communication system integrating a plurality of middleware and implementing sophisticated paths for data flow |
US7853953B2 (en) * | 2005-05-27 | 2010-12-14 | International Business Machines Corporation | Methods and apparatus for selective workload off-loading across multiple data centers |
US7613131B2 (en) * | 2005-11-10 | 2009-11-03 | Citrix Systems, Inc. | Overlay network infrastructure |
US7603359B2 (en) * | 2006-01-17 | 2009-10-13 | International Business Machines Corporation | Method and apparatus for maintaining federated name context bindings in a name space |
JP2008077428A (ja) * | 2006-09-21 | 2008-04-03 | Fujitsu Ltd | 負荷分散装置、負荷分散方法及び負荷分散プログラム |
EP2100223B1 (en) * | 2006-12-05 | 2011-01-19 | QUALCOMM Incorporated | Apparatus and methods of a zero single point of failure load balancer |
US8645324B2 (en) * | 2009-01-09 | 2014-02-04 | Pivotal Software, Inc. | Preventing pauses in algorithms requiring pre-image information concerning modifications during data replication |
ATE528713T1 (de) | 2009-06-18 | 2011-10-15 | Software Ag | Brokersystem für mehrere broker, clients und server in einem heterogenen netzwerk |
CN101610283B (zh) * | 2009-07-17 | 2012-04-25 | 浪潮电子信息产业股份有限公司 | 一种网卡绑定状态下动态接收负载均衡的方法 |
CN102055730B (zh) * | 2009-11-02 | 2013-09-11 | 华为终端有限公司 | 云处理系统、云处理方法和云计算代理装置 |
GB201015324D0 (en) * | 2010-09-14 | 2010-10-27 | Vodafone Ip Licensing Ltd | Secure association |
US20120173709A1 (en) * | 2011-01-05 | 2012-07-05 | Li Li | Seamless scaling of enterprise applications |
US8898680B2 (en) | 2012-10-15 | 2014-11-25 | Oracle International Corporation | System and method for supporting asynchronous message processing in a distributed data grid |
US20160182291A1 (en) * | 2014-12-23 | 2016-06-23 | Qualcomm Incorporated | Controlling a modality of a dockee in a wireless docking system |
US20170292798A1 (en) * | 2016-04-06 | 2017-10-12 | Fluor Technologies Corporation | Leak detection in heat exchanger systems |
CN107645476B (zh) * | 2016-07-22 | 2021-06-11 | 上海优扬新媒信息技术有限公司 | 请求处理方法和装置 |
CN107545489A (zh) * | 2017-08-18 | 2018-01-05 | 秒啊(北京)科技有限公司 | 一种时间交易方法 |
CN110933180B (zh) * | 2019-12-10 | 2023-05-12 | 深信服科技股份有限公司 | 一种通信建立方法、装置、负载设备及存储介质 |
CN111865664B (zh) * | 2020-06-18 | 2022-08-02 | 烽火通信科技股份有限公司 | 一种orb对象生命周期管理方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09319600A (ja) * | 1996-03-05 | 1997-12-12 | Internatl Business Mach Corp <Ibm> | リモート・プロシージャ・コールを実行する方法及びトランザクション・マネージャ |
JPH10214189A (ja) * | 1996-07-02 | 1998-08-11 | Sun Microsyst Inc | オブジェクト要求ブローカの異なるインプリメンテーション間で通信を実施するブリッジ |
WO1999018534A2 (en) * | 1997-10-06 | 1999-04-15 | Web Balance, Inc. | System for balancing loads among network servers |
WO2000023879A1 (en) * | 1998-10-16 | 2000-04-27 | Objectera, Inc. | Connection concentrator for distributed object systems |
JP2000138712A (ja) * | 1998-11-02 | 2000-05-16 | Sony Corp | アプリケーションシステム間のデータ伝送システム |
WO2000048097A1 (en) * | 1999-02-01 | 2000-08-17 | Iona Technologies, Inc. | A method and system for providing object references in a distributed object environment supporting object migration |
Family Cites Families (98)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5819028A (en) * | 1992-06-10 | 1998-10-06 | Bay Networks, Inc. | Method and apparatus for determining the health of a network |
GB9222282D0 (en) * | 1992-10-22 | 1992-12-09 | Hewlett Packard Co | Monitoring network status |
US5329619A (en) * | 1992-10-30 | 1994-07-12 | Software Ag | Cooperative processing interface and communication broker for heterogeneous computing environments |
CA2110243C (en) * | 1992-12-31 | 1998-08-11 | Philip Steven Winterbottom | Apparatus and methods for making a portion of a first name space available as a portion of a second name space |
US5553242A (en) * | 1993-11-03 | 1996-09-03 | Wang Laboratories, Inc. | Client/server connection sharing |
EP0733971A3 (en) * | 1995-03-22 | 1999-07-07 | Sun Microsystems, Inc. | Method and apparatus for managing connections for communication among objects in a distributed object system |
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 |
US5889953A (en) * | 1995-05-25 | 1999-03-30 | Cabletron Systems, Inc. | Policy management and conflict resolution in computer networks |
US5774668A (en) * | 1995-06-07 | 1998-06-30 | Microsoft Corporation | System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing |
US5710882A (en) * | 1995-06-29 | 1998-01-20 | Telefonaktiebolaget Lm Ericsson | Method and call set up server for setting up a call using a call handling portion and a connection handling portion to handle the call and the connection, respectively |
GB2305270A (en) * | 1995-09-15 | 1997-04-02 | Ibm | Bridge for a client-server environment |
US6006018A (en) * | 1995-10-03 | 1999-12-21 | International Business Machines Corporation | Distributed file system translator with extended attribute support |
US5758186A (en) * | 1995-10-06 | 1998-05-26 | Sun Microsystems, Inc. | Method and apparatus for generically handling diverse protocol method calls in a client/server computer system |
JP3684262B2 (ja) * | 1996-01-17 | 2005-08-17 | 富士通株式会社 | ネットワークシステム及び集線装置 |
US5768501A (en) * | 1996-05-28 | 1998-06-16 | Cabletron Systems | Method and apparatus for inter-domain alarm correlation |
US5717747A (en) * | 1996-05-31 | 1998-02-10 | Lucent Technologies Inc. | Arrangement for facilitating plug-and-play call features |
US6212573B1 (en) * | 1996-06-26 | 2001-04-03 | Sun Microsystems, Inc. | Mechanism for invoking and servicing multiplexed messages with low context switching overhead |
US5727145A (en) * | 1996-06-26 | 1998-03-10 | Sun Microsystems, Inc. | Mechanism for locating objects in a secure fashion |
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 |
US5754763A (en) * | 1996-10-01 | 1998-05-19 | International Business Machines Corporation | Software auditing mechanism for a distributed computer enterprise environment |
US6032175A (en) * | 1996-10-17 | 2000-02-29 | International Business Machines Corporation | Enhanced directory services in compound wide/local area networks |
US6715100B1 (en) * | 1996-11-01 | 2004-03-30 | Ivan Chung-Shung Hwang | Method and apparatus for implementing a workgroup server array |
US6094688A (en) * | 1997-01-08 | 2000-07-25 | Crossworlds Software, Inc. | Modular application collaboration including filtering at the source and proxy execution of compensating transactions to conserve server resources |
US6151639A (en) * | 1997-06-19 | 2000-11-21 | Sun Microsystems, Inc. | System and method for remote object invocation |
US5808911A (en) * | 1997-06-19 | 1998-09-15 | Sun Microsystems, Inc. | System and method for remote object resource management |
US5931900A (en) * | 1997-08-25 | 1999-08-03 | I2 Technologies, Inc. | System and process for inter-domain interaction across an inter-domain connectivity plane |
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 |
US6074427A (en) * | 1997-08-30 | 2000-06-13 | Sun Microsystems, Inc. | Apparatus and method for simulating multiple nodes on a single machine |
US6275870B1 (en) * | 1997-09-24 | 2001-08-14 | Sony Corporation | Network object request broker |
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 |
US6334114B1 (en) * | 1997-10-31 | 2001-12-25 | Oracle Corporation | Method and apparatus for performing transactions in a stateless web environment which supports a declarative paradigm |
US6446204B1 (en) * | 1997-10-31 | 2002-09-03 | Oracle Corporation | Method and apparatus for implementing an extensible authentication mechanism in a web application server |
US6185623B1 (en) * | 1997-11-07 | 2001-02-06 | International Business Machines Corporation | Method and system for trivial file transfer protocol (TFTP) subnet broadcast |
US6209018B1 (en) * | 1997-11-13 | 2001-03-27 | Sun Microsystems, Inc. | Service framework for a distributed object network system |
US6822955B1 (en) * | 1998-01-22 | 2004-11-23 | Nortel Networks Limited | Proxy server for TCP/IP network address portability |
US6484261B1 (en) * | 1998-02-17 | 2002-11-19 | Cisco Technology, Inc. | Graphical network security policy management |
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 |
JP3966598B2 (ja) * | 1998-03-04 | 2007-08-29 | 富士通株式会社 | サーバ選択システム |
US6298044B1 (en) * | 1998-03-31 | 2001-10-02 | Hewlett-Packard Company | Method and apparatus for determining if overloaded collision domains can be split to enhance network |
US6167052A (en) * | 1998-04-27 | 2000-12-26 | Vpnx.Com, Inc. | Establishing connectivity in networks |
US7430164B2 (en) * | 1998-05-04 | 2008-09-30 | Hewlett-Packard Development Company, L.P. | Path recovery on failure in load balancing switch protocols |
US20070078978A1 (en) * | 1998-06-01 | 2007-04-05 | Sri International | Method and apparatus for updating information in a low-bandwidth client/server object-oriented system |
US7039597B1 (en) * | 1998-06-05 | 2006-05-02 | I2 Technologies Us, Inc. | Method and system for managing collaboration within and between enterprises |
US6237135B1 (en) | 1998-06-18 | 2001-05-22 | Borland Software Corporation | Development system with visual design tools for creating and maintaining Java Beans components |
US6697869B1 (en) * | 1998-08-24 | 2004-02-24 | Koninklijke Philips Electronics N.V. | Emulation of streaming over the internet in a broadcast application |
US6484213B1 (en) * | 1998-09-09 | 2002-11-19 | Compaq Information Technologies Group, Inc. | Adapting networking device for enhancing performance of a hybrid networking system |
US6636893B1 (en) * | 1998-09-24 | 2003-10-21 | Itron, Inc. | Web bridged energy management system and method |
US6338089B1 (en) * | 1998-10-06 | 2002-01-08 | Bull Hn Information Systems Inc. | Method and system for providing session pools for high performance web browser and server communications |
US6693661B1 (en) * | 1998-10-14 | 2004-02-17 | Polycom, Inc. | Conferencing system having an embedded web server, and method of use thereof |
US6236999B1 (en) * | 1998-11-05 | 2001-05-22 | Bea Systems, Inc. | Duplicated naming service in a distributed processing system |
US6385643B1 (en) * | 1998-11-05 | 2002-05-07 | Bea Systems, Inc. | Clustered enterprise Java™ having a message passing kernel in a distributed processing system |
US6571274B1 (en) * | 1998-11-05 | 2003-05-27 | Beas Systems, Inc. | Clustered enterprise Java™ in a secure distributed processing system |
FR2787956B1 (fr) * | 1998-12-24 | 2001-02-23 | France Telecom | Procede d'adressage dans un reseau numerique de telecommunications et serveur de noms et d'adresses mettant en oeuvre un tel procede |
US6611872B1 (en) * | 1999-01-11 | 2003-08-26 | Fastforward Networks, Inc. | Performing multicast communication in computer networks by using overlay routing |
US6556541B1 (en) * | 1999-01-11 | 2003-04-29 | Hewlett-Packard Development Company, L.P. | MAC address learning and propagation in load balancing switch protocols |
AU3352500A (en) * | 1999-01-29 | 2000-08-18 | Iona Technologies Inc. | Method and system for dynamic configuration of interceptors in a client-server environment |
US7415713B2 (en) * | 2000-01-28 | 2008-08-19 | Iona Technologies, Plc | Method and system for dynamic configuration of interceptors in a client-server environment |
US6684246B1 (en) * | 1999-02-03 | 2004-01-27 | William H. Gates, III | Method and system for tracking clients |
US6591272B1 (en) * | 1999-02-25 | 2003-07-08 | Tricoron Networks, Inc. | Method and apparatus to make and transmit objects from a database on a server computer to a client computer |
US6687831B1 (en) * | 1999-04-29 | 2004-02-03 | International Business Machines Corporation | Method and apparatus for multiple security service enablement in a data processing system |
US6622127B1 (en) * | 1999-05-11 | 2003-09-16 | Kaiser Foundation Hospitals | Order allocation to select from inventory locations stocking few units of inventory |
US6694437B1 (en) * | 1999-06-22 | 2004-02-17 | Institute For Information Technology | System and method for on-demand access concentrator for virtual private networks |
US6427164B1 (en) * | 1999-06-23 | 2002-07-30 | Mail Registry, Inc. | Systems and methods for automatically forwarding electronic mail when the recipient is otherwise unknown |
US6633878B1 (en) * | 1999-07-30 | 2003-10-14 | Accenture Llp | Initializing an ecommerce database framework |
US6842906B1 (en) * | 1999-08-31 | 2005-01-11 | Accenture Llp | System and method for a refreshable proxy pool in a communication services patterns environment |
US7290056B1 (en) * | 1999-09-09 | 2007-10-30 | Oracle International Corporation | Monitoring latency of a network to manage termination of distributed transactions |
US6308238B1 (en) * | 1999-09-24 | 2001-10-23 | Akamba Corporation | System and method for managing connections between clients and a server with independent connection and data buffers |
ATE244416T1 (de) * | 1999-11-22 | 2003-07-15 | Microsoft Corp | Kommunikation zwischen kontextungebundenen und kontextgebundenen objekten |
US6931455B1 (en) * | 1999-11-30 | 2005-08-16 | Recursion Software, Inc. | System and method for communications between a CORBA object request broker and a non-CORBA object request broker |
US7120692B2 (en) * | 1999-12-02 | 2006-10-10 | Senvid, Inc. | Access and control system for network-enabled devices |
US6754706B1 (en) * | 1999-12-16 | 2004-06-22 | Speedera Networks, Inc. | Scalable domain name system with persistence and load balancing |
US7340532B2 (en) * | 2000-03-10 | 2008-03-04 | Akamai Technologies, Inc. | Load balancing array packet routing system |
US7051032B2 (en) * | 2000-03-17 | 2006-05-23 | International Business Machines Corporation | System and method for providing post HOC access to legacy applications and data |
WO2001073551A2 (en) * | 2000-03-29 | 2001-10-04 | Nextset Software Inc. | System and method of providing an asynchronous interface between a client system and an enterprise javabeans-enabled server |
US7478403B1 (en) * | 2000-04-21 | 2009-01-13 | Sun Microsystems, Inc. | Secure access to managed network objects using a configurable platform-independent gateway providing individual object-level access control |
US7228346B1 (en) * | 2000-04-21 | 2007-06-05 | Sun Microsystems, Inc. | IDL event and request formatting for corba gateway |
US6950935B1 (en) * | 2000-04-21 | 2005-09-27 | Sun Microsystems, Inc. | Pluggable authentication modules for telecommunications management network |
US7206843B1 (en) * | 2000-04-21 | 2007-04-17 | Sun Microsystems, Inc. | Thread-safe portable management interface |
US6915324B1 (en) * | 2000-04-21 | 2005-07-05 | Sun Microsystems, Inc. | Generic and dynamic mapping of abstract syntax notation (ASN1) to and from interface definition language for network management |
US7010586B1 (en) * | 2000-04-21 | 2006-03-07 | Sun Microsystems, Inc. | System and method for event subscriptions for CORBA gateway |
US6839748B1 (en) * | 2000-04-21 | 2005-01-04 | Sun Microsystems, Inc. | Synchronous task scheduler for corba gateway |
US6950848B1 (en) * | 2000-05-05 | 2005-09-27 | Yousefi Zadeh Homayoun | Database load balancing for multi-tier computer systems |
US7280529B1 (en) * | 2000-05-20 | 2007-10-09 | Ciena Corporation | Providing network management access through user profiles |
US6922685B2 (en) * | 2000-05-22 | 2005-07-26 | Mci, Inc. | Method and system for managing partitioned data resources |
US20030061323A1 (en) * | 2000-06-13 | 2003-03-27 | East Kenneth H. | Hierarchical system and method for centralized management of thin clients |
US6868543B1 (en) * | 2000-06-16 | 2005-03-15 | International Business Machines Corporation | Location transparent event handling |
US9038170B2 (en) * | 2000-07-10 | 2015-05-19 | Oracle International Corporation | Logging access system events |
WO2002006971A1 (en) * | 2000-07-13 | 2002-01-24 | Aprisma Management Technologies, Inc. | Method and apparatus for a comprehensive network management system |
US7814180B2 (en) * | 2000-07-13 | 2010-10-12 | Infoblox, Inc. | Domain name service server |
US7725602B2 (en) * | 2000-07-19 | 2010-05-25 | Akamai Technologies, Inc. | Domain name resolution using a distributed DNS network |
WO2002010917A1 (en) * | 2000-07-27 | 2002-02-07 | Bea Systems, Inc. | System and method for concentration and load-balancing of requests |
US6557009B1 (en) | 2000-09-01 | 2003-04-29 | American Management Systems, Inc. | Environmental permit web portal with data validation capabilities |
FI20011239A (fi) * | 2001-06-12 | 2002-12-13 | Nokia Corp | Tiedonsiirtomenetelmä ja -järjestely |
FI20011237A0 (fi) * | 2001-06-12 | 2001-06-12 | Nokia Corp | Tiedonsiirtomenetelmä ja -järjestely |
US6981029B1 (en) * | 2001-07-17 | 2005-12-27 | Cisco Technology, Inc. | System and method for processing a request for information in a network |
US7058717B2 (en) * | 2002-07-25 | 2006-06-06 | International Business Machines Corporation | Method and system for providing highly available services based on a load balancing policy and a reusable connection context object |
CA2425048C (en) * | 2003-04-08 | 2008-06-03 | Ibm Canada Limited - Ibm Canada Limitee | Method and system for resource access |
EP1751745B1 (en) * | 2003-11-14 | 2019-07-10 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
-
2001
- 2001-07-17 WO PCT/US2001/022343 patent/WO2002010917A1/en active IP Right Grant
- 2001-07-17 KR KR1020037001225A patent/KR100798504B1/ko active IP Right Grant
- 2001-07-17 US US09/907,025 patent/US6990511B2/en not_active Expired - Lifetime
- 2001-07-17 EP EP01954704.1A patent/EP1311946B1/en not_active Expired - Lifetime
- 2001-07-17 AU AU2001276932A patent/AU2001276932B2/en not_active Expired
- 2001-07-17 AU AU7693201A patent/AU7693201A/xx active Pending
- 2001-07-17 JP JP2002515576A patent/JP5085831B2/ja not_active Expired - Lifetime
- 2001-07-17 CN CNB018153224A patent/CN1249576C/zh not_active Expired - Lifetime
- 2001-07-17 CA CA2417509A patent/CA2417509C/en not_active Expired - Lifetime
-
2005
- 2005-10-31 US US11/262,632 patent/US7774403B2/en not_active Expired - Lifetime
-
2010
- 2010-07-28 US US12/845,630 patent/US8166095B2/en not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09319600A (ja) * | 1996-03-05 | 1997-12-12 | Internatl Business Mach Corp <Ibm> | リモート・プロシージャ・コールを実行する方法及びトランザクション・マネージャ |
JPH10214189A (ja) * | 1996-07-02 | 1998-08-11 | Sun Microsyst Inc | オブジェクト要求ブローカの異なるインプリメンテーション間で通信を実施するブリッジ |
WO1999018534A2 (en) * | 1997-10-06 | 1999-04-15 | Web Balance, Inc. | System for balancing loads among network servers |
WO2000023879A1 (en) * | 1998-10-16 | 2000-04-27 | Objectera, Inc. | Connection concentrator for distributed object systems |
JP2003527763A (ja) * | 1998-10-16 | 2003-09-16 | シルバーストリーム・ソフトウェア・インコーポレーテッド | 分散オブジェクト・システム用の接続集線装置 |
JP2000138712A (ja) * | 1998-11-02 | 2000-05-16 | Sony Corp | アプリケーションシステム間のデータ伝送システム |
WO2000048097A1 (en) * | 1999-02-01 | 2000-08-17 | Iona Technologies, Inc. | A method and system for providing object references in a distributed object environment supporting object migration |
Also Published As
Publication number | Publication date |
---|---|
CN1249576C (zh) | 2006-04-05 |
JP5085831B2 (ja) | 2012-11-28 |
US7774403B2 (en) | 2010-08-10 |
EP1311946A1 (en) | 2003-05-21 |
CN1483162A (zh) | 2004-03-17 |
CA2417509A1 (en) | 2002-02-07 |
US20060069723A1 (en) | 2006-03-30 |
US8166095B2 (en) | 2012-04-24 |
EP1311946A4 (en) | 2008-01-02 |
KR100798504B1 (ko) | 2008-01-28 |
KR20030031134A (ko) | 2003-04-18 |
US20110016203A1 (en) | 2011-01-20 |
AU2001276932B2 (en) | 2007-06-21 |
AU7693201A (en) | 2002-02-13 |
WO2002010917A1 (en) | 2002-02-07 |
US6990511B2 (en) | 2006-01-24 |
CA2417509C (en) | 2013-02-19 |
EP1311946B1 (en) | 2017-12-27 |
US20020019872A1 (en) | 2002-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5085831B2 (ja) | リクエストの集中及びロードバランシングのためのシステム及び方法 | |
AU2001276932A1 (en) | System and method for concentration and load-balancing of requests | |
US6845393B1 (en) | Lookup discovery service in a distributed system having a plurality of lookup services each with associated characteristics and services | |
US6189046B1 (en) | Mechanism and method for merging cached location information in a distributed object environment | |
KR100811876B1 (ko) | 분산 처리 시스템의 스마트 스터브 또는 엔터프라이즈java™ 빈 | |
US7444536B1 (en) | RMI-IIOP request failover mechanism | |
US7257817B2 (en) | Virtual network with adaptive dispatcher | |
US6941555B2 (en) | Clustered enterprise Java™ in a secure distributed processing system | |
US7437417B2 (en) | Method for publish/subscribe messaging | |
US6282581B1 (en) | Mechanism for resource allocation and for dispatching incoming calls in a distributed object environment | |
US7899047B2 (en) | Virtual network with adaptive dispatcher | |
US7664818B2 (en) | Message-oriented middleware provider having multiple server instances integrated into a clustered application server infrastructure | |
JP2004519024A (ja) | 多数のノードを含むクラスタを管理するためのシステム及び方法 | |
US7934218B2 (en) | Interprocess communication management using a socket layer | |
Narasimhan et al. | Gateways for accessing fault tolerance domains | |
JP2000311094A (ja) | 遠隔オブジェクト間の通信方法 | |
KR100439761B1 (ko) | 코바에서의 그룹 통신 시스템 및 방법 | |
CN115766687B (zh) | 一种家庭网关ipv6文件系统及其交互方法 | |
JP2000187599A (ja) | 異なる参照ドメイン間のオブジェクト・ブリッジング方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080716 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080716 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20101027 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20101027 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20101027 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20110602 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20110602 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110705 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111004 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120515 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120814 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120904 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120906 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5085831 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150914 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |