JP4979762B2 - 複数のインターフェースを管理する方法、システム、及びコンピュータ・プログラム(複数のインターフェースを管理する方法及びデータ処理システム) - Google Patents

複数のインターフェースを管理する方法、システム、及びコンピュータ・プログラム(複数のインターフェースを管理する方法及びデータ処理システム) Download PDF

Info

Publication number
JP4979762B2
JP4979762B2 JP2009505869A JP2009505869A JP4979762B2 JP 4979762 B2 JP4979762 B2 JP 4979762B2 JP 2009505869 A JP2009505869 A JP 2009505869A JP 2009505869 A JP2009505869 A JP 2009505869A JP 4979762 B2 JP4979762 B2 JP 4979762B2
Authority
JP
Japan
Prior art keywords
socket
application
interfaces
subset
child
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 - Fee Related
Application number
JP2009505869A
Other languages
English (en)
Other versions
JP2009534728A (ja
Inventor
バネルジー、ドゥイップ
ラマリンガム、カヴィタ
スリハリ、プリトヴィ
ヴェンカツブラ、ヴェンカト
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009534728A publication Critical patent/JP2009534728A/ja
Application granted granted Critical
Publication of JP4979762B2 publication Critical patent/JP4979762B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

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

Description

本発明は一般に改良型データ処理システムに関するものであり、特にインターフェースを管理する方法及び装置に関するものである。より詳細には、本発明は複数のインターネット・インターフェースを管理するコンピュータ実装方法、データ処理システム、及びコンピュータ・プログラム製品に関するものである。
複数のネットワーク接続とインターフェースをとるアプリケーション・サーバの能力はこの10年間で大幅に向上した。それまでのアプリケーション・サーバは、単一の又は小数のネットワーク接続にアクセスしていた。したがって、アプリケーション・サーバは処理すべき要求の数だけでなく、誰に対する要求を受信し応答すべきかを容易に管理することができた。しかしながら、インターネットの人気が高まるにつれアプリケーション・サーバが利用可能なネットワーク接続の数も増加した。したがって、要求の管理と処理の複雑さが増大している。
典型的には、アプリケーション・サーバは要求を処理する上で、アプリケーションのインスタンスを要求元の個人にだけ又はネットワーク上のすべての個人に公開しなければならない。アプリケーション・サーバには接続を確立すべき個人を区別又は選択する能力がない。それ故、アプリケーション・サーバに残された選択肢は次の2つ、即ち、各個人に個別に対処すること、又はすべての個人に同時に対処することである。各個人に個別に対処する場合には、非効率的な煩わしい作業が発生する。一方、すべての個人に同時に対処する場合には、機密性及び安全性に関する問題が発生する。
本発明の例示的な実施形態は、複数のインターフェースを管理するコンピュータ実装方法、データ処理システム、及びコンピュータ・プログラム製品を提供する。アプリケーションが前記複数のインターフェースのサブセットを選択することにより、インターフェースのサブセットを形成する。前記選択に応答して、前記アプリケーションは前記インターフェースのサブセットにバインドされ、前記インターフェースのサブセットをリスンする。
以下では単なる例示として、添付図面を参照しながら本発明の好ましい実施形態について説明する。
ここで添付図面、特に図1及び図2を参照すると、本発明の例示的な実施形態を実施することが可能なデータ処理環境の例示的な図が示されている。図1及び図2は単なる例示にすぎず、本発明の例示的な実施形態を実施することが可能な環境を限定することを主張するものではなく、そのように暗示することも意図しているわけではないことを理解していただきたい。
ここで添付図面を参照すると、図1には、本発明の例示的な実施形態の諸態様を実施することが可能な複数のデータ処理システムから成るネットワークが示されている。ネットワーク・データ処理システム100は、本発明の例示的な実施形態を実施することが可能な複数のコンピュータから成るネットワークである。ネットワーク・データ処理システム100はネットワーク102を含んでおり、ネットワーク102は、ネットワーク・データ処理システム100内で互いに接続された様々なデバイスとコンピュータとの間の通信リンクを提供するのに使用される媒体である。ネットワーク102は、有線通信リンク、無線通信リンク、光ファイバ・ケーブルのような接続を含むことができる。
図示の例において、ネットワーク102には、サーバ104及びサーバ106ならびに記憶ユニット108が接続されている。また、ネットワーク102には、クライアント110、112、及び114も接続されている。これらのクライアント110、112、及び114は、例えばパーソナル・コンピュータであってもネットワーク・コンピュータであってもよい。図示の例において、サーバ104は、ブート・ファイルのようなデータと、オペレーティング・システム・イメージと、各種アプリケーションとをクライアント110、112、及び114に提供する。本例において、クライアント110、112、及び114は、サーバ104のクライアントに相当する。ネットワーク・データ処理システム100は、図示されていない追加的なサーバ、クライアント、及び他のデバイスを含むこともできる。
図示の例において、ネットワーク・データ処理システム100は、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)プロトコル・スイートを使用して互いに通信し合う世界中のネットワーク及びゲートウェイの集合体を表す、ネットワーク102を有するインターネットである。当該インターネットの中心には、データ及びメッセージを送る数千もの民間用、政府用、教育機関用他のコンピュータ・システムから成る主要なノード又はホスト・コンピュータ間の高速データ通信回線の基幹回線が存在する。言うまでもなく、ネットワーク・データ処理システム100は、例えばイントラネットや、ローカル・エリア・ネットワーク(LAN)や、広域ネットワーク(WAN)等のいくつかの異なるタイプのネットワークとして実施することもできる。図1は一例として意図されたものであり、本発明の様々な実施形態に関するアーキテクチャ上の限定として意図されたものではない。
ここで図2を参照すると、本発明の例示的な実施形態の諸態様を実施することが可能なデータ処理システムのブロック図が示されている。データ処理システム200は、本発明の例示的な実施形態に関する処理を実行するコンピュータ使用可能なコード又は命令を設置することが可能な、図1のサーバ104やクライアント110等のコンピュータの一例である。
図示の例において、データ処理システム200は、ノース・ブリッジ及びメモリ・コントローラ・ハブ(NB/MCH)202と、サウス・ブリッジ及び入力/出力(I/O)コントローラ・ハブ(SB/ICH)204とを含むハブ・アーキテクチャを利用している。プロセッサ・ユニット206、メイン・メモリ208、及びグラフィックス・プロセッサ210は、NB/MCH 202に接続されている。グラフィックス・プロセッサ210は、高速グラフィックス・ポート(AGP)を介してNB/MCH 202に接続することができる。
図示の例において、ローカル・エリア・ネットワーク(LAN)アダプタ212は、SB/ICH 204に接続されている。オーディオ・アダプタ216、キーボード及びマウス・アダプタ220、モデム222、読取り専用メモリ(ROM)224、ユニバーサル・シリアル・バス(USB)ポート及び他の通信ポート232、ならびにPCI/PCIeデバイス234は、バス238を介してSB/ICH 204に接続されており、ハード・ディスク・ドライブ(HDD)226及びCD‐ROMドライブ230は、バス240を介してSB/ICH 204に接続されている。PCI/PCIeデバイスとしては、例えばイーサネット(R)アダプタ、アドイン・カード、及びノート型コンピュータ用PCカード等を挙げることができる。PCIはカード・バス・コントローラを使用する一方、PCIeはこれを使用しない。ROM 224は、例えばフラッシュ・バイナリ入力/出力システム(BIOS)等であってもよい。
HDD 226及びCD‐ROMドライブ230は、バス240を介してSB/ICH 204に接続されている。HDD 226及びCD‐ROMドライブ230は、例えば統合ドライブ・エレクトロニクス(IDE)やシリアル・アドバンスト・テクノロジー・アタッチメント(SATA)・インターフェース等を使用することができる。スーパーI/O(SIO)デバイス236は、SB/ICH 204に接続することができる。
オペレーティング・システムは、プロセッサ206上で作動して、図2のデ‐タ処理システム200内の様々なコンポーネントの制御を調整し実行するものである。クライアントとしてのオペレーティング・システムは、Microsoft(R)Windows(R)XPのような市販のオペレーティング・システムであってもよい(「Microsoft」及び「Windows」は、マイクロソフト・コーポレーションの米国その他の国、又はその両方における商標である)。Java(TM)プログラミング・システムのようなオブジェクト指向のプログラミング・システムは、上記オペレーティング・システムと連動して作動することができ、データ処理システム200上で実行されているJava(TM)プログラム又はアプリケーションから当該オペレーティング・システムをコールするものである(「Java」は、サン・マイクロシステムズの米国その他の国、又はその両方における商標である)。
サーバとしてのデータ処理システム200は、例えば拡張対話式エグゼクティブ(Advanced Interactive Executive:AIX(R))オペレーティング・システム又はLINUX(R)オペレーティング・システムを実行するIBM(R)eServer(TM)pSeries(R)コンピュータ・システムであってもよい(「eServer」、「pSeries」、及び「AIX」は、インターナショナル・ビジネス・マシーンズ・コーポレーションの米国その他の国、又はその両方における商標であり、「Linux」は、Linus Torvalds氏の米国その他の国、又はその両方における商標である)。データ処理システム200は、複数のプロセッサを処理ユニット206内に含む対称型マルチプロセッサ(SMP)システムであってもよい。別法として、シングル・プロセッサ・システムを採用することもできる。
上記オペレーティング・システムに対する命令、上記オブジェクト指向のプログラミング・システム、及びアプリケーション又はプログラムは、HDD 226のような記憶装置上に設置され、処理ユニット206による実行のためにメイン・メモリ208にロードすることができる。本発明の例示的な実施形態の各処理は、例えばメイン・メモリ208やROM 224等のメモリ内に設置することも、1つ又は複数の周辺デバイス226及び230内に設置することもできる機能を使用して、処理ユニット206によって実行される。
図1及び図2のハードウェアは実装形態に応じて変更され得ることが当業者には理解されるだろう。図1及び図2に示されるハードウェアに加えて又はその代わりに、フラッシュ・メモリ又は同等の不揮発性メモリ又は光ディスク・ドライブ等、他の内部ハードウェア又は周辺デバイスを使用することもできる。また、本発明の例示的な実施形態の各処理は、マルチプロセッサ・データ処理システムにも適用することができる。いくつかの実例において、データ処理システム200は、オペレーティング・システム・ファイル又はユーザ生成データあるいはその両方を記憶する不揮発性メモリを提供するフラッシュ・メモリが組み込まれた携帯情報端末(PDA)であってもよい。
バス・システムは、図2に示されるバス238やバス240のような1つ又は複数のバスから構成されることもある。言うまでもなく、上記バス・システムは、通信ファブリック又はアーキテクチャであって、当該ファブリック又はアーキテクチャに取り付けられた様々なコンポーネント又はデバイス間でデータの転送を実施する任意の通信ファブリック又はアーキテクチャを使用して実装することができる。通信ユニットは、図2のモデム222やネットワーク・アダプタ212等、データの送受信に使用される1つ又は複数のデバイスを含むことができる。メモリは、例えば図2のNB/MCH 202内で見受けられるようなメイン・メモリ208、ROM 224、キャッシュ等であってもよい。図1及び図2に示される例及び上述の実例は、アーキテクチャ上の限定を暗示することを意図しているわけではない。例えば、データ処理システム200は、PDAの形をとるだけでなく、タブレット・コンピュータ、ラップトップ・コンピュータ、あるいは電話デバイスとすることもできる。
本発明の諸実施形態は、複数のインターフェースを管理するコンピュータ実装方法、データ処理システム、及びコンピュータ・プログラム製品を提供する。アプリケーションは、前記複数のインターフェースのサブセットを選択する。前記選択に応答して、前記アプリケーションは前記インターフェースのサブセットにバインドされ、前記インターフェースのサブセットをリスンする。前記アプリケーションを前記インターフェースのサブセットにバインドするために、前記アプリケーションはまず、前記インターフェースのサブセット内の各インターフェースに関するマスター・ソケット(master socket)及び子ソケット(child socket)をオープンする。前記マスター・ソケット及び前記子ソケットは互いに関連付けられる。前記マスター・ソケットは前記アプリケーションにも接続される。それ故、前記マスター・ソケットはアクティブ・ソケットのリストを維持し、前記リストにどのソケットを追加し、どのソケットを前記リストから削除するのかを管理する。
図3は、本発明の例示的な一実施形態に係る複数のインターフェースを有するアプリケーション・サーバを示す。データ処理システム300は、図1のサーバ104及び106と同様のサーバである。データ処理システム300は、アプリケーション310、マスター・ソケット320、ソケット330〜339、及びネットワーク・インターフェース340〜349を含む。アプリケーション310は、データ処理システム300のメイン・メモリ内に所在し、データ処理システム300のプロセッサによって実行される。アプリケーション310は、ネットワーク・インターフェース340〜349のようなネットワーク・インターフェースから受信又は送信されるデータを利用する任意のアプリケーションである。マスター・ソケット320は、アプリケーション310とソケット330〜339との間のインターフェースを管理するソケットである。ソケット330〜339はそれぞれ対応するネットワーク・インターフェース340〜349に接続される。ネットワーク・インターフェース340〜349はそれぞれ別個のインターネット・プロトコル・アドレスで識別され、図1のネットワーク102のようなネットワークに接続される。
ソケットは、ネットワークを介してデータを送受信するように設計されたソフトウェア・プログラムである。ソケットは、典型的にはインターネット接続の伝送制御プロトコル/インターネット・プロトコル(TCP/IP)としても知られるトランスポート・プロトコル層に接続される。ソケットを確立するには、ソケットの作成又はオープン、バインド、及びリスンを行わなければならない。作成機能、バインド機能、及びリスン機能は、アプリケーション・プログラミング・インターフェース(API)を利用して実装されるソフトウェア・コールである。作成フェーズ又はオープン・フェーズでは、ソケットのタイプ及び対応するプロトコル・ファミリーが識別される。バインド段階において、ソケットはネットワーク・アドレス、ポート、又はインターフェースにマッピングされる。ソケットは、単一のネットワーク・インターフェースにバインド又はマッピングすることも、複数のネットワーク・インターフェースにバインド又はマッピングすることもできる。本発明の例示的な実施形態では、単一のソケットが単一のネットワーク・インターフェースにバインドされる様子が示されている。それ故、図3の実施形態において、例えばソケット330はネットワーク・インターフェース340に、ソケット331はネットワーク・インターフェース341に、以下同様にバインドされている。リスン段階において、ソケットは新しく確立されたネットワーク接続からデータを受け入れる。
ソケットは複数の他のソケットと関連付けることができる。本発明の例示的な実施形態において、アソシエーション(association)は、伝送制御プロトコル(TCP)レベルのソケット間の通信リンクを提供するアプリケーション・プログラミング・インターフェース(API)である。このような通信リンクでは、1つのソケットが他のソケットの代わりにアクションを実行することになる。本発明の例示的な実施形態において、マスター・ソケット320はソケット330〜339と関連付けられている。それ故、マスター・ソケット320の代わりにソケット330〜339が要求を実行することになる。要求はアプリケーション310から行われる。このようなアソシエーションから、マスター・ソケット320は親ソケット(parent socket)と呼ばれることもあり、ソケット330〜339はスレーブ又は子ソケット(child socket)と呼ばれることもある。
マスター・ソケット320は、アソシエーション・リスト(association list)を使用してソケット330〜339とのアソシエーションを管理する。アソシエーション・リストはデータベースであり、リンク・リスト、テーブル、フラット・ファイル、又はハッシュ・テーブル、あるいはそれらの任意の組合せとすることができる。アソシエーション・リストは、マスター・ソケット320と関連付けられた又は結合されたソケット330〜339のようなすべてのソケットを示す。アソシエーション・リストからは任意のソケット330〜339を除去することができ、この処理はマスター・ソケット320からのアソシエーション解除(disassociate)としても知られる。更に、新しいソケットについても、単にそれをアソシエーション・リストに追加するだけでマスター・ソケット320と関連付けることができる。
使用において、アプリケーション310は、アルゴリズムを実行してそれ自体が使用可能なネットワーク・インターフェースのサブセットと通信すること又はそのようなネットワーク・インターフェースのサブセットをリスンすることを選択する。ネットワーク・インターフェースのサブセットが識別されると、アプリケーション310は、アプリケーション・プログラミング・インターフェース(API)のオープン、バインド、及びリスンを利用してサブセット内の各ネットワーク・インターフェースに関するマスター・ソケット及び子ソケットを確立する。その後、アプリケーション310はオープン・ソケットのリストをマスター・ソケットに通信する。次に、マスター・ソケットは、アソシエーション・リストを作成してマスター・ソケットと子ソケットとの間のアソシエーションを確立する。アソシエーションが作成された後、アプリケーション310はマスター・ソケット及び子ソケットに関するアソシエーションを受け入れる。この受け入れ機能(accept function)は、マスター・ソケットを介してアプリケーション310と子ソケットとの間の接続を確立するアプリケーション・プログラミング・インターフェース(API)である。
それ故、本発明の例示的な実施形態において、アプリケーション310は、それ自体が使用可能なネットワーク・インターフェースのサブセットに該当するネットワーク・インターフェース340〜349と通信することを選択する。次に、アプリケーション310は、マスター・ソケット320及び子ソケット330〜339をオープンする。次に、アプリケーション310は、ネットワーク・インターフェース340〜349と通信するために子ソケット330〜339がオープンされた旨をマスター・ソケット320に通信する。次に、マスター・ソケット320は、ソケット330〜339が列挙され、各ソケット330〜339がマスター・ソケット320と関連付けられるアソシエーション・リストを作成する。本明細書に記載の処理により、アプリケーション310はネットワーク・インターフェースのサブセットをリスンする。
本発明の例示的な実施形態を用いると、アプリケーション310が特定のネットワーク・インターフェースとの間の接続を動的に切断することが可能となる。接続を動的に切断することは、ネットワーク・インターフェースのサブセットとの間の接続が確立され、当該サブセットとマスター・ソケットとの関連付けが行われた後に接続を切断することを意味する。使用において、アプリケーション310は、あるネットワーク・インターフェースで問題が発生した場合に当該ネットワーク・インターフェースとの間の接続を切断することを選択することができる。接続を動的に切断するために、アプリケーション310は、それ自体が接続を切断したいと望む子ソケットを識別する。次に、アプリケーション310は、識別された子ソケットをアソシエーション解除するメッセージをマスター・ソケット320に通信する。マスター・ソケット320は該当する子ソケットをアソシエーション・リストから削除し、アプリケーション310は子ソケットをクローズする。次に、アプリケーション310と特定のネットワーク・インターフェースとの間の接続が切断される。
本発明の例示的な実施形態を用いると、アプリケーション310が特定のネットワーク・インターフェースとの間の接続を動的に確立することも可能となる。接続を動的に確立することは、他のネットワーク・インターフェースとの間の接続が確立され、当該他のネットワーク・インターフェースとマスター・ソケットとの関連付けが行われた後に接続を確立することを意味する。使用において、新しいネットワーク・インターフェースが確立される場合、アプリケーション310はネットワーク・インターフェースを追加することを選択することができる。ネットワーク・インターフェースを動的に追加するために、アプリケーション310は、それ自体が通信したいと望むネットワーク・インターフェース用の子ソケットをオープンする。次に、アプリケーション310は、新しい子ソケットが関連付けられる旨のメッセージをマスター・ソケット320に送信する。マスター・ソケット320は、新しい子ソケットをアソシエーション・リストに追加してマスター・ソケット320と関連付ける。この時点でアプリケーション310は新しい子ソケットと通信することができるようになる。
本発明の例示的な実施形態を用いると、ネットワーク・インターフェースのサブセットからのネットワーク要求だけを受信することが可能となる。典型的には、アプリケーション310はそれ自体が使用可能な単一のネットワーク・インターフェース又はすべてのネットワーク・インターフェースと接続される。その結果、アプリケーション310は接続タイプに応じたすべての要求を処理することになる。そのため、アプリケーション310が単一のネットワーク・インターフェースに接続される場合には、単一のネットワーク・インターフェースからのすべてのネットワーク要求がアプリケーション310によって処理されることになる。同様に、アプリケーション310がすべてのネットワーク・インターフェースに接続される場合には、すべてのネットワーク・インターフェースからのすべての要求がアプリケーション310によって処理されることになる。
一方、本発明の例示的な実施形態では、アプリケーション310はネットワーク・インターフェースのサブセットと接続することができる。その結果、アプリケーション310は、ネットワーク・インターフェースのサブセットからのネットワーク要求だけを処理することになる。したがって、図示の例では、ネットワーク・インターフェース340〜349がアプリケーション310によって選択されたネットワーク・インターフェースのサブセットとして示されている。本発明の例示的な実施形態を用いると、アプリケーション310は、それ自体が使用可能なすべてのネットワーク・インターフェースからの要求を処理するのではなく、ネットワーク・インターフェース340〜349からの要求だけを受信し処理することが可能となる。
本発明の例示的な実施形態を用いると、マスター・ソケットにおける要求キューの管理、ならびに選択されたネットワーク・インターフェースのサブセット内の各ネットワーク・インターフェースにおける要求キューの管理も可能となる。要求キューは、アプリケーション310による処理を待っている要求のバックログである。要求は先入れ先出し順に処理される。典型的には、個々のネットワーク・インターフェース340〜349がアプリケーション310に直接接続されるので、個々のネットワーク・インターフェース340〜349毎に個々の要求キューが存在する。それ故、典型的にはネットワーク・インターフェース340〜349とアプリケーション310との間の仲介物となるマスター・ソケット320が存在しないことになる。一方、本発明の例示的な実施形態では、アプリケーション310とネットワーク・インターフェース340〜349との間の仲介インターフェースとしてマスター・ソケット320が存在する。したがって、本発明の例示的な実施形態では、マスター・ソケット320に関する要求キュー、ならびに個々のネットワーク・インターフェース340〜349におけるマスター・ソケット320の下流に関する要求キューが存在する可能性がある。
マスター・ソケット320は、マスター・ソケット320の後方のキュー・サイズを管理する。同様に、ソケット330〜339は、対応するネットワーク・インターフェース340〜349のキュー・サイズを管理する。ソケット330〜339はそれぞれの要求をマスター・ソケット320の要求キューの末尾に転送する。ネットワーク・インターフェース340〜349のいずれかの後方に要求キューが存在する場合には、ソケット330〜339はそれぞれの要求を先入れ先出しベースで転送する。
使用において、マスター・ソケット320内に所在するアルゴリズムは、マスター・ソケット320が追加的な要求をそれ自体のキューに収容できるようになる時点を各ソケット330〜339に通知する。その後、このアルゴリズムは、どの要求がソケット330〜339から最初に受信されたのか照合する。このアルゴリズムは日時スタンプ又は他のいくつかの代替物を使用して、どの要求が最初に受信されたのか判定することができる。どの要求が最初に受信されたのかが判定されると、このアルゴリズムは該当するソケット330〜339に要求を転送する処理を行う。次に、該当するソケット330〜339は、該当する要求をキューの末尾に転送して追加する。
図4は、例示的な一実施形態に係るマスター・ソケットによって作成及び使用され得るアソシエーション・リストを示している。テーブル400は、図3のデータ処理システム300で示された構成を表す。テーブル400は、図3のマスター・ソケット320のようなマスター・ソケット内に所在し得るテーブルの一例である。
テーブル400は、ソケット番号列410、ネットワーク・インターフェース番号列420、及び親ソケット番号列430を含む。ソケット番号列410は、マスター・ソケットと関連付けられるすべてのソケットのリストである。本発明の例示的な実施形態において、ソケット番号列410に列挙されるソケット330〜339は、図3に示される子ソケットと同一のものである。
ネットワーク・インターフェース番号列420は、ソケット番号列410内の対応するソケットの接続先となるネットワーク・インターフェースのリストである。ネットワーク・インターフェース番号列420に列挙されるネットワーク・インターフェースは、図3のネットワーク・インターフェース340〜349である。そのため、ネットワーク・インターフェース番号列420内のネットワーク・インターフェースは、アソシエーションが使用可能なすべてのネットワーク・インターフェースのサブセットである。ネットワーク・インターフェース番号列420に列挙される番号は、各ネットワーク・インターフェースの例示的なインターネット・プロトコル・アドレスである。本発明の例示的な実施形態は、図示のインターネット・プロトコル・アドレスに限定されるものではない。ネットワーク・アドレスの一覧表は当業界で知られる一般的なものである。
親ソケット番号列430は、各子ソケットが関連付けられるマスター・ソケットを識別する。そのため、本発明の例示的な実施形態では主ソケット320が子ソケット330〜339の親ソケットとなる。したがって、主ソケット320は子ソケット330〜339と関連付けられている。
テーブル400の行450〜459は、特定のソケットに関連するネットワーク・インターフェース番号列420及び親ソケット番号列430で識別されるすべての情報を列挙する。したがって、本発明の例示的な実施形態では、行450のソケット330はネットワーク・インターフェース番号IPV4:0.3.3.0と接続される。行451のソケット331は、ネットワーク・インターフェース番号IPV4:0.3.3.1と接続される。行452のソケット332は、ネットワーク・インターフェース番号IPV4:0.3.3.2と接続される。行453のソケット333は、ネットワーク・インターフェース番号IPV4:0.3.3.3と接続される。行454のソケット334は、ネットワーク・インターフェース番号IPV4:0.3.3.4と接続される。行455のソケット335は、ネットワーク・インターフェース番号IPV4:0.3.3.5と接続される。行456のソケット336は、ネットワーク・インターフェース番号IPV4:0.3.3.6と接続される。行457のソケット337は、ネットワーク・インターフェース番号IPV4:0.3.3.7と接続される。行458のソケット338は、ネットワーク・インターフェース番号IPV4:0.3.3.8と接続される。行459のソケット339は、ネットワーク・インターフェース番号IPV4:0.3.3.9と接続される。すべてのソケット330〜339はマスター・ソケット320と関連付けられている。
使用において、アプリケーションは、それ自体が通信したいと望むネットワーク・インターフェースのサブセットを選択する。アプリケーションは、ネットワーク・インターフェースのサブセット内の各ネットワーク・インターフェースのソケットをオープンする。次に、マスター・ソケットは当該アプリケーションからオープン・ソケットのリストを受信する。次に、マスター・ソケットはテーブル400のようなアソシエーション・リストを作成する。マスター・ソケットはテーブル400のソケット番号列410にソケットのリストを入力する。また、マスター・ソケットは、各ソケットが対応するネットワーク・インターフェース毎のインターネット・アドレスをネットワーク・インターフェース番号列420に入力する。次に、マスター・ソケットは、それ自体とアソシエーション・リスト内の各子ソケットとの関連付けを実行する。マスター・ソケットは、それ自体とソケット番号列410に列挙される各ソケットとを結合するアソシエーション・アルゴリズム(association algorithm)を実行する。次に、マスター・ソケットは親ソケット番号列430においてアソシエーションを示す。
テーブル400は図示の実施形態に限定されるものではない。例えば、ソケット番号及びネットワーク・インターフェース番号は別の形式で表現することもできる。また、いくつかの情報をテーブル400から削除することもテーブル400に追加することもできる。
図5は、例示的な一実施形態に従ってソケットが動的にアソシエーション解除された後のアソシエーション・リストを示す図である。テーブル500は、図3のマスター・ソケット320のようなマスター・ソケット内に所在し得るテーブルの一例である。テーブル500は、ソケットがアソシエーション解除された後のアソシエーション・リストを表す点を除けば図4のテーブル400と同様である。
テーブル500は、ソケット番号列510、ネットワーク・インターフェース番号列520、及び親ソケット番号列530を含む。ソケット番号列510は、マスター・ソケットと関連付けられるすべてのソケットのリストである。ネットワーク・インターフェース番号列520は、ソケット番号列510内の対応するソケットの接続先となるネットワーク・インターフェースのリストである。親ソケット番号列530は、各子ソケットが関連付けられるマスター・ソケットを識別する。テーブル500の行550〜557は、特定のソケットに関連するネットワーク・インターフェース番号列520及び親ソケット番号列530で識別されるすべての情報を列挙する。
マスター・ソケット(本実施形態ではマスター・ソケット320)は、ソケット番号331及び333をアソシエーション解除する要求をアプリケーションから受信する。これにより、マスター・ソケットは、ソケット番号331及び333とマスター・ソケットとの間の接続を切断するアソシエーション解除アルゴリズム(disassociation algorithm)を実行する。次に、マスター・ソケットは、ソケット番号331及び333ならびに各ソケット番号331及び333に関するすべての情報をテーブル500から削除する。このアソシエーション解除の結果がテーブル500に反映される。ソケット番号331及び333をテーブル500から削除することに加えて、アプリケーションはソケット331及び333のクローズ処理も行う。ソケット番号の削除と併せてソケットのクローズ処理を行うことにより、アプリケーションとネットワーク・インターフェースとの間の通信が切断される。
図6は、例示的な一実施形態に従って新しいソケットがマスター・ソケットと動的に関連付けられた後のアソシエーション・リストを示す図である。テーブル600は、図3のマスター・ソケットのようなマスター・ソケット内に所在し得るテーブルの一例である。テーブル600は、新しいソケットがマスター・ソケットと関連付けられた後のアソシエーション・リストを表す点を除けば図4のテーブル400と同様である。
テーブル600は、ソケット番号列610、ネットワーク・インターフェース番号列620、及び親ソケット番号列630を含む。ソケット番号列610は、マスター・ソケットと関連付けられるすべてのソケットのリストである。ネットワーク・インターフェース番号列620は、ソケット番号列610内の対応するソケットの接続先となるネットワーク・インターフェースのリストである。親ソケット番号列630は、各子ソケットが関連付けられるマスター・ソケットを識別する。テーブル600の行650〜660は、特定のソケットに関連するネットワーク・インターフェース番号列620及び親ソケット番号列630で識別されるすべての情報を列挙する。
アプリケーションは新しいソケット(本実施形態ではソケット番号350)をオープンする。マスター・ソケット(本実施形態ではマスター・ソケット320)は、ソケット番号350の関連付け要求を受信する。マスター・ソケットは、それ自体とソケット番号350とを結合するアソシエーション・アルゴリズムを実行する。次に、マスター・ソケットは、ソケット番号350及びソケット番号350に関するすべての情報をテーブル600に追加する。この追加は行660に反映される。ソケット番号350をテーブル600に追加することにより、アプリケーションはソケット番号350をリスンすることが可能となる。
図7は、例示的な一実施形態に従ってアプリケーションがネットワーク・インターフェースのサブセットと通信するためのアプリケーション内のプロセスを示すフローチャートである。本プロセスは、図3のアプリケーション310のようなアプリケーションにおいて実行される。
本プロセスは、アプリケーションがインターフェースをとりたいと望むネットワーク・アドレスを選択することから開始する(ステップ700)。選択されるネットワーク・アドレスは、アプリケーションが使用可能なネットワーク・アドレスのサブセットである。次に、アプリケーションはマスター・ソケットをオープンする(ステップ710)。次に、アプリケーションは、それ自体がインターフェースをとりたいと望む各ネットワーク・アドレスに関する子ソケットをオープンする(ステップ720)。次に、アプリケーションはオープン子ソケットのリストをマスター・ソケットに送信し(ステップ730)、その後本プロセスは終了する。
図8は、マスター・ソケットをネットワーク・インターフェースのサブセットと関連付けるマスター・ソケット内のプロセスを示すフローチャートである。本プロセスは、図3のマスター・ソケット320のようなマスター・ソケットにおいて実行される。
本プロセスは、マスター・ソケットがオープン子ソケットのリストを受信することから開始する(ステップ800)。次に、マスター・ソケットはオープン子ソケットのアソシエーション・リストを作成する(ステップ810)。次に、マスター・ソケットは、それ自体と各子ソケットとの関連付けを実行する(ステップ820)。次に、アプリケーションが子ソケットをリストから削除したいと望んでいるかどうかが判定される。子ソケットの削除要求が受信された場合には(ステップ830で「yes」の出力)、マスター・ソケットは、当該子ソケットとそれ自体との間のアソシエーション解除を実行する(ステップ840)。次に、アプリケーションが子ソケットをリストに追加したいと望んでいるかどうかが判定される(ステップ850)。子ソケットの追加要求が受信された場合には(ステップ850で「yes」の出力)、マスター・ソケットは、それ自体と新しい子ソケットとの関連付けを実行し(ステップ860)、その後本プロセスは終了する。
ここでステップ830に戻り、マスター・ソケットが子ソケットの削除要求を受信しない場合には(ステップ830で「no」の出力)、アプリケーションが子ソケットをリストに追加したいと望んでいるかどうかが判定される(ステップ850)。子ソケットの追加要求が受信された場合には(ステップ850で「yes」の出力)、マスター・ソケットは、それ自体と新しい子ソケットとの関連付けを実行し(ステップ860)、その後本プロセスは終了する。ここでステップ850に戻り、マスター・ソケットが子ソケットの追加要求を受信しない場合には(ステップ850で「no」の出力)、その後本プロセスは終了する。
本発明の例示的な諸実施形態は、複数のインターフェースを管理するコンピュータ実装方法、データ処理システム、及びコンピュータ・プログラム製品を提供する。アプリケーションは、前記複数のインターフェースのサブセットを選択する。前記選択に応答して、前記アプリケーションは、前記インターフェースのサブセットにバインドされ、前記インターフェースのサブセットをリスンする。前記アプリケーションを前記インターフェースのサブセットにバインドするために、前記アプリケーションはまず、前記インターフェースのサブセット内の各インターフェースに関するマスター・ソケット及び子ソケットをオープンする。前記マスター・ソケット及び前記子ソケットは互いに関連付けられる。前記マスター・ソケットは前記アプリケーションにも接続される。したがって、前記マスター・ソケットはアクティブ・ソケットのリストを維持し、前記リストにどのソケットを追加し、どのソケットを前記リストから削除するのかを管理する。
本発明の例示的な実施形態を用いると、アプリケーションは、単一のインターフェースとの通信又はすべてのインターフェースとの通信に限定されることなく、インターフェースのサブセットとだけ通信することが可能となる。また、本発明の例示的な実施形態を用いると、アプリケーションは、他のインターフェースとの通信を妨げることなく、インターフェースとの間の接続を動的に切断し、あるいはインターフェースとの間の接続を動的に確立することが可能となる。動的な切断能力によって、アプリケーションは修理を要するインターフェース又は他の問題を有するインターフェースを除去することが可能となる。動的な接続能力によって、アプリケーションは新しいインターフェースからの通信を受け入れることが可能となる。
本発明の諸実施形態は全体としてハードウェアの実施形態の形をとることも、全体としてソフトウェアの実施形態の形をとることもでき、ハードウェア要素とソフトウェア要素の両方を含む実施形態とすることもできる。本発明の好ましい一実施形態は、必ずしもそれだけに限定されるわけではないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含むソフトウェアの形で実施される。
更に、本発明の諸実施形態は、コンピュータ又は任意の命令実行システムによって使用され又はそれらと共に使用されるプログラム・コードを備えるコンピュータ使用可能な又はコンピュータに読み込み可能な媒体からアクセス可能なコンピュータ・プログラムの形をとることもできる。本明細書では、コンピュータ使用可能な又はコンピュータに読み込み可能な媒体は、上記命令実行システム、装置、又はデバイスによって使用され又はそれらと共に使用される上記プログラムを収容し、記憶し、通信し、伝搬し、又は移送することが可能な任意の装置であってよい。
上記媒体は、電子系、磁気系、光学系、電磁気系、赤外線系、又は半導体系(即ち装置又はデバイス)であっても、伝搬媒体であってもよい。コンピュータに読み込み可能な媒体の例としては、半導体又は固体メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、固定磁気ディスク、及び光ディスクが挙げられる。光ディスクの現行例としては、コンパクト・ディスク‐読取り専用メモリ(CD‐ROM)、コンパクト・ディスク‐読出し/書込み(CD‐R/W)、及びDVDが挙げられる。
プログラム・コードの記憶又は実行あるいはその両方を行うのに適したデータ処理システムは、システム・バスを介してメモリ要素に直接又は間接的に結合される少なくとも1つのプロセッサを含む。上記メモリ要素は、上記プログラム・コードの実際の実行中に利用されるローカル・メモリ、バルク記憶装置、及び実行中にバルク記憶装置からコードを検索しなければならない回数を少なくするために、少なくともいくつかのプログラム・コードを一時的に記憶するキャッシュ・メモリを含むことができる。
入力/出力即ちI/Oデバイス(必ずしもそれだけに限定されるわけではないが、キーボード、ディスプレイ、ポインティング・デバイス等を含む)は、上記システムに直接又はI/Oコントローラを介して結合することもできる。
介在する私設ネットワーク又は公衆ネットワークをとおして他のデータ処理システムあるいは遠隔プリンタ又は記憶装置に、上記データ処理システムが結合できるようにするために、上記システムにネットワーク・アダプタを結合することもできる。モデム、ケーブル・モデム、及びイーサネット(R)カードは、現時点で使用可能なタイプのネットワーク・アダプタのほんのいくつかにすぎない。
本発明の諸実施形態の記載は、例示及び説明のために提示されるものであり、本発明の諸実施形態を余すところのないものとし、又は開示の形態に限定することは、本出願人の意図するところではない。当業者には多くの修正形態及び変更形態が明らかとなるであろう。
本発明の例示的な実施形態の諸態様を実施することが可能な複数のデータ処理システムから成るネットワークを示す図である。 本発明の例示的な実施形態の諸態様を実施することが可能なデータ処理システムのブロック図である。 例示的な一実施形態に係る複数のインターフェースを有するアプリケーション・サーバを示す図である。 例示的な一実施形態に係るマスター・ソケットによって作成及び使用され得るアソシエーション・リストを示す図である。 例示的な一実施形態に従ってソケットが動的にアソシエーション解除された後のアソシエーション・リストを示す図である。 例示的な一実施形態に従って新しいソケットがマスター・ソケットと動的に関連付けられた後のアソシエーション・リストを示す図である。 例示的な一実施形態に従ってアプリケーションがネットワーク・インターフェースのサブセットと通信するためのアプリケーション内のプロセスを示すフローチャートである。 例示的な一実施形態に従ってマスター・ソケットをネットワーク・インターフェースのサブセットと関連付けるマスター・ソケット内のプロセスを示すフローチャートである。

