(57)【要約】【課題】リアルタイムデータ伝送における、転送効率とデータのリアルタイム性を維持向上させる。【解決手段】ＨＴＴＰサーバー１は、入力されたリアルタイムデータを受信する受信部２１と、コネクション３−１、３−２、・・・３−ｎをアプリケーションソフトウエアが識別可能に複数生成する複数コネクション生成部を有し、リアルタイムデータを送信するために複数のコネクションの状態を管理するコネクション管理部２２と、複数のコネクションのうちのいずれかでリアルタイムデータを送信する送信部２３を有する。【選択図】      図４
2005011267.tif 000002
【特許請求の範囲】
【請求項１】
クライアントからの要求に応じてサーバーからリアルタイムデータを、アプリケーションソフトウエアが管理するプロトコルで通信のためのコネクションを介して伝送する際に、基準時間設定部により設定された基準時間に基づいてコネクション切断部によりコネクションを切断するリアルタイムデータ通信システムにおいて、
入力されたリアルタイムデータを受信する受信部と、上記コネクションをアプリケーションソフトウエアが識別可能に複数生成する複数コネクション生成部を有し、リアルタイムデータを送信するために上記基準時間内で上記複数のコネクションの状態を管理するコネクション管理部と、上記複数のコネクションのうちのいずれかでリアルタイムデータを送信する送信部を有するサーバーと、
上記複数のコネクションのうちのいずれかで送信されたリアルタイムデータを受信する受信部と、上記コネクションをアプリケーションソフトウエアが識別可能に複数生成する複数コネクション生成部を有し、リアルタイムデータを受信するために上記基準時間内で上記コネクションの状態を管理するコネクション管理部と、受信されたリアルタイムデータを出力する送信部を有するクライアントと、
を備え、リアルタイムデータを伝送するのに複数のコネクションの各コネクション毎に上記基準時間内の各伝送期間を使用することを特徴とするリアルタイムデータ通信システム。
【請求項２】
請求項１記載のリアルタイムデータ通信システムにおいて、
上記サーバーの上記コネクション管理部は上記複数のコネクションを切り替えるコネクション切替部を有し、
生成された上記複数のコネクションを順次あるいは選択的に切り替えると共に、リアルタイムデータの上記伝送期間以外には擬似データを伝送しながら、上記サーバーから上記クライアントへリアルタイムデータを伝送することを特徴とするリアルタイムデータ通信システム。
【請求項３】
請求項２記載のリアルタイムデータ通信システムにおいて、
上記サーバーの上記コネクション管理部は上記複数コネクション生成部により生成された複数のコネクションおよびコネクション切断部により切断されたコネクションを監視するコネクション接続／切断監視部を有し、
上記コネクション接続／切断監視部によりコネクションの接続が検出されたとき、上記コネクション切替部により他のコネクションに切り替えると共に、上記コネクション接続／切断監視部によりコネクションの切断が検出されたとき、上記複数コネクション生成部により切断されたコネクションの張り直しをすることを特徴とするリアルタイムデータ通信システム。
【請求項４】
請求項２記載のリアルタイムデータ通信システムにおいて、
上記サーバーの上記コネクション管理部は上記複数コネクション生成部により生成された複数のコネクションの各接続時間をずらすための時間を設定するコネクションずらし接続時間設定部を有し、
上記コネクションずらし接続時間設定部によりずらして設定された各接続時間内の各伝送期間毎に、上記コネクション切替部により他のコネクションに切り替えることを特徴とするリアルタイムデータ通信システム。
【請求項５】
請求項１記載のリアルタイムデータ通信システムにおいて、
上記クライアントの上記コネクション管理部は、１セッションのリアルタイムデータを複数のコネクションから受信する際に、リアルタイムデータの順序を整えて出力するデータ並べ替え部を有することを特徴とするリアルタイムデータ通信システム。
【請求項６】
クライアントからの要求に応じてリアルタイムデータを、アプリケーションソフトウエアが管理するプロトコルで通信のためのコネクションを介して伝送する際に、基準時間設定部により設定された基準時間に基づいてコネクション切断部によりコネクションを切断するサーバーとしてのリアルタイムデータ通信装置において、
入力されたリアルタイムデータを受信する受信部と、
上記コネクションをアプリケーションソフトウエアが識別可能に複数生成する複数コネクション生成部と、上記複数のコネクションを切り替えるコネクション切替部を有し、リアルタイムデータを送信するために上記基準時間内で上記複数のコネクションの状態を管理するコネクション管理部と、
上記複数のコネクションのうちのいずれかでリアルタイムデータを送信する送信部を備え、
生成された上記複数のコネクションを順次あるいは選択的に切り替えながら複数のコネクションの各コネクション毎に上記基準時間内の各伝送期間を使用して上記クライアントへリアルタイムデータを伝送することを特徴とするリアルタイムデータ通信装置。
【請求項７】
請求項６記載のリアルタイムデータ通信装置において、
上記サーバーの上記コネクション管理部は上記複数コネクション生成部により生成された複数のコネクションおよびコネクション切断部により切断されたコネクションを監視するコネクション接続／切断監視部を有し、
上記コネクション接続／切断監視部によりコネクションの接続が検出されたとき、上記コネクション切替部により他のコネクションに切り替えると共に、上記コネクション接続／切断監視部によりコネクションの切断が検出されたとき、上記複数コネクション生成部により切断されたコネクションの張り直しをすることを特徴とするリアルタイムデータ通信装置。
【請求項８】
請求項６記載のリアルタイムデータ通信装置において、
上記サーバーの上記コネクション管理部は上記複数コネクション生成部により生成された複数のコネクションの各接続時間をずらすための時間を設定するコネクションずらし接続時間設定部を有し、
上記コネクションずらし接続時間設定部によりずらして設定された各接続時間内の各伝送期間毎に、上記コネクション切替部により他のコネクションに切り替えることを特徴とするリアルタイムデータ通信装置。
【請求項９】
要求に応じてサーバーからアプリケーションソフトウエアが管理するプロトコルでリアルタイムデータが伝送される際に、基準時間設定部により設定された基準時間に基づいてコネクション切断部により切断される通信のためのコネクションを介してリアルタイムデータを受信するクライアントとしてのリアルタイムデータ通信装置において、
上記複数のコネクションのうちのいずれかで送信されたリアルタイムデータを受信する受信部と、
上記コネクションをアプリケーションソフトウエアが識別可能に複数生成する複数コネクション生成部と、リアルタイムデータを複数のコネクションから受信する際に、リアルタイムデータの順序を整えて出力するデータ並べ替え部を有し、リアルタイムデータを受信するために上記基準時間内で上記コネクションの状態を管理するコネクション管理部と、受信されたリアルタイムデータを出力する送信部と、
を備え、複数のコネクションの各コネクション毎に上記基準時間内の各伝送期間を使用して伝送されたリアルタイムデータを出力することを特徴とするリアルタイムデータ通信装置。
【請求項１０】
クライアントからの要求に応じてサーバーからリアルタイムデータを、アプリケーションソフトウエアが管理するプロトコルで通信のためのコネクションを介して伝送する際に、基準時間設定ステップにより設定された基準時間に基づいてコネクション切断ステップによりコネクションを切断するリアルタイムデータ通信方法において、
サーバーでは、入力されたリアルタイムデータを受信部により受信する受信ステップと、リアルタイムデータを送信するために上記基準時間内で上記複数のコネクションの状態を管理するコネクション管理部により上記コネクションをアプリケーションソフトウエアが識別可能に複数生成する複数コネクション生成ステップと、上記複数のコネクションのうちのいずれかでリアルタイムデータを送信部により送信する送信ステップを有し、
クライアントでは、上記複数のコネクションのうちのいずれかで送信されたリアルタイムデータを受信部により受信する受信ステップと、リアルタイムデータを受信するために上記基準時間内で上記コネクションの状態を管理するコネクション管理部により上記コネクションをアプリケーションソフトウエアが識別可能に複数生成する複数コネクション生成ステップと、受信されたリアルタイムデータを送信部より出力する送信ステップを有し、
複数のコネクションの各コネクション毎に上記基準時間内の各伝送期間を使用してリアルタイムデータを伝送することを特徴とするリアルタイムデータ通信方法。
【請求項１１】
請求項１０記載のリアルタイムデータ通信方法において、
上記サーバーの上記コネクション管理部は生成された上記複数のコネクションを切り替えるコネクション切替ステップを有し、
生成された上記複数のコネクションを順次あるいは選択的に切り替えると共に、リアルタイムデータの上記伝送期間以外には擬似データを伝送しながら、上記サーバーから上記クライアントへリアルタイムデータを伝送することを特徴とするリアルタイムデータ通信方法。
【請求項１２】
請求項１１記載のリアルタイムデータ通信方法において、
上記サーバーの上記コネクション管理部は上記複数コネクション生成ステップにより生成された複数のコネクションおよびコネクション切断ステップにより切断されたコネクションを監視するコネクション接続／切断監視ステップを有し、
上記コネクション接続／切断監視ステップによりコネクションの接続が検出されたとき、上記コネクション切替ステップにより他のコネクションに切り替えると共に、上記コネクション接続／切断監視ステップによりコネクションの切断が検出されたとき、上記複数コネクション生成ステップにより切断されたコネクションの張り直しをすることを特徴とするリアルタイムデータ通信方法。
【請求項１３】
請求項１１記載のリアルタイムデータ通信方法において、
上記サーバーの上記コネクション管理部は上記複数コネクション生成ステップにより生成された複数のコネクションの各接続時間をずらすための時間を設定するコネクションずらし接続時間設定ステップを有し、
上記コネクションずらし接続時間設定ステップによりずらして設定された各接続時間内の各伝送期間毎に、上記コネクション切替ステップにより他のコネクションに切り替えることを特徴とするリアルタイムデータ通信方法。
【請求項１４】
請求項１０記載のリアルタイムデータ方法において、
上記クライアントの上記コネクション管理部は、リアルタイムデータを複数のコネクションから受信する際に、リアルタイムデータの順序を整えて出力するデータ並べ替えステップを有することを特徴とするリアルタイムデータ通信方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば、リアルタイムデータの通信を行うリアルタイムデータ通信システムに関するものである。
【０００２】
【従来の技術】
一般に、リアルタイムデータを伝送する場合はＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）の上でＲＴＰ（Ｒｅａｌ  Ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）を使うストリーミング技術が使用されてきた。ＵＤＰはコネクションレス型プロトコルでフロー制御や再送制御などの機構をもたないので、ある一定時間が経過したデータの必要性がなくなるリアルタイム伝送には非常に適していた。
【０００３】
それに対し、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）はコネクション型プロトコルでフロー制御や再送制御の機構を備え、蓄積型コンテンツのダウンロードやストリーミング配信に使用されてきた。ＴＣＰを利用したＨＴＴＰは、ＵＤＰでは難しい、ファイアーウォールやＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｏｒ）を通過することができるデータ伝送手段が確立されており、現在それは非常に有効である。
【０００４】
特許文献１には、利用者に応じたリソース制限を実行したコネクション制御を可能とするために、コネクション要求の利用を識別し、識別された利用者に応じて設定されたリソースの使用条件に従って使用するリソース領域を決定し、優先度の高い利用者に使用可能なリソースを多く設定する処理により、不特定多数の利用者からのコネクション要求がある通信処理装置において、特定のユーザーに対して優先的にコネクションを確立することが可能になる通信処理装置が開示されている。
【０００５】
【特許文献１】
特開２００３−１２５０２２号公報
【０００６】
【発明が解決しようとする課題】
しかし、上述した従来のリアルタイムデータ通信システムにより、ＴＣＰを利用したＨＴＴＰでリアルタイムデータの伝送を行おうとすると、ＨＴＴＰによる接続は、サーバーやプロクシ、ルータなどの制限をうける場合があり、データ転送途中で接続が切られてしまうことがあった。例えば、あるプロクシサーバーではサーバー管理者の不正アクセスを防止するためのポリシーにより、最大接続時間が指定されている場合があった。ほかにも、ＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）などのネットワーク管理・接続を運営する組織の不正アクセスを防止するためのルールによって、長時間にわたる伝送が切断されることがあった。
【０００７】
このような伝送途中で接続が切られてしまう場合は、再びＨＴＴＰコネクションを張りなおし、そのコネクション上にデータを流す必要があった。しかし、この再接続には伝送管理のためのオーバーヘッドを伴うネゴシエーションが必要であり、それに費やした時間だけデータペイロードとなるリアルタイムデータの伝送の遅延を生じさせることになる。したがって、再接続に時間がかかるとデータのリアルタイム性が失われる恐れがあるという不都合があった。
【０００８】
そこで、本発明は、かかる点に鑑みてなされたものであり、ファイアーウォールやＮＡＴを越える通信に有効なＨＴＴＰを用いたリアルタイムデータ伝送における、突然のＨＴＴＰコネクション切断によるリアルタイムデータへの遅延を生じさせない連続したリアルタイム伝送を維持させるリアルタイムデータ通信システム、リアルタイムデータ通信装置およびリアルタイムデータ通信方法を提供することを課題とする。
【０００９】
【課題を解決するための手段】
本発明のリアルタイムデータ通信システムのサーバーは、入力されたリアルタイムデータを受信する受信部と、コネクションをアプリケーションソフトウエアが識別可能に複数生成する複数コネクション生成部を有し、リアルタイムデータを送信するために基準時間内で複数のコネクションの状態を管理するコネクション管理部と、複数のコネクションのうちのいずれかでリアルタイムデータを送信する送信部を有する。
【００１０】
また、クライアントは、複数のコネクションのうちのいずれかで送信されたリアルタイムデータを受信する受信部と、コネクションをアプリケーションソフトウエアが識別可能に複数生成する複数コネクション生成手段を有し、リアルタイムデータを受信するために基準時間内でコネクションの状態を管理するコネクション管理部と、受信されたリアルタイムデータを出力する送信部を有する。
【００１１】
これにより、本発明のリアルタイムデータ通信システムは、１セッションのリアルタイムデータを伝送するのに複数のコネクションの各コネクション毎に基準時間内の各伝送期間を使用するものである。
【００１２】
従って本発明によれば、以下の作用をする。
サーバーは、あらかじめ複数コネクション生成部により伝送のためのコネクションを複数生成して用意しておき、コネクション接続／切断監視部によりコネクションの接続が検出されたとき、コネクション切替部により他のコネクションに切り替えて、送信部によりデータ単位（例えばパケット単位）でコネクションを介してクライアントに伝送していく。
【００１３】
ここで、プロクシやサーバー（もしくはクライアント）の仕様により伝送途中で基準時間設定部により設定された基準時間に基づいてコネクション切断部によりコネクションが切断されてしまった場合、コネクション接続／切断監視部によりコネクションの切断が検出されたとき、あらかじめ複数コネクション生成部により用意されていた他のコネクションを介してクライアントにデータを伝送することにより、データのリアルタイム性を維持することができる。
【００１４】
あらかじめ複数コネクション生成部により作成される複数のコネクションは、コネクションずらし接続時間設定部により時間差を有するようにずらして設定された各接続時間内の各伝送期間毎に、コネクション切替部により他のコネクションに切り替えることにする。これにより、一定時間のタイムアウトによる同時切断を防ぐことができる。また、コネクション接続／切断監視部によりコネクションの切断が検出されたとき、複数コネクション生成部により切断されたコネクションを再度張りなおしておき、保留されるようにする。
【００１５】
また、リアルタイムデータの伝送に使用されていないコネクションが基準時間設定部により設定された基準時間に基づいてコネクション切断部によりコネクションが切断されてしまう無通信タイムアウトによる切断を防ぐために、擬似のデータを送受信するようにする。
【００１６】
これにより、複数のコネクション上でリアルタイムデータを通信する際に、複数のコネクションを選択的に利用して、転送効率とデータのリアルタイム性を向上させることができ、一つのコネクションが切断されても、他のコネクションでデータを流すことにより、コネクションの張りなおしによる遅延が発生しないようにすることができる。
【００１７】
【発明の実施の形態】
以下に、本発明の実施の形態について、適宜、図面を参照しながら説明する。
【００１８】
図１は、本発明の実施の形態に適用されるリアルタイムデータ通信システムの構成を示す図である。
本発明では、図１のようなリアルタイムデータを伝送する機器構成を想定する。説明をわかりやすくするために、ＨＴＴＰサーバー１を送信側、ＨＴＴＰクライアント２を受信側にしているが、どちらも同時に送受信できるものでも構わない。ＨＴＴＰサーバー１とＨＴＴＰクライアント２がＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）サーバーもしくはクライアントとして実装されておりＴＣＰ上のＨＴＴＰによってデータの送受信を行う。
【００１９】
図１において、ＨＴＴＰサーバー１とＨＴＴＰクライアント２は複数のＨＴＴＰコネクション１（３−１）、ＨＴＴＰコネクション２（３−２）、・・・ＨＴＴＰコネクションｎ（３−ｎ）で接続されており、このＨＴＴＰコネクション１（３−１）、ＨＴＴＰコネクション２（３−２）、・・・ＨＴＴＰコネクションｎ（３−ｎ）上を、ＨＴＴＰサーバー１に入力されたリアルタイムデータＤＩが流れ、ＨＴＴＰクライアント２からリアルタイムデータＤＯが出力されるものとする。
【００２０】
最初にＨＴＴＰクライアント２からＨＴＴＰサーバー１に対しＨＴＴＰリクエストを発行し、ＨＴＴＰサーバー１がＨＴＴＰレスポンスとしてリアルタイムデータを流す。ＨＴＴＰサーバー１とＨＴＴＰクライアント２が図１と逆に実装される場合にも、ＨＴＴＰクライアントがＨＴＴＰサーバーにＨＴＴＰリクエストを発行し、その中にリアルタイムデータを含めて伝送することになる。ＨＴＴＰクライアントが全てのデータを送り終えたとき、もしくは、ＨＴＴＰサーバーで何らかのエラーが生じた場合にＨＴＴＰサーバーがＨＴＴＰクライアントに対しＨＴＴＰレスポンスを返すことになる。
【００２１】
図２は、ＨＴＴＰプロクシ接続されたリアルタイムデータ通信システムの構成を示す図である。
ＨＴＴＰサーバー１とＨＴＴＰクライアント２間にＨＴＴＰプロクシ４が入る場合は図２のような形態をとる。この場合、ＨＴＴＰサーバー１とＨＴＴＰクライアント２間でＨＴＴＰプロクシ４がＴＣＰ上のＨＴＴＰで運ばれてくるデータを転送しているだけならば、図１と同じと見なすことができる。
【００２２】
具体的には、図２において、ＨＴＴＰプロクシ４はＨＴＴＰサーバー１に対しては複数のＨＴＴＰコネクション１（３−１）、ＨＴＴＰコネクション２（３−２）、・・・ＨＴＴＰコネクションｎ（３−ｎ）で接続されるクライアント４−１として振る舞い、ＨＴＴＰプロクシ４はＨＴＴＰクライアント２に対しては複数のＨＴＴＰコネクション１（５−１）、ＨＴＴＰコネクション２（５−２）、・・・ＨＴＴＰコネクションｎ（５−ｎ）で接続されるサーバー４−２として振る舞うことになる。
【００２３】
上述した図１および図２において作成される複数のＨＴＴＰコネクションは後述するように任意の時間差で作成されるようにする。これは、ＨＴＴＰプロクシ４やＨＴＴＰサーバー１（もしくはＨＴＴＰクライアント２）の転送タイムアウトによる複数同時切断を防ぐためである。
【００２４】
ここで、リアルタイムデータＤＩ、ＤＯとは、ある一定期間に配送が完了することが望まれるデータである。例えば、ライブ配信やテレビ電話で扱われる映像や音声のデータである。このリアルタイムデータＤＩ、ＤＯはＨＴＴＰサーバー１に付けられたビデオカメラやマイクから得られる映像や音声のデータでも良いし、ネットワークで接続された他の機器（あるいはエンコーダ（圧縮装置））からＲＴＰパケットとして転送されるストリーミングデータでも良い。
【００２５】
リアルタイムもしくはストリーミングデータはパケットもしくは更に小さい単位にわけることができる。もし小分けされた一部のデータが通信途中で失われたとしても、受信側がそれ以降の後続データを受信することができれば、時刻に従って到着したデータを処理することが可能である。
【００２６】
総帯域幅が一定であれば、複数のＨＴＴＰのコネクションを用いても得られる総帯域自体は変わらないが、例えば、ＨＴＴＰでリアルタイムデータを伝送する際に、ＨＴＴＰサーバーやＨＴＴＰプロクシの制約によりコネクションが断たれることによりリアルタイム性の確保が困難になることを回避することができる。
【００２７】
図３は、伝送パケットおよびストリーミングデータパケット構成例を示す図である。
図３において、伝送パケット１１は、ＲＴＰヘッダ１２を有し、ＲＴＰヘッダ１２は、時間情報を示すシーケンスナンバーＳＮ１３およびタイムスタンプＴＳ１４を有する。
【００２８】
また、ストリーミングデータパケット１５は、ＲＴＰペイロードとしてのストリーミングデータを有する。
【００２９】
ここで、送信側のＨＴＴＰサーバー１は、時間情報を示すシーケンスナンバーＳＮ１３およびタイムスタンプＴＳ１４に基づいて遅延パケットの発生しているコネクションを検出して、他のコネクションに切り替えることができる。
【００３０】
また、受信側のＨＴＴＰクライアント２では、ストリーミングデータを再現するために、伝送パケット１１としてＲＴＰを使用する場合は、伝送パケット１１にあるＲＴＰのシーケンスナンバーＳＮ１３やタイムスタンプＴＳ１４などを用いてデータの順序を並べ替えることができる。なお、再現方法に関してはストリーミングデータパケット１５に示すＲＴＰペイロードとしてのストリーミングデータに依存する。
【００３１】
図４は、ＨＴＴＰサーバーの構成を示す図である。
図４において、ＨＴＴＰサーバー１は、入力されたリアルタイムデータＤＩを受信する受信部２１と、受信部２１で受信されたリアルタイムデータＤＩを複数のＨＴＴＰコネクション１（３−１）、ＨＴＴＰコネクション２（３−２）、・・・ＨＴＴＰコネクションｎ（３−ｎ）のいずれかでＨＴＴＰコネクション出力ＣＯとして出力する送信部２３と、複数のＨＴＴＰコネクション１（３−１）、ＨＴＴＰコネクション２（３−２）、・・・ＨＴＴＰコネクションｎ（３−ｎ）をアプリケーションソフトウエアプログラムが識別可能に複数生成する複数コネクション生成部を有し、リアルタイムデータを送信するために複数のコネクションの状態を管理するコネクション管理部２２を有して構成される。
【００３２】
図５は、ＨＴＴＰクライアントの構成を示す図である。
図５において、ＨＴＴＰサーバー１は、複数のＨＴＴＰコネクション１（３−１）、ＨＴＴＰコネクション２（３−２）、・・・ＨＴＴＰコネクションｎ（３−ｎ）のいずれかで入力されたＨＴＴＰコネクション入力ＣＩを受信する受信部２５と、受信部２５で受信されたＨＴＴＰコネクション入力ＣＩをリアルタイムデータＤＯとして出力する送信部２６と、複数のＨＴＴＰコネクション１（３−１）、ＨＴＴＰコネクション２（３−２）、・・・ＨＴＴＰコネクションｎ（３−ｎ）をアプリケーションソフトウエアプログラムが識別可能に複数生成する複数コネクション生成部を有し、リアルタイムデータを受信するために複数のコネクションの状態を管理するコネクション管理部２４を有して構成される。
【００３３】
図６は、コネクション管理部の構成を示す図である。
ＨＴＴＰサーバー１のコネクション管理部２２は、ＨＴＴＰクライアント２からの要求に応じてＨＴＴＰサーバー１からリアルタイムデータを、アプリケーションソフトウエアが管理するＨＴＴＰプロトコルで通信のためのＨＴＴＰコネクションを介して伝送する際に、基準時間設定部３１により設定された基準時間に基づいてコネクション切断部３３によりコネクションを切断するように構成される。
【００３４】
ＨＴＴＰサーバー１のコネクション管理部２２は、複数のＨＴＴＰコネクション１（３−１）、ＨＴＴＰコネクション２（３−２）、・・・ＨＴＴＰコネクションｎ（３−ｎ）をアプリケーションソフトウエアプログラムが識別可能に複数生成する複数コネクション生成部３１と、複数のＨＴＴＰコネクション１（３−１）、ＨＴＴＰコネクション２（３−２）、・・・ＨＴＴＰコネクションｎ（３−ｎ）を切り替えるコネクション切替部３６を有し、生成された複数のＨＴＴＰコネクション１（３−１）、ＨＴＴＰコネクション２（３−２）・・・ＨＴＴＰコネクションｎ（３−ｎ）を順次あるいは選択的に切り替えると共に、リアルタイムデータの伝送期間以外には擬似データを伝送しながらＨＴＴＰサーバー１からＨＴＴＰクライアント２へリアルタイムデータを伝送するように構成される。また、ＨＴＴＰクライアント２のコネクション管理部２４も同様の構成を有する。
【００３５】
ＨＴＴＰサーバー１のコネクション管理部２２は複数コネクション生成部３１により生成された複数のコネクションおよびコネクション切断部３３により切断されたコネクションを監視するコネクション接続／切断監視部３４を有し、コネクション接続／切断監視部３４によりコネクションの接続が検出されたとき、コネクション切替部３６により他のコネクションに切り替えると共に、コネクション接続／切断監視部３４によりコネクションの切断が検出されたとき、複数コネクション生成部３１により切断されたコネクションの張り直しをするように構成される。また、ＨＴＴＰクライアント２のコネクション管理部２４も同様の構成を有する。
【００３６】
ＨＴＴＰサーバー１のコネクション管理部２２は複数コネクション生成部３１により生成された複数のコネクションの各接続時間をずらすための時間を設定するコネクションずらし接続時間設定部３５を有し、コネクションずらし接続時間設定部３５によりずらして設定された各接続時間内の各伝送期間毎に、コネクション切替部３６により他のコネクションに切り替えるように構成される。また、ＨＴＴＰクライアント２のコネクション管理部２４も同様の構成を有する。
【００３７】
また、ＨＴＴＰクライアント２のコネクション管理部２４は、１セッションのリアルタイムデータを複数のコネクションから受信する際に、リアルタイムデータの順序を整えて出力するデータ並べ替え部を有するように構成される。また、ＨＴＴＰサーバー１のコネクション管理部２４も同様の構成を有する。
【００３８】
図７は、複数コネクションの識別を示す図である。
ＨＴＴＰサーバー１では、オペレーティングシステムＯＳ４１の上位のアプリケーションソフトウエア４２が管理するプロトコルＨＴＴＰで複数のコネクション上でリアルタイムデータを送信する際に、アプリケーションソフトウエア４２が識別可能に生成された複数のコネクションを順次あるいは選択的に利用して、リアルタイムデータの分離をすることができる。
【００３９】
このとき、アプリケーションソフトウエア４２は、再生ソフトウエア４３−１、再生ソフトウエア４３−２、再生ソフトウエア４３−３、・・・に対応するＵＲＬ１、ＵＲＬ２、ＵＲＬ３、・・・の切り替えにより複数のリアルタイムデータの種別を示し、ＵＲＬやＨＴＴＰ認証（ＨＴＴＰヘッダ）、その他独自認証方式においてセッションの識別を行う。一つのセッションに対しセッション識別子を設け、同一のセッション識別子を用いてひとつのＵＲＬに対し複数のＨＴＴＰコネクションを張ることを許す。また、切り替えによるデータの分離は、ストリーミングデータのパケット単位でする。
【００４０】
また、ＨＴＴＰクライアント２では、アプリケーションソフトウエア４２が管理するプロトコルＨＴＴＰで複数のコネクション上でリアルタイムデータを受信する際に、アプリケーションソフトウエア４２が識別可能に生成された複数のコネクションを順次あるいは選択的に利用して、リアルタイムデータの順序の並べ替えをすることができる。
【００４１】
このとき、アプリケーションソフトウエア４２は、再生ソフトウエア４３−１、再生ソフトウエア４３−２、再生ソフトウエア４３−３、・・・に対応するＵＲＬ１、ＵＲＬ２、ＵＲＬ３、・・・の切り替えにより複数のコネクションを識別する。また、切り替えにより分離されたデータの順序の並べ替えは、ストリーミングデータのパケット単位でする。
【００４２】
また、ＨＴＴＰクライアント２では、一つのコネクションが切断されたことはアプリケーションソフトウエア４２が識別し、ＨＴＴＰサーバー１およびＨＴＴＰクライアント２の両方でエラーとして検知される。また、切断されたコネクションを確立する場合には、アプリケーションソフトウエア４２がＵＲＬ１、ＵＲＬ２、ＵＲＬ３、・・・を識別してリアルタイムデータ伝送用のコネクションであると判断する。
【００４３】
また、リアルタイムデータ伝送用のコネクションであるかないかの判断は、具体的には、リアルタイムデータ用のＵＲＬを設けておき、それにアクセスして確立されたＨＴＴＰコネクションがリアルタイムデータ伝送用のコネクションであるとアプリケーションソフトウエア４２が識別する。
【００４４】
例えば、「ｈｔｔｐ：／／．．．／．．．ｒｅａｌ＿Ｔｉｍｅ−ｓｔｒｅａｍｉｎｇ？ｓｅｓｓｉｏｎ＝１２３４５６」というＵＲＬにアクセスすると、リアルタイムデータを伝送するコネクションを張ることができる。ただし、これだと複数端末で同時にアクセスするとリアルタイムデータが複数端末にばらばらにくばられてしまうので、「ｈｔｔｐ：／／…／…ｒｅａｌ＿Ｔｉｍｅ−ｓｔｒｅａｍｉｎｇ？ｓｅｓｓｉｏｎ＝１２３４５６」とＵＲＬにセッションの識別子を設ける。もしくはＨＴＴＰのリクエストやレスポンスヘッダに情報を挿入してもよい。
【００４５】
次に、このように構成された本発明の実施の形態に適用されるリアルタイムデータ通信システムの動作の詳細を以下に説明する。
【００４６】
図８は、ＨＴＴＰサーバーの動作を示すフローチャートである。
図８は、リアルタイムデータを送信するＨＴＴＰサーバー１がＨＴＴＰコネクション３を作成し、リアルタイムデータを送信するまでのステップである。以下にその詳細を述べる。
【００４７】
ステップＳ１で、複数のＨＴＴＰコネクションを作成する。具体的には、ＨＴＴＰサーバー１が送信側処理開始すると、受信側のＨＴＴＰクライアント２へリアルタイムデータを送信するためのＨＴＴＰコネクション３を作成する。ＨＴＴＰコネクション３は複数コネクション生成部３１により複数作成される。
【００４８】
一つのコネクションが作成されたらステップＳ２へ移動し、ステップＳ２で、リアルタイムデータの入力があったかどうか、またはリアルタイムデータの入力がタイムアウトであったか、そうでないかの判定を行う。具体的には、ＨＴＴＰサーバー１は、前述のようにリアルタイムデータを送信側に直接付けられたカメラのような機器から得る場合と、ネットワーク上の他の機器からＲＴＰのようなパケットで得る場合がある。本発明の実施の形態ではいずれの場合も入力として同様に扱う。リアルタイムデータの入力があった場合、すぐに次の処理ステップＳ３へ行っても良いし、バッファやキューに複数データを蓄積してからステップＳ３に遷移しても良い。また、ステップＳ２で、リアルタイムデータの入力待ちになってからリアルタイムデータの入力があるまでブロックしてしまわないように、入力タイムアウトなどの何らかのエラーが発生した場合もＳ３へ遷移させるようにしている。
【００４９】
ステップＳ３で、他のコネクションがあるか否かを判断し、他のコネクションがあるときは、ステップＳ４で、その他のコネクションはコネクションずらし接続時間設定部３５によりずらして設定された各接続時間となるように時間差で後に作成されるようにスケジュールされた後に、自動的に全てのコネクションが作成される。接続後は時間がずらされたコネクションの状態が維持される。
【００５０】
ステップＳ５で、ステップＳ２においてリアルタイムデータの入力がタイムアウトであったか、そうでないかなどのエラーチェックの判定を行う。具体的には、リアルタイムデータの入力タイムアウトなどのエラーチェックの判定はＨＴＴＰサーバー１のコネクション管理部２２のコネクション接続／切断監視部３４により行われ、このとき、基準時間設定部３１により設定された基準時間に基づいて無通信タイムアウトとなって、コネクションの切断が検出されたとき、複数コネクション生成部３１により切断されたコネクションの張り直しをする。
【００５１】
これ以後、一度接続されたＨＴＴＰコネクションが何らかの理由により切断された場合には、すぐに複数コネクション生成部３１により接続しなおし、常に決まった本数以上のコネクションを使えるようにしておく。また、基準時間設定部３１により設定された基準時間に基づいて無通信タイムアウトとなって、コネクション切断部３３によりコネクションが切断されることを防ぐため、リアルタイムデータの伝送期間以外には一定の擬似のデータを送出しても良い。
【００５２】
もしタイムアウトなどのエラーがなかった場合はステップＳ６へ移る。タイムアウトなどのエラーがあった場合はステップＳ８へ移る。
【００５３】
ステップＳ６で、ステップＳ２において入力されたデータを送信するためのＨＴＴＰコネクションを、ステップＳ１において作成したＨＴＴＰコネクションから選択する。具体的には、ＨＴＴＰコネクションの選択はコネクション切替部３６により行われ、選択方法は、作成されたＨＴＴＰコネクションを順番に指定しても良いし、以前にデータを送信したことがあればこれまで使用していたＨＴＴＰコネクションを引き続き使用しても良いし、新たにデータを送信する場合や何らかの判断によりＨＴＴＰコネクションを替える場合はステップＳ１で作成したＨＴＴＰコネクションから一つ選択してデータを送信しても良い。
【００５４】
ステップＳ７で、入力されたリアルタイムデータを選択されたＨＴＴＰコネクションで送信する。もし送信に失敗した場合は、リアルタイムデータをデータの欠落として破棄し、ステップＳ２で次のデータを送信する準備をしても良い。また、送信に成功した場合も、冗長なデータ送信を必要するならば、再度ステップＳ６に移り同じデータを別のＨＴＴＰコネクションで送信するように繰り返しても良い。
ステップＳ８で、ある一定期間の間に入力がなくなり終了する。
【００５５】
図９は、ＨＴＴＰクライアントの動作を示すフローチャートである。
図９は、リアルタイムデータ受信側のＨＴＴＰクライアント２がＨＴＴＰコネクション３を作成し、リアルタイムデータを受信し、出力するまでのステップである。以下にその詳細を述べる。
【００５６】
ステップＳ１１で、複数のＨＴＴＰコネクションを作成する。具体的には、ＨＴＴＰクライアント２は、受信側処理開始すると、送信側のＨＴＴＰサーバー１〜リアルタイムデータを受信するためのＨＴＴＰコネクション３を作成する。ＨＴＴＰクライアント２は、ＨＴＴＰサーバー１へ接続を能動的に確立しても良いし、ＨＴＴＰサーバー１からの接続を待機しても良い。ＨＴＴＰコネクション３は複数コネクション生成部３１により複数作成される。一つのコネクションが作成されたらステップＳ１２へ移動する。ステップＳ１４でその他のコネクションは時間差で後に作成されるようにスケジュールされ、維持される。また、これ以後、一度接続されたＨＴＴＰコネクションが何らかの理由により切断された場合には、すぐに接続しなおし、常に決まった本数以上のコネクションを使えるようにしておく。
【００５７】
ステップＳ１２で、ＨＴＴＰコネクションからデータが受信できるまで待機し、可能になったらデータを受信する。データを受信した場合はステップＳ１３へ移る。全てのＨＴＴＰコネクションで受信タイムアウトが発生した場合に送信側から全てのＨＴＴＰコネクションが切り替えられたりした場合はステップＳ１６へ移る。タイムアウトの検出は、ＨＴＴＰクライアント２のコネクション管理部２４のコネクション接続／切断監視部３４により行われ、このとき、基準時間設定部３１により設定された基準時間に基づいて無通信タイムアウトとなって、コネクションの切断が検出されたとき、複数コネクション生成部３１により切断されたコネクションの張り直しをする。
【００５８】
ステップＳ１３で、他のコネクションがあるか否かを判断し、他のコネクションがあるときは、ステップＳ１４で、その他のコネクションはコネクションずらし接続時間設定部３５によりずらして設定された各接続時間となるように時間差で後に作成されるようにスケジュールされた後に、自動的に全てのコネクションが作成される。接続後は時間がずらされたコネクションの状態が維持される。
【００５９】
全てのコネクションが作成されたときは、ステップＳ１５へ移行し、ステップＳ１５で、受信されたデータを出力する。無通信タイムアウトを防ぐための擬似データは出力されず破棄される。出力先は、ＨＴＴＰクライアント２に直接接続されたモニタやスピーカなどの再生装置でも良いし、ネットワーク上の他の機器（あるいはデコーダ（伸長装置））へ転送しても良い。出力が終わればステップＳ１２へ戻る。
【００６０】
ここで、複数のＨＴＴＰコネクションを通って受信されているのでリアルタイムデータ間で順序の入れ替えが発生している場合には、送信部２６で順序を補正するようにして、出力する際にデータ並べ替え部により順序を整えて出力する。この場合は出力直前にバッファあるいはキューを設け、ある一定の量か期間のリアルタイムデータを蓄積し、古いデータから順に出力していく。
【００６１】
ステップＳ１６で、受信するデータがなくなった、あるいはＨＴＴＰコネクションが切断されたため、終了する。
【００６２】
図１０は、複数のＨＴＴＰコネクションを使った転送状態の例を示す図である。
図１０は、ＨＴＴＰコネクションごとの、複数のＨＴＴＰコネクションを使った転送状態を示した図である。それぞれのＨＴＴＰコネクション１（５１）、２（５２）、３（５３）、４（５４）、・・・ｎ（５ｎ）、ｎ＋１（５ｎ＋１）は時間差Ｔ２−Ｔ１、Ｔ３−Ｔ２、・・・Ｔｎ＋１−Ｔｎで作成され、ＨＴＴＰコネクションの作成（接続）５４からＨＴＴＰコネクションの廃棄（切断）５５されるまでの全てのＨＴＴＰコネクションの有効期間５６あるいは斜線で示した一部のリアルタイムデータの伝送期間５８−１〜５８−ｎ＋１にリアルタイムデータの伝送を行なう。５５で示す切断されたコネクションは即座に再接続され、伝送のために維持される。
【００６３】
これにより、リアルタイムデータは接続状態にあるＨＴＴＰコネクション１（５１）、２（５２）、３（５３）、４（５４）、・・・ｎ（５ｎ）、ｎ＋１（５ｎ＋１）上の連続したリアルタイムデータの伝送期間５８−１〜５８−ｎ＋１を流れることが保証されるため、途切れのない伝送が可能である。
【００６４】
ここで、基準時間設定部３１により設定された基準時間に基づいて無通信タイムアウトとなって、コネクションの切断がされないように、それぞれのＨＴＴＰコネクション１（５１）、２（５２）、３（５３）、４（５４）、・・・ｎ（５ｎ）、ｎ＋１（５ｎ＋１）のＨＴＴＰコネクションの有効期間５６またはリアルタイムデータの伝送期間５８−１〜５８−ｎ＋１は、基準時間内に設定される。
【００６５】
また、基準時間設定部３１により設定された基準時間に基づいて無通信タイムアウトとなって、コネクション切断部３３によりコネクションが切断されることを防ぐため、それぞれのＨＴＴＰコネクション１（５１）、２（５２）、３（５３）、４（５４）、・・・ｎ（５ｎ）、ｎ＋１（５ｎ＋１）のＨＴＴＰコネクションのリアルタイムデータの伝送期間５８−１〜５８−ｎ＋１以外の有効期間５６には一定の擬似のデータを送出しても良い。
【００６６】
なお、斜線で示したリアルタイムデータの伝送期間５８−１〜５８−ｎ＋１はリアルタイムデータの伝送期間を示すもので、個々のパケットを表すものではない。リアルタイムデータの送信方法としては、リアルタイムデータの伝送期間５８−１〜５８−ｎ＋１内に、リアルタイムデータのデータ単位でＨＴＴＰコネクション上に書き込むが、この場合、通常はＴＣＰのｓｅｎｄ（  ）を実行して、一定量のデータをパケットとして伝送する。
【００６７】
図１１は、コネクション切替動作を説明する図である。
図１１において、ＨＴＴＰサーバー１のコネクション管理部２２は、ＨＴＴＰクライアント２からの要求に応じてＨＴＴＰサーバー１〜リアルタイムデータを、アプリケーションソフトウエアが管理するＨＴＴＰプロトコルでＨＴＴＰコネクション１（３−１）を介して伝送する際に、ＨＴＴＰサーバー１の運用ポリシーなどに基づいて基準時間設定部３１により設定された基準時間に基づいてコネクション切断部３３によりＨＴＴＰコネクション１（３−１）が突然切断されることがある。このとき、ＨＴＴＰコネクション１（３−１）においてパケットＰ１、Ｐ２、Ｐ３、Ｐ４、Ｐ５の伝送は中止される。また、すでに切断されているＨＴＴＰコネクション２（３−２）においてパケットＰ６の伝送は中止される。
【００６８】
コネクション接続／切断監視部３４によりＨＴＴＰコネクション１（３−１）の切断が検出されたとき、複数コネクション生成部３１により切断されたＨＴＴＰコネクション１（３−１）、ＨＴＴＰコネクション２（３−２）の張り直しをする。このとき、再度接続を張り直して完全に復旧するまでリアルタイムデータの伝送をすることができない。
【００６９】
そこで、予め複数コネクション生成部３１により複数のＨＴＴＰコネクション１（３−１）、ＨＴＴＰコネクション２（３−２）、・・・ＨＴＴＰコネクションｎ（３−ｎ）をアプリケーションソフトウエアが識別可能に複数生成しておき、コネクションずらし接続時間設定部３５によりずらして設定された各接続時間内の各伝送期間毎に、コネクション切替部３６により他の・・・ＨＴＴＰコネクションｎ（３−ｎ）、ＨＴＴＰコネクションｎ＋１（３−ｎ＋１）に切り替える。
【００７０】
これにより、ＨＴＴＰコネクションｎ（３−ｎ）においてパケットＰ７、Ｐ８、Ｐ９が伝送され、ＨＴＴＰコネクションｎ＋１（３−ｎ＋１）においてパケットＰ１０、Ｐ１１、Ｐ１２が伝送され、後続のパケットＰ１３、Ｐ１４、Ｐ１５も張り直しされたＨＴＴＰコネクション１（３−１）、ＨＴＴＰコネクション２（３−２）、または・・・ＨＴＴＰコネクションｎ（３−ｎ）、ＨＴＴＰコネクションｎ＋１（３−ｎ＋１）において伝送される。
【００７１】
従来、ＨＴＴＰプロクシやＨＴＴＰサーバ（もしくはＨＴＴＰクライアント）による突然の切断により、ＨＴＴＰによるリアルタイムデータ伝送はＨＴＴＰコネクションの張りなおしのために生じる遅延を受け入れなければならず、その遅延は後続するパケットにも影響してしまい、多くのデータのリアルタイム性を失わせていたが、この発明の実施の形態を用いれば、ＨＴＴＰコネクションの張りなおしによる遅延の影響を避け、リアルタイム性の維持が可能となる。
【００７２】
また一般に、リアルタイムデータ伝送には主にＵＤＰが使用されてきたが、ＵＤＰによる伝送はファイアーウォールを越えることが困難であるが、一方、ＨＴＴＰプロクシによるファイアーウォールを越えて伝送する手段は現在広く利用されていて、これに対して、本発明の実施の形態を利用すれば、ファイアーウォールを越えるリアルタイムデータ伝送もより高い品質で可能となる。
【００７３】
本発明の実施の形態は、上述したものに限らず、ＨＴＴＰだけでなく、ＨＴＴＰＳ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ，Ｓｅｃｕｒｅ）、ＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ）、ＴＬＳ（Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）などのＴＣＰ上で用いられる各種プロトコルに適用可能である。
【００７４】
【発明の効果】
この発明により、ＨＴＴＰコネクションを動的に切り替えてリアルタイムデータを伝送できる機構を設けることで、ＨＴＴＰプロクシやＨＴＴＰサーバ（もしくはクライアント）の接続タイムアウトなどによりＨＴＴＰコネクションが切断されても、コネクション再接続による遅延の影響を受けずにリアルタイムデータを伝送することができるという効果を奏する。
【図面の簡単な説明】
【図１】本発明の実施の形態に適用されるリアルタイムデータ通信システムの構成を示す図である。
【図２】ＨＴＴＰプロクシ接続されたリアルタイムデータ通信システムの構成を示す図である。
【図３】伝送パケットおよびストリーミングデータパケット構成例を示す図である。
【図４】ＨＴＴＰサーバーの構成を示す図である。
【図５】ＨＴＴＰクライアントの構成を示す図である。
【図６】コネクション管理部の構成を示す図である。
【図７】複数コネクションの識別を示す図である。
【図８】ＨＴＴＰサーバーの動作を示すフローチャートである。
【図９】ＨＴＴＰクライアントの動作を示すフローチャートである。
【図１０】複数のＨＴＴＰコネクションを使った転送状態の例を示す図である。
【図１１】コネクション切替動作を説明する図である。
【符号の説明】
１……ＨＴＴＰサーバー、２……ＨＴＴＰクライアント、３……ＨＴＴＰコネクション、４……ＨＴＴＰプロクシ、１１……伝送パケット、１２……ＲＴＰヘッダ、１３……シーケンスナンバーＳＮ，１４……タイムスタンプＴＳ、１５……ストリーミングデータパケット、２１……受信部、２２……コネクション管理部、２３……受信部、２４……コネクション管理部、２６……送信部、３１……複数コネクション生成部、３２……基準時間設定部、３３……コネクション切断部、３４……コネクション接続／切断監視部、３５……コネクションずらし接続時間設定部、３６……コネクション切替部、４１……ＯＳ、４２……アプリケーションソフトウエア、４３……再生ソフトウエア
【図１】
2005011267.tif 000003
【図２】
2005011267.tif 000004
【図３】
2005011267.tif 000005
【図４】
2005011267.tif 000006
【図５】
2005011267.tif 000007
【図６】
2005011267.tif 000008
【図７】
2005011267.tif 000009
【図８】
2005011267.tif 000010
【図９】
2005011267.tif 000011
【図１０】
2005011267.tif 000012
【図１１】
2005011267.tif 000013