JP2012522318A - スマートルーティング - Google Patents

スマートルーティング Download PDF

Info

Publication number
JP2012522318A
JP2012522318A JP2012503538A JP2012503538A JP2012522318A JP 2012522318 A JP2012522318 A JP 2012522318A JP 2012503538 A JP2012503538 A JP 2012503538A JP 2012503538 A JP2012503538 A JP 2012503538A JP 2012522318 A JP2012522318 A JP 2012522318A
Authority
JP
Japan
Prior art keywords
computer
module
server module
transport
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012503538A
Other languages
English (en)
Other versions
JP2012522318A5 (ja
Inventor
レフ,ボアズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2012522318A publication Critical patent/JP2012522318A/ja
Publication of JP2012522318A5 publication Critical patent/JP2012522318A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

ルーターモジュールがクライアント要求を受信する。要求の受信に応答して、ルーターモジュールは、該要求を満たすサーバーモジュールのネットワークアドレスを取得する。次に、ルーターモジュールは、サーバーモジュールと同じ物理的なコンピューター上で実行されているか否かを判断する。ルーターモジュールは、サーバーモジュールが同じ物理的なコンピューター上で実行されていないと判断した場合、標準的なネットワークトランスポートを利用してクライアント要求をサーバーモジュールに転送する。ルーターモジュールは、サーバーモジュールが同じコンピューター上で実行されていると判断した場合、最適化されたローカルマシンのみのトランスポート等の最適化されたトランスポートを用いてクライアント要求をサーバーモジュールに転送する。

Description

本発明は、スマートルーティングに関する。
[0001]多くのタイプのクライアント・サーバーアーキテクチャーでは、クライアントによって行われた要求が、該要求を満たすサーバーに到達するまで、或る形態のルーティングが該要求に対して実行される。このタイプのルーティングは、一群のサーバーコンピューター間で負荷をバランスさせること、より高いサービス品質を或る特定のカテゴリーのクライアントに提供すること等、多くの理由で行われる可能性がある。
[0002]場合によっては、ルーティングを実行するサーバー及びクライアント要求を満たすサーバーは同じ物理的なサーバーである。これらの場合に、サーバーは、通常、クライアント要求を、処理のためにネットワーク上でルーティングし、そして同じ物理的なサーバーに戻すようにルーティングする。このタイプのルーティングは非効率になる可能性がある。
[0003]本明細書で行われる開示は、これらの検討事項及び他の検討事項に関して提示されている。
[0004]スマートルーティング(smart routing)のための技術が本明細書で説明される。詳細には、本明細書で提示する概念及び技術の一実施の態様によれば、コンテンツサーバー及びルーターが同じ物理的なコンピューティングシステム上にある場合、ルーターからサーバーにクライアント要求を搬送し応答を搬送して戻すのに、最適化されたトランスポート(移送、transport)が利用される。例えば、最適化されたトランスポートは、クライアント要求をネットワーク上でルーティングする必要がないローカルマシンのみ(local-machine-only)のトランスポートとすることができる。それどころか、ローカルマシンのみのトランスポートは、ネットワークスタックを用いることなく、クライアント要求をルーティングする最適化された機構を提供する。
[0005]一実施の形態によれば、ルーターモジュールがクライアント要求を受信する。そのような要求の受信に応答して、ルーターモジュールは、要求を満たすサーバーモジュールのネットワークアドレスを取得する。例えば、ルーターモジュールは、ロードバランサーに問い合わせて、サーバーモジュールのネットワークアドレスを取得することができる。次に、ルーターモジュールは、サーバーモジュールのネットワークアドレスに基づいて、自身がサーバーモジュールと同じ物理的なコンピューター上で実行されているか否かを判断する。一実施の態様では、ルーターモジュールは、この判断を行うために、サーバーモジュールのネットワークアドレスを、ルーターモジュールが実行されているサーバーが応答するネットワークアドレスのリストと比較する。
[0006]ルーターモジュールは、サーバーモジュールが同じ物理的なコンピューター上で実行されていないと判断した場合、伝送制御プロトコル/インターネットプロトコル(「TCP/IP」)、ハイパーテキストトランスポートプロトコル(「HTTP」)、又は別のタイプのトランスポート等の標準的なネットワークトランスポートを利用して、クライアント要求をサーバーモジュールに転送する。ルーターモジュールは、サーバーモジュールが同じコンピューター上で実行されていると判断した場合、最適化されたトランスポートを用いて、クライアント要求をサーバーモジュールに転送する。例えば、一特定の実施態様では、最適化されたトランスポートは、TCPトランスポート等の2進符号化を利用するトランスポートを含むことができる。別の実施態様によれば、最適化されたトランスポートは、ネットワークスタックを用いることなくルーターモジュールとサーバーモジュールとの間の通信を可能にする名前付きパイプバインディング等の最適化されたローカルマシンのみのトランスポートを含む。最適化されたトランスポートは、サーバーモジュールからの応答をサーバーモジュールに送信するのにも利用される。
[0007]上記で説明した主題は、コンピューター制御される装置、コンピュータープロセス、コンピューティングシステム、又はコンピューター可読媒体等の製品として実施することもできることが理解されるべきである。これらの特徴及びさまざまな他の特徴は、以下の詳細な説明を読み、関連した図面をレビューすることによって明らかになる。
[0008]この概要は、以下の詳細な説明でさらに説明する概念のうちの選択したものを簡略化した形で導入するために設けられている。この概要は、請求項に記載の主題の重要な特徴又は不可欠な特徴を特定することを意図しておらず、また、この概要は、請求項に記載の主題の範囲を限定するのに用いられることも意図されていない。さらに、請求項に記載の主題は、この開示のいずれかの部分に示しているいずれかの不利な点又は全ての不利な点を解決する実施態様に限定されない。
[0009]本明細書で提示する実施形態の一例示の動作環境を示すネットワーク図である。 [0010]最適化されたルーティングのための本明細書で提示する一実施形態の態様を示すネットワーク図である。 [0011]本明細書で提示する一実施形態におけるクライアント要求の最適化されたルーティングのための一例示のプロセスを示すフロー図である。 [0012]本明細書で提示する実施形態の態様を実施することができるコンピューティングシステムの一例のコンピューターハードウェア及びソフトウェアアーキテクチャーを示すコンピューターアーキテクチャーの図である。
[0013]以下の詳細な説明は、最適化されたルーティングのための技術を対象としている。本明細書で説明する主題は、コンピューターシステム上で、オペレーティングシステム及びアプリケーションプログラムの実行と共に実行されるプログラムモジュールの一般的な関連において提示されるが、当業者ならば、他の実施態様を、他のタイプのプログラムモジュールと組み合わせて実行することができることを認識する。一般に、プログラムモジュールには、ルーチン、プログラム、コンポーネント、データ構造体、及び特定のタスクを実行するか又は特定の抽象データタイプを実施する他のタイプの構造体が含まれる。さらに、当業者ならば、本明細書で説明する主題が、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの民生用電子機器又はプログラマブルな民生用電子機器、ミニコンピューター、メインフレームコンピューター等を含む他のコンピューターシステム構成を用いて実施することができることを理解しよう。
[0014]以下の詳細な説明では、本明細書の一部をなしかつ例示として特定の実施形態又は実施例を示す添付図面が参照される。次に図面を参照して、最適化されたルーティングのためのコンピューティングシステム及び方法論の態様を提示することにする。図面において、同じ番号はいくつかの図を通じて同じ要素を表す。
[0015]次に図1を参照して、本明細書で提示する実施形態の例示の動作環境に関する詳細な内容を提供することにする。特に、図1は、本明細書で提示する実施形態の例示の動作環境を形成するシステム100の態様を示している。図1に示すように、クライアントコンピューター104は、ネットワーク106を介して1つ又は複数のサーバーコンピューター102A〜102Bに接続する。ネットワーク106等の本明細書で述べるネットワークは単なる例示にすぎないこと、及び本明細書で提示する技術の実際の実施態様ではより多くの又はより少ないネットワークを利用することができることが理解されるべきである。その上、単一のネットワーク106が図1に示されているが、図示したものよりも多くのネットワークを本明細書で提示するさまざまな実施形態で利用することができることも理解されるべきである。その上、ネットワーク106は例えばインターネットに及ぶことができることも理解されるべきである。例えば、クライアントコンピューター104は、或る大陸に配置されている場合がある一方、サーバー102A〜102Bは別の大陸に配置されている。
[0016]クライアントコンピューター104は、サーバーコンピューターへの要求を生成することができる任意のタイプのコンピューティングシステムを含むことができることがさらに理解されるべきである。例えば、クライアントコンピューター104は、標準的なデスクトップコンピューターシステム又はラップトップコンピューターシステム、サーバーコンピューター、ハンドヘルドコンピューティングシステム、セットトップボックス、又はデータ機能を有する無線移動電話を含むことができる。
[0017]図1に示すように、サーバーコンピューター102A〜102Bのそれぞれは、それぞれルーターモジュール108A〜108Bと、それぞれサーバーモジュール110A〜110Bとを装備することができる。ルーターモジュール108A〜108Bは、クライアントコンピューター104からの要求を受信するソフトウェアプログラムを備える。ルーターモジュール108A〜108Bは、クライアントコンピューター104から受信された要求を、処理のために、適切なサーバーモジュール110A〜110Bにルーティングする機能も提供する。それぞれのサーバーモジュール110A〜110Bからの応答は、元の要求をそのサーバーモジュールに転送したルーターモジュール108A〜108Bに返される。次に、ルーターモジュールは、その応答をクライアントコンピューター104に転送する。サーバーモジュール110A〜110Bは、要求を受信しかつ要求に応答するように構成されたソフトウェアコンポーネントを備えることが理解されるべきである。例えば、サーバーモジュール110A〜110Bは、ウェブサーバープログラム、ウェブサービス、及び他のタイプのサーバーコンポーネントを備えることができる。
[0018]クライアントコンピューター104から受信されたクライアント要求がサーバーモジュール110A〜110Bのいずれにルーティングされるべきかを決定するために、ルーターモジュール108A〜108Bは、ロードバランサー112のサービスを利用するように構成されている。ロードバランサーは、クライアントコンピューター104からの要求を満たすサーバーモジュール110A〜110Bのうちの1つを特定するように構成されたソフトウェアコンポーネント又はハードウェアコンポーネントである。ロードバランサー112は、限定するものではないが、サーバーコンピューター102A〜102Bの現在の処理負荷、或る特定のカテゴリーのクライアントコンピューター104へのより高いサービス品質の提供、及び他のファクターを含めて、さまざまなアルゴリズムを利用して、適切なサーバーモジュール110A〜110Bを特定することができることが理解されるべきである。本明細書で提示する実施形態は、特定のクライアント要求を満たすべきであるサーバーモジュール110A〜110Bを特定するためにロードバランサー112によって利用されるどの特定の機構にも依存しないことが理解されるべきである。
[0019]要求が、クライアントコンピューター104からルーターモジュール108A〜108Bのうちの1つによって受信されると、要求を受信したルーターモジュールは、クライアント要求を満たすサーバーモジュール110A〜110Bのネットワークアドレスをロードバランサー112に問い合わせる。ルーターモジュール108A〜108Bは、要求を満たすサーバーモジュール110A〜110Bのネットワークアドレスを有すると、クライアント要求を適切なサーバーモジュール110A〜110Bに転送する。例えば、ルーターモジュール108Aがクライアント要求をサーバーモジュール110Bに転送するように命令された場合、サーバーモジュール110Bとのネットワーク接続114Bが適切なネットワーク接続により確立される。同様に、ルーター108Bがクライアント要求をサーバーモジュール110Aに転送するように命令された場合、クライアント要求はネットワーク接続114Dを介して転送される。さらに、ルーターモジュール108Aが要求をサーバーモジュール110Aに転送するように命令された場合、ネットワーク接続114Aが、クライアント要求用にそのルーターモジュールとサーバーモジュール110Aとの間に確立される。同様に、ルーターモジュール108Bがクライアント要求をサーバーモジュール110Bに転送するように命令された場合、ネットワーク接続114Cがルーターモジュール108Bとサーバーモジュール110Bとの間に確立され、クライアント要求はその後すぐに転送される。適切なサーバーモジュール110A〜110Bからの応答も、同じネットワーク接続を介してルーターモジュール108A〜108Bに返される。
[0020]図1に示す例では、ルーターモジュール108A及びサーバーモジュール110Aが同じサーバーコンピューター102A上で実行されていても、ネットワーク接続114Aはこれらのコンポーネント間に確立される。同様に、ルーターモジュール108B及びサーバーモジュール110Bが同じ物理的なサーバーコンピューター102B上で実行されていても、ネットワーク接続114Cはこれらのコンポーネント間に確立される。ネットワーク接続114A及び114Cをこのように確立することは非常に非効率的である。図2〜図4を参照して以下で説明するさまざまな概念及び技術がこの特定のルーティングのシナリオに対処している。
[0021]次に図2を参照して、ルーターモジュール108Aとサーバーモジュール110Aとの間に最適化されたルーティングを提供する一例示のシステム200の態様を説明することにする。図2に示すシステム200では、ルーターモジュール108Aは、ルーターモジュール108A及びサーバーモジュール110Aが同じ物理的なサーバーコンピューター102A上で実行されているときにサーバーモジュール110Aへの最適化された経路を作成するように構成されている。このプロセスに関するさらに詳細な内容を以下で提供することにする。
[0022]図2に示すように、ルーターモジュール108Aは、クライアントコンピューター104からのクライアント要求202を受信することができる。クライアント要求202の受信に応答して、ルーターモジュール108Aは、クライアント要求202を満たすサーバーモジュール110A〜110Bのネットワークアドレスを求める要求204をロードバランサー112に送信する。要求204の受信に応答して、ロードバランサー112は、クライアント要求202を満たすサーバーモジュール110A〜110Bのターゲットアドレス206を返す。
[0023]ルーターモジュール108Aが、ロードバランサー112からのターゲットアドレス206を受信すると、ルーターモジュール108Aは、クライアント要求202を満たすべきサーバーモジュールが、ルーターモジュール108Aと同じ物理的なコンピューター102A上で実行されているか否かを判断する。例えば、一実施態様では、ルーターモジュール108Aは、ターゲットアドレス206を、サーバーコンピューター102Aが応答するネットワークアドレスのリスト208と比較することによってこの判断を行う。ターゲットアドレスがネットワークアドレスのリスト208において特定された場合、ルーターモジュール108Aは、サーバーモジュール110Aが同じ物理的なサーバーコンピューター102A上で実行されていると結論づける。ターゲットアドレス206がネットワークアドレスのリスト208に含まれていない場合、ルーターモジュール108Aは、クライアント要求202を満たすサーバーモジュールがサーバーコンピューター102B等の別の物理的なコンピューター上で実行されていると結論づける。
[0024]ルーターモジュール108Aは、クライアント要求202を満たすサーバーモジュールがサーバーモジュール110B等の別の物理的なサーバーコンピューター上で実行されていると結論づけた場合、クライアント要求202をサーバーモジュール110Bに標準的なネットワークトランスポート212により転送する。例えば、TCP/IPトランスポート機構を利用して、クライアント要求202を適切なサーバーモジュール110Bに転送し、クライアント要求202に対する応答をルーターモジュール108Aに返すことができる。
[0025]一方、ルーターモジュール108Aは、クライアント要求202を満たすサーバーモジュールが同じ物理的なサーバーコンピューター102A上で実行されていると判断した場合、クライアント要求202を適切なサーバーモジュール110Aに、最適化されたトランスポート210を介して転送する。一実施形態によれば、この最適化されたトランスポート210は、2進符号化を利用するTCPトランスポートを含む。
[0026]一代替的な実施形態では、最適化されたトランスポート210は、最適化されたローカルマシンのみのトランスポートを含む。最適化されたトランスポート210は、ネットワークスタックを利用しないトランスポートであり、したがって、他のタイプのトランスポートと比較して非常に最適化されている。例えば、一実施形態では、最適化されたローカルマシンのみのトランスポートは、WINDOWS COMMUNICATIONS FOUNDATION(「WCF」)の名前付きパイプバインディング(named pipe binding)を備える。名前付きパイプバインディングは、ルーターモジュール108A及びサーバーモジュール110Aがそれを通じて通信することができるサーバーコンピューター102A上に共有メモリーのエリアを作成する。ルーターモジュール108A及びサーバーモジュール110Aのコンポーネントが同じ物理的なコンピューター上で実行されているとき、WCF名前付きパイプバインディングが、本明細書で説明した一特定の実施態様で利用されるが、当業者に知られている他のタイプのプロセス間通信機構を利用して、ルーターモジュール108Aとサーバーモジュール110Aとの間のトランスポートを作成することもできることが理解されるべきである。このプロセスに関するさらに詳細な内容は、図3〜図4について以下で提供することにする。
[0027]次に図3を参照して、最適化されたルーティングについて本明細書で提示する実施形態に関してさらに詳細な内容を提供することにする。詳細には、図3は、本明細書で提示する一実施形態によるルーターモジュール108A〜108Bの動作の態様を示すフロー図である。
[0028]本明細書で説明する論理動作は、(1)コンピューティングシステム上で実行中の一連のコンピューターにより実施される動作又はプログラムモジュールとして、かつ/又は(2)コンピューティングシステム内の相互接続されたマシン論理回路若しくは回路モジュールとして実施されることが理解されるべきである。実施態様は、コンピューティングシステムの性能及び他の要件に依存した選択の問題である。したがって、本明細書で説明する論理動作は、状態動作、構造デバイス、動作、又はモジュールとさまざまに呼ばれる。これらの動作、構造デバイス、動作、及びモジュールは、ソフトウェア、ファームウェア、専用デジタルロジック、及びそれらの任意の組み合わせで実施することができる。図に示しかつ本明細書で説明するものよりも多くの又は少ない動作を実行することができることも理解されるべきである。これらの動作は、本明細書で説明する順序とは異なる順序で実行することもできる。
[0029]ルーチン300は動作302で開始し、動作302において、ルーターモジュール108Aは、サーバーコンピューター102Aが通信に利用するネットワークアドレスのリスト208をリトリーブする。動作302から、ルーチン300は動作304に進み、動作304において、ルーターモジュール108Aは、クライアント要求202が例えばクライアントコンピューター104等のコンピューターから受信されているか否かを判断する。受信されていない場合、ルーチン300は動作304に戻り、動作304において、別のそのような判断が行われる。図3に示す機能はループで実行されるものとして示されているが、他の実施形態はループ機構を利用しない場合もあることが理解されるべきである。例えば、一実施態様では、図3に示すプロセスは、クライアント要求が受信されると開始することができる。その結果、プロセスがそのような実施態様において図3に示す方法でループする必要はない。
[0030]ルーターモジュール108Aがクライアント要求202を受信した場合、ルーチン300は動作306に進む。動作306において、ルーターモジュール108Aは、要求204をロードバランサー112に送信して、クライアント要求202を満たすサーバーモジュール110A〜110Bのターゲットアドレス206を取得する。ルーターモジュール108Aがターゲットアドレス206を受信すると、ルーターモジュール108Aは、ターゲットアドレス206を、ネットワークアドレスのリスト208に含まれるネットワークアドレスと比較して、ルーターモジュール108A及びクライアント要求202を満たすサーバーモジュール110A〜110Bが同じ物理的なコンピューターシステム上で実行されているか否かを判断する。
[0031]ルーターモジュール108及びクライアント要求202を満たすサーバーモジュール110A〜110Bが同じ物理的なコンピューター上で実行されていない場合、ルーチン300は動作310から動作312に進む。動作312において、ルーターモジュール108Aは、標準的なネットワークトランスポート212を利用して、クライアント要求202をサーバーモジュール110B等のサーバーモジュールに転送し、クライアント要求202に応答してサーバーモジュール110Bから応答を受信する。動作312から、ルーチン300は、上記で説明した動作304に進み、動作304において、別のそのようなクライアント要求を同様の方法で処理することができる。
[0032]ルーターモジュール108Aが、クライアント要求202を満たすサーバーモジュール110A〜110Bのターゲットアドレスが同じ物理的なサーバーコンピューター上で実行されていると判断した場合、ルーチン300は動作310から動作314に進む。動作314において、ルーターモジュール108Aは、最適化されたトランスポート210を利用して、クライアント要求202を満たすサーバーモジュール110A等のサーバーモジュールにクライアント要求202を転送し、クライアント要求202に対する応答を受信する。上述したように、最適化されたトランスポート210は、一実施形態では、2進符号化を利用するトランスポートを含むことができる。例えば、最適化されたトランスポート210は、TCPトランスポートを含むことができる。代替的に、最適化されたトランスポート210は、名前付きパイプバインディング等の2進符号化を利用する最適化されたローカルマシンのみのトランスポートを含むことができる。動作314から、ルーチン300は上述した動作304に戻り、動作304において、別のクライアント要求202を受信し、同様の方法で処理することができる。
[0033]図4は、上記で提示した方法での最適化されたルーティングのための、本明細書で説明したソフトウェアコンポーネントを実行することができるコンピューター400の一例示のコンピューターアーキテクチャーを示している。図4に示すコンピューターアーキテクチャーは、従来のデスクトップコンピューター、ラップトップコンピューター、又はサーバーコンピューターを示し、クライアントコンピューター104、サーバーコンピューター102A〜102B、及びロードバランサー112上で実行されるものとして説明した、本明細書で提示したソフトウェアコンポーネントの任意の態様を実行するのに利用することができる。
[0034]図4に示すコンピューターアーキテクチャーは、中央処理装置402(「CPU」)と、ランダムアクセスメモリー414(「RAM」)及び読み出し専用メモリー(「ROM」)416を含むシステムメモリー408と、メモリーをCPU402に結合するシステムバス404とを含む。スタートアップ中等にコンピューター400内の要素間で情報を転送するのに役立つ基本ルーチンを含む基本入出力システムが、ROM416内に記憶される。コンピューター400は、オペレーティングシステム418、アプリケーションプログラム、及び他のプログラムモジュールを記憶するマスストレージデバイス410をさらに含み、これらは本明細書中でより詳細に記載される。
[0035]マスストレージデバイス410は、バス404に接続されたマスストレージコントローラー(図示せず)を通じてCPU402に接続される。マスストレージデバイス410及びそれに関連したコンピューター可読媒体は、コンピューター400の不揮発性ストレージを提供する。本明細書に含まれるコンピューター可読媒体の説明は、ハードディスク又はCD−ROMドライブ等のマスストレージデバイスを指すが、コンピューター可読媒体は、コンピューター400がアクセスすることができる任意の利用可能なコンピューターストレージ媒体とすることができることが当業者によって理解されるべきである。
[0036]限定ではなく例として、コンピューター可読媒体には、コンピューター可読命令、データ構造体、プログラムモジュール、又は他のデータ等の情報の記憶のための任意の方法又は技術で実施される揮発性及び不揮発性の着脱可能及び着脱不能な媒体を含めることができる。例えば、コンピューター可読媒体には、RAM、ROM、EPROM、EEPROM、フラッシュメモリー、若しくは他のソリッドステートメモリー技術、CD−ROM、デジタル多用途ディスク(「DVD」)、HD−DVD、BLU−RAY、若しくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、若しくは他の磁気ストレージデバイス、又は所望の情報を記憶するのに用いることができかつコンピューター400がアクセスすることができる他の任意の媒体が含まれるが、これらに限定されるものではない。
[0037]さまざまな実施形態によれば、コンピューター400は、ネットワーク420等のネットワークを通じたリモートコンピューターへの論理接続を用いてネットワーク化環境で動作することができる。コンピューター400は、バス404に接続されたネットワークインターフェースユニット406を通じてネットワーク420に接続することができる。ネットワークインターフェースユニット406は、他のタイプのネットワーク及びリモートコンピューターシステムに接続するのに利用することもできることが理解されるべきである。コンピューター400は、キーボード、マウス、又は電子スタイラス(図4に図示せず)を含む複数の他のデバイスからの入力を受け取って処理する入出力コントローラー412も含むことができる。同様に、入出力コントローラーは、表示スクリーン、プリンタ、又は他のタイプの出力デバイス(これも図4に図示せず)に出力を提供することもできる。
[0038]上記で簡潔に述べたように、ネットワーク化されたデスクトップコンピューター、ラップトップコンピューター、又はサーバーコンピューターの動作を制御するのに適したオペレーティングシステム418を含めて、多数のプログラムモジュール及びデータファイルをコンピューター400のマスストレージデバイス410及びRAM414に記憶することができる。マスストレージデバイス410及びRAM414は、1つ又は複数のプログラムモジュールも記憶することができる。特に、マスストレージデバイス410及びRAM414は、ルーターモジュール108及びサーバーモジュール110を記憶することができ、これらのそれぞれは図1〜図3に関して上記で詳細に説明されたものである。マスストレージデバイス410及びRAM414は、他のタイプのプログラムモジュール及びデータも格納することができる。
[0039]本明細書で説明したソフトウェアコンポーネントは、CPU402内にロードされて実行されると、CPU402及びコンピューター400全体を汎用コンピューティングシステムから、本明細書で提示した機能を円滑にするようにカスタマイズされた専用コンピューティングシステムに変換することができることが理解されるべきである。CPU402は、任意の数のトランジスター又は他のディスクリート回路素子から構成することができ、これらの任意の数のトランジスター又は他のディスクリート回路素子は、個々に又は集合的に任意の数の状態を仮定することができる。より具体的には、CPU402は、本明細書で開示したソフトウェアモジュール内に含まれる実行可能命令に応答して、有限状態マシンとして動作することができる。これらのコンピューター実行可能命令は、CPU402が状態間をどのように遷移するのかを指定することによってCPU402を変換することができ、それによって、CPU402を構成するトランジスター又は他のディスクリートハードウェア素子を変換することができる。
[0040]本明細書で提示したソフトウェアモジュールを符号化することによって、本明細書で提示したコンピューター可読媒体の物理的な構造も変換することができる。物理的な構造の特定の変換は、この説明のさまざまな実施態様におけるさまざまな因子に依存し得る。そのような因子の例には、コンピューター可読媒体を実施するのに用いられる技術、コンピューター可読媒体が1次ストレージとして特徴付けられるのか又は2次ストレージとして特徴付けられるのか等を含めることができるが、それらに限定されるものではない。例えば、コンピューター可読媒体が半導体ベースのメモリーとして実施される場合、本明細書で開示したソフトウェアは、半導体メモリーの物理的な状態を変換することによって、コンピューター可読媒体上に符号化することができる。例えば、ソフトウェアは、半導体メモリーを構成するトランジスター、キャパシター、又は他のディスクリート回路素子の状態を変換することができる。ソフトウェアは、その後すぐにデータを記憶するために、そのようなコンポーネントの物理的な状態を変換することもできる。
[0041]別の例として、本明細書で開示したコンピューター可読媒体は、磁気技術又は光技術を用いて実施することができる。そのような実施態様では、本明細書で提示したソフトウェアは、磁気媒体内又は光媒体内に符号化されるとき、該磁気媒体又は光媒体の物理的な状態を変換することができる。これらの変換は、所与の磁気媒体内の特定の位置の磁気特性を変更することを含むことができる。これらの変換は、所与の光媒体内の特定の位置の物理的な特徴又は特性を変更して、それらの位置の光学特性を変化させることも含むことができる。本説明の範囲及び趣旨から逸脱することなく、物理媒体の他の変換が可能であり、上記例は、この議論を円滑にするためにのみ提示されている。
[0042]上記に鑑み、多くのタイプの物理的な変換は、本明細書で提示したソフトウェアコンポーネントを記憶及び実行するためにコンピューター400で行われることが理解されるべきである。コンピューター400は、ハンドヘルドコンピューター、内蔵型コンピューターシステム、携帯情報端末、及び当業者に知られている他のタイプのコンピューティングデバイスを含む他のタイプのコンピューティングデバイスを含むことができることも理解されるべきである。コンピューター400は、図4に示すコンポーネントの全てを含むとは限らないことがあること、図4に明示的に示していない他のコンポーネントを含むことがあること、又は図4に示すものとは全く異なるアーキテクチャーを利用することがあることも意図されている。
[0043]上記内容に基づいて、最適化されたルーティングのための技術が本明細書で提供されることが理解されるべきである。本明細書で提示した主題は、コンピューターの構造的特徴、方法論的動作、変換動作、特定の計算機、及びコンピューター可読媒体に特有の文言で説明されているが、添付の特許請求の範囲に規定される本発明は、必ずしも、本明細書で説明した特定の特徴にも、特定の動作にも、特定の媒体にも限定されないことが理解されるべきである。それどころか、特定の特徴、特定の動作、及び特定の媒体は、特許請求の範囲を実施する例示の形態として開示されている。
[0044]上記で説明した主題は、例示としてのみ提供され、限定として解釈されるべきではない。図示及び説明した例示の実施形態及び用途に従うことなく、かつ次の特許請求の範囲で述べられている本発明の真の趣旨及び範囲から逸脱することなく、さまざまな修正形態及び変更形態を、本明細書で説明した主題に対して行うことができる。

Claims (13)

  1. クライアント要求(202)をサーバーモジュール(110)にルーティングするコンピューターにより実施される方法において、コンピューターにより実施される動作であって、
    クライアントコンピューター(104)からクライアント要求(202)をルーターモジュール(108)において受信する動作と、
    前記クライアント要求(202)の受信に応答して、該クライアント要求(202)を満たすサーバーモジュール(110)のターゲットネットワークアドレス(206)をロードバランサー(112)に問い合わせ、前記ターゲットネットワークアドレス(206)をネットワークアドレスのリスト(208)の1つ又は複数のネットワークアドレスと比較して、前記ルーターモジュール(108)及び前記クライアント要求(202)を満たす前記サーバーモジュール(110)が同じ物理的なコンピューター上で実行されているか否かを判断し、前記ルーターモジュール(108)及び前記サーバーモジュール(110)が前記同じ物理的なコンピューター上で実行されているとの判断に応答して、前記クライアント要求(202)を前記ルーターモジュール(108)から前記サーバーモジュール(110)に、2進符号化を利用する最適化されたトランスポート(210)を介して転送する動作と
    を含むコンピューターにより実施される方法。
  2. 前記最適化されたトランスポートは、最適化されたローカルマシンのみのトランスポートを含む請求項1に記載のコンピューターにより実施される方法。
  3. 前記最適化されたローカルマシンのみのトランスポートは2進符号化を利用する請求項2に記載のコンピューターにより実施される方法。
  4. 前記最適化されたローカルマシンのみのトランスポートは名前付きパイプバインディングを含む請求項3に記載のコンピューターにより実施される方法。
  5. コンピューター実行可能命令が記憶されているコンピューター可読媒体において、該命令は、コンピューターによって実行されると、請求項1に記載の方法を該コンピューターに実行させるコンピューター可読媒体。
  6. クライアント要求(202)をサーバーモジュール(110)にルーティングするシステムにおいて、
    前記クライアント要求(202)を受信し、該クライアント要求(202)に応答するように構成されたサーバーモジュール(110)と、
    前記クライアント要求(202)を受信し、該クライアント要求(202)の受信に応答して、前記サーバーモジュール(110)のネットワークアドレス(206)を取得し、前記サーバーモジュール(110)が前記ルーターモジュール(108)と同じコンピューター上で実行されているか否かを判断し、前記サーバーモジュール(110)が前記同じコンピューター上で実行されているとの判断に応答して、最適化されたトランスポート(210)を利用して前記要求(202)を前記サーバーモジュール(110)に転送するように構成されたルーターモジュール(108)と
    を備えるシステム。
  7. ロードバランサーをさらに備え、前記サーバーモジュールのネットワークアドレスを取得することは、ロードバランサーに問い合わせて、サーバーモジュールの前記ネットワークアドレスを取得することを含む請求項6に記載のシステム。
  8. 前記ルーターモジュールは、前記サーバーモジュールが前記同じコンピューター上で実行されていないとの判断に応答して、標準的なトランスポートを利用するようにさらに構成されている請求項7に記載のシステム。
  9. 前記サーバーモジュールが前記同じコンピューター上で実行されているか否かを判断することは、前記サーバーモジュール前記同じコンピューター上で実行されているか否かを判断するために、前記ロードバランサーから受信された前記ネットワークアドレスを、前記ルーターモジュールを実行しているコンピューターが応答するネットワークアドレスのリストにおける1つ又は複数のネットワークアドレスと比較することを含む請求項8に記載のシステム。
  10. 前記最適化されたトランスポートは伝送制御プロトコル(TCP)トランスポートを含む請求項9に記載のシステム。
  11. 前記最適化されたトランスポートは最適化されたローカルマシンのみのトランスポートを含む請求項9に記載のシステム。
  12. 前記最適化されたローカルマシンのみのトランスポートは2進符号化を利用する請求項11に記載のシステム。
  13. 前記最適化されたローカルマシンのみのトランスポートは名前付きパイプバインディングを含む請求項11に記載のシステム。
JP2012503538A 2009-03-30 2010-03-26 スマートルーティング Pending JP2012522318A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/413,607 US8166200B2 (en) 2009-03-30 2009-03-30 Smart routing
US12/413,607 2009-03-30
PCT/US2010/028935 WO2010117689A2 (en) 2009-03-30 2010-03-26 Smart routing

Publications (2)

Publication Number Publication Date
JP2012522318A true JP2012522318A (ja) 2012-09-20
JP2012522318A5 JP2012522318A5 (ja) 2013-04-11

Family

ID=42785648

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012503538A Pending JP2012522318A (ja) 2009-03-30 2010-03-26 スマートルーティング

Country Status (10)

Country Link
US (1) US8166200B2 (ja)
EP (1) EP2415213B1 (ja)
JP (1) JP2012522318A (ja)
KR (1) KR101671549B1 (ja)
CN (1) CN102369691B (ja)
BR (1) BRPI1008999A2 (ja)
CA (1) CA2753878C (ja)
RU (1) RU2520360C2 (ja)
SG (1) SG173821A1 (ja)
WO (1) WO2010117689A2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9203704B2 (en) * 2011-08-22 2015-12-01 Verizon Patent And Licensing Inc. Discovering a server device, by a non-DLNA device, within a home network
CH705456A1 (de) * 2011-08-31 2013-03-15 Ferag Ag Computerisiertes Maschinensteuerungssystem.
US9183065B1 (en) * 2012-11-01 2015-11-10 Amazon Technologies, Inc. Providing access to an application programming interface through a named pipe
US10171612B2 (en) 2015-12-28 2019-01-01 Microsoft Technology Licensing, Llc Caching service with client-enabled routing
RU2692571C1 (ru) * 2018-01-10 2019-06-25 Акционерное общество "Информационные спутниковые системы" имени академика М.Ф. Решетнёва" Контроллер сетевого транспортного протокола
CN108664343B (zh) * 2018-05-09 2022-08-23 顺丰科技有限公司 一种微服务的有状态调用方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08115288A (ja) * 1994-10-03 1996-05-07 Internatl Business Mach Corp <Ibm> 通信管理方法
JP2006067592A (ja) * 2004-08-27 2006-03-09 Lucent Technol Inc 同一基板上にあるサーバ間でのメッセージのルーティング

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2309558A (en) * 1996-01-26 1997-07-30 Ibm Load balancing across the processors of a server computer
US6424992B2 (en) * 1996-12-23 2002-07-23 International Business Machines Corporation Affinity-based router and routing method
US20030069968A1 (en) * 1998-10-01 2003-04-10 O'neil Kevin M. System for balancing loads among network servers
US6505254B1 (en) * 1999-04-19 2003-01-07 Cisco Technology, Inc. Methods and apparatus for routing requests in a network
US6578068B1 (en) * 1999-08-31 2003-06-10 Accenture Llp Load balancer in environment services patterns
US7162539B2 (en) * 2000-03-16 2007-01-09 Adara Networks, Inc. System and method for discovering information objects and information object repositories in computer networks
US6687735B1 (en) * 2000-05-30 2004-02-03 Tranceive Technologies, Inc. Method and apparatus for balancing distributed applications
US7082476B1 (en) * 2000-05-24 2006-07-25 Cisco Technology, Inc. System and method of optimizing retrieval of network resources by identifying and substituting embedded symbolic host name references with network addresses in accordance with substitution policies
AU2002248158A1 (en) * 2000-11-02 2002-08-12 Pirus Networks Tcp/udp acceleration
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7043731B2 (en) * 2001-07-12 2006-05-09 Qwest Communications International, Inc. Method and system for distributing access to group of objects based on round robin algorithm and only when the object is available
US6968389B1 (en) * 2001-07-17 2005-11-22 Cisco Technology, Inc. System and method for qualifying requests in a network
US7290059B2 (en) * 2001-08-13 2007-10-30 Intel Corporation Apparatus and method for scalable server load balancing
US7117243B2 (en) * 2001-10-02 2006-10-03 Citrix Systems, Inc. Methods for distributed program execution with file-type association in a client-server network
JP2003122732A (ja) * 2001-10-16 2003-04-25 Nec Corp 情報通信システム
US7047315B1 (en) * 2002-03-19 2006-05-16 Cisco Technology, Inc. Method providing server affinity and client stickiness in a server load balancing device without TCP termination and without keeping flow states
US7480737B2 (en) * 2002-10-25 2009-01-20 International Business Machines Corporation Technique for addressing a cluster of network servers
US7921216B2 (en) * 2005-02-01 2011-04-05 Microsoft Corporation System and method for building and using communication binding objects
US20090027495A1 (en) * 2007-07-25 2009-01-29 Stas Oskin Internet visual surveillance and management technology for telecommunications, Internet, cellular and other communications companies
US8046625B2 (en) * 2008-02-22 2011-10-25 Hill-Rom Services, Inc. Distributed fault tolerant architecture for a healthcare communication system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08115288A (ja) * 1994-10-03 1996-05-07 Internatl Business Mach Corp <Ibm> 通信管理方法
JP2006067592A (ja) * 2004-08-27 2006-03-09 Lucent Technol Inc 同一基板上にあるサーバ間でのメッセージのルーティング

Also Published As

Publication number Publication date
SG173821A1 (en) 2011-09-29
WO2010117689A3 (en) 2011-01-13
WO2010117689A2 (en) 2010-10-14
US20100250776A1 (en) 2010-09-30
RU2520360C2 (ru) 2014-06-20
EP2415213B1 (en) 2019-07-31
CA2753878A1 (en) 2010-10-14
KR101671549B1 (ko) 2016-11-01
BRPI1008999A2 (pt) 2016-03-22
EP2415213A2 (en) 2012-02-08
EP2415213A4 (en) 2015-07-01
CN102369691B (zh) 2013-04-24
US8166200B2 (en) 2012-04-24
CA2753878C (en) 2016-08-02
RU2011139714A (ru) 2013-04-20
CN102369691A (zh) 2012-03-07
KR20120004433A (ko) 2012-01-12

Similar Documents

Publication Publication Date Title
US10812577B2 (en) Method, a system and a computer program product for dynamically scaling OPC UA server capacity
US9712340B2 (en) Using a shared data store for peer discovery
US8539068B2 (en) Methods and systems for providing customized domain messages
US9137172B2 (en) Managing multiple proxy servers in a multi-tenant application system environment
US20090327460A1 (en) Application Request Routing and Load Balancing
KR101497167B1 (ko) 분산 운영 시스템에서의 외부 하드웨어 기기의 관리
US10182126B2 (en) Multilevel redirection in a virtual desktop infrastructure environment
US10915524B1 (en) Scalable distributed data processing and indexing
JP2012522318A (ja) スマートルーティング
US10630589B2 (en) Resource management system
CN110650209B (zh) 实现负载均衡的方法和装置
CN113259479A (zh) 一种数据处理方法以及设备
US20130339486A1 (en) Scalable Storage with Programmable Networks
US11962643B2 (en) Implementing multiple load balancer drivers for a single load balancer
JP5957965B2 (ja) 仮想化システム、負荷分散装置、負荷分散方法、及び負荷分散プログラム
CN112448978B (zh) 数据管理方法及系统
US7885995B2 (en) Processing service requests in a distributed environment
CN111262904A (zh) 服务代理系统及方法
US20130290411A1 (en) Message handling in a data processing system
US20240202207A1 (en) Distributed function data transformation system
US8099484B2 (en) Using mobile agents to perform operations of an information life-cycle management system
CN118282921A (zh) 一种网关选择方法、设备和存储介质
Kimmatkar et al. Applications sharing using binding server for distributed environment

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140214

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20141002