Claims (19)

  1. 複数のネットワーク・インターフェース(以下、インターフェースという)を管理するコンピュータ実装方法であって、
    前記複数のインターフェースのサブセットをアプリケーションによって選択してインターフェースのサブセットを形成するステップと、
    前記アプリケーションによって、1つのマスター・ソケットをオープンするステップと、
    前記アプリケーションによって、前記インターフェースの前記サブセット内の各インターフェースについての子ソケットをオープンするステップであって、前記子ソケットと前記インターフェースの前記サブセット内の各インターフェースとをバインドするステップと、前記1つのマスター・ソケットを前記子ソケットに関連付けるステップとを含む、前記オープンするステップと、
    前記複数のインターフェースの前記サブセットが前記アプリケーションによって選択されたことに応答して、前記アプリケーションを前記インターフェースの前記サブセットにバインドするステップであって、前記アプリケーションによって、前記1つのマスター・ソケットを介して、前記インターフェースの前記サブセットリスンされる、前記サブセットにバインドするステップと
    を含む、前記方法。
  2. 複数のネットワーク・インターフェース(以下、インターフェースという)を管理するコンピュータ実装方法であって、
    1つのマスター・ソケットをオープンするステップと、
    前記複数のインターフェースのサブセットをアプリケーションによって選択してインターフェースのサブセットを形成するステップと、
    複数の子ソケットをオープンするステップと、
    前記1つのマスター・ソケットを前記複数の子ソケットに関連付けるステップと、
    前記複数のインターフェースの前記サブセットが前記アプリケーションによって選択されたことに応答して、前記複数の子ソケットから選択された各子ソケットを前記複数のインターフェースの前記サブセット内の対応するインターフェースにバインドするステップであって、前記アプリケーションによって、前記1つのマスター・ソケットを介して、前記インターフェースの前記サブセットリスンされる、前記バインドするステップ
    を含む、前記方法。
  3. 複数のネットワーク・インターフェース(以下、インターフェースという)を管理するコンピュータ実装方法であって、
    前記複数のインターフェースのサブセットをアプリケーションによって選択してインターフェースのサブセットを形成するステップと、
    1つのマスター・ソケット及び複数の子ソケットをオープンするステップであって、前記1つのマスター・ソケット及び前記複数の子ソケットは互いに関連付けられる、前記オープンするステップと、
    前記複数のインターフェースの前記サブセットが前記アプリケーションによって選択されたことに応答して、前記複数の子ソケットから選択された各子ソケットを前記複数のインターフェースの前記サブセット内の対応するインターフェースにバインドするステップであって、前記アプリケーションによって、前記1つのマスター・ソケットを介して、前記インターフェースの前記サブセットリスンされる、前記バインドするステップ
    を含む、前記方法。
  4. 複数のネットワーク・インターフェース(以下、インターフェースという)を管理するコンピュータ実装方法であって、
    アプリケーションによって、インターフェースをとる複数のネットワーク・アドレスを選択するステップであって、前記選択される複数のネットワーク・アドレスは、前記アプリケーションが使用可能なネットワーク・アドレスのサブセットである、前記選択するステップと、
    前記アプリケーションによって、1つのマスター・ソケットをオープンするステップと、
    前記アプリケーションによって、前記複数のネットワーク・アドレスそれぞれについての子ソケットをオープンするステップと、
    前記アプリケーションによって、前記オープンされた複数の子ソケットのリストを前記1つのマスター・ソケットに送信するステップであって、前記オープンされた各子ソケットが前記ネットワーク・アドレスのサブセット内の対応するインターフェースにバインドされ、前記アプリケーションによって、前記1つのマスター・ソケットを介して、前記インターフェースの前記サブセットがリスンされる、前記送信するステップと
    を含む、前記方法。
  5. アプリケーションが複数のネットワーク・インターフェース(以下、インターフェースという)のサブセットと通信するコンピュータ実装方法であって、
    前記複数のインターフェースのサブセットをアプリケーションによって選択してインターフェースのサブセットを形成するステップと、
    前記アプリケーションによって、1つのマスター・ソケットをオープンするステップと、
    前記アプリケーションによって、前記インターフェースの前記サブセット内の各インターフェースについての子ソケットをオープンするステップであって、前記子ソケットと前記インターフェースの前記サブセット内の各インターフェースとをバインドするステップと、前記1つのマスター・ソケットを前記子ソケットに関連付けるステップとを含む、前記オープンするステップと、
    前記複数のインターフェースの前記サブセットが前記アプリケーションによって選択されたことに応答して、前記アプリケーションを前記インターフェースの前記サブセットにバインドするステップであって、前記アプリケーションによって、前記1つのマスター・ソケットを介して、前記インターフェースの前記サブセットがリスンされる、前記サブセットにバインドするステップと
    を含む、前記方法。
  6. アプリケーションが複数のネットワーク・インターフェース(以下、インターフェースという)のサブセットと通信するコンピュータ実装方法であって、
    1つのマスター・ソケットをオープンするステップと、
    前記複数のインターフェースのサブセットをアプリケーションによって選択してインターフェースのサブセットを形成するステップと、
    複数の子ソケットをオープンするステップと、
    前記1つのマスター・ソケットを前記複数の子ソケットに関連付けるステップと、
    前記複数のインターフェースの前記サブセットが前記アプリケーションによって選択されたことに応答して、前記複数の子ソケットから選択された各子ソケットを前記複数のインターフェースの前記サブセット内の対応するインターフェースにバインドするステップであって、前記アプリケーションによって、前記1つのマスター・ソケットを介して、前記インターフェースの前記サブセットリスンされる、前記バインドするステップと、
    を含む、前記方法。
  7. アプリケーションが複数のネットワーク・インターフェース(以下、インターフェースという)のサブセットと通信するコンピュータ実装方法であって、
    前記複数のインターフェースのサブセットをアプリケーションによって選択してインターフェースのサブセットを形成するステップと、
    1つのマスター・ソケット及び複数の子ソケットをオープンするステップであって、前記1つのマスター・ソケット及び前記複数の子ソケットは互いに関連付けられる、前記オープンするステップと、
    前記複数のインターフェースのサブセットが前記アプリケーションによって選択されたことに応答して、前記複数の子ソケットから選択された各子ソケットを前記複数のインターフェースの前記サブセット内の対応するインターフェースにバインドするステップであって、前記アプリケーションによって、前記1つのマスター・ソケットを介して、前記インターフェースの前記サブセットリスンされる、前記バインドするステップと、
    を含む、前記方法。
  8. アプリケーションが複数のネットワーク・インターフェース(以下、インターフェースという)のサブセットと通信するコンピュータ実装方法であって、
    前記アプリケーションによって、インターフェースをとる複数のネットワーク・アドレスを選択するステップであって、前記選択される複数のネットワーク・アドレスは、前記アプリケーションが使用可能なネットワーク・アドレスのサブセットである、前記選択するステップと、
    前記アプリケーションによって、1つのマスター・ソケットをオープンするステップと、
    前記アプリケーションによって、前記複数のネットワーク・アドレスそれぞれについての子ソケットをオープンするステップと、
    前記アプリケーションによって、前記オープンされた複数の子ソケットのリストを前記1つのマスター・ソケットに送信するステップであって、前記オープンされた各子ソケットが前記ネットワーク・アドレスのサブセット内の対応するインターフェースにバインドされ、前記アプリケーションによって、前記1つのマスター・ソケットを介して、前記インターフェースの前記サブセットがリスンされる、前記送信するステップと
    を含む、前記方法。
  9. 前記子ソケットの1つからの要求を、前記1つのマスター・ソケット上の要求キューの末尾転送するステップ
    を更に含む請求項1〜8のいずれか一項に記載方法。
  10. 前記関連付けるステップ
    前記複数の子ソケットを前記1つのマスター・ソケットによって維持されるアソシエーション・リストに追加するステップと、
    前記1つのマスター・ソケットを前記アソシエーション・リスト内の前記複数の子ソケットとリンクさせるステップと
    を含む、請求項1〜9のいずれか一項に記載方法。
  11. 前記複数の子ソケットのうちの1つを動的にクローズする要求を前記アプリケーションから受信するステップと、
    前記複数の子ソケットのうちの1つを動的にクローズする前記要求が前記アプリケーションから受信されたことに応答して、前記複数の子ソケットのうちの前記1つをアソシエーション解除するステップと
    を更に含む、請求項10に記載方法。
  12. 前記アソシエーション解除するステップ
    前記複数の子ソケットのうちの前記1つを前記アソシエーション・リストから削除するステップを含む、請求項11に記載方法。
  13. 新しい子ソケットを動的に追加する要求を前記アプリケーションから受信するステップと、
    新しい子ソケットを動的に追加する前記要求が前記アプリケーションから受信されたことに応答して、前記新しい子ソケットを前記1つのマスター・ソケットに関連付けるステップと
    を更に含む、請求項10に記載方法。
  14. 前記バインドが、
    前記アプリケーションによって、前記1つのマスター・ソケットと前記複数の子ソケットとの間のアソシエーションの確立によって行われる、請求項1〜13のいずれか一項に記載の方法。
  15. ネットワークに接続され、複数のネットワーク・インターフェース(以下、インターフェースという)を管理するアプリケーション・サーバであって、
    記複数のインターフェースと、
    前記複数のインターフェースを介して前記ネットワークにバインドされるアプリケーションと
    を備えており、
    前記複数のインターフェースのサブセットをアプリケーションによって選択してインターフェースのサブセットを形成すること
    前記アプリケーションによって、1つのマスター・ソケットをオープンすることと、
    前記アプリケーションによって、前記インターフェースの前記サブセット内の各インターフェースについての子ソケットをオープンすることであって、前記子ソケットと前記インターフェースの前記サブセット内の各インターフェースとをバインドするステップと、前記1つのマスター・ソケットを前記子ソケットに関連付けるステップとを含む、前記オープンすること、
    前記複数のインターフェースの前記サブセットが前記アプリケーションによって選択されたことに応答して、前記アプリケーションを前記インターフェースの前記サブセットにバインドすることであって、前記アプリケーションによって、前記1つのマスター・ソケットを介して、前記インターフェースの前記サブセットがリスンされる、前記サブセットにバインドすること
    を実行する、前記アプリケーション・サーバ
  16. ネットワークに接続され、複数のネットワーク・インターフェース(以下、インターフェースという)を管理するアプリケーション・サーバであって、
    記複数のインターフェースと、
    前記複数のインターフェースを介して前記ネットワークにバインドされるアプリケーションと
    を備えており、
    1つのマスター・ソケットをオープンすること、
    前記複数のインターフェースのサブセットをアプリケーションによって選択してインターフェースのサブセットを形成すること
    複数の子ソケットをオープンすること、
    前記1つのマスター・ソケットを前記複数の子ソケットに関連付けること、
    前記複数のインターフェースのサブセットが前記アプリケーションによって選択されたことに応答して、前記複数の子ソケットから選択された各子ソケットを前記複数のインターフェースの前記サブセット内の対応するインターフェースにバインドすることであって、前記アプリケーションによって、前記1つのマスター・ソケットを介して、前記インターフェースの前記サブセットリスンされる、前記バインドすること
    を実行する、前記アプリケーション・サーバ
  17. ネットワークに接続され、複数のネットワーク・インターフェース(以下、インターフェースという)を管理するアプリケーション・サーバであって、
    記複数のインターフェースと、
    前記複数のインターフェースを介して前記ネットワークにバインドされるアプリケーションと
    を備えており、
    前記複数のインターフェースのサブセットをアプリケーションによって選択してインターフェースのサブセットを形成すること、
    1つのマスター・ソケット及び複数の子ソケットをオープンすることであって、前記1つのマスター・ソケット及び前記複数の子ソケットは互いに関連付けられる、前記オープンすること
    前記複数のインターフェースのサブセットが前記アプリケーションによって選択されたことに応答して、前記複数の子ソケットから選択された各子ソケットを前記複数のインターフェースの前記サブセット内の対応するインターフェースにバインドするステップであって、前記アプリケーションによって、前記1つのマスター・ソケットを介して、前記インターフェースの前記サブセットリスンされる、前記バインドすること
    を実行する、前記アプリケーション・サーバ
  18. ネットワークに接続され、複数のネットワーク・インターフェース(以下、インターフェースという)を管理するアプリケーション・サーバであって、
    記複数のインターフェースと、
    前記複数のインターフェースを介して前記ネットワークにバインドされるアプリケーションと
    を備えており、
    前記アプリケーションによって、インターフェースをとる複数のネットワーク・アドレスを選択することであって、前記選択される複数のネットワーク・アドレスは、前記アプリケーションが使用可能なネットワーク・アドレスのサブセットである、前記選択することと、
    前記アプリケーションによって、1つのマスター・ソケットをオープンすることと、
    前記アプリケーションによって、前記複数のネットワーク・アドレスそれぞれについての子ソケットをオープンすることと、
    前記アプリケーションによって、前記オープンされた複数の子ソケットのリストを前記1つのマスター・ソケットに送信することであって、前記オープンされた各子ソケットが前記ネットワーク・アドレスのサブセット内の対応するインターフェースにバインドされ、前記アプリケーションによって、前記1つのマスター・ソケットを介して、前記インターフェースの前記サブセットがリスンされる、前記送信することと
    を実行する、前記アプリケーション・サーバ
  19. コンピュータに、請求項1〜14のいずれか一項に記載の方法の各ステップを実行させるコンピュータ・プログラム。
