(57)【特許請求の範囲】
【請求項１】
プラットフォームサーバとエンドポイントデバイスとの間のコンピュータ実装通信方法であって、
協働的にネットワークを定める、プラットフォームサーバと、一連の中間サーバと、一連のエッジサーバとを提供することであって、
エンドポイントデバイスが、前記一連のエッジサーバのうちの１台のエッジサーバと通信し、
前記一連のエッジサーバが、前記一連の中間サーバと通信し、
前記一連の中間サーバが、プラットフォームサーバと通信すること、
第１インスタンスにおいて、前記プラットフォームサーバにおいて前記エンドポイントデバイスを前記プラットフォームサーバにバインドすることであって、
前記第１インスタンスにおいて、前記プラットフォームサーバが、前記エンドポイントデバイスと関連付けられており、それが送信元である非アドレス可能名前値を使用して前記エンドポイントデバイスをバインドし、
前記第１インスタンスにおいてバインドすることが、前記ネットワークをまたいで第１パスを関連付け、
前記第１パスが、第１の中間サーバを含む１台又は２台以上の中間サーバ及び１台又は２台以上のエッジサーバをまたいで前記エンドポイントデバイスと前記プラットフォームサーバとの間に定められること、
前記プラットフォームサーバにおいて、前記第１パスに沿って前記エンドポイントデバイスに第１メッセージを伝達すること、
第２インスタンスにおいて、前記プラットフォームサーバにおいて前記エンドポイントデバイスを前記プラットフォームサーバに再バインドすることであって、
前記第２インスタンスにおいて、前記プラットフォームサーバが、前記エンドポイントデバイスと関連付けられている前記非アドレス可能名前値を使用して前記エンドポイントデバイスをバインドし、
前記第２インスタンスにおいて再バインドすることが、前記ネットワークをまたいで第２パスを関連付け、
前記第２パスが、第２の中間サーバを含む１台又は２台以上の中間サーバ及び１台又は２台以上のエッジサーバをまたいで前記エンドポイントデバイスと前記プラットフォームサーバとの間に定められること、並びに
前記プラットフォームサーバにおいて、前記第２パスに沿って前記エンドポイントデバイスに第２メッセージを伝達すること、を含む、コンピュータ実装方法。
【請求項２】
前記第１インスタンスと前記第２インスタンスとの間の所与のインスタンスにおいて、前記エンドポイントデバイスを前記プラットフォームサーバからバインド解除するバインド解除要求を受信することを更に含み、前記プラットフォームサーバが、前記バインド解除要求に基づいて前記エンドポイントデバイスをバインド解除し、前記バインド解除が、前記エンドポイントデバイスと前記プラットフォームサーバとの間に定められた前記第１パスの関連付けを解除する、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記第１パス及び前記第２パスが、確立された永続的接続への接続ハンドルを含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記確立された永続的接続が、ＷｅｂＳｏｃｋｅｔ接続を含む、請求項３に記載のコンピュータ実装方法。
【請求項５】
前記非アドレス可能名前値が文字列を含む、請求項１に記載のコンピュータ実装方法。
【請求項６】
前記第１インスタンスにおいて、前記プラットフォームサーバにおいて第２エンドポイントデバイスを前記プラットフォームサーバにバインドすることを更に含み、前記第１インスタンスにおいて、前記プラットフォームサーバが、前記第２エンドポイントデバイスと関連付けられている第２非アドレス可能名前値に基づいて前記第２エンドポイントデバイスをバインドする、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記第１エンドポイントデバイスをバインドすること、及び前記第２エンドポイントデバイスをバインドすることが、単一のバインド要求の結果である、請求項６に記載のコンピュータ実装方法。
【請求項８】
前記第１パス及び前記第２パスのうちの少なくとも１つが、２台以上の中間サーバを含む、請求項１に記載のコンピュータ実装方法。
【請求項９】
プラットフォームサーバとエンドポイントデバイスとの間のコンピュータ実装通信方法であって、
協働的にネットワークを定める、プラットフォームサーバと、一連の中間サーバと、一連のエッジサーバとを提供することであって、
エンドポイントデバイスが、前記一連のエッジサーバのうちの１台のエッジサーバと通信し、
前記一連のエッジサーバが、前記一連の中間サーバと通信し、
前記一連の中間サーバが、前記プラットフォームサーバと通信すること、
第１インスタンスにおいて、前記一連の中間サーバのうちの１台の中間サーバにおいて前記エンドポイントデバイスを前記中間サーバにバインドすることであって、
前記第１インスタンスにおいて、前記中間サーバが、前記エンドポイントデバイスと関連付けられており、それが送信元である非アドレス可能名前値に基づいて前記エンドポイントデバイスをバインドし、
前記第１インスタンスにおいてバインドすることが、前記一連のエッジサーバのうちの、前記エンドポイントデバイスと通信している所与のエッジサーバに所与の永続的接続を関連付けること、
前記中間サーバにおいて前記プラットフォームサーバから信号を受信することであって、前記信号が前記エンドポイントデバイスの前記非アドレス可能名前値と関連付けられている値を含むこと、
前記中間サーバにおいて、前記一連のエッジサーバと確立されている一連の永続的接続から、前記バインド中に前記非アドレス可能名前値が関連付けられた１つの永続的接続を決定すること、並びに
前記中間サーバにおいて、前記決定された永続的接続を使用して前記信号を前記エンドポイントデバイスに送信すること、を含む、コンピュータ実装方法。
【請求項１０】
記憶されている命令を有する非一過性コンピュータ読み取り可能な媒体であって、前記命令が、プロセッサによる実行時に、
協働的にネットワークを定める、プラットフォームサーバと、一連の中間サーバと、一連のエッジサーバとを提供することであって、
エンドポイントデバイスが、前記一連のエッジサーバのうちの１台のエッジサーバと通信し、
前記一連のエッジサーバが、前記一連の中間サーバと通信し、
前記一連の中間サーバが、プラットフォームサーバと通信すること、
第１インスタンスにおいて、プラットフォームサーバにおいて前記エンドポイントデバイスを前記プラットフォームサーバにバインドすることであって、
前記第１インスタンスにおいて、前記プラットフォームサーバが、前記エンドポイントデバイスと関連付けられており、それが送信元である非アドレス可能名前値に基づいて前記エンドポイントデバイスをバインドし、
前記第１インスタンスにおいてバインドすることが、前記ネットワークをまたいで第１パスを関連付け、
前記第１パスが、第１の中間サーバを含む１台又は２台以上の中間サーバ及び１台又は２台以上のエッジサーバをまたいで前記エンドポイントデバイスと前記プラットフォームサーバとの間に定められること、
前記プラットフォームサーバにおいて、前記第１パスに沿って前記エンドポイントデバイスに第１メッセージを伝達すること、
第２インスタンスにおいて、前記プラットフォームサーバにおいて前記エンドポイントデバイスを前記プラットフォームサーバに再バインドすることであって、
前記第２インスタンスにおいて、前記プラットフォームサーバが、前記エンドポイントデバイスと関連付けられている前記非アドレス可能名前値に基づいて前記エンドポイントデバイスをバインドし、
前記第２インスタンスにおいて再バインドすることが、前記ネットワークをまたいで第２パスを関連付け、
前記第２パスが、第２の中間サーバを含む１台又は２台以上の中間サーバ及び１台又は２台以上のエッジサーバをまたいで前記エンドポイントデバイスと前記プラットフォームサーバとの間に定められること、並びに
前記プラットフォームサーバにおいて、前記第２パスに沿って前記エンドポイントデバイスに第２メッセージを伝達すること、を前記プロセッサに実行させる、コンピュータ読み取り可能な媒体。
【請求項１１】
前記命令が、前記第１インスタンスと前記第２インスタンスとの間の所与のインスタンスにおいて、前記エンドポイントデバイスを前記プラットフォームサーバからバインド解除するバインド解除要求を受信することを更に含み、前記プラットフォームサーバが、前記バインド解除要求に基づいて前記エンドポイントデバイスをバインド解除し、前記バインド解除が、前記エンドポイントデバイスと前記プラットフォームサーバとの間に定められた前記第１パスの関連付けを解除する、請求項１０に記載のコンピュータ読み取り可能な媒体。
【請求項１２】
前記第１パス及び前記第２パスが、確立された永続的接続への接続ハンドルを含む、請求項１０に記載のコンピュータ読み取り可能な媒体。
【請求項１３】
前記確立された永続的接続が、ＷｅｂＳｏｃｋｅｔ接続を含む、請求項１２に記載のコンピュータ読み取り可能な媒体。
【請求項１４】
前記非アドレス可能名前値が文字列を含む、請求項１０に記載のコンピュータ読み取り可能な媒体。
【請求項１５】
前記命令が、前記第１インスタンスにおいて、前記プラットフォームサーバにおいて第２エンドポイントデバイスを前記プラットフォームサーバにバインドすることを更に含み、前記第１インスタンスにおいて、前記プラットフォームサーバが、前記第２エンドポイントデバイスと関連付けられており、それが送信元である第２非アドレス可能名前値に基づいて前記第２エンドポイントデバイスをバインドする、請求項１０に記載のコンピュータ読み取り可能な媒体。
【請求項１６】
前記第１エンドポイントデバイスをバインドすること、及び前記第２エンドポイントデバイスをバインドすることが、単一のバインド要求の結果である、請求項１５に記載のコンピュータ読み取り可能な媒体。
【請求項１７】
前記第１パス及び前記第２パスのうちの少なくとも１つが、２台以上の中間サーバを含む、請求項１０に記載のコンピュータ読み取り可能な媒体。
【請求項１８】
記憶されている命令を有する非一過性コンピュータ読み取り可能な媒体であって、前記命令が、プロセッサによる実行時に、
プラットフォームサーバとエンドポイントデバイスとの間のコンピュータ実装通信方法であって、
協働的にネットワークを定める、プラットフォームサーバと、一連の中間サーバと、一連のエッジサーバとを提供することであって、
エンドポイントデバイスが、前記一連のエッジサーバのうちの１台のエッジサーバと通信し、
前記一連のエッジサーバが、前記一連の中間サーバと通信し、
前記一連の中間サーバが、前記プラットフォームサーバと通信すること、
第１インスタンスにおいて、前記一連の中間サーバのうちの１台の中間サーバにおいて前記エンドポイントデバイスを前記中間サーバにバインドすることであって、
前記第１インスタンスにおいて、前記中間サーバが、前記エンドポイントデバイスと関連付けられており、それが送信元である非アドレス可能名前値に基づいて前記エンドポイントデバイスをバインドし、
前記第１インスタンスにおいてバインドすることが、前記一連のエッジサーバのうちの、前記エンドポイントデバイスと通信している所与のエッジサーバに所与の永続的接続を関連付けること、
前記中間サーバにおいて前記プラットフォームサーバから信号を受信することであって、前記信号が前記エンドポイントデバイスの前記非アドレス可能名前値と関連付けられている値を含むこと、
前記中間サーバにおいて、前記一連のエッジサーバと確立されている一連の永続的接続から、前記バインド中に前記非アドレス可能名前値が関連付けられた１つの永続的接続を決定すること、並びに
前記中間サーバにおいて、前記決定された永続的接続を使用して前記信号を前記エンドポイントデバイスに送信すること、を前記プロセッサに実行させる、コンピュータ読み取り可能な媒体。
【請求項１９】
プロセッサと、
命令を記憶するメモリと、を含むシステムであって、前記命令が、前記プロセッサによる実行時に、
協働的にネットワークを定める、プラットフォームサーバと、一連の中間サーバと、一連のエッジサーバとを提供することであって、
エンドポイントデバイスが、前記一連のエッジサーバのうちの１台のエッジサーバと通信し、
前記一連のエッジサーバが、前記一連の中間サーバと通信し、
前記一連の中間サーバが、プラットフォームサーバと通信すること、
第１インスタンスにおいて、プラットフォームサーバにおいて前記エンドポイントデバイスを前記プラットフォームサーバにバインドすることであって、
前記第１インスタンスにおいて、前記プラットフォームサーバが、前記エンドポイントデバイスと関連付けられており、それが送信元である非アドレス可能名前値に基づいて前記エンドポイントデバイスをバインドし、
前記第１インスタンスにおいてバインドすることが、前記ネットワークをまたいで第１パスを関連付け、
前記第１パスが、第１の中間サーバを含む１台又は２台以上の中間サーバ及び１台又は２台以上のエッジサーバをまたいで前記エンドポイントデバイスと前記プラットフォームサーバとの間に定められること、
前記プラットフォームサーバにおいて、前記第１パスに沿って前記エンドポイントデバイスに第１メッセージを伝達すること、
第２インスタンスにおいて、前記プラットフォームサーバにおいて前記エンドポイントデバイスを前記プラットフォームサーバに再バインドすることであって、
前記第２インスタンスにおいて、前記プラットフォームサーバが、前記エンドポイントデバイスと関連付けられている前記非アドレス可能名前値に基づいて前記エンドポイントデバイスをバインドし、
前記第２インスタンスにおいて再バインドすることが、前記ネットワークをまたいで第２パスを関連付け、
前記第２パスが、第２の中間サーバを含む１台又は２台以上の中間サーバ及び１台又は２台以上のエッジサーバをまたいで前記エンドポイントデバイスと前記プラットフォームサーバとの間に定められること、並びに
前記プラットフォームサーバにおいて、前記第２パスに沿って前記エンドポイントデバイスに第２メッセージを伝達すること、を前記プロセッサに実行させる、システム。
【請求項２０】
プロセッサと、
命令を記憶するメモリと、を含むシステムであって、前記命令が、前記プロセッサによる実行時に、
プラットフォームサーバとエンドポイントデバイスとの間のコンピュータ実装通信方法であって、
協働的にネットワークを定める、プラットフォームサーバと、一連の中間サーバと、一連のエッジサーバとを提供することであって、
エンドポイントデバイスが、前記一連のエッジサーバのうちの１台のエッジサーバと通信し、
前記一連のエッジサーバが、前記一連の中間サーバと通信し、
前記一連の中間サーバが、前記プラットフォームサーバと通信すること、
第１インスタンスにおいて、前記一連の中間サーバのうちの１台の中間サーバにおいて前記エンドポイントデバイスを前記中間サーバにバインドすることであって、
前記第１インスタンスにおいて、前記中間サーバが、前記エンドポイントデバイスと関連付けられており、それが送信元である非アドレス可能名前値に基づいて前記エンドポイントデバイスをバインドし、
前記第１インスタンスにおいてバインドすることが、前記一連のエッジサーバのうちの、前記エンドポイントデバイスと通信している所与のエッジサーバに所与の永続的接続を関連付けること、
前記中間サーバにおいて前記プラットフォームサーバから信号を受信することであって、前記信号が前記エンドポイントデバイスの前記非アドレス可能名前値と関連付けられている値を含むこと、
前記中間サーバにおいて、前記一連のエッジサーバと確立されている一連の永続的接続から、前記バインド中に前記非アドレス可能名前値が関連付けられた１つの永続的接続を決定すること、並びに
前記中間サーバにおいて、前記決定された永続的接続を使用して前記信号を前記エンドポイントデバイスに送信すること、を前記プロセッサに実行させる、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本開示は、米国特許出願第１４／２２２，１２３号（名称「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｏｆ  Ｍｅｓｓａｇｅ  Ｒｏｕｔｉｎｇ  Ｕｓｉｎｇ  Ｎａｍｅ−Ｂａｓｅｄ  Ｉｄｅｎｔｉｆｉｅｒ  ｉｎ  ａ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃｏｍｐｕｔｉｎｇ」、２０１４年３月２１日出願）、同第１４／２２２，１１８号（名称「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｏｆ  Ｉｎｊｅｃｔｉｎｇ  Ｓｔａｔｅｓ  ｉｎｔｏ  Ｍｅｓｓａｇｅ  Ｒｏｕｔｉｎｇ  ｉｎ  ａ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｅｎｖｉｒｏｎｍｅｎｔ」、２０１４年３月２１日出願）、及び同第１４／２２２，１０６号（名称「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｏｆ  Ｍｅｓｓａｇｅ  Ｒｏｕｔｉｎｇ  ｖｉａ  Ｃｏｎｎｅｃｔｉｏｎ  Ｓｅｒｖｅｒｓ  ｉｎ  ａ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｅｎｖｉｒｏｎｍｅｎｔ」、２０１４年３月２１日出願）の利益及び優先権を主張する。これらの出願のそれぞれの内容は、これらの全体が参照により本明細書に援用される。
【０００２】
（発明の分野）
本発明は、概ね分散コンピューティング環境における操作に関する。より具体的には、本発明は、分散コンピューティング環境における、名前ベースの識別子を使用したメッセージルーティングに関する。他の実施形態では、本発明は、分散コンピューティング環境において、ルーティングされるメッセージにルーティング情報及び認証状態情報を挿入することに関する。更に他の実施形態では、本発明は、中間（例えば、接続）サーバを使用して、分散コンピューティング環境における、エンドポイントデバイスとプラットフォームサーバとの間の永続的接続性を管理することに関する。
【背景技術】
【０００３】
モノのインターネット（「ＩＯＴ」）とは、実世界に存在するシステム、デバイス、及び／又は物体のネットワーク（集合的に「システムと呼ぶ」）を指し、自動車から心臓モニタまでの範囲に及ぶ。これらの物理的物体及び／又はデバイスは、とりわけデータ通信及びデータ交換を可能にする、ソフトウェア、センサ、電子機器、通信手段などを備えている、及び／又はこれらに埋め込まれている。モノのインターネットを構成するシステムの数は、急増している。ある業界アナリストは、（工業、消費者、政府、医療、及びビジネスの各環境において）接続されているシステムの数は、今後１０年間で５０億から１兆へと増加すると予測している。
【０００４】
ある種の分散型コンピューティングアーキテクチャでは、ビジネスロジックサーバ（「プラットフォームサーバ」と呼ばれる）など１台又は２台以上のサーバを用いて、例えば、モノのインターネット内で、数十万又はそれ以上のコンピューティングデバイスにデータ及び情報を提供する。これらのサーバは、例えば、所与の地理的領域に基づいて指定されてよい、及び／又は割り当てられてよい。例えば、あるプラットフォームサーバは、北米又は米国の東海岸に位置するデバイス群にサービスを提供してよい。これらのサーバへの接続に必要なデバイスの数は、通常、かかるサーバのリソース容量を超える。
【０００５】
このため、中間サーバを用いて、これらの対応のプラットフォームサーバの代わりに、又はそのために、コンピューティングデバイスとプラットフォームサーバとの間でルーティング状態情報を追跡する、並びに所与の接続デバイスのために認証セッション情報を追跡するなど特定の機能を管理してよい。したがって、かかる負荷分散機能は、より広範な一連のコンピューティングリソースにこれらの負荷を割り振ることによって、単一コンピューティングリソースの処理及び記憶の負担を低減する。中間サーバは、ステートレスに構成することができて（例えば、メッセージの追跡に関する情報を維持しない）、サーバの処理及び記憶の負担を低減する。
【０００６】
更に、永続的接続性は中間サーバと併用することができて、接続の数、及び／又はプラットフォームサーバによる処理に必要な通信を低減する。したがって、これらのシステムの中央演算処理装置（ＣＰＵ）及びメモリの使用量を低減する（及び／又はより多くのデバイスを接続できる）。これは、次に、かかる接続性のコストを低減し、かかる莫大な数の接続デバイスが存在する場合に特に有益である。永続的接続性とは、概ねシステム（例えば、デバイス、サーバ）間の単一接続（例えば、永続的接続）を指し、一度確立されると、例えば、１対１で、システム間で複数の要求／応答を送受信するために使用される。
【０００７】
しかしながら、中間サーバを永続的接続性と組み合わせると、プラットフォームサーバと接続されているデバイスとの１対１のセッション接続が切断される。つまり、中間サーバはステートレスであるため、メッセージの追跡に関する情報を維持しない。したがって、プラットフォームサーバが永続的接続性を使用して、中間サーバ経由で接続デバイスと通信するとき、伝達されたメッセージのルーティング状態情報は失われる。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
したがって、サーバ及びデバイスが永続的接続で、ステートレスな中間サーバを経由してメッセージをやり取りする、分散型アーキテクチャにおいてセッション状態及び／又はセッション情報など情報を管理するシステム及び方法に対するニーズが存在する。コンピューティングリソースにかかる記憶及び処理の負荷を低減し、急速な変化、再割り当て、及びモノのインターネットにおける相互接続デバイス数の増加に対応できる、かかるシステム及び方法に対するニーズも存在する。
【課題を解決するための手段】
【０００９】
総括的に言うと、本明細書に記載の実施形態は、莫大な数のコンピューティングデバイス（例えば、接続デバイス）にデータを提供する分散型コンピューティングシステムのフェデレーションを構築するソフトウェアライブラリ及びコンピューティングアーキテクチャを提供する。多数の接続デバイスへの接続性を得るために、フェデレーションは、概ね複数のサーバノードを含んで、負荷を共有する。サーバノードは、ロジカル／仮想的又は物理的であり得る。
【００１０】
いくつかの実施例では、プラットフォームサーバは、永続的接続で、１台又は２台以上の中間サーバをまたいで所定のコンピューティングデバイスと通信する。このプラットフォームは、データ記憶サーバ及びコンピューティングデバイスにサービスを提供する様々なバックエンドサーバに対してデータを双方向にルーティングする（例えば、伝送する）。このため、中間サーバは、エッジサーバと確立した永続的接続及びプラットフォームサーバと確立した永続的接続で多重メッセージを送信する。分散型コンピューティングシステムのこのフェデレーションは、単一のプラットフォームサーバを介して１００，０００を超える接続デバイスにサービスを提供できることが確認されている。
【００１１】
所与のコンピューティングデバイスがシステム内を有益に自由に移動できつつ、フェデレーション内のデバイス間で形成されたこれらの永続的接続を維持するために、エッジサーバ及び中間サーバは、所与のコンピューティングデバイスと関連付けられた、１つ又は２つ以上の非ネットワークアドレス可能識別子を使用して動作する。かかる非ネットワークアドレス可能識別子は、所与のコンピューティングシステムと関連付けられている名前識別子であってよい。この機能により、コンピューティングデバイスは、フェデレーション内の任意のエッジサーバに接続されつつ、フェデレーションによるサービス提供を受けることができる。実際、コンピューティングデバイスは、ネットワーク若しくはフェデレーション内での自身の位置に関する何らかの知識、又はフェデレーション内のノードに関する何らかのネットワーキング若しくはルーティングの詳細を有する必要はない。コンピューティングデバイスは、その名前及び／又は対応するセキュリティキーを所与のエッジサーバに提供することによって、登録するだけである。次に、デバイスは、フェデレーション内のパスにバインドされる。
【００１２】
いくつかの実施例では、プラットフォームサーバの特定機能を共有する、及び／又はこれらの負荷を低減するために、中間サーバは、フェデレーション内の所与のコンピューティングデバイスの認証セッション情報を維持し、これを強制する。したがって、プラットフォームサーバがかかるタスクを実行しなくても済むようにする。中間サーバは、コンピューティングデバイスの資格情報が検証されると、所与のコンピューティングデバイスの認証セッションを維持する。実際、各中間サーバは認証セッション情報を記憶し、それを所与のデバイスのメッセージに挿入し、それによって、プラットフォームサーバがデバイスの認証セッション情報を維持しなくてもよいようにする。そうすることにより、プラットフォームサーバは、プラットフォームサーバがまだ認証を実行できるようにしつつ、認証セッションの管理を中間サーバに分散させる。このため、データ及び情報は、独立して動作する中間サーバに送り込まれて（例えば、伝送されて）よく、これらの中間サーバは、プラットフォームサーバの接続作業負荷を共有してよい。
【００１３】
いくつかの実施例では、中間サーバは、送受信したメッセージの状態情報を維持しない、ステートレス接続マネージャである。ステートレス中間サーバでメッセージの追跡に関する状態情報を維持するために、中間サーバは、メッセージのルーティング元に関する状態情報を送信する、及び／又はメッセージ自体に挿入する。したがって、これらの受信メッセージには、かかるルーティング状態情報が挿入されていて、かかるメッセージを戻すことができる。具体的には、ルーティング状態情報は、メッセージが送信された永続的接続の通信ハンドルと関連付けられている。
【００１４】
本明細書に記載のシステム及び方法の適用例は、上記の例に限定されるものではないが、当業者に理解されるように、任意の数のコンテキストで導入されてよい。「背景技術」の内容は、この内容を従来技術のものとして認めるものとみなされるべきではない。
【００１５】
一態様では、本開示は、分散コンピューティング環境における、名前ベースの識別子を使用した、メッセージルーティングの方法について説明する。この方法は、集合的にネットワークを規定する、プラットフォームサーバ、一連の中間サーバ、及び一連のエッジサーバを提供することを含んでよい。このネットワークでは、エンドポイントデバイスは一連のエッジサーバのうちの１台のエッジサーバと通信し、一連のエッジサーバは一連の中間サーバと通信し、一連の中間サーバはプラットフォームサーバと通信する。
【００１６】
この方法は、プラットフォームサーバで、第１インスタンスにおいて、エンドポイントデバイスをプラットフォームサーバにバインドすることを含む。プラットフォームサーバは、第１インスタンスにおいて、エンドポイントデバイスと関連付けられた非アドレス可能名前値を使用して、エンドポイントデバイスをバインドする。第１インスタンスにおいてバインドすることにより、ネットワーク上で第１パスを関連付け、第１パスは、１台又は２台以上の中間サーバ及び１台又は２台以上のエッジサーバをまたいで、エンドポイントデバイスとプラットフォームサーバとの間に規定される。
【００１７】
この方法は、プラットフォームサーバにおいて、第１パスに沿って第１メッセージをエンドポイントデバイスに伝達することを含む。
【００１８】
この方法は、プラットフォームサーバで、第２インスタンスにおいて、エンドポイントデバイスをプラットフォームサーバに再バインドすることを含む。プラットフォームサーバは、第２インスタンスにおいて、エンドポイントデバイスと関連付けられた非アドレス可能名前値を使用して、エンドポイントデバイスをバインドする。非アドレス可能名前値は、文字列を含んでよい。第２インスタンスにおいて再バインドすることにより、ネットワーク上で第２パスを関連付ける。第２パスは、第２中間サーバなど１台又は２台以上の中間サーバ及び１台又は２台以上のエッジサーバをまたいで、エンドポイントデバイスとプラットフォームサーバとの間で規定される。
【００１９】
この方法は、プラットフォームサーバにおいて、第２パスに沿って第２メッセージをエンドポイントデバイスに伝達することを含む。第１パス及び第２パスのそれぞれは、接続ハンドルと関連付けられた、確立された永続的接続を含んでよい。確立された永続的接続には、ＷｅｂＳｏｃｋｅｔ接続が含まれてよい。第１パス及び第２パスのうちの少なくとも１つは、少なくとも２台の中間サーバを含んでよい。
【００２０】
いくつかの実施例では、この方法は、プラットフォームサーバで、第１インスタンスと第２インスタンスとの間の所与のインスタンスにおいて、プラットフォームサーバからエンドポイントデバイスのバインドを解除する要求を受信することを含む。プラットフォームサーバは、バインド解除要求に基づいて、エンドポイントデバイスのバインドを解除する。このバインドの解除により、エンドポイントデバイスとプラットフォームサーバとの間に規定された第１パスの関連付けが解除される。
【００２１】
いくつかの実施例では、この方法は、プラットフォームサーバで、第１インスタンスにおいて、第２エンドポイントデバイスをプラットフォームサーバにバインドすることを含む。プラットフォームサーバは、第１インスタンスにおいて、第２エンドポイントデバイスと関連付けられた非アドレス可能名前値に基づいて、第２エンドポイントデバイスをバインドする。第１エンドポイントデバイスのバインド及び第２エンドポイントデバイスのバインドは、単一のバインド要求の結果であってよい。
【００２２】
別の態様では、本開示は、分散コンピューティング環境における、名前ベースの識別子を使用した、上記のメッセージルーティングの方法を実行するシステムについて説明する。このシステムは、プロセッサと、メモリと、を含んでよい。メモリは、プロセッサによる実行時に、第１インスタンスにおいて、エンドポイントデバイスと関連付けられた非アドレス可能名前値を使用して、エンドポイントデバイスをバインドすることをプロセッサに実行させる命令を記憶する。第１インスタンスにおいてバインドすることにより、ネットワーク上で第１パスを関連付け、第１パスは、１台又は２台以上の中間サーバ及び１台又は２台以上のエッジサーバをまたいで、エンドポイントデバイスとバインドされたサーバとの間に規定される。
【００２３】
命令は、実行時に、第１パスに沿って第１メッセージをエンドポイントデバイスに伝達することをプロセッサに更に実行させる。
【００２４】
命令は、実行時に、第２インスタンスにおいて、エンドポイントデバイスと関連付けられた非アドレス可能名前値を使用して再バインドすることをプロセッサに更に実行させる。非アドレス可能名前値は、文字列を含んでよい。第２インスタンスにおいて再バインドすることにより、ネットワーク上で第２パスを関連付ける。第２パスは、１台又は２台以上の中間サーバ及び１台又は２台以上のエッジサーバをまたいで、エンドポイントデバイスとバインドされたサーバとの間で規定される。
【００２５】
命令は、実行時に、第２パスに沿って第２メッセージをエンドポイントデバイスに伝達することをプロセッサに更に実行させる。第１パス及び第２パスのそれぞれは、接続ハンドルと関連付けられた、確立された永続的接続を含んでよい。確立された永続的接続には、ＷｅｂＳｏｃｋｅｔ接続が含まれてよい。第１パス及び第２パスのうちの少なくとも１つは、少なくとも２台の中間サーバを含んでよい。
【００２６】
いくつかの実施例では、命令は、実行時に、バインド解除要求に基づいて、バインドされたサーバからエンドポイントデバイスのバインドを解除する要求を受信することをプロセッサに更に実行させる。このバインドの解除により、エンドポイントデバイスとバインドされたサーバとの間に規定された第１パスの関連付けが解除される。
【００２７】
別の態様では、本開示は、分散コンピューティング環境における、名前ベースの識別子を使用した、上記のメッセージルーティングの方法を実行する非一過性コンピュータ読み取り可能な媒体について説明する。このコンピュータ読み取り可能な媒体はそこに記憶された命令を有し、命令は、プロセッサによる実行時に、第１インスタンスにおいて、エンドポイントデバイスと関連付けられた非アドレス可能名前値を使用して、エンドポイントデバイスをバインドすることをプロセッサに実行させる。第１インスタンスにおいてバインドすることにより、ネットワーク上で第１パスを関連付ける。第１パスは、１台又は２台以上の中間サーバ及び１台又は２台以上のエッジサーバをまたいで、エンドポイントデバイスとバインドされたサーバとの間で規定される。
【００２８】
命令は、実行時に、第１パスに沿って第１メッセージをエンドポイントデバイスに伝達することをプロセッサに更に実行させる。
【００２９】
命令は、実行時に、第２インスタンスにおいて、エンドポイントデバイスと関連付けられた非アドレス可能名前値を使用して再バインドすることをプロセッサに更に実行させる。非アドレス可能名前値は、文字列を含んでよい。第２インスタンスにおいて再バインドすることにより、ネットワーク上で第２パスを関連付け、第２パスは、１台又は２台以上の中間サーバ及び１台又は２台以上のエッジサーバをまたいで、エンドポイントデバイスとバインドされたサーバとの間に規定される。
【００３０】
命令は、実行時に、第２パスに沿って第２メッセージをエンドポイントデバイスに伝達することをプロセッサに更に実行させる。第１パス及び第２パスのそれぞれは、接続ハンドルと関連付けられた、確立された永続的接続を含んでよい。確立された永続的接続には、ＷｅｂＳｏｃｋｅｔ接続が含まれてよい。第１パス及び第２パスのうちの少なくとも１つは、少なくとも２台の中間サーバを含んでよい。
【００３１】
いくつかの実施例では、命令は、実行時に、バインド解除要求に基づいて、バインドされたサーバからエンドポイントデバイスのバインドを解除する要求を受信することをプロセッサに更に実行させる。このバインドの解除により、エンドポイントデバイスとバインドされたサーバとの間に規定された第１パスの関連付けが解除される。
【００３２】
別の態様では、本開示は、コンピュータにより実施される、プラットフォームサーバとエンドポイントデバイスとの通信方法について説明する。この方法は、ネットワークに接続されている、一連の中間サーバを提供することを含む。このネットワークは、プラットフォームサーバと、一連のエッジサーバと、を更に備える。エンドポイントデバイスは、一連のエッジサーバのうちの１台のエッジサーバと通信する。一連のエッジサーバは一連の中間サーバと通信し、一連の中間サーバはプラットフォームサーバと通信する。この方法は、一連の中間サーバのうちの１台の中間サーバで、第１インスタンスにおいて、エンドポイントデバイスをこの中間サーバにバインドすることを含む。この中間サーバは、第１インスタンスにおいて、エンドポイントデバイスと関連付けられた非アドレス可能名前値に基づいて、エンドポイントデバイスをバインドする。第１インスタンスにおいてバインドすることにより、所与の永続的接続を一連のエッジサーバのうちの所与のエッジサーバと関連付け、所与のエッジサーバは、エンドポイントデバイスと通信する。この方法は、中間サーバにおいて、プラットフォームサーバからの信号を受信することを含み、この信号は、エンドポイントデバイスの非アドレス可能名前値と関連付けられた値を有する。この方法は、中間サーバにおいて、一連のエッジサーバに対して確立された一連の永続的接続から１つの永続的接続を決定することを含み、非アドレス可能名前値は、バインド中にこの永続的接続と関連付けられている。この方法は、中間サーバにおいて、決定された永続的接続を使用して、エンドポイントデバイスに信号を伝送することを含む。
【００３３】
別の態様では、本開示は、プロセッサと、記憶された命令を有するメモリと、を含むシステムについて説明し、命令は、プロセッサによる実行時に、ネットワークに接続されている一連の中間サーバを提供することをプロセッサに実行させ、このネットワークは、プラットフォームサーバと、一連のエッジサーバと、を更に備え、エンドポイントデバイスは、一連のエッジサーバのうちの１台のエッジサーバと通信する。一連のエッジサーバは一連の中間サーバと通信し、一連の中間サーバはプラットフォームサーバと通信する。この命令は、プロセッサによる実行時に、一連の中間サーバのうちの１台の中間サーバで、第１インスタンスにおいて、エンドポイントデバイスをこの中間サーバにバインドすることをプロセッサに実行させる。この中間サーバは、第１インスタンスにおいて、エンドポイントデバイスと関連付けられた非アドレス可能名前値に基づいて、エンドポイントデバイスをバインドする。第１インスタンスにおいてバインドすることにより、所与の永続的接続を一連のエッジサーバのうちの所与のエッジサーバに関連付け、この所与のエッジサーバは、エンドポイントデバイスと通信する。命令は、プロセッサによる実行時に、中間サーバにおいて、プラットフォームサーバからの信号を受信することをプロセッサに実行させ、この信号は、エンドポイントデバイスの非アドレス可能名前値と関連付けられた値を有する。命令は、プロセッサによる実行時に、中間サーバにおいて、一連のエッジサーバに対して確立された一連の永続的接続から１つの永続的接続を決定することをプロセッサに実行させる。非アドレス可能名前値は、バインド中に永続的接続と関連付けられている。命令は、プロセッサによる実行時に、中間サーバにおいて、決定された永続的接続を使用して、エンドポイントデバイスに信号を伝送することをプロセッサに実行させる。
【００３４】
別の態様では、本開示は、記憶された命令を有する、非一過性コンピュータ読み取り可能な媒体について説明し、命令は、プロセッサによる実行時に、ネットワークに接続されている一連の中間サーバを提供することをプロセッサに実行させる。ネットワークは、プラットフォームサーバと、一連のエッジサーバと、を更に備え、エンドポイントデバイスは、一連のエッジサーバのうちの１台のエッジサーバと通信する。一連のエッジサーバは一連の中間サーバと通信し、一連の中間サーバはプラットフォームサーバと通信する。この命令は、プロセッサによる実行時に、一連の中間サーバのうちの１台の中間サーバで、第１インスタンスにおいて、エンドポイントデバイスをこの中間サーバにバインドすることをプロセッサに実行させる。この中間サーバは、第１インスタンスにおいて、エンドポイントデバイスと関連付けられた非アドレス可能名前値に基づいて、エンドポイントデバイスをバインドする。第１インスタンスにおいてバインドすることにより、所与の永続的接続を一連のエッジサーバのうちの所与のエッジサーバに関連付け、この所与のエッジサーバは、エンドポイントデバイスと通信する。命令は、プロセッサによる実行時に、中間サーバにおいて、プラットフォームサーバからの信号を受信することをプロセッサに実行させ、この信号は、エンドポイントデバイスの非アドレス可能名前値と関連付けられた値を有する。命令は、プロセッサによる実行時に、中間サーバにおいて、一連のエッジサーバに対して確立された一連の永続的接続から１つの永続的接続を決定することをプロセッサに実行させる。非アドレス可能名前値は、バインド中に永続的接続と関連付けられている。命令は、プロセッサによる実行時に、中間サーバにおいて、決定された永続的接続を使用して、エンドポイントデバイスに信号を伝送することをプロセッサに実行させる。
【００３５】
別の態様では、本開示は、分散コンピューティング環境における、プラットフォームサーバとエンドポイントデバイスとの間でのメッセージのルーティング方法について説明する。この方法は、プラットフォームサーバ及び１台又は２台以上の中間サーバを提供することを含む。各中間サーバは、プラットフォームサーバに接続し、そこへの永続的接続を維持し、中間サーバは、多数のエッジサーバと通信し、これらとの多数の永続的接続を維持する。中間サーバは、メッセージの追跡及び／又はルーティングに関する状態情報を維持しない。
【００３６】
この方法は、所与の中間サーバのポートによって、第１永続的接続で、エッジサーバのうちの所与のエッジサーバからサービス要求を受信することを含む。
【００３７】
この方法は、中間サーバのプロセッサによって、所与の状態識別子をサービス要求に挿入すること（inserting）（例えば、挿入すること（injecting））を含み、所与の状態識別子（例えば、エンドポイント識別子）は、サービス要求が受信された第１永続的接続の接続ＩＤ（例えば、通信ハンドル）と関連付けられている。いくつかの実施例では、この関連性はまた、中間サーバのメモリに記憶される。この方法はまた、中間サーバにおいて、第２永続的接続でプラットフォームサーバにサービス要求を伝送することを含み、このサービス要求は、所与の状態識別子を含む。この方法は、中間サーバにおいて、第２永続的接続で応答メッセージを受信することを含み、この応答メッセージは、サービス要求に応えてプラットフォームサーバによって生成されている。応答メッセージは、所与の状態識別子を含む。この方法はまた、中間サーバにおいて、所与の状態識別子を使用して、第１永続的接続の接続ＩＤを取得することを含む。所与の状態識別子は、サービス要求内で伝送された状態識別子と同一である。
【００３８】
この方法は、中間サーバにおいて、エッジサーバとの永続的接続のうちの１つの選択された接続に応答メッセージをルーティングすることを含む。選択された接続は、取得した接続ＩＤに基づいている。
【００３９】
いくつかの実施例では、永続的接続には、Ｗｅｂ−Ｓｏｃｋｅｔ接続が含まれる。いくつかの実施例では、所与の状態識別子は、サービス要求のヘッダー部分に挿入される。
【００４０】
いくつかの実施例では、中間サーバは、所与のエッジサーバに接続されているコンピューティングデバイスとプラットフォームサーバとの間で実行されている認証交換と関連付けられた、第２状態識別子をメモリに維持する。第２状態識別子は、コンピューティングデバイスの状態識別子と関連付けられた名前値に関連付けられてよい。かかる実施例では、この方法は、中間サーバのプロセッサを使用して、サービス要求内に位置するデバイス識別子を名前値と比較することを含む。一致する場合、中間サーバは、サービス要求に第２状態識別子を挿入してよく、デバイス識別子は、所与のエッジサーバと動作可能に通信する所与のコンピューティングデバイスのＩＤと関連付けられている。比較しても一致しない場合、中間サーバは、所与のエッジサーバにバインド解除要求を送信してよい。バインド解除要求により、デバイス識別子は、エッジサーバに記憶されている１つ又は２つ以上のデバイス識別子のバインドリストから削除される。第２状態識別子は、第１永続的接続の接続ＩＤと関連付けられてよい。この関連性は、中間サーバでメモリに記憶される。
【００４１】
別の態様では、本開示は、プロセッサと、メモリと、を含むシステム、すなわち中間サーバについて説明し、メモリは、プロセッサによる実行時に、第１永続的接続で所与のエッジサーバからのサービス要求をポートによって受信することをプロセッサに実行させる命令を記憶する。命令は、実行時に、所与の状態識別子をサービス要求に挿入することをプロセッサに更に実行させる。所与の状態識別子は、サービス要求が受信された第１永続的接続の接続ＩＤと関連付けられている。命令は、実行時に、第２永続的接続でプラットフォームサーバにサービス要求を伝送することをプロセッサに実行させ、このサービス要求は所与の状態識別子を含む。命令は、実行時に、第２永続的接続で応答メッセージを受信することをプロセッサに更に実行させ、この応答メッセージは、サービス要求に応じてプラットフォームサーバによって生成され、応答メッセージは所与の状態識別子を含む。命令は、実行時に、中間サーバにおいて、所与の状態識別子を使用して第１永続的接続の接続ＩＤを取得することをプロセッサに更に実行させ、所与の状態識別子は、サービス要求内で伝送された状態識別子と同一である。命令は、実行時に、エッジサーバとの永続的接続のうちの１つの選択された接続に応答メッセージをルーティングすることをプロセッサに更に実行させ、この選択された接続は、取得した接続ＩＤに基づいている。
【００４２】
いくつかの実施例では、所与の状態識別子は、サービス要求のヘッダー部分に挿入される。永続的接続は、Ｗｅｂ−Ｓｏｃｋｅｔ接続であってよい。いくつかの実施例では、第１永続的接続の接続ＩＤに対する関連性は、中間サーバにおいてメモリに記憶される。
【００４３】
いくつかの実施例では、中間サーバは、所与のエッジサーバに接続されているコンピューティングデバイスとプラットフォームサーバとの間で実行されている認証交換と関連付けられた、第２状態識別子をメモリに維持する。第２状態識別子は、コンピューティングデバイスの状態識別子と関連付けられた名前値に関連付けられてよい。かかる実施例では、中間サーバは、プロセッサによって、サービス要求内に位置するデバイス識別子を名前値と比較する。一致しない場合、中間サーバは、サービス要求に第２状態識別子を挿入してよい。デバイス識別子は、所与のエッジサーバと動作可能に通信する所与のコンピューティングデバイスのＩＤと関連付けられている。比較しても一致しない場合、中間サーバは、所与のエッジサーバにバインド解除要求を送信してよい。バインド解除要求により、デバイス識別子は、エッジサーバに記憶されている１つ又は２つ以上のデバイス識別子のバインドリストから削除される。第２状態識別子は、第１永続的接続の接続ＩＤと関連付けられてよい。この関連性は、中間サーバでメモリに記憶される。
【００４４】
別の態様では、本開示は、記憶された命令を有する非一過性コンピュータ読み取り可能な媒体について説明し、命令は、プロセッサによる実行時に、第１永続的接続で所与のエッジサーバからのサービス要求をポートによって受信することをプロセッサに実行させる。命令は、実行時に、所与の状態識別子をサービス要求に挿入することをプロセッサに更に実行させる。所与の状態識別子は、サービス要求が受信された第１永続的接続の接続ＩＤと関連付けられている。命令は、実行時に、第２永続的接続でサービス要求をプラットフォームサーバに伝送することをプロセッサに更に実行させる。命令は、実行時に、第２永続的接続で応答メッセージを受信することをプロセッサに更に実行させ、この応答メッセージは、サービス要求に応じてプラットフォームサーバによって生成される。応答メッセージは、所与の状態識別子を含む。命令は、実行時に、中間サーバにおいて、第１永続的接続の所与の状態識別子を使用して接続ＩＤを取得することをプロセッサに更に実行させる。所与の状態識別子は、サービス要求内で伝送された状態識別子と同一である。命令は、実行時に、エッジサーバとの永続的接続のうちの１つの選択された接続に応答メッセージをルーティングすることをプロセッサに更に実行させ、この選択された接続は、取得した接続ＩＤに基づいている。
【００４５】
いくつかの実施例では、永続的接続には、Ｗｅｂ−Ｓｏｃｋｅｔ接続が含まれる。いくつかの実施例では、所与の状態識別子は、サービス要求のヘッダー部分に挿入される。
【００４６】
いくつかの実施例では、中間サーバは、所与のエッジサーバに接続されているコンピューティングデバイスとプラットフォームサーバとの間で実行されている認証交換と関連付けられた、第２状態識別子をメモリに維持する。第２状態識別子は、コンピューティングデバイスの状態識別子と関連付けられた名前値に関連付けられてよい。かかる実施例では、中間サーバは、プロセッサによって、サービス要求内に位置するデバイス識別子を名前値と比較してよい。一致しない場合、中間サーバは、サービス要求に第２状態識別子を挿入してよい。デバイス識別子は、所与のエッジサーバと動作可能に通信する所与のコンピューティングデバイスのＩＤと関連付けられている。比較しても一致しない場合、中間サーバは、所与のエッジサーバにバインド解除要求を送信してよい。バインド解除要求により、デバイス識別子は、エッジサーバに記憶されている１つ又は２つ以上のデバイス識別子のバインドリストから削除される。第２状態識別子は、第１永続的接続の接続ＩＤと関連付けられてよい。この関連性は、中間サーバでメモリに記憶される。
【００４７】
別の態様では、本開示は、分散コンピューティング環境における、接続サーバを介した、プラットフォームサーバと複数のエンドポイントデバイスとの間でのメッセージのルーティング方法について説明する。この方法は、集合的にネットワークを規定する、プラットフォームサーバ、一連の中間サーバ、及び一連のエッジサーバを提供することを含み、エンドポイントデバイスは、一連のエッジサーバのうちの１台のエッジサーバと通信し、一連のエッジサーバは一連の中間サーバと通信し、一連の中間サーバはプラットフォームサーバと通信する。
【００４８】
この方法は、プラットフォームサーバのポートによって、第１永続的接続で第１エンドポイントデバイスから第１データメッセージを受信することを含む。第１データメッセージは、第２永続的接続で第１中間サーバを経由してルーティングされている。
【００４９】
この方法は、プラットフォームサーバのポートによって、第３永続的接続で第２エンドポイントデバイスから第２データメッセージを受信することを含み、第２データメッセージは、第４永続的接続で第２中間サーバを経由してルーティングされている。永続的接続には、ＷｅｂＳｏｃｋｅｔ接続が含まれてよい。
【００５０】
この方法は、プラットフォームサーバのプロセッサによって、第１データメッセージ及び第２データメッセージを提供することを含む。第１中間サーバ及び第２中間サーバのそれぞれは、エンドポイントデバイスとプラットフォームサーバとの間の接続性を管理する。第１中間サーバ及び第２中間サーバのそれぞれは、エンドポイントデバイスとプラットフォームサーバとの間での認証セッションを管理してよい。プラットフォームサーバは、永続サーバ、データベースサーバ、顧客関係管理（ＣＲＭ）サーバ、エンタープライズリソースプランニング（ＥＲＰ）サーバ、業務支援システム（ＯＳＳ）サーバ、営業支援システム（ＢＳＳ）サーバ、及びデータウェアハウスからなる群から選択されるバックオフィスサーバにメッセージをルーティングすることによって、第１データメッセージ及び第２データメッセージを提供してよい。
【００５１】
別の態様では、本開示は、プロセッサと、メモリと、を含むシステムについて説明し、メモリは、プロセッサによる実行時に、第１永続的接続で第１エンドポイントデバイスからの第１データメッセージをポートによって受信することをプロセッサに実行させる命令を記憶する。第１データメッセージは、第２永続的接続で第１中間サーバを経由してルーティングされている。
【００５２】
命令は、実行時に、第３永続的接続で第２エンドポイントデバイスからの第２データメッセージをポートによって受信することをプロセッサに更に実行させ、第２データメッセージは、第４永続的接続で第２中間サーバを経由してルーティングされている。永続的接続には、ＷｅｂＳｏｃｋｅｔ接続が含まれてよい。
【００５３】
命令は、実行時に、第１データメッセージ及び第２データメッセージを提供することをプロセッサに更に実行させる。第１中間サーバ及び第２中間サーバのそれぞれは、エンドポイントデバイスとプラットフォームサーバとの間の接続性を管理する。第１中間サーバ及び第２中間サーバのそれぞれは、エンドポイントデバイスとプラットフォームサーバとの間での認証セッションを管理してよい。プラットフォームサーバは、永続サーバ、データベースサーバ、顧客関係管理（ＣＲＭ）サーバ、エンタープライズリソースプランニング（ＥＲＰ）サーバ、業務支援システム（ＯＳＳ）サーバ、営業支援システム（ＢＳＳ）サーバ、及びデータウェアハウスからなる群から選択されるバックオフィスサーバにメッセージをルーティングすることによって、第１データメッセージ及び第２データメッセージを提供してよい。
【００５４】
別の態様では、本開示は、記憶された命令を有する非一過性コンピュータ読み取り可能な媒体について説明し、命令は、プロセッサによる実行時に、第１永続的接続で第１エンドポイントデバイスからの第１データメッセージをポートによって受信することをプロセッサに実行させる。第１データメッセージは、第２永続的接続で第１中間サーバを経由してルーティングされている。
【００５５】
命令は、実行時に、第３永続的接続で第２エンドポイントデバイスからの第２データメッセージをポートによって受信することをプロセッサに更に実行させ、第２データメッセージは、第４永続的接続で第２中間サーバを経由してルーティングされている。永続的接続には、ＷｅｂＳｏｃｋｅｔ接続が含まれてよい。
【００５６】
命令は、実行時に、第１データメッセージ及び第２データメッセージを提供することをプロセッサに更に実行させ、第１中間サーバ及び第２中間サーバのそれぞれは、エンドポイントデバイスとプラットフォームサーバとの間の接続性を管理する。第１中間サーバ及び第２中間サーバのそれぞれは、エンドポイントデバイスとプラットフォームサーバとの間での認証セッションを管理してよい。プラットフォームサーバは、永続サーバ、データベースサーバ、顧客関係管理（ＣＲＭ）サーバ、エンタープライズリソースプランニング（ＥＲＰ）サーバ、業務支援システム（ＯＳＳ）サーバ、営業支援システム（ＢＳＳ）サーバ、及びデータウェアハウスからなる群から選択されるバックオフィスサーバにメッセージをルーティングすることによって、第１データメッセージ及び第２データメッセージを提供してよい。
【００５７】
別の態様では、本開示は、コンピュータにより実施される、プラットフォームサーバと複数のエンドポイントデバイスとの通信交換の管理方法について説明する。この方法は、ネットワークに接続されている一連の中間サーバのうちの１台の中間サーバを提供することを含む。ネットワークは、プラットフォームサーバと、複数のエンドポイントデバイスと、を更に含み、エンドポイントデバイスは一連の中間サーバと通信し、一連の中間サーバはプラットフォームサーバと通信する。この方法は、中間サーバのプロセッサによって、所与のエンドポイントデバイスから受信したメッセージにルーティング情報を挿入するかどうかを決定することを含む。ルーティング情報は、所与のエンドポイントデバイスと確立された永続的接続と関連付けられる。永続的接続は、エンドポイントデバイスで確立された一連の永続的接続のうちの１つである。この方法は、中間サーバのプロセッサによって、認証セッション情報を受信メッセージに挿入するかどうかを決定することを含む。認証セッション情報は、永続的接続と関連付けられた認証セッションに関する。この方法は、中間サーバのプロセッサによって、永続的接続をエンドポイントデバイスと関連付けられた識別子にバインドするかどうかを決定することを含む。バインドすることにより、永続的接続をエンドポイントデバイスに関連付ける。この方法は、中間サーバのプロセッサによって、第１サービスにルーティング情報を受信メッセージに挿入させること、第２サービスに認証セッション情報を受信メッセージに挿入させること、及び第３サービスに永続的接続を識別子にバインドさせることのうちの少なくとも１つを実行させることを含み、この実行させることは決定に基づいている。
【００５８】
別の態様では、本開示は、プロセッサと、記憶された命令を有するメモリと、を含むシステムについて説明し、命令は、中間サーバのプロセッサによる実行時に、プラットフォームサーバと多数のエンドポイントデバイスとの間での通信交換を管理することをプロセッサに実行させる。命令は、中間サーバのプロセッサによる実行時に、ネットワークに接続されている一連の中間サーバのうちの１台の中間サーバを提供することをプロセッサに実行させる。ネットワークは、プラットフォームサーバと、複数のエンドポイントデバイスと、を更に含む。エンドポイントデバイスは一連の中間サーバと通信し、一連の中間サーバはプラットフォームサーバと通信する。命令は、プロセッサによる実行時に、所与のエンドポイントデバイスから受信したデバイスにルーティング情報を挿入するかどうかを決定することをプロセッサに実行させる。ルーティング情報は、所与のエンドポイントデバイスと確立した永続的接続と関連付けられ、永続的接続は、エンドポイントデバイスと確立した一連の永続的接続のうちの１つである。命令は、プロセッサによる実行時に、認証セッション情報を受信メッセージに挿入するかどうかを決定することをプロセッサに実行させる。認証セッション情報は、永続的接続と関連付けられた認証セッションに関する。命令は、プロセッサによる実行時に、永続的接続をエンドポイントデバイスと関連付けられた識別子にバインドするかどうかを決定することをプロセッサに実行させる。バインドすることにより、永続的接続をエンドポイントデバイスに関連付ける。命令は、プロセッサによる実行時に、第１サービスにルーティング情報を受信メッセージに挿入させること、第２サービスに認証セッション情報を受信メッセージに挿入させること、及び第３サービスに永続的接続を識別子にバインドさせることのうちの少なくとも１つをプロセッサに実行させることを含み、この実行させることは決定に基づいている。
【００５９】
別の態様では、本開示は、記憶された命令を有する非一過性コンピュータ読み取り可能な媒体について説明し、命令は、中間サーバのプロセッサによる実行時に、プラットフォームサーバと多数のエンドポイントデバイスとの間での通信交換を管理することをプロセッサに実行させる。命令は、中間サーバのプロセッサによる実行時に、ネットワークに接続されている一連の中間サーバのうちの１台の中間サーバを提供することをプロセッサに実行させる。ネットワークは、プラットフォームサーバと、複数のエンドポイントデバイスと、を更に含み、エンドポイントデバイスは一連の中間サーバと通信し、一連の中間サーバはプラットフォームサーバと通信する。命令は、プロセッサによる実行時に、所与のエンドポイントデバイスから受信したデバイスにルーティング情報を挿入するかどうかを決定することをプロセッサに実行させる。ルーティング情報は、所与のエンドポイントデバイスと確立した永続的接続と関連付けられ、永続的接続は、エンドポイントデバイスと確立した一連の永続的接続のうちの１つである。命令は、プロセッサによる実行時に、認証セッション情報を受信メッセージに挿入するかどうかを決定することをプロセッサに実行させる。認証セッション情報は、永続的接続と関連付けられた認証セッションに関する。命令は、プロセッサによる実行時に、永続的接続をエンドポイントデバイスと関連付けられた識別子にバインドするかどうかを決定することをプロセッサに実行させる。バインドすることにより、永続的接続をエンドポイントデバイスに関連付ける。命令は、プロセッサによる実行時に、第１サービスにルーティング情報を受信メッセージに挿入させること、第２サービスに認証セッション情報を受信メッセージに挿入させること、及び第３サービスに永続的接続を識別子にバインドさせることのうちの少なくとも１つをプロセッサに実行させることを含み、この実行させることは決定に基づいている。
【００６０】
いくつかの実施例では、システムは、分散コンピューティング環境においてメッセージをルーティングするために提供される。このシステムは、プロセッサと、メモリと、を備える。メモリは、プロセッサによる実行時に、（例えば、プラットフォームサーバを）ネットワーク及び一連の中間サーバのうちの１台に通信可能に接続することをプロセッサに実行させる命令を記録する。ネットワークは、一連の中間サーバと、そこに接続されているエンドポイントデバイスと、を含む。エンドポイントデバイスは、一連の中間サーバのうちの１台の中間サーバと通信可能に接続している。エンドポイントデバイスは、第１インスタンスにおいて（例えば、プラットフォームサーバに）バインドされる。第１インスタンスにおいてエンドポイントデバイスにバインドすることは、エンドポイントデバイスと関連付けられた非アドレス可能名前値を使用して実行される。第１インスタンスにおいてエンドポイントデバイスにバインドすることは、ネットワーク上で第１パスに関連付けることを含む。第１パスは、一連の中間サーバのうちの１台又は２台以上をまたいでエンドポイントデバイスを往復するパスである。第１メッセージは、第１パスに沿ってエンドポイントデバイスに伝達される。エンドポイントデバイスは、第２インスタンスにおいて（例えば、プラットフォームサーバに）バインドされる。第２インスタンスにおいてエンドポイントデバイスにバインドすることは、エンドポイントデバイスと関連付けられた非アドレス可能名前値を使用して実行される。第２インスタンスにおいてエンドポイントデバイスにバインドすることは、ネットワーク上で第２パスに関連付けることを含む。第２パスは、第１パスの一連の中間サーバのうちの１台又は２台以上とは異なる、一連の中間サーバのうちの１台又は２台以上をまたいでエンドポイントデバイスを往復するパスである。第２メッセージは、第２パスに沿ってエンドポイントデバイスに伝達される。
【００６１】
いくつかの実施例では、システムは、分散コンピューティング環境においてメッセージをルーティングするために提供される。このシステムは、プロセッサと、メモリと、を備える。メモリは、プロセッサによる実行時に、（例えば、中間サーバ）をネットワーク、プラットフォームサーバ、及びエンドポイントデバイスに通信可能に接続することをプロセッサに実行させる命令を記録する。ネットワークは、プラットフォームサーバと、そこに接続されているエンドポイントデバイスと、を含む。エンドポイントデバイスは、第１インスタンスにおいて（例えば、中間サーバに）バインドされる。第１インスタンスにおいてエンドポイントデバイスにバインドすることは、エンドポイントデバイスと関連付けられた非アドレス可能名前値を使用して実行される。第１インスタンスにおいてエンドポイントデバイスにバインドすることは、エンドポイントデバイスと永続的接続を確立することを含む。エンドポイントデバイスと永続的接続を確立することは、永続的接続を、エンドポイントデバイスに関連付けられた非アドレス可能名前値と関連付けることを含む。信号は、プラットフォームサーバから受信される。信号は、エンドポイントデバイスの非アドレス可能名前値に関連付けられた値を含む。エンドポイントデバイスと確立された永続的接続は、一連の永続的接続から識別される。信号は、一連の永続的接続から識別された永続的接続を使用して、エンドポイントデバイスに伝送される。
【００６２】
いくつかの実施例では、分散コンピューティング環境におけるメッセージのルーティング方法が提供される。ネットワーク及び一連の中間サーバは、（例えば、プラットフォームサーバに）通信可能に接続される。ネットワークは、一連の中間サーバと、そこに接続されているエンドポイントデバイスと、を含む。エンドポイントデバイスは、一連の中間サーバのうちの１台の中間サーバと通信可能に接続している。エンドポイントデバイスは、第１インスタンスにおいて（例えば、プラットフォームサーバに）バインドされる。第１インスタンスにおいてエンドポイントデバイスにバインドすることは、エンドポイントデバイスと関連付けられた非アドレス可能名前値を使用して実行される。第１インスタンスにおいてエンドポイントデバイスにバインドすることは、ネットワーク上で（例えば、プラットフォームサーバによって）第１パスに関連付けることを含む。第１パスは、一連の中間サーバのうちの１台又は２台以上をまたいでエンドポイントデバイスを往復するパスである。第１メッセージは、第１パスに沿ってエンドポイントデバイスに伝達される。エンドポイントデバイスは、第２インスタンスにおいて（例えば、プラットフォームサーバによって）バインドされる。第２インスタンスにおいてエンドポイントデバイスにバインドすることは、エンドポイントデバイスと関連付けられた非アドレス可能名前値を使用して実行される。第２インスタンスにおいてエンドポイントデバイスにバインドすることは、ネットワーク上で第２パスに関連付けることを含む。第２パスは、第１パスの一連の中間サーバのうちの１台又は２台以上とは異なる、一連の中間サーバのうちの１台又は２台以上をまたいでエンドポイントデバイスを往復するパスである。第２メッセージは、第２パスに沿ってエンドポイントデバイスに伝達される。
【００６３】
いくつかの実施例では、エンドポイントデバイスからのバインド解除要求は、第１インスタンスと第２インスタンスとの間の第３インスタンスにおいて受信される。エンドポイントデバイスは、バインド解除要求に基づいて（例えば、プラットフォームサーバによって）バインドが解除される。エンドポイントデバイスからバインドを解除することは、ネットワーク上で第１パスから関連付けを解除することを含む。
【００６４】
いくつかの実施例では、第１パスは、エンドポイントデバイスを往復するパスに沿って、一連の中間サーバのうちの第１中間サーバを含む。第２パスは、エンドポイントデバイスを往復するパス沿って、一連の中間サーバのうちの第２中間サーバを含む。第１パス及び第２パスのそれぞれは、対応する、確立された永続的接続を含む。確立された永続的接続のそれぞれは、対応する接続ハンドルを含む。
【００６５】
いくつかの実施例では、確立された永続的接続はＷｅｂＳｏｃｋｅｔ接続である。
【００６６】
いくつかの実施例では、非アドレス可能名前値は文字列を含む。
【００６７】
いくつかの実施例では、第２エンドポイントデバイスは、第１インスタンスにおいて（例えば、プラットフォームサーバによって）バインドされる。第１インスタンスにおいて（例えば、プラットフォームサーバを）エンドポイントデバイスにバインドすることは、第２エンドポイントデバイスと関連付けられた第２非アドレス可能名前値を使用して実行される。
【００６８】
いくつかの実施例では、（例えば、プラットフォームサーバを）エンドポイントデバイスにバインドすること及び（例えば、プラットフォームサーバを）第２エンドポイントデバイスにバインドすることは、単一のバインド要求に応じて実行される。
【００６９】
いくつかの実施例では、第１パス及び第２パスのうちの少なくとも１つは、一連の中間サーバのうちの２台以上の中間サーバを含む。
【００７０】
いくつかの実施例では、エンドポイントデバイスは、一連のエッジサーバのうちの少なくとも１台と通信可能に接続している。一連のエッジサーバは、一連の中間サーバと通信可能に接続している。第１パスは、一連のエッジサーバのうちの１台又は２台以上を更にまたいでエンドポイントデバイスを往復するパスである。第２パスは、第１パスの一連のエッジサーバのうちの１台又は２台以上とは異なる、一連のエッジサーバのうちの１台又は２台以上を更にまたいでエンドポイントデバイスを往復するパスである。
【００７１】
いくつかの実施例では、分散コンピューティング環境におけるメッセージのルーティング方法が提供される。例えば、中間サーバは、ネットワーク、プラットフォームサーバ、及びエンドポイントデバイスに通信可能に接続される。ネットワークは、プラットフォームサーバと、そこに接続されているエンドポイントデバイスと、を含む。エンドポイントデバイスは、第１インスタンスにおいて（例えば、プラットフォームサーバによって）バインドされる。第１インスタンスにおいて（例えば、プラットフォームサーバを）エンドポイントデバイスにバインドすることは、エンドポイントデバイスと関連付けられた非アドレス可能名前値を使用して実行される。第１インスタンスにおいて（例えば、プラットフォームサーバを）エンドポイントデバイスにバインドすることは、エンドポイントデバイスとの永続的接続を確立することを含む。エンドポイントデバイスとの永続的接続を確立することは、永続的接続を、エンドポイントデバイスと関連付けられた非アドレス可能名前値と関連付けることを含む。信号はプラットフォームサーバから受信され、この信号は、エンドポイントデバイスの非アドレス可能名前値と関連付けられた値を含む。エンドポイントデバイスと確立された永続的接続は、一連の永続的接続から識別される。信号は、一連の永続的接続から識別された永続的接続を使用して、エンドポイントデバイスに伝送される。
【００７２】
いくつかの実施例では、記憶された命令を有する非一過性コンピュータ読み取り可能な媒体が提供され、命令は、プロセッサによる実行時に、（例えば、プラットフォームサーバを）ネットワーク及び一連の中間サーバに通信可能に接続することをプロセッサに実行させる。ネットワークは、一連の中間サーバと、そこに接続されているエンドポイントデバイスと、を含む。エンドポイントデバイスは、一連の中間サーバのうちの１台の中間サーバと通信可能に接続している。エンドポイントデバイスは、第１インスタンスにおいてバインドされる。第１インスタンスにおいて（例えば、プラットフォームサーバを）エンドポイントデバイスにバインドすることは、エンドポイントデバイスと関連付けられた非アドレス可能名前値を使用して実行される。第１インスタンスにおいて（例えば、プラットフォームサーバを）エンドポイントデバイスにバインドすることは、ネットワーク上で第１パスに関連付けることを含む。第１パスは、一連の中間サーバのうちの１台又は２台以上をまたいでエンドポイントデバイスを往復するパスである。第１メッセージは、第１パスに沿ってエンドポイントデバイスに伝達される。エンドポイントデバイスは、第２インスタンスにおいて（例えば、プラットフォームサーバによって）バインドされる。第２インスタンスにおいて（例えば、プラットフォームサーバを）エンドポイントデバイスにバインドすることは、エンドポイントデバイスと関連付けられた非アドレス可能名前値を使用して実行される。第２インスタンスにおいて（例えば、プラットフォームサーバを）エンドポイントデバイスにバインドすることは、ネットワーク上で第２パスに関連付けることを含む。第２パスは、第１パスの一連の中間サーバのうちの１台又は２台以上とは異なる、一連の中間サーバのうちの１台又は２台以上をまたいでエンドポイントデバイスを往復するパスである。第２メッセージは、第２パスに沿ってエンドポイントデバイスに伝達される。
【００７３】
いくつかの実施例では、エンドポイントデバイスからのバインド解除要求は、第１インスタンスと第２インスタンスとの間の第３インスタンスにおいて受信される。プラットフォームサーバは、バインド解除要求に基づいて、エンドポイントデバイスからバインドが解除される。エンドポイントデバイスから（例えば、プラットフォームサーバの）バインドを解除することは、ネットワーク上で第１パスから（例えば、プラットフォームサーバの）関連付けを解除することを含む。
【００７４】
いくつかの実施例では、第１パス及び第２パスのそれぞれは、対応する確立された永続的接続を含み、確立された永続的接続のそれぞれは、対応する接続ハンドルを含む。
【００７５】
いくつかの実施例では、確立された永続的接続はＷｅｂＳｏｃｋｅｔ接続である。
【００７６】
いくつかの実施例では、非アドレス可能名前値は文字列を含む。
【００７７】
いくつかの実施例では、プラットフォームサーバは、第１インスタンスにおいて第２エンドポイントデバイスにバインドされる。第１インスタンスにおいて（例えば、プラットフォームサーバを）エンドポイントデバイスにバインドすることは、第２エンドポイントデバイスと関連付けられた第２非アドレス可能名前値を使用して実行される。
【００７８】
いくつかの実施例では、（例えば、プラットフォームサーバを）エンドポイントデバイスにバインドすること及び第２エンドポイントデバイスにバインドすることは、単一のバインド要求に応じて実行される。
【００７９】
いくつかの実施例では、第１パス及び第２パスのうちの少なくとも１つは、一連の中間サーバのうちの２台以上の中間サーバを含む。
【００８０】
いくつかの実施例では、エンドポイントデバイスは、一連のエッジサーバのうちの少なくとも１台と通信可能に接続している。一連のエッジサーバは、一連の中間サーバと通信可能に接続している。第１パスは、一連のエッジサーバのうちの１台又は２台以上を更にまたいでエンドポイントデバイスを往復するパスである。第２パスは、第１パスの一連のエッジサーバのうちの１台又は２台以上とは異なる、一連のエッジサーバのうちの１台又は２台以上を更にまたいでエンドポイントデバイスを往復するパスである。
【００８１】
いくつかの実施例では、記憶された命令を有する非一過性コンピュータ読み取り可能な媒体が提供され、命令は、プロセッサによる実行時に、（例えば、プラットフォームサーバを）ネットワーク、プラットフォームサーバ、及びエンドポイントデバイスに通信可能に接続することをプロセッサに実行させ、ネットワークは、プラットフォームサーバと、そこに接続されたエンドポイントデバイスと、を含む。プラットフォームサーバは、第１インスタンスにおいてエンドポイントデバイスにバインドされる。第１インスタンスにおいて（例えば、プラットフォームサーバを）エンドポイントデバイスにバインドすることは、エンドポイントデバイスと関連付けられた非アドレス可能名前値を使用して実行される。第１インスタンスにおいて（例えば、プラットフォームサーバを）エンドポイントデバイスにバインドすることは、エンドポイントデバイスとの永続的接続を確立することを含む。エンドポイントデバイスとの永続的接続を確立することは、永続的接続を、エンドポイントデバイスと関連付けられた非アドレス可能名前値と関連付けることを含む。信号は、プラットフォームサーバから受信される。信号は、エンドポイントデバイスの非アドレス可能名前値に関連付けられた値を含む。エンドポイントデバイスと確立された永続的接続は、一連の永続的接続から識別される。信号は、一連の永続的接続から識別された永続的接続を使用して、エンドポイントデバイスに伝送される。
【００８２】
いくつかの実施例では、データストリームに状態を挿入する方法が提供される。中間サーバは、ネットワーク及びプラットフォームサーバに通信可能に接続される。ネットワークは、そこに接続されているプラットフォームサーバを含む。プラットフォームサーバは、対応する永続的接続で複数の中間サーバに通信可能に接続される。複数の中間サーバは、対応する永続的接続で複数のコンピューティングデバイスに通信可能に接続される。サービス要求は、第１永続的接続で、複数のコンピューティングデバイスのうちの１つからポートを介して受信される。状態識別子はサービス要求に挿入され、この状態識別子は、第１永続的接続の接続ＩＤと関連付けられている。サービス要求は、第２永続的接続でプラットフォームサーバに伝送される。応答メッセージは、第２永続的接続で受信される。応答メッセージは、サービス要求に応じて、プラットフォームサーバによって生成される。応答メッセージは、応答メッセージの状態識別子を含む。第１永続的接続の接続ＩＤは、状態識別子を使用して取得される。応答メッセージの状態識別子は、サービス要求に含まれる状態識別子と同一である。応答メッセージは、第１永続的接続で、複数のコンピューティングデバイスのうちの１つに伝送される。第１永続的接続は、取得した接続ＩＤに基づいて選択される。
【００８３】
いくつかの実施例では、第２状態識別子は、複数のコンピューティングデバイスのうちの１つとプラットフォームサーバとの間での認証交換と関連付けられ、第２状態識別子は、複数のコンピューティングデバイスのうちの１つの名前値と関連付けられている。サービス要求に含まれるデバイス識別子は、複数のコンピューティングデバイスの名前値と比較され、このデバイス識別子は、複数のコンピューティングデバイスのうちの１つと関連付けられている。サービス要求に含まれるデバイス識別子が、複数のコンピューティングデバイスの名前値と一致する場合、第２状態識別子はサービス要求に挿入される。
【００８４】
いくつかの実施例では、サービス要求に含まれるデバイス識別子が複数のコンピューティングデバイスの名前値と一致する場合、中間サーバは、１つ又は２つ以上のデバイス識別子を含むバインドリスト（例えば、中間サーバのバインドリスト、エッジサーバのバインドリスト）からデバイス識別子を削除させる。
【００８５】
いくつかの実施例では、第２状態識別子は、第１永続的接続の接続ＩＤと関連があり、第１永続的接続の接続ＩＤとの第２状態識別子の関連性は、メモリに記憶される。
【００８６】
いくつかの実施例では、状態情報は、応答メッセージに埋め込まれたメッセージ内容と関連付けられており、したがって、中間サーバはステートレスである。
【００８７】
いくつかの実施例では、状態識別子は、サービス要求のヘッダー部分に挿入される。
【００８８】
いくつかの実施例では、第１永続的接続及び第２永続的接続は、ＷｅｂＳｏｃｋｅｔ接続である。
【００８９】
いくつかの実施例では、プロセッサと、メモリと、を備えるシステムが提供され、メモリは、プロセッサによる実行時に、（例えば、プラットフォームサーバを）ネットワークに及びプラットフォームサーバに通信可能に接続することをプロセッサに実行させる命令を記憶し、ネットワークは、そこに接続されているプラットフォームサーバを含む。プラットフォームサーバは、対応する永続的接続で複数の中間サーバと通信可能に接続される。複数の中間サーバは、対応する永続的接続で複数のコンピューティングデバイスと通信可能に接続される。サービス要求は、第１永続的接続で、複数のコンピューティングデバイスのうちの１つからポートを介して受信される。状態識別子はサービス要求に挿入され、この状態識別子は、第１永続的接続の接続ＩＤと関連付けられている。サービス要求は、第２永続的接続でプラットフォームサーバに伝送される。応答メッセージは、第２永続的接続で受信される。応答メッセージは、サービス要求に応じてプラットフォームサーバによって生成され、応答メッセージは、応答メッセージの状態識別子を含む。第１永続的接続の接続ＩＤは、状態識別子を使用して取得され、応答メッセージの状態識別子は、サービス要求に含まれる状態識別子と同一である。応答メッセージは、第１永続的接続で複数のコンピューティングデバイスのうちの１つに伝送され、第１永続的接続は、取得した接続ＩＤに基づいて選択される。
【００９０】
いくつかの実施例では、複数のコンピューティングデバイスのうちの１つとプラットフォームサーバとの間での認証交換と関連付けられた第２状態識別子は、メモリに記憶される。第２状態識別子は、複数のコンピューティングデバイスのうちの１つの名前値と関連付けられている。サービス要求に含まれるデバイス識別子は、複数のコンピューティングデバイスの名前値と比較され、このデバイス識別子は、複数のコンピューティングデバイスのうちの１つと関連付けられている。サービス要求に含まれるデバイス識別子が、複数のコンピューティングデバイスの名前値と一致する場合、第２状態識別子はサービス要求に挿入される。
【００９１】
いくつかの実施例では、サービス要求に含まれるデバイス識別子が複数のコンピューティングデバイスの名前値と一致しない場合、１つ又は２つ以上のデバイス識別子を含むバインドリスト（例えば、中間サーバのバインドリスト、エッジサーバのバインドリスト）からデバイス識別子を削除させる。
【００９２】
いくつかの実施例では、メモリは、プロセッサによる実行時に、第２状態識別子を第１永続的接続の接続ＩＤに関連付けさせること、及び第２状態識別子と第１永続的接続の接続ＩＤとの関連性をメモリに記憶することをプロセッサに実行させる命令を記憶する。
【００９３】
いくつかの実施例では、状態情報は、応答メッセージに埋め込まれたメッセージ内容と関連付けられており、したがって、中間サーバはステートレスである。
【００９４】
いくつかの実施例では、状態識別子は、サービス要求のヘッダー部分に挿入される。
【００９５】
いくつかの実施例では、第１永続的接続及び第２永続的接続は、ＷｅｂＳｏｃｋｅｔ接続である。
【００９６】
いくつかの実施例では、非一過性コンピュータ読み取り可能な媒体は、そこに記憶された命令を有し、命令は、プロセッサによる実行時に、（例えば、中間サーバを）ネットワーク及びプラットフォームサーバに通信可能に接続することをプロセッサに実行させ、ネットワークは、そこに接続されているプラットフォームサーバを含む。プラットフォームサーバは、対応する永続的接続で複数の中間サーバと通信可能に接続される。複数の中間サーバは、対応する永続的接続で複数のコンピューティングデバイスと通信可能に接続される。複数のコンピューティングデバイスのうちの１つからのサービス要求は、第１永続的接続で、ポートを介して受信される。状態識別子はサービス要求に挿入され、この状態識別子は、第１永続的接続の接続ＩＤと関連付けられている。サービス要求は、第２永続的接続でプラットフォームサーバに伝送される。応答メッセージは、第２永続的接続で受信される。応答メッセージは、サービス要求に応じて、プラットフォームサーバによって生成される。応答メッセージは、応答メッセージの状態識別子を含む。第１永続的接続の接続ＩＤは、状態識別子を使用して取得され、応答メッセージの状態識別子は、サービス要求に含まれる状態識別子と同一である。応答メッセージは、複数のコンピューティングデバイスのうちの１つに伝送され、第１永続的接続は、取得した接続ＩＤに基づいて選択される。
【００９７】
いくつかの実施例では、命令は、プロセッサによる実行時に、複数のコンピューティングデバイスのうちの１つとプラットフォームサーバとの間での認証交換と関連付けられた第２状態識別子をメモリに記憶することであって、第２状態識別子は、複数のコンピューティングデバイスのうちの１つの名前値と関連付けられていること、サービス要求に含まれるデバイス識別子を複数のコンピューティングデバイスの名前値と比較することであって、このデバイス識別子は、複数のコンピューティングデバイスのうちの１つと関連付けられていること、及びサービス要求に含まれるデバイス識別子が、複数のコンピューティングデバイスの名前値と一致する場合、第２状態識別子をサービス要求に挿入すること、をプロセッサに実行させる。
【００９８】
いくつかの実施例では、命令は、プロセッサによる実行時に、サービス要求に含まれるデバイス識別子が複数のコンピューティングデバイスの名前値と一致しない場合、１つ又は２つ以上のデバイス識別子を含むバインドリスト（例えば、中間サーバのバインドリスト、エッジサーバのバインドリスト）から（例えば、中間サーバによって）デバイス識別子を削除することをプロセッサに実行させる。
【００９９】
いくつかの実施例では、命令は、プロセッサによる実行時に、第２状態識別子を第１永続的接続の接続ＩＤと関連付けさせること、及び第２状態識別子と接続ＩＤとの関連性をメモリに記憶することをプロセッサに実行させる。
【０１００】
いくつかの実施例では、状態情報は、応答メッセージに埋め込まれたメッセージ内容と関連付けられており、したがって、中間サーバはステートレスである。
【０１０１】
いくつかの実施例では、状態識別子は、サービス要求のヘッダー部分に挿入される。
【０１０２】
いくつかの実施例では、第１永続的接続及び第２永続的接続は、ＷｅｂＳｏｃｋｅｔ接続である。
【０１０３】
いくつかの実施例では、（例えば、プラットフォームサーバによる）エンドポイントデバイスとの通信の管理方法が提供され、この方法は、（例えば、プラットフォームサーバ）をネットワーク及び一連の中間サーバのうちの１台に通信可能に接続することであって、ネットワークは、一連の中間サーバと、そこに接続されているエンドポイントデバイスと、を含み、エンドポイントデバイスは、一連の中間サーバのうちの１台の中間サーバに通信可能に接続されること、第２永続的接続で、第１エンドポイントデバイスからの第１データメッセージをポートによって受信することであって、第１データメッセージは、第１永続的接続で第１中間サーバを経由してルーティングされること、第４永続的接続で、第２エンドポイントデバイスからの第２データメッセージをポートによって受信することであって、第２データメッセージは、第３永続的接続で第２中間サーバを経由してルーティングされること、並びに第１データメッセージ及び第２データメッセージを提供すること、を含み、第１中間サーバ及び第２中間サーバのそれぞれは、第１エンドポイントデバイス及び第２エンドポイントデバイスの双方向の接続性をそれぞれ管理する。
【０１０４】
いくつかの実施例では、第１中間サーバ及び第２中間サーバは、第１エンドポイントデバイス及び第２エンドポイントデバイスの往復の認証セッションをそれぞれ管理する。
【０１０５】
いくつかの実施例では、第１データメッセージ及び第２データメッセージを提供することは、永続サーバ、データベースサーバ、顧客関係管理（ＣＲＭ）サーバ、エンタープライズリソースプランニング（ＥＲＰ）サーバ、業務支援システム（ＯＳＳ）サーバ、営業支援システム（ＢＳＳ）サーバ、及びデータウェアハウスからなる群から選択されるバックオフィスサーバに第１データメッセージ及び第２データメッセージをルーティングすることを含む。
【０１０６】
いくつかの実施例では、永続的接続はＷｅｂＳｏｃｋｅｔ接続である。
【０１０７】
いくつかの実施例では、非一過性コンピュータ読み取り可能な媒体は、そこに記憶された命令を有し、命令は、プロセッサによる実行時に、第２永続的接続で第１エンドポイントデバイスからの第１データメッセージをポートによって受信することであって、第１データメッセージは、第１永続的接続で第１中間サーバを経由してルーティングされること、第４永続的接続で、第２エンドポイントデバイスからの第２データメッセージをポートによって受信することであって、第２データメッセージは、第３永続的接続で第２中間サーバを経由してルーティングされること、及び第１データメッセージ及び第２データメッセージを提供すること、をプロセッサに実行させ、第１中間サーバ及び第２中間サーバのそれぞれは、第１エンドポイントデバイス及び第２エンドポイントの双方向の接続性をそれぞれ管理する。
【０１０８】
いくつかの実施例では、第１中間サーバ及び第２中間サーバは、第１エンドポイントデバイス及び第２エンドポイントデバイスの往復の認証セッションをそれぞれ管理する。
【０１０９】
いくつかの実施例では、第１データメッセージ及び第２データメッセージを提供することは、永続サーバ、データベースサーバ、顧客関係管理（ＣＲＭ）サーバ、エンタープライズリソースプランニング（ＥＲＰ）サーバ、業務支援システム（ＯＳＳ）サーバ、営業支援システム（ＢＳＳ）サーバ、及びデータウェアハウスからなる群から選択されるバックオフィスサーバに第１データメッセージ及び第２データメッセージをルーティングすることを含む。
【０１１０】
いくつかの実施例では、永続的接続はＷｅｂＳｏｃｋｅｔ接続である。
【０１１１】
いくつかの実施例では、システムは、プロセッサと、メモリと、を備え、メモリは、プロセッサによる実行時に、第２エンドポイントデバイスからの第２データメッセージをポートによって受信することであって、第２データメッセージは、第３永続的接続で第２中間サーバを経由してルーティングされること、並びに第１データメッセージ及び第２データメッセージを提供すること、をプロセッサに実行させる命令を記憶し、第１中間サーバ及び第２中間サーバのそれぞれは、第１エンドポイントデバイス及び第２エンドポイントデバイスの双方向の接続性をそれぞれ管理する。
【０１１２】
いくつかの実施例では、第１中間サーバ及び第２中間サーバは、第１エンドポイントデバイス及び第２エンドポイントデバイスの往復の認証セッションをそれぞれ管理する。
【０１１３】
いくつかの実施例では、第１データメッセージ及び第２データメッセージを提供することは、永続サーバ、データベースサーバ、顧客関係管理（ＣＲＭ）サーバ、エンタープライズリソースプランニング（ＥＲＰ）サーバ、業務支援システム（ＯＳＳ）サーバ、営業支援システム（ＢＳＳ）サーバ、及びデータウェアハウスからなる群から選択されるバックオフィスサーバに第１データメッセージ及び第２データメッセージをルーティングすることを含む。
【０１１４】
いくつかの実施例では、システムは、単一の物理サーバを備える。
【０１１５】
いくつかの実施例では、システムは、複数の物理サーバを備える。
【０１１６】
いくつかの実施例では、永続的接続はＷｅｂＳｏｃｋｅｔ接続である。
【０１１７】
いくつかの実施例では、エンドポイントデバイスとの通信の管理方法が提供され、この方法は、（例えば、中間サーバを）ネットワーク、プラットフォームサーバ、及びエンドポイントデバイスに通信可能に接続することであって、ネットワークは、プラットフォームサーバと、そこに接続されている複数のエンドポイントデバイスと、を含むこと、複数のエンドポイントデバイスのうちの１つのエンドポイントデバイスからの受信メッセージにルーティング情報を挿入するかどうかを決定することであって、ルーティング情報はエンドポイントデバイスと確立された永続的接続と関連付けられており、永続的接続は、複数のエンドポイントデバイスと確立された一連の永続的接続のうちの１つの永続的接続であること、受信メッセージに認証セッション情報を挿入するかどうかを決定することであって、認証セッション情報は、永続的接続と関連付けられた認証セッションに関するものであること、エンドポイントデバイスと関連付けられた識別子に永続的接続をバインドするかどうかを決定することであって、バインドすることにより、永続的接続をエンドポイントデバイスと関連付けること、並びに（ｉ）第１サービスに、ルーティング情報を受信メッセージに挿入させること、（ｉｉ）第２サービスに、認証セッション情報を受信メッセージに挿入させること、及び（ｉｉｉ）第３サービスに、永続的接続をエンドポイントデバイスと関連付けられた識別子にバインドさせること、のうちの少なくとも１つを実行させること、を含む。
【０１１８】
いくつかの実施例では、システムは、プロセッサと、記憶された命令を有するメモリと、を備え、命令は、プロセッサによる実行時に、ネットワーク、プラットフォームサーバ、及びエンドポイントデバイスに通信可能に接続することであって、ネットワークは、プラットフォームサーバと、そこに接続されている複数のエンドポイントデバイスと、を含むこと、複数のエンドポイントデバイスのうちの１つのエンドポイントデバイスからの受信メッセージにルーティング情報を挿入するかどうかを決定することであって、ルーティング情報はエンドポイントデバイスと確立された永続的接続と関連付けられており、永続的接続は、複数のエンドポイントデバイスと確立された一連の永続的接続のうちの１つの永続的接続であること、受信メッセージに認証セッション情報を挿入するかどうかを決定することであって、認証セッション情報は、永続的接続と関連付けられた認証セッションに関するものであること、エンドポイントデバイスと関連付けられた識別子に永続的接続をバインドするかどうかを決定することであって、バインドすることにより、永続的接続をエンドポイントデバイスと関連付けること、並びに（ｉ）第１サービスに、ルーティング情報を受信メッセージに挿入させること、（ｉｉ）第２サービスに、認証セッション情報を受信メッセージに挿入させること、及び（ｉｉｉ）第３サービスに、永続的接続をエンドポイントデバイスと関連付けられている識別子にバインドさせることのうちの少なくとも１つを実行させること、をプロセッサに実行させる。
【０１１９】
本開示の前記及び他の目的、態様、特徴、及び利点は、添付図面と併せて以下の説明を参照することによってより明白となり、より理解されるであろう。
【図面の簡単な説明】
【０１２０】
【図１】本発明の例示の実施形態による、プラットフォームサーバと複数のコンピューティングデバイスとの通信を可能にする例示的システムのブロック図である。
【図２】本発明の実施形態による、所与のプラットフォームサーバと所与のコンピューティングデバイスとの間に確立された、例示的な永続的通信チャネルのブロック図である。
【図３】本発明の実施形態による、アプリケーションプロトコルインターフェース（ＡＰＩ）通信のメッセージング構造の例である。
【図４】本発明の実施形態による、通信ＡＰＩプロトコルによって使用される、例示的メッセージングコードを示す。
【図５】本発明の実施形態による、ステートレス永続的接続で、プラットフォームサーバとエンドポイントデバイスとの間での通信交換に状態情報及びルーティング情報を挿入する、例示的方法のスイムレーン図である。
【図６】本発明の実施形態による、ステートレス永続的接続で、プラットフォームサーバとエンドポイントデバイスとの間でのデータ要求通信交換に状態情報及びルーティング情報を挿入する、例示的方法のスイムレーン図である。
【図７】本発明の実施形態による、接続サーバの例示的制御方法のフローチャートである。
【図８】本発明の実施形態による、コンピューティングデバイスの永続的接続パスの再バインド方法を示す。
【図９】本発明の実施形態による、例示的システムのブロック図である。
【図１０】本発明の実施形態による、ステートレス永続的接続で、プラットフォームサーバとエンドポイントデバイスとの間での通信交換に状態情報及びルーティング情報を挿入する、例示的方法のフローチャートである。
【図１１】本発明の実施形態による、永続的接続での２つのネットワークノードと中間ノードとの例示的通信方法のフローチャートである。
【図１２】本発明の実施形態による、プラットフォームサーバと複数のエンドポイントデバイスとの例示的通信方法のフローチャートである。
【図１３】コンピューティングデバイス及びモバイルコンピューティングデバイスのブロック図である。
【０１２１】
本開示の特徴及び利点は、添付図面と併せて以下の詳細な説明を参照することによってより明らかとなるであろう。これらを通じて、同様の符号は対応する要素を示す。図面では、同様の参照番号は、同一の、機能的に類似する、及び／又は構造的に類似する要素を概ね示す。
【発明を実施するための形態】
【０１２２】
当然のことながら、本願発明のシステム、デバイス、方法、及びプロセスは、本明細書に記載の実施形態の情報を使用して開発される変形及び適応を包含する。当業者は、本明細書に記載のシステム、デバイス、方法、及びプロセスを適応すること、及び／又は変更することを実行できるであろう。
【０１２３】
本説明を通して、物品、デバイス、及びシステムが、特定のコンポーネントを有する、含む、若しくは備えるものとして記載される場合、又はプロセス及び方法が、特定の工程を有する、含む、若しくは備えるものとして記載される場合、当然のことながら、引用されたコンポーネントから本質的になる、又はこれらからなる、本発明の物品、デバイス、及びシステムが存在する、また、引用された処理工程から本質的になる、又はこれらからなる、本発明によるプロセス及び方法が存在する。
【０１２４】
当然のことながら、工程の順序又は動作の実行順序は、本発明が動作可能である限り重要ではない。更に、２つ以上の工程及び動作を同時に実施してよい。
【０１２５】
本明細書における任意の出版物又は特許出願への言及、例えば、「背景技術」の項での言及は、かかる出版物又は特許出願が、本明細書に記載のいずれの特許請求又は内容に関しても先行技術を構成することを認めるものではない。「背景技術」の項は、明確化を目的とするものであり、いずれかの請求項に関する先行技術の説明を意図したものではない。
【０１２６】
分散コンピューティング環境における、莫大な数の接続デバイスとサーバのフェデレーションとの通信を可能にする、方法及びシステムについて説明する。
【０１２７】
サーバのフェデレーションによって、所与の接続デバイスは、分散コンピューティング環境内で自由に移動（例えば、異なるネットワーク及び／又はサーバと接続、それらに接続、それらを経由して接続）できるようになる。その結果、接続デバイスは、デバイスの自身の位置に関する情報又はフェデレーション内のノードに関するネットワーキング若しくはルーティングの詳細を維持する必要がない。それどころか、サーバのフェデレーションのうちのエッジサーバ及び中間サーバは、接続デバイスと関連付けられた、１つ又は２つ以上の非ネットワークアドレス可能識別子を使用して、サーバのフェデレーションを経由してバインドパスを確立し、プラットフォームサーバからのメッセージは、これを通って接続デバイスに送信されてよい。サーバのフェデレーションは、受信用パスを介して、フェデレーションのエッジ（例えば、エッジサーバにおいて）からプラットフォームサーバへとメッセージを伝送するように有益に構成される。したがって、バインドは、プラットフォームサーバから接続デバイスへの送信メッセージを支援するためだけに必要である。いくつかの実施例では、デバイスがフェデレーションシステム内で認証されると、サーバのフェデレーションのうちのエッジサーバ及び中間サーバによって、デバイスをバインドできるようになる。
【０１２８】
別の態様では、中間サーバは、莫大な数のエッジサーバへの接続を処理するように、有益に最適化される。中間サーバはステートレスサーバとして動作するため、そこを通ってリレーされたメッセージ及び／又は通信の状態を維持しない、又は追跡しない。それどころか、中間サーバは、各受信メッセージに状態情報を挿入し、挿入された情報を送信元に戻す際にルーティング規則を用いる。挿入された状態情報は、受信メッセージの戻り送信用パスと関連付けられている、送信用ＷｅｂＳｏｃｋｅｔ接続の通信ハンドルに対応してよい。
【０１２９】
図１は、本発明の実施形態による、プラットフォームサーバ１０２（「プラットフォームサーバ」１０２ａ又は１０２ｂのいずれかとして示す）と複数のコンピューティングデバイス１０４との通信を可能にする例示的システム１００のブロック図である。各コンピューティングデバイス１０４は、サービス及びコンピューティングデバイス群１０８（１０８ａ、１０８ｂ、１０８ｃ、及び１０８ｄ）との通信を提供する、エッジサーバ１０６に接続してよい。いくつかの例示的実施例では、コンピューティングデバイス１０８は、接続サーバ又はアプリケーションプロトコルインターフェース（ＡＰＩ）サーバ１１０（以下で詳述する）と通信してよい。コンピューティングデバイス１０４と接続サーバとの通信は、エッジサーバ１０６及び／又はゲートウェイデバイスを介して実行されてよい。いくつかの実施例では、コンピューティングデバイス１０４は、物理資産／デバイス、コンピュータアプリケーション及びシステム、人、データオブジェクト、並びにプラットフォームサービスに関するプロパティデータ、サービスデータ、及びイベントデータなどをやり取りできる電子デバイスである。
【０１３０】
いくつかの実施例では、コンピューティングデバイス１０４は、工業団地にあるセンサ若しくは機械装置；企業若しくは政府のオフィスにあるコンピュータ若しくはオフィス機器；商業地若しくは自動販売機にある販売時点管理装置；建設機器若しくは車両；発電若しくは配電装置；配電若しくは伝送装置；建築用メーター；サーバ；ネットワーキング装置若しくはルーティング装置；スマートアプライアンス；運動器具；医療用装置若しくは補綴装置；医療用診断装置若しくは病院用機器；商用車若しくは輸送コンテナ；動力車若しくは電動補助動力自転車；携帯電話、ラップトップ、タブレット、電子リーダー；又は衣服用電気タグである。
【０１３１】
いくつかの実施例では、エッジサーバは、エンドポイントデバイス（例えば、コンピュータデバイス１０４）及び／又は他のサーバなど他のシステムとインターフェースをとる通信ポートを含む、電子デバイスである。エッジサーバとしては、例えば、ゲートウェイデバイス、ネットワークサーバ、シングルボードコンピュータ、監視制御データ収集システム（「ＳＣＡＤＡ」）又はプログラマブル論理制御装置（「ＰＬＣ」）が挙げられるが、これらに限定されなくてよい。エッジサーバは、産業、商業、コンピューティング、及び軍事用物理接続基準によって、エンドポイントデバイスに伝達してよい（例えば、及び／又はこれらと通信してよい）。これらの基準としては、例えば、Ｍｏｄｂｕｓ、ＲＳ−２３２、ＲＳ−４２２、ＲＳ−４８５、シリアル−ＡＴＡ、ＳＣＳＩ、ＦｉｒｅＷｉｒｅ（ＩＥＥＥ  １３９４）、イーサネット（登録商標）、ユニバーサルシリアルバス、ＳＯＮＥＴ（「同期光ネットワーク」）、ＭＩＬ−ＳＴＤ−１５５３、Ｉ2Ｃ（「Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ」）、ＣＡＮ−ｂｕｓ（「コントローラエリアネットワーク」）、ＡＲＩＮＣ  ７３９（「Ａｖｉｏｎｉｃｓ  Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｂｕｓ」）、ＢＡＣｎｅｔ、及びＬｏｎＷｏｒｋｓが挙げられるが、これらに限定されない。これらの基準としては、保健／医療通信基準（ＣＥＮ  ＩＳＯ／ＩＥＥＥ  １１０７３）も挙げられる。これらの例は、説明のみを目的とするものである。このため、他の基準を用いてもよい。
【０１３２】
一連のコンピューティングデバイス１０４のために（例えば、これらに、これらから）データ及び情報を提供するために、コンピューティングデバイス１０４及び／又は１台若しくは２台以上のエッジサーバ１０６は、第１永続的接続１０３で中間サーバ１１０（接続サーバ１１０又はＡＰＩサーバ１１０とも呼ばれ、１１０ａ、１１０ｂ、１１０ｃ、及び１１０ｄとして示す）と通信してよい。永続的接続、又は永続的接続性は、システム（例えば、中間サーバ１１０、エッジサーバ１０６）間の単一接続を指し、一度確立されると、システム間で複数の要求／応答を送受信するために使用される。
【０１３３】
次に、接続サーバ１１０は、第２永続的接続１０５でプラットフォームサーバ１０２と通信する。本質的に、接続サーバ１１０は、第１永続的接続１０３及び第２永続的接続１０５をまたいで、プラットフォームサーバ１０２とコンピューティングデバイス１０４及び／又はエッジサーバ１０６との間の永続的パスを形成する、又は識別する。つまり、いくつかの実施例では、永続的パスは２つのシステムが相互に連結されている、１つ又は２つ以上の接続（例えば、永続的接続）を指す。いくつかの実施例では、接続サーバ１１０は、Ｕｎｉｘベース（例えば、Ａｍａｚｏｎ  ＥＣ２  Ｌｉｎｕｘ（登録商標））又はＷｉｎｄｏｗｓベース（例えば、Ｗｉｎｄｏｗｓサーバ）のオペレーティングシステムを用いて、Ｏｒａｃｌｅ  Ｊａｖａ（登録商標）  Ｒｕｎｔｉｍｅ  Ｅｎｖｉｒｏｎｍｅｎｔ又はＪａｖａ（登録商標）  Ｄｅｖｅｌｏｐｍｅｎｔ  ＫｉｔでＡｐａｃｈｅ  Ｔｏｍｃａｔを作動させる。
【０１３４】
集合的に、プラットフォームサーバ１０２、接続サーバ１１０、エッジサーバ１０６、及び／又はコンピューティングデバイス１０４は、分散型コンピューティングシステムのフェデレーションを形成する。いくつかの実施例では、プラットフォームサーバ１０２は、所与のコンピューティングデバイス１０４への接続性を維持する、ビジネスロジックサーバである。かかる場合、プラットフォームサーバ１０２は、データ及び情報、例えば、コンピューティングデバイス１０４のデータ及び情報の検索、記憶、及び管理などサービス機能を提供するためのビジネスロジック及び／又は規則を含む様々なバックオフィスサーバを含んでよい、又はこれらと通信してよい。このため、プラットフォームサーバ１０２は、主として、様々なアプリケーション及びシステム（例えば、バックオフィスサーバ）並びにコンピューティングデバイス１０４と送受信したデータをルーティングする役割を果たしてよい。
【０１３５】
いくつかの実施例では、プラットフォームサーバ１０２は、コンピューティングデバイス１０４の認証プロセスを管理する。
【０１３６】
いくつかの実施例では、プラットフォームサーバ１０２は、様々なバックオフィスアプリケーション及びシステムと送受信したデータをルーティングする。例えば、特定のコンピューティングデバイス１０４からデータを受信したとき、プラットフォームサーバ１０２は、このデータを別のデータベースサーバ（例えば、バックオフィスアプリケーション及びシステム）にルーティングしてよい（例えば、ネットワーク内のパスを通じて伝送する）。他の実施形態では、サードパーティアプリケーションは、プラットフォームサーバによるデータ送信を要求する。
【０１３７】
サーバなどバックオフィスシステムには、例えば、ＣＲＭ／ＥＲＰ（「顧客関係管理」及び／又は「エンタープライズリソースプランニング」）、データ解析、ビッグデータストア（例えば、Ｈａｄｏｏｐ、データウェアハウス、及び様々な分散型ファイルシステム）、ＩＤ管理、課金、プロビジョニング、並びにウェブサービスの提供に使用するサードパーティ製品（例えば、ソフトウェア、ハードウェア）が含まれてよい。かかるバックオフィスシステムの例としてはＳＡＰ（登録商標）エンタープライズリソースプランニング（ＥＲＰ）、Ｓａｌｅｓｆｏｒｃｅ（登録商標）Ｃｕｓｔｏｍｅｒ  Ｒｅｌａｔｉｏｎｓｈｉｐ  Ｍａｎａｇｅｍｅｎｔ、業務支援システム（ＯＳＳ）、及び営業支援システム（ＢＳＳ）などのコンポーネントが挙げられる。
【０１３８】
様々なデータストレージ及びアプリケーションは、プラットフォームサーバ１０２と通信してよい。いくつかの実施例では、この通信は、ウェブサービス、Ｊａｖａ（登録商標）  Ｄａｔａｂａｓｅ  Ｃｏｎｎｅｃｔｉｖｉｔｙ（ＪＤＢＣ）、又はネイティブＡＰＩを使用して実行される。
【０１３９】
いくつかの実施例では、接続サーバ１１０とエッジサーバ１０６及び／又はコンピューティングデバイス１０４との間での通信交換は、インターネット１１２ａ、広域ネットワーク１１２ｂ、又はサードパーティネットワーク１１２ｃなどネットワークインフラストラクチャ１１２をまたいで生じる。次に、１台又は２台以上の接続サーバ１１０は、プラットフォームサーバ１０２と通信する。プラットフォームサーバ１０２、接続サーバ１１０、エッジサーバ１０６、及び／又はコンピューティングデバイス１０４は、集合的に分散型コンピューティングシステムを形成する。いくつかの実施例では、接続サーバ１１０は、一連のネットワークセキュリティ機器１１４を経由して、一連のエッジサーバ１０６、及び／又はコンピューティングデバイス１０４と通信する。セキュリティ機器は、オープンネットワークインフラストラクチャ１１２から接続サーバ１１０、プラットフォームサーバ１０２、エッジサーバ１０６、及びコンピューティングデバイス１０４を保護する。ネットワークセキュリティ機器１１４には、例えば、ファイアウォール又はネットワークアドレス変換（ＮＡＴ）プロトコルが含まれてよい。
【０１４０】
図２は、本発明の実施形態による、所与のプラットフォームサーバ１０２と所与のコンピューティングデバイス１０４との間に確立されている、例示的な永続的通信チャネル２００のブロック図である。
【０１４１】
いくつかの実施例では、プラットフォームサーバ１０２は、ＡＰＩプロトコルライブラリ２０４（２０４ａとして示す）を使用して、サーバ−クライアントアプリケーションを実行する。ＡＰＩプロトコルライブラリは、チャネル２００で通信を管理する。エッジサーバ１０６及び／又はコンピューティングデバイス１０４は、同一の通信ＡＰＩプロトコルライブラリ２０４（２０４ｃとして示す）を実行するサーバ−クライアントアプリケーションを実行する。このため、プラットフォームサーバ１０２とエッジサーバ１０６及び／又はコンピューティングデバイス１０４との間でやり取りされるメッセージは、これらのメッセージが同一のメッセージ構造及び機能を共有するという点で、ほとんど対称である。
【０１４２】
いくつかの実施例では、ＡＰＩプロトコルライブラリ２０４は、バイナリダイナミックＲＥｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ（ＲＥＳＴ）ＡＰＩ、つまり「ＲＥＳＴｆｕｌ」ＡＰＩである。バイナリダイナミックＲＥＳＴ  ＡＰＩを使用した通信方法の例は、同時係属中の同時に出願された米国特許出願（名称「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｏｆ  Ｕｓｉｎｇ  Ｂｉｎａｒｙ  Ｄｙｎａｍｉｃ  Ｒｅｓｔ  Ｍｅｓｓａｇｅｓ」、２０１４年３月２１日出願、指名発明者Ｒｉｃｋ  Ｂｕｌｌｏｔｔａ、Ｊｏｈｎ  Ｃａｎｏｓａ、Ｂｏｂ  ＤｅＲｅｍｅｒ、及びＭｉｋｅ  Ｍａｈｏｎｅｙ、代理人整理番号２００９１３２−００３５号）に記載されている。この出願の内容は、その全体が参照により本明細書に援用される。
【０１４３】
接続サーバ１１０は、送信元又は送信先をほとんど意識せずに、やり取りされた各メッセージを同一の方法で概ね提供する（例えば、処理する）ことができるため、メッセージの対称性は、接続サーバ１１０の動作の複雑性を低減することが意図されている。
【０１４４】
いくつかの実施例では、接続に関するメタデータを含む各メッセージを生成するために、通信ＡＰＩプロトコルが使用される。接続メタデータには、メッセージ識別子、認証セッション情報、及び／又はルーティング状態情報が含まれてよい。
【０１４５】
いくつかの実施例では、接続サーバ１１０はとりわけ接続メタデータを使用して、エッジサーバ１０６（及び／又はコンピューティングデバイス１０４）とプラットフォームサーバ１０２との間で伝送されるメッセージの（具体的には、エッジサーバ１０６（及び／又はコンピューティングデバイス１０４）からプラットフォームサーバ１０２への受信メッセージの）ルーティング状態情報を保存する。このため、所与のエッジサーバ１０６（及び／又はコンピューティングデバイス１０４）及び所与のプラットフォームサーバ１０２のルーティング状態情報は、記憶されるのではなく、各メッセージ内でやり取りされ、したがって、サーバはステートレスであり得ることになる。つまり、ルーティング状態情報を記憶するのではなく、むしろ各メッセージと共にこの情報をやり取りするため、サーバはステートレスである。
【０１４６】
加えて、いくつかの実施例では、接続サーバ１１０は接続メタデータして、所与の接続デバイスの認証セッション情報をプラットフォームサーバに伝達する。いくつかの実施例では、所与の接続デバイス（例えば、コンピューティングデバイス１０４）が（例えば、プラットフォームサーバ１０２によって）認証されると、認証セッション情報（例えば、セッションＩＤ番号）が接続サーバにおいて記憶され、（例えば、デバイス名によって）所与の接続デバイスと関連付けられる。実際、メッセージが所与のデバイス（例えば、コンピューティングデバイス１０４）から受信されると、接続サーバ１１０は、所与のデバイスの識別子（例えば、メッセージに埋め込まれたデバイス名）を接続サーバ１１０によって維持されている、認証デバイスのリストと比較する。記憶されたリスト内でデバイス名の一致を確認すると、接続サーバ１１０は、認証セッション情報（例えば、セッションＩＤ番号）をメッセージに挿入し、更新されたメッセージをプラットフォームサーバ１０２に転送する。いくつかの例示的実施例では、接続サーバ１１０はまた、エッジサーバ１０６及び／又はコンピューティングデバイス１０４に対応するエンドポイント識別子を挿入する。したがって、プラットフォームサーバ１０２は、所与のデバイスの認証セッション情報を維持する必要がない。
【０１４７】
図３は、本発明の実施形態による、通信ＡＰＩプロトコル２０４の例示的メッセージ構造３００である。メッセージ構造３００は、接続メタデータを提供するヘッダー３０２と、メッセージの内容（例えば、提供されるデータ）を提供するメッセージペイロード、つまり本体３０４と、を含んでよい。ヘッダー３０２は、エッジサーバ１０６及び／又はコンピューティングデバイス１０４からプラットフォームサーバ１０２への受信メッセージの基本伝送データを含んでよい。
【０１４８】
いくつかの実施例では、ヘッダー３０２は、「ＳｅｓｓｉｏｎＩｄ  ３０８」と呼ばれるセッションＩＤ番号３０８を含む。セッションＩＤ番号は一意の識別子であり、認証プロセスを経験しており、したがって、システムに認証される所与のデバイスのセッションを識別するために使用される。セッションＩＤ番号は、メッセージの送信元であるエンドポイントデバイス（例えば、コンピューティングデバイス１０４）の識別子（例えば、名前）、メッセージが受信される対応するエッジサーバ１０６、及び／又はメッセージが受信される接続（例えば、ＷｅｂＳｏｃｋｅｔ接続）と関連付けられてよい。つまり、いくつかの実施例では、セッションＩＤ番号は、エンドポイントデバイス（例えば、エッジサーバ、コンピューティングデバイス）と関連付けられている永続的接続の接続ハンドルと関連付けられている。
【０１４９】
接続サーバ１１０は、セッションＩＤ番号を使用して、プラットフォームサーバ１０２の代わりに認証セッション状態を管理してよい。いくつかの実施形態では、この関連性は、コンピューティングデバイス１０４のバインドパスを決定するために接続サーバ１１０によって使用される。
【０１５０】
いくつかの実施例では、接続サーバ１１０は、所与のコンピューティングデバイス１０４の認証プロセス中にセッションＩＤ番号３０８を生成する。デバイス認証とは、あるシステム（例えば、コンピューティングデバイス１０４）が、別のシステム（例えば、プラットフォームサーバ１０２）が、実際に自身が主張するシステムであることを検証するプロセスを指す。認証プロセスは、パスワード、証明書、スマートカード、トークン、生体認証、近接性などを使用するものなど多数の技術を使用して達成されてよい。図５を参照しながら、認証プロセスの１つの例示的実施例を以下でより詳細に説明する。
【０１５１】
認証プロセス中、接続サーバ２０４は、認証メッセージを受信すると、セッションＩＤ番号３０８を生成し、記憶する。いくつかの実施例では、接続サーバ２０４は、セッションＩＤ番号と関連付けられているカウンタなどを維持する。エンドポイントデバイス（例えば、エッジサーバ１０６、コンピューティングデバイス１０４）の認証要求を受信すると、接続サーバ２０４は、最新のカウンタ値をセッションＩＤ番号として使用してよい。接続サーバ２０４は、認証メッセージと併せてセッションＩＤ番号をプラットフォームサーバ１０２に転送し、認証メッセージは、そこで評価される。成功メッセージをプラットフォームサーバ１０２から受信すると、接続サーバ２０４は、ローカルテーブル、メモリ、データベースなどにセッションＩＤ番号３０８を記憶する。いくつかの実施例では、接続サーバ２０４は、セッションＩＤ番号と、エッジサーバ、ＷｅｂＳｏｃｋｅｔ接続、及び／又はＷｅｂＳｏｃｋｅｔ接続を介してフェデレーションに接続されている任意のデバイスの名前のうちの１つ又は２つ以上との関連性を維持する。これは、好ましくは、エンドポイントデバイス及び／又はエッジサーバを含む。いくつかの実施例では、セッションＩＤ番号３０８は、好ましくは３２桁長の２進数であり、最上位桁（ＭＳＢ）が最初である。ただし、様々なデータ長及びエンディアンであり得る。
【０１５２】
いくつかの実施例では、ヘッダー３０２は、「ＥｎｄｐｏｉｎｔＩｄ  ３１０」と呼ばれるエンドポイントＩＤ番号３１０を含んでよく、これは、エッジサーバ及び／又はコンピューティングデバイスからのメッセージが受信される所与の永続的接続２００の接続ハンドルと関連付けられている。したがって、接続サーバは、エンドポイントＩＤ番号３１０を使用して永続的接続２００の接続ハンドルを容易に取得することができる。エンドポイントＩＤ番号３１０は、好ましくは３２桁長の２進数であり、最上位桁（ＭＳＢ）が最初である。接続サーバ１１０はエンドポイントＩＤ番号を使用して、ステートレス接続サーバを経由した永続的接続の多重化により、そうしなければ失われるであろうルーティング状態情報を維持する。
【０１５３】
ヘッダー３０２は、他の情報フィールドを含んで、メッセージングプロトコルの動作効率を更に向上してよい。いくつかの実施例では、ヘッダー３０２は、所与のメッセージと関連付けられている（及びこの所与のメッセージを識別するために使用される）要求ＩＤ番号３０６（「ＲｅｑｕｅｓｔＩｄ  ３０６」と呼ばれる）を含む。要求ＩＤ番号３０６は、ランダムに生成されるか、増加的に生成されて、所与の永続的接続又は接続チャネル２００で伝送されるメッセージに一意であってよい。要求ＩＤ番号３０６は、例えば、メッセージが処理されたかどうか（例えば、メッセージに含まれるサービス要求が満たされたかどうか）を決定するために使用されてよい。いくつかの実施例では、要求ＩＤ番号３０６は、好ましくは２４桁長の２進数であり、最上位桁（ＭＳＢ）が最初である。ただし、様々なデータ長及びエンディアンであり得る。いくつかの実施例では、１ビットの要求ＩＤ番号３０６は、メッセージ送信元の識別子として指定され、送信元のプラットフォームサーバ１０２、エッジサーバ１０６、及び／又はコンピューティングデバイス１０４を示す。これにより、要求ＩＤ番号３０６が必ず一意であるようにする。
【０１５４】
いくつかの実施例では、ヘッダー３０２は、「Ｍｅｔｈｏｄ  ｃｏｄｅ  ３１２」と呼ばれるメッセージ型フィールド３１２を含んでよい。メッセージ型フィールド３１２は、１つ又は２つ以上のコードを含んで、受信メッセージ型（例えば、要求、応答、ステータス、受信確認など）を迅速に識別できるようにしてよい。受信確認又はエラーメッセージなど、より単純なメッセージでは、メッセージ型フィールド３１２は、メッセージペイロードを構成してよい。つまり、メッセージコードは、意図するやり取りの全体を構成する、受信確認又はエラーに対応し得るため、これらのメッセージは、メッセージ本体３０４内の他のデータを省略することができる。要求型のメッセージでは、メッセージ型フィールド３１２は、要求の型（例えば、ｇｅｔ、ｐｕｔ、ｐｏｓｔ、ｄｅｌｅｔｅ、ｂｉｎｄ、ａｕｔｈｅｎｔｉｃａｔｅなど）に対応するコードを含んでよい。いくつかの実施例では、要求型メッセージは、ハイパーテキスト転送プロトコル（ＨＴＴＰ）フレームワークに基づいてよい。
【０１５５】
いくつかの実施例では、ヘッダー３０２は、「Ｍｕｌｔｉｐａｒｔ  ３１４」と呼ばれるマルチパートメッセージフィールド３１４を含んでよい。このフィールドは、メッセージが同一の要求ＩＤ番号３０６を有するメッセージ群の一部であるかどうかを識別するために使用されてよい。
【０１５６】
いくつかの実施例では、ヘッダー３０２は、「ＨｅａｄｅｒＩｄ  ３１６」と呼ばれるヘッダーＩＤ番号３１６を含んでよい。このフィールドは、ヘッダー形式のバージョン番号を識別するために使用される。ヘッダーＩＤ番号３１６は、好ましくは８ビットの数である。
【０１５７】
いくつかの実施例では、本体３０４は「エンティティ型」及び「エンティティ名」（例えば、データ又は要求の送信元に対応する）、「特性」フィールド、「ターゲット名」（例えば、データ又は要求の意図される受信者に対応する）、並びにメッセージ数を含む。
【０１５８】
図４は、本発明の実施形態による、通信ＡＰＩプロトコルによって使用される、例示的メッセージコードを示す。このコードとしては、ＨＴＴＰベースの要求メッセージ３１８、ＨＴＴＰベースの成功コード３２０、ＨＴＴＰベースのサーバエラーコード３２２、及びＨＴＴＰベースのクライアントエラーコード３２４が挙げられる。
【０１５９】
本発明の実施形態の一態様では、接続サーバ１１０は、プラットフォームサーバ１０２に送信される受信メッセージにルーティング状態情報を挿入する。ステートレス接続でルーティング状態情報を挿入すると、サーバ（例えば、接続サーバ１１０）によって記憶される情報量を減少させることによって、通常のステートフル接続での接続のパフォーマンスが向上する。つまり、各メッセージにルーティング状態情報を埋め込むことによって、接続サーバは往復のメッセージ転送を完了でき、いくつかの実施例では、ルーティング状態情報と関連付けられている接続ハンドルの検索のみを使用する。
【０１６０】
本発明の実施形態の別の態様では、接続サーバ１１０は、プラットフォームサーバ１０２に送信される受信メッセージに認証セッション情報を挿入する（例えば、追加する、置換する）。メッセージに認証セッション情報を埋め込む際には、接続サーバ１１０は、プラットフォームサーバ１０２のために、所与の接続デバイス（例えば、コンピューティングデバイス１０４）の認証セッションの管理及び追跡を引き継ぐ。これによりリソースが解放され、プラットフォームサーバ１０２は他のタスクを実行して、例えば、好ましくはより多くのデバイスを管理する。
【０１６１】
図５は、本発明の実施形態による、ステートレスな多重永続的接続で、プラットフォームサーバ１０２とエンドポイントデバイス１０４との間での通信交換に認証セッション情報及びルーティング状態情報を挿入する、例示的方法５００のスイムレーン図である。当然のことながら、異なる目的（例えば、認証、削除、バインド）の様々な型のメッセージ（例えば、要求、応答）は、本明細書に記載のシステム及び／又は方法を使用して処理されてよい。
【０１６２】
いくつかの実施例では、方法５００は、コンピューティングデバイス１０４（エンドポイントデバイス「Ｄ１」と呼ばれる）をエッジサーバ１０６（エッジサーバ「Ｅ１」と呼ばれる）に登録する（工程５０１ａ）ことから始まる。いくつかの実施例では、登録は、ハンドシェイク、情報交換、又はエンドポイントデバイス「Ｄ１」とエッジサーバ「Ｅ１」との間に通信を確立する自動ネゴシエーションプロセスであってよい。エッジサーバ「Ｅ１」は、エンドポイントデバイスＤ１に接続するための通信ポートを含む電子デバイスである。
【０１６３】
ＡＰＩプロトコルライブラリ２０４を使用してクライアント側アプリケーションを実行しているエッジサーバ「Ｅ１」は、例えば、図３及び４に関して記載した要求メッセージ構造構造（「Ａ」として示す）に従って認証要求メッセージ５０２ｂを準備する（工程５０２ａ）。要求メッセージ５０２ｂは、図３に関して記載した要求ＩＤ番号３０６に対応する「ＲｅｑｕｅｓｔＩｄ  Ｒ１」（「Ｒ１」として示す）を更に含む。
【０１６４】
エッジサーバ「Ｅ１」（１０６）は、エッジサーバ「Ｅ１」（１０６）と接続サーバ「Ａ１」（１１０）との間に確立されている第１永続的接続で、認証要求メッセージ５０２ｂを接続サーバ１１０に送信する（工程５０２ｃ）。
【０１６５】
いくつかの例示的実施例では、エンドポイントデバイス（例えば、コンピューティングデバイス）１０４は、認証要求メッセージを準備し、エッジサーバと、又はこれ経由して最初に通信せずに、接続サーバ「Ａ１」（１１０）に伝送する。
【０１６６】
いくつかの実施例では、メッセージの本体（例えば、図３、メッセージペイロード３０４）は、認証メッセージ（「＜Ａｕｔｈ＞」）として示す）を含む。認証メッセージは、エンドポイントデバイス「Ｄ１」（１０４）の名前（又は、名前識別子）及び対応するセキュリティコード、並びに併せて、適用される認証技術で使用される任意の他の情報を含んでよい。あるいは、いくつかの実施例では、認証名は、エッジサーバ「Ｅ１」（１０６）の名前識別子であってよい、名前識別子は、ランダムであっても、説明的であってもよい。名前識別子には、デバイスの所有者及び／又は種類を一部入れてもよい。例えば、Ｊｏｈｎ  Ｄｏｅ  Ｍｅｄｉｃａｌ  Ｉｎｓｔｉｔｕｔｅ所有の心電図装置番号１２３は、「ＪｏｈｎＤＭｅｄＩｎｔ＿ＥＫＧ＿Ｄｅｖ＿１２３」という説明的な名前識別子を有してよい。図１０を参照しながら以下でより詳細に説明するように、名前又は名前識別子は、非アドレス可能識別子である。
【０１６７】
いくつかの実施例では、認証名及び対応するセキュリティコードは、ＵＴＦ８データ型文字列（「Ｕｎｉｃｏｄｅ標準８ビット」）形式である。この文字列は任意の長さであってよく、メッセージでは、ＵＴＦ８形式での文字列長に対応する長さ値が前に挿入されてよい。対応するセキュリティコードは、例えば、「ＧｏｏｄＰａｓｓＷｏｒｄ１２３」などパスワードであってよい。当然のことながら、様々な値及び長さを用いてよい。他の実施例では、認証メッセージ（「＜Ａｕｔｈ＞」）はセキュリティキーであり、エッジサーバ「Ｅ１」の名前識別子と関連付けられているトークンを使用して生成される、暗号化データ文字列であってよい。様々な従来の認証技術が用いられてよい。
【０１６８】
いくつかの実施例では、エッジサーバ「Ｅ１」（１０６）（及び／又はエンドポイントデバイス「Ｄ１」（１０４））は、名前及び認証要求メッセージで使用される、対応するパスワードに加えて、第２セットの認証資格情報を使用する。第２セットの認証資格情報は、エッジサーバ「Ｅ１」（１０６）（及び／又はエンドポイントデバイス「Ｄ１」（１０４））に固有であってよくて、非認証コンピューティングデバイスがバインドされないようにする。
【０１６９】
更に図５を参照すると、いくつかの実施例では、認証要求メッセージ５０２ｂの受信時に、接続サーバ「Ａ１」（１１０）は、メッセージ５０２ｅを生成するために「ＳｅｓｓｉｏｎＩｄ  Ｓ１」（図５に「ｓ１」として示す）及び「ＥｎｄｐｏｉｎｔＩｄ  ｅ１」（「ｅ１」として示す）を受信メッセージ５０２ｂに挿入する（工程５０２ｄ）。次に接続サーバ「Ａ１」（１１０）は、接続サーバ「Ａ１」（１１０）とプラットフォームサーバ「Ｐ１」（１０２）との間に確立されている第２永続的接続で、メッセージ５０２ｅをプラットフォームサーバ１０２（プラットフォームサーバ「Ｐ１」（１０２）と呼ばれる）に送信する（工程５０２ｆ）。図３に関して記載したように、「ＥｎｄｐｏｉｎｔＩｄ  ｅ１」は、第１永続的接続の接続ハンドルと関連付けられているエンドポイントＩＤ番号３１０に対応してよい。「ＥｎｄｐｏｉｎｔＩｄ  ｅ１」は、接続サーバ「Ａ１」（１１０）によって受信メッセージが取得される通信チャネルの、及び／又はそれと関連付けられている接続ハンドル（例えば、ＷｅｂＳｏｃｋｅｔハンドル）などの取得に使用される識別子であってよい。これもまた図３に関して記載したように、「ＳｅｓｓｉｏｎＩｄ  ｓ１」は、エッジサーバ「Ｅ１」及び／又はエンドポイントデバイス「Ｄ１」（１０４）への接続と関連付けられているセッション番号と関連付けられている、セッションＩＤ番号に対応してよい。ＳｅｓｓｉｏｎＩｄ  ｓ１は、エンドポイントデバイス及び／又はエッジサーバの認証セッション状態を示す。
【０１７０】
いくつかの実施例では、受信された認証メッセージ５０２ｂは、ヘッダーフィールド３０８及び３１０にＮＵＬＬ値又はＥＭＰＴＹ値を有する。このため、「ＳｅｓｓｉｏｎＩｄ  ｓ１」及び「ＥｎｄｐｏｉｎｔＩｄ  ｅ１」は、そこで値（例えば、ＮＵＬＬ）を置換することができる。他の実施例では、受信メッセージ５０２ｂは、「ＳｅｓｓｉｏｎＩｄ  ｓ１」及び「ＥｎｄｐｏｉｎｔＩｄ  ｅ１」に連結される。当然のことながら、データストリームへのデータの様々な挿入方法（例えば、追加（adding）、追加（appending）、挿入、置換）が用いられてよい。
【０１７１】
次に、メッセージ５０２ｅを受信すると、プラットフォームサーバ「Ｐ１」（１０２）は認証メッセージ（＜「ＡＵＴＨ」＞）を処理する（工程５０４ａ）。いくつかの実施例では、プラットフォームサーバ「Ｐ１」（１０２）は、（例えば、検索を実行することによって）維持する認証レジストリを使用して、エンドポイントデバイス「Ｄ１」（１０４）の資格情報を認証する。他の実施例では、プラットフォームサーバ「Ｐ１」（１０２）は、メッセージをバックオフィス認証サーバ（図示なし）にルーティングして、認証を実行してよい。以下の表１は、非アドレス可能名前識別子及びセキュリティコードを使用してデバイスを認証するための例示的認証レジストリを示す。
【０１７２】
【表１】
0006258521.tif 000002
【０１７３】
次に、プラットフォームサーバ「Ｐ１」（１０２）は、戻りメッセージ５０６ｂを準備する（工程５０６ａ）。戻りメッセージ５０６ｂは、認証プロセス（例えば、成功又は失敗）に関してであってよい、又はメッセージの受信の確認（例えば、受信成功又は受信エラー）であってよい。このため、戻りメッセージ５０６ｂは、図４に関して記載したように、ステータスコードであってよい。
【０１７４】
いくつかの実施例では、プラットフォームサーバ１０２は、要求メッセージ５０２ｅで受信された「ＲｅｑｕｅｓｔＩｄ  Ｒ１」、「ＳｅｓｓｉｏｎＩｄ  ｓ１」、及び／又は「ＥｎｄｐｏｉｎｔＩｄ  ｅ１」を含む戻りメッセージ５０６ｂを準備する。本質的に、プラットフォームサーバ「Ｐ１」（１０２）は、受信メッセージのメタデータ情報を用いて、受信確認、つまり成功を示す戻りメッセージに含め、これをルーティングする。次いで、プラットフォームサーバ「Ｐ１」（１０２）は、第２永続的接続で接続サーバ１１０にメッセージ５０６ｂを送信する（工程５０６ｃ）。
【０１７５】
いくつかの実施例では、メッセージ５０６ｂを受信すると、接続サーバ「Ａ１」（１１０）は、認証セッションと関連付けられているテーブル、データベース、バッファなどにエンドポイントデバイス「Ｄ１」１０４のデバイス名に関連する「ＳｅｓｓｉｏｎＩｄ  Ｓ１」を記憶する。接続サーバ１１０は、かかるテーブル、データベース、バッファなどを用いて、受信メッセージが認証エンドポイントに属している、及び／又は認証エンドポイントと関連付けられていることを確認し、したがって、プラットフォームサーバ１０２にリレーすることができる。接続サーバ「Ａ１」（１１）は、エンドポイントデバイス及び／又はエッジサーバ（例えば、ゲートウェイの役割を果たす）への接続など、各ダウンストリーム接続（例えば、ＷｅｂＳｏｃｋｅｔ接続）のためにセッションＩＤ番号「ＳｅｓｓｉｏｎＩＤ  Ｓ１」を維持してよい。いくつかの実施例では、接続サーバは、例えば、プラットフォームサーバなどへのアップストリーム接続（例えば、ＷｅｂＳｏｃｋｅｔ接続）のためにセッションＩＤ番号を維持する。
【０１７６】
加えて、いくつかの実施例では、メッセージ５０６ｂを受信すると、接続サーバ「Ａ１」（１１０）は「ＥｎｄｐｏｉｎｔＩｄ  ｅ１」を使用して、メッセージ５０６ｂをエッジサーバ「Ｅ１」（１０６）に転送する接続を識別する（工程５０６ｄ）。このため、エッジサーバ又はエンドポイントデバイスに戻り送信メッセージをルーティングするために、接続サーバ「Ａ１」（１１０）での実行が必要な追加処理はない。いくつかの実施例では、「ＥｎｄｐｏｉｎｔＩｄ  ｅ１」は、永続的接続と関連付けられている接続ハンドルにインデックスが付けられる。このインデックスは、ハッシュテーブル内の接続サーバ「Ａ１」（１１０）にあってよいか、そこに記憶されてよい。次に、メッセージ５０６ｂは、取得された接続ハンドルを使用してエッジサーバ「Ｅ１」（１０６）に転送される（工程５０６ｅ）。このため、多重永続的接続パラダイムを経由する往復ルーティングの状態情報を維持することは、所与の永続的接続と関連付けられている識別子（例えば、エンドポイント識別子）の単回ハッシュテーブル（など）検索、メッセージヘッダーにエンドポイント識別子を挿入する単回書き込み機能、メッセージをルーティングする永続的接続の接続ハンドルを取得するメッセージヘッダーの単回読み取りを集合的に用いてよい。
【０１７７】
いくつかの実施例では、接続サーバ「Ａ１」（１１０）及び／又はエッジサーバ「Ｅ１」（１０６）は、エンドポイントデバイス「Ｄ１」（１０４）にメッセージを送信して、登録プロセスの成功を確認する（工程５０６ｆ）。
【０１７８】
更に図５を参照すると、いくつかの実施例では、メッセージはバインド要求を含む。いくつかの実施例では、バインドプロセス（例えば、バインド要求の処理）は、認証プロセスの後で実行される。バインドプロセスは、１つ又は２つ以上のネットワーク及びシステム（例えば、サーバ）全体で、エンドポイントデバイス「Ｄ１」（１０４）とプラットフォームサーバ「Ｐ１」（１０２）との間でパスをバインドして、好ましくは、プラットフォームサーバ１０２からエッジサーバ及び／又はエンドポイントデバイスへの送信メッセージ／要求の伝達を可能にする。パスに沿った各ノード（例えば、サーバ）において、バインドプロセスは、エンドポイントデバイスに至る、各永続的接続の接続ハンドルを関連付ける。
【０１７９】
バインドプロセスは、接続メタデータの使用と相乗的であり、接続メタデータなどルーティングメタデータによって、プラットフォームサーバからのメッセージが、迅速、正確、かつ効率的にエンドポイントデバイスに戻ることができるようになる。しかしながら、バインドプロセスによって、メッセージ内に情報が位置するのではなく、フェデレーション内の対応のサーバ（例えば、接続サーバ及びエッジサーバ）に情報維持されるようになる。
【０１８０】
更に図５を参照すると、いくつかの実施例では、エッジサーバ「Ｅ１」（１０６）はバインド要求メッセージを準備し（工程５０８ａ）、第１永続的接続で接続サーバ「Ａ１」（１１０）にメッセージ５０８ｂを送信する（工程５０８ｃ）。エッジサーバ「Ｅ１」（１０６）は、「ＲｅｑｕｅｓｔＩｄ  Ｒ２」を生成する。いくつかの実施例では、バインド要求メッセージ５０８ｂは、図４に関して記載し、メッセージ５０８ｂで「Ｂ」と示すように、「ＢＩＮＤ」要求コードを含む。バインド要求メッセージ５０８ｂは、図５で「＜ｎａｍｅ＞」として示すように、ペイロード、エンドポイントデバイス「Ｄ１」（１０４）の名前識別子を含んでよい。いくつかの実施例では、エッジサーバ「Ｅ１」は、バインドされているエンドポイントデバイスのリストを維持する。いくつかの例示的実施例では、エンドポイントデバイス「Ｄ１」はバインド要求メッセージを準備し、第１永続的接続で接続サーバ「Ａ１」（１１０）に送信する。
【０１８１】
いくつかの実施例では、バインド要求メッセージ５０８ｂを受信すると、接続サーバ「Ａ１」（１１０）は、エンドポイントデバイスの名前を認証セッションのリストと比較し、一致すると、「ＳｅｓｓｉｏｎＩｄ  Ｓ１」（図５に「ｓ１」として示す）及び「ＥｎｄｐｏｉｎｔＩｄ  ｅ１」（「ｅ１」として示す）を受信メッセージ５０８ｂに挿入して、メッセージ５０８ｅを生成する（工程５０８ｄ）。
【０１８２】
接続サーバ「Ａ１」（１１０）は、受信メッセージがバインド要求であることを決定する。このため、接続サーバ「Ａ１」（１１０）は、バインド要求メッセージ内に位置する名前識別子をそのバインドレジストリに追加する。バインドレジストリでは、名前識別子は、第１永続的接続の接続ハンドル、エンドポイントＩＤ、及びセッションＩＤと関連付けられていてよい。例えば、名前識別子は、接続ハンドルを有するハッシュテーブル（など）のインデックス値として使用される。以下の表２は、サーバ（例えば、接続サーバ「Ａ１」（１１０））の例示的バインドレジストリを示す。
【０１８３】
【表２】
0006258521.tif 000003
【０１８４】
次に、接続サーバ「Ａ１」（１１０）は、第２永続的接続で、バインド要求メッセージ５０８ｅをプラットフォームサーバ「Ｐ１」（１０２）に送信する（工程５０８ｆ）。当然のことながら、いくつかの例示的実施例では、複数のデバイス（例えば、「Ｈｏｓｐｉｔａｌ＿ＶｅｎｄＭａｃｈ」及び「Ｓｔｏｒｅ＿ＰＯＳＤｅｖ」）は、エッジサーバ「Ｅ１」と接続サーバ「Ａ１」との間の接続など同一の永続的接続（例えば、「Ｐｅｒｓｉｓｔ＿ＣｏｎｎｅｃｔＡ１」）と関連付けられてよい。いくつかの例示的実施例では、エンドポイントＩＤ（例えば、「ｅｐＩＤ１」）及びセッションＩＤ（「ｓｅｓｓＩＤ１」）は、同一の永続的接続と関連付けられていてよい。
【０１８５】
いくつかの実施例では、バインド要求メッセージ５０８ｅを受信すると、プラットフォームサーバ「Ｐ１」（１０２）はバインド要求を処理する（工程５１０ａ）。例えば、第２永続的接続の接続ハンドルと関連するバインドレジストリに名前識別子を追加してよい。いくつかの例示的実施例では、プラットフォームサーバは、デバイス名と関連付けられているエンドポイントＩＤを記憶してよい。以下の表３は、サーバ（例えば、プラットフォームサーバ「Ｐ１」（１０２））の例示的バインドレジストリを示す。
【０１８６】
【表３】
0006258521.tif 000004
【０１８７】
いくつかの実施例では、プラットフォームサーバ「Ｐ１」（１０２）は、成功メッセージ５１２ｂを準備する（工程５１２ａ）。プラットフォームサーバ「Ｐ１」（１０２）は、第２永続的接続で成功メッセージ５１２ｂを接続サーバ「Ａ１」（１１０）に送信する。これは、名前識別子及び／又はＥｎｄＰｏｉｎｔＩＤを使用して取得した接続ハンドルに基づいて、決定されてよい。メッセージ５１２ｂを受信すると、接続サーバ「Ａ１」（１１０）は、「ＥｎｄｐｏｉｎｔＩｄ  ｅ１」を使用して、対応する接続ハンドルと関連付けられている永続的接続を識別してよい。接続サーバ「Ａ１」（１１０）は、バインドレジストリを使用して識別された永続的接続（例えば、第１永続的接続）で、エッジサーバ「Ｅ１」（１０６）及び／又はエンドポイントデバイス「Ｄ１」にメッセージ５１２ｅを転送する（工程５１２ｆ）。
【０１８８】
図６は、本発明の実施形態による、ステートレス永続的接続での、プラットフォームサーバ１０２からの通信方法のスワンレーン図である。
【０１８９】
いくつかの実施例では、方法６００は、プラットフォームサーバ「Ｐ１」（１０２）が、図３のメッセージ構造に従って、エッジサーバ「Ｅ１」（１０６）及びエンドポイントデバイス「Ｄ１」のために要求メッセージ６０６ｂを準備する（工程６０６ａ）ことから始まる。
【０１９０】
プラットフォームサーバ「Ｐ１」（１０２）は、バインドレジストリから決定された接続ハンドルを使用して、第２永続的接続で、要求メッセージ６０６ｂを接続サーバ「Ａ１」（１１０）に送信する。
【０１９１】
いくつかの実施例では、メッセージ６０６ｂを受信すると、接続サーバ「Ａ１」（１１０）は、メッセージがプラットフォームサーバ「Ｐ１」（１０２）からの送信メッセージであることを決定する。この決定は、第２永続的接続の接続ハンドルに基づいていてよい、又はメッセージ６０６ｂ内でのエンドポイントＩＤ又はセッションＩＤ番号３０８の存在に基づいてよい。接続サーバ「Ａ１」（１１０）は、第２永続的接続の受信した接続ハンドルと関連付けられている「ＥｎｄｐｏｉｎｔＩｄ  ｅ２」を挿入してよい（工程６０６ｄ）。接続サーバ「Ａ１」（１１０）は、メッセージ６０６ｂ内の（例えば、エッジサーバ「Ｅ１」又はエンドポイントデバイス「Ｄ１」の）名前識別子及びバインドレジストリに記憶されている、対応する接続ハンドルを使用して、メッセージ６０６ｂに適切な永続的接続を識別してよい。次いで、接続サーバ「Ｄ１」（１１０）は、識別された接続ハンドルを使用して、メッセージ６０６ｅを適切なエッジサーバ「Ｅ１」（１０６）及び／又はエンドポイントデバイス「Ｄ１」に転送する（工程６０６ｆ）。
【０１９２】
メッセージ６０６ｅを受信すると、エッジサーバ「Ｅ１」（１０６）及び／又はエンドポイントデバイス「Ｄ１」（１１０）は、メッセージのペイロード３０４で要求されたデータを使用し（工程６０８ａ）、そのキューからデータサービス要求を削除する。エッジサーバ「Ｅ１」（１０６）及び／又はエンドポイントデバイス「Ｄ１」（１１０）は、成功／受信確認メッセージ６１０ａを生成してよく（工程６０８ａ）、第１永続的接続で成功／受信確認メッセージ６１０ａを接続サーバ「Ａ１」に送信する。
【０１９３】
接続サーバ「Ａ１」（１１０）はメッセージ６１０ａを受信し、「ＥｎｄｐｏｉｎｔＩｄ  ｅ２」を使用して、第２永続的接続でこのメッセージをプラットフォームサーバ「Ｐ１」（１０２）へとリレーする。いくつかの実施例では、受信確認メッセージ６１０ａを受信すると、プラットフォームサーバ「Ｐ１」（１０２）は、要求メッセージをそのキューから削除する。
【０１９４】
図７は、本発明の実施形態による、接続サーバ１１０の例示的制御方法７００のフローチャートである。いくつかの実施例では、制御は、接続サーバ１１０で動作するクライアント側アプリケーションから実行されるポリシーに基づいている。ポリシーとしては、例えば、規則ベースの方法、状態機械、モデルベースの制御、及び／又は順序論理が挙げられる。
【０１９５】
メッセージを受信する（工程７０２）と、図５及び６に関して記載したように、接続サーバ１１０は、エンドポイントＩＤ番号３１０がメッセージ内に存在するかどうかを決定する（工程７０４）。いくつかの実施例では、エンドポイントＩＤ番号３１０は、メッセージヘッダー３０２内の固定フィールドに位置する。他の実施例では、接続サーバ１１０は、メッセージを解析して情報（例えば、エンドポイントＩＤ番号３１０）を取得する。メッセージ内でｅｎｄｐｏｉｎｔＩｄ  ３１０が識別されると、接続サーバ１０２は、図３、５、及び６に関して記載したように、ｅｎｄｐｏｉｎｔＩｄ  ３１０を使用してメッセージをルーティングしてよい。
【０１９６】
ｅｎｄｐｏｉｎｔＩｄ  ３１０がＮＵＬＬ又は空の場合、接続サーバ１１０は、メッセージが受信されたチャネルと関連付けられている接続ハンドルと関連付けられているエンドポイントＩＤ番号を挿入してよい。
【０１９７】
次に、接続サーバ１１０はメッセージのメソッドコード３１２をチェックして、メッセージ型（例えば、認証メッセージ、バインド／バインド解除メッセージ、要求メッセージ）を決定してよい（工程７１０、７１８、７２４）。
【０１９８】
メッセージ型が認証メッセージである（工程７１０）場合、図５及び６に関して記載したように、接続サーバ１１０は、セッションＩＤ番号３０８をメッセージに挿入してよい（工程７１２）。接続サーバ１１０は、図５に関して記載したように、ｅｎｄｐｏｉｎｔＩｄ  ３１０、ＳｅｓｓｉｏｎＩｄ  ３０８、及び接続の接続ハンドルをバインドして（工程７１４）、メッセージをプラットフォームサーバ１０２に転送してよい（工程７１６）。
【０１９９】
メッセージ型がバインドメッセージ又はバインド解除メッセージである（工程７１８）場合、接続サーバ１１０は、メッセージ内に位置する名前識別子をそのバインドレジストリにバインドし（又は、バインド解除メッセージの場合は、バインドレジストリからメッセージ内の名前識別子の関連付けを解除する、又はこれを削除し）（工程７２０）、メッセージをプラットフォームサーバ１０２に転送してよい（工程７２２）。
【０２００】
メッセージ型が要求型メッセージではない（工程７２４）場合、接続サーバ１１０は、メッセージをプラットフォームサーバ１０２に転送してよい（工程７２６）。
【０２０１】
メッセージ型が要求型メッセージである場合、接続サーバ１１０は、要求メッセージをチェックして、ＳｅｓｓｉｏｎＩｄが存在するかどうかを決定してよい（工程７２８）。存在する場合、接続サーバ１００は、バインドレジストリを使用してメッセージを対応のエッジサーバ１０６にルーティングして、適切な接続ハンドルであるかどうかを決定してよい。存在しない場合、接続サーバ１１０は、メッセージ内のｎａｍｅＩｄを使用してＳｅｓｓｉｏｎＩｄを取得し（工程７３２）、ＳｅｓｓｉｏｎＩｄをメッセージに挿入し（工程７３４）、要求メッセージをプラットフォームサーバに転送してよい（工程７３６）。
【０２０２】
図８は、本発明の実施形態による、バインド及び再バインド方法を示す。バインドすることにより、所与のコンピューティングデバイス１０４は、フェデレーション（例えば、一連のネットワーク及び／又はシステム）のサービス提供を受けることができるものの、デバイスの自身の位置に関する何らかの知識又はフェデレーション内のノードに関するネットワーキング若しくはネットワーキングの何らかの詳細を有することなく、フェデレーション内の任意のエンドポイントデバイスに接続される。このため、フェデレーションのおかげで、永続的接続アーキテクチャ内の中間サーバに関係なく、コンピューティングデバイスからのメッセージをプラットフォームサーバに自由にルーティングすることができる。
【０２０３】
この方法は、図５に関して記載したように、所与のコンピューティングデバイス１０４、すなわち、エンドポイントデバイス１０４ａがエッジサーバ１０６ａに登録されることから始まる。エッジサーバ１０６ａは、永続的接続１０３ａで、バインド要求を接続サーバ１１０ａに送信する。バインド要求は、バインドリストに記載されているエンドポイントデバイス１０４の名前識別子を含んでよい。いくつかの例示的実施例では、コンピューティングデバイス１０４は、バインド要求をエッジサーバ１０６ａに伝送して接続サーバ１１０ａにリレーするのではなく、接続サーバ１１０ａに伝送する。接続サーバ１１０ａは、永続的接続１０５ａでバインド要求８０２をプラットフォームサーバに転送する。接続サーバ１１０ａは、エンドポイントデバイス１０４ａを永続的接続１０３ａと関連付け、バインドレジストリにその関連性を記憶する。この関連性は、永続的接続の接続ハンドルに基づいていてよい。バインドレジストリは、データテーブル又はハッシュテーブルであってよい。プラットフォームサーバ１０２ａは、エンドポイントデバイス１０４ａを永続的接続１０５ａと関連付け、バインドレジストリにその関連性を記憶する。このため、要求メッセージをエンドポイントデバイス１０４ａに送信するとき、プラットフォームサーバ１０２ａは、エンドポイントデバイス１０４ａと関連付けられている永続的接続１０５ａを取得する。
【０２０４】
エンドポイントデバイス１０４ａがエッジサーバ１０６（例えば、１０６ａ）を介して接続サーバ１１０ａにバインドされる場合、エンドポイントデバイス１０４ａが別のエッジサーバ、すなわちエッジサーバ１０６ｃに移動すると、エンドポイントデバイス１０４ａは、エッジサーバ１０６ａでの登録を解除する。つまり、エッジサーバ１０６ａは、バインドされているパス（１０３ａ、１０５ａ）を経由してプライマリサーバ１０２ａにバインド解除要求を送信する。バインド解除要求によって、エンドポイントデバイス１０４ａは、接続サーバ１１０ａ及びプラットフォームサーバ１０２ａのバインドレジストリから削除される。エンドポイントデバイス１０４ａはエッジサーバ１０６ｃに登録し、同一のバインドプロセスを繰り返す。
【０２０５】
図９は、本発明の実施形態による、システム１００を使用したネットワーク９００のブロック図である。ネットワーク９００は、図２で記載したように、バックエンドオフィスコンポーネントを含んでよい。
【０２０６】
いくつかの実施例では、ネットワーク９００は、１台又は２台以上の永続サーバ９０２を含む。この永続サーバは、ルーティングサーバ１０２として示すプラットフォームサーバ１０２に送信されるデータからの負荷を共有できる。永続サーバ９０２は、ストリーム及びデータテーブルなど特定種類の永続オブジェクトを用いてよい。ストリーム及びデータテーブルの例は、米国特許出願公開第１３／６７８，８８５号（名称「Ｍｅｔｈｏｄｓ  ｆｏｒ  Ｄｙｎａｍｉｃａｌｌｙ  Ｇｅｎｅｒａｔｉｎｇ  Ａｐｐｌｉｃａｔｉｏｎ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｍｏｄｅｌｅｄ  Ｅｎｔｉｔｙ  ａｎｄ  Ｄｅｖｉｃｅｓ  Ｔｈｅｒｅｏｆｆ」、２０１２年１１月１６日）に記載されている。この出願の内容は、その全体が参照により本明細書に援用される。
【０２０７】
いくつかの実施例では、ネットワーク９００は、図２に関して記載したように、ＣＲＭ／ＥＲＰなど１台又は２台以上のバックオフィスサーバ９０４を含んでよい。
【０２０８】
いくつかの実施例では、ネットワーク９００は、１つ又は２つ以上のビッグデータ及びデータストア９０６を含んでよい。かかるサーバ９０６は、Ｊａｖａ（登録商標）  Ｄａｔａｂａｓｅ  Ｃｏｎｎｅｃｔｉｖｉｔｙ（ＪＤＢＣ）又はネイティブＡＰＩなどウェブプロトコルを使用してプラットフォームサーバ１０２と通信してよい。いくつかの実施例では、プラットフォームサーバ１０２は、データが所与のコンピューティングデバイス１０４から受信されると、適切なデータベースにデータをルーティングするイベントを処理してよい。あるいは、サードパーティアプリケーションは、イベントを開始してよい。
【０２０９】
図１０は、本発明の実施形態による、ステートレス永続的接続で、プラットフォームサーバ１０２とエンドポイントデバイス１０４との間での通信交換に状態情報及びルーティング情報を挿入する、例示的方法１０００のフローチャートである。ステートレス永続的接続の例は、Ｗｅｂ−Ｓｏｃｋｅｔ接続である。エンドポイントデバイスは、エッジサーバ１０６又はコンピューティングデバイス１０４であってよい。方法１０００は、１台又は２台以上の中間サーバ１１０に接続されている、１台又は２台以上のプラットフォームサーバ１０２を含んでよい。中間サーバ１１０のそれぞれは、プラットフォームサーバ１０２に接続され、これとの永続的接続２００ａを維持してよい。中間サーバ１１０はまた、複数のエッジサーバと通信し、これらとの多数の一意の永続的接続２００ｂを維持してよい。
【０２１０】
いくつかの実施例では、所与の中間サーバ１１０のポートは、第１永続的接続２００ｂで所与のエッジサーバ１０６からのサービス要求を受信する（工程１００２）。中間サーバ１１０のプロセッサは、ルーティング状態識別子をサービス要求に挿入する（工程１００４）。ルーティング状態識別子は、第１永続的接続の接続ＩＤと関連付けられている。中間サーバ１１０は好ましくは「ステートレス」であるため、所与の要求メッセージと関連付けられている状態情報を保持しない。かかる実施例では、中間サーバ１１０は、好ましくは、類似の要求メッセージが以前送信されたかどうか、メッセージはどの一連のメッセージアクションに属するのか、及びメッセージの送信元に関する知識を維持しない。換言すると、中間サーバ１１０は、受信メッセージに沿って転送した後で、所与のメッセージを破棄する（例えば、記憶しない）。
【０２１１】
かかるステートレスパラダイムでは、中間サーバ１１０がより少ない命令セットかつより少ないメモリ使用量要件で動作するように構成され得るため、中間サーバ１１０の負荷が低減されてよい。このため、所与の接続に必要なリソースが低減し、所与の中間サーバ１１０は、かかる状態情報を維持するという、追加のオーバーヘッド作業を行う他のハードウェアシステムと比較して、より多くの数のコンピューティングデバイス１０４にサービスを提供できる。いくつかの実施例では、所与のルーティング状態識別子は、ヘッダー４０２など各要求メッセージのヘッダー部分に挿入される。
【０２１２】
中間サーバは、コンピューティングデバイス１０４の認証セッションと関連付けられている第２状態識別子をそのメモリに維持する。第２状態識別子は、コンピューティングデバイス１０４と関連付けられている名前値と関連付けられていてよい。いくつかの実施例では、中間サーバ１１０は、ハッシュテーブルなどで関連性を維持してよい。このテーブルは、名前値を使用して、第２状態識別子（例えば、セッションＩＤ番号）及びエンドポイントデバイスの名前（例えば、デバイス名／非アドレス可能識別子）にインデックスを付けてよい。
【０２１３】
いくつかの実施例では、第２状態識別子はまた、第１永続的接続の接続ＩＤと関連付けられている。この関連性は、中間サーバ１１０のローカルメモリに記憶されてよい。
【０２１４】
いくつかの実施例では、名前値は、好ましくは非アドレス可能識別子又は非ネットワークベースアドレス可能識別子である。名前値は、例えば、Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ（ＵＲＩ）又はインターネットプロトコル（ＩＰ）アドレスであり得る、ネットワーク可能識別子ではなく、ネットワークアドレスとは無関係の数列又は文字列など非アドレス可能識別子である。
【０２１５】
いくつかの実施例では、中間サーバ１１０は、第２永続的接続でサービス要求をプラットフォームサーバ１０２に伝達する（工程１００６）。
【０２１６】
いくつかの実施例では、中間サーバ１１０は、第２永続的接続２００ａで応答メッセージを受信する。応答メッセージは、サービス要求に応じてプラットフォームサーバによって生成され、セッション識別子を含んでよい（工程１００８）。
【０２１７】
いくつかの実施例では、中間サーバ１１０は、セッション識別子を使用して第１永続的接続の接続ＩＤを取得する（工程１０１０）。セッション識別子は、サービス要求で伝達されたセッション識別子と同一である。
【０２１８】
いくつかの実施例では、中間サーバ１１０は、エッジサーバ及び／又はコンピューティングデバイスと接続された多数の永続的接続から選択された接続に応答メッセージをルーティングする（工程１０１２）。選択された接続は、取得した接続ＩＤに基づいていてよい。
【０２１９】
図１１は、本発明の実施形態による、永続的接続での２つのネットワークノードと中間ノードとの例示的通信方法１１００のフローチャートである。いくつかの実施例では、方法１１００は、工程１１０２における初期化状態から開始され、２つのネットワークノードは、プラットフォームサーバ１０２及びエンドポイントデバイス（例えば、コンピューティングデバイス１０４）を含んでよい。方法１１００は、１台又は２台以上の中間サーバ１１０に接続されている、１台又は２台以上のプラットフォームサーバ１０２を含んでよい。中間サーバ１１０のそれぞれは、プラットフォームサーバ１０２に接続され、これとの永続的接続２００ａを維持してよい。中間サーバ１０２はまた、複数のエッジサーバ１０６及び／又はコンピューティング（例えば、エンドポイント）デバイスと通信し、これらとの多数の一意の永続的接続２００ｂを維持してよい。
【０２２０】
いくつかの実施例では、プラットフォームサーバ１０２は、初回インスタンスにおいて、エンドポイントデバイス１０４をプラットフォームサーバ１０２にバインドする（工程１１０４）。第１インスタンスにおいてバインドすることにより、ネットワーク上で第１パスに関連付けてよい。第１パスは、１台又は２台以上の中間サーバをまたいで、いくつかの例示的実施例では、１台又は２台以上のエッジサーバをまたいで、エンドポイントデバイス１０４とプラットフォームサーバ１０２との間に規定されてよい。
【０２２１】
いくつかの実施例では、プラットフォームサーバ１０２は、第１パスに沿って第１メッセージをエンドポイントデバイス１０４に伝達する（工程１１０６）。
【０２２２】
いくつかの実施例では、プラットフォームサーバ１０２は、第２インスタンスにおいて、エンドポイントデバイス１０４をプラットフォームサーバ１０２に再バインドする（工程１１０８）。これは、エンドポイントデバイス１０４が、（例えば、第１パス以外のパスをまたいで位置するエッジサーバとバインドすることによって）第１パスの外側を有した後で生じてよい。
【０２２３】
いくつかの実施例では、プラットフォームサーバ１０２は、第２パスに沿って第２メッセージをエンドポイントデバイスに伝達する（工程１１１０）。このため、エンドポイントデバイスは、それ自身の位置に関する知識を有さずに、様々な地理的場所を移動できる。それどころか、ネットワークは、エンドポイントデバイス１０４の側に関する何らかの知識又は位置情報を有さずに、プラットフォームサーバに対してメッセージを送受信するためのパスを検出してよい。
【０２２４】
図１２は、本発明の実施形態による、プラットフォームサーバと複数のエンドポイントデバイス（例えば、エンドポイントデバイス１０４）との例示的通信方法１２００のフローチャートである。いくつかの実施例では、方法１２００は、初期化状態で開始される（工程１２０２）。いくつかの実施例では、プラットフォームサーバ１０２は、第１エンドポイントデバイス１０４ａから第１データメッセージを受信する。第１データメッセージは、第１永続的接続１０５ａで第１エンドポイントデバイス１０４ａから第１中間サーバ１１０ａに送信され（工程１２０４）、第２永続的接続１０３ａでプラットフォームサーバ１０２に送信される。
【０２２５】
いくつかの実施例では、プラットフォームサーバ１０２は、第２エンドポイントデバイス１０４ａから第２データメッセージを受信する。第２データメッセージは、第３永続的接続１０５ｂで第２エンドポイントデバイス１０４ｂから第２中間サーバ１１０ｂに送信され（工程１２０６）、第４永続的接続１０３ｂでプラットフォームサーバ１０２に送信される。
【０２２６】
第１中間サーバ１１０ａ及び第２中間サーバ１１０ｂのそれぞれは、エンドポイントデバイス１０４とプラットフォームサーバ１０２との間での認証セッション及び接続性の両方を管理してよい。
【０２２７】
いくつかの実施例では、プラットフォームサーバ１０２は、第１データメッセージ及び第２データメッセージ（工程１２０８）を提供する。プラットフォームサーバ１０２は、メッセージをバックオフィスサーバにルーティングすることによって、第１データメッセージ及び第２データメッセージを提供してよい。図２に関して記載したように、バックオフィスサーバとしては、例えば、永続サーバ、データベースサーバ、顧客関係管理（ＣＲＭ）サーバ、エンタープライズリソースプランニング（ＥＲＰ）サーバ、業務支援システム（ＯＳＳ）サーバ、営業支援システム（ＢＳＳ）サーバ、データウェアハウスなどが挙げられてよい。
【０２２８】
図１３は、本開示に記載の技術を実施するために使用できる、コンピューティングデバイス１３００及びコンピューティングデバイス１３５０の例を示す。コンピューティングデバイス１３００は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、及び他の適切なコンピュータなど様々な形式のデジタルコンピュータを表すことを意図する。モバイルコンピューティングデバイス１３５０は、携帯情報端末、携帯電話、スマートフォン、及び他の類似のコンピューティングデバイスなど様々な形式のモバイルデバイスを表すことを意図する。本明細書に示すコンポーネント、これらの接続及び関係、並びにこれらの機能は、例示することのみを意味し、限定することは意味しない。
【０２２９】
コンピューティングデバイス１３００は、プロセッサ１３０２と、メモリ１３０４と、記憶装置１３０６と、メモリ１３０４及び複数の高速拡張ポート１３１０に接続している高速インターフェース１３０８と、低速拡張ポート１３１４及び記憶装置１３０６に接続している低速インターフェース１３１２と、を含んでよい。プロセッサ１３０２、メモリ１３０４、記憶装置１３０６、高速インターフェース１３０８、高速拡張ポート１３１０、及び低速インターフェース１３１２のそれぞれは、様々なバスを使用して相互に接続されており、共通マザーボードに、又は他の適切な方法で取り付けられてよい。プロセッサ１３０２は、メモリ１３０４又は記憶装置１３０６に記憶されて、高速インターフェース１３０８に接続されているディスプレイ１３１など外付け入出力デバイスでＧＵＩのグラフィカル情報を表示するなど、コンピューティングデバイス１３００内で実行する命令を処理できる。他の実施例では、複数のプロセッサ及び／又は複数のバスが、複数の、様々な種類のメモリと共に、必要に応じて使用されてよい。また、複数のコンピューティングデバイスが接続されてよく、各デバイスは、（例えば、サーババンク、一連のブレードサーバ、又はマルチプロセッサシステムとして）必要な作業の一部を提供する。
【０２３０】
メモリ１３０４は、コンピューティングデバイス１３００内の情報を記憶する。いくつかの実施例では、メモリ１３０４は、１つ又は２つ以上の揮発性メモリユニットである。いくつかの実施例では、メモリ１３０４は、１つ又は２つ以上の非揮発性メモリユニットである。メモリ１３０４はまた、磁気ディスク又は光ディスクなど、別の形式のコンピュータ読み取り可能な媒体である。
【０２３１】
記憶装置１３０６は、コンピューティングデバイス１３００に大容量ストレージを提供することができる。いくつかの実施例では、記憶装置１３０６は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、又はテープデバイスなどコンピュータ読み取り可能な媒体、フラッシュメモリ若しくは様々なソリッドステートメモリデバイス、又はストレージエリアネットーワーク内のデバイス若しくは様々な構成のデバイスなどデバイスアレイであってよい、又はこれらを含んでよい。命令は、情報キャリアに記憶され得る。命令は、１台又は２台以上の処理装置（例えば、プロセッサ１３０２）による実行時に、上述したような１つ又は２つ以上のメソッドを実行する。命令はまた、コンピュータ又はマシン読み取り可能媒体（例えば、メモリ１３０４、記憶装置１３０６、又はプロセッサ１３０２上のメモリ）など１台又は２台以上の記憶装置によって記憶され得る。
【０２３２】
高速インターフェース１３０８は、コンピューティングデバイス１３００のために帯域幅を集中的に使用する動作を管理し、一方、低速インターフェース１３１２は、帯域幅をあまり集中的に使用しない動作を管理する。かかる機能の割り当ては、例示のみを目的とするものである。いくつかの実施例では、高速インターフェース１３０８は、メモリ１３０４、ディスプレイ１３１６（例えば、グラフィックプロセッサ又はアクセラレータを経由して）、及び様々な拡張カード（図示なし）に対応してよい高速拡張ポート１３１０に接続される。実施例では、低速インターフェース１３１２は、記憶装置１３０６及び低速拡張ポート１３１４に連結される。様々な通信ポート（例えば、ＵＳＢ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、イーサネット（登録商標）、無線イーサネット（登録商標））を含んでよい低速拡張ポート１３１４は、キーボード、ポインティングデバイス、スキャナーなど１つ又は２つ以上の入出力デバイス、又はスイッチ若しくはルーターなどネットワーキングデバイスに、例えば、ネットワークアダプタを経由して接続されてよい。
【０２３３】
コンピューティングデバイス１３００は、図に示すように、多数の異なる形式で実施されてよい。例えば、標準的なサーバ１３２０として、又はかかるサーバ群で何回も実施されてよい。加えて、ラップトップコンピュータ１３２２などパーソナルコンピュータとして実施されてよい。また、ラックサーバシステム１３２４の一部として実施されてよい。あるいは、コンピューティングデバイス１３００のコンポーネントは、モバイルコンピューティングデバイス１３５０などモバイルデバイス（図示なし）の他のコンポーネントと組み合わされてよい。かかるデバイスのそれぞれは、コンピューティングデバイス１３００及びモバイルコンピューティングデバイス１３５０のうちの１つ又は２つ以上を含んでよく、システム全体は、互いに通信する、複数のコンピューティングデバイスで構成されてよい。
【０２３４】
モバイルコンピューティングデバイス１３５０は、他のコンポーネントの中でも、プロセッサ１３５２と、メモリ１３６４と、ディスプレイ１３５４など入出力デバイスと、通信インターフェース１３６６と、トランシーバ１３６８と、を含んでよい。モバイルコンピューティングデバイス１３５０はまた、マイクロドライブ又は他のデバイスなど記憶装置を備えて、更なるストレージを提供してよい。プロセッサ１３５２、メモリ１３６４、ディスプレイ１３５４、通信インターフェース１３６６、及びトランシーバ１３６８のそれぞれは、様々なバスを使用して相互に接続され、いくつかのコンポーネントは、必要に応じて、共通マザーボードに、又は他の方法で搭載される。
【０２３５】
プロセッサ１３５２は、メモリ１３６４に記憶された命令など命令をモバイルコンピューティングデバイス１３５０内で実行できる。プロセッサ１３５２は、別個の、複数のアナログ及びデジタルプロセッサを含むチップのチップセットとして実施されてよい。プロセッサ１３５２は、例えば、ユーザーインターフェース、モバイルコンピューティングデバイス１３５０によって実行されるアプリケーション、及びモバイルコンピューティングデバイス１３５０による無線通信の制御などモバイルコンピューティングデバイス１３５０の他のコンポーネントを調整するために提供されてよい。
【０２３６】
プロセッサ１３５２は、ディスプレイ１３５４に接続されている制御インターフェース１３５８、ディスプレイインターフェース１３５６を通してユーザーとやり取りしてよい。ディスプレイ１３５４は、例えば、ＴＦＴ（薄膜トランジスタ液晶）ディスプレイ、ＯＬＥＤ（有機発光ダイオード）ディスプレイ、又は他の適切なディスプレイ技術であってよい。ディスプレイインターフェース１３５６は、ディスプレイ１３５４に、グラフィカル情報及び他の情報をユーザーに対して提示させるための適切な回路を備えてよい。制御インターフェース１３５８は、ユーザーからのコマンドを受信し、プロセッサ１３５２に送信するために変換してよい。加えて、外部インターフェース１３６２は、モバイルコンピューティングデバイス１３５０の他のデバイスとの近傍領域通信を可能にするために、プロセッサ１３５２との通信を提供してよい。外部インターフェース１３６２は、例えば、有線通信ではある実施例で提供され、無線通信では他の実施例で提供され、複数のインターフェースも使用されてよい。
【０２３７】
メモリ１３６４は、モバイルコンピューティングデバイス１３５０内の情報を記憶する。メモリ１３６４は、１つ又は２つ以上のコンピュータ読み取り可能な媒体、１つ又は２つ以上の揮発性メモリユニット、１つ又は２つ以上の非揮発性メモリユニットのうちの１つ又は２つ以上として実施され得る。増設メモリ１３７４も提供され、例えば、ＳＩＭＭ（シングルインラインメモリモジュール）カードインターフェースなどであってよい拡張インターフェース１３７２を介してモバイルコンピューティングデバイス１３５０に接続されてよい。増設メモリ１３７４は、モバイルコンピューティングデバイス１３５０に追加ストレージ容量を提供してよい、又はモバイルコンピューティングデバイス１３５０向けのアプリケーション若しくは他の情報も記憶してよい。具体的には、増設メモリ１３７４は、上記のプロセスを実行する又は補完する命令を含んでよく、情報を保護してもよい。したがって、例えば、増設メモリ１３７４は、セキュリティモジュールとしてモバイルコンピューティングデバイス１３５０に提供されてよく、モバイルコンピューティングデバイス１３５０の安全な使用を可能にする命令でプログラミングされていてよい。加えて、ＳＩＭＭカードを介して、ハッキングできない方法でＳＩＭＭカードに識別情報を配置するなど追加情報と共に、安全なアプリケーションが提供されてよい。
【０２３８】
メモリとしては、以下に記載するように、例えば、フラッシュメモリ及び／又はＮＶＲＡＭメモリ（非揮発性ランダムアクセスメモリ）が挙げられてよい。いくつかの実施例では、命令は情報キャリアに記憶され、命令は、１つ又は２つ以上の処理装置（例えば、プロセッサ１３５２）による実行時に、上述したような１つ又は２つ以上のメソッドを実行する。命令はまた、１つ又は２つ以上のコンピュータ又はマシン読み取り可能な媒体（例えば、メモリ１３６４、増設メモリ１３７４、又はプロセッサ１３５２上のメモリ）など１つ又は２つ以上の記憶装置によって記憶され得る。いくつかの実施例では、命令は、例えば、トランシーバ１３６８又は外部インターフェース１３６２によって、伝播した信号で受信され得る。
【０２３９】
モバイルコンピューティングデバイス１３５０は、必要に応じてデジタル信号処理回路を含んでよい通信インターフェース１３６６を介して無線通信してよい。通信インターフェース１３６６は、とりわけ、ＧＳＭ（登録商標）音声電話（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）、ＳＭＳ（ショートメッセージサービス）、ＥＭＳ（Ｅｎｈａｎｃｅｄ  Ｍｅｓｓａｇｉｎｇ  Ｓｅｒｖｉｃｅ）、又はＭＭＳメッセージング（マルチメディアメッセージングサービス）、ＣＤＭＡ（符号分割多元接続）、ＴＤＭＡ（時分割多元接続）、ＰＤＣ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ｃｅｌｌｕｌａｒ）、ＷＣＤＭＡ（登録商標）（広帯域符号分割多元接続）、ＣＤＭＡ２０００、又はＧＰＲＳ（Ｇｅｎｅｒａｌ  Ｐａｃｋｅｔ  Ｒａｄｉｏ  Ｓｅｒｖｉｃｅ）など様々なモード又はプロトコルで通信を提供してよい。かかる通信は、例えば、無線周波を使用するトランシーバ１３６８を介して生じてよい。加えて、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（商標）、又は他のかかるトランシーバ（図示なし）を使用して、狭域通信が生じてよい。加えて、ＧＰＳ（全地球測位システム）レシーバモジュール１３７０は、更なるナビゲーション及び位置に関する無線データをモバイルコンピューティングデバイス１３５０に提供してよく、このデータは、必要に応じて、モバイルコンピューティングデバイス１３５０で実行しているアプリケーションによって使用されてよい。
【０２４０】
モバイルコンピューティングデバイス１３５０はまた、ユーザーからの音声情報を受信し、使用可能なデジタル情報に変換してよいオーディオコーデック１３６０を使用して、音声通信を行ってよい。オーディオコーデック１３６０は、例えば、モバイルコンピューティングデバイス１３５０のハンドセット内のスピーカーを通してなど、ユーザーのために可聴音を同様に生成してよい。かかる音声は、音声通話からの音声を含んでよく、録音音声（例えば、ビデオメッセージ、音楽ファイルなど）を含んでよく、モバイルコンピューティングデバイス１３５０で動作するアプリケーションによって生成された音声も含んでよい。
【０２４１】
モバイルコンピューティングデバイス１３５０は、図に示すように、多数の異なる形式で実施されてよい。例えば、携帯電話１３８０として実施されてよい。スマートフォン１３８２、情報携帯端末、又は他の類似のモバイルデバイスの一部としても実施されてよい。
【０２４２】
本明細書に記載のシステム及び技術の様々な実施例は、デジタル電子回路、集積回路、特別に設計されたＡＳＩＣ（特定用途向け集積回路）、コンピュータハードウェア、ファームウェア、ソフトウェア、及び／又はこれらの組み合わせにおいて実現し得る。これらの様々な実施例は、特定用途向け又は汎用であってよく、記憶システムからデータ及び命令を受信し、これらにデータ及び命令を伝送するために接続されている、少なくとも１つのプログラム可能プロセッサと、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスと、を含む、プログラム可能システムで実行可能及び／又は解釈可能である１つ又は２つ以上のコンピュータプログラムでの実施を含み得る。
【０２４３】
これらのコンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとしても知られる）は、プログラム可能プロセッサ向けの機械命令を含み、高級プロシージャ言語及び／若しくはオブジェクト指向プログラミング言語、並びに／又はアセンブリ言語／機械言語で実施され得る。本明細書で使用するとき、用語「機械読み取り可能な媒体」及び「コンピュータ読み取り可能な媒体」は、機械命令及び／又はデータをプログラム可能プロセッサに提供するために使用される、任意のコンピュータプログラム製品、装置、及び／又はデバイス（例えば、磁気ディスク、光ディスク、メモリ、プログラム可能論理デバイス（ＰＬＤ））を指し、機械命令を機械読み取り可能な信号として受信する機械読み取り可能な媒体を含む。用語「機械読み取り可能な信号」は、機械命令及び／又はデータをプログラム可能プロセッサに提供するために使用される任意の信号を指す。
【０２４４】
ユーザーとの対話を提供するために、本明細書に記載のシステム及び技術は、ユーザーに情報を表示するためのディスプレイデバイス（例えば、ＣＲＴ（陰極線管）又はＬＣＤ（液晶ディスプレイ）モニタ）と、ユーザーがコンピュータに入力を提供できるキーボード及びポインティングデバイス（例えば、マウス又はトラックボール）と、を有するコンピュータで実施され得る。他の種類のデバイスを使用して、同様にユーザーとの対話を提供できる。例えば、ユーザーに提供されるフィードバックは、任意の形式の感覚フィードバック（例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック）であり得、ユーザーからの入力は、音響入力、音声入力、又は、触覚入力など任意の形式で受信され得る。
【０２４５】
本明細書に記載のシステム及び技術は、バックエンドコンポーネント（例えば、データサーバとして）を含んでよい、又は（例えば、アプリケーションサーバとして）ミドルウェアコンポーネントを含んでよい、又はフロントエンドコンポーネント（例えば、ユーザーが使用して本明細書に記載のシステム及び技術の実施例と対話できる、グラフィカルユーザーインターフェース又はウェブブラウザを有するクライアントコンピュータ）を含んでよい、又はかかるバックエンドコンポーネント、ミドルウェアコンポーネント、若しくはフロントエンドコンポーネントの任意の組み合わせを含んでよい、コンピューティングシステムで実施され得る。システムのコンポーネントは、デジタルデータ通信の任意の形式又は媒体（例えば、通信ネットワーク）によって相互に接続され得る。通信ネットワークの例としては、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、及びインターネットが挙げられる。
【０２４６】
コンピューティングシステムは、クライアントと、サーバと、を含み得る。クライアント及びサーバは、概ね互いに離れており、通常、通信ネットワークを介してやり取りする。クライアントとサーバとの関係は、対応のコンピュータ上で実行され、互いに対してクライアント−サーバ関係を有する、コンピュータプログラムのおかげで生じる。
【０２４７】
本明細書に記載のシステム及び方法の構造、機能、及び装置を考慮すると、いくつかの実施例では、ステートレス永続的接続で、プラットフォームサーバとエンドポイントデバイスとの間での通信交換に状態情報及びルーティング情報を挿入するシステム及び方法が提供される。状態情報及びルーティング情報の通信交換への挿入を支援する方法及び装置の特定の実施例を説明してきたため、当業者には、本開示の概念を組み込んでいる他の実施例が使用され得ることが明らかであろう。
【０２４８】
更に、本明細書に記載のシステム及び方法の構造、機能、及び装置を考慮すると、いくつかの実施例では、２つのネットワークノードと中間ノードとの間の一連の永続的接続で通信するシステム及び方法が提供される。永続的接続での通信を支援する方法及び装置の特定の実施例を説明してきたため、当業者には、本開示の概念を組み込んでいる他の実施例が使用され得ることが明らかであろう。
【０２４９】
更に、本明細書に記載のシステム及び方法の構造、機能、及び装置を考慮すると、いくつかの実施例では、２つのネットワークノードと中間ノードとの間の一連の永続的接続で通信するシステム及び方法が提供される。永続的接続での通信を支援する方法及び装置の特定の実施例を説明してきたため、当業者には、本開示の概念を組み込んでいる他の実施例が使用され得ることが明らかであろう。
【０２５０】
したがって、本開示は、特定の実施例に限定されるべきではなく、むしろ以下の特許請求の範囲の趣旨及び範囲によってのみ限定されるべきである。
【図１】
0006258521.tif 000005
【図２】
0006258521.tif 000006
【図３】
0006258521.tif 000007
【図４】
0006258521.tif 000008
【図５】
0006258521.tif 000009
【図６】
0006258521.tif 000010
【図７】
0006258521.tif 000011
【図８】
0006258521.tif 000012
【図９】
0006258521.tif 000013
【図１０】
0006258521.tif 000014
【図１１】
0006258521.tif 000015
【図１２】
0006258521.tif 000016
【図１３】
0006258521.tif 000017