(57)【要約】  制御サーバ（６）を備える同じネットワーク（２）に接続されているクライアント（１ａ〜１ｄ）を識別して、クライアントを接続するための方法およびシステム（５）において、ウェブブラウザアプリケーション（４ａ〜４ｄ）を動作させている第１のクライアント（１ａ〜１ｄ）を制御サーバに接続して、第１のクライアントに関係するクライアント特有の接続情報を登録することと、制御サーバにより規定され、第２のクライアント（１ａ〜１ｄ）に関係する一意的なＵＲＩに対する要求を、ウェブブラウザアプリケーションから受信することと、一意的なＵＲＩに関係する第２のクライアントへの接続を仲介するように、制御サーバに要求することと、直接的な接続において、第２のクライアントからデータを受信して、受信データをグラフィカルユーザインターフェース中に表示するために、ウェブブラウザアプリケーションにデータを転送することを実施する。【選択図】    図２
2011517867.tif 000002
【特許請求の範囲】
【請求項１】
制御サーバを備える同じネットワークに接続されているクライアントを識別して、クライアントを接続するための方法において、
アプリケーションを動作させている第１のクライアントを前記制御サーバに接続して、前記第１のクライアントに関係するクライアント特有の接続情報を登録するステップと、
前記制御サーバにより規定され、第２のクライアントに関係する一意的なＵＲＩに対する要求を、前記アプリケーションから受信するステップと、
前記一意的なＵＲＩに関係する前記第２のクライアントへの接続を仲介するように、前記制御サーバに要求するステップと、
前記第２のクライアントに関係する接続情報を受信するステップと、
前記第２のクライアントに関係する接続情報を使用することにより、前記第２のクライアントへの直接的な接続を確立し、この接続の確立は前記制御サーバにより仲介されるステップと、
前記直接的な接続において、前記第２のクライアントからデータを受信して、前記受信したデータをグラフィカルユーザインターフェース中に表示するために、前記アプリケーションに前記データを転送するステップとを含む方法。
【請求項２】
前記アプリケーションは、ウェブブラウザアプリケーションである請求項１記載の方法。
【請求項３】
前記ステップは、前記ウェブブラウザアプリケーション中にインストールされているプラグインにより実行される請求項２記載の方法。
【請求項４】
前記方法は、前記アプリケーションと対話するように適合されているＡＰＩを備えるオペレーティングシステム中に埋め込まれている請求項１記載の方法。
【請求項５】
ドメイン名システムのインフラストラクチャを使用して、前記ＵＲＩを解明することができる以前の請求項のうちのいずれかに記載の方法。
【請求項６】
前記直接的な接続を確立するステップにおける前記第１および第２のクライアントは、前記制御サーバにより仲介されるＴＣＰまたはＵＤＰのホールパンチングを使用して、通信のための直接的な接続を確立する以前の請求項のうちのいずれかに記載の方法。
【請求項７】
前記制御サーバに登録されている、各クライアントに対する前記接続情報は、ＩＰアドレスとポート番号とを含む以前の請求項のうちのいずれかに記載の方法。
【請求項８】
前記第２のクライアントが、前記第１のクライアントからの到来要求が向けられるウェブサーバを備える以前の請求項のうちのいずれかに記載の方法。
【請求項９】
クライアントサブ制御装置として指定されている、１つまたは複数のレベルのクライアントに、前記制御サーバの前記接続仲介が分散される以前の請求項のうちのいずれかに記載の方法。
【請求項１０】
前記ウェブブラウザアプリケーションが、埋め込まれているウェブページアプリケーションを備えるウェブページを最初に受信する、初期のステップをさらに含み、後続するステップは、前記埋め込まれているウェブページアプリケーションにより実行される請求項２記載の方法。
【請求項１１】
前記制御サーバに接続されている前記クライアントに関係する一意的なＵＲＩを含む、アクセス可能なクライアントの情報を、前記制御サーバから受信するステップと、
前記グラフィカルユーザインターフェース中に前記情報を表示するために、前記第１のクライアント上で動作しているアプリケーションに、前記情報を転送するステップとをさらに含む以前の請求項のうちのいずれかに記載の方法。
【請求項１２】
制御サーバを備える同じネットワークに接続されているクライアントを識別して、クライアントを接続するためのシステムにおいて、
第１のクライアントが前記制御サーバに接続して、前記第１のクライアントに関係するクライアント特有の接続情報を登録し、
第２のクライアントが前記制御サーバに接続して、前記第２のクライアントに関係するクライアント特有の接続情報を登録し、
前記第２のクライアントには、一意的なＵＲＩが割り当てられ、
前記第１のクライアント上で動作しているアプリケーションにより要求された、前記一意的なＵＲＩに関係する前記第２のクライアントへの接続を仲介するように、前記制御サーバが要求され、
前記制御サーバは、前記第２のクライアントに関係する接続情報を前記第１のクライアントに転送し、前記第１のクライアントに関係する接続情報を前記第２のクライアントに転送し、
前記制御サーバは、前記第１のクライアントと前記第２のクライアントとの間の直接的な接続の確立を仲介し、
前記第１のクライアントが前記第２のクライアントからデータを受信し、前記データは、前記アプリケーションに転送されて、グラフィカルユーザインターフェース中に表示されるシステム。
【請求項１３】
前記アプリケーションは、ウェブブラウザアプリケーションである請求項１２記載のシステム。
【請求項１４】
前記ウェブブラウザアプリケーションは、プラグインを備え、前記プラグインは、前記制御サーバおよび前記第２のクライアントと通信する請求項１３記載のシステム。
【請求項１５】
オペレーティングシステムが、前記アプリケーションと対話するように適合されているＡＰＩを備える請求項１２記載のシステム。
【請求項１６】
ドメイン名システムのインフラストラクチャを使用して、前記ＵＲＩを解明することができる以前の請求項のうちのいずれかに記載のシステム。
【請求項１７】
前記制御サーバにより仲介されるＴＣＰまたはＵＤＰのホールパンチングを使用することにより、前記第１のクライアントと第２のクライアントとの間の前記直接的な接続が確立される以前の請求項のうちのいずれかに記載のシステム。
【請求項１８】
前記制御サーバに登録されている前記接続情報は、ＩＰアドレスとポート番号とを含む以前の請求項のうちのいずれかに記載のシステム。
【請求項１９】
前記第２のクライアントが、前記第１のクライアントからの到来要求が向けられるウェブサーバを備える以前の請求項のうちのいずれかに記載のシステム。
【請求項２０】
クライアントサブ制御装置として指定されている、１つまたは複数のレベルのクライアントに、前記制御サーバの前記接続仲介が分散される以前の請求項のうちのいずれかに記載のシステム。
【請求項２１】
前記システムのメディエータウェブサービスにより前記第１のクライアントに提供されるウェブページ中に含まれる、埋め込まれているウェブアプリケーションを通して、前記第１のクライアントが前記システムに接続する請求項１２記載のシステム。
【請求項２２】
少なくとも前記第１のクライアントが、
前記制御サーバに接続されている前記クライアントに関係する一意的なＵＲＩを含む、アクセス可能なクライアントの情報を、前記制御サーバから受信し、
前記グラフィカルユーザインターフェース中に前記情報を表示するために、前記第１のクライアント上で動作しているウェブブラウザアプリケーションに、前記情報を転送する以前の請求項のうちのいずれかに記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御サーバを使用することにより、インターネットのような同じネットワークに接続されているクライアントを識別して、クライアントを接続するための方法およびシステムに関する。
【背景】
【０００２】
インターネット上の通信の大部分は、パーソナルコンピュータのようなクライアント上で動作しているウェブブラウザに基づいている。ウェブブラウザは、ピクチャおよびＪａｖａ（登録商標）アプレットを含むＨＴＭＬページのような、インターネット上のサーバから提供される情報を単に解釈して、コンピュータスクリーンのようなグラフィカルユーザインターフェース中にコンテンツを表示する。インターネットユーザは、ウェブブラウザを使用することに非常に慣れ親しんでおり、それゆえ、アプリケーションとしてのウェブブラウザは、インターネット上で利用可能にされているコンテンツへのアクセスを提供するために、非常に重要なツールである。ウェブブラウザが人気があることから、この一般に普及したアプリケーションを、インターネット上で利用可能にされているコンテンツおよび情報にアクセスするのにさらに適したものにするために、ＦＴＰファイル転送およびＲＳＳフィードの読み込みのような特徴を含めるようにウェブブラウザの機能性が拡張されている。
【０００３】
しかしながら、ウェブブラウザでコンテンツおよび情報にアクセスするためには、所望のコンテンツまたは情報が、ウェブサービスを提供するように適合されている中央ウェブサーバ上で利用可能にされていなければならない。すべてのインターネットユーザにコンテンツを利用可能にさせるウェブサーバにコンテンツをアップロードするための複数のサービスが存在し、コンテンツおよび情報のプライベートな共有を提供するウェブベースのサービスさえも存在する。ウェブサーバにコンテンツをアップロードすることにより、デジタルピクチャおよびビデオクリップのようなコンテンツを他の信用されているインターネットユーザと共有することは、たいていのユーザにより単調で退屈であると考えられ、難しいタスクであるとさえ考えるユーザもいる。さらに難しい他の１つの解決策は、ウェブサーバまたはＦＴＰサーバのような、コンテンツを共有するためのプライベートサーバをセットアップすることである。
【０００４】
代替的なアプローチとして考えることができる、インターネットに接続されているクライアントを直接的に接続することにおける難点は、インターネットに接続されているクライアントのうちのほんの少数のみが固定のＩＰアドレスを有しているという事実と、保護されていないシステムに対してインターネットの敵対的な性質があることから、たいていのユーザがファイアーウォールの後ろに存在していることである。したがって、インターネットに接続されているプライベートクライアントは、コンテンツおよび情報の共有に関して、実質的にインターネットの一部ではない。このようなクライアントは、単に、受動的なクライアントである。受動的なクライアントは、他のユーザと直接的にコンテンツを共有することができず、さらに、平均的な一般のユーザにとって簡単な方法では、インターネットの他のユーザにより、受動的なクライアントを見ることも、受動的なクライアントに到達することもできない。したがって、これらの通常不可視で受動的なクライアントを含むようにインターネットを拡張することについて、とてつもない可能性がある。
【０００５】
デジタル写真およびビデオのようなコンテンツを共有するために、インターネットのインフラストラクチャに接続されているクライアント間に、より良く、より透明性の高い接続性を提供するように、複数の試みがなされている。
【０００６】
ＵＳ第２００６／０２２４７５９号は、ウェブページプラグインを使用することにより、ピア・ツー・ピアストリーミングを提供するための方法およびシステムを開示している。ウェブページプラグインは、ピア・ツー・ピアネットワーク内でストリーミングされるコンテンツを表示するように、ウェブブラウザの機能性を拡張させる。しかしながら、ストリーミングされるコンテンツのソースは、個人のピアから発生しているのではなく、中央記憶装置ならびに／あるいはビデオおよびオーディオの取り込み手段を持つ、ストリーミングサーバ中に記憶されているか、または、そうしたストリーミングサーバから提供されている。制御サーバはピアリストを維持し、ピアリストは、ピアがネットワークに接続するたびに更新される。ピアが、ストリーミングサーバからのコンテンツをストリーミングしているとき、ストリーミングされたコンテンツをキャッシュまたは一時的に記憶するように、ピアを構成することができる。その後、このコンテンツは、ストリーミングサーバ上の負荷を減少させるために、他のピアに分散されてもよい。
【０００７】
ＵＳ第２００５／０２２９２４３号では、ファイアーウォールの後ろに位置するピアサーバへのｈｔｔｐアクセスをするウェブブラウザが動作しているピアを提供するための方法およびシステムを開示している。開示は、ピア・ツー・ピアネットワーク中に中央プロキシサーバを提供することを含んでいる。サーバピアは、この中央プロキシサーバにアウトバウンドソケット接続を登録する。中央プロキシサーバは、ピアのウェブブラウザからの到来ｈｔｔｐ要求を取り扱って、要求を要求パケットに翻訳する。要求パケットは、登録されているアウトバウンドソケット接続を使用して、ピアサーバに送られる。ピアサーバからの応答は、汎用ウェブトラフィックのフローを提供するために、ＨＴＴＰ要求に翻訳される。
【概要】
【０００８】
上記背景において概略を述べたように、同じネットワークに接続されているクライアントを識別して、クライアントを接続するための方法およびシステムを提供することが、本発明の一般的な目的である。
【０００９】
このことを達成するために、以下の説明から明らかであるように、次のステップを実行する、本発明の第１の側面にしたがった方法を提供する。
【００１０】
ウェブブラウザアプリケーションを動作させている第１のクライアントを制御サーバに接続して、第１のクライアントに関係するクライアント特有の接続情報を登録するステップと、
制御サーバにより規定され、第２のクライアントに関係する一意的なＵＲＩに対する要求を、ウェブブラウザアプリケーションから受信するステップと、
一意的なＵＲＩに関係する第２のクライアントへの接続を仲介するように、制御サーバに要求するステップと、
第２のクライアントに関係する接続情報を受信するステップと、
第２のクライアントに関係する接続情報を使用することにより、第２のクライアントへの直接的な接続を確立し、この接続の確立は制御サーバにより仲介されるステップと、
直接的な接続において、第２のクライアントからデータを受信して、受信したデータをグラフィカルユーザインターフェース中に表示するために、ウェブブラウザアプリケーションにデータを転送するステップである。
【００１１】
このことは、既存のインフラストラクチャを利用することにより、インターネットに接続されているクライアント間に、直接的な接続とその使用を提供する。したがって、既存のウェブブラウザを使用することにより、より多くのコンテンツに到達することができ、インターネットに接続されているコンピュータを有するユーザは、コンピュータ上にローカル的に記憶させているコンテンツへのアクセスを、他のコンピュータに容易に提供することができる。
【００１２】
さらに、本発明は、互いにコンテンツを共有するために、クライアントが、ユーザにより知られているＩＰアドレスを有する必要性をなくす。その理由は、クライアントが、互いを識別して接続するために、制御サーバにより割り当てられている一意的なＵＲＩを使用するからである。クライアントが１つのネットワークから別のネットワークに移動するかもしれないので、このことは、移動体環境において有益である。しかしながら、典型的なインターネットサービスプロバイダ（ＩＳＰ）が、ＤＨＣＰの使用によりユーザのＩＰアドレスを動的に変化させる、プライベートな消費者セットアップにおいても、このことは同様に有益である。
【００１３】
好ましい実用的な実施形態では、アプリケーションは、ウェブブラウザアプリケーションである。
【００１４】
好ましい実施形態では、本発明にしたがったステップは、ウェブブラウザアプリケーション中にインストールされているプラグインにより実行される。プラグインは、クライアント上に既にインストールされているウェブブラウザアプリケーションに、本発明により提供される新しい機能性を追加するための非常に簡単な方法である。このことにより、マイクロソフト（登録商標）のインターネットエクスプローラ（登録商標）用の非同期プラグ可能なプロトコルのような、既存の技術を利用することが可能になる。この非同期プラグ可能なプロトコルは、クライアント間に直接的な通信を確立するための新しいプロトコルの名前空間中にあるすべてのＵＲＩを取り扱うために、ブラウザ中に登録される。
【００１５】
本発明の別の好ましい実用的な実施形態では、方法は、アプリケーションと対話するように適合されているＡＰＩを備えるオペレーティングシステム中またはライブラリ中に埋め込まれる。
【００１６】
使用において非常に実用的であるようにも示されている、本発明の別の好ましい実用的な実施形態では、ドメイン名システムのインフラストラクチャを使用して、ＵＲＩを解明することができる。したがって、制御サーバの、ネットワーク上のロケーションを識別するために、ＵＲＩを使用することができる。
【００１７】
特定の好ましい実施形態では、直接的な接続を確立するステップにおける第１および第２のクライアントは、制御サーバにより仲介されるＴＣＰまたはＵＤＰのホールパンチングを使用して、通信のための直接的な接続を確立する。
【００１８】
クライアント間に直接的な通信を確立するためには、このことが、非常に信頼性が高く、効率的な方法であるように示されている。このことは、さらに、システムのサーバ上の負荷を制限する。
【００１９】
実用的な実施形態では、制御サーバに登録されている、各クライアントに対する接続情報は、ＩＰアドレスとポート番号とを含む。
【００２０】
実現するのが特に容易であるように示されている実施形態では、第２のクライアントが、第１のクライアントからの到来要求が向けられるウェブサーバを備えている。
【００２１】
本発明の別の実施形態では、クライアントサブ制御装置として指定されている、１つまたは複数のレベルのクライアントに、制御サーバの接続仲介が分散される。
【００２２】
別の実施形態では、ウェブブラウザアプリケーションが、埋め込まれているウェブページアプリケーションを備えるウェブページを最初に受信して、その後のステップは、埋め込まれているウェブページアプリケーションにより実行される。
【００２３】
この方法では、互いに接続しているクライアントを改良することなく、または、それらのクライアント上に付加的なソフトウェアをインストールすることなく、本発明にしたがった方法を実現することが可能である。単に、ウェブページのフレーム中で方法を実行し、クライアントにおいては、ローカル的に何も変化しない。このことは、限られた記憶容量および記憶装置を持つ、移動体電話機およびパーソナルデジタルアシスタントのような、ポータブルクライアントに対して、または、クライアントが別のクライアントに初めて接続するときに、特に有用である。
【００２４】
本発明の別の側面では、方法は、
制御サーバに接続されているクライアントに関係する一意的なＵＲＩを含む、アクセス可能なクライアントの情報を、制御サーバから受信するステップと、
グラフィカルユーザインターフェース中に情報を表示するために、第１のクライアント上で動作しているウェブブラウザアプリケーションに、情報を転送するステップとをさらに含む。
【００２５】
この方法では、知られているどのクライアントが利用可能であるかについての全体像を得ることが可能であり、ウェブブラウザアプリケーションを使用して、知られているクライアントに容易にアクセスすることができる。
【００２６】
この方法の実現のために、本発明のさらなる側面にしたがうと、
第１のクライアントが制御サーバに接続して、第１のクライアントに関係するクライアント特有の接続情報を登録し、
第２のクライアントが制御サーバに接続して、第２のクライアントに関係するクライアント特有の接続情報を登録し、
第２のクライアントには、一意的なＵＲＩが割り当てられ、
第１のクライアント上で動作しているウェブブラウザアプリケーションにより要求された、一意的なＵＲＩに関係する第２のクライアントへの接続を仲介するように、制御サーバが要求され、
制御サーバは、第２のクライアントに関係する接続情報を第１のクライアントに転送し、第１のクライアントに関係する接続情報を第２のクライアントに転送し、
制御サーバは、第１のクライアントの間の直接的な接続の確立を仲介し、
第１のクライアントが第２のクライアントからデータを受信し、データは、ウェブブラウザアプリケーションに転送されて、グラフィカルユーザインターフェース中に表示されるシステムが提供される。
【００２７】
実用的な実施形態では、アプリケーションは、ウェブブラウザアプリケーションである。
【００２８】
好ましい実施形態では、少なくとも第１のクライアントのウェブブラウザアプリケーションは、プラグインを備え、プラグインは、制御サーバおよび第２のクライアントと通信する。
【００２９】
本発明にしたがった、システムの使用および方法の実現を容易にする、別の実用的な実施形態では、少なくとも１つのクライアントのオペレーティングシステムまたはライブラリが、アプリケーションと対話するように適合されているＡＰＩを備える。
【００３０】
実用的なかつ非常に有用な別の実施形態では、ドメイン名システムのインフラストラクチャを使用して、ＵＲＩを解明することができる。
【００３１】
本発明の実用的な実施形態では、制御サーバにより仲介されるＴＣＰまたはＵＤＰのホールパンチングを使用することにより、第１のクライアントと第２のクライアントとの間の直接的な接続が確立される。
【００３２】
本発明の別の実施形態では、制御サーバに登録されている接続情報は、ＩＰアドレスとポート番号とを含む。
【００３３】
本発明の別の実用的な実施形態では、第２のクライアントが、第１のクライアントからの到来要求が向けられるウェブサーバを備える。
【００３４】
本発明の実用的な実施形態では、システムのメディエータウェブサービスにより第１のクライアントに提供されるウェブページ中に含まれる、埋め込まれているウェブアプリケーションを通して、第１のクライアントがシステムに接続する。
【００３５】
本発明の別の実施形態では、クライアントサブ制御装置として指定されている、１つまたは複数のレベルのクライアントに、制御サーバの接続仲介が分散される。
【００３６】
本発明の別の実施形態では、少なくとも第１のクライアントが、制御サーバに接続されているクライアントに関係する一意的なＵＲＩを含む、アクセス可能なクライアントの情報を、制御サーバから受信し、
グラフィカルユーザインターフェース中に情報を表示するために、第１のクライアント上で動作しているウェブブラウザアプリケーションに、情報を転送する。
【図面の簡単な説明】
【００３７】
概略的な図面により図示しているように、好ましい実施形態によって、以下において本発明をさらに説明する。
【図１】図１は、インターネットに接続されている２つのクライアントを図示している。
【図２】図２は、本発明にしたがったシステムを示している。
【図３】図３は、図２の詳細を示している。
【図４】図４は、本発明の特定の実施形態を示している。
【詳細な説明】
【００３８】
図１は、インターネットのようなネットワーク２に接続されている２つのクライアント１ａ、１ｂを示している。クライアント１ａ、１ｂは、典型的に、インターネットサービスプロバイダ（ＩＳＰ）、あるいは、企業または研究機関のローカルエリアネットワーク（ＬＡＮ）を通して、インターネットに接続されている。図２で図示しているように、たいていのケースでは、このようなクライアントは、ファイアーウォール３ａ、３ｄの後ろに位置している。ファイアーウォール３ａ、３ｄは、ファイアーウォール３ａ、３ｄを通過するネットワークトラフィックを調べることにより、クライアント１ａ、１ｄを保護し、１組のルールに基づいて、パッセージを拒否または許可する。ファイアーウォール３ａ、３ｄは、典型的に、（示していない）ルータの後ろにセットアップされている。ルータは、小規模のプライベートネットワークを、または、例えばＬＡＮを、インターネットに接続する。このセットアップは、一般のユーザが、インターネットに接続されている他のクライアント１ａ〜１ｄにアクセスすることを難しくさせ、そのため、インターネットは、ある意味で、ネットワーク２内部に位置するクライアントまたはサーバに限定される。ネットワーク２内部に位置する（示していない）サーバおよびクライアントは、例えばウェブサーバである。ウェブサーバは、ＨＴＭＬページまたは他のデータ構造のようなウェブコンテンツをインターネットのユーザに提供する。ウェブサーバは、ピクチャおよびビデオといったリンク付けされたオブジェクトを有するＨＴＭＬ文書のようなウェブページによって、コンテンツまたはサービスがインターネットのユーザに利用可能にされるように、サーバまたはクライアント上で動作するアプリケーションとして理解することができる。
【００３９】
例えばウェブサーバによりインターネット上に提供されているコンテンツにアクセスして、閲覧するために、インターネットに接続されているたいていのクライアント１ａ〜１ｄには、ウェブブラウザアプリケーション４ａ〜４ｄが提供されている。このことは、パーソナルコンピュータのケースだけでなく、パーソナルデジタルアシスタントおよび移動体電話機のような、限られた処理能力を持つ移動体端末のケースでも同様である。
【００４０】
図２では、インターネットに接続されているクライアント１ａ〜１ｄに対して接続インフラストラクチャを提供する、本発明にしたがったシステム５を示している。クライアント１ａ〜１ｄは、インターネットに接続するために、異なるセットアップを使用している。クライアント１ａは、ファイアーウォール３ａの後ろに位置し、クライアント１ａがインターネット２に接続するたびに、例えばＩＳＰにより、クライアント１ａには異なるパブリックＩＰアドレスが提供される。したがって、クライアント１ａに接続するのに必要な情報は頻繁に変化し、さらに、クライアント１ａは、クライアント１ａへのアクセスを制御するファイアーウォール３ａの後ろに位置している。クライアント１ｂには静的なＩＰアドレスが提供され、クライアント１ｂは、ファイアーウォールの後ろに位置していない。このことは、他のクライアントのユーザがクライアント１ｂにアクセスすることを比較的容易にさせる。しかしながら、インターネットの平均的なユーザにとって、クライアントのＩＰアドレスを直接的に使用することにより別のクライアントにどのように接続するかは、明らかではない。クライアント１ｃも、ファイアーウォールにより保護されることなくインターネットに接続されているが、クライアント１ｂとは反対に、クライアント１ｃには動的なＩＰアドレスが提供されている。クライアント１ａに関して上記で記述したように、動的なＩＰアドレスは頻繁に変化する。クライアント１ｄは、インターネットにクライアント１ｄを接続するために使用される、さらに別の可能性あるセットアップである。クライアント１ｄは、ファイアーウォールの後ろに位置しているが、クライアント１ｄには静的なアドレスが提供されている。
【００４１】
クライアント１ａ〜１ｄは、インターネットにクライアントを接続するために使用されるセットアップにおける多様性を示し、さらに、２つのクライアント間での直接的な接続を確立するためには、異なる方法で各クライアントにアクセスしなければならないという事実を示している。本発明は、図２のシステム５を提供することにより、この問題を扱っている。図２のシステム５は、クライアント１ａ〜１ｄが、インターネット２に接続するためにどのセットアップを使用していても、クライアント１ａのようなクライアントのユーザが、別のクライアント１ｂ〜１ｄにアクセスすることを容易にする。さらに、本発明は、クライアント１ａ〜１ｄの２つのクライアント間に直接的な接続をセットアップするために、ＩＰアドレスおよびポート番号のような、異なるクライアント特有の接続情報を知っていることをユーザに要求することなく、クライアント間に接続を提供する。
【００４２】
図２で示しているように、本発明にしたがったシステムでは、他のクライアントと共有するためのコンテンツを有するクライアント１ａ〜１ｄのそれぞれに対して、システム５により一意的なＵＲＩが割り当てられる。好ましい実施形態では、共有するためのコンテンツを持つクライアントが、システム中に提供されている制御サーバ６に登録されるときに、このことが行われる。その後、共有するためのコンテンツを有するクライアント１ａ〜１ｄは、クライアント制御装置７ａ〜７ｃに関係付けられる。クライアント制御装置７ａ〜７ｃは、クライアントに割り当てられているＵＲＩを登録し、クライアント１ａ〜１ｄに関係するポート番号およびＩＰアドレスのような接続情報を取り扱う。さらに、下記でより詳細に記述するように、クライアント制御装置７ａ〜７ｃは、クライアント間の接続のセットアップも仲介する。制御サーバ６は、システム５への入口であり、各クライアント１ａ〜１ｄがどのクライアント制御装置７ａ〜７ｃに関係付けられているかを追跡している。原則では、制御サーバ６は、クライアント制御装置７ａ〜７ｃのタスクも取り扱うことができる。しかしながら、本発明の実用的な好ましい実施形態では、システム５には、複数のクライアント制御装置７ａ〜７ｃが提供されている。このことは、システム上の負荷を効率的にバランスさせるように示されている。図２のシステムは、メディエータウェブサービス８も備えている。その目的は、下記でより詳細に記述する。
【００４３】
例えば、クライアント１ｄが、クライアント１ａにより提供されているコンテンツにアクセスすることを望む場合に、クライアント１ｄ上で動作しているウェブブラウザアプリケーション４において、クライアント１ａに割り当てられている一意的なＵＲＩに対する要求がなされる。典型的に、クライアント１ａのユーザからのｅメールによって、または、インターネット上に位置するウェブサーバにあるウェブページ上のリンクを起動することによって、クライアント１ａに割り当てられている一意的なＵＲＩが、クライアント１ｄのユーザに提供される。このリンクは、クライアント１ａに割り当てられているＵＲＩを含む。要求されたＵＲＩは、制御サーバ６に転送される。制御サーバ６は、要求されたＵＲＩに関係する特定のクライアント１ａが、システムに接続しているかどうか、すなわち、クライアント制御装置７ａ〜７ｃに登録されているかどうかをチェックする。要求されたＵＲＩに関係するクライアント１ａが、システムおよびクライアント制御装置７ａ〜７ｃに接続している場合に、クライアント１ｄは、クライアント１ａを取り扱うクライアント制御装置７ａ〜７ｃに向けられる。クライアント制御装置７ａ〜７ｃは、ＵＲＩに対する要求とクライアント１ｄに関係する接続情報とをクライアント１ａに通信し、それに対応して、クライアント１ａに関係する接続情報をクライアント１ｄに送る。その後、クライアント１ａを取り扱うクライアント制御装置７ａ〜７ｃにより仲介される、ＴＣＰまたはＵＣＰのホールパンチを使用することにより、クライアント１ｄとクライアント１ａとの間に直接的な接続が確立される。ＴＣＰまたはＵＣＰのホールパンチは、当業者によく知られている技術であり、クライアント１ａ、１ｄがプライベートローカルネットワーク上のファイアーウォールの後ろに位置しているという問題を解決する。さらに、各クライアント１ａ〜１ｄは、起動時に、クライアント制御装置７ａ〜７ｃまたは制御サーバ６に登録されるので、他のクライアント１ａ〜１ｄにコンテンツを提供するクライアント１ａ〜１ｄを識別するために、システム５により割り当てられている一意的なＵＲＩによりクライアントを識別するときに、ＩＰアドレスの変更は問題を生じさせない。さらに、クライアント１ａ〜１ｄ間の直接的な接続およびデータの転送は、システムには中央プロキシサービスによる容量の制限がないという利点を有している。中央プロキシサービスは、代わりに、クライアント１ａ〜１ｄにより取り扱われ、それゆえ、システムに多くのユーザがいるケースにおいても問題にならない。直接的な接続が確立されているときに、クライアント１ｄと１ａは情報を交換することができる。情報は、クライアント１ｄのウェブブラウザアプリケーションに対してパーズされて、グラフィカルユーザインターフェース中に表示される。
【００４４】
システムのクライアント１ａ〜１ｄは、ＮＡＴによるＵＤＰの簡単な通過（ＳＴＵＮ）を使用することにより、クライアント１ａ〜１ｄのパブリックＩＰアドレスを取得することができる。ＳＴＵＮは、当業者によく知られているネットワークプロトコルであり、プライベートネットワーク上の複数のホストが、単一のパブリックＩＰアドレスを使用してインターネットにアクセスできるように、ルータの後ろにあるクライアントが、ＮＡＴ（ネットワークアドレス変換）を実施することを可能にするためのものである。例えば、この接続情報は、両方共にルータおよびファイアーウォールの後ろにある２つのホスト間に、ＵＤＰまたはＴＣＰの通信をセットアップするために使用される。したがって、クライアント１ａ〜１ｄに関係する実際の接続は２通りに分けられ、変換されたローカルＩＰアドレスおよびポート番号と、真のパブリックＩＰアドレスおよびポート番号との両方を含んでいる。ここで、変換されたローカルＩＰアドレスおよびポート番号は、同じローカルネットワーク上に位置する２つのクライアント１ａ〜１ｄ間に接続を提供するケースにおいて有用である。
【００４５】
好ましい実施形態では、クライアント１ａは、要求が転送されるウェブサーバを備え、ウェブサーバは、応答で要求に答える。応答は、クライアント１ｄに直接送られて、ウェブブラウザアプリケーションに転送され、グラフィカルユーザインターフェース中に表示される。応答は、例えば、デジタルピクチャを含むウェブページとすることができる。ウェブページは、２つのクライアント間に確立されている接続中に埋め込まれる。したがって、クライアント１ａに関係するＵＲＬを要求するユーザは、あたかも、インターネット２上に位置する従来のウェブサーバにおいてウェブページがホスト管理されているかのように、同じ応答を得るだろう。このことは、他のクライアントにコンテンツを提供するウェブサーバを備えているクライアント１ａ〜１ｄを含むように、インターネットの範囲を拡張させる。クライアント１ａ〜１ｄ上にインストールされているウェブサーバは、クライアント１ａ〜１ｄのオペレーティングシステム上で動作する簡単なアプリケーションとすることができ、２つのクライアント間に直接的な接続を確立するために、本発明にしたがった機能性を備えていてもよい。別の実施形態では、ウェブサーバは、別のアプリケーションとしてインストールされ、他のクライアントとの接続は、ウェブブラウザアプリケーションで提供される。
【００４６】
システム５内の実際の通信、すなわち、クライアント１ａ〜１ｄとサーバ６、７ａ〜７ｃとの間の通信、および、クライアント１ａ〜１ｄ間の直接的な通信は、従来のｈｔｔｐ／ＴＣＰ接続またはプロプライエタリプロトコルに基づくことができる。したがって、システム５中の実際のデータストリームは、必ずしも典型的なインターネットデータストリームである必要はなく、システム５によってのみ解釈されてもよい。
【００４７】
好ましい実施形態では、ウェブブラウザアプリケーション４ａ〜４ｄに対するプラグイン１０ａ〜１０ｄによって、本発明にしたがった方法が実現される。例えば、クライアント１ａ〜１ｄが、システム５により規定されているＵＲＩを最初に要求するときに、プラグイン１０ａ〜１０ｄをダウンロードして、インストールすることができる。プラグイン１０ａ〜１０ｄは、ウェブブラウザアプリケーション４ａ〜４ｄと、システム５と、システム５に接続されている他のクライアント１ｂ〜１ｄとの間で、メディエータとしてふるまう。これにより、プラグイン１０ａ〜１０ｄは、データストリームを解釈して、グラフィカルユーザインターフェース中に表示するために、あたかも、データストリームがインターネット上に位置するウェブサーバから送出されたかのように、ウェブブラウザアプリケーション４ａ〜４ｄにデータストリームを提供する。別のアプリケーションとして、または、クライアント１ａ〜１ｄのオペレーティングシステムの一体化された一部として、本発明にしたがった方法を実現することもできるのは明らかである。別のアプリケーション、または、クライアント１ａ〜１ｄのオペレーティングシステムの一体化された一部は、サーバ６、７ａ〜７ｃと、クライアント１ａ〜１ｄとの接続を取り扱って、グラフィカルユーザインターフェース中に表示するためのデータをウェブブラウザアプリケーション４ａ〜４ｄに提供する。好ましい実施形態では、ウェブブラウザプラグインは、非同期プラグ可能なプロトコル（ＡＰＰ）を使用することにより実現される。標準規格のインターネットプロトコル以外の他の接続スキームを使用してデータを取得するカスタムプロトコルを含むように、マイクロソフトのインターネットエクスプローラを拡張させることが、非同期プラグ可能なプロトコル（ＡＰＰ）によって可能になる。本発明にしたがった方法をオペレーティングシステム中で実現するときに、ウェブブラウザアプリケーションのようなアプリケーションによりなされる要求に対して、サポートを提供するように適合されている、オペレーティングシステムのアプリケーションプログラミングインターフェース（ＡＰＩ）またはライブラリがクライアントに提供される。したがって、クライアントのオペレーティングシステム中またはライブラリ中に、本発明にしたがった方法を埋め込むことが可能である。クライアントのオペレーティングシステムまたはライブラリは、システムの一部になって、システムに接続するための、ユーザの何らかの特別なタスクを不要にする。
【００４８】
図４で示している別の実施形態では、プラグイン１０ａ〜１０ｄまたはアプリケーションをクライアント１ｄ上にインストールすることは不可能である。そこで、埋め込まれているウェブアプリケーション１２を有するウェブページ１１によって、システム５とインターネットに接続されている他のクライアントとに到達する。クライアント１ｄのようなクライアントが、システム５により規定されているＵＲＬを訪れようと試みる場合に、２つ以上のフレーム（ＩＦｒａｍｅまたはＦｒａｍｅ）を有するフレームセット１３を備えるＨＴＭＬページ１１が、クライアント１ｄのウェブブラウザアプリケーション４ｄに提供される。フレームのうちの１つは、Ｊａｖａアプレット、アクティベックス（登録商標）、または、フラッシュ（登録商標）のような、埋め込まれているウェブアプリケーション１２を含んでいる。埋め込まれているウェブアプリケーション１２は、システム５と他のクライアント１ａ〜１ｄとに対する接続を提供する。したがって、システムと他のクライアント１ａ〜１ｄとに対する接続は、１つのフレーム１３ａにおいて実行され、他のクライアントにより提供されるコンテンツは、別のフレーム１３ｂ中に表示される。典型的に、このことは、メディエータウェブサービス８によって実現される。メディエータウェブサービス８は、クライアント１ｄにＨＴＭＬページ１１を提供し、埋め込まれているウェブアプリケーション１２と、システム５と、サーバ６、７ａ〜７ｃと、クライアント１ａ〜１ｃとの接続を仲介する。
【００４９】
好ましい実施形態では、システムは、システム５上の負荷をバランスさせるために、いくつかのサーバを具備するだろう。他のユーザにコンテンツを提供することを欲しているクライアント１ａ〜ｄが起動するときに、クライアント１ａ〜ｄは、それらのクライアント制御装置７ａ〜ｃのＩＰアドレスを知る必要がある。クライアント１ａ〜１ｄは、システム５により割り当てられ、規定されている、クライアント自身の一意的なＵＲＬのＩＰアドレスを解明する既存のドメイン名システム（ＤＮＳ）インフラストラクチャに尋ねることにより、このような情報を取得できる。ＤＮＳインフラストラクチャに対するこのような要求は、ある時点で、所定のサブドメインを担当する（示していない）ＤＮＳサーバに到達するだろう。（示していない）ＤＮＳサーバは、（示していない）専用のＤＮＳサーバのような、システム５中のサーバである。要求を受信したときに、ＤＮＳサーバは、どのクライアント制御装置７ａ〜７ｃが特定のクライアント１ａ〜１ｄに指定されているかを既に知っているか、または、ＤＮＳサーバは、クライアント１ａ〜１ｄを取り扱うための空いているクライアント制御装置７ａ〜ｃを見つけるだろう。その後、このクライアント制御装置７ａ〜ｃのＩＰアドレスが、クライアント１ａ〜１ｄに返答される。
【００５０】
システム５中の制御サーバ６のようなサーバに到達するためのＵＲＩ要求に対して、各クライアント１ａ〜ｄに割り当てられている一意的なＵＲＩの構造は、例えば、＜ｕｎｉｑｕｅｉｄ＞．＜ｓｕｂｄｏｍａｉｎ＞．＜ｄｏｍａｉｎ＞．ｃｏｍという形態とすることができる。サブドメインに区分することは、システム５のいくつかのサーバ上の負荷をバランスさせるために有用である。それぞれのサーバは、サブドメイン下で登録されている一意的なＵＲＩに対して、ＤＮＳサービスを提供する。このことは、さらに、ｍｙ．ｐｉｃｔｕｒｅａｌｂｕｍ．ｃｏｍのような標準のＤＮＳ名を使用することを欲しているインターネットの他のユーザにコンテンツを提供するクライアント１ａ〜１ｄのユーザが、システム５により提供されるＵＲＩへのアドレスを単に示すことができるという利点を有する。このように、クライアントのＤＮＳリゾルバは、ｍｙ．ｐｉｃｔｕｒｅａｌｂｕｍ．ｃｏｍのアドレスを自動的にＤＮＳインフラストラクチャに尋ねる。ｍｙ．ｐｉｃｔｕｒｅａｌｂｕｍ．ｃｏｍは、クライアント１ａ〜１ｄの一意的なＵＲＩ識別子に対する別名だろう。
【００５１】
記述したシステムにおいて生じうる問題は、制御サーバ６のリソースの枯渇である。クライアント制御装置７ａ〜７ｃのようないくつかのサーバに、制御サーバ上の負荷をバランスさせることができるとしても、ネットワークのサーバ６、７ａ〜７ｃに接続している数百万または数十億のクライアントは、莫大な量のアイドル接続になるだろう。このような、アイドルでオープンな接続の量は、最新のオペレーティングシステムにおいてさえ、容量の問題になる。したがって、好ましい実施形態では、アイドル接続は、スーパークライアントとして選択されている、ネットワーク中のクライアントに、オフロードされる。１つの解決策は、インターネットに対してオープンなクライアント、すなわち、ファイアーウォールまたは／およびＮＡＴに保護されていないクライアントにのみオフロードすることである。このことは、システム５に接続されているクライアントにより行われる作業の不適切な分配をもたらし、そのため、公平性の観点から問題視されるだろう。
【００５２】
それゆえ、システムの好ましい実施形態では、クライアント間で等しく作業をバランスさせている。クライアントをスーパークライアントに指定するための最も容易な方法は、スーパークライアントをアトランダムに選ぶことである。しかしながら、ネットワークトポロジの調査または事前の知識に基づいて、スーパークライアントを決定することも、適用可能であると示されている。ピアのうちのいくつかは、ファイアーウォールおよび／またはＮＡＴ、あるいは、他の障害物を持つ接続の後ろにあるので、解決策として、２つのレベルのＳ
ＴＵＮを使用する。
【００５３】
好ましい実施形態では、スーパークライアントは、ランダムに選ばれた、システム５に接続しているクライアント１ａ〜１ｄである。スーパークライアントが指定されると、スーパークライアントは、ＳＴＵＮ使用可能なサブクライアント制御装置（サブ制御装置）をクライアント上に作って開始する。クライアントメイン制御装置７ａ〜７ｃに接続する新しい通常のクライアントは、クライアントメイン制御装置７ａ〜７ｃを直接的に使用する代わりに、リダイレクトされて、スーパークライアント上のサブ制御装置をクライアント制御装置（クライアントサブ制御装置）として使用するだろう。クライアントサブ制御装置は、クライアントメイン制御装置７ａ〜７ｃに対するオープンな接続と、クライアントサブ制御装置に転送されるクライアントに対する接続とを常に維持するだろう。メイン制御装置７ａ〜７ｃに対する接続は、ＳＴＵＮ方法により、新しいクライアントの接続を転送し、クライアントメイン制御装置７ａ〜７ｃからクライアントサブ制御装置にリレーされる新しいクライアントの接続を開始するために使用される。クライアントサブ制御装置の接続されているクライアントのうちの１つにアドレス割り当てされているクライアントメイン制御装置７ａ〜７ｃから送られた、接続仲介データをリレーするためにも、クライアントメイン制御装置７ａ〜７ｃに対する接続が使用される。
【００５４】
ピア１ａが別のピア１ｂへの接続を要求するときに、ピア１ａは最初に７ａ〜７ｃに接続する。クライアントメイン制御装置は、１ｂに対する制御装置接続を維持している（示していない）スーパークライアントのクライアントサブ制御装置に、接続仲介要求を転送する。受け入れられると、仲介受諾要求が１ａに送り返される。そして、１ａと１ｂはＳＴＵＮ接続を開始することができる。別の方法では、クライアントサブ制御装置への接続を行うために、クライアント１ａがリダイレクトされる。クライアントサブ制御装置は、クライアント１ａと１ｂの両者と直接的に通信することにより、クライアント１ａと１ｂとの間の接続を仲介する。複数のレベルのクライアントサブ制御装置を導入することで、この実施形態をさらに拡張できることは明らかである。
【００５５】
スーパークライアントとして指定されている典型的なクライアント１ａ〜１ｄは、数百の、おそらく数千のアイドル接続を問題なく管理することができる。その理由は、クライアントが、クライアント制御装置に対する１つの接続のみを必要とするからである。
【００５６】
主に、単一の現在の好ましいインプリメンテーションに関連して、本発明の方法およびシステムを前記において記述してきたのに対し、本発明の範囲は、添付の特許請求の範囲により提供される規定内で、他のタイプの標準規格の通信ネットワークと他の通信モードとを利用する代替的な実施形態を含むだろう。
【図１】
2011517867.tif 000003
【図２】
2011517867.tif 000004
【図３】
2011517867.tif 000005
【図４】
2011517867.tif 000006
【手続補正書】
【提出日】平成23年1月28日(2011.1.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の制御サーバを備える同じネットワークに接続されているクライアントを識別して、クライアントを接続するための方法において、
ウェブブラウザアプリケーションを動作させている第１のクライアントを前記複数の制御サーバのうちの１つに接続して、前記第１のクライアントに関係するクライアント特有の接続情報を登録するステップと、
前記制御サーバにより規定され、第２のクライアントに関係する一意的なＵＲＩに対する要求を、前記ウェブブラウザアプリケーションから受信するステップと、
前記一意的なＵＲＩに関係する前記第２のクライアントへの接続を仲介するように、前記制御サーバに要求するステップと、
前記第２のクライアントに関係する接続情報を受信するステップと、
前記第２のクライアントに関係する接続情報を使用することにより、前記第２のクライアントへの直接的な接続を確立し、この接続の確立は前記制御サーバにより仲介されるステップと、
前記直接的な接続において、前記第２のクライアントからデータを受信して、前記受信したデータをグラフィカルユーザインターフェース中に表示するために、前記ウェブブラウザアプリケーションに前記データを転送するステップとを含み、
前記ステップは、前記ウェブブラウザアプリケーション中にインストールされているプラグインにより実行され、このプラグインが前記制御サーバおよび前記第２のクライアントと通信し、
前記制御サーバにより前記第２のクライアントに割り当てられるＵＲＩは、ドメイン名システムのインフラストラクチャを使用して解明することができるＵＲＬであり、
前記第２のクライアントが、前記第１のクライアントからの到来要求が向けられるウェブサーバを備え、
前記第２のクライアントの制御サーバのＩＰアドレスを取得するために、前記第２のクライアントが、既存のドメイン名システムインフラストラクチャに尋ねて、前記制御サーバにより割り当てられ、規定されている、前記クライアント自身の一意的なＵＲＬのＩＰアドレスを解明する方法。
【請求項２】
前記方法は、前記ウェブブラウザアプリケーションと対話するように適合されているＡＰＩを備えるオペレーティングシステム中に埋め込まれている請求項１記載の方法。
【請求項３】
前記直接的な接続を確立するステップにおける前記第１および第２のクライアントは、前記制御サーバにより仲介されるＴＣＰまたはＵＤＰのホールパンチングを使用して、通信のための直接的な接続を確立する請求項１または２記載の方法。
【請求項４】
前記制御サーバに登録されている、各クライアントに対する前記接続情報は、ＩＰアドレスとポート番号とを含む請求項１ないし３のいずれか１項記載の方法。
【請求項５】
クライアントサブ制御装置として指定されている、１つまたは複数のレベルのクライアントに、前記制御サーバの前記接続仲介が分散される請求項１ないし４のいずれか１項記載の方法。
【請求項６】
前記ウェブブラウザアプリケーションが、埋め込まれているウェブアプリケーションを備えるウェブページを最初に受信する、初期のステップをさらに含み、後続するステップは、前記埋め込まれているウェブアプリケーションにより実行される請求項１記載の方法。
【請求項７】
前記制御サーバに接続されている前記クライアントに関係する一意的なＵＲＩを含む、アクセス可能なクライアントの情報を、前記制御サーバから受信するステップと、
前記グラフィカルユーザインターフェース中に前記情報を表示するために、前記第１のクライアント上で動作しているウェブブラウザアプリケーションに、前記情報を転送するステップとをさらに含む請求項１ないし６のいずれか１項記載の方法。
【請求項８】
複数の制御サーバ（７ａ〜７ｃ）を備える同じネットワーク（２）に接続されているクライアント（１ａ〜１ｄ）を識別して、クライアント（１ａ〜１ｄ）を接続するためのシステム（５）において、
ウェブブラウザアプリケーション（４ａ〜４ｄ）を動作させている第１のクライアント（１ａ〜１ｄ）が前記複数の制御サーバ（７ａ〜７ｃ）のうちの１つに接続して、前記第１のクライアント（１ａ〜１ｄ）に関係するクライアント特有の接続情報を登録し、
第２のクライアント（１ａ〜１ｄ）が前記制御サーバ（７ａ〜７ｃ）に接続して、前記第２のクライアント（１ａ〜１ｄ）に関係するクライアント特有の接続情報を登録し、
前記第２のクライアント（１ａ〜１ｄ）には、一意的なＵＲＩが割り当てられ、
前記第１のクライアント（１ａ〜１ｄ）上で動作している前記ウェブブラウザアプリケーション（４ａ〜４ｄ）により要求された、前記一意的なＵＲＩに関係する前記第２のクライアント（１ａ〜１ｄ）への接続を仲介するように、前記制御サーバ（７ａ〜７ｃ）が要求され、
前記制御サーバは、前記第２のクライアント（１ａ〜１ｄ）に関係する接続情報を前記第１のクライアント（１ａ〜１ｄ）に転送し、前記第１のクライアント（１ａ〜１ｄ）に関係する接続情報を前記第２のクライアント（１ａ〜１ｄ）に転送し、
前記制御サーバ（７ａ〜７ｃ）は、前記第１のクライアント（１ａ〜１ｄ）と前記第２のクライアント（１ａ〜１ｄ）との間の直接的な接続の確立を仲介し、
前記第１のクライアント（１ａ〜１ｄ）が前記第２のクライアント（１ａ〜１ｄ）からデータを受信し、前記データは、前記ウェブブラウザアプリケーション（４ａ〜４ｄ）に転送されて、グラフィカルユーザインターフェース中に表示され、
前記ウェブブラウザアプリケーション（４ａ〜４ｃ）は、プラグイン（１０ａ〜１０ｄ）を備え、前記プラグイン（１０ａ〜１０ｄ）は、前記制御サーバ（７ａ〜７ｃ）および前記第２のクライアント（１ａ〜１ｄ）と通信し、
前記制御サーバ（７ａ〜７ｃ）により前記第２のクライアント（１ａ〜１ｄ）に割り当てられるＵＲＩは、ドメイン名システムのインフラストラクチャを使用して解明することができるＵＲＬであり、
前記第２のクライアント（１ａ〜１ｄ）が、前記第１のクライアント（１ａ〜１ｄ）からの到来要求が向けられるウェブサーバを備え、
前記第２のクライアントの制御サーバ（７ａ〜７ｃ）のＩＰアドレスを取得するために、前記第２のクライアント（１ａ〜１ｄ）が、既存のドメイン名システムインフラストラクチャに尋ねて、前記制御サーバ（７ａ〜７ｃ）により割り当てられ、規定されている、前記クライアント自身の一意的なＵＲＬのＩＰアドレスを解明するシステム。
【請求項９】
オペレーティングシステムが、前記ウェブブラウザアプリケーション（４ａ〜４ｄ）と対話するように適合されているＡＰＩを備える請求項８記載のシステム。
【請求項１０】
前記制御サーバ（７ａ〜７ｄ）により仲介されるＴＣＰまたはＵＤＰのホールパンチングを使用することにより、前記第１のクライアント（１ａ〜１ｄ）と第２のクライアント（１ａ〜１ｄ）との間の前記直接的な接続を確立する請求項８または９記載のシステム。
【請求項１１】
前記制御サーバ（７ａ〜７ｃ）に登録されている前記接続情報は、ＩＰアドレスとポート番号とを含む請求項８ないし１０のいずれか１項記載のシステム。
【請求項１２】
クライアントサブ制御装置として指定されている、１つまたは複数のレベルのクライアント（１ａ〜１ｄ）に、前記制御サーバ（７ａ〜７ｃ）の前記接続仲介が分散される請求項８ないし１１のいずれか１項記載のシステム。
【請求項１３】
前記システム（５）のメディエータウェブサービスにより前記第１のクライアント（１ａ〜１ｄ）に提供されるウェブページ中に含まれる、埋め込まれているウェブアプリケーション（１２）を通して、前記第１のクライアント（１ａ〜１ｄ）が前記システム（５）に接続する請求項８記載のシステム。
【請求項１４】
少なくとも前記第１のクライアント（１ａ〜１ｄ）が、
前記制御サーバ（７ａ〜７ｃ）に接続されている前記クライアント（１ａ〜１ｄ）に関係する一意的なＵＲＩを含む、アクセス可能なクライアント（１ａ〜１ｄ）の情報を、前記制御サーバ（７ａ〜７ｃ）から受信し、
前記グラフィカルユーザインターフェース中に前記情報を表示するために、前記第１のクライアント（１ａ〜１ｄ）上で動作しているウェブブラウザアプリケーション（４ａ〜４ｃ）に、前記情報を転送する請求項８ないし１３のいずれか１項記載のシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
この方法の実現のために、本発明のさらなる側面にしたがうと、
第１のクライアントが制御サーバに接続して、第１のクライアントに関係するクライアント特有の接続情報を登録し、
第２のクライアントが制御サーバに接続して、第２のクライアントに関係するクライアント特有の接続情報を登録し、
第２のクライアントには、一意的なＵＲＩが割り当てられ、
第１のクライアント上で動作しているウェブブラウザアプリケーションにより要求された、一意的なＵＲＩに関係する第２のクライアントへの接続を仲介するように、制御サーバが要求され、
制御サーバは、第２のクライアントに関係する接続情報を第１のクライアントに転送し、第１のクライアントに関係する接続情報を第２のクライアントに転送し、
制御サーバは、第１のクライアントと第２のクライアントとの間の直接的な接続の確立を仲介し、
第１のクライアントが第２のクライアントからデータを受信し、データは、ウェブブラウザアプリケーションに転送されて、グラフィカルユーザインターフェース中に表示されるシステムが提供される。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００５６
【補正方法】変更
【補正の内容】
【００５６】
主に、単一の現在の好ましいインプリメンテーションに関連して、本発明の方法およびシステムを前記において記述してきたのに対し、本発明の範囲は、添付の特許請求の範囲により提供される規定内で、他のタイプの標準規格の通信ネットワークと他の通信モードとを利用する代替的な実施形態を含むだろう。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］制御サーバを備える同じネットワークに接続されているクライアントを識別して、クライアントを接続するための方法において、
アプリケーションを動作させている第１のクライアントを前記制御サーバに接続して、前記第１のクライアントに関係するクライアント特有の接続情報を登録するステップと、
前記制御サーバにより規定され、第２のクライアントに関係する一意的なＵＲＩに対する要求を、前記アプリケーションから受信するステップと、
前記一意的なＵＲＩに関係する前記第２のクライアントへの接続を仲介するように、前記制御サーバに要求するステップと、
前記第２のクライアントに関係する接続情報を受信するステップと、
前記第２のクライアントに関係する接続情報を使用することにより、前記第２のクライアントへの直接的な接続を確立し、この接続の確立は前記制御サーバにより仲介されるステップと、
前記直接的な接続において、前記第２のクライアントからデータを受信して、前記受信したデータをグラフィカルユーザインターフェース中に表示するために、前記アプリケーションに前記データを転送するステップとを含む方法。
［２］前記アプリケーションは、ウェブブラウザアプリケーションである［１］に記載の方法。
［３］前記ステップは、前記ウェブブラウザアプリケーション中にインストールされているプラグインにより実行される［２］に記載の方法。
［４］前記方法は、前記アプリケーションと対話するように適合されているＡＰＩを備えるオペレーティングシステム中に埋め込まれている［１］に記載の方法。
［５］ドメイン名システムのインフラストラクチャを使用して、前記ＵＲＩを解明することができる以前の項のうちのいずれかに記載の方法。
［６］前記直接的な接続を確立するステップにおける前記第１および第２のクライアントは、前記制御サーバにより仲介されるＴＣＰまたはＵＤＰのホールパンチングを使用して、通信のための直接的な接続を確立する以前の項のうちのいずれかに記載の方法。
［７］前記制御サーバに登録されている、各クライアントに対する前記接続情報は、ＩＰアドレスとポート番号とを含む以前の項のうちのいずれかに記載の方法。
［８］前記第２のクライアントが、前記第１のクライアントからの到来要求が向けられるウェブサーバを備える以前の項のうちのいずれかに記載の方法。
［９］クライアントサブ制御装置として指定されている、１つまたは複数のレベルのクライアントに、前記制御サーバの前記接続仲介が分散される以前の項のうちのいずれかに記載の方法。
［１０］前記ウェブブラウザアプリケーションが、埋め込まれているウェブページアプリケーションを備えるウェブページを最初に受信する、初期のステップをさらに含み、後続するステップは、前記埋め込まれているウェブページアプリケーションにより実行される［２］に記載の方法。
［１１］前記制御サーバに接続されている前記クライアントに関係する一意的なＵＲＩを含む、アクセス可能なクライアントの情報を、前記制御サーバから受信するステップと、
前記グラフィカルユーザインターフェース中に前記情報を表示するために、前記第１のクライアント上で動作しているアプリケーションに、前記情報を転送するステップとをさらに含む以前の項のうちのいずれかに記載の方法。
［１２］制御サーバを備える同じネットワークに接続されているクライアントを識別して、クライアントを接続するためのシステムにおいて、
第１のクライアントが前記制御サーバに接続して、前記第１のクライアントに関係するクライアント特有の接続情報を登録し、
第２のクライアントが前記制御サーバに接続して、前記第２のクライアントに関係するクライアント特有の接続情報を登録し、
前記第２のクライアントには、一意的なＵＲＩが割り当てられ、
前記第１のクライアント上で動作しているアプリケーションにより要求された、前記一意的なＵＲＩに関係する前記第２のクライアントへの接続を仲介するように、前記制御サーバが要求され、
前記制御サーバは、前記第２のクライアントに関係する接続情報を前記第１のクライアントに転送し、前記第１のクライアントに関係する接続情報を前記第２のクライアントに転送し、
前記制御サーバは、前記第１のクライアントと前記第２のクライアントとの間の直接的な接続の確立を仲介し、
前記第１のクライアントが前記第２のクライアントからデータを受信し、前記データは、前記アプリケーションに転送されて、グラフィカルユーザインターフェース中に表示されるシステム。
［１３］前記アプリケーションは、ウェブブラウザアプリケーションである［１２］に記載のシステム。
［１４］前記ウェブブラウザアプリケーションは、プラグインを備え、前記プラグインは、前記制御サーバおよび前記第２のクライアントと通信する［１３］に記載のシステム。
［１５］オペレーティングシステムが、前記アプリケーションと対話するように適合されているＡＰＩを備える［１２］に記載のシステム。
［１６］ドメイン名システムのインフラストラクチャを使用して、前記ＵＲＩを解明することができる以前の項のうちのいずれかに記載のシステム。
［１７］前記制御サーバにより仲介されるＴＣＰまたはＵＤＰのホールパンチングを使用することにより、前記第１のクライアントと第２のクライアントとの間の前記直接的な接続を確立する以前の項のうちのいずれかに記載のシステム。
［１８］前記制御サーバに登録されている前記接続情報は、ＩＰアドレスとポート番号とを含む以前の項のうちのいずれかに記載のシステム。
［１９］前記第２のクライアントが、前記第１のクライアントからの到来要求が向けられるウェブサーバを備える以前の項のうちのいずれかに記載のシステム。
［２０］クライアントサブ制御装置として指定されている、１つまたは複数のレベルのクライアントに、前記制御サーバの前記接続仲介が分散される以前の項のうちのいずれかに記載のシステム。
［２１］前記システムのメディエータウェブサービスにより前記第１のクライアントに提供されているウェブページ中に含まれる、埋め込まれているウェブアプリケーションを通して、前記第１のクライアントが前記システムに接続する［１２］に記載のシステム。
［２２］少なくとも前記第１のクライアントが、
前記制御サーバに接続されている前記クライアントに関係する一意的なＵＲＩを含む、アクセス可能なクライアントの情報を、前記制御サーバから受信し、
前記グラフィカルユーザインターフェース中に前記情報を表示するために、前記第１のクライアント上で動作しているウェブブラウザアプリケーションに、前記情報を転送する以前の項のうちのいずれかに記載のシステム。
【国際調査報告】
2011517867.tif 000007
2011517867.tif 000008