JP2009505869A 2006-04-18 2007-04-17 複数のインターフェースを管理する方法、システム、及びコンピュータ・プログラム(複数のインターフェースを管理する方法及びデータ処理システム) Expired - Fee Related JP4979762B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/406,185 2006-04-18
US11/406,185 US20070245005A1 (en) 2006-04-18 2006-04-18 Method and data processing system for managing a plurality of interfaces
PCT/EP2007/053714 WO2007118877A1 (en) 2006-04-18 2007-04-17 Method and data processing system for managing a plurality of interfaces

Publications (2)

Publication Number Publication Date
JP2009534728A JP2009534728A (ja) 2009-09-24
JP4979762B2 true JP4979762B2 (ja) 2012-07-18

Family

ID=38353663

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009505869A Expired - Fee Related JP4979762B2 (ja) 2006-04-18 2007-04-17 複数のインターフェースを管理する方法、システム、及びコンピュータ・プログラム(複数のインターフェースを管理する方法及びデータ処理システム)

Country Status (6)

Country Link
US (1) US20070245005A1 (ja)
EP (1) EP2011005A1 (ja)
JP (1) JP4979762B2 (ja)
CN (1) CN101410804A (ja)
TW (1) TW200818808A (ja)
WO (1) WO2007118877A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8364850B2 (en) * 2006-07-20 2013-01-29 Qualcomm Incorporated Utility service in multi-processor environment
US8756329B2 (en) 2010-09-15 2014-06-17 Oracle International Corporation System and method for parallel multiplexing between servers in a cluster
CN102158350B (zh) * 2011-02-12 2012-11-21 华为终端有限公司 一种移动宽带设备及管理移动宽带设备的方法
US9086909B2 (en) * 2011-05-17 2015-07-21 Oracle International Corporation System and method for supporting work sharing muxing in a cluster
CN102301650B (zh) * 2011-07-08 2014-07-09 华为技术有限公司 计算机系统中子网管理方法、总线适配器及计算机系统
CN105159102A (zh) * 2015-07-30 2015-12-16 北京京东尚科信息技术有限公司 智能家电、智能家电系统及其方法
CN110198312B (zh) * 2019-05-23 2021-12-24 北京华三通信技术有限公司 消息处理方法和装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5421024A (en) * 1991-04-30 1995-05-30 Hewlett-Packard Company Detection of a relative location of a network device using a multicast packet processed only by hubs
US5721876A (en) * 1995-03-30 1998-02-24 Bull Hn Information Systems Inc. Sockets application program mechanism for proprietary based application programs running in an emulation environment
US6061713A (en) * 1997-03-12 2000-05-09 Fujitsu Limited Communications system for client-server data processing systems
US6269400B1 (en) * 1998-07-22 2001-07-31 International Business Machines Corporation Method for discovering and registering agents in a distributed network
US6349341B1 (en) * 1998-07-30 2002-02-19 Advanced Micro Devices, Inc. Method and system for providing inter-tier application control in a multi-tiered computing environment
US6954784B2 (en) * 2000-08-17 2005-10-11 International Business Machines Corporation Systems, method and computer program products for cluster workload distribution without preconfigured port identification by utilizing a port of multiple ports associated with a single IP address
US6950879B2 (en) * 2001-01-24 2005-09-27 Interland, Inc. Using virtual network address information during communications
US20020143954A1 (en) * 2001-04-03 2002-10-03 Aiken John Andrew Methods, systems and computer program products for content-based routing via active TCP connection transfer
US6922727B2 (en) * 2001-06-26 2005-07-26 International Business Machines Corporation Method and system for managing parallel data transfer through multiple sockets to provide scalability to a computer network
US7080156B2 (en) * 2002-03-21 2006-07-18 Sun Microsystems, Inc. Message routing in a torus interconnect
US20040003085A1 (en) * 2002-06-26 2004-01-01 Joseph Paul G. Active application socket management
US7260599B2 (en) * 2003-03-07 2007-08-21 Hyperspace Communications, Inc. Supporting the exchange of data by distributed applications
US7263555B2 (en) * 2003-04-30 2007-08-28 International Business Machines Corporation Apparatus and method for dynamic sharing of server network interface resources
US20050125514A1 (en) * 2003-11-21 2005-06-09 Intel Corporation, A Delaware Corporation Dynamic resource allocation systems and methods
US20050165932A1 (en) * 2004-01-22 2005-07-28 International Business Machines Corporation Redirecting client connection requests among sockets providing a same service
US20050213115A1 (en) * 2004-03-29 2005-09-29 Bruce Johnson Print job system and method
ATE427601T1 (de) * 2004-07-01 2009-04-15 Alcatel Lucent Verfahren zur auswahl zwischen netzwerkschnittstellen, gerat mit mehreren netzwerkschnittstellen und verarbeitungsschicht
JP4698316B2 (ja) * 2005-07-15 2011-06-08 株式会社日立製作所 アクセスパス管理方法及びプログラム

Also Published As

Publication number Publication date
JP2009534728A (ja) 2009-09-24
US20070245005A1 (en) 2007-10-18
CN101410804A (zh) 2009-04-15
TW200818808A (en) 2008-04-16
WO2007118877A1 (en) 2007-10-25
EP2011005A1 (en) 2009-01-07

Similar Documents

Publication Publication Date Title
JP4979762B2 (ja) 複数のインターフェースを管理する方法、システム、及びコンピュータ・プログラム(複数のインターフェースを管理する方法及びデータ処理システム)
EP2215773B1 (en) Method and system for handling a failover in a distributed environment that uses session affinity
US7783763B2 (en) Managing stateful data in a partitioned application server environment
US7519910B2 (en) Method for transferring files from one machine to another using adjacent desktop displays in a virtual network
US7890591B2 (en) Method for an efficient electronic messaging system
US20100064004A1 (en) Synchronizing documents by designating a local server
US20070294237A1 (en) Enterprise-Wide Configuration Management Database Searches
JP2005316993A (ja) ネットワーク上においてコンピュータ間でオブジェクトを共有するためのシステムおよび方法
US20080270524A1 (en) Distributing files over a computer network
US10666509B2 (en) Transporting multi-destination networking traffic by sending repetitive unicast
US8024409B2 (en) Method and system for automatically resending messages based on server status
US20080294748A1 (en) Proxy between network file system version three and network file system version four protocol
US20130145277A1 (en) Graphical user interface for electronic file sharing
US20080133669A1 (en) Sending and receiving electronic mail using group headers
US20080126489A1 (en) Method and apparatus to manage e-mail messages
US8984129B2 (en) Remote session management
US8112495B2 (en) Transmitting information about distributed group memberships
TW200939047A (en) Processor-server hybrid system for processing data
US8527650B2 (en) Creating a checkpoint for modules on a communications stream
US20120005162A1 (en) Managing Copies of Data Structures in File Systems
US8280977B2 (en) Automatic data transfer using an intermediate device
US20070250507A1 (en) Electronic file sharing
US9600387B2 (en) Providing efficient data replication for a transaction processing server
JP2023174559A (ja) コンテナ環境にボリュームを提供するための方法およびシステム
WO2007124505A2 (en) Electronic file sharing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100128

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110927

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110927

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20110927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110928

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

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120321

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20120321

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

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

Free format text: PAYMENT UNTIL: 20150427

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees