(57)【要約】ネットワークを介して装置を接続するシステムおよび方法であって、これには、アドレス登録サーバーにより、ホスト装置からの通信およびエンドポイント装置からの通信を受け取ること、そのホスト装置およびエンドポイント装置が単一ローカルネットワークに接続されているか、また、そのホスト装置およびエンドポイント装置がそれぞれ機能的に適合したアプリケーションを実行しているか判断すること、ならびにエンドポイント装置の私設網アドレスをホスト装置に与えることにより、ローカルネットワークを介したエンドポイント装置とホスト装置間のネットワーク接続を容易にすることが含まれる。
2013521584.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上の装置を接続する方法であって、
アドレス登録サーバーにより、ホスト装置からの該ホスト装置の公衆網アドレスを含む通信、およびエンドポイント装置からの該エンドポイント装置の公衆網アドレスおよび私設網アドレスを含む通信を受け取ることと、
前記アドレス登録サーバーにより、前記ホスト装置と前記エンドポイント装置が単一ローカルエリアネットワークに接続しているか、前記ホスト装置の公衆網アドレスおよび前記エンドポイント装置の公衆網アドレスに基づいて判断するとともに、前記ホスト装置および前記エンドポイント装置がそれぞれ機能的に適合したアプリケーションを実行しているか判断することと、
前記エンドポイント装置と前記ホスト装置が前記ローカルエリアネットワークに接続しており、かつそれぞれが機能的に適合したアプリケーションを実行していると判断された場合、前記ホスト装置に前記エンドポイント装置の前記私設網アドレスを与えることにより、前記ローカルエリアネットワークを介した前記エンドポイント装置と前記ホスト装置間のネットワーク接続を容易にすることとを含む、方法。
【請求項２】
請求項１に記載の方法であって、前記受け取るステップにおいて、前記エンドポイント装置および前記ホスト装置からの前記通信は、前記エンドポイント装置上、前記ホスト装置上、またはその両方で実行中のアプリケーションを識別するように構成されたアプリケーションＩＤを含む、前記方法。
【請求項３】
請求項２に記載の方法であって、前記判断するステップは、前記ホスト装置から受け取った前記アプリケーションＩＤを前記エンドポイント装置から受け取った前記アプリケーションＩＤと比較することを含む、前記方法。
【請求項４】
請求項１に記載の方法であって、
前記ホスト装置により、Ｗｅｂブラウザ内でブラウザアプリケーションを実行することと、
前記エンドポイント装置により、前記ブラウザアプリケーションの内容を制御するように構成されたアプリケーションを実行することとをさらに含む、前記方法。
【請求項５】
請求項４に記載の方法であって、前記ブラウザアプリケーションを実行することは、
フラッシュアプリケーション、
Ｕｎｉｔｙアプリケーション、
Ｗｅｂスクリプト、および
ＨＴＭＬ５アプリケーション
の中の１つを実行することを含む、前記方法。
【請求項６】
請求項４に記載の方法であって、前記判断するステップは、前記ブラウザアプリケーションと前記ブラウザアプリケーションの内容を制御するように構成された前記アプリケーションが機能的に適合したアプリケーションであるか判断することを含む、前記方法。
【請求項７】
請求項４に記載の方法であって、
前記ブラウザアプリケーションを実行することはゲームアプリケーションを実行することを含み、
前記アプリケーションを実行することはゲームコントローラアプリケーションを実行することを含む、前記方法。
【請求項８】
請求項４に記載の方法であって、前記Ｗｅｂブラウザのセキュリティポリシーを変更し、前記ブラウザアプリケーションと前記ブラウザアプリケーションの内容を制御するように構成された前記アプリケーション間の通信を可能にすることをさらに含む、前記方法。
【請求項９】
請求項８に記載の方法であって、前記変更するステップは、
前記ホスト装置に対し、前記エンドポイント装置上で実行中の前記アプリケーションが前記Ｗｅｂブラウザのセキュリティ機構を通って前記ブラウザアプリケーションにアクセスすることを可能にするように構成されたポリシーファイルを送信すること、および
前記ホスト装置および前記エンドポイント装置により、ＨＴＭＬ５ポリシーハンドシェイクを実行すること
の中の１つを含む、前記方法。
【請求項１０】
ネットワーク上の装置を接続するシステムであって、
私設網アドレスおよび公衆網アドレスを有するエンドポイント装置と、
公衆網アドレスを有するホスト装置と、
前記エンドポイント装置と前記ホスト装置がそれぞれ単一ローカルエリアネットワークに接続され、かつそれぞれが機能的に適合したアプリケーションを実行していると判断された場合、前記エンドポイント装置の前記私設網アドレスを前記ホスト装置に与えることにより、前記単一ローカルエリアネットワークを介した前記エンドポイント装置と前記ホスト装置間のネットワーク接続を容易にするように構成されたアドレス登録サーバーとを含む、システム。
【請求項１１】
請求項１０に記載のシステムであって、前記ホスト装置と前記エンドポイントはそれぞれ、前記エンドポイント装置上、前記ホスト装置上、またはその両方で実行中のアプリケーションを識別するように構成されたアプリケーションＩＤを伝達する、前記システム。
【請求項１２】
請求項１１に記載のシステムであって、前記アドレス登録サーバーは、前記エンドポイント装置と前記ホスト装置がそれぞれ機能的に適合したアプリケーションを実行しているか、前記ホスト装置から受信した前記アプリケーションＩＤと前記エンドポイント装置から受信した前記アプリケーションＩＤの比較に基づいて判断するようにさらに構成されている、前記システム。
【請求項１３】
請求項１０に記載のシステムであって、前記ホスト装置は、Ｗｅｂブラウザ内でブラウザアプリケーションを実行するようにさらに構成されている、前記システム。
【請求項１４】
請求項１３に記載のシステムであって、前記エンドポイント装置は、前記ブラウザアプリケーションの内容を制御するように設計されたアプリケーションを実行するようにさらに構成されている、前記システム。
【請求項１５】
請求項１３に記載のシステムであって、前記ブラウザアプリケーションは、
フラッシュアプリケーション、
Ｕｎｉｔｙアプリケーション、
Ｗｅｂスクリプト、および
ＨＴＭＬ５アプリケーション
の中の１つを含む、前記システム。
【請求項１６】
請求項１３に記載のシステムであって、前記ホスト装置は、前記Ｗｅｂブラウザ内でゲームアプリケーションを実行するようにさらに構成され、前記エンドポイント装置は、前記ゲームアプリケーションの内容を制御するためのゲームコントローラアプリケーションを実行するようにさらに構成されている、前記システム。
【請求項１７】
請求項１４に記載のシステムであって、前記ホスト装置および前記エンドポイント装置は、前記Ｗｅｂブラウザのセキュリティポリシーを変更して、前記ブラウザアプリケーションと前記ブラウザアプリケーションの内容を制御するように構成された前記アプリケーション間の通信を可能にするように構成されている、前記システム。
【請求項１８】
請求項１７に記載の方法であって、前記ホスト装置および前記エンドポイント装置は、
前記エンドポイント装置上で実行中の前記アプリケーションがＷｅｂブラウザのセキュリティ機構を通して前記ブラウザアプリケーションにアクセスすることを可能にするように構成されたポリシーファイルを前記エンドポイント装置から前記ホスト装置に送信すること、および
ＨＴＭＬ５ポリシーハンドシェイクを実行すること
の中の１つを含む動作を実行することにより、前記セキュリティポリシーを変更するようにさらに構成されている、前記方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１０年３月５日に出願された仮特許出願第６１／３１１，１０２号および２０１０年１２月１０日に出願された仮特許出願第６１／４２１，９７７号の優先権および利益を主張するものであり、その出願第６１／３１１，１０２号と第６１／４２１，９７７号の両方について、その全体を本明細書を構成するものとして援用する。
【０００２】
本発明は、概括的にはネットワークを介した通信の分野に関し、より具体的には、Ｗｅｂブラウザ内部で動作するブラウザアプリケーションに表示される内容を制御するためにネットワークを介して通信し、そのブラウザアプリケーションと遠隔アプリケーション間の双方向通信を確立することに関する。
【背景技術】
【０００３】
モバイルコンピューティングの利用拡大とともに、ますます多くの装置がコンピュータネットワークに接続できるようになっている。もはやネットワーク通信はＰＣおよびラップトップに限定されない。携帯電話およびスマートフォンは、典型的には、携帯電話ネットワークだけでなくＷｉ−ｆｉネットワーク、Ｂｌｕｅｔｏｏｔｈ（登録商標）ネットワーク、ＵＳＢネットワークなどとも接続することができる。すでにインターネットにアクセスするように構成された市場に対して、歴史的にコンピュータネットワークに接続できなかった上記以外の装置が参入しつつある。テレビやＤＶＤプレイヤー、さらには家電製品までもがネットワークおよびインターネット機能を備えている。
【０００４】
モバイルアプリケーションの人気もますます高まっている。ｉＰｈｏｎｅ（登録商標）デバイス、Ａｎｄｒｏｉｄ（登録商標）フォン、Ｂｌａｃｋｂｅｒｒｙ（登録商標）フォンなどのスマートフォンは、ゲームや動画プレイヤーから生産性ツールや作業ツールまでの広範な種類のアプリケーションをダウンロードして実行することができる。
【０００５】
ブラウザアプリケーションは、開発および配備が比較的容易であるため、開発者にとって魅力的である。ブラウザアプリケーションは、Ｗｅｂブラウザ内に表示するための動的かつカスタマイズ可能な内容も提供する。ブラウザアプリケーションの開発者は、たとえば、Ｗｅｂブラウザ内で実行可能なビデオゲームアプリケーションまたはメディアプレゼンテーションアプリケーションを作成することができる。
【０００６】
ＦＬＡＳＨ（登録商標）アプリケーション、Ｕｎｉｔｙ（商標）アプリケーション、ＪａｖａＳｃｒｉｐｔ（登録商標）アプリケーションなどのブラウザアプリケーションは、Ｗｅｂブラウザによるダウンロードおよび実行が可能であり、そのアプリケーションをローカルコンピュータ上に直接インストールする必要はない。実際、ユーザーは、ブラウザアプリケーションを提供するＵＲＬを自分のブラウザに指示するだけでブラウザアプリケーションを実行することができる。Ｗｅｂブラウザは、ユーザーが静的Ｗｅｂページを閲覧しているかのようなプロセスで、指定のブラウザアプリケーションをダウンロードしつつ、それを直接ロードおよび実行する。
【０００７】
しかし、典型的には、ブラウザアプリケーションはセキュリティ上の制限の適用を受ける。多くの場合、Ｗｅｂブラウザは、ブラウザアプリケーションがローカルマシン上の資源にアクセスするのを制限するセキュリティ方式を採用している。これをサンドボックスセキュリティと呼ぶことがある。たとえば、多くの場合、Ｗｅｂブラウザは、ブラウザアプリケーションがローカルハードドライブ上のファイルやオペレーティングシステム資源などにアクセスするのを防止する。Ｗｅｂブラウザは、ブラウザアプリケーションがローカルマシンに接続されたローカルまたはワイドエリアネットワークなどのネットワークを介して通信することも防止することができる。
【０００８】
残念ながら、Ｗｅｂブラウザのセキュリティ機構が存在するため、モバイル機器またはモバイルアプリケーションがＷｅｂブラウザ内で実行中のブラウザアプリケーションに接続して、そのブラウザアプリケーションと通信することは困難である。
【発明の概要】
【０００９】
本システムおよび方法は、アドレス登録サーバーにより、ホスト装置からの通信（そのホスト装置の公衆網アドレスを含む）およびエンドポイント装置からの通信（そのエンドポイント装置の公衆網アドレスおよび私設網アドレスを含む）を受信する装置および動作を含むものである。本システムおよび方法は、ホスト装置の公衆網アドレスおよびエンドポイント装置の公衆網アドレスに基づいて、ホスト装置とエンドポイント装置が単一ローカルネットワークに接続しているか判断するとともに、ホスト装置およびエンドポイント装置がそれぞれ機能的に適合したアプリケーションを実行しているか判断することができる。本システムおよび方法は、エンドポイント装置とホスト装置がローカルネットワークに接続し、かつ機能的に適合したアプリケーションを実行していると判断された場合、エンドポイント装置の私設網アドレスをホスト装置に与えることにより、ローカルネットワークを介したエンドポイント装置とホスト装置間のネットワーク接続を容易にすることもできる。
【００１０】
さまざまな実施形態において、ホスト装置からの通信およびエンドポイント装置からの通信は、それぞれエンドポイント装置上、ホスト装置上、またはその両方で実行中のアプリケーションを識別するように構成されたアプリケーションＩＤを含む。エンドポイント装置とホスト装置がそれぞれ機能的に適合したアプリケーションを実行中かどうかに関する判定は、ホスト装置から受信したアプリケーションＩＤとエンドポイント装置から受信したアプリケーションＩＤとの比較に基づいて行われる。
【００１１】
複数の実施形態において、ホスト装置はＷｅｂブラウザ内でブラウザアプリケーションを実行することができ、エンドポイント装置はブラウザアプリケーションの内容を制御するように構成されたアプリケーションを実行することができる。エンドポイント装置とホスト装置がそれぞれ機能的に適合したアプリケーションを実行しているかどうかの判定は、ブラウザアプリケーションとブラウザアプリケーションの内容を制御するように構成されたアプリケーションについて、その２つが適合アプリケーションであるか否かに基づいて行うことができる。ブラウザアプリケーションは、たとえばゲームアプリケーションであってよく、内容を制御するように構成されたアプリケーションはゲームコントローラアプリケーションであってよい。
【００１２】
本システムおよび方法は、ブラウザアプリケーションとそのブラウザアプリケーションの内容を制御するように構成されたアプリケーション間の通信を可能にするため、Ｗｅｂブラウザのセキュリティポリシーに変更を加えることもできる。
【図面の簡単な説明】
【００１３】
【図１】本発明の動作に適した例示的コンピュータネットワークアーキテクチャのブロック図である。
【図２】コンピュータ処理装置のブロック図である。
【図３】本発明に関連して使用される方法を示したフローチャートである。
【図４】本発明のいくつかの動作を示したブロック図である。
【発明を実施するための形態】
【００１４】
本発明は、ネットワークを介して装置を接続するシステムおよび方法を提供することができる。より具体的には、本発明を使用して、Ｗｅｂブラウザ内で実行中のブラウザアプリケーションとエンドポイント装置上で実行中のアプリケーションを接続し、２つのアプリケーション間の通信を容易にすることができる。
【００１５】
多くの場合、Ｗｅｂブラウザは、ブラウザアプリケーションがローカルマシンに害を及ぼすことがないようにするためのセキュリティ方式（サンドボックスセキュリティと呼ばれることがある）を採用している。これらのセキュリティ方式は、コンピュータのハードドライブ、Ｉ／Ｏ、ネットワーク機能などのローカルマシンの資源について、ブラウザアプリケーションによる使用を制限することができる。
【００１６】
典型的には、ネットワーク上の装置は、ネットワーク上の自らの存在をブロードキャストし、他の装置からのブロードキャストを監視することにより、ネットワーク上の他の装置を発見することができる。しかし、ネットワークに接続されたマシンにおいて、ブラウザアプリケーション、たとえばＦＬＡＳＨアプリケーションがＷｅｂブラウザ内で実行中の場合、Ｗｅｂブラウザのセキュリティ機構は、そのブラウザアプリケーションがネットワークに接続された他装置を発見し、またはそれらの装置と通信するのを防ぐことができる。それらの他装置がそのブラウザアプリケーションと別の形で送受信可能なアプリケーションを実行していたとしても同様である。
【００１７】
システムアーキテクチャ
次に図１を参照すると、一実施形態において、本発明はＷｅｂブラウザの内容制御のためのシステムおよびアーキテクチャ１０を提供する。本システムは、ホスト装置１２を含むことができ、このホスト装置１２は、Ｗｅｂブラウザ１６内でブラウザアプリケーション１４を実行することができる。
【００１８】
図１はデスクトップコンピュータとしてのホスト装置１２を示しているが、ホスト装置１２はデスクトップコンピュータに限定されない。たとえば、ホスト装置１２は、ラップトップコンピュータ、サーバーコンピュータ、ゲームコンソール、モバイル機器、スマートフォン、インターネットテレビ、家電製品、ネットワーク対応およびプロセッサ内蔵の遠隔操作玩具、インターネット対応の広告板、医療用表示装置、ｉＰａｄ（登録商標）、その他、Ｗｅｂブラウザ１６内でブラウザアプリケーション１４を実行することができる任意の他の装置であってよい。
【００１９】
図１は、エンドポイント装置１８、２０も示している。エンドポイント装置１８はアプリケーション２２を実行することができる。アプリケーション２２は、たとえば、ブラウザアプリケーション１４と通信するように構成されたアプリケーションである。エンドポイント装置は、典型的にはＰＤＡまたはスマートフォンなどのネットワーク対応の無線ハンドヘルド装置であり、アプリケーション２２は、典型的にはモバイルアプリケーションである。しかし、ラップトップまたはデスクトップコンピュータ、ゲーム用コンソール、ゲームコントローラなど、アプリケーション２２を実行するとともに私設網２４に接続することができる任意の種類の装置もエンドポイント装置になりえる。
【００２０】
エンドポイント装置２０は、システム１０内の別のエンドポイント装置でもよい。図のエンドポイント装置２０は、他の装置をシステム１０に加えて私設網２４に接続できるという単なる例示のために示したものである。図示していないが、エンドポイント装置２０は、たとえば、アプリケーション２２などのアプリケーションを実行できるほか、ブラウザアプリケーション１４と通信できる他のアプリケーションを実行したり、または別のブラウザアプリケーションと通信できるアプリケーションを実行することができる。
【００２１】
ホスト装置１２およびエンドポイント装置１８、２０を私設網２４に接続することができる。私設網２４は、典型的にはローカルエリアネットワーク（ＬＡＮ）でありえるが、有線ＬＡＮ、１つ以上のＬＡＮセグメント、無線ＬＡＮ、ワイドエリアネットワーク、Ｂｌｕｅｔｏｏｔｈ（登録商標）ネットワーク、ＵＳＢネットワークなど、他の種類のネットワークであってもよい。したがって、接続２６、２８は有線接続または無線接続のいずれでもよく、また、装置間の通信を可能にする任意の適切な通信テクノロジーおよびプロトコルを利用することができる。
【００２２】
私設網２４は、複数のＬＡＮセグメントなど、連結された複数のネットワークも含むことができる。簡単のために、本開示では、私設網２４をインターネット接続された家庭および企業の典型例である有線／無線ＥｔｈｅｒｎｅｔＬＡＮとして説明する。たとえば、Ｌｉｎｋｓｙｓ（登録商標）およびその他の会社の製品のような有線／無線ルーターがそのようなネットワークを提供することができる。しかし、当業者によって認識されるように、本発明は、さまざまな異なる種類のネットワークトポロジー内で動作することが可能である。
【００２３】
私設網２４は、ネットワークインタフェース装置３２によって公衆網３０から分離されたものとして示してある。公衆網３０は、任意の種類のＬＡＮまたはＷＡＮであってよい。この例において、公衆網３０はインターネットなどの公衆ネットワークに相当しえる。
【００２４】
ネットワークインタフェース装置３２は、私設網２４と公衆網３０間のブリッジを提供することができ、また、ファイアウォールなど、私設網２４とインターネット間の防護壁を提供することもできる。ネットワークインタフェース装置３２の典型的な例は、ケーブルモデム、ＤＳＬモデム、Ｔ１接続などである。公衆網３０（すなわちインターネット）に接続された装置は、典型的には、ネットワークインタフェース装置３２の防護壁を突破して私設網２４上の装置を発見したり、それらの装置と通信することはできない。しかし、一実施形態において、ネットワークインタフェース装置３２は、私設網２４上の装置が公衆網３０にアクセスできるようにすることができる。これにより、それらの装置は、インターネットの閲覧、アプリケーションのダウンロード、およびインターネット上の装置との通信を実行できるようになる。ネットワークインタフェース装置３２は、単一のネットワークインタフェース装置であるか、あるいは私設網２４とインターネット間の複数アクセスポイントを提供する複数のネットワークインタフェース装置でありえる。
【００２５】
私設網２４に接続された装置は私設網アドレスを受け取ることができ、公衆網３０に接続された装置は公衆網アドレスを受け取ることができる。私設網アドレスは、私設網２４に固有のアドレスである。私設網２４から私設網アドレスを受け取る装置は、典型的には私設網２４上の他の装置と自由に通信することができる。しかし、公衆網３０上の装置は、典型的には、ネットワークインタフェース装置３２内のセキュリティ機構の働きにより、私設網アドレスを有する私設網２４上の装置を発見し、またはそれらの装置と通信することができない。典型的な例は家庭内ＬＡＮまたは企業ＬＡＮであり、そのＬＡＮ上の装置は互いに通信することができ、インターネットにアクセス可能であるが、インターネット上の装置は、そのＬＡＮ上の装置を発見し、またはそれらの装置との通信を開始することができない。
【００２６】
ネットワークインタフェース装置３２は公衆網３０に接続されているため、この装置は公衆網アドレスを受け取ることができる。公衆網アドレスは、公衆網３０上および／または私設網２４上の装置によってアクセス可能なアドレスである。この例において、公衆網３０はインターネットを表すため、ネットワークインタフェース装置が受け取る公衆網アドレスは公衆インターネットアドレスであり、そのアドレスは他のインターネット上の装置によってアクセス可能である。その逆も成立しえる。
【００２７】
言い換えれば、公衆網３０上の装置（すなわちインターネット装置）にとって、ネットワークインタフェース装置３２およびその公衆網アドレスは「見る」ことができるが、私設網２４上の装置を「見る」ことはできない。私設網２４上の装置にとって私設網２４上の他の装置は「見る」ことができ、私設網アドレスを使用してそれらの装置にアクセスできるだけでなく、公衆網３０上の装置も「見る」ことができ、公衆網アドレスを使用してそれらの装置にアクセスすることができる。
【００２８】
同じく図１に示すサーバー３４は、アドレス登録プロセス３６を実行している。サーバー３４は、アドレス登録プロセス３６を実行できる任意の種類のコンピューティング装置または装置のグループであってよい。典型的には、サーバー３４は、サーバーコンピュータ、インターネットサーバー、サーバーのグループ、サーバーのクラスタ、または任意の構成のサーバーコンピュータである。
【００２９】
システム１０は、本明細書に説明する発明の典型的な構成を示す。しかし、システム１０は、本明細書に説明する発明が動作可能な唯一のアーキテクチャではない。当業者によって認識されるように、さまざまなシステムアーキテクチャが本明細書に説明するシステム、方法、および装置をサポートすることができる。また、図示していないが、当該アプリケーションおよびプロセスのいずれも、システム１０内の任意のコンピューティング装置によって、または当該アプリケーションおよびプロセスを実行できる任意のコンピューティング装置によって実行可能である。たとえば、ホスト装置１２は、アドレス登録プロセス３６および／またはアプリケーション２２を実行することができる。エンドポイント装置１８、２０は、Ｗｅｂブラウザ１６、ブラウザアプリケーション１４、および／またはアドレス登録プロセス３６を実行することができる。また、サーバー３４は、Ｗｅｂブラウザ１６、ブラウザアプリケーション１４、および／またはアプリケーション２２を実行することができる。
【００３０】
前述のとおり、ブラウザアプリケーション１４はＷｅｂブラウザ１６のセキュリティ方式の内部で実行されるため、ブラウザアプリケーション１４は、アプリケーション２２を発見し、またはアプリケーション２２と通信することができない可能性があり、また、アプリケーション２２は、ブラウザアプリケーション１４を発見し、またはブラウザアプリケーション１４と通信することができない可能性がある。
【００３１】
コンピュータ処理装置
本発明は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせとして実装することができる。図２は、ソフトウェアアプリケーションおよびプロセスを実行することができる典型的な処理アーキテクチャのブロック図を示す。コンピュータ処理装置２００は、グラフィック出力用のディスプレイ２０２に結合されている。プロセッサ２０４は、ソフトウェアを実行することができるコンピュータプロセッサである。その典型的な例は、コンピュータプロセッサ（たとえばＩｎｔｅｌ（登録商標）またはＡＭＤ（登録商標）プロセッサ）、ＡＳＩＣ、マイクロプロセッサなどである。プロセッサ２０４はメモリ２０６に結合されている。このメモリ２０６は、典型的には、プロセッサ２０４の実行中に命令およびデータを格納するための揮発性ＲＡＭメモリである。プロセッサ２０４は記憶装置２０８にも結合されている。この記憶装置２０８は、たとえばハードドライブ、フラッシュドライブ、テープドライブ、ＤＶＤＲＯＭ、または類似装置を含む不揮発性記憶媒体である。プログラム２１０は、命令および／またはデータが入っているコンピュータプログラムであり、記憶装置２０８に格納されている。典型的なシナリオにおいて、プロセッサ２０４は、実行のためにプログラム２１０の命令および／またはデータの一部または全部をメモリ２０６にロードすることができる。プログラム２１０は、Ｗｅｂブラウザ１６、ブラウザアプリケーション１４、アドレス登録プロセス３６、アプリケーション２２、その他任意のコンピュータアプリケーションまたはプロセスを非限定的に含む、任意のコンピュータプログラムまたはプロセスである。
【００３２】
プログラム２１０は、各種の命令およびサブルーチンを含むことができ、それらは、メモリ２０６にロードされてプロセッサ２０４によって実行される時点で、プロセッサ２０４にさまざまな処理動作を実行させ、その一部または全部により、本発明に関連した方法が実現されうる。
【００３３】
図示していないが、コンピュータ処理装置２００は、典型的には、さまざまな形の入出力を含む。そのＩ／Ｏには、ネットワークアダプタ、ＵＳＢアダプタ、Ｂｌｕｅｔｏｏｔｈ無線、マウス、キーボード、タッチパッド、ディスプレイ、タッチスクリーン、ＬＥＤ、振動装置、スピーカー、マイクロフォン、センサー、その他、コンピュータ処理装置２００とともに使用される任意の入力または出力装置が含まれる。
【００３４】
内容制御プロセス
図３は、Ｗｅｂブラウザの内容を制御するプロセスを示したフローチャートである。このプロセスは、１つ以上の装置上で実行されるソフトウェアとして実装することができる。たとえば、ホスト装置１２、エンドポイント装置１８、２０、サーバー３４、またはそれらの任意の組み合わせによってこのプロセスを実行することができる。その他任意の適合装置上または任意の適切なアーキテクチャ内にこのプロセスを実装することもできる。
【００３５】
１つの実施形態において、この内容制御プロセスは、Ｗｅｂブラウザの内容を制御するように動作することができる。特定の実施形態において、本プロセスは、ブラウザアプリケーション１４とアプリケーション２２の接続および通信を容易にすることができ、また、ブラウザアプリケーション１４によって表示されるＷｅｂブラウザの内容をアプリケーション２２が制御できるようにすることができる。１つの例において、ブラウザアプリケーション１４は、ユーザーによってダウンロードされるビデオゲームである。そのビデオゲームは、Ｗｅｂブラウザ１６内のブラウザアプリケーション（例：ＦＬＡＳＨアプリケーション）として実行され、Ｗｅｂブラウザのセキュリティ上の制限の適用を受ける。同じ例において、エンドポイント装置１８上で動作するアプリケーション２２は、ユーザーによってダウンロードされるゲームコントローラアプリケーションである。このコントローラアプリケーションは、ゲームコントローラとして機能し、ユーザーがＦＬＡＳＨゲームを制御および／またはプレイできるようにする。ユーザーはそのゲームコントローラアプリケーションをビデオゲームに接続してプレイしたいと考えるかもしれない。しかし、そのビデオゲームはＷｅｂブラウザ１６のセキュリティ機構の内部で実行されているため、そのコントローラアプリケーションとビデオゲームは互いに相手を発見して通信することができない。
【００３６】
アプリケーションが通信するために、サーバー３４（および／またはアドレス登録プロセス３６）は、エンドポイント装置１８上で動作しているアプリケーション２２からの通信を受け取る（３０２）ことができる。一実施形態において、アプリケーション２２は、自分のアドレスをサーバー３４に登録するために送信することができる。したがって、その通信にはエンドポイント装置１８の私設網アドレス（すなわち私設網２４内部の私設網アドレス）が含まれ、また、エンドポイント装置１８の公衆網アドレスが含まれることもある。この例において、ネットワークインタフェース装置３２は私設網２４と公衆網３０間のブリッジであるため、エンドポイント装置１８の公衆網アドレスおよび私設網アドレスの少なくとも一部がネットワークインタフェース装置３２の公衆網アドレスと一致することがありえる。
【００３７】
場合によっては、その通信にアプリケーションＩＤが含まれることもある。アプリケーション２２は、アプリケーションＩＤを有することができ、それを公衆網および私設網アドレスとともにサーバー３４に送信する。
【００３８】
ブラウザアプリケーション１４（ホスト装置１２上のブラウザ１６内で動作中）は、サーバー３４に通信を送ることもできる。同様に、ブラウザアプリケーション１４からの通信は、ブラウザアプリケーション１４をアドレス登録プロセス３６に登録する役割を果たすことができる。その通信には、ホスト装置１２の公衆網アドレスが含まれることがあり、また、ブラウザアプリケーション１４を一意に識別するアプリケーションＩＤが含まれることもある。この場合、上述のように、ネットワークインタフェース３２がホスト装置１２と公衆網３０間のインタフェースを提供するため、ホスト装置１２の公衆網アドレスは、その全体または一部がネットワークインタフェース装置３２の公衆網アドレスと一致する可能性がある。いくつかの実施形態において、ブラウザアプリケーション１４および／またはアプリケーション２２からの通信には上記以外の情報が含まれ、たとえば、ホスト装置１２の私設網アドレス、ホスト装置１２に関するその他の情報、アプリケーションデータ、ユーザーデータ、その他任意の種類の情報がこれに含まれる。
【００３９】
図４は、エンドポイント装置１８、ホスト装置１２、およびサーバー３４間の通信の例を示す。図のように、通信４０２には、エンドポイント装置１８の公衆網アドレスおよび私設網アドレスとともにアプリケーション２２のアプリケーションＩＤが含まれる。同様に、通信４０４には、ホスト装置１２の公衆網アドレスおよびブラウザアプリケーション１４のアプリケーションＩＤが含まれる。その逆も成立しえる。
【００４０】
サーバー３４は、他のエンドポイント装置およびホスト装置（図示せず）からの通信を受け取ることができる。一実施形態において、サーバー３４は、サイバースペース全体のさまざまな私設網に接続された装置からの通信（ネットワークアドレスおよびアプリケーションＩＤを含む）を受け取るインターネットサーバーである。サーバー３４は、これらの各種装置から受信した情報を、たとえばデータベースまたは他のデータストレージに記録して整理することができる。
【００４１】
通信を受け取ったサーバー３４は、その通信に含まれる公衆網アドレスに基づいて、エンドポイント装置１８およびホスト装置１２が同じローカルネットワークに接続しているか判定する（３０４）ことができる。上述のように、公衆網アドレスは、典型的には、ローカルネットワークに接続された公衆向けの装置と関連づけられている。図１において、その装置はネットワークインタフェース装置３２である。したがって、この例において、サーバー３４がエンドポイント装置１８から通信４０２を受け取った時、その通信はネットワークインタフェース装置３２を経由しているため、エンドポイント装置１８が私設網２４に接続していることが公衆網アドレスによって示されうる。同様に、ホスト装置１２からの通信４０４に含まれる公衆網アドレスにより、ホスト装置１２が私設網２４に接続していること、および通信４０４がネットワークインタフェース装置３２を経由していることが示されうる。
【００４２】
このようにして各種装置の公衆網アドレスを比較することにより、サーバー３４は、どの装置が私設網に接続されているか判断することができる。それらの公衆網アドレスは、その全体または一部が一致しているか、あるいは一致していない場合でも関係している可能性がある。たとえば、サーバー３４は、２つの装置の公衆網アドレスが一致していれば、その２つの装置が同じ私設網に接続されていると判断することができる。別の例において、サーバー３４は、２つの装置の公衆網アドレスが同じサブネットアドレスを有している場合、その２つの装置が同じ私設網に接続していると判断することができる。サーバー３４は、どの公衆網アドレスが各種私設網と関連づけられているかについての情報を与えるルックアップテーブルまたはその他の装置を備えることもできる。そのルックアップテーブルまたはその他の機構を利用することにより、サーバー３４は、受信した公衆網アドレスから各装置が同じ私設網に接続されているか判断することができる。
【００４３】
システム１０は、エンドポイント装置１８の私設網アドレスをブラウザアプリケーション１４に与える（３０８）ことにより、ブラウザアプリケーション１４とアプリケーション２２間のネットワーク接続を容易にすることもできる。上述のように、ブラウザアプリケーション１４とアプリケーション２２は、Ｗｅｂブラウザ１６のセキュリティによって通信が妨げられることにより、互いに接続し、または通信することができない可能性がある。たとえば、Ｗｅｂブラウザ１６のセキュリティにより、ブラウザアプリケーション１４が私設網２４上で自らの存在をブロードキャストすることが妨げられる場合がある。同様に、Ｗｅｂブラウザ１６のセキュリティにより、ブラウザアプリケーション１４がアプリケーション２２からブロードキャストを受信することが妨げられる場合がある。
【００４４】
しかし、ブラウザアプリケーション１４がエンドポイント装置１８の私設網アドレスを知っていれば、ブラウザアプリケーション１４がアプリケーション２２と直接通信できる可能性がある。エンドポイント装置１８の私設網アドレスをブラウザアプリケーション１４に与えることにより、システムは、Ｗｅｂブラウザ１６のセキュリティポリシーに変更を加え、ブラウザアプリケーション１４とアプリケーション２２間の通信を可能にすることができる。
【００４５】
いくつかの実施形態において、アドレス登録プロセス３６および／またはサーバー３４は、アプリケーション２２とブラウザアプリケーション１４が機能的に適合したアプリケーションである場合にのみ、ブラウザアプリケーション１４にエンドポイント装置１８の私設網アドレスを与える。たとえば、ブラウザアプリケーション１４がゲームアプリケーションであり、アプリケーション２２がそのゲームのためのコントローラアプリケーションであるとアドレス登録プロセス３６が判断した場合、アドレス登録プロセス３６は、アプリケーション２２とブラウザアプリケーション１４が適合アプリケーションであると判断し、ブラウザアプリケーション１４にエンドポイント装置１８の私設網アドレスを送信して、ブラウザアプリケーション１４とアプリケーション２２が互いに通信できるようにすることができる。しかし、ブラウザアプリケーション１４とアプリケーション２２が機能的に適合していない場合には、アドレス登録プロセスは、ブラウザアプリケーション１４に私設網アドレスを送信しなくともよい。たとえば、ブラウザアプリケーション１４がビデオゲームであっても、アプリケーション２２が絵を描くためのアプリケーションであれば、その２つは適合しない可能性が高い。その場合、ブラウザアプリケーション１４とアプリケーション２２間の通信を開始するためにエンドポイント装置１８の私設網アドレスをブラウザアプリケーション１４に送信する必要はない。
【００４６】
アドレス登録プロセス３６は、アプリケーションが機能的に適合しているかどうかをさまざまな方法で判定する（３１０）ことができる。一実施形態において、アドレス登録プロセス３６は、アプリケーション２２およびブラウザアプリケーション１４から受信したアプリケーションＩＤを比較することができる。それらのアプリケーションＩＤにより、２つのアプリケーションが適合することが示されていれば、アドレス登録プロセスは、ブラウザアプリケーション１４にエンドポイント装置１８の私設網アドレスを与える（３０８）ことができる。たとえば、２つのアプリケーションＩＤが一致していれば、アプリケーションＩＤによってアプリケーションの適合が確認されることになる。他の実施形態において、２つが他の何らかの形で関連付けられている場合、それらのアプリケーションＩＤによって適合性が示されることもある。たとえば、アドレス登録プロセス３６は、機能的に適合したアプリケーションＩＤをリンクするものとして、アプリケーションＩＤのルックアップテーブルまたはハッシュテーブルを保持することができる。
【００４７】
アプリケーションＩＤは、任意の一意の識別子であってよく、アプリケーションおよび／またはそのバージョン番号を表すコード、アプリケーションの名前などの情報を含むことができる。その逆も成立しえる。
【００４８】
いくつかの実施形態において、アドレス登録プロセス３６は、さまざまな方法でブラウザアプリケーション１４に私設網アドレスを与える（３０８）ことができる。１つの実施形態において、ブラウザアプリケーション１４は、アドレス登録プロセス３６を定期的にポーリングし、アドレスを返すように求めることができる。その要求を受信したアドレス登録プロセス３６は、適合アプリケーションを実行しており、かつ私設網２４に接続しているすべてのエンドポイント装置の私設網アドレスのリストをブラウザアプリケーション１４に送信することができる。別の実施形態において、アドレス登録プロセス３６は、適合アプリケーションを実行しており、かつ私設網２４に接続しているエンドポイント装置がアドレス登録プロセス３６に登録されている場合には必ずブラウザアプリケーション１４にエンドポイント装置の私設網アドレスを送信する。さらに別の実施形態では、アドレス登録プロセス３６が私設網アドレスのリストを定期的にブロードキャストし、適切な時点でブラウザアプリケーション１４がそれを取り出せるようにすることができる。ブラウザアプリケーション１４に私設網アドレスを与える（３０８）上記以外の方式を用いることもできる。
【００４９】
Ｗｅｂブラウザ１６のセキュリティによってブラウザアプリケーション１４とアプリケーション２２間の通信が妨げられる場合、本システムは、通信を可能にするようにＷｅｂブラウザ１６のセキュリティポリシーを変更する（３１２）ことができる。たとえば、エンドポイント装置１８は、ホスト装置１２にポリシーファイルを送信する（３１４）ことができる。
【００５０】
図３および図４に示す一実施形態において、エンドポイント装置１８は、Ｗｅｂサーバーを介してポリシーファイルを送るという方法でホスト装置１２にポリシーファイル４０６を送信する（３１４）ことができる。エンドポイント装置１８はＷｅｂサーバーアプリケーションを実行することができ、そのＷｅｂサーバーアプリケーションは、アプリケーション２２に組み込まれているか、あるいはスタンドアロン型または既製のＷｅｂサーバーアプリケーションであってもよい。典型例な既製Ｗｅｂサーバーアプリケーションには、Ａｐａｃｈｅ（登録商標）  Ｗｅｂサーバー、Ｍｉｃｒｏｓｏｆｔ  ＩＩＳ（登録商標）  Ｗｅｂサーバーなどが含まれる。当業者によって認識されるように、エンドポイント装置２０またはサーバー３４など、上記以外の装置もＷｅｂサーバーアプリケーションを実行して、ホスト装置１２にポリシーファイル４０６を送信する（３１４）ことができる。
【００５１】
エンドポイント装置１８の私設網アドレスを受信したブラウザアプリケーション１４は、エンドポイント装置１８上で実行中のＷｅｂサーバーにアクセスし、ポリシーファイル４０６をダウンロードすることができる。典型的には、ポリシーファイルは当技術分野で知られているものである。この例において、ポリシーファイル４０６には、Ｗｅｂブラウザ１６に関する新しいセキュリティポリシーまたはブラウザアプリケーション１４とアプリケーション２２間の通信を可能にするＷｅｂブラウザ１６のセキュリティポリシー変更情報が入っている。ブラウザアプリケーション１４は、ポリシーファイル４０６を受信すると、そのポリシーファイルをＷｅｂブラウザ１６のセキュリティポリシーに適用して、当該の通信を可能にすることができる。
【００５２】
別の実施形態において、ＨＴＭＬ５ハンドシェイクを通じてＷｅｂブラウザ１６のセキュリティポリシーを変更する（３１２）ことができる。典型的には、ＨＴＭＬ５ハンドシェイクは当技術分野で知られているものである。この場合、アプリケーション２２およびブラウザアプリケーション１４は、Ｗｅｂブラウザ１６のセキュリティプロファイルに変更を加えてブラウザアプリケーション１４とアプリケーション２２間の通信を可能にする目的で、ＨＴＭＬ５ハンドシェイクを実行することができる。
【００５３】
ブラウザアプリケーション１４とアプリケーション２２は、ネットワーク通信を確立したあと、片方向通信、双方向通信、またはその両方を開始することができる。たとえば、ブラウザアプリケーション１４はアプリケーション２２にデータおよび／または命令を送信することができ、その逆も可能である。そのデータおよび／または命令は、２つのアプリケーション間の通信のための任意の種類のデータまたは命令である。たとえば、そのデータおよび／または命令には、損失耐性のあるデータ（音声または動画ストリームなど）および損失の影響が大きいデータ（コマンドまたは制御データなど）が含まれうる。それらのデータおよび命令は、アプリケーション２２からブラウザアプリケーション１４に、ブラウザアプリケーション１４からアプリケーション２２に、またはその両方向に流れる。いくつかの実施形態では、そのデータにゲームデータが含まれる。たとえば、Ｗｅｂブラウザアプリケーション１４がゲームであり、アプリケーション２２がゲームコントローラアプリケーションである場合、Ｗｅｂブラウザ１４は、ブラウザアプリケーション１４がどのような種類のゲームデータおよび命令を予期しているかアプリケーション２２に知らせるためのデータをアプリケーション２２に送信することができる。このようにして、ブラウザアプリケーション１４および／またはアプリケーション２２は、双方向に送信されるデータの種類をカスタマイズすることができる。
【００５４】
上記の説明では単一のエンドポイント装置、単一のホスト装置、および単一のサーバーという例を示しているが、当業者によって認識されるように、単一または複数の装置を利用する任意の組み合わせが可能である。単一または複数のエンドポイント装置、単一または複数のホスト装置、単一または複数のアドレス登録サーバー装置の任意の組み合わせが本発明の範囲に含まれうる。たとえば、複数のエンドポイント装置を単一のホスト装置に接続すること、単一のエンドポイント装置を単一のホスト装置に接続すること、単一または複数のホストおよび／またはエンドポイント装置が単一または複数のアドレス登録サーバー装置と通信することなどが可能である。それ以外の組み合わせも本発明の範囲に含まれる。
【００５５】
ゲーム例
以下の例は本発明の一実施形態を示す。本発明の動作を例示するためにビデオゲームアプリケーションを用いている。
【００５６】
この例における架空のプレイヤーは、Ｗｅｂブラウザ内でビデオゲームをプレイし、そのゲームを制御するためのゲームコントローラとしてスマートフォンを使用したいと考えている。ホスト装置１２はすでに私設網２４に接続しているため、プレイヤーは、Ｗｅｂブラウザ１６を開き、自分が選択したビデオゲームをホスティングするＷｅｂサイトに接続させる。この例におけるビデオゲームは、ＦＬＡＳＨブラウザアプリケーションである。Ｗｅｂブラウザ１６は、そのゲームアプリケーションをダウンロードした後、Ｗｅｂブラウザ１６内でそのゲームの実行を開始する。しかし、Ｗｅｂブラウザ１６が有するセキュリティポリシーは、そのゲームが私設網２４に接続された他の装置を発見すること、または私設網２４を介して自らの存在をブロードキャストすることを制限している。したがって、プレイヤーのスマートフォンをゲームコントローラとして使用するためには、その前に特定の操作が必要とされる。
【００５７】
そのゲームはロード後にメッセージを送信し、自らの存在をサーバー３４に登録する。そのメッセージには、ホスト装置１２の公衆網アドレスおよびそのゲームのアプリケーションＩＤが含まれる。そのアプリケーションＩＤによってサーバー３４はゲームが実行中であることを認識し、公衆網アドレスによってホスト装置１２が私設網２４に接続されていることを認識する。
【００５８】
次に、プレイヤーは自分のスマートフォン（すなわちエンドポイント装置１８）を手に取り、そのゲーム用のゲームコントローラアプリケーション（すなわちアプリケーション２２）をインターネットからダウンロードする。プレイヤーのスマートフォンは私設網２４にも接続しており、自分の私設網アドレスをすでに受け取っている。プレイヤーがゲームコントローラアプリケーションをロードすると、そのゲームコントローラアプリケーションは、スマートフォンの公衆網アドレスおよび私設網アドレスとともにそのゲームコントローラアプリケーションのアプリケーションＩＤが入っている通信をサーバー３４に送る。そのアプリケーションＩＤによってサーバー３４はどのゲームコントローラアプリケーションが実行中であるかを認識し、公衆網アドレスによってスマートフォンが私設網２４に接続されていることを認識する。
【００５９】
それらの通信の受信後、サーバー３４は、受け取った公衆網アドレスおよびアプリケーションＩＤに基づいて、ゲームコントローラとゲームアプリケーションが機能的に適合しており、また、ホスト装置１２とスマートフォンが同じローカルネットワークに接続しているという判定を行うことができる。そのような判定がなされた場合、サーバー３４は、スマートフォンの私設網アドレスをゲームアプリケーションに与え、ゲームとゲームコントローラアプリケーション間の通信を容易にすることができる。
【００６０】
必要ならば、ゲームアプリケーションおよび／またはゲームコントローラアプリケーションは、アプリケーション間のネットワーク通信を可能にする目的でＷｅｂブラウザのセキュリティポリシーに変更を加えることができる。たとえば、スマートフォンまたは他の装置は、ポリシーファイルを与えるか、またはＨＴＭＬ５ハンドシェイクを開始して、Ｗｅｂブラウザ１６のセキュリティプロファイルを変更することができる。
【００６１】
続いてゲームアプリケーションとゲームコントローラアプリケーションは、たとえば、１つ以上のソケット接続を開くことにより、互いにネットワーク通信を確立することができる。ネットワークを介してアプリケーションが接続すると、プレイヤーは、自分のスマートフォンで実行中のゲームコントローラアプリケーションを使用して、Ｗｅｂブラウザ内で実行中のゲームを制御およびプレイすることができる。次にゲームコントローラアプリケーションとゲームアプリケーションは、ゲーム制御データ、映像データ、音声データ、ボタン押下データ、加速度計データなどのデータを相互間でやりとりすることができる。
【００６２】
システムおよび方法の動作
以下の例は、本発明のいくつかの実施形態の動作を示す。ブラウザアプリケーション１４は、ホスト装置１２において実行中のＷｅｂブラウザ１６の内部で動作しているブラウザアプリケーションである。ブラウザアプリケーション１４は、ホスト装置１２の公衆網アドレスとともにサーバー３４に通信を送る。
【００６３】
アプリケーション２２は、ブラウザアプリケーション１４と通信して、ブラウザアプリケーション１４の表示内容を制御するアプリケーションであり、エンドポイント装置１８上で実行されている。アプリケーション２２は、エンドポイント装置１８の公衆網アドレスおよび私設網アドレスとともにサーバー３４に通信を送ることができる。
【００６４】
サーバー３４は、アプリケーション２２とブラウザアプリケーション１４が同じローカルネットワークに接続された装置上で実行されている、機能的に適合したアプリケーションであるという判定を行うことができる。そのように判定された場合、サーバー３４は、エンドポイント１８の私設網アドレスをブラウザアプリケーション１４に送信して、２つのアプリケーション間の接続を容易にすることができる。
【００６５】
続いてブラウザアプリケーション１４とアプリケーション２２は、私設網２４を介して互いに通信することができ、また、Ｗｅｂブラウザ１６のセキュリティポリシーに変更を加え、ブラウザアプリケーション１４とアプリケーション２２間の双方向通信を可能にすることができる。
【００６６】
本開示では、さまざまなブロック図およびフローチャートに言及している。当業者によって認識されるように、これらのブロック図内の構成要素およびフローチャート内のステップの順序および構成は限定要件ではなく、例示のみを目的としたものである。コンポーネントおよび装置の各種の適切な構成および実行動作のさまざまな順序およびシーケンスが本願請求項の範囲に含まれうる。
【００６７】
以上、本発明をその具体的な実施形態に関連して説明したが、当然ながら、さらなる改変が可能である。また、本願は、本発明が関係する技術分野における既知の方法または慣行のような本開示からの逸脱を含め、本発明のあらゆる変形、使用または翻案を包含することを意図している。
【図１】
2013521584.tif 000003
【図２】
2013521584.tif 000004
【図３】
2013521584.tif 000005
【図４】
2013521584.tif 000006
【国際調査報告】
2013521584.tif 000007