JP4382745B2 - 通信システム - Google Patents

通信システム Download PDF

Info

Publication number
JP4382745B2
JP4382745B2 JP2005341731A JP2005341731A JP4382745B2 JP 4382745 B2 JP4382745 B2 JP 4382745B2 JP 2005341731 A JP2005341731 A JP 2005341731A JP 2005341731 A JP2005341731 A JP 2005341731A JP 4382745 B2 JP4382745 B2 JP 4382745B2
Authority
JP
Japan
Prior art keywords
server device
request
receiving
content data
session
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2005341731A
Other languages
English (en)
Other versions
JP2007150666A (ja
Inventor
和夫 清水
建治 打田
光浩 佐藤
卓 橋口
隆之 廣田
琢磨 山中
Original Assignee
キヤノンソフト情報システム株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by キヤノンソフト情報システム株式会社 filed Critical キヤノンソフト情報システム株式会社
Priority to JP2005341731A priority Critical patent/JP4382745B2/ja
Publication of JP2007150666A publication Critical patent/JP2007150666A/ja
Application granted granted Critical
Publication of JP4382745B2 publication Critical patent/JP4382745B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

この発明は通信システムに関し、特にTCP/IPプロトコルをベースとしつつ、クライエントから他のクライエントへコンテンツデータを連続的に通信することを可能とする技術に関するものである。
テレビ会議やテレビ電話のシステムにおいて、専用線に代えて、インターネットを使用することが行われている。この際一般には、UDPプロトコルやRTPプロトコル(Real-time Transfer Protocol)などが用いられてきた。
図1に、RTPプロトコルを用いたテレビ電話における通信を示す。図では、音声データについてのみ示しているが、画像データについても同様にして伝送される。
まず、マイクから音声が取得されこれがサウンドボードに与えられる(ステップS1)。次に、サウンドボードは、これを所定の大きさに区切ってディジタルデータに変換する(ステップS2)。続いて、通信アプリケーションは、所定の大きさに区切られた音声データにRTPヘッダを付加する(ステップS3)。次に、プロトコルスタックは、これにIPヘッダ、UDPヘッダを付加しパケットとして送信する(ステップS4)。
受信側では、このパケットを受けて、プロトコルスタックがRTPヘッダの付いた音声データを抽出する(ステップS5)。次に、通信アプリケーションが、音声データのみを抽出してデバイスドライバに与える(ステップS6)。デバイスドライバはこれをアナログ音声信号に変換し(ステップS7)、サウンドボードを介してスピーカから出力する(ステップS8)。このようにして、音声が送信される。
UDP/RTPプロトコルでは、受信側から送信側に対してデータを受領した旨の確認を送信しておらず、リアルタイム性の要求から迅速な処理が求められるテレビ電話などに向いているといえる。各パケットの容量は小さく、たとえ一つのパケットが消失したとしても、音声や画像の途切れは人間が知覚できない程度だからである。
上記のように、UDP/RTPプロトコルによるデータ通信は、大量のデータをリアルタイムに送信する場合に、リアルタイム性の維持という点から有効である。
しかしながら、UDP/RTPプロトコルでは、プロトコル自身において暗号化の仕組みが用意されておらず、別途VPN(Virtual Private Network)のソフトウエアを送信側受信側に設けなければならなかった。UDP/RTPプロトコルをセキュアに運用する為には、VPNを含めて、一般的に複雑なシステムと多額のコストを要するという問題があった。また、VPNによって送信側と受信側を接続すると、両者がLANで接続された状態と同じになる。そのため、送信側と受信側のネットワークポリシーを同じにしておかないと不具合を生じる可能性がある。したがって、送信側と受信側が同一の組織(会社)に属する場合には問題を生じにくいが、異なる組織間での通信には好ましくないという問題があった。
さらに、ルータを用いる場合、UDP/RTPプロトコルでは、セキュリティの上で問題があった。これを説明したのが図2である。PC2とPC6との間のデータのやりとりを示している。ルータ4は、PC2の側に設けられたものである。PC2のローカルアドレスは"172.16.2.10"、PC6のグローバルアドレスは"210.14.3.22"、ルータ4のグローバルアドレスは"210.17.3.1"である。ルータ4には一つのグローバルアドレス"210.17.3.1"が与えられており、このルータ4には、それぞれ異なるローカルアドレスを持つ複数のPCを接続することができる(図では1台のみを示している)。このようにルータを使用することで、1つのグローバルアドレスに対して複数のPCを接続することができる。
なお、図2では、説明の都合上PC2の側にのみルータ4を設けた構成を示しているが、PC6の側にもルータが設けられることが一般的である。
PC2、ルータ4、PC6には、それぞれ自身のポートと相手先のIPアドレスとの対応表が設けられている。
PC2からサーバ6にデータを送信する場合には、PC2からの送信時点では、発信元のポートとして指定した”5223”を用い、宛先にはサーバ6のグローバルアドレス及び所定ポートを指定する。したがって、宛先として”210.14.3.22:5230”、発信元としてPC2のローカルアドレス”172.16.2.10:5223”を付加して送信する。
これを受け取ったルータ4は、テーブルを参照し、発信元アドレス及びポートを”210.17.3.1:5225”に変換し、サーバ6にインターネットにて転送する。サーバ6はこれをポート5230にて受信する。
サーバ6から、PC2に対してデータ通信をする場合には、サーバ6からの送信時点では、発信元のポートとして指定した”5020”を用い、宛先にはルータ4のグローバルアドレス及びポートを指定する。したがって、宛先として”210.17.3.1:5235”、発信元としてサーバ6のグローバルアドレス及び所定ポート”210.14.3.22:5020”を付加して送信する。
これを受け取ったルータ4は、テーブルを参照し、宛先アドレス及びポートを”210.16.2.10:5040”に変換し、PC2に転送する。PC2はこれをポート5040にて受信する。
UDP/RTPプロトコルでは、例えば上記の様に宛先のグローバルアドレス及びポートをPC2とサーバ6で保持しかつ、ルータ4とPC2のアドレス・ポート対照テーブルをルータ4に保持する事により、通信を行う事ができる。しかしながら、これを実現する為には、通常ルータ4の特定ポート(この例では”5235”)について、固定的に、外部からの通信を無条件で通過させる設定とする必要があり、これがいわゆるセキュリティー・ホールとなり、外部からの攻撃にさらされる恐れが大きくなる。(これについても、複雑な最新手法でリスクを低減する事は可能であるが、VPNと同様一般的に複雑なシステムと多額のコストを要する。)
これに対して、TCP/IPプロトコルは、セキュリティの面において上記UDP/RTPプロトコルよりも優れている。この点を示すのが、図3である。
PC8の側にルータ10が設けられている。クライエント8からサーバ12に対する接続要求は、一旦、ルータ10に送られる。この接続要求は、宛先アドレス"210.14.3.22"のポート"80"とされ(以下、"210.14.3.22:80"と表記する)、発信元はローカルアドレス"172.16.2.10:5223"とされる。これを受けたルータ10は、その時点でローカルアドレスの特定ポートを動的に割り当てて対応テーブルを生成する。つまり、ポート5225に、"172.16.2.10:5223"を対応付ける。
そして、ルータ10は、この対応テーブルにしたがって、発信元のローカルアドレスをルータのグローバルアドレス"210.17.3.1:5225"に変更して、接続要求を送信する。
これをポート80で受けたサーバ12は、動的にポートを割り当てる。この例では、"5230"が割り当てられている。サーバ12は、ポート5230と、発信元のアドレス"210.17.3.1:5225"との対応テーブルを生成する。
サーバ12からのレスポンスは、宛先"210.17.3.1:5225"、発信元"210.14.3.22:5230"として送信される。
これを受けたルータ10は、ポート5225からのリクエストに対するレスポンスであることを確認して、対応テーブルに従いアドレスを変換する。すなわち、宛先を"172.16.2.10:5223"に変更して、クライエント8に送信する。
このように、サーバ12にとって、外部からのデータは全てポート80を介して受信されるので、ポート80に対するセキュリティだけを万全にすればよく、サーバ側のセキュリティ対策は比較的容易である。さらに、クライアント側のセキュリティについては、ルータ10のポート”5225”は、動的に割当てられる上に、ルータの設定をインターネット接続で一般的な安全性の高い設定で運用可能である。この設定を、図3を例としてやや詳細に説明すれば、(1)内側から外側への通信(PC8〜ルータ10〜サーバ12)は無条件に、(2)外側から内側への通信は、内側から外側(PC8〜ルータ10〜)へのリクエストに対するレスポンス(〜ルータ10〜PC88)のみを通過させるというものである。
さらに、TCP/IPプロトコルでは、クライエントであるPC8にとって、リクエストに対するレスポンスでなければルータ10が受付ないので、外部からの侵入に対して高いセキュリティを保持できる。
しかしながら、TCP/IPプロトコルをベースとするHTTPプロトコルは、クライエントとサーバとの間の通信プロトコルであり、テレビ電話などのようなクライエント間の通信には用いることができない。さらに、テレビ会議などのような多数のクライエント間の通信にも用いることはできない。
さらに、TCP/IPプロトコルは、データが相手方に到達したかどうかの確認を行ってから次のデータを送るようにしている。このため、通信障害などによって、あるデータが相手方に到達しない場合には、画像や音声がとぎれてしまうという問題があった。テレビ電話などのアプリケーションでは、すべてのデータが正確に到達することよりも、伝送のリアルタイム性の方が重要であるから、このような問題は致命的でもある。
そこで、この発明は、TCP/IPプロトコルを用いることによってセキュリティを確保しつつ、リアルタイム性のある通信を実現した通信技術を得ることを目的とする。
以下のこの発明のいくつかの側面を示す。
(1)(2)(3)この発明に係る通信システムは、(d)サーバ装置と、当該サーバ装置と通信可能な(e)第1〜第nのクライエント装置とを備えた通信システムであって、
前記第1〜第nのクライエント装置は、それぞれ、
(e1)コンテンツデータ送信のために、TCP/IPの上りセッション開設要求をサーバ装置に送信する手段と、(e2)サーバからのTCP/IPの上りセッション開設許諾を受けて、送信データサイズを不明とするHTTPプロトコルの送信リクエストをサーバ装置に送信する手段と、(e3)コンテンツデータを所定単位ごとにサーバ装置に送信する手段と、(e4)コンテンツデータ受信のために、TCP/IPの下りセッション開設要求をサーバ装置に送信する手段と、(e5)サーバからのTCP/IPの下りセッション開設許諾を受けて、受信データサイズを不明とするHTTPプロトコルの受信リクエストをサーバ装置に送信する手段と、(e6)サーバ装置からのコンテンツデータを受信する手段とを備えており、
前記サーバ装置は、
(d1)第1〜第nのクライエント装置から、それぞれTCP/IPの上りセッション開設要求を受けて、それぞれに開設許諾を送り返し、第1〜第nの上りセッションを開設する手段と、(d2)第1〜第nのクライエント装置から、第1〜第nの各上りセッションによって、HTTPプロトコルの連続的送信リクエストを受信する手段と、(d3)第1〜第nのクライエント装置から、それぞれTCP/IPの下りセッション開設要求を受けて、それぞれに開設許諾を送り返し、第1〜第nの下りセッションを開設する手段と、(d4)第1〜第nのクライエント装置から、第1〜第nの各下りセッションによって、HTTPプロトコルの連続的受信リクエストを受信する手段と、(d5)第1〜第nの各上りセッションによって、第1〜第nのクライエント装置から送信されてくるコンテンツデータを受信する手段と、(d6)第1〜第nのクライエント装置から受信した第1〜第nのコンテンツデータを記憶する第1〜第nのバッファと、(d7)第1〜第nのバッファから第1〜第nコンテンツデータを読み出して、各コンテンツデータを、それぞれ、第1〜第nのクライエント装置のうちの他のクライエント装置に、第1〜第nの下りセッションを用いて連続的に送信する手段とを備えている。
サーバ装置は、各クライエント装置からのコンテンツデータをHTTPの連続的送信リクエストによって受信し、これを、各クライエント装置からのHTTP連続的受信リクエストによって各クライエント装置に対して転送するようにしている。したがって、HTTPプロトコルを用いてセキュリティを確保しつつ、リアルタイム性のある通信を実現している。
(4)この発明に係るシステムは、サーバ装置が、(d8)受信した第1〜第nのコンテンツデータを記録するための第1〜第nバッファを備え、送信手段が、第1〜第nのバッファから第1〜第nのコンテンツデータを読み出して送信し、受信手段が、第1〜第nのバッファのそれぞれについて、バッファに余裕があれば、受信したコンテンツデータをバッファに記録し、バッファに余裕がなければ、受信したコンテンツデータをバッファに記録しないか、または、バッファに記録されたコンテンツデータのいずれかを削除して受信したコンテンツデータをバッファに記録する処理を行うことを特徴としている。
したがって、通信遅延が生じた場合には、コンテンツデータを破棄することによってリアルタイム性を維持することができる。
(5)この発明に係る通信システムは、受信手段が、バッファに所定以上のコンテンツデータが記録されればバッファに余裕がないと判断することを特徴としている。
したがって、通信遅延が生じたか否かの判断が容易である。
(6)この発明に係る通信システムは、受信手段が、受信したコンテンツデータのタイムスタンプが現在時刻よりも所定時間以上の差があれば、バッファに余裕がないと判断することを特徴としている。
したがって、通信遅延を正確に判定することができる。
(7)この発明に係る通信システムは、送信手段が、所定時間以上送信すべきコンテンツデータがない場合には、ダミーデータを送信することを特徴としている。
したがって、通信システムのいずれかの部位に、無データ状態の所定時間以上の継続によって接続を切断する機能があっても、接続を維持することができる。
(8)この発明に係る通信システムは、第1〜第nのクライエント装置のそれぞれが、(e7)制御データ受信のために、TCP/IPの制御下りセッション開設要求をサーバ装置に送信する手段と、(e8)開設されたセッションにおいて、制御データ受信のために、リクエストを送信する手段と、(e9)制御下りセッションにより、サーバ装置からレスポンスとして制御データを受信する手段と、(e10)制御データ送信のために、TCP/IPの制御上りセッション開設要求をサーバ装置に送信する手段と、(e11)制御上りセッションにより、リクエストとしてサーバ装置に対し制御データを送信する手段とを備えたことを特徴としている。
したがって、TCP/IPプロトコルを用いつつ、サーバ装置が積極的に制御データをクライエント装置に対して送信することができる。
(9)この発明に係る通信システムは、サーバ装置が、(d9)制御データのためのTCP/IPの制御下りセッション開設要求を第1〜第nのクライエント装置から受けて、セッション開設許諾を送信する手段と、(d10)制御下りセッションを用いて、レスポンスとして制御データを送信する手段と、(d11)制御データのためのTCP/IPの制御上りセッション開設要求を第1〜第nのクライエント装置から受けて、セッション開設許諾を送信する手段と、(d12)制御上りセッションにより、リクエストとして制御データを受信する手段とを備えたことを特徴としている。
したがって、TCP/IPプロトコルを用いつつ、サーバ装置が積極的に制御データをクライエント装置に対して送信することができる。
(10)この発明に係る通信システムは、サーバ装置が、第1〜第nのクライエント装置のいずれかから、制御上りセッションによって、通信を終了する旨の制御データを受け取った場合に、他のクライエント装置に対し、制御下りセッションを用いて、当該終了するクライエント装置を特定した制御データを送信することを特徴としている。
したがって、特定のクライエント装置の終了を他のクライエント装置に通知することができる。
(11)この発明に係る通信システムは、サーバ装置が、第1〜第nのクライエント装置のいずれかとのコンテンツデータの送信または受信に障害がある場合にも、通信を終了する旨の制御データを受け取った場合と同様の処理を行うことを特徴としている。
したがって、特定のクライエント装置の障害を他のクライエント装置に通知することができる。
(12)この発明に係る通信システムは、終了するクライエント装置を特定した制御データを受信したクライエント装置は、当該終了するクライエント装置のコンテンツデータを受信するために開設していたサーバ装置との間のセッションを終了することを特徴としている。
したがって、不要なセッションを停止することができる。
(13)この発明に係る通信システムは、クライエント装置の各機能の一部または全部は、クライエント装置がサーバ装置に接続した際に、サーバ装置からダウンロードされるクライエントプログラムによって実現されることを特徴とている。
したがって、クライエント装置に特別なプログラムを用意しなくとも、サーバ装置からプログラムをダウンロードしてシステムを構築することができる。
(18)この発明に係る通信方法は、サーバ装置と、当該サーバ装置と通信可能な第1〜第nのクライエント装置とを備えた通信方法であって、
第1〜第nのクライエント装置は、それぞれ、
(e1)コンテンツデータ送信のために、TCP/IPの上りセッション開設要求をサーバ装置に送信し、(e2)サーバ装置からのTCP/IPの上りセッション開設許諾を受けて、送信データサイズを不明とするHTTPプロトコルの送信リクエストをサーバ装置に送信し、(e3)コンテンツデータを所定単位ごとにサーバ装置に送信し、(e4)コンテンツデータ受信のために、TCP/IPの下りセッション開設要求をサーバ装置に送信し、(e5)サーバからのTCP/IPの下りセッション開設許諾を受けて、受信データサイズを不明とするHTTPプロトコルの受信リクエストをサーバ装置に送信し、(e6)サーバ装置からのコンテンツデータを受信し、
前記サーバ装置は、
(d1)第1〜第nのクライエント装置から、それぞれTCP/IPの上りセッション開設要求を受けて、それぞれに開設許諾を送り返し、第1〜第nの上りセッションを開設し、(d2)第1〜第nのクライエント装置から、第1〜第nの各上りセッションによって、HTTPプロトコルの連続的送信リクエストを受信し、(d3)第1〜第nのクライエント装置から、それぞれTCP/IPの下りセッション開設要求を受けて、それぞれに開設許諾を送り返し、第1〜第nの下りセッションを開設し、(d4)第1〜第nのクライエント装置から、第1〜第nの各下りセッションによって、HTTPプロトコルの連続的受信リクエストを受信し、(d5)第1〜第nの各上りセッションによって、第1〜第nのクライエント装置から送信されてくるコンテンツデータを受信し、(d6)第1〜第nのクライエント装置から受信した第1〜第nのコンテンツデータを第1〜第nのバッファに記憶し、(d7)第1〜第nのバッファから第1〜第nコンテンツデータを読み出して、各コンテンツデータを、それぞれ、第1〜第nのクライエント装置のうちの他のクライエント装置に、第1〜第nの下りセッションを用いて連続的に送信することを特徴としている。
サーバ装置は、各クライエント装置からのコンテンツデータをHTTPの連続的送信リクエストによって受信し、これを、各クライエント装置からのHTTP連続的受信リクエストによって各クライエント装置に対して転送するようにしている。したがって、HTTPプロトコルを用いてセキュリティを確保しつつ、リアルタイム性のある通信を実現している。
(19)この発明に係る通信システムは、(a)サーバ装置と、当該サーバ装置と通信可能な(b)第1のクライエント装置および(c)第2のクライエント装置とを備えた通信システムであって、
前記第1のクライエント装置は、
(b1)コンテンツデータのために、TCP/IPのセッション開設要求をサーバ装置に送信する手段と、(b2)サーバ装置からのTCP/IPのセッション開設許諾を受けて、送信データサイズを不明とするHTTPプロトコルの送信リクエストをサーバ装置に送信する手段と、(b3)コンテンツデータを所定単位ごとにサーバ装置に送信する手段とを備えており、
前記第2のクライエント装置は、
(c1)コンテンツデータのために、TCP/IPのセッション開設要求をサーバ装置に送信する手段と、(c2)サーバからのTCP/IPのセッション開設許諾を受けて、受信データサイズを不明とするHTTPプロトコルの受信リクエストをサーバ装置に送信する手段と、(c3)サーバ装置からのコンテンツデータを受信する手段とを備えており、
前記サーバ装置は、
(a1)第1のクライエント装置からのTCP/IPのセッション開設要求を受けて開設許諾を送り返す手段と、(a2)第2のクライエント装置からのTCP/IPのセッション開設要求を受けて開設許諾を送り返す手段と、(a3)第1のクライエント装置からのHTTPプロトコルの送信リクエストを受信する手段と、(a4)第2のクライエント装置からのHTTPプロトコルの受信リクエストを受信する手段と、(a5)前記送信リクエストを受けた後に、第1のクライエント装置から送信されてくるコンテンツデータを受信する手段と、(a6)受信したコンテンツデータを、前記受信リクエストを送信してきた第2のクライエント装置に送信する手段とを備えたことを特徴としている。
サーバ装置は、各クライエント装置からのコンテンツデータをHTTPの連続的送信リクエストによって受信し、これを、各クライエント装置からのHTTP連続的受信リクエストによって各クライエント装置に対して転送するようにしている。したがって、HTTPプロトコルを用いてセキュリティを確保しつつ、リアルタイム性のある通信を実現している。
(24)この発明に係る通信システムは、(d)サーバ装置と、当該サーバ装置と通信可能な(e)第1〜第nのクライエント装置とを備えた通信システムであって、
前記第1〜第nのクライエント装置は、それぞれ、
(e1)コンテンツデータ送信のために、TCP/IPのセッション開設要求をサーバ装置に送信する手段と、(e2)サーバからのTCP/IPのセッション開設許諾を受けて、当該セッションによってコンテンツデータを所定単位ごとにサーバ装置に送信する手段と、(e3)コンテンツデータ受信のために、TCP/IPのセッション開設要求をサーバ装置に送信する手段と、(e4)サーバからのTCP/IPのセッション開設許諾を受けて、当該セッションによってサーバ装置からのコンテンツデータを受信する手段とを備えており、
前記サーバ装置は、
(d1)第1〜第nのクライエント装置から、それぞれTCP/IPの上りセッション開設要求を受けて、それぞれに開設許諾を送り返し、第1〜第nの上りセッションを開設する手段と、(d3)第1〜第nのクライエント装置から、それぞれTCP/IPの下りセッション開設要求を受けて、それぞれに開設許諾を送り返し、第1〜第nの下りセッションを開設する手段と、(d5)第1〜第nの各上りセッションによって、第1〜第nのクライエント装置から送信されてくるコンテンツデータを受信する手段と、(d6)第1〜第nのクライエント装置から受信した第1〜第nのコンテンツデータを記憶する第1〜第nのバッファと、(d7)第1〜第nのバッファから第1〜第nコンテンツデータを読み出して、各コンテンツデータを、それぞれ、第1〜第nのクライエント装置のうちの他のクライエント装置に、第1〜第nの下りセッションを用いて連続的に送信する手段とを備えたことを特徴としている。
サーバ装置は、各クライエント装置からのコンテンツデータをTCP/IPの要求によって受信し、これを、各クライエント装置からのTCP/IP要求によって各クライエント装置に対して転送するようにしている。したがって、TCP/IPプロトコルを用いてセキュリティを確保しつつ、リアルタイム性のある通信を実現している。
この発明において、「コンテンツデータ」とは、画像データ(静止画、動画を問わない)、音声データ、文字データなどをいう。
「HTTPプロトコル」とは、HTTPプロトコルだけでなくこれに類するプロトコル、例えばHTTP(S)プロトコルも含む概念である。
「連続的受信(送信)リクエスト」とは、HTTPプロトコルなどのリクエスト・レスポンス型の通信方式において、連続的なリクエスト(レスポンス)の送信を求める要求である。実施形態では、chunkedコーディングがこれに対応する。
「所定単位ごと」とは、1回に送信するサイズを同じにする場合だけでなく、時間ごとのサイズ(bit per second)を同じにする場合を含む。さらに、毎回のサイズを変える場合も含む概念である。
「プログラム」とは、CPUにより直接実行可能なプログラムだけでなく、ソース形式のプログラム、圧縮処理がされたプログラム、暗号化されたプログラム等を含む概念である。
発明を実施するための形態
1.全体構成
図4に、この発明の一実施形態によるテレビ会議システムの全体構成を示す。第1のクライエント装置20、第2のクライエント装置24が、インターネット26に接続されている。さらに、サーバ装置22もインターネット26に接続されている。第1のクライエント20、第2のクライエント装置24は、サーバ装置22を介して、動画および音声の通信を行う。
図5に、このシステムによるデータ通信の概要を示す。第1のクライエント装置20からの画像・音声データは、アップロードセッションU1によりサーバ装置22に送信される。サーバ装置22は、この画像・音声データをダウンロードセッションD2を用いて第2のクライエント装置24に送信する。なお、TCP/IP、HTTPプロトコルでは、サーバ装置22が主導となって第2のクライエント装置24に対してデータを送ることはできない。本発明ではこれを実現しているが、その手法は後述する。このようにして、第1のクライエント装置20から第2のクライエント装置24に対し、画像・音声データが送信される。
なお、HTTPプロトコルでは、クライエントからのリクエストに対するサーバのレスポンスという形式でデータの送信が行われる。この実施形態では、連続して画像・音声データを送信するため、データ送信ごとにリクエスト・レスポンスを行うのではなく、1つのリクエストに対して複数のレスポンスを送信する形式を用いている(chunked転送コーディング)。
第2のクライエント装置24からの画像・音声データの送信も、同様にして行われる。第2のクライエント装置24からの画像・音声データは、アップロードセッションU2によりサーバ装置22に送信される。サーバ装置22は、この画像・音声データをダウンロードセッションD1を用いて第1のクライエント装置20に送信する。このようにして、第2のクライエント装置24から第1のクライエント装置20に対し、画像・音声データが送信される。
なお、この実施形態では、制御データにつき、上記の画像・音声のセッションとは別のセッションを形成するようにしている。制御データの伝送においては、画像・音声データと異なって、データ送信ごとにリクエスト・レスポンスを行う通常の方式を採用している。
図5に示すように、第1のクライエント装置20とサーバ装置22との間に制御データ用のセッションCU1,CU2を設けている。第1のクライエント装置20からサーバ装置22に制御データを送信する場合には、その都度、サーバ装置22に対してリクエストを送信し、このリクエスト中に制御データを含める。
一方、サーバ装置22から第1のクライエント装置20に対して制御データを送信したい場合、サーバ装置22はクライエントからのリクエストに対応するレスポンスしか送信することができないので問題となる。この実施形態では、第1のクライエント装置20から予めリクエストを送信しておく。サーバ装置22は、送信すべき制御データが生じた時点で、この予め受けているリクエストのレスポンスとして制御データを第1のクライエント装置20に送信する。
第2のクライエント装置24とサーバ装置22との間においても同様にして制御データが送受信される。
図6、図7に、第1のクライエント装置20、サーバ装置22、第2のクライエント装置24の機能ブロック図を示す。図6は制御データの通信に関する機能であり、図7は画像・音声データの通信に関する機能である。なお、図6、図7では、煩雑さを避けるために、第1のクライエント装置20から、サーバ装置22ないし第2のクライエント装置24に対して、制御データ、画像・音声データを送信する場合の機能のみを表している。第2のクライエント装置24から、サーバ装置22ないし第1のクライエント装置20に対して、制御データ、画像・音声データを送信する場合の機能は省略されているが、同じように設けられている。
図6において、第1のクライエント装置20のセッション開設要求手段60は、サーバ装置22の開設許諾手段64に対し、TCP/IPプロトコルによるセッション開設要求を送信する。これを受けた開設許諾手段64は、開設許諾を送り返す。
通話の開始指令を受けるなど制御データ送信が必要である状態になると、クライエント装置20のリクエスト手段62は、HTTP(S)プロトコルによるリクエストを、サーバ装置22の制御データ受信手段に送信する。この際、リクエスト手段62は、リクエスト中に制御データを含めて送信することによって制御データの伝送を行う。
サーバ装置22の制御データ受信手段66は、このリクエストを受けて、これに含まれる制御データを取得する。このようにして、第1のクライエント装置20からサーバ装置22への制御データの送信が行われる。
第2のクライエント装置24のセッション開設要求手段70は、サーバ装置22の開設許諾手段64に対し、TCP/IPプロトコルによるセッション開設要求を送信する。これを受けた開設許諾手段64は、開設許諾を送り返す。
開設許諾を受けた第2のクライエント装置24のリクエスト手段72は、サーバ装置22の制御データ送信手段68に対しHTTP(S)プロトコルによるリクエストを送信する。制御データ送信手段68は、送信すべき制御データがあるまで待機し、送信データが生じたら第2のクライエント装置24に対して送信データを含めたレスポンスの送信を行う。したがって、第2のクライエント装置24の制御データ受信待機手段74は、リクエストに対するレスポンスを待機する状態となる。
サーバ装置22から第2のクライエントに対して制御データを送信する必要が生じた際には、制御データ送信手段68は、上記のレスポンスとして制御データを送信することができる。
第2のクライエント装置24の制御データ受信待機手段74が、レスポンスとして制御データを受信すると、リクエスト手段72は、次の制御データ受信に備えて、サーバ装置22に対してリクエストを送信する。
なお、1つのリクエストに対して複数のレスポンスを受け取ることのできるプロトコルであれば、第2のクライエント装置24は、最初にリクエストを一度送るだけで、複数のレスポンスを受け取ることができる。
なお、上記では、第1のクライエント装置20とサーバ装置22の間、第2のクライエント装置24とサーバ装置22の間での制御データのやりとりを説明した。第1のクライエント装置20と第2のクライエント装置24との間で制御データをやりとりする場合には、サーバ装置22の制御データ受信手段66が受信した制御データを、制御データ送信手段68に渡すことにより実現することができる。
図7に、画像・音声データの通信に関する機能を示す。第1のクライエント装置20のセッション開設要求手段30は、サーバ装置22の開設許諾手段36に対してTCP/IPのセッション開設要求を送信する。これを受けて、開設許諾手段36は、開設許諾を送信リクエスト手段32に送り返す。これにより、第1のクライエント装置20とサーバ装置22との間に、TCP/IPのセッションが確立する。
第2のクライエント装置24のセッション開設要求手段48と、サーバ装置22の開設許諾手段36、受信リクエスト手段50との間でも、同様にしてTCP/IPのセッションが確立する。
セッションが確立すると、第2のクライエント24の受信リクエスト手段50は、サーバ装置22からデータを受信するためのHTTP(S)データ受信リクエストを、サーバ装置22に送信する。このリクエストは、「データサイズ不明」つまりchunked転送コーディングとして行う。
同様にして、第1のクライエント装置20の送信リクエスト手段32は、サーバ装置22にデータを送信するためのHTTP(S)データ送信リクエストを、サーバ装置22に送信する。このリクエストも、「データサイズ不明」つまりchunked転送コーディングとして行う。
次に、第1のクライエント装置20のコンテンツ送信手段34は、HTTP(S)リクエストによって、所定単位に分割した画像・音声を、サーバ装置22のコンテンツデータ受信手段42に送信する。chunked転送コーディングであるため、サーバ装置22のコンテンツデータ受信手段42は、一単位の画像・音声を受信してもレスポンスを行わない。したがって、第1のクライエント装置20とサーバ装置22のHTTP接続状態は維持される。
コンテンツデータ受信手段42によって受信された画像・音声は、バッファ44に一時記憶される。コンテンツデータ送信手段46は、バッファ44から画像・音声を読み出して、HTTP(S)レスポンスによって、第2のクライエント装置24のコンテンツ受信手段52に送信する。chunked転送コーディングであるため、サーバ装置22のコンテンツデータ送信手段46は、レスポンスを送信しても、HTTP接続状態は維持される。
なお、サーバ装置22と第2のクライエント装置24との間の通信状態が悪いなどの理由によって、バッファ44が満杯となった場合、画像・音声の廃棄処理を行う。つまり、コンテンツデータ送信手段46は、バッファ44に記憶された最も古い未送信データを削除し、新たに受信した画像・音声を記憶する。
以上のようにして、HTTPプロトコルを用いつつ、第1のクライエント装置20から第2のクライエント装置24へ、画像・音声を送信することができる。
図においては、第1のクライエント装置20から第2のクライエント装置24に対して画像・音声を送信する機能を説明している。第2のクライエント装置24から第1のクライエント装置20にデータを送信する機能も、各装置に同様に備わっているが、図では省略した。第2のクライエント装置24から第1のクライエント装置20に対する画像・音声の送信も同様にして行われる。
なお、この実施形態においては、HTTP(S)プロトコルを用いているが、HTTPと表示している。また、HTTP(S)プロトコルに代えて、HTTPプロトコルを用いても良い。
2.クライエント装置20、24のハードウエア構成
図8に、クライエント装置20、24のハードウエア構成を示す。図において、括弧を付さない符号は第1のクライエント装置20、括弧を付した符号は第2のクライエント装置24を示している。
CPU202には、メモリ204、ディスプレイ206、通信回路208、ハードディスク210、サウンドボード212、キーボード/マウス214が接続されている。
メモリ204は、CPU202のワーク領域として使用される。ディスプレイ206は、画像を表示するためのものである。通信回路208は、インターネットに接続するためのものである。
ハードディスク210には、オペレーティングシステム(OS)216、電話会議のための通信プログラム218が記録されている。OS216は、TCP/IPプロトコルのためのプログラムを含んでいる。通信プログラム218は、画像・音声を送受信するためのものであり、OS216と協働してその機能を発揮する。なお、単独でその機能を発揮する通信プログラム218を用いてもよい。
サウンドボード212には、マイク213、スピーカ215が接続されている。サウンドボード212は、マイク213によって取得したユーザの音声を、ディジタルデータに変換する。また、音声信号をスピーカ215に与えて音声を出力する。
キーボード/マウス214は、ユーザの操作を受けて指令などを入力するためのものである。
カメラ219は、ユーザを撮像して、画像をディジタル出力するものである。
3.サーバ装置22のハードウエア構成
図9に、サーバ装置22のハードウエア構成を示す。CPU222には、メモリ224、ディスプレイ226、通信回路228、ハーディスク230、キーボード/マウス232が接続されている。メモリ224は、CPU222のワーク領域として用いられる。ディスプレイ226は、制御状態をモニタリングするための表示などを行うものである。
通信回路228は、インターネットに接続するためのものである。ハードディスク230には、OS234、電話会議のための通信プログラム236が記録されている。OS234は、TCP/IPプロトコルのためのプログラムを含んでいる。通信プログラム236は、画像・音声を送受信するためのものであり、OS234と協働してその機能を発揮する。なお、単独でその機能を発揮する通信プログラム236を用いてもよい。
4.通信処理
図10a、図10b、図10cに、このテレビ会議システムの処理を示す。第1のクライエント装置20のOS216・通信プログラム218のフローチャート、サーバ装置22のOS234・通信プログラム236のフローチャート、第2のクライエント装置24のOS256・通信プログラム258のフローチャートを示している。
(1)初期設定と制御データ受信準備
まず、図10aに示す処理によって、初期設定と制御データ受信のための準備を行う。
ユーザが第1のクライエント装置20のキーボード214からサーバ装置22のURLを指定する。これを受けて、ステップS11において、第1のクライエント20のCPU202は、通信回路208によりインターネットを介して、TCP/IPセッション開設要求をサーバ装置22送信する。これに対し、サーバ装置22は、セッション開設許諾を返信する(ステップS31)。これにより、第1のクライエント装置20とサーバ装置22との間にTCP/IPプロトコルのセッションが開設される。このセッションは、制御データのために用いられる。
同じように、ユーザが第2のクライエント装置24のキーボード254からサーバ装置22のURLを指定する。これを受けて、ステップS31において、第2のクライエント24のCPU242は、通信回路248によりインターネットを介して、TCP/IPセッション開設要求をサーバ装置22送信する。これに対し、サーバ装置22は、セッション開設許諾を返信する(ステップS32)。これにより、第2のクライエント装置24とサーバ装置22との間にTCP/IPプロトコルのセッションが開設される。このセッションは、制御データのために用いられる。
次に、第1のクライエント装置20のCPU202は、制御データを含むHTTPリクエストをサーバ装置22に対して送信する(ステップS12)。この際、HTTPリクエストのメッセージヘッダ部分H(図11参照)に、制御データとして自らの装置ID(たとえば、"ID01"とする)を含めて送信する。これを受けたサーバ装置22は(ステップS33)、送られてきた装置ID"ID01"などをログイン中ユーザとしてメモリ224に記憶する(図12参照)。
一方、第2のクライエント装置24のCPU242も、制御データを含むHTTPリクエストをサーバ装置22に対して送信する(ステップS52)。この際、HTTPリクエストのメッセージヘッダ部分H(図11参照)に、制御データとして自らの装置ID(たとえば、"ID02"とする)を含めて送信する。これを受けたサーバ装置22は(ステップS34)、送られてきた装置ID"ID02"などをログイン中ユーザとしてメモリ224に記憶する(図12参照)。
次に、サーバ装置22のCPU222は、ステップS33にて受けた、第1のクライエント装置20からのHTTPリクエストに対するHTTPレスポンスを送信する(ステップS35)。この際、HTTPレスポンスのメッセージヘッダ部分H(図11参照)に、HTTPプロトコルによるセッションID(ここでは0001)を付して送信する。さらに、制御データとしてメモリ224に記憶されているログインユーザのIDをヘッダ部分Hに含めて送信する。
この際、サーバ装置22は、図13のセッション対応テーブル80(メモリ224)に、第1のクライエント装置20(ID01)に対して制御データを送信するためのセッションのID(00001)を記録する。
レスポンスを受け取った第1のクライエント装置20は、他のログインユーザのIDをメモリ204に記憶する。これにより、他にどのクライエント装置が接続されているかを知ることができる。この際、第1のクライエント装置20は、カメラなどの初期設定を行う。
さらに、第1のクライエント装置20では、図14Aに示すように、サーバ装置22からの制御データを受信するためのセッションID(0001)を、セッション対応テーブル82(メモリ204)に記録する。
次に、第1のクライエント装置20は、サーバ装置22から制御データを受け取ることができるように、上記セッションID(0001)を伴ったHTTPリクエストをサーバ装置22に送信しておく(ステップS14)。将来、サーバ装置22が制御データを第1のクライエント20に送る際には、このHTTPリクエストのレスポンスを用いることができる。このようにして、サーバ装置22側からのデータ送信を可能としている。
なお、このセッションによってレスポンスを受けた第1のクライエント装置20は、次の制御データ受信のために、リクエストを送信しておく。
上記と同様の処理がサーバ装置22と第2のクライエント装置24との間でも行われる。サーバ装置22のCPU222は、ステップS34にて受けた、第2のクライエント装置24からのHTTPリクエストに対するHTTPレスポンスを送信する(ステップS36)。この際、HTTPレスポンスのメッセージヘッダ部分H(図11参照)に、HTTPプロトコルによるセッションID(ここでは0002)を付して送信する。さらに、制御データとしてメモリ224に記憶されているログインユーザのIDをヘッダ部分Hに含めて送信する。
この際、サーバ装置22は、図13のセッション対応テーブル80(メモリ224)に、第2のクライエント装置24(ID02)に対して制御データを送信するためのセッションのID(0002)を記録する。
レスポンスを受け取った第2のクライエント装置24は、他のログインユーザのIDをメモリ244に記憶する。これにより、他にどのクライエント装置が接続されているかを知ることができる。この際、第2のクライエント装置24は、カメラなどの初期設定を行う。
さらに、第2のクライエント装置24では、図14Bに示すように、サーバ装置22からの制御データを受信するためのセッションID(0002)を、セッション対応テーブル84(メモリ244)に記録する。
次に、第2のクライエント装置24は、サーバ装置22から制御データを受け取ることができるように、上記セッションID(0002)を伴ったHTTPリクエストをサーバ装置22に送信しておく(ステップS54)。将来、サーバ装置22が制御データを第2のクライエント24に送る際には、このHTTPリクエストのレスポンスを用いることができる。このようにして、サーバ装置22側からのデータ送信を可能としている。
なお、このセッションによってレスポンスを受けた第2のクライエント装置24は、次の制御データ受信のために、リクエストを送信しておく。
なお、上記では、第1のクライエント20、第2のクライエント24に対してサーバ装置22が制御データを送信するためのセッションを準備した。第1のクライエント20、第2のクライエント24からサーバ装置22に対して制御データを送信するためのセッションは、その必要が生じた際にセッションを開設すればよい。
上記のようにして、初期設定と制御データ受信のための準備が整う。第1・第2のクライエント装置20、24における処理だけを示すフローチャートが図15である。このフローチャートを用いて、上記の処理を再び説明すると次のようになる。なお、ステップS110は、図10aのステップS11、S51に、ステップS111は、ステップS12、S52に、ステップS112は、ステップS13、S53に対応する。
ステップS113では、HTTPレスポンスとして受信した制御データが、どのような種類のものであるかを判断している。ここでは、他のクライエントが接続された旨の制御データを受け取っているので、ステップS117の他クライエント接続要求処理(画像・音声データの通信処理)を実行する。
(2)画像・音声データの通信処理
上記のようにして、初期設定と制御データ受信のための準備が整うと、図10b、図10cに示す画像・音声データの通信処理を行う。
図10bにおいて、第1のクライエント装置20は、画像・音声のデータを送信するためのTCP/IPセッションの開設要求を、サーバ装置22に送信する(ステップS15)。これを受けて、サーバ装置22は、セッション開設許諾を返送する(ステップS37)。
第2のクライエント装置24は、画像・音声データを受信するためのTCP/IPセッションの開設要求を、サーバ装置22に送信する(ステップS55)。これを受けて、サーバ装置22は、セッション開設許諾を返送する(ステップS38)。
これに続き、第2のクライエント装置24は、レスポンスとしてサーバ装置22からデータを受信できるように、HTTPリクエストをサーバ装置22に送信する(ステップS56)。なお、この際のHTTPリクエストは、chunked転送コーディングとし、一つのリクエストに対して複数のレスポンスを受けることができるようにする。
なお、図においては1つのセッションしか示されていないが、画像データ送信用のセッションと、音声データ送信用のセッションがそれぞれ開設される。
一方、第1のクライエント装置20は、サーバ装置22に対し、それぞれのセッションの上でHTTPリクエストによって画像データ・音声データを所定単位ごとに送信する。なお、この画像データ・音声データは、マイク213、カメラ219から取得したものである。この際のHTTPリクエストは、chunked転送コーディングとし、複数のリクエストを連続して送信できるようにしている(ステップS16、S17・・)。
サーバ装置22は、第1のクライエント装置20から送信されてきた画像データ・音声データを受けると、メモリ224の第1のクライエント装置用のバッファに記録する。このバッファも、画像データ、音声データごとに設けられている。
続いて、サーバ装置22は、第1のクライエント装置用のバッファから画像データ・音声データを読み出し、メモリ224に記憶している全てのログインクライエント(送信元のクライエントを除く)に対して、画像・音声データをレスポンスとして送信する(ステップS40)。なお、図10bの例では、相手方となるクライエントは第2のクライエント24だけであるから、第2のクライエント24に対してのみ画像データ・音声データの転送を行う。
第2のクライエント24は、画像データ・音声データを受信して(ステップS57)、ディスプレイ246、スピーカ255から出力する。以後、この転送処理が繰り返される(ステップS17、S18、S41、S42、S58、S59)。このようにして、第1のクライエント20のユーザの画像、音声が、第2のクライエント24のユーザに伝達される。
なお、第2のクライエント装置24からサーバ装置22に対する画像・音声データの送信も同じように、画像データ、音声データのセッションがそれぞれ設けられて行われる。
上記の通信処理は、クライエント装置の側だけで見ると、図15の他クライエント接続要求処理(ステップS117)に該当する。他クライエント接続要求処理の詳細を、図16に示す。左側が画像データ(音声データ)の送信処理であり、右側が画像データ(音声データ)の受信処理である。
図において、ステップS201、S301は、図10bのステップS15、S55に対応し、ステップS202、S302は、図10bのステップS16、S56に対応している。
ステップS202において、第1のクライエント装置20または第2のクライエント装置24(以下クライエント装置という)は、HTTPリクエスト(送信要求)により、画像データ(音声データ)をサーバ装置22に送信する(ステップS202)。具体的には、HTTPリクエストのメッセージボディ部分B(図11参照)に、画像データ(音声データ)を含めて送信する。なお、ここでは、連続して画像データ(音声データ)を送信できるようにしているので、サーバ装置22からのレスポンスが返ってこない。つまり、サーバ装置22によるセッションIDが決定されないので、クライエント装置は、自らのクライエントIDをHTTPリクエストのメッセージヘッダ部分H(図11参照)に記述して送信する。
この際、クライエント装置は、図14に示すセッションテーブル82、84の制御データ送信用のセッション識別子として、このクライエントIDを記録する。図14では、クライエントID(ID01)(ID02)が記録されている。
次に、クライエント装置のCPUは、ステップS203において、通信エラーが生じたかどうかを判断する。通信エラーやタイムアウトがなく正常にデータが送出できた場合には、続いて次に送るべき画像データ(音声データ)をHTTPリクエストとして送信する(ステップS204)。この際、上記のクライエントIDをヘッダ部分Hに記述して送信する。
なお、クライエント装置では、リアルタイムにカメラ219(259)やマイク213(253)から取得した画像データ(音声データ)を、メモリ204(244)にバッファリングし、これを所定単位ずつ読み出して送信する。
ステップS205では、通信エラーが生じたかどうかを判断する。通信エラーやタイムアウトがなく正常にデータが送出できた場合には、ステップS204に戻って、次の画像データ(音声データ)の送信を行う。
このようにして、連続的に画像データ(音声データ)を、サーバ装置22に対して送信することができる。
クライエント装置は、自身が有する送信プログラムから通信エラーである旨を受けた場合や、正常にインターネットに送出できた旨の通知を所定時間経過しても受けなかった場合(タイムオーバー)には、ステップS203、S205において、ステップS206に分岐する。
ステップS206において、クライエント装置は、サーバ装置22とのTCP/IPセッション(受信)を終了する(ステップS206)。
さらに、クライエント装置は、キーボード/マウス214から終了指令が入力されたかを判断する(ステップS207)。終了指令が入力されていれば、画像・音声データの通信処理(他クライエント処理)を終了する。なお、終了指令がある場合には、制御データを送信するためのセッションをサーバとの間で開設し、終了する旨を伝える。
終了指令がなければ、相手方クライエント装置との通信を行うため、再度ステップS201以下を実行する。
上記のようにして、画像データ・音声データをサーバ装置に送信する処理が行われる。
上記と同じようにして、サーバ装置22から画像データ・音声データを受信する処理が行われる(図16の右側のフローチャート)。なお、受信処理においては、クライエント装置は、HTTPリクエスト(受信要求)を行い(ステップS302)、HTTPレスポンスとして所定単位の画像データ(音声データ)を連続して受信している(ステップS304)。クライエント装置の側からクライエントIDをセッション識別子として送信する点は同じである。
また、自身が有する受信プログラムから通信エラーである旨を受けた場合や、正常に受信できた旨の通知を所定時間経過しても受けなかった場合(タイムオーバー)には、通信エラーであると判定する。
上記に説明してきた画像・音声データの通信処理におけるサーバ装置22のフローチャートを、図17に示す。この図では、第1のクライエント装置20からの画像データ(音声データ)を、第2のクライエント装置24に転送する場合の処理を示している。第2のクライエント装置24からの画像データ(音声データ)を、第1のクライエント装置20に転送する場合の処理も同様である。図において、左側は受信プロセス、右側は送信プロセスである。
ステップS401は図10bのステップS37に対応し、ステップS402はステップS39に対応する。また、ステップS502は図10bのステップS38に対応する。
受信プロセスのステップS402において、サーバ装置22のCPU222は、第1のクライエント20から画像データを伴うHTTPリクエスト(chunked送信要求)を受ける。なお、画像データと同じように、音声データについても並行して同様の処理がなされる。
送られてきたHTTPリクエストのヘッダには、クライエントIDが記述されているので(図16、ステップS202参照)、サーバ装置22は、いずれのクライエントからのデータであるかを判別することができる。また、画像データであるか、音声データであるかは、ヘッダに記述されたデータ形式を見ることによって判別できる。
次に、サーバ装置22は、第1のクライエント用のバッファB1(メモリ224)がいっぱいであるかどうかを判断する(ステップS403)。バッファB1に余裕があれば、受信した画像データ(音声データ)をバッファB1に記録する。
サーバ装置22は、クライエント装置20から制御データ(図16のステップS402によるセッションにて受け取る)として終了要求を受け取ったかどうかを判断する(ステップS405)。受け取っていなければ、画像データ(音声データ)の受信を継続し(ステップS406)、ステップS403を経て、ステップS404においてバッファB1に記録する。
受け取っていれば、第1のクライエント装置20とのTCP/IPセッションの全てを終了する(ステップS407)。さらに、第2のクライエント装置24に対して、第1のクライエント装置20が終了した旨を、制御データ(セッション0002)として送信する。この際、サーバ装置22は、図13のセッションテーブル80を参照して、何れのセッションを用いるかを知ることができる。
これを受けた第2のクライエント装置24は、サーバ装置22との間の第1のクライエントからのデータを受信するためのTCP/IPセッションを終了する(図示せず)。
一方、送信プロセスのステップS502において、サーバ装置22のCPU222は、第2のクライエント24からHTTPリクエスト(chunked受信要求)を受ける。なお、画像データと同じように、音声データについても並行して同様の処理がなされる。
送られてきたHTTPリクエストのヘッダには、クライエントIDが記述されているので(図16、ステップS302参照)、サーバ装置22は、いずれのクライエントからのデータであるかを判別することができる。また、画像データ、音声データのそれぞれのためにセッションが設けられているので、画像データであるか音声データであるかの区別が容易である。
次に、サーバ装置22は、ステップS503において、バッファB1から画像データ(音声データ)を読み出す。読み出した画像データ(音声データ)を、HTTPレスポンスとして、第2のクライエント装置24に向けて送信する(ステップS504)。この際、サーバ装置22は、HTTPレスポンスのメッセージヘッダに、この画像データが第1のクライエント装置20からの転送データであることを示すため転送元クライエントのIDを記述して送信する。
サーバ装置22は、クライエント装置24から制御データ(図16のステップS307によるセッションにて受け取る)として終了要求を受け取ったかどうかを判断する(ステップS507)。受け取っていなければ、画像データ(音声データ)の読み出しと送信を継続(ステップS505、S506)する。
受け取っていれば、第2のクライエント装置24とのTCP/IPセッションの全てを終了する(ステップS508)。さらに、第1のクライエント装置20に対して、第2のクライエント装置24が終了した旨を、制御データ(セッション0001)として送信する。この際、サーバ装置22は、図13のセッションテーブル80を参照して、何れのセッションを用いるかを知ることができる。
これを受けた第1のクライエント装置20は、サーバ装置22との間の第2のクライエントからのデータを受信するためのTCP/IPセッションを終了する(図示せず)。
上記のようにして、第1のクライエント装置20からの画像データ(音声データ)が、第2のクライエント装置24に転送される。送信プロセスは、ステップS503において、バッファB1から画像データ(音声データ)を読み出すとともに、これをバッファB1から削除する。したがって、送信が順調に行われれば、バッファB1が満杯にならない。
しかし、画像データ(音声データ)の第2のクライエント装置24への送信が、通信障害などによって遅れると、バッファB1が満杯になってしまう。この実施形態では、バッファB1が一杯になって受信した画像データの書き込みができなくなれば、バッファB1中の最も古いデータを削除して、受信したデータを書き込むようにしている。
このようにして、古い未送信の画像データ(音声データ)を廃棄することにより、リアルタイム性を維持するようにしている。
5.第2の実施形態
(1)実施形態の内容
上記実施形態では、1対1の通信、すなわちテレビ電話について説明した。しかし、図18に示すように、クライエント装置が3台以上接続されたテレビ会議システムとして使用することができる。
このテレビ会議システムにおける初期設定と制御データ受信準備のフローチャートを、図19に示す。この図では、TCP/IPのセッション開設処理は省略している。
第1のクライエント装置20は、HTTPリクエストをサーバ装置22に送信する(ステップS12)。サーバ装置22は、これを受けて、クライエントID(ID01)をログイン中ユーザとして記録する(図12参照)。
第2のクライエント装置24は、HTTPリクエストをサーバ装置22に送信する(ステップS52)。サーバ装置22は、これを受けて、クライエントID(ID02)をログイン中ユーザとして記録する(図12参照)。さらに、サーバ装置22は、第1のクライエント装置20、第2のクライエント装置24に対し、レスポンスを返信する(ステップS35、S36)。この際、レスポンスに、ログイン中ユーザ情報を含める。
第1のクライエント装置20、第2のクライエント装置24は、制御データを受信するために、リクエストをサーバ装置22に送信しておく(ステップS14、S54)。
第3のクライエント装置25が、リクエストをサーバ装置22に送信すると、サーバ装置22は、クライエントID(ID03)をログイン中ユーザとして記録する(図12参照)。さらに、サーバ装置22は、ログイン中ユーザを含めたレスポンスを、第1のクライエント装置20、第2のクライエント装置24、第3のクライエント装置25に送信する。
これを受けて、クライエント装置は、どの端末装置が接続されているかを知ることができる。なお、第3のクライエント装置25が、制御データを受信するために、リクエストをサーバ装置22に送信しておくのは他のクライエントと同じである(ステップS95)。
図20に、サーバ装置22と各クライエント装置20、24、25との間のデータ伝送路を示す。図19にて説明した制御データ伝送のためのセッションCS1、CS2、CS3が設けられている。また、図19では説明しなかったが、クライエント装置20、24、25からサーバ装置22に対して制御データを伝送するためのセッションC1S、C2S、C3Sが設けられている。セッションC1S、C2S、C3Sは、通常のHTTPプロトコルによって、クライエント装置側からリクエストを行うことにより実現できる。
各クライエント装置とサーバ装置22との間では、クライエント装置からサーバ装置22に画像データ(音声データ)を送信するためのセッション、サーバ装置22からクライエント装置に他の全てのクライエント装置からの画像データ(音声データ)を受信するためのセッションが設けられている。
第1のクライエント装置20についていうと、セッションV1Sは画像データをサーバ装置22に送信するためのもの、セッションA1Sは音声データをサーバ装置22に送信するためのものである。また、セッションV21は第2のクライエント装置24の画像データを受信するためのもの、セッションA21は第2のクライエント装置24の音声データを受信するためのもの、セッションV31は第3のクライエント装置25の画像データを受信するためのもの、セッションA31は第3のクライエント装置25の音声データを受信するためのものである。
これらセッションは、図10b、図10cと同じようにchunkedコーディングによる連続的なデータ転送を可能としたものである。たとえば、サーバ装置22が、第1のクライエント装置20から、セッションV1S、A1Sによって、画像データ(音声データ)を受け取ると、そのヘッダの記述により、第1のクライエント装置20からのデータであることを知る(図16、S202参照)。サーバ装置22は、この画像データ(音声データ)を、セッションV12、A12を用いて、第2のクライエント装置24に送信する。また、セッションV13、A13を用いて、第3のクライエント装置25に送信する。この際、ヘッダ中に、第1のクライエント装置20からのデータであることを記述しておく。したがって、受け取ったクライエント装置は、いずれのクライエントからの画像データ(音声データ)であるかを判別することができる。
サーバ装置22には、各クライエント装置ごと、画像・音声データごとに、バッファB1V、B1A,B2V、B2A、B3V、B3Aを有している。
図21に、第1のクライエント装置20の画像データのためのバッファB1Vと、サーバ装置22の受信プロセス、送信プロセスとの関係を示す。第1のクライエント装置22のための受信プロセスは、第1のクライエント装置20から画像データを受信し、バッファB1Vに記録する(図17、ステップS402、S404、S406参照)。
第2のクライエント装置24のための送信プロセスは、バッファB1Vから画像データを読み出して、第2のクライエント装置24に送信する(図17、ステップS503、S504、S505参照)。
第3のクライエント装置25のための送信プロセスは、バッファB1Vから画像データを読み出して、第3のクライエント装置25に送信する(図17、ステップS503、S504、S505参照)。
上記の処理は、各クライエント装置において共通である。したがって、たとえば、第1のクライエント装置20のディスプレイ206には、図22に示すように、自らのカメラで取得した動画P1、他のクライエント装置24、25の動画P2、P3を表示することができる。
音声データは、バッファB1Aを使って同様に得ることができる。このようにしてテレビ会議システムを実現することができる。
(2)クライエント装置終了時の処理
なお、あるクライエント装置のみが終了した場合(たとえば、当該クライエント装置において終了指令が入力された場合)には、当該クライエント装置に関する処理を終了しなければならない。この処理(図15のステップS118)を、図23を用いて説明する。
ここでは、第1のクライエント装置20に終了指令が入力されたものとして説明する。終了指令が入力されると、クライエント装置20は、サーバ装置22に対して、終了要求を制御データとして送信する。サーバ装置22は、その受領確認を、制御データとして返送する。これを受けて、第1のクライエント装置20は、全てのTCP/IPセッションを終了する。
一方、上記終了指令を受けたサーバ装置22は、他のクライエント装置に対して、第1のクライエント装置20が終了した旨を制御データとして通信する。図においては、第3のクライエント装置25は示していないが、処理内容は第2のクライエント装置24と同様である。したがって、以下、第2のクライエント装置24について説明を行う。
サーバ装置22から第1のクライエント装置20が終了した旨を受け取った第2のクライエント装置24は、受領の確認をサーバ装置22に返信する。さらに、第1のクライエント装置20の画像データ・音声データを受信するためにサーバ装置22との間で形成したセッションV12、A12を終了する。
上記のようにして、あるクライエント装置が終了した場合の処理を行うことができる。
(3)通信エラー時の処理
クライエント装置から終了要求がサーバ装置に送られてきた場合には、明確に処理をすることができる。しかし、障害などが生じた場合、終了処理を行わずにクライエント装置がプログラムを強制終了した場合などには、クライエント装置から終了指令は送られて来ない。しかし、このような場合にも、当該クライエント装置に対する終了処理を行う必要がある。そこで、この実施形態では、図24に示すような処理をサーバ装置22が行うことによってこれに対応している。
受信プロセスは、画像データ(音声データ)をクライエント装置(ここでは、第1のクライエント装置とする)から受信する(ステップS450)。受信プロセスは、自身が有する受信チェック機能により完全な受信ができたかどうかを判断する(ステップS451)。正常であれば、画像データ(音声データ)をバッファに記録する(ステップS452)。
異常受信が報告された場合や、正常受信が所定時間内に報告されなかった場合には、さらに、所定の待機時間を経過するまでに、第1のクライエント装置20が復帰したかどうかを判断する。通信エラーが生じただけの場合には、図16のステップS207、S201以下に示すように、第1のクライエント装置20がTCP/IPの再接続を行うので、復帰してくる可能性がある。しかし、強制終了した場合や、極めて重大な通信障害が生じた場合には、第1のクライエント装置20は、復帰しない。
そこで、サーバ装置22は、所定の待機時間を経過しても第1のクライエント装置20が復帰しない場合には、他のクライエント装置に対して、第1のクライエント装置20が終了した旨を制御データにより伝える。これにより、他のクライエント装置は、図23と同じように第1のクライエント装置20に対する終了処理を行うことができる。
サーバ装置22は、送信プロセスにおいても同じように、送信エラー・タイムアウトを検知し、所定の待機時間経過後も復帰しないかどうかを判断して、上記と同様の処理を行っている。
6.その他の実施形態
(1)あるクライエントからサーバ装置を介して静止画を送信することもできる。この場合、静止画データを送信した後、サーバ装置22から他のクライエント措置に対して、画像送信のためのセッションにおいて何もデータが送出されない状態が続くことになる。クライエント装置側のルータによっては、データが送られてこない状態が続くと、セッションを終了してしまうものもある。
そこで、サーバ装置22は、所定の時間以上送信がされない画像データ・音声データのセッションにおいて、ダミーデータを送信するようにしている。このダミーデータは、ヘッダにダミーである旨が記述されているので、受信したクライエント装置側ではこれを無視することができる。
(2)制御データのセッションを用いて、文字データのやりとりをすることができる。クライエント装置は、制御データのヘッダに自己のクライエントIDを記述し、ボディに文字データを含めてサーバ装置22に送信する。サーバ装置22は、各クライエント装置からの文字データを受けて、いずれのクライエント装置からのデータであるかが分かるようにクライエントIDを付して各クライエント装置に送信する。
クライエント装置では、これを受けて、他のクライエント装置の文字データをディスプレイに表示することができる。
なお、あるクライエント装置から、特定のクライエント装置に対してのみ文字データを送信したい場合には、発信元クライエントIDだけでなく、送信先クライエントIDをヘッダに付して、サーバ装置22に送信する。サーバ装置22は、この送信先を見て、当該クライエント装置に対してのみ文字データを送信する。
この場合、画像データ・音声データと同じように、chunkedコーディングによって連続的に送受信しても良いが、文字データの容量は小さいので、制御データと同じようにリクエスト・レスポンスの形式にて送受信することが好ましい。
(3)上記実施形態では、TCP/IPプロトコル、HTTPプロトコルを用いている。しかし、リクエスト、レスポンス形式を採用するプロトコルであれば適用することができる。
(4)また、上記実施形態では、HTTPプロトコルを用いているが、図25に示すように、TCP/IPプロトコルだけでも通信を行うことができる。図では、画像データ・音声データについてのみ示しているが、制御データについても同様である。
(5)上記実施形態においては、バッファが一杯になった場合にコンテンツデータを破棄している。しかし、各コンテンツデータに送信時(あるいは生成時)のタイムスタンプを付しておき、現在時刻と比べて所定以上の差があれば、コンテンツデータを破棄するようにしても良い。
(6)また、上記実施形態では、制御データの通信においてTCP/IPのセッション確立後、セッションを終了することなくHTTPのリクエストを出している。しかし、TCP/IPのバージョンによっては、このようなことができない。その場合には、HTTPのリクエスト一回ごとに、TCP/IPのセッションを開設すればよい。
RTPプロトコルによる通信を示す図である。 UDP/RTPプロトコルによる、ルータを介した通信を示す図である。 HTTPプロトコルによる、ルータを介した通信を示す図である。 この発明の一実施形態による通信システムの全体構成を示す図である。 通信システムの概要を示す図である。 通信システムの機能ブロック図である。 通信システムの機能ブロック図である。 クライエント装置のハードウエア構成を示す図である。 サーバ装置のハードウエア構成を示す図である。 初期設定と制御データ受信準備のフローチャートである。 画像音声データ通信のフローチャートである。 画像音声データ通信のフローチャートである。 HTTPリクエストのデータ形式である。 ログイン中ユーザを記録したテーブルである。 セッション対応テーブルである。 セッション対応テーブルである。 クライエント装置における処理フローチャートである。 クライエント装置における処理フローチャートである。 サーバ装置における処理フローチャとである。 3台以上のクラエント装置を接続する場合の例である。 通信処理を示すフローチャートである。 サーバ装置と各クライエント装置との間に形成されたセッションを示す図である。 受信プロセス、送信プロセスとバッファとの関係を示す図である。 クライエント装置におけるディスプレイ表示である。 サーバ装置と各クライエント装置との間に形成されたセッションを示す図である。 サーバ装置におけるフローチャートである。 HTTPプロトコルを用いない場合のフローチャートである。
符号の説明
20・・・第1のクライエント装置
22・・・サーバ装置
24・・・第2のクライエント装置
34・・・コンテンツ送信手段
42・・・コンテンツデータ受信手段
44・・・バッファ
46・・・コンテンツデータ送信手段
52・・・コンテンツ受信手段

Claims (23)

  1. (d)サーバ装置と、当該サーバ装置と通信可能な(e)第1〜第nのクライエント装置とを備えた通信システムであって、
    前記第1〜第nのクライエント装置は、それぞれ、
    (e1)コンテンツデータ送信のために、TCP/IPの上りセッション開設要求を前記サーバ装置に送信する手段と、
    (e2)前記サーバ装置からのTCP/IPの上りセッション開設許諾を受けて、送信データサイズを不明とするHTTPプロトコルの連続的送信リクエストを前記サーバ装置に送信する手段と、
    (e3)前記上りセッションにおける連続的送信リクエストとして、前記コンテンツデータを所定単位ごとに前記サーバ装置に対し送信する手段と、
    (e4)前記コンテンツデータ受信のために、TCP/IPの下りセッション開設要求を前記サーバ装置に送信する手段と、
    (e5)前記サーバ装置からのTCP/IPの下りセッション開設許諾を受けて、受信データサイズを不明とするHTTPプロトコルの連続的なコンテンツデータ受信のためのリクエストを前記サーバ装置に予め送信することにより、前記サーバ装置からの連続的なレスポンスを受信可能にする手段と、
    (e6)前記下りセッションにおける連続的なコンテンツデータ受信のためのリクエストに対する連続的なレスポンスとして、前記サーバ装置からの前記所定単位ごとのコンテンツデータを受信する手段と、
    を備えており、
    前記サーバ装置は、
    (d1)前記第1〜第nのクライエント装置から、それぞれTCP/IPの前記上りセッション開設要求を受けて、それぞれに開設許諾を送り返し、第1〜第nの前記上りセッションを開設する手段と、
    (d2)前記第1〜第nのクライエント装置から、前記第1〜第nの各上りセッションによって、HTTPプロトコルの前記連続的送信リクエストを受信する手段と、
    (d3)前記第1〜第nのクライエント装置から、それぞれTCP/IPの前記下りセッション開設要求を受けて、それぞれに開設許諾を送り返し、第1〜第nの前記下りセッションを開設する手段と、
    (d4)前記第1〜第nのクライエント装置から、前記第1〜第nの各下りセッションによって、HTTPプロトコルの前記連続的なコンテンツデータ受信のためのリクエストを受信する手段と、
    (d5)前記第1〜第nの各上りセッションによって、前記第1〜第nのクライエント装置から、HTTPプロトコルの前記連続的送信リクエストとして送信されてくる、前記所定単位ごとのコンテンツデータを受信する手段と、
    (d6)前記第1〜第nのクライエント装置から受信した前記第1〜第nの所定単位ごとのコンテンツデータを記憶する第1〜第nのバッファと、
    (d7)前記第1〜第nのバッファから前記所定単位ごとの第1〜第nコンテンツデータを読み出して、前記各コンテンツデータを、それぞれ、前記第1〜第nのクライエント装置のうちの他のクライエント装置に、対応する前記第1〜第nの下りセッションを用いて、前記連続的なコンテンツデータ受信のためのリクエストに対するレスポンスとして連続的に送信する手段と、
    を備えたことを特徴とする通信システム。
  2. 第1〜第nのクライエント装置とともに通信システムを構築するサーバ装置であって、
    (d1)前記第1〜第nのクライエント装置から、それぞれTCP/IPの前記上りセッション開設要求を受けて、それぞれに開設許諾を送り返し、第1〜第nの前記上りセッションを開設する手段と、
    (d2)前記第1〜第nのクライエント装置から、前記第1〜第nの各上りセッションによって、HTTPプロトコルの前記連続的送信リクエストを受信する手段と、
    (d3)前記第1〜第nのクライエント装置から、それぞれTCP/IPの前記下りセッション開設要求を受けて、それぞれに開設許諾を送り返し、第1〜第nの前記下りセッションを開設する手段と、
    (d4)前記第1〜第nのクライエント装置から、前記第1〜第nの各下りセッションによって、HTTPプロトコルの前記連続的なコンテンツデータ受信のためのリクエストを受信する手段と、
    (d5)前記第1〜第nの各上りセッションによって、前記第1〜第nのクライエント装置から、HTTPプロトコルの前記連続的送信リクエストとして送信されてくる、前記所定単位ごとのコンテンツデータを受信する手段と、
    (d6)前記第1〜第nのクライエント装置から受信した前記第1〜第nの所定単位ごとのコンテンツデータを記憶する第1〜第nのバッファと、
    (d7)前記第1〜第nのバッファから前記所定単位ごとの第1〜第nコンテンツデータを読み出して、前記各コンテンツデータを、それぞれ、前記第1〜第nのクライエント装置のうちの他のクライエント装置に、対応する前記第1〜第nの下りセッションを用いて、前記連続的なコンテンツデータ受信のためのリクエストに対するレスポンスとして連続的に送信する手段と、
    を備えたことを特徴とするサーバ装置。
  3. 第1〜第nのクライエント装置とともに通信システムを構築するサーバ装置をコンピュータによって実現するためのサーバプログラムであって、
    (d1)前記第1〜第nのクライエント装置から、それぞれTCP/IPの前記上りセッション開設要求を受けて、それぞれに開設許諾を送り返し、第1〜第nの前記上りセッションを開設する手段と、
    (d2)前記第1〜第nのクライエント装置から、前記第1〜第nの各上りセッションによって、HTTPプロトコルの前記連続的送信リクエストを受信する手段と、
    (d3)前記第1〜第nのクライエント装置から、それぞれTCP/IPの前記下りセッション開設要求を受けて、それぞれに開設許諾を送り返し、第1〜第nの前記下りセッションを開設する手段と、
    (d4)前記第1〜第nのクライエント装置から、前記第1〜第nの各下りセッションによって、HTTPプロトコルの前記連続的なコンテンツデータ受信のためのリクエストを受信する手段と、
    (d5)前記第1〜第nの各上りセッションによって、前記第1〜第nのクライエント装置から、HTTPプロトコルの前記連続的送信リクエストとして送信されてくる、前記所定単位ごとのコンテンツデータを受信する手段と、
    (d6)前記第1〜第nのクライエント装置から受信した前記第1〜第nの所定単位ごとのコンテンツデータを記憶する第1〜第nのバッファと、
    (d7)前記第1〜第nのバッファから前記所定単位ごとの第1〜第nコンテンツデータを読み出して、前記各コンテンツデータを、それぞれ、前記第1〜第nのクライエント装置のうちの他のクライエント装置に、対応する前記第1〜第nの下りセッションを用いて、前記連続的なコンテンツデータ受信のためのリクエストに対するレスポンスとして連続的に送信する手段と、
    をコンピュータによって実現するためのサーバプログラム。
  4. 請求項1〜3のいずれかのシステム、装置またはプログラムにおいて、
    前記サーバ装置は、
    (d8)受信した第1〜第nのコンテンツデータを記録するための第1〜第nバッファを備え、
    前記送信手段は、第1〜第nのバッファから第1〜第nのコンテンツデータを読み出して送信し、
    前記受信手段は、第1〜第nのバッファのそれぞれについて、バッファに余裕があれば、受信したコンテンツデータをバッファに記録し、バッファに余裕がなければ、受信したコンテンツデータをバッファに記録しないか、または、バッファに記録されたコンテンツデータのいずれかを削除して受信したコンテンツデータをバッファに記録する処理を行うことを特徴とするもの。
  5. 請求項4のシステム、装置またはプログラムにおいて、
    前記受信手段は、バッファに所定以上のコンテンツデータが記録されればバッファに余裕がないと判断することを特徴とするもの。
  6. 請求項4のシステム、装置またはプログラムにおいて、
    前記受信手段は、受信したコンテンツデータのタイムスタンプが現在時刻よりも所定時間以上の差があれば、バッファに余裕がないと判断することを特徴とするもの。
  7. 請求項1〜6のいずれかのシステム、装置またはプログラムにおいて、
    前記送信手段は、所定時間以上送信すべきコンテンツデータがない場合には、ダミーデータを送信することを特徴とするもの。
  8. 請求項1〜7のいずれかのシステム、装置またはプログラムにおいて、
    前記第1〜第nのクライエント装置のそれぞれは、
    (e7)制御データ受信のために、TCP/IPの制御下りセッション開設要求をサーバ装置に送信する手段と、
    (e8)制御下りセッションにおいて、サーバ装置からの制御データを受信すると、次の制御データ受信のために、サーバ装置に対してリクエストを送信する手段と、
    (e9)制御下りセッションにより、サーバ装置からレスポンスとして制御データを受信する手段と、
    (e10)制御データ送信のために、TCP/IPの制御上りセッション開設要求をサーバ装置に送信する手段と、
    (e11)制御上りセッションにより、リクエストとしてサーバ装置に対し制御データを送信する手段と、
    を備えたことを特徴とするもの。
  9. 請求項1〜8のいずれかのシステム、装置またはプログラムにおいて、
    前記サーバ装置は、
    (d9)制御データのためのTCP/IPの制御下りセッション開設要求を第1〜第nのクライエント装置から受けて、セッション開設許諾を送信する手段と、 (d10)制御下りセッションを用いて、レスポンスとして制御データを送信する手段と、
    (d11)制御データのためのTCP/IPの制御上りセッション開設要求を第1〜第nのクライエント装置から受けて、セッション開設許諾を送信する手段と、 (d12)制御上りセッションにより、リクエストとして制御データを受信する手段と、
    を備えたことを特徴とするもの。
  10. 請求項1〜9のいずれかのシステム、装置またはプログラムにおいて、
    前記サーバ装置は、第1〜第nのクライエント装置のいずれかから、制御上りセッションによって、通信を終了する旨の制御データを受け取った場合に、他のクライエント装置に対し、制御下りセッションを用いて、当該終了するクライエント装置を特定した制御データを送信することを特徴とするもの。
  11. 請求項10のシステム、装置またはプログラムにおいて、
    前記サーバ装置は、第1〜第nのクライエント装置のいずれかとのコンテンツデータの送信または受信に障害がある場合にも、通信を終了する旨の制御データを受け取った場合と同様の処理を行うことを特徴とするもの。
  12. 請求項10または11のシステム、装置またはプログラムにおいて、
    前記終了するクライエント装置を特定した制御データを受信したクライエント装置は、当該終了するクライエント装置のコンテンツデータを受信するために開設していたサーバ装置との間のセッションを終了することを特徴とするもの。
  13. 請求項1〜12のいずれかのシステム、装置またはプログラムにおいて、
    前記連続的送信リクエストおよび前記連続的なコンテンツデータ受信のためのリクエストは、chunked転送コーディングによることを特徴とするもの。
  14. サーバ装置とともに通信システムを構築するクライエント装置であって、
    (e1)コンテンツデータ送信のために、TCP/IPの上りセッション開設要求を前記サーバ装置に送信する手段と、
    (e2)前記サーバ装置からのTCP/IPの上りセッション開設許諾を受けて、送信データサイズを不明とするHTTPプロトコルの連続的送信リクエストを前記サーバ装置に送信する手段と、
    (e3)前記上りセッションにおける連続的送信リクエストとして、前記コンテンツデータを所定単位ごとに前記サーバ装置に対し送信する手段と、
    (e4)前記コンテンツデータ受信のために、TCP/IPの下りセッション開設要求を前記サーバ装置に送信する手段と、
    (e5)前記サーバ装置からのTCP/IPの下りセッション開設許諾を受けて、受信データサイズを不明とするHTTPプロトコルの連続的なコンテンツデータ受信のためのリクエストを前記サーバ装置に予め送信することにより、前記サーバ装置からの連続的なレスポンスを受信可能にする手段と、
    (e6)前記下りセッションにおける連続的なコンテンツデータ受信のためのリクエストに対する連続的なレスポンスとして、前記サーバ装置からの前記所定単位ごとのコンテンツデータを受信する手段と、
    を備えたクライエント装置。
  15. サーバ装置とともに通信システムを構築するクライエント装置をコンピュータによって実現するためのクライエントプログラムであって、
    (e1)コンテンツデータ送信のために、TCP/IPの上りセッション開設要求を前記サーバ装置に送信する手段と、
    (e2)前記サーバ装置からのTCP/IPの上りセッション開設許諾を受けて、送信データサイズを不明とするHTTPプロトコルの連続的送信リクエストを前記サーバ装置に送信する手段と、
    (e3)前記上りセッションにおける連続的送信リクエストとして、前記コンテンツデータを所定単位ごとに前記サーバ装置に対し送信する手段と、
    (e4)前記コンテンツデータ受信のために、TCP/IPの下りセッション開設要求を前記サーバ装置に送信する手段と、
    (e5)前記サーバ装置からのTCP/IPの下りセッション開設許諾を受けて、受信データサイズを不明とするHTTPプロトコルの連続的なコンテンツデータ受信のためのリクエストを前記サーバ装置に予め送信することにより、前記サーバ装置からの連続的なレスポンスを受信可能にする手段と、
    (e6)前記下りセッションにおける連続的なコンテンツデータ受信のためのリクエストに対する連続的なレスポンスとして、前記サーバ装置からの前記所定単位ごとのコンテンツデータを受信する手段と、
    をコンピュータによって実現するためのクライエントプログラム。
  16. 請求項14または15の装置またはプログラムにおいて、
    サーバ装置から、終了するクライエント装置を特定した制御データを受信すると、当該終了するクライエント装置のコンテンツデータを受信するために開設していたサーバ装置との間のセッションを終了することを特徴とするもの。
  17. 請求項14〜16の装置またはプログラムにおいて、
    前記クライエント装置は、
    (e7)制御データ受信のために、TCP/IPの制御下りセッション開設要求をサーバ装置に送信する手段と、
    (e8)制御下りセッションにおいて、サーバ装置からの制御データを受信すると、次の制御データ受信のために、サーバ装置に対してリクエストを送信する手段と、 (e9)制御下りセッションにより、サーバ装置からレスポンスとして制御データを受信する手段と、
    (e10)制御データ送信のために、TCP/IPの制御上りセッション開設要求をサーバ装置に送信する手段と、
    (e11)制御上りセッションにより、リクエストとしてサーバ装置に対し制御データを送信する手段と、
    を備えたことを特徴とするもの。
  18. サーバ装置と、当該サーバ装置と通信可能な第1〜第nのクライエント装置とを備えた通信方法であって、
    (e1)前記第1〜第nのクライエント装置は、それぞれ、コンテンツデータ送信のために、TCP/IPの上りセッション開設要求を前記サーバ装置に送信し、
    (d1)前記サーバ装置は、前記第1〜第nのクライエント装置から、それぞれTCP/IPの前記上りセッション開設要求を受けて、それぞれに開設許諾を送り返し、第1〜第nの前記上りセッションを開設し、
    (e4)前記第1〜第nのクライエント装置は、それぞれ、前記コンテンツデータ受信のために、TCP/IPの下りセッション開設要求を前記サーバ装置に送信し、
    (d3)前記サーバ装置は、前記第1〜第nのクライエント装置から、それぞれTCP/IPの前記下りセッション開設要求を受けて、それぞれに開設許諾を送り返して、第1〜第nの前記下りセッションを開設し、
    (e2)前記第1〜第nのクライエント装置は、それぞれ、前記サーバ装置からのTCP/IPの上りセッション開設許諾を受けて、送信データサイズを不明とするHTTPプロトコルの連続的送信リクエストを前記サーバ装置に送信し、
    (d2)前記サーバ装置は、前記第1〜第nのクライエント装置から、前記第1〜第nの各上りセッションによって、HTTPプロトコルの連続的送信リクエストを受信し、
    (e5)前記第1〜第nのクライエント装置は、それぞれ、前記サーバ装置からのTCP/IPの下りセッション開設許諾を受けて、受信データサイズを不明とするHTTPプロトコルの連続的なコンテンツデータ受信のためのリクエストを前記サーバ装置に予め送信することにより、前記サーバ装置からの連続的なレスポンスを受信可能にし、
    (d4)前記サーバ装置は、前記第1〜第nのクライエント装置から、前記第1〜第nの各下りセッションによって、HTTPプロトコルの前記連続的なコンテンツデータ受信のための受信リクエストを受信し、
    (e3)前記第1〜第nのクライエント装置は、それぞれ、前記上りセッションにおける連続的送信リクエストとして、前記コンテンツデータを所定単位ごとに前記サーバ装置に対し送信し、
    (d5)前記サーバ装置は、前記第1〜第nの各上りセッションによって、前記第1〜第nのクライエント装置から、HTTPプロトコルの前記連続的送信リクエストとして送信されてくる、前記所定単位ごとのコンテンツデータを受信し、
    (d6)前記サーバ装置は、前記第1〜第nのクライエント装置から受信した前記第1〜第nの所定単位ごとのコンテンツデータを記憶し、
    (d7)前記サーバ装置は、前記第1〜第nのバッファから前記所定単位ごとの第1〜第nコンテンツデータを読み出して、前記各コンテンツデータを、それぞれ、前記第1〜第nのクライエント装置のうちの他のクライエント装置に、対応する前記第1〜第nの下りセッションを用いて、前記連続的なコンテンツデータ受信のためのリクエストに対するレスポンスとして連続的に送信し、
    (e6)前記第1〜第nのクライエント装置は、それぞれ、前記下りセッションにおける連続的なコンテンツデータ受信のためのリクエストに対する連続的なレスポンスとして、前記サーバ装置からの前記所定単位ごとのコンテンツデータを受信することを特徴とする通信方法。
  19. (a)サーバ装置と、当該サーバ装置と通信可能な(b)第1のクライエント装置および(c)第2のクライエント装置とを備えた通信システムであって、
    前記第1のクライエント装置は、
    (b1)コンテンツデータのために、TCP/IPの上りセッション開設要求を前記サーバ装置に送信する手段と、
    (b2)前記サーバ装置からのTCP/IPの上りセッション開設許諾を受けて、送信データサイズを不明とするHTTPプロトコルの連続的送信リクエストを前記サーバ装置に送信する手段と、
    (b3)前記上りセッションにおける連続的送信リクエストとして、前記コンテンツデータを所定単位ごとに前記サーバ装置に対し送信する手段と、
    を備えており、
    前記第2のクライエント装置は、
    (c1)コンテンツデータ受信のために、TCP/IPの下りセッション開設要求を前記サーバ装置に送信する手段と、
    (c2)前記サーバ装置からのTCP/IPの下りセッション開設許諾を受けて、受信データサイズを不明とするHTTPプロトコルの連続的なコンテンツデータ受信のためのリクエストを前記サーバ装置に予め送信することにより、前記サーバ装置からの連続的なレスポンスを受信可能にする手段と、
    (c3)前記下りセッションにおける連続的なコンテンツデータ受信のためのリクエストに対する連続的なレスポンスとして、前記サーバ装置からの前記所定単位ごとのコンテンツデータを受信する手段と、
    を備えており、
    前記サーバ装置は、
    (a1)第1のクライエント装置からのTCP/IPの前記上りセッション開設要求を受けて開設許諾を送り返す手段と、
    (a2)第2のクライエント装置からのTCP/IPの前記下りセッション開設要求を受けて開設許諾を送り返す手段と、
    (a3)第1のクライエント装置から、前記上りセッションによって、HTTPプロトコルの前記連続的送信リクエストを受信する手段と、
    (a4)第2のクライエント装置から、前記下りセッションによって、HTTPプロトコルの前記連続的なコンテンツデータ受信のためのリクエストを受信する手段と、
    (a5)前記上りセッションによって、前記第1のクライエント装置から、HTTPプロトコルの前記連続的送信リクエストとして送信されてくる、前記所定単位ごとのコンテンツデータを受信する手段と、
    (a6)受信したコンテンツデータを、前記第2のクライエント装置に対し、前記下りセッションを用いて、前記連続的なコンテンツデータ受信のためのリクエストに対するレスポンスとして連続的に送信する手段と、
    を備えたことを特徴とする通信システム。
  20. 第1のクライエント装置、第2のクライエント装置とともに通信システムを構築する前記サーバ装置であって、
    (a1)第1のクライエント装置からのTCP/IPの前記上りセッション開設要求を受けて開設許諾を送り返す手段と、
    (a2)第2のクライエント装置からのTCP/IPの前記下りセッション開設要求を受けて開設許諾を送り返す手段と、
    (a3)第1のクライエント装置から、前記上りセッションによって、HTTPプロトコルの前記連続的送信リクエストを受信する手段と、
    (a4)第2のクライエント装置から、前記下りセッションによって、HTTPプロトコルの前記連続的なコンテンツデータ受信のためのリクエストを受信する手段と、
    (a5)前記上りセッションによって、前記第1のクライエント装置から、HTTPプロトコルの前記連続的送信リクエストとして送信されてくる、前記所定単位ごとのコンテンツデータを受信する手段と、
    (a6)受信したコンテンツデータを、前記第2のクライエント装置に対し、前記下りセッションを用いて、前記連続的なコンテンツデータ受信のためのリクエストに対するレスポンスとして連続的に送信する手段と、
    を備えたことを特徴とするサーバ装置。
  21. 第1のクライエント装置、第2のクライエント装置とともに通信システムを構築する前記サーバ装置を、コンピュータによって実現するためのプログラムであって、
    (a1)第1のクライエント装置からのTCP/IPの前記上りセッション開設要求を受けて開設許諾を送り返す手段と、
    (a2)第2のクライエント装置からのTCP/IPの前記下りセッション開設要求を受けて開設許諾を送り返す手段と、
    (a3)第1のクライエント装置から、前記上りセッションによって、HTTPプロトコルの前記連続的送信リクエストを受信する手段と、
    (a4)第2のクライエント装置から、前記下りセッションによって、HTTPプロトコルの前記連続的なコンテンツデータ受信のためのリクエストを受信する手段と、
    (a5)前記上りセッションによって、前記第1のクライエント装置から、HTTPプロトコルの前記連続的送信リクエストとして送信されてくる、前記所定単位ごとのコンテンツデータを受信する手段と、
    (a6)受信したコンテンツデータを、前記第2のクライエント装置に対し、前記下りセッションを用いて、前記連続的なコンテンツデータ受信のためのリクエストに対するレスポンスとして連続的に送信する手段と、
    をコンピュータにより実現するためのサーバプログラム。
  22. (b1)コンテンツデータのために、TCP/IPの上りセッション開設要求を前記サーバ装置に送信する手段と、
    (b2)前記サーバ装置からのTCP/IPの上りセッション開設許諾を受けて、送信データサイズを不明とするHTTPプロトコルの連続的送信リクエストを前記サーバ装置に送信する手段と、
    (b3)前記上りセッションにおける連続的送信リクエストとして、前記コンテンツデータを所定単位ごとに前記サーバ装置に対し送信する手段と、
    (c1)コンテンツデータ受信のために、TCP/IPの下りセッション開設要求を前記サーバ装置に送信する手段と、
    (c2)前記サーバ装置からのTCP/IPの下りセッション開設許諾を受けて、受信データサイズを不明とするHTTPプロトコルの連続的なコンテンツデータ受信のためのリクエストを前記サーバ装置に予め送信することにより、前記サーバ装置からの連続的なレスポンスを受信可能にする手段と、
    (c3)前記下りセッションにおける連続的なコンテンツデータ受信のためのリクエストに対する連続的なレスポンスとして、前記サーバ装置からの前記所定単位ごとのコンテンツデータを受信する手段と、
    を備えたクライエント装置。
  23. クライエント装置をコンピュータによって実現するためのプログラムであって、
    (b1)コンテンツデータのために、TCP/IPの上りセッション開設要求を前記サーバ装置に送信する手段と、
    (b2)前記サーバ装置からのTCP/IPの上りセッション開設許諾を受けて、送信データサイズを不明とするHTTPプロトコルの連続的送信リクエストを前記サーバ装置に送信する手段と、
    (b3)前記上りセッションにおける連続的送信リクエストとして、前記コンテンツデータを所定単位ごとに前記サーバ装置に対し送信する手段と、
    (c1)コンテンツデータ受信のために、TCP/IPの下りセッション開設要求を前記サーバ装置に送信する手段と、
    (c2)前記サーバ装置からのTCP/IPの下りセッション開設許諾を受けて、受信データサイズを不明とするHTTPプロトコルの連続的なコンテンツデータ受信のためのリクエストを前記サーバ装置に予め送信することにより、前記サーバ装置からの連続的なレスポンスを受信可能にする手段と、
    (c3)前記下りセッションにおける連続的なコンテンツデータ受信のためのリクエストに対する連続的なレスポンスとして、前記サーバ装置からの前記所定単位ごとのコンテンツデータを受信する手段と、
    をコンピュータによって実現するためのクライエントプログラム。
JP2005341731A 2005-11-28 2005-11-28 通信システム Active JP4382745B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005341731A JP4382745B2 (ja) 2005-11-28 2005-11-28 通信システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005341731A JP4382745B2 (ja) 2005-11-28 2005-11-28 通信システム

Publications (2)

Publication Number Publication Date
JP2007150666A JP2007150666A (ja) 2007-06-14
JP4382745B2 true JP4382745B2 (ja) 2009-12-16

Family

ID=38211550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005341731A Active JP4382745B2 (ja) 2005-11-28 2005-11-28 通信システム

Country Status (1)

Country Link
JP (1) JP4382745B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5101195B2 (ja) * 2007-07-09 2012-12-19 株式会社東芝 インタフェースコントローラ

Also Published As

Publication number Publication date
JP2007150666A (ja) 2007-06-14

Similar Documents

Publication Publication Date Title
CN114866521B (zh) 会议服务器
KR100971273B1 (ko) 클라이언트 사이에 멀티캐스트 세션을 설정하기 위한 방법 및 시스템
US20020143959A1 (en) Method and apparatus for interactive direct peer-to-peer multimedia streaming
JP2008210381A (ja) サーバ呼び出しタイムスケジューリングテレビ会議
KR102077883B1 (ko) 데이터 통신 시스템 및 방법
WO2011095056A1 (zh) 一种远程桌面体系的音频处理方法和设备
WO2013097457A1 (zh) 云计算环境中实现voip通话的方法、装置和系统
US10630656B2 (en) System and method of encrypted media encapsulation
US20140337478A1 (en) Peer-to-peer network communications
CN110771117B (zh) 一种采用面向id的网络的会话层通信
JP2009194674A (ja) 通信端末装置および通信端末装置の制御方法
WO2008037202A1 (fr) Procédé et dispositif de transmission de données
JP4382745B2 (ja) 通信システム
JP4949448B2 (ja) ネットワークコネクタデバイス
JP4783777B2 (ja) パケット解析ブリッジ装置、パケット伝送システム、及びパケット伝送方法
CN114679265A (zh) 流量获取方法、装置、电子设备和存储介质
US9692709B2 (en) Playout buffering of encapsulated media
US10263913B2 (en) Tunnel consolidation for real-time communications
WO2016177257A1 (zh) 一种数据分享的方法和装置
JP2005210352A (ja) Ipアドレス変換装置及び変換方法
US20060245416A1 (en) Architecture for the separation of call control from media processing
JP2011239277A (ja) Vpn装置、vpnネットワーキング方法、プログラム、及び記憶媒体
US11611542B2 (en) Secure media streaming communication via user datagram protocol
JP2010153944A (ja) 通信システム、受信装置、送信装置、および通信方法
JP6674141B2 (ja) 通信装置

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080630

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081125

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090525

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090703

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090914

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090917

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121002

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4382745

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131002

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250