JP5085831B2 - リクエストの集中及びロードバランシングのためのシステム及び方法 - Google Patents

リクエストの集中及びロードバランシングのためのシステム及び方法 Download PDF

Info

Publication number
JP5085831B2
JP5085831B2 JP2002515576A JP2002515576A JP5085831B2 JP 5085831 B2 JP5085831 B2 JP 5085831B2 JP 2002515576 A JP2002515576 A JP 2002515576A JP 2002515576 A JP2002515576 A JP 2002515576A JP 5085831 B2 JP5085831 B2 JP 5085831B2
Authority
JP
Japan
Prior art keywords
connection
handler
remote server
client
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.)
Expired - Lifetime
Application number
JP2002515576A
Other languages
English (en)
Other versions
JP2004505372A5 (ja
JP2004505372A (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 JP2004505372A publication Critical patent/JP2004505372A/ja
Publication of JP2004505372A5 publication Critical patent/JP2004505372A5/ja
Application granted granted Critical
Publication of JP5085831B2 publication Critical patent/JP5085831B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/59Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (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)

Description

【0001】
著作権通告
本明細書の一部は、著作権保護を受ける内容を含んでいる。著作権者は、特許明細書又は本発明開示のファクシミリ再生を、何人が行なうことも、それが、特許庁のファイル又は記録に現れる場合においは、なんら異議を有さないが、それ以外の場合には、如何なる場合も、全ての著作権を保有する。
【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 (19)

  1. ローカルクライアントアプリケーションがリモートサーバサービスを呼び出すことを可能にするための、分散型オブジェクト環境で使用するためのシステムであり、
    コンセントレータを備え、前記コンセントレータは、リモートサーバサービスを呼び出すための、ローカルクライアントアプリケーションからのリクエストを集約し、前記リモートサーバサービスを識別し、及び前記ローカルクライアントアプリケーションを前記リモートサーバサービスに動作可能に接続
    前記コンセントレータは、
    前記ローカルクライアントアプリケーションから前記リモートサーバサービスへの接続を扱う複数の接続ハンドラ
    前記接続を扱うため前記複数の接続ハンドラのうちのどの接続ハンドラを使用するかを決めるリスナーと、
    前記リスナーと前記複数の接続ハンドラとの間の通信を可能にする共用メモリを備え、前記共用メモリは、現在接続されているリモートサーバのリストを含み
    前記リスナーは、
    ローカルクライアントのホスト、ポート及びクライアント識別子パラメータと一緒にオブジェクトリファレンスを集約する処理を実行するサービスルーチンを呼び出すステップと
    前記オブジェクトリファレンスのホストまたはポートをハッシュすることにより当該ホストまたは当該ポートが既に使用されているか否かを決めるために前記共用メモリ内を検索するステップと
    現存する接続ハンドラが前記接続を扱うことが出来る場合、前記リクエストを扱うために、前記現存する接続ハンドラを当該接続に割り当てるステップと
    当該接続を扱うことのできる接続ハンドラが現存しない場合、前記リクエストを扱うために新たな接続ハンドラをスタートするステップとを実行する、システム。
  2. ローカルクライアントアプリケーションがリモートサーバ上のリモートサーバサービスを呼び出すことを可能にする分散型オブジェクト環境で使用するための方法において、
    前記ローカルクライアントアプリケーションからリモートサーバへの接続を扱うために、複数の接続ハンドラ準備するステップと、
    前記リモートサーバに接続されているコンセントレータが、リスナーとして、前記複数の接続ハンドラの内のどの特定の接続ハンドラが接続を扱うかを決めるステップとを含み、前記決めるステップは、
    ローカルクライアントのホスト、ポート及びクライアント識別子パラメータと一緒にオブジェクトリファレンスを集約する処理を実行するサービスルーチンを呼び出すことと
    前記オブジェクトリファレンスのホストまたはポートをハッシュすることにより、当該ホストまたは当該ポートが既に使用されているか否かを決めるために、前記リスナーと前記複数の接続ハンドラとによって使用される共用メモリ内を検索することとを含み、前記共用メモリは、現在接続されているリモートサーバのリストを含み、
    現存する接続ハンドラが接続を扱うことが出来る場合、リクエストを扱うために、現存する接続ハンドラを当該接続に割り当て、
    接続を扱うことのできる接続ハンドラが現存しない場合、前記リクエストを扱うために新たなハンドラをスタートすることを含み、さらに、
    前記コンセントレータが、前記ローカルクライアントアプリケーションからのリクエストを集約するステップと、
    前記コンセントレータが、前記リモートサーバを識別するステップと、
    前記接続ハンドラが、前記ローカルクライアントアプリケーションを、前記リモートサーバに動作可能に接続することを含む、方法。
  3. 前記コンセントレータが、前記リモートサーバが前記接続ハンドラに現在接続されているかを知るために、前記リスナーと前記接続ハンドラとで使用される共用メモリスペースを参照することを更に含む請求項2記載の方法。
  4. 前記リモートサーバが、前記接続ハンドラに現在接続されていない場合、前記コンセントレータが、前記リモートサーバを前記接続ハンドラに接続し、且つ前記共用メモリを更新することを更に含む請求項3記載の方法。
  5. 前記共用メモリを更新する前記ステップが、現在接続されている前記リモートサーバのリストを更新し、前記接続ハンドラが各接続を取り扱うことを特徴とする請求項4記載の方法。
  6. 前記コンセントレータが、現在接続されているリモートサーバのリストを参照して、どの接続ハンドラが接続を扱うべきかを決め、前記接続ハンドラが共用メモリ内の各接続を扱うステップを更に含む請求項3記載の方法。
  7. 多重接続ハンドラの一つを接続を扱うために使用することができる請求項2記載の方法。
  8. ローカルクライアントアプリケーションがリモートサーバサービスを呼び出すことを可能にするための分散型オブジェクト環境で使用するためのシステムであって
    前記ローカルクライアントアプリケーションからの前記リモートサーバサービスを呼び出すIIOPリクエストを集約するためのコンセントレータを具備し、前記コンセントレータが更に、
    前記ローカルクライアントアプリケーションから前記リモートサーバサービスへの接続を扱うための複数の接続ハンドラ
    前記複数の接続ハンドラの内の接続を扱うための特定の接続ハンドラを決めるリスナー
    前記リスナーと前記複数の接続ハンドラとの間での通信を可能にする共用メモリを含み、前記共用メモリが現在接続されているリモートサーバのリストを含み
    前記リスナーは、
    ローカルクライアントのホスト、ポート及びクライアント識別子パラメータと一緒にオブジェクトリファレンスを集約するためにサービスルーチンを呼び出すステップと
    前記オブジェクトリファレンスのホストまたはポートをハッシュすることにより当該ホストまたは当該ポートが既に使用されているか否かを決めるために前記共用メモリ内を検索するステップと
    現存する接続ハンドラが接続を扱うことが出来る場合、前記IIOPリクエストを扱うために、前記現存する接続ハンドラを当該接続に割り当てるステップと
    接続を扱うことのできる接続ハンドラが現存しない場合、前記IIOPリクエストを扱うために新たなハンドラをスタートするステップとを実行する、システム。
  9. 前記ローカルクライアントアプリケーションが、
    オブジェクトリファレンスを集約する時において、前記オブジェクトリファレンスがリモートであるかを決め、リモートである場合、ORBを、オブジェクトリファレンスからのクライアント情報で初期化するステップを実行し前記クライアント情報が存在する場合にバインドフラグが設定され、
    前記ローカルクライアントアプリケーションは、さらに、
    前記バインドフラグが存在する場合、前記リモートサーバサービスを集約し、戻されたISH(IIOP サーバハンドラ)クライアント情報及びリスナー情報を前記共用メモリに記憶するステップと
    前記バインドフラグが存在しない場合、前記クライアント情報を前記共用メモリ内に記憶するステップと
    クライアント識別子について前記共用メモリ内を検索し、そのクライアント識別子を呼び出すステップと
    前記接続が切断された時、適当なエントリについて前記共用メモリ内を検索し、前記エントリを使用して、前記リモートサーバサービスを解放するステップとを実行する、請求項8記載のシステム。
  10. 前記接続ハンドラが、
    メッセージキューから、前記ローカルクライアントアプリケーションと前記リモートサーバサービスとの通信のためにORBによって生成されるメッセージを受信するステップと
    前記ローカルクライアントアプリケーションに基づいて、前記接続ハンドラをクライアントコンテキスト又はハンドラコンテキストに切り換えるステップと
    IIOPリクエストのコピーを作り、且つ当該IIOPリクエストのオリジナルのIIOPリクエストidを一義的なidで置き換えるステップと
    前記IIOPリクエストをこのコンテキストに対する未処理リクエストのリストに置くステップと
    前記コンテキストがクライアントコンテキストである場合で、且つ対の第2の接続及び前記接続が存在しない場合、一つの接続を生成し、IIOPリクエストを前記ローカルクライアントアプリケーションに送るステップと
    前記コンテキストが前記ハンドラコンテキストである場合、接続インデックスを使用して、アウトバウンド接続を決め、接続が存在しない場合、接続を生成し、IIOPリクエストをローカルクライアントアプリケーションに送るステップと
    リプライが接続から戻る時、対応するリクエストに対する未処理リクエストのリストを検索し、前記一義的なidを前記オリジナルのIIOPリクエストidで置き換え、前記リプライを前記ローカルクライアントアプリケーションに送るステップとを実行する、請求項8記載のシステム。
  11. 前記ローカルクライアントアプリケーションが実行されるクライアント装置は、ネイティブC++クライアント、Javaクライアント、通知サービス、又はクライアントとして機能するネイティブサーバの何れか一つである請求項8記載のシステム。
  12. 前記リモートサーバサービスが実行される装置が、ネイティブサーバ、イベントに対して登録されたネイティブクライアント、又は非ネイティブCORBA−迎合ORBサーバの何れか一つである請求項8記載のシステム。
  13. ローカルクライアントアプリケーションがリモートサーバサービスに呼び掛けを行うことを可能にする分散型オブジェクト環境で使用するための方法において、
    ローカルクライアントアプリケーションからリモートサーバサービスへの接続を扱うために、複数の接続ハンドラが準備するステップと、
    リスナーが、前記複数の接続ハンドラの内のどの特定の接続ハンドラが接続を扱うかを決めるステップと、
    前記リスナーが、リモートサーバサービスを呼び出す、ローカルクライアントアプリケーションからのリクエストを集約するステップとを含み、前記集約するステップは、
    リモートサーバサービスを識別するステップと、
    ローカルクライアントアプリケーションを、前記特定の接続ハンドラを介して前記リモートサーバサービスに作動的に接続するステップとを含み、
    前記リスナーが追加のステップを実行し、前記追加のステップは、
    ローカルクライアントのホスト、ポート及びクライアント識別子パラメータと一緒にオブジェクトリファレンスを集約するためにサービスルーチンを呼び出すステップと、
    前記オブジェクトリファレンスのホストまたはポートをハッシュすることにより当該ホストまたはポートが既に使用されているか否かを決めるために、前記リスナーと前記複数の接続ハンドラとの間の通信を可能にする共用メモリ内を検索するステップと、
    現存する接続ハンドラが接続を扱うことが出来る場合、前記リクエストを扱うために、前記現存する接続ハンドラを当該接続に割り当てるステップと、
    接続を扱うことのできる接続ハンドラが現存しない場合、前記リクエストを扱うために新たな接続ハンドラをスタートするステップとを含む、方法。
  14. 前記ローカルクライアントアプリケーションが追加のステップを実行し、前記追加のステップは、
    オブシェクトリファレンスを集約する時に、オブジェクトリファレンスがリモートであるか否かを決定し、リモートである場合、ORBをオブジェクトリファレンスからのクライアント情報で初期化するステップを含み前記クライアント情報が存在する場合にバインドフラグが設定され、
    前記追加のステップは、さらに、
    前記バインドフラグが現存する場合、前記リモートサーバサービスを集約し、戻されたISHクライアント情報及びリスナー情報を前記共用メモリ内に記憶するステップと、
    前記バインドフラグが現存しない場合、前記クライアント情報を前記共用メモリ内に記憶するステップと、
    クライアント識別子に付いて前記共用メモリ内を検索し、クライアント識別子に呼び掛けを行うステップと、
    前記接続が切断される時、適当なエントリに付いて共用メモリ内を検索し、そして前記エントリを使用して、前記リモートサーバサービスを解放するステップとを含む、請求項13記載の方法。
  15. 前記接続ハンドラが追加のステップを実行し、前記追加のステップは、
    メッセージキューから、前記ローカルクライアントアプリケーションと前記リモートサーバサービスとの通信のためにORBによって生成されるメッセージを受信するステップと、
    前記ローカルクライアントアプリケーションに基づいて、前記接続ハンドラをクライアントコンテキスト又はハンドラコンテキストの何れかに切り換えるステップと、
    IIOPリクエストのコピーを作り、そしてオリジナルのIIOPリクエストidを一義的なidで置き換えるステップと、
    前記IIOPリクエストを、このコンテキストに対する未処理リクエストのリストに置くステップと、
    前記コンテキストがクライアントコンテキストである場合で、且つ、対にされる第2の接続及び接続が依然として存在しない場合、接続を生成し、前記IIOPリクエストをローカルクライアントアプリケーションに送るステップと、
    前記コンテキストがハンドラコンテキストである場合、接続インデックスを使用してアウトバウンド接続を決定し、接続が存在しない場合、接続を生成し、前記IIOPリクエストを前記ローカルクライアントアプリケーションに送るステップと、
    リプライが、接続から戻される時、対応するリクエストに対する未処理リクエストのリストを検索し、前記一義的なidをオリジナルのリクエストidで置き換え、前記リプライを前記ローカルクライアントアプリケーションに送り戻すステップとを含む、請求項13記載の方法。
  16. 前記ローカルクライアントアプリケーションが、ネイティブC++クライアント、Javaクライアント、通知サービス、又はクライアントとして機能するネイティブサーバの内の何れかであることを特徴とする請求項13記載の方法。
  17. リモートサーバが、ネイティブサーバ、イベントに対して登録されたネイティブクライアント、又は非ネイティブCORBA−迎合ORBサーバの何れかである請求項13記載の方法。
  18. ローカルクライアントアプリケーションがリモートサーバサービスに呼び掛けることを可能にするための、分散型オブジェクト環境で使用するためのシステムであり、
    ローカルクライアントアプリケーションから前記リモートサーバサービスを呼び出すリクエストを集約するコンセントレータを備え、前記コンセントレータは、
    前記ローカルクライアントアフリケーションからリモートサーバサービスへの接続を扱う複数の接続ハンドラ、
    前記複数の接続ハンドラの内の接続を扱う特定の接続ハンドラを決めるリスナー、及び
    前記リスナーと前記複数の接続ハンドラとの間の通信を可能にする共用メモリを含み、前記共用メモリが現在接続されているリモートサーバのリストを含み、前記接続ハンドラが各接続を扱い、
    前記リスナーは、
    ローカルクライアントのホスト、ポート及びクライアント識別子パラメータと一緒にオブジェクトリファレンスを集約するためにサービスルーチンを呼び出すステップと
    前記オブジェクトリファレンスのホストまたはポートをハッシュすることにより、前記オブジェクトリファレンスのホストまたはポートが既に使用されているか否かを決めるために前記共用メモリ内を検索するステップと
    ユーザ多重化リファリンスカウントを増加するステップと
    現存する接続ハンドラが接続を扱うことが出来る場合、前記リクエストを扱うために、前記現存する接続ハンドラを前記接続に割り当てるステップと
    接続を扱うことのできる接続ハンドラが現存しない場合、前記リクエストを扱うために新たな接続ハンドラをスタートするステップとを実行する、システム。
  19. ローカルクライアントアプリケーションがリモートサーバサービスに呼び掛けを行なうことを可能にする分散型オブジェクト環境で使用するための方法において、
    リスナーが、前記ローカルクライアントアプリケーションから前記リモートサーバサービスへの接続を扱うために、複数の接続ハンドラを準備するステップと、
    前記リスナーが、前記複数の接続ハンドラの内のどの特定の接続ハンドラが接続を扱うかを決めるステップと、
    前記リスナーが、前記リモートサーバサービスを呼び出す前記ローカルクライアントアプリケーションからのリクエストを集約するステップとを含み、前記集約するステップは、
    前記リモートサーバサービスを識別するステップと、
    前記ローカルクライアントアプリケーションを、前記特定の接続ハンドラを介して前記リモートサーバサービスに動作可能に接続するステップとを含み、
    前記リスナーが追加のステップを実行し、前記追加のステップは、
    ローカルクライアントのホスト、ポート及びクライアント識別子パラメータと一緒にオブジェクトリファレンスを集約するためにサービスルーチンを呼び出すステップと、
    前記オブジェクトリファレンスのホストまたはポートをハッシュすることにより、前記オブジェクトリファレンスのホストまたはポートが既に使用されているか否かを決めるために、前記リスナーと前記複数の接続ハンドラとによって使用される共用メモリ内を検索するステップとを含み、前記共用メモリは、現在接続されているリモートサーバのリストを含み
    ユーザ多重化リファリンスカウントを増加するステップと、
    現存する接続ハンドラが接続を扱うことが出来る場合、前記リクエストを扱うために前記現存する接続ハンドラを前記接続に割り当てるステップと、
    接続を扱うことのできる接続ハンドラが現存しない場合、前記リクエストを扱うために新たなハンドラをスタートするステップとを含む、方法。
JP2002515576A 2000-07-27 2001-07-17 リクエストの集中及びロードバランシングのためのシステム及び方法 Expired - Lifetime JP5085831B2 (ja)

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 JP2004505372A (ja) 2004-02-19
JP2004505372A5 JP2004505372A5 (ja) 2008-09-04
JP5085831B2 true 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) AU7693201A (ja)
CA (1) CA2417509C (ja)
WO (1) WO2002010917A1 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU7693201A (en) * 2000-07-27 2002-02-13 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
RU2382527C2 (ru) * 2004-07-12 2010-02-20 Зте Корпарейшен Способ осуществления системы распределения загрузки в беспроводной локальной сети передачи данных
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 負荷分散装置、負荷分散方法及び負荷分散プログラム
CN101542445B (zh) * 2006-12-05 2012-10-10 高通股份有限公司 零单点故障负载平衡器的设备及方法
US8645324B2 (en) * 2009-01-09 2014-02-04 Pivotal Software, Inc. Preventing pauses in algorithms requiring pre-image information concerning modifications during data replication
EP2264594B1 (en) 2009-06-18 2011-10-12 Software AG A broker system for a plurality of brokers, clients and servers in a heterogeneous network
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
US8930409B2 (en) 2012-10-15 2015-01-06 Oracle International Corporation System and method for supporting named operations 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对象生命周期管理方法及系统

Family Cites Families (104)

* Cited by examiner, † Cited by third party
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 富士通株式会社 ネットワークシステム及び集線装置
US5761507A (en) 1996-03-05 1998-06-02 International Business Machines Corporation Client/server architecture supporting concurrent servers within a server with a transaction manager providing server/connection decoupling
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
US5727145A (en) * 1996-06-26 1998-03-10 Sun Microsystems, Inc. Mechanism for locating objects in a secure fashion
US6212573B1 (en) * 1996-06-26 2001-04-03 Sun Microsystems, Inc. Mechanism for invoking and servicing multiplexed messages with low context switching overhead
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
US6282580B1 (en) * 1996-07-02 2001-08-28 Sun Microsystems, Inc. Bridge providing communication between different implementations of object request brokers
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
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
US5931900A (en) * 1997-08-25 1999-08-03 I2 Technologies, Inc. System and process for inter-domain interaction across an inter-domain connectivity plane
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
US6128279A (en) * 1997-10-06 2000-10-03 Web Balance, Inc. System for balancing loads among network servers
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
US6446204B1 (en) * 1997-10-31 2002-09-03 Oracle Corporation Method and apparatus for implementing an extensible authentication mechanism in a web application server
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
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
CN1335956A (zh) * 1998-10-16 2002-02-13 西尔弗斯特里姆软件公司 分布式系统的连接集线器
JP2000138712A (ja) * 1998-11-02 2000-05-16 Sony Corp アプリケーションシステム間のデータ伝送システム
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
US6453320B1 (en) * 1999-02-01 2002-09-17 Iona Technologies, Inc. Method and system for providing object references in a distributed object environment supporting object migration
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
WO2000068856A2 (en) * 1999-05-11 2000-11-16 Webvan Group, Inc. Electronic commerce enabled delivery system and method
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
WO2001038979A1 (en) * 1999-11-22 2001-05-31 Microsoft Corporation Communication among agile and context-bound objects
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
US7206843B1 (en) * 2000-04-21 2007-04-17 Sun Microsystems, Inc. Thread-safe portable management interface
US6839748B1 (en) * 2000-04-21 2005-01-04 Sun Microsystems, Inc. Synchronous task scheduler for corba gateway
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
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
US7010586B1 (en) * 2000-04-21 2006-03-07 Sun Microsystems, Inc. System and method for event subscriptions for CORBA gateway
US6950935B1 (en) * 2000-04-21 2005-09-27 Sun Microsystems, Inc. Pluggable authentication modules for telecommunications management network
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
US7814180B2 (en) * 2000-07-13 2010-10-12 Infoblox, Inc. Domain name service server
US7769847B2 (en) * 2000-07-13 2010-08-03 Computer Associates Think, Inc. Method and apparatus for a comprehensive network management system
US7725602B2 (en) * 2000-07-19 2010-05-25 Akamai Technologies, Inc. Domain name resolution using a distributed DNS network
AU7693201A (en) * 2000-07-27 2002-02-13 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
FI20011237A0 (fi) * 2001-06-12 2001-06-12 Nokia Corp Tiedonsiirtomenetelmä ja -järjestely
FI20011239A (fi) * 2001-06-12 2002-12-13 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

Also Published As

Publication number Publication date
EP1311946A1 (en) 2003-05-21
US7774403B2 (en) 2010-08-10
CA2417509A1 (en) 2002-02-07
US20020019872A1 (en) 2002-02-14
US6990511B2 (en) 2006-01-24
JP2004505372A (ja) 2004-02-19
CA2417509C (en) 2013-02-19
CN1483162A (zh) 2004-03-17
AU7693201A (en) 2002-02-13
AU2001276932B2 (en) 2007-06-21
EP1311946A4 (en) 2008-01-02
WO2002010917A1 (en) 2002-02-07
US20110016203A1 (en) 2011-01-20
KR100798504B1 (ko) 2008-01-28
US20060069723A1 (en) 2006-03-30
US8166095B2 (en) 2012-04-24
CN1249576C (zh) 2006-04-05
EP1311946B1 (en) 2017-12-27
KR20030031134A (ko) 2003-04-18

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
US7257817B2 (en) Virtual network with adaptive dispatcher
US6189046B1 (en) Mechanism and method for merging cached location information in a distributed object environment
US7899047B2 (en) Virtual network with adaptive dispatcher
US6999998B2 (en) Shared memory coupling of network infrastructure devices
US6282581B1 (en) Mechanism for resource allocation and for dispatching incoming calls in a distributed object environment
KR100811876B1 (ko) 분산 처리 시스템의 스마트 스터브 또는 엔터프라이즈java™ 빈
US7444536B1 (en) RMI-IIOP request failover mechanism
US6370583B1 (en) Method and apparatus for portraying a cluster of computer systems as having a single internet protocol image
US7664818B2 (en) Message-oriented middleware provider having multiple server instances integrated into a clustered application server infrastructure
US20030212834A1 (en) High availability for event forwarding
JP2004519024A (ja) 多数のノードを含むクラスタを管理するためのシステム及び方法
EP1258127B1 (en) Method and apparatus for making a computational service highly available
JP2004264911A (ja) 計算機ノード、クラスタシステム、クラスタ管理方法、クラスタ管理プログラム
KR100439761B1 (ko) 코바에서의 그룹 통신 시스템 및 방법
JP2000311094A (ja) 遠隔オブジェクト間の通信方法
Narasimhan et al. Gateways for accessing fault tolerance domains
Kaashoek Group Communication in Distributed Operating Systems
Rough et al. The GENESIS Reliable Group Communications Facility
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