説明

ネットワーク上で通信する装置間の接続を確立するシステムならびに方法

それぞれネットワークを介して通信するクライアントとサーバとの間の接続を確立するためのシステムならびに方法が説明されている。かかる方法ならびに技術は、例えば、ファイアウォールまたは直接的なネットワーク通信を妨げるその他の障害物が存在するときにメディアプレーヤーと場所移動装置との間のメディアストリーミング接続を確立するために使用され得る。中継サーバが、クライアントから、またはネットワークを介してサーバから、接続リクエストを受信する。かかるリクエストを受信した対応として、第一接続が、中継サーバとクライアントとの間で、また、第二接続が、中継サーバとサーバとの間で確立される。中継サーバによって第一接続、第二接続のいずれかにおいて受信されたデータは、前記とは別の第一接続、第二接続へと中継され、これによって、中継サーバを介してクライアントとサーバとの間の接続が確立される。

【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2009年4月17日に出願された米国非予備特許出願番号第12/426,103号から優先権の利益を主張する。
【0002】
本明細書の開示内容は、一般的に、ネットワーク上で通信する装置間の接続を確立するシステムならびに方法に関する。かかるシステム及び技術は、例えば、1つまたは複数のファイアウォールによって互いにロジカルに分離された装置間の接続を確立するうえで有用たり得る。様々な実施形態において、均等の概念がその他の用途や設定の数々においてただちに適用されるものの、以下に説明される技術及びシステムは、ネットワーク上でメディアコンテントを供給するメディアプレーヤーと場所移動装置との間のストリーミング接続を確立するために使用され得る。
【背景技術】
【0003】
インターネット及びその他のデジタル通信ネットワークは、個人的及び専門的生活の全ての側面で重要な効果を有し続けている。ネットワーク通信は、費用低減、携帯性コンピュータ装置の能力の高まり、携帯電話通信及びその他の無線通信技術の普及の増大と能力の高まり、及びその他の要因によってますます普及が進んでいる。その結果、消費者間で、コンテントが物理的または地理的に近いか否かに関わりなく、データ、娯楽、及びその他のメディアへのアクセスの期待が高まっている。
【0004】
1つの例として、消費者は、視聴者の本来のテレビ受像機以外の場所で、テレビやその他のメディアコンテントを遠隔視聴し得る「場所移動(place shifting)」装置への関心を大いに示している。かかる「場所移動」装置は、一般的には、ローカルエリアネットワークまたは広域ネットワークによって携帯用コンピュータ、携帯電話、携帯端末、遠隔テレビまたはその他のパケット化されたメディアストリームを視聴者用に再生可能な遠隔装置へと伝達され得るメディアコンテントをパケット化する。したがって、場所移動によって、消費者は今いる場所とは別の部屋、ホテル、オフィス、及び/またはその他携帯用メディアプレーヤー装置が無線またはその他の通信ネットワークへアクセスし得る任意の場所など離れた場所からメディアコンテントを視聴できる。その他のメディア及びその他のデータ集約的な用途も同様に幅広い層のクライアントの関心を集めている。
【0005】
現代のコンピュータ及びネットワーク技術がその移動性を増大させ、所望のコンテントへのアクセスを改良している一方で、アクセスと安全性とのトレードオフがしばしば存在する。ファイアウォール及びその他の構造が効果的にネットワークの安全性を維持し得るにもかかわらず、これらの構造自体が所望のサービスへのアクセスを妨害するという望ましくない効果を有し得る。場所移動を1つの例として使用すると、通信を希望する2者間に存在するファイアウォールまたはその他の安全性のための構造が存在する場合、場所移動装置とメディアプレーヤーとの間で接続を確立することは至難の業となり得る。安全なネットワークに対する望ましくないアクセスを妨害することに加えて、ファイアウォールは、特にこれがユーザによって間違って、または不完全に設定された場合に、場所移動サービスまたはその他のサービスへの正当かつ所望のアクセスを妨害し得る。
【0006】
場所移動、メディアストリーミング、及び/またはその他の用途のためのクライアントとサーバ間の接続を効果的に確立するうえで、困難な課題は頻繁に起こり得る。したがって、ネットワーク上でクライアントとサーバ間で信頼性かつ利便性を有するシステムならびに方法を創り出すことが望ましい。これらの、及びその他の所望の特性及び特徴は、後続の発明の詳細な説明及び、添付の請求項、そして添付の図面と、この背景技術の項目も併せて読めば明らかになるだろう。
【発明の概要】
【発明が解決しようとする課題】
【0007】
様々な実施形態において、システムならびに方法はネットワークを介して各々通信するクライアント装置とサーバ装置の間の接続を確立する目的で説明される。以下で説明する特定の方法及び技術は、いくつかの例において、ファイアウォールまたは直接的なネットワーク通信を妨げるその他の障害物が存在するときに、メディアプレーヤーと場所移動装置との間のメディアストリーミング接続を確立するために使用され得る。その他の実施形態も、メディアストリーミングなどに関する任意の設定を含むその他の設定において均等の範囲で使用され得る。
【0008】
様々な実施形態において、各々がネットワークを介して通信するメディアプレーヤーと場所移動装置の間のメディアストリーミング接続を確立するための方法が提供される。中継サーバが、メディアプレーヤーと関連する第一リクエスト及び場所移動装置と関連する第二リクエストを受信する。かかる第一、第二リクエストを受信すると、その対応として第一接続が中継サーバとメディアプレーヤーとの間で、また第二接続が中継サーバと場所移動装置との間で、確立される。各第一及び第二接続上で中継サーバによって受信されたデータは、前記とは別の第一接続及び第二接続へと中継され、これによって、中継サーバを介してクライアントとサーバとの間のメディアストリーミング接続が確立される。
【0009】
その他の実施形態において、方法は、ネットワークを介してその各々が通信するクライアント装置とサーバ装置との間の中継サーバを介した接続を確立するために提供される。まず、コネクションレスのセッションがネットワーク上のクライアント装置とサーバ装置との間で試行される。かかるコネクションレスのセッションが成功しなかった場合、クライアントとサーバはネットワークを介して中継サーバに接触するよう命令を受けるが、前記サーバは、ネットワーク上の既存の接続を介して伝達されるメッセージによって命令を受ける。引き続いて中継サーバに接触したクライアントとサーバへの対応とし、第一接続が中継サーバとクライアントとの間に確立され、第二接続が中継サーバとサーバの間に確立される。各第一及び第二接続上で中継サーバによって受信されたデータは、前記とは別の第一接続及び第二接続へと中継され、これによって、中継サーバを介してクライアントとサーバ間の接続が確立される。
【0010】
さらにその他の実施形態において、システムが、ネットワークを介してその各々が通信するメディアプレーヤーと場所移動装置との間のメディアストリーミング接続を確立するために提供される。中継マネージャモジュールが、メディアプレーヤーと場所移動装置との間のメディアストリーム接続を確立することのリクエストを受信するよう構成される。中継インスタンスモジュールが、前記リクエストへの対応として、メディアプレーヤーとの第一接続、及び場所移動装置との第二接続を確立するよう、また、各第一及び第二接続上で受信されたデータを、前記とは別の第一接続及び第二接続へと中継し、これによって、メディアプレーヤーと場所移動装置との間のメディアストリーミング接続が確立されるよう、構成される。
【0011】
様々な実施形態、実施態様、及びその他の特徴(機構)が以下でさらに詳細に説明される。
【図面の簡単な説明】
【0012】
例示としての実施形態は、下記の図面と併せて以後説明される。ここで、類似の参照番号は類似の構成要素を指す。
【0013】
【図1】図1は、クライアントノードとサーバノードとの間の中継接続を確立し、支援するためのシステム例のブロック図である。
【図2】図2は、信頼性を伴ってクライアントとサーバとの間の接続を確立するためのプロセスの例を示す、メッセージの流れ図である。
【図3】図3は、クライアントノードとサーバノードとの間の中継接続を確立するためのプロセスの例を示す流れ図である
【発明を実施するための形態】
【0014】
以下の本発明の詳細な説明は、単なる例示としての性質を有するものであり、本発明または本発明の応用(用途)及び使用を限定することを意図していない。さらに、先行する背景技術や以下に述べる、発明の詳細な説明において提供されるいかなる理論によっても限定されることは意図していない。
【0015】
様々な実施形態において、中継サーバは、直接的な接続ができない場合に、2つの装置間の通信を効果的につなぐために、クライアントとサーバに対して個別の接続を確立し得る。中継サーバは、例えば、メディアプレーヤーと場所移動装置に対して個別の接続を確立し得て、その後、必要に応じて2つの接続間のデータを中継し得る。さらに、中継サーバと、クライアント及びサーバのいずれか1つまたは両方との間で確立された2つの接続が任意のプロトコルまたは技術によって実施され得たとしても、いくつかの実施態様においては、かかる接続は、ファイアウォールの背後で生じ得る信頼性を有する接続である〔例えば、通信制御プロトコル(TCP接続)〕。2つの別個の接続間の情報をクライアント及びサーバに中継し得る中継サーバを提供することにより、ユーザは、クライアント・サーバ接続を容易に確立するための極めて信頼性の高いメカニズムを供給されることになる。そのうえ、かかる接続を構成するのに必要な情報の多くは多くの実施態様においてただちに自動化できるものであり、これによって、かかる接続を構成する関連で生じる複雑性(それゆえに不満)を減らしつつ、同時にクライアントとサーバの接続が成功する可能性を劇的に高める。
【0016】
以下の議論では、例示の利便性より、しばしば場所移動装置とその技術を指すことになるが、これらと均等の実施形態も任意の数のその他の設定において、本明細書で説明されたものと同じ構成及び方法に適用し得る。実際、本明細書で説明される技術は、任意の種類のネットワーク上の任意の種類のクライアント及び/またはサーバ間の通信を確立するためにただちに使用され得る。かかる応用の例としては、任意の種類のメディアストリーミングへの応用、任意の種類のメディア共有または保存への応用、若しくは、クライアントが、ファイアウォールまたはその他の安全性のためのメカニズムを介してクライアントからロジカルに分離されたサーバとの通信を確立しようとするような、その他の任意の応用を含み得る。
【0017】
図面に説明を戻すと、そして頭文字で表された図1(FIG1)を参照して、ネットワーク110上のクライアント102とサーバ104との間の接続を確立するための例示的なネットワークシステム100が、クライアント102とサーバ104について別個に確立された2つの接続間のデータを中継する中継システム116を適切に含む。したがって、システム100は、以下でより詳細に説明するように、システム100がなければファイアウォール106によってクライアント102とサーバ104の間の直接的な通信が妨げられるものであっても、かかるシステム100があることにより、クライアント102とサーバ104が中継システム116を用いて通信することを可能にする。
【0018】
クライアント102は、任意の装置、コンポーネント、モジュール、ハードウェア、ソフトウェア、及び/またはその他の、ネットワーク110を介して1つまたは複数のサーバ104によって提供されるファイルベースの及び/またはその他のデータのストリーミングの受信が可能なネットワークノードである。クライアント102は、任意の種類のハードウェア、ソフトウェア、ファームウェア、及び/または任意の汎用または特殊用途のコンピューティング・プラットフォームを含むその他のものとともに実施され得る。様々な実施形態において、クライアント102は、パーソナル・コンピュータ(デスクトップのコンピュータも使用可能であるが、例えば、「ラップトップ」や同様に携帯可能なコンピュータ)、携帯電話、携帯端末、セットトップボックス(STB)、任意の種類のオーディオ/ビデオレシーバ、ビデオゲームプレーヤー、ナビゲーション装置、(フランス国イーニュのArchos社より入手可能なARCHOS製品などの)パーソナルメディアプレーヤーなどである。多くの実施形態において、クライアント102は、ソフトウェアまたはファームウェアにおけるメディアプレーヤーまたはその他の応用を含み、以下でより詳細に説明するようにサーバ104へ確実に接続し、適宜、コンテントを受信し、ユーザへ提供することが可能な汎用コンピューティング装置である。しかしながら、その他の実施形態において、クライアント102はネットワーク110の任意の場所を介してデータを受信し、受信したデータをデコードしてユーザに適切なアウトプット(例えば、テレビやその他のディスプレイ上のアウトプット)を提供することが可能な独立型の、またはその他の別個のハードウェア装置である。その他の製品も同等に使用され得るが、いくつかの実施形態において使用され得る独立型のメディアレシーバ製品の1つの例は、カリフォルニア州、フォスターシティのSling Media社から入手可能なSLINGCATCHER製品である。
【0019】
サーバ104は、任意のコンポーネント、ハードウェア、ソフトウェアロジック及び/またはネットワーク110上のパケット化されたデータを伝達し得るその他のものである。いくつかの実施形態において、パケット化されたデータは、MPEG、Quicktime、Windows Media、Real Media、またはその他任意のフォーマットにおけるメディアコンテントのパケット化されたストリームであるが、その他の実施形態において任意のストリーミング、ファイルベース及び/またはその他のデータが同等に適用され得る。サーバ104は、従来の任意の種類のパーソナル・コンピュータ、ワークステーションまたはその他のサーバシステムを含む、任意の種類の汎用または特殊用途のハードウェア、ソフトウェア、及び/またはファームウェアとともに実施され得る。
【0020】
場所移動への応用のために適切に使用されるサーバ104のいくつかの例は、カリフォルニア州、フォスターシティのSling Media社から入手可能な様々なSLINGBOX製品のうちの任意のものを使用して実施され得るが、その他の製品またはサーバ104が、その他の実施形態において使用され得る。多くの異なる種類の場所移動装置は、通常任意の種類のデジタル・ビデオ・レコーダ(DVR)、セットトップボックス(STB)、ケーブルまたは衛星プログラムソース、DVDプレーヤー、及び/またはその他のものなどの外部ソースからメディアコンテントを受信することが可能である。その他の実施形態において、サーバ104は、任意のコンテント受信、またはその他の能力と統合され得る。サーバ104は、例えばトランスコード及び場所移動の特徴(機構)をも提供するハイブリッドSTBまたは、その他のレシーバであってもよい。かかる装置は、アンテナ、モデム、サーバ、及び/またはその他のソースから受信されたテレビプログラムやその他のコンテントをエンコードする衛星、ケーブル、放送、及び/またはその他の信号を受信し得る。レシーバは、受信した信号をさらに復調し、またはそうでなくてもデコードして、ローカル視聴が可能な、及び/または適宜遠隔なクライアント102へと場所移動可能なプログラムを抽出することができる。かかる装置は、パーソナルまたはデジタル・ビデオ・レコーダ(DVR)特徴(機構)若しくはその他のコンテントライブラリを適宜支援するために、ハードディスクドライブ、メモリ、またはその他の記憶媒体に保存されたコンテントデータベースも含み得る。したがって、いくつかの実施形態において、メディアソースは共通のコンポーネント、筐体、またはケース内に、サーバ104とともに物理的に、及び/または論理的に収納されていてもよい。従来の場所移動機能、特徴(機構)、システム、及び構造の例は、米国特許公開公報第2006/0095471号に記載されているが、本明細書で説明されている特徴(機構)は、前記特定の公開公報に記載された技術及び構造に加えて任意の数のその他の技術及び構造とともに均等に適用される。
【0021】
さらにその他の実施形態において、サーバ104は、従来のコンピューティングシステム(例えば、パーソナル・コンピュータ)において実行されるソフトウェアプログラム、アプレットなどである。かかる実施形態において、サーバ104は、例えば、遠隔の位置へと場所を移動させるためのコンピューティングシステムのユーザに一般的に提供されるスクリーンディスプレイの例えば一部または全部をエンコードし得る。かかる機能を提供し得る1つの装置は、従来のパーソナル・コンピュータ上で実行するカリフォルニア州、フォスターシティのSling Media社から入手可能なSlingProjector製品であるが、その他の製品も同様に使用され得る。そして再び、システム100において使用されるクライアント102及びザーバ104の種類は、場所移動装置に限定されない。すなわち、ネットワーク110上で通信可能なその他の任意のクライアント102及びサーバ104が均等に適用を受け得る。
【0022】
その他の実施形態において、サーバ104は、単にストリーミング、ファイルベース及び/またはその他、データへのクエリーへの応答などを含む、任意の情報をネットワーク110上に提供する。上記の通り、この特徴(機構)は、場所移動への応用に限定されず、ネットワーク110上で動作する任意の従来のサーバ104装置への応用にも使用され得る。
【0023】
ネットワーク110は、送信者(例えば、サーバ104)と受信者(例えば、クライアント102)間でメッセージを伝達可能な任意のデジタルまたはその他の通信ネットワークである。様々な実施形態において、ネットワーク110は、任意の数の公的、私的データ接続、若しくは、任意の数の通信プロトコルを支援するリンクまたはネットワークを含む。ネットワーク110は、例えば、インターネット若しくはTCP/IPに基づくその他のネットワークまたはその他の従来のプロトコルを含む。様々な実施形態において、ネットワーク110は、携帯電話、携帯端末及び/またはその他と通信するためのセル方式の通信ネットワークなどの、無線及び/または有線の電話ネットワークも組み入れる。ネットワーク110は、1つまたは複数のIEEE802.3及び/またはIEEE802.11ネットワークなどの、任意の種類の無線または有線ローカルエリアネットワークも組み入れることができる。
【0024】
上記の通り、クライアント102とサーバ104との間の直接的な通信は、1つまたは複数のファイアウォール106の存在により、いつも可能な訳ではない。ファイアウォール106は、クライアント102とサーバ104の間の通信を制限するために使用される、任意の種類のハードウェア、ソフトウェア、及び/またはハードウェアとソフトウェアの組合わせを指す。ファイアウォール106は、サーバ及び/またはクライアントシステム、ルータコントロール〔例えば、アクセスコントロール(ACLs)〕、及び/またはその他のアーキテクチャとともに実装され得る場合もあるものの、場合によっては、専用のハードウェアを使用して実装され得る。しばしば、ファイアウォールは、家庭用LANまたは事業所用LANとケーブル、光ファイバー、デジタル加入者回線(DSL)及び/またはその他のプロバイダ接続間の所望のインターフェースを提供するために使用されるルータなど、単にルータ内で実装される特徴(機構)である。
【0025】
ファイアウォール106またはその他の特徴(機構)が、クライアント102とサーバ104との直接的な接続を妨げる場合、接続を確立するためのその他の技術が試みられ得る。例えば、仲介サーバ112が、ユーザ・データグラム・プロトコル(UDP)などを使用した接続を支援するために使用され得る。したがって、仲介サーバ112は、クライアント102とサーバ104との間の間接的な接続を確立し、クライアントとサーバ間の同期する詳細事項に対処し、ならびに、システム100のその他の部分と通信する、いわば「門番」的な機械としての機能を果たす。
【0026】
多くの実施態様において、仲介サーバ112は、UDPまたはその他のコネクションレスのセッションを、クライアント102及びサーバ104の両方に確立し得る。クライアント102が、既に仲介サーバと通信中のサーバ104への接続をリクエストすると、提供されたセッションへ向かう前記2当事者は、しばしば、単にUDP(またはその他の)パラメータを交換し、通信を継続することができる。この技術は、しばしば「UDPホールパンチ」と呼ばれ、従来のネットワークアドレス変換(NAT)技術に基づくことが多い。しかしながら、かかる技術は、特にクライアント102とサーバ104が、UDPセッション(例えば、仲介サーバ112)確立時に関わった当事者が、クライアント102がサーバ112で以前使用したパラメータを予測の後、通信に関わる当事者でなくなったことを認識し得る、相対的に高機能のファイアウォール106(例えば多くの企業ネットワークと関連するファイアウォール)によって分離されるとき、しばしば失敗を伴う。さらに、UDPまたは類似のセッションは、ユーザによるいくつかの手動構成を含み得るが、かかる構成は、特に比較的不慣れなユーザには不便であり、またしばしば困難となり得る。ユーザが直接的な接続もUDP型のプロクシサーバの業務も利用できないときは、かかる状況であってもクライアント102によるサーバ104との通信を可能にする、追加的な接続機構を提供することが望ましいだろう。
【0027】
したがって、様々な実施形態において、クライアント102とサーバ104との別々の接続を確立し、2つの接続を中継することが可能で、これによりクライアント102とサーバ104との間の橋渡し的な接続を作り出す中継システム116が提供される。この目的のために、中継システム116は、任意の数のクライアント102とサーバ104の間の様々な接続を確立し、処理が可能な1つまたは複数の中継サーバ120を含むことが適切である。様々な実施形態において、各中継サーバ120は、以下でより詳細に説明するように、接続のためのリクエストを受信したら、その対応として中継セッションを処理する任意の数の中継インスタンス124を呼び出す中継マネージャモジュール122を含む。また、中継マネージャモジュール122は、中継機能へのアクセスを制御し、業務ルールを実施し、及び/またはその他所望の行動をとるために、データベース126及び/または管理インターフェース128と相互に作用し得る。
【0028】
様々な実施形態において、中継サーバ120及び/またはその他の資源を効率的かつ効果的に配分するために、ロードバランサ118も提供され得る。ロードバランサ118は、ハードウェア及び/またはソフトウェア資源の任意の組み合わせを使用して実施され得て、また、ネットワークトラフィック、サーバ120上のプロセッサロード、クライアント102及び/またはサーバ104の地理的分布、ならびに/若しくは適宜その他の要因に基づくことができる。
【0029】
様々な実施形態において、各中継サーバ120は、従来のコンピュータサーバ・ハードウェア及びソフトウェアを使用して実施される。各中継サーバ120は、例えば、任意のプロセッサ、アーキテクチャ、及び/またはオペレーティングシステムに基づくサーバコンピュータシステムによって実施され得る。様々な実施形態において、各中継サーバ120は、任意のバージョンのLINUX、UNIX、SOLARIS、NETWARE、WINDOWS、OS/X、AIX及び/またはその他のオペレーティングシステムなどを実装する、実際の、またはネットワーク上のコンピュータシステムである。一般に、様々なUNIX/LINUXオペレーティングシステムは、アプリケーションとして中継マネージャモジュール122を実装し得るコンピューティング・コア、ならびに、要望に応じて、任意の数のデーモン、プロセス、アプリケーション、またはその他の中継インスタンスモジュール124を提供する。例示的な実施形態において、中継マネージャモジュール122は、カリフォルニア州、サニーベールのサンマイクロシステムズ社から入手可能なJAVA環境を使用して、中継インスタンスモジュール124が従来のC、C++またはその他のプログラムと実装されて、実装される。その他の実施形態は、その他の任意のプログラム言語、スクリプト言語、開発または実行環境及び/またはその他を使用して、様々なシステム116のコンポーネントを実装し得る。
【0030】
例示的な実施形態において、中継接続のリクエストが仲介サーバ112、クライアント102またはその他の請求当事者から受信されると、中継マネージャモジュール122は、サーバ120上、入ってきたポート番号を接続へと配分し、新たな中継インスタンス124を呼び出して、かかる接続を処理させる。インスタンスは、配分されたポート番号を受信し、クライアント102とサーバ104の両方が接続をリクエストするために中継サーバ120に接触するまで待機する。クライアント102とサーバ104からのリクエストがシステム116で受信され、ロードバランス機構118などによって適切なポートへと送られる。接続はTCP、UDP、またはその他任意のプロトコルを使用して確立され得るが、様々な実施形態においては、妨げとなり得る任意のファイアウォール106を取り下げる際の一助としてTCPプロトコルを使用したクライアント102とサーバ104によって接続が起きる。多くのファイアウォール106が、信頼性のあるネットワーク内で起きるTCP接続を遮らないため、かかる接続は中継サーバ120を通る接続を確立するうえで非常に効果的たり得る。
【0031】
クライアント102とサーバ104との別々の接続を確立した後、中継インスタンス124が、適切に各接続において受信したデータを別の接続へと中継して、クライアント102とサーバ104間にネットワーク上のチャンネルを作り出す。このネットワーク上の接続は、任意の基準に基づいて維持され、また任意の基準に基づいて任意の時間に終了させることもできる。様々な実施形態において、中継インスタンス125は、接続開始以来の経過時間及び/または接続の進行中に処理されるデータの量を追跡する。この情報は、所定時間の経過またはトラフィックの所定量が処理された後に接続を終了させるために、中継マネージャ122と共有され得る。時間及びバンド幅の消費量は、データベース126にさらに保存され得て、さらなるデータ確認、権限付与及び/またはその他の関連事項を可能にする。
【0032】
サーバ104からの、中継システム116との接続は、任意の方法で開始され得る。様々な実施形態において、サーバ104は、ユーアールエル(URL)または、ファイアウォール106の背後でただちに接続が可能なその他のネットワークアドレスで、メッセージサーバ114と比較的一定の接続を維持する。メッセージサーバ114は、例えば、サーバ104が開始したときに自動的にアクセスされる、単なるTCPサーバであってよい。かかる場合において、サーバ104は開始時(またはその他の一時的な時間帯)にメッセージサーバ114と接触し、TCPまたは類似の接続を確立し、さらなる行動を待ち受ける。この接続は、TCPプロトコルの一部である「キープアライブ(keep alive)」特徴という比較的低いバンド幅を使用して有効に維持され得る。サーバ104からメッセージサーバ114への接続を予め確立することによって、たとえサーバがファイアウォール106の背後にあっても、サーバ104へ命令やリクエストを送信するために使用され得るチャンネルが維持される。その理由は、ファイアウォール106において使用される多くのルータが、入ってくるTCP(及びその他の)接続を許可しない一方で、信頼性の高い空間内で起きる、外部へのTCP接続を許可するからである。TCPまたはサーバ104からメッセージサーバ114へのその他の接続を確立した後、かかる既存の接続が命令をサーバ104へ伝達して中継サーバ116との別々の接続を確立するために使用され得る。かかる第二の接続は、ファイアウォール106によって遮られる可能性のない、他の送信されるTCP(またはその他のプロトコル)接続として確立され得る。すなわち、メッセージサーバ114は、サーバ104に対して中継サーバと別々に接触するよう指令する既存のチャンネルによって命令を伝達し得る。この命令は、接続のリクエストをするクライアント102またはその他の当事者についての情報を選択的に含み得るが、かかる情報は全実施形態に存在する必要はない。前記の命令があると、以下で、より詳細に説明するように、サーバ104は、適切に、クライアント102へデータを伝達するために使用され得る、中継サーバとTCP接続またはその他の接続を確立する。
【0033】
上記のように、中継サーバ116は、クライアント102及びサーバ104の両方と接続を確立し得て、データが1つの接続から別の接続へ中継されるようにする。データの中継がサーバ116上に追加的な処理ロードを配置する一方、これは実際にクライアントとサーバとの接続を確立するための非常に利便性の高い、かつ効果的なメカニズムを創出する。
【0034】
図2に戻って、ネットワーク110上でクライアント102とサーバ104との間の接続を確立するための例示的なプロセス200が示される。この例において、クライアント102は、最初にサーバ104との直接的な接続を試みるが、かかる接続202は、ファイアウォール106によって遮られる。
【0035】
直接的な接続を創出する試みが失敗に終わった後、クライアント102は、仲介サーバ112を使用して仲介接続205を創出しようと試みる。このシナリオにおいて、クライアント102はメッセージ204を仲介サーバ112へ送信し、かかる仲介サーバ112とUDP(またはその他の)セッション210をリクエストする。同様に、サーバ104は、リクエスト206を伝達して、仲介サーバ112とUDPセッション208を確立する。サーバ104からの、かかるリクエスト206は、クライアント102がメッセージ204を送信する前を含む任意の時間に送信され得る。サーバ104は、例えば、開始時に仲介サーバ112とメッセージ206とを自動的に接触させ得て、UDPセッション208が、クライアント102がサーバ104へのアクセスをリクエストした時には既に使用可能となるようにする。クライアント102とサーバ104とが共通のプロクシサーバ(例えばサーバ112)と通信した後、かかるプロクシサーバは、図2のセッション212及び213が示すように、その後クライアント102とサーバ104とが、プロクシサーバから共有のUDP情報を使用して直接的に通信できることを希望して、クライアント102と関連するUDP(またはその他の)情報をサーバ104へ回送し得て、逆もまた然りである。しかしながら、上記のように、多くのファイアウォール106がかかる接続を許可しないだろう。
【0036】
再び、サーバ104が、メッセージサーバ114とTCPまたはその他の信頼性の高い接続214を従前に確立したことを想起すると、この既存の接続214は、サーバ104から中継サーバ116への中継接続を確立するために使用され得る。プロクシ型の接続が成功しないとき、メッセージサーバ114が、(メッセージ218を介して)サーバ104に対して、中継システム116と別々に接続を開始するよう、適切に命令する。図2は、メッセージサーバ114からサーバ104へ送信されるメッセージ218を示すが、任意の数のソースから受信されたリクエスト216への対応として、かかるメッセージ218を開始させることができる。様々な実施形態において、仲介サーバ112が、メッセージサーバ114へリクエスト216を送信し、サーバ104に対して中継サーバ116と接触するよう命令する。その他の実施形態においては、リクエスト216がクライアント102によって伝達されて命令メッセージ218を開始する。いずれの場合においても、サーバ104からメッセージサーバ114へと確立された既存の接続214は、適宜、中継システム116と接触することをサーバ104に命令するために使用される。かかる命令を受けると、サーバ104はリクエスト220を中継サーバ116へ送信する。かかるリクエスト220は、システム116で適切に処理されてTCP、UDP、及び/またはその他の任意の適切なプロトコルを使用した接続226を創出する。
【0037】
中継システム116とクライアント102との間の接続は、任意の方法で確立され得る。図2に示される例示的な実施形態において、クライアント102または仲介サーバ112のいずれかが、リクエスト222を開始し、その結果、中継サーバ116とクライアント102との間の接続224がなされる。プロクシ接続が成功しなかったとき、仲介サーバ112からクライアント102への命令の対応としてリクエスト222が開始され得る。しかしながら、その他の実施形態においては、その他の任意の方法にてリクエスト222を開始し得る。再び、クライアント102がTCPを使用して接続を開始すると、次期接続224が、大きな問題もなく、任意のファイアウォール106を通過する可能性が非常に高くなる。しかしながら、その他の実施形態もUDPまたはその他のプロトコルを適宜使用し得る。
【0038】
接続224と226が整うと、クライアント102とサーバ104との間のデータ中継が、中継接続228上で上記のように進行し得る。場所移動への応用においては、例えば、接続228によって、ストリーミングメディアがメディアプレーヤークライアント102上でプレイされるために、場所移動サーバ104から提供され得る。かかる実施形態において、中継伝達中は、バンド幅やサーバ120上での処理能力に関する問題点を減らすために、メディアストリームのビットレート、フレームレート、分解能またはその他のエンコードパラメータを制限することが望ましいかもしれない。かかる制限は、要望に応じて、例えば、中継サーバ116またはその他のソースからサーバ104へ伝達される命令によって課され得る。代替的に、接続が中継サーバ116を通過してなされるたびに、ファームウェアまたはサーバ104におけるその他の命令が、エンコード、ストリーミング、またはその他の要望に応じた特徴(機構)を構成し得る。再び、場所移動に加えて、その他の特徴(機構)と実施態様が考えられ得る。
【0039】
図3に戻って、クライアント102とサーバ104との間の接続を確立する例示的な方法300が、中継サーバ120でクライアント102とサーバ104から各々リクエスト222、220を受信すること(機能310);クライアント102とサーバ104との間で2つの接続224、226を確立すること(機能314);中継接続228を確立するために、中継サーバ120で2つの接続224、226との間のデータを中継すること(機能316)という、幅広い工程を適切に含む。その他の実施形態は、中継接続を承認すること(機能312)、時間またはバンド幅の制限超過後に中継接続を切断すること(機能318)などの追加的な特徴(機構)も含み得る。
【0040】
上記の通り、中継接続は、サーバ120上で実際に資源を消費するので、多くの実施形態において、中継接続を試みる前に、クライアント102を促して直接的な接続(機能302及び304)及び/または仲介的な接続(機能306及び308)を試行させることが望ましいかもしれない。直接的な接続及び/または仲介的な接続が成功しないとき、中継接続が試行され得る。中継の特徴(機構)が任意の特定のユーザ、クライアント102、及び/またはサーバ104に対して利用可能なときと場合に、任意の数の規則や手続きが主として実施され得る。図3に示された例示的な実施形態において、サーバ120を使用した中継接続が、直接的な接続(機能302)及び/または仲介的な(例えばUDP)接続(機能306)がともに失敗した後に試行される(機能304、308)。その他の実施形態により、ユーザが中継接続を手作業で行うことや、直接的または仲介的な接続が成功しないとわかったとき(または確信的に予測したとき)に、自動的に中継状態を開始することが可能である。かかる特徴(機構)は、クライアント102にて実行するメディアプレーヤーまたはその他のクライアントのアプリケーションにコード化され得て、及び/またはデータベース126内に保存された業務ルールなどを使用して実行され得る。
【0041】
上記の通り、中継サーバ120は、サーバ104とクライアント102から各々受信された接続リクエスト220、222への対応として、中継接続228を創出する。例示的な実施形態において、中継インスタンス124が適切な時間にわたって、中継マネージャモジュール122によって識別されたポートをモニタリングする。リクエスト220及び222が適切なタイムアウト時間(例えば、数秒単位など)満了前に受信されると、処理が継続される。クライアント102またはサーバ104のいずれか若しくは両方からリクエストが受信されなかった場合は、接続は停止され得る。
【0042】
接続は、任意の適切なルールによって承認または拒絶され得る(機能312)。上記の通り、任意の数の業務ルールが中継サーバへのアクセスを制限または限定するために実施され得る。かかるルールは、特徴(機構)を特定のユーザ、特定のサーバ及び/または特定のクライアントに限定することを含み得る。さらにその他の実施形態において、ユーザ(若しくはサーバまたはクライアント)は、許可される中継サービスの数を限定され得る。かかる限定は、総数(例えばクライアントまたはサーバの存続期間)であってもよいし、または適切な時期後に初期化されたもの(例えば、1ヶ月当たり10の中継接続)であってもよい。
【0043】
ユーザは、ユーザID/パスワード、デジタル署名、生体認証、またはその他の任意のデジタル認証にて識別され得る。クライアント102及びサーバ104は、同様にデジタル署名またはその他の識別子(例えば、整理番号、MACアドレス、及び/またはその他)を含む任意の種類のデジタル認証にて識別され得る。かかる情報は、リクエスト220及び/または222に含められ得て、データベース126、または要望に応じてその他別の場所に保存された情報と比較され得る。その他の実施形態が中継インスタンス124、管理インターフェース128、及び/または要望に応じてその他の任意の特徴(機構)を用いて承認を処理され得るものの、多くの実施形態においては、中継マネージャモジュールによって承認が処理され得る。
【0044】
承認がなされると、中継サーバ120から接続224と接続226が確立され(機能314)、クライアント102とサーバ104との間のデータの中継が、中継接続228によって開始され得る(機能316)。様々な実施形態において、データベース126内及び/または中継インスタンス124内に保存されたデータは、適切なルールに従って接続228を切断するために使用され得る。いくつかの実施形態において、所定時間の経過後(他の実施形態ではこれより長くても短くてもよいが、例えば30分程度)または所定量のデータが処理された後(例えば1月当たり10ギガバイトまたはその他の値)に、全ての接続(または特定のクライアント、サーバまたはユーザに関連する接続のみ)を切断することが望ましいかもしれない(機能318)。実施される特定のルールまたはパラメータが実施形態ごとに異なるだろう。また、任意の数のルールが、要望に応じてデータベース126のルールエンジンを使用して実施され得る。一般的に言って、方法300の様々な工程が、システム100内の任意の種類のハードウェア、ソフトウェア、及び/またはファームウェアロジックによって実行され得る。方法300は、例えば、任意の適切なクライアント102及び/またはサーバ104とともに適宜、動作する、中継サーバ120(図1)によって実行され得る。また、図3は、上記のように直接的または仲介的接続を試行することに関連する機能302、304、306、308を示す。実際には、これらの特徴(機構)は、中継サーバ120によるよりは、クライアント102またはサーバ104によって実行され得る。様々な実施形態において、方法300の様々な工程が、メモリ、またはディスクドライブならびに/若しくは中継サーバ120及び/またはクライアント102と関連するその他の記憶装置に保存されたソフトウェアまたはファームウェアの命令への対応として実施される。かかる命令は、任意のプロセッサ及び/またはサーバ120な内の処理機構、クライアント102などによって実行され得る。図3に示す様々な機能の各々を実施するために使用される特定の手段は、任意のフォーマットで従来のソフロウェアロジックを実行する、任意の種類の処理用ハードウェア(図1のサーバ120、クライアント102及び/またはサーバ104など)たり得る。
【0045】
本明細書で説明されたように、デジタルネットワーク上でクライアントとサーバとの間の接続を確立するための新たなシステムならびに技術が説明された。本明細書にて説明された様々な技術により、クライアント及びサーバがクライアントとサーバの間のネットワーク上のポイトツーポイントのリンクを接続するために、別々に2つの接続の間のデータを効果的に中継する中継サーバとTCP接続またはその他の接続を行うことを可能にしている。クライアントとサーバの各々が共通の中継サービスとの接続を開始できるようになることで、そうでなければクライアントとサーバとの間の直接的な接続を妨げていたファイアウォールは取り下げられ得て、これにより、ネットワークの安全性について妥協することなく、データ伝達またはその他のクライアントとサーバとの間の通信が可能になる。かかるサービスは、場所移動サーバ装置が中継サーバへとメディアデータをストリーム可能にすることで、そして、これにより、受信されたストリームをメディアプレーヤークライアントへ中継することで、場所移動またはその他のストリーミングメディアへの応用を支援するためにも使用され得る。任意のストリーム、ファイルベース、パケットベース、またはその他任意のフォーマットのデータ伝達のために均等範囲の実施形態が、同様の特徴(機構)を提供する。
【0046】
本明細書で、「例示」なる用語は、1つの例、事例、または例示にすぎず、任意の数の代替物を有し得る。本明細書にて例示的として説明された任意の実施態様は、必ずしも他の実施態様よりも好ましいものや有利なものとして構成されているわけではない。いくつかの例示的な実施形態が前述の発明の詳細な説明で提供されたが、多くの数の代替的態様であるが均等の範囲に属する態様が存在することが認識されるべきである。そして、本明細書で提供された例は、いかなる方法においても本発明の範囲、利用性、または構成を限定するものと解釈されることを意図していない。そうではなく、特許請求項ならびにその法的な均等の範囲から逸脱することなく本明細書で説明された機能、要素のアレンジなどの様々な変形態様がなされ得る。

【特許請求の範囲】
【請求項1】
ネットワークを介して各々通信するメディアプレーヤーと場所移動装置との間のメディアストリーミング接続を確立する方法であって、中継サーバによって前記メディアプレーヤーに関連する第一リクエストと前記場所移動装置に関連する第二リクエストを受信することと;前記第一及び前記第二リクエストを受信したことの対応として、前記中継サーバと前記メディアプレーヤー間の第一の接続と、前記中継サーバと前記場所移動装置間の第二接続を確立することと;前記中継サーバによって前記第一及び前記第二接続の各々で受信されたデータを別の前記第一及び前記第二接続へ送ることであって、これにより前記中継サーバを介して前記メディアプレーヤーと前記場所移動装置間のメディアストリーミング接続が確立されることを含む方法。
【請求項2】
前記第一及び前記第二接続が、通信制御プロトコル(TCP)接続である、請求項1に記載の方法。
【請求項3】
前記受信することが、前記メディアプレーヤーと前記場所移動装置間のユーザ・データグラム・プロトコル(UDP)接続の失敗への対応として起きる、請求項1に記載の方法。
【請求項4】
前記受信することが、前記メディアプレーヤーと前記場所移動装置間の直接的な接続を確立する試行の失敗への対応として起きる、請求項1に記載の方法。
【請求項5】
前記場所移動装置に対して前記第二リクエストを前記中継サーバへ送信するよう命令することを含む、請求項1に記載の方法。
【請求項6】
前記命令することが、前記ネットワークを介して既に確立された前記場所移動装置との接続によってメッセージが前記場所移動装置へ送信されるよう命令することを含む、請求項5に記載の方法。
【請求項7】
所定時間が経過した後、前記メディアストリーミング接続を切断することをさらに含む、請求項1に記載の方法。
【請求項8】
データの所定量が送られた後、前記メディアストリーミング接続を切断することをさらに含む、請求項1に記載の方法。
【請求項9】
前記場所移動装置、前記メディアプレーヤー、及び前記場所移動装置のユーザのうち少なくとも1つに関連する識別情報に基づいて、前記第一及び第二接続を確立する前に前記メディアストリーミング接続を承認することをさらに含む、請求項1に記載の方法。
【請求項10】
前記第一及び前記第二リクエストのうち少なくとも1つに含まれる識別情報に基づいて、前記第一及び前記第二接続を確立する前に前記メディアストリーミング接続を承認することをさらに含む、請求項1に記載の方法。
【請求項11】
中継サーバを介して、ネットワークを介して各々通信するクライアントとサーバ間の接続を確立する方法であって、まず前記クライアント装置と前記サーバ間のネットワークによってコネクションレスのセッションを確立するよう、試行することと;前記コネクションレスのセッションが失敗した場合、前記クライアントと前記サーバに前記ネットワークを介して中継サーバに接触するよう命令することと;続いて前記中継サーバに接触した前記クライアントと前記サーバへの対応として、前記中継サーバと前記クライアント間の第一接続と、前記中継サーバと前記サーバ間の第二接続とを確立することと;前記中継サーバによって前記第一及び前記第二接続の各々で受信されたデータを別の前記第一及び前記第二接続へ送ることであって、これにより前記中継サーバを介して前記メディアプレーヤーと前記場所移動装置間のメディアストリーミング接続が確立されること;を含む方法。
【請求項12】
前記コネクションレスのセッションが、ユーザ・データグラム・プロトコル(UDP)セッションであり、前記第一及び前記第二接続が通信制御プロトコル(TCP)接続である、請求項11に記載の方法。
【請求項13】
ネットワークを介して各々通信するメディアプレーヤーと場所移動装置間のメディアストリーミング接続を確立するためのシステムであって、前記メディアプレーヤーと前記場所移動装置間の前記メディアストリーミング接続を確立するためのリクエストを受信するよう、構成される中継マネージャモジュールと;前記リクエストへの対応として、前記メディアプレーヤーとの第一接続、及び場所移動装置との第二接続を確立し、前記中継サーバによって前記第一及び前記第二接続の各々で受信されたデータを別の前記第一及び前記第二接続へ送り、これにより前記メディアプレーヤーと前記場所移動装置間のメディアストリーミング接続が確立されることを含むシステム。
【請求項14】
前記第一及び前記第二接続が通信制御プロトコル(TCP)接続である、請求項13に記載のシステム。
【請求項15】
情報を保存するために構成されたデータベースをさらに含み、前記中継マネージャモジュールが、前記データベースに保存された前記情報に基づいて前記メディアストリーミング接続を許可し、または許可しない、請求項13に記載のシステム。
【請求項16】
前記データベースに保存された前記情報が、前記メディアストリーミング接続が確立された経過時間を含み、前記中継マネージャモジュールが、前記経過時間が所定の数値を超過すると前記メディアストリーミング接続を許可しないよう、さらに構成されている、請求項15に記載のシステム。
【請求項17】
前記データベースに保存された前記情報が、前記場所移動装置が前記システムを使用した総計時間を含み、前記中継マネージャモジュールが、前記総計時間が所定の数値を超過すると前記メディアストリーミング接続を許可しないよう、さらに構成されている、請求項15に記載のシステム。
【請求項18】
前記データベースに保存された情報が、前記メディアストリーミング接続が確立された経過時間を含み、前記中継マネージャモジュールが、前記経過時間が所定の数値を超過すると前記メディアストリーミング接続を許可しないよう、さらに構成されている、請求項15に記載のシステム。
【請求項19】
前記ネットワークを介して、コネクションレスのプロトコルを使用して、前記場所移動装置と前記メディアプレーヤーとを接続することを試行するよう構成され、かつ、前記コネクションレスのプロトコルを介して接続する試行が失敗したとき、接続によるプロトコルを介して前記メディアプレーヤーと前記場所移動装置との間の前記メディアストリーミング接続を確立するためのリクエストを開始するよう構成されている仲介サーバをさらに含む、請求項15に記載のシステム。
【請求項20】
接続によるプロトコルを使用してネットワークによって前記場所移動装置との既存の接続を確立し、前記場所移動装置が前記第二接続を確立するよう命令する既存の接続によってメッセージを前記場所移動装置へ送信するよう構成されているメッセージサーバをさらに含む、請求項15に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公表番号】特表2012−524466(P2012−524466A)
【公表日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願番号】特願2012−506055(P2012−506055)
【出願日】平成22年3月29日(2010.3.29)
【国際出願番号】PCT/US2010/029062
【国際公開番号】WO2010/120484
【国際公開日】平成22年10月21日(2010.10.21)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WINDOWS
2.Linux
3.UNIX
4.JAVA
5.AIX
6.SOLARIS
【出願人】(506405585)スリング メディア,インク. (8)
【Fターム(参考)】