(57)【特許請求の範囲】
【請求項１】
情報源とクライアントとの間にネットワークを介して介在する通信装置であって、
少なくとも情報源、データの取り込み間隔及び取り込み長さに関する情報を含む設定情報に応じて、当該設定情報で指定された情報源から連続して提供されるデータの一部を蓄積する蓄積手段と、
前記クライアントからの配送要求に応じて、前記蓄積手段により蓄積したデータを前記クライアントに配送する配送手段と、
を有することを特徴とする通信装置。
【請求項２】
前記情報源からのデータは、少なくとも動的に変化する映像・画像、サウンドを含むことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記配送手段は、前記クライアントからの配送要求を受付ける受付け手段を有し、前記配送要求に応じて前記情報源にデータ配送を要求する要求手段を更に有することを特徴とする請求項１に記載の通信装置。
【請求項４】
前記蓄積手段は、前記受付け手段により受け付けた要求に応じて、前記情報源からのデータの一部を蓄積することを特徴とする請求項３に記載の通信装置。
【請求項５】
前記配送手段は、前記蓄積手段に記憶されたデータを前記クライアントからの要求に応じたフレーム数或は時間だけ前記クライアントに配送することを特徴とする請求項１に記載の通信装置。
【請求項６】
前記蓄積手段は、読出し用バッファと書込み用バッファを有するダブルバッファを備えていることを特徴とする請求項１に記載の通信装置。
【請求項７】
前記蓄積手段は、前記設定情報に従って前記情報源に自発的にデータを要求する要求発行手段を有し、前記要求発行手段による要求に応じて前記情報源から送られてくるデータの少なくとも一部を蓄積することを特徴とする請求項１に記載の通信装置。
【請求項８】
情報源とクライアントとの間にネットワークを介して介在する通信装置における通信方法であって、
少なくとも情報源、データの取り込み間隔及び取り込み長さに関する情報を含む設定情報に応じて、当該設定情報で指定された情報源から連続して提供されるデータの一部を蓄積する蓄積工程と、
前記クライアントからの配送要求に応じて、前記蓄積工程で蓄積したデータを前記クライアントに配送する配送工程と、
を有することを特徴とする通信方法。
【請求項９】
前記情報源からのデータは、少なくとも動的に変化する映像・画像、サウンドを含むことを特徴とする請求項８に記載の通信方法。
【請求項１０】
前記クライアントからの配送要求を受付ける工程と、受け付けた配送要求に応じて前記情報源にデータ配送を要求する工程を更に有することを特徴とする請求項８に記載の通信方法。
【請求項１１】
前記蓄積工程は、前記受付ける工程で受け付けた要求に応じて、前記情報源からのデータの一部を蓄積することを特徴とする請求項１０に記載の通信方法。
【請求項１２】
前記配送工程では、前記蓄積工程で記憶されたデータを前記クライアントからの要求に応じたフレーム数或は時間だけ前記クライアントに配送することを特徴とする請求項８に記載の通信方法。
【請求項１３】
前記蓄積工程は、読出し用バッファと書込み用バッファを有するダブルバッファを備えていることを特徴とする請求項８に記載の通信方法。
【請求項１４】
前記蓄積工程では、前記設定情報に従って前記情報源に自発的にデータを要求し、その要求に応じて前記情報源から送られてくるデータの少なくとも一部を蓄積することを特徴とする請求項８に記載の通信方法。
【請求項１５】
ネットワークを介して情報源とクライアントとの間に中継サーバを備える通信システムであって、
前記中継サーバは、
少なくとも情報源、データの取り込み間隔及び取り込み長さに関する情報を含む設定情報に応じて、当該設定情報で指定された情報源から連続して提供されるデータの一部を蓄積する蓄積手段と、
前記クライアントからの配送要求に応じて、前記蓄積手段により蓄積したデータを前記クライアントに配送する配送手段とを有し、
前記クライアントは前記中継サーバに前記情報源との接続を要求し、前記中継サーバは前記クライアントよりの指示に応じて前記情報源と接続して前記情報源よりのデータの一部を前記蓄積手段に蓄積し、前記蓄積手段により蓄積したデータを前記クライアントに送信することを特徴とする通信システム。
【請求項１６】
前記情報源からのデータは、少なくとも動的に変化する映像・画像、サウンドを含むことを特徴とする請求項１５に記載の通信システム。
【請求項１７】
前記配送手段は、前記蓄積手段に記憶されたデータを前記クライアントからの要求に応じたフレーム数或は時間だけ前記クライアントに配送することを特徴とする請求項１５に記載の通信システム。
【請求項１８】
前記蓄積手段は、読出し用バッファと書込み用バッファを有するダブルバッファを備えていることを特徴とする請求項１５に記載の通信システム。
【請求項１９】
前記蓄積手段は、前記設定情報に従って前記情報源に自発的にデータを要求する要求発行手段を有し、前記要求発行手段による要求に応じて前記情報源から送られてくるデータの少なくとも一部を蓄積することを特徴とする請求項１５に記載の通信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、インターネットなどをネットワークを介して映像信号等の伝送サービスを行うために情報源からクライアントへの送信データを中継して配送する通信方法及びその装置と該装置を備えた通信システムに関するものである。
【０００２】
【従来の技術】
近年、World Wide Web(以降WWW)として知られる情報システムが急速に広く一般に使用されるようになってきている。このWWWでは、WWWサーバと呼ばれるデータサーバからインターネットなどのネットワークを介して多数のクライアントにクライアント・データを配送している。また、ローカルネットなどに多くのクライアントがあり、同じデータを複数のクライアントが参照した場合に、そのクライアントデータを保持することによりWWWサーバへのアクセスを減少させることができる機能を持つプロキシ・サーバ(以下、プロキシ)をネットワーク上に配置することが行われていた。
【０００３】
しかしながら、このように用いられるプロキシーは、WWW等で用いるテキストデータなど１バイトの間違いもゆるされず、かつ、完結したデータが対象であった。これに対し、最近増えてきている映像や音声などのマルチメディアデータの場合は、そのデータそのものは完結しておらず、またデータの伝送時に多少のデータの誤りが発生しても、それが致命的な誤りとならないという特性がある。また、その場で撮像あるいは採音したライブ映像もしくはライブ音声をネットワーク等を介して伝送して放送する場合には、その様な映像や音声データは次々と更新され続けるため、完結したデータの形式で保持するとことは不可能であり、またそれ程意味の無いものである。
【０００４】
このような状況に鑑みると、これまで用いられてきたプロキシーは、マルチメディアライブ放送のような用途に用いるには不適当であることがわかる。ここで不適当とされる要因は主にデータの蓄積に係るもので、このデータの蓄積に関する機能をなくし、その時点で得られるデータを複数のクライアントに配送する配送サーバもしくは中継サーバと呼ばれるシステムを構築すれば、マルチメディアライブ放送においても利用可能である。
【０００５】
最近、映像や音声などマルチメディアデータの放送をインターネットなどを介して行うシステムが出現し始めているが、上述した状況から、これらのうち、いくつかは、情報源から得られたその時点のデータを、より多数のクライアントに分配・配送する配送サーバを介在させることで同時視聴可能な人数を増やしいる。
【０００６】
一方、このようなインターネットなどを介したマルチメディア配送サービスを行う場合、各クライアントはどのような情報源(発信局)にアクセス可能であるかを知るサービスを必要とする。現在のところ、このようなサービスの情報は、WWWサーバ内のホームページを構成するファイルに静的に記述され、各クライアントはそれを参照することにより、所望の情報源を選択できる。
【０００７】
このように配送サーバを配した場合は、配送サーバが既に中継・配送しているデータをアクセスしたいクライアントが発生しても、そのために情報源から新たにデータを提供しなくてもその配送サーバよりデータが供給できるため、情報源よりネットワークに供給されるデータ量を増やす必要がない。このため、情報のサービスに迅速に対応でき、配送されるデータの質が良い等の利点がある。またクライアントから見て配送サーバよりも上流に位置している情報源からのデータを、より近傍でアクセス状況の良い、即ち良好な映像・音声の得られるサイトでデータを獲得したいというのも自然な欲求である。
【０００８】
【発明が解決しようとする課題】
しかしながら、従来のWWWのホームページによるディレクトリサービスだけでは、このようなクライアントに近い配送サーバの状況を加味した情報を得ることができなかった。また、その情報源から得られる映像や音声がライブである場合には、その情報源より提供される映像・音声は刻々と変化するものであり、一般的な静的データのように、単に記述されたファイルを参照するよう場合とはその操作を異ならせるのが望ましい。
【０００９】
本発明は上記従来例に鑑みてなされたもので、情報源からのデータの一部を蓄積しておき、その蓄積データをクライアントからの指示に応じて、そのクライアントに送信する通信方法及びその装置と該装置を備えた通信システムを提供することを目的とする。
【００１０】
また本発明の目的は、クライアントからの要求に応じて、その要求された情報源にデータを要請し、その要請に応じて送信される情報源よりのデータの少なくとも一部を蓄積し、その蓄積されているデータを所定量送信できる通信方法及びその装置と該装置を備えた通信システムを提供することにある。
【００１１】
また本発明の目的は、予め設定された間隔をおいて定期的に情報源にデータを要求して、そのデータの一部を蓄積しておき、その蓄積したデータの適宜の送信を可能にした通信方法及びその装置と該装置を備えた通信システムを提供することにある。
【００１２】
【課題を解決するための手段】
上記目的を達成するために本発明の通信装置は以下のような構成を備える。即ち、
情報源とクライアントとの間にネットワークを介して介在する通信装置であって、
少なくとも情報源、データの取り込み間隔及び取り込み長さに関する情報を含む設定情報に応じて、当該設定情報で指定された情報源から連続して提供されるデータの一部を蓄積する蓄積手段と、
前記クライアントからの配送要求に応じて、前記蓄積手段により蓄積したデータを前記クライアントに配送する配送手段と、
を有することを特徴とする。
【００１３】
上記目的を達成するために本発明の通信方法は以下のような工程を備える。即ち、
情報源とクライアントとの間にネットワークを介して介在する通信装置における通信方法であって、
少なくとも情報源、データの取り込み間隔及び取り込み長さに関する情報を含む設定情報に応じて、当該設定情報で指定された情報源から連続して提供されるデータの一部を蓄積する蓄積工程と、
前記クライアントからの配送要求に応じて、前記蓄積工程で蓄積したデータを前記クライアントに配送する配送工程と、
を有することを特徴とする。
【００１４】
上記目的を達成するために本発明の通信システムは以下のような構成を備える。即ち、
ネットワークを介して情報源とクライアントとの間に中継サーバを備える通信システムであって、
前記中継サーバは、
少なくとも情報源、データの取り込み間隔及び取り込み長さに関する情報を含む設定情報に応じて、当該設定情報で指定された情報源から連続して提供されるデータの一部を蓄積する蓄積手段と、
前記クライアントからの配送要求に応じて、前記蓄積手段により蓄積したデータを前記クライアントに配送する配送手段とを有し、
前記クライアントは前記中継サーバに前記情報源との接続を要求し、前記中継サーバは前記クライアントよりの指示に応じて前記情報源と接続して前記情報源よりのデータの一部を前記蓄積手段に蓄積し、前記蓄積手段により蓄積したデータを前記クライアントに送信することを特徴とする。
【００１５】
【発明の実施の形態】
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。
【００１６】
(実施の形態１)
図１は、本発明の実施の形態の配送サーバ（中継サーバ）１００の機能構成を示すブロック図である。尚、これらの各部は、ハードウェアで構成されてもソフトウェアにより実現されても良いが、本実施の形態ではソフトウェアにより実現された場合で説明する。
【００１７】
図１において、１０１はネットワーク通信部で、ネットワーク１１０を介して情報源である送信元からのデータを受けつける入力処理部１０２と、ネットワーク（ネットワーク１１０と同じでも別でも良いが、ここでは説明上別のネットワークとする）１１１を介してクライアント側マシンへデータを送信する出力処理部１０３とを含んでいる。１０４は配送処理部で、ネットワーク通信部１０１を制御している。１０５は要求受付け部で、下流に位置しているクライアント側マシンからの各種要求を受け付けている。１０６はデータ蓄積部で、配送処理部１０４を介して配送されるデータの一部を蓄積している。１０７は配送管理部で、どのデータを受付けて、どこへ配送するかを管理している。１０８は蓄積管理部で、ネットワーク１１０を介して受信したデータの内、データのどの部分をデータ蓄積部１０６に蓄積するかを管理している。１０９は要求発信部で、ネットワーク１１０を介して上流（情報元）のマシンへ各種の要求を発行する。
【００１８】
以上の構成において、要求受付け部１０５は、ネットワーク１１１を介して下流側のクライアントマシンからの要求(配送開始要求、配送終了要求など)を受け付けると、これを配送管理部１０７へ通達する。これにより配送管理部１０７は、自身の内部管理情報を更新すると共に、新たなデータが必要ならば要求発信部１０９に情報元へのデータ要求を要請し、更に、蓄積データの追加・変更などが必要な場合には蓄積管理部１０８へ変更を通達する。また、配送管理部１０７は、必要な配送情報を配送処理部１０４に設定する。
【００１９】
一方、要求発信部１０９から情報元に発行された要求が上流側に位置している情報源サーバもしくは配送サーバに受け入れられると、これらの上流側のサーバは、この配送サーバ１００へのデータ送信を開始する。これにより入力処理部１０２は、ネットワーク１１０を介して送られてきたデータを受け取って、配送処理部１０４にその受信データを供給する。配送処理部１０４は、配送管理部１０７よりの指示設定に従って、出力処理部１０３へ下流側へのデータ配送を指示すると共に、蓄積管理部１０８から配送管理部１０７に設定される情報に従って、データ蓄積部１０６に受け取ったデータを出力して蓄積を指示する。ここで、蓄積管理部１０８の設定には、間欠的な蓄積動作および短期間のサンプリングによる蓄積などがあり、これにより、データ蓄積部１０６は配送サーバ１００が中継・配送する各情報源からのデータストリームの一部を取り出して蓄積することができる。
【００２０】
要求受け付け部１０５は、下流マシン（クライアント）からの要求として、「ダイジェスト配送」を受け取ると、これを配送管理部１０７へ通達する。これにより配送管理部１０７は、配送管理部１０７自身の内部管理情報を更新すると共に、必要な配送情報を配送処理部１０４に設定する。即ち、ダイジェスト配送の設定が行われている場合は、配送処理部１０４は上流からデータを受け取り下流へ配送する処理に加えて、データ蓄積部１０６に蓄積されているデータを読み出し、「ダイジェスト配送」を要求を発した下流マシンへ配送する。
【００２１】
図２は、本発明の実施の形態の配送サーバを含む映像送信システムの構成を示す図で、前述の図１と共通する部分は同じ番号で示している。
【００２２】
１００−１，１００−２のそれぞれは図１に示す配送サーバ、２０２−１〜２００−３のそれぞれはカメラサーバを示し、撮像するためのビデオカメラや音収集用のマイクロフォン等を備え、そのビデオカメラやマイクロフォンにより撮像及び採音した映像・音データ（以下、単に映像データ）をネットワーク１１０に発信している。２０３−１〜２０３−３のそれぞれはビューワ（クライアント）を示し、ネットワーク１１０に発信され、配送サーバ１００−２を介して受信した映像データを観察している。この映像データは、カメラサーバ２０２から発信され、インターネット１１０を介して配送サーバ１００に伝達され、配送サーバ１００は更にネットワーク１１１を介してこれを１つ或は複数のビューワ２０３へ分配・再配送する。
【００２３】
図３は、本発明の実施の他の形態の映像送信システムの構成を示す概念図で、前述の図面と共通する部分は同じ番号で示し、その説明を省略する。
【００２４】
図３の構成によれば、カメラサーバ２０２より発信された映像データは、インターネット１１０を介して配送サーバ１００−３，１００−４に伝達され、更に配送サーバ１００−４はこれを配送サーバ１００−１，１００−２を含む１つあるいは複数の配送サーバ、もしくは直接ビューワ２０３に分配・再配送する。ここで配送サーバ１００−２は、これを更に１つあるいは複数のビューワへ分配・再配送する。本実施の形態によれば、このような複数の配送サーバをカスケード接続した形態を含む構成が可能である。尚、以上の構成において、ネットワーク１１０に接続される配送サーバ、カメラサーバ及びビューワの数、及び配送サーバに接続されるビューワの数は本実施の形態に限定されるものでない。
【００２５】
図４は本実施の形態の配送サーバ１００の構成を示すブロック図である。
【００２６】
図４において、３０１は配送サーバ全体の動作を制御するＣＰＵ、３０２は主記憶で、ＣＰＵ３０１により実行されるプログラムを記憶するプログラムエリア３１０（二次記憶装置３０３よりダウンロードしたプログラムを記憶しても良い）や後述する各種テーブル３１１〜３１６等を備えている。３０３はハードディスク等の二次記憶装置で、映像蓄積部３２１を有し、前述のデータ蓄積部１０６としても機能するとともに、後述する蓄積管理部設定ファイル３２０、更にはＣＰＵ３０１により実行される制御プログラムなどをも記憶している。３０４はインターネット１１０との間での通信を制御するネットワーク・インターフェース（Ｉ／Ｆ）、３０５はビューワ２０３と接続しているネットワークとの間の通信を制御するネットワーク・インターフェースである。３０６はタイマで、ＣＰＵ３０１の指示に応じて計時を行い、所定時間が経過するとＣＰＵ３０１にタイマイベントを発生させる。
【００２７】
図５は、本実施の形態の配送サーバ１００における起動時の初期化処理を示すフローチャートで、この処理を実行する制御プログラムは主記憶３０２に記憶されてＣＰＵ３０１の制御の下に実行される。
【００２８】
まずステップＳ１で、二次記憶装置３０３に記憶された蓄積管理部設定ファイル３２０というデータ蓄積操作に関する設定情報を含むファイルを読み込む。次にステップＳ２に進み、そのファイル情報を主記憶３０２の蓄積設定テーブル３１１に書き込み。次にステップＳ３で、配送管理テーブル３１２を初期化し、ステップＳ４では、蓄積管理テーブル３１３を初期化し、そしてステップＳ５で、自律蓄積のためのタイマ３０６の設定を行う。
【００２９】
図６は、蓄積設定テーブル３１１の内容を説明するための図である。
【００３０】
６０１は、蓄積するデータストリームの情報源を指定するエリアで、その情報源の(アドレス、ポート番号、ストリーム番号)がセットされている。６０２は、間欠的に蓄積動作を行う場合のアクセス（サンプリング）間隔（単位はフレーム数又は秒）がセットされている。６０３は、各取り込み時の取り込み長さ（フレーム数又は秒）を示す。６０４は、下流（ビューワ）からの要求がなくても自律的に上流（情報源）へのデータ配送要求を出力するか否かを表すフラグなどの情報を示し、「True」は、自律的に上流（情報源）へのデータ配送要求を出力することを示し、「False」はその逆を示す。ここで、蓄積ストリーム６０１の値が“０”であれば、初期設定時には情報源が特定されておらず、下流（ビューワ）からの要求に応じて初めて情報源が設定されることを示している。
【００３１】
図７は、配送管理テーブル３１２の内容を説明するための図である。
【００３２】
７０１は、情報源から配送される入力データストリーム(配送ストリーム)の番号(ＩＤ)を示し、７０２は、その配送先（配送サーバ或はビューワ等のクライアント）のＩＤを示す。７０３は、情報源との接続開始からの経過時間（フレーム数又は秒）を示す接続時間カウンタ、７０４は、配送先からのダイジェスト配送要求の有無を示すフラグで、「True」はダイジェスト配送要求があることを示している。７０５は、ダイジェストの配送開始からの経過データ数のカウンタ(以下、ダイジェストカウンタで、数字に単位はフレーム数又は秒)である。ここで、配送ストリームＩＤが“−１”である場合は、配送ストリームが指定されていない、即ち、蓄積データを出力するダイジェスト要求のみであることを示す。
【００３３】
図８は、蓄積管理テーブル３１３の内容を説明するための図である。
【００３４】
８０１は蓄積するストリーム番号、８０２は蓄積する周期（フレーム数又は秒）、８０３は取り込み長さ（フレーム数又は秒）、８０４は蓄積開始からの経過データ数カウンタ(以下、蓄積カウンタで、数字の単位はフレーム数又は秒)を示す。８０５は、取り込み中か否かを示すフラグで、「True」は取り込み中を示し、「False」は取り込み中でないことを示す。８０６は、自律蓄積モードで起動されたか否かを示し、「True」は自律モードによる起動を示し、「False」はそうでないモードを示す。尚、二次記憶装置３０３に記憶されている蓄積設定ファイル３２０が動作中に変更されない固定的な設定ファイルであるのに対して、この蓄積管理テーブル３１３は動的に変更される蓄積指示状態を記憶するものである。
【００３５】
図９は、ストリーム管理テーブル３１４の内容を説明するための図である。
【００３６】
９０１はストリームＩＤ番号、９０２は通信先のアドレス、９０３はポート番号、９０４はその指定ストリーム番号を示している。
【００３７】
再び図５のフローチャートを参照して初期化処理を説明する。まずステップＳ１で、二次記憶装置３０３に記憶されている蓄積管理部設定ファイル３２０を読み込む。この蓄積管理部設定ファイル３２０には、蓄積するデータストリームの情報源を指定するための蓄積ストリーム６０１(アドレス、ポート番号、ストリーム番号)と、間欠動作する場合のアクセス間隔６０２、個々の取り込みの長さ６０３、下流からの要求がなくても自律的に上流へのデータ配送要求を出すか否かを示した自律蓄積フラグ６０４などの情報が記述されている。次いでステップＳ２で、その情報を主記憶３０２の蓄積設定テーブル３１１に書き込む。次にステップＳ３に進み、配送管理テーブル３１２及びストリーム管理テーブル３１４をクリアし、ステップＳ４で蓄積管理テーブル３１３をクリアする。そして最後にステップＳ５で、蓄積設定ファイル３２０の内容を参照し、自律蓄積フラグ６０４が「True」となっている蓄積ストリームに対して、順に適当な時間間隔(例えば６０秒)でタイマ３０６を設定し、タイマ起動キューリストに(時刻、蓄積設定テーブルの番号（No）で示される蓄積ナンバ)を追加する。
【００３８】
図１０は、本実施の形態の配送サーバ１００におけるメイン処理を示すフローチャートで、この処理を実行するプログラムはプログラムメモリ３１０に記憶されている。
【００３９】
本実施の形態の配送サーバ１００は、起動時に前述の初期化処理を実施後、このメインループを繰り返し、ステップＳ１１での要求判定、ステップＳ１３でのデータ到着判定、ステップＳ１５での自律蓄積タイマー判定、ステップＳ１７でのダイジェスト送信タイマー判定の４種類のイベントに対して、それぞれ対応する処理、ステップＳ１２の受け付け処理、ステップＳ１４の配送処理、ステップＳ１６の自律蓄積処理、ステップＳ１８でダイジェスト送信処理を行う。
【００４０】
まずステップＳ１１で、要求受け付け部１０５により下流からの要求があるかを判定し、要求があればステップＳ１２に進み、その要求に対する受け付け処理を行う。一方、ステップＳ１１で下流側よりの要求がないときはステップＳ１３に進み、ネットワーク１１０を介して入力処理部１０２にデータが到着したかを判定する。データが到着した時はステップＳ１４に進み、その到着したデータを配送処理部１０４の制御の下に下流側のクライアントに配送するとともに、必要に応じてデータ蓄積部１０６に蓄積する。一方、ステップＳ１３でデータが到着していない時はステップＳ１５に進み、自律蓄積タイマによるイベントが発生したかを判定し、タイマイベントが発生した時はステップＳ１６に進み、自律蓄積処理を行う。またステップＳ１５でタイマイベントが発生していない時はステップＳ１７に進み、ダイジェスト配送タイマイベントが発生したかを判定し、そのタイマイベントが発生していればステップＳ１８に進み、ダイジェスト送信処理を実行する。
【００４１】
尚、上述の各処理ステップＳ１２，Ｓ１４，Ｓ１６及びＳ１８は、以下、フローチャートを参照して詳しく説明する。
【００４２】
図１１は、図１０のステップＳ１２の受付け処理を示すフローチャートである。
【００４３】
まずステップＳ２１で、要求受付け部１０５により下流側のクライアントよりの要求があるかどうかを判断し、要求があればステップＳ２２に進み、その要求が接続要求であるか否かを判断する。接続要求であればステップＳ２３に進み、配送管理部１０７、配送処理部１０４及びネットワーク通信部１０１の処理により、情報源のカメラサーバとの接続処理を実行する。この接続処理は、図１２のフローチャートを参照して詳しく後述する。
【００４４】
またステップＳ２２で接続要求でない時はステップＳ２４に進み、終了要求かどうかをみる。終了要求であればステップＳ２５に進み、同じく配送管理部１０７、配送処理部１０４及びネットワーク通信部１０１の処理により、ネットワーク１１０を介してのカメラサーバとの通信の切断処理を実行する。尚、この処理は図１４のフローチャートを参照して詳しく後述する。
【００４５】
またステップＳ２４で終了要求でない時はステップＳ２６に進み、ダイジェスト要求かどうかを判断し、ダイジェスト要求の時はステップＳ２７に進み、データ蓄積部１０６に蓄積されている映像信号を送出するダイジェスト処理を実行する。この処理の詳細は図１５のフローチャートを参照して後述する。またステップＳ２６によりいずれの要求でもない時はステップＳ２８に進み、エラー処理を実行する。尚、ステップＳ２１で、要求受付け部１０５が受け取る要求内容としては以下のようなものがある。
【００４６】
＜接続要求＞
▲１▼<Connect  camera１.canon.co.jp:６０００１:１  #１  １５０.６４.３３.４４:８９０１>
＜終了（切断）要求＞
▲２▼<Disconnect  #１  １５０.６４.３３.４４:８９０１>
＜ダイジェスト要求＞
▲３▼<Directory  ０  １５０.６４.３３.４４:８９０１>
それぞれ、▲１▼は情報源［camera１.canon.co.jp:６０００１:１］からのデータを配送先アドレス［１５０.６４.３３.４４:８９０１］へ「#１」として配送するための接続要求を示し、▲２▼は配送先［１５０.６４.３３.４４:８９０１］の「#１」接続の終了要求、▲３▼はダイジェスト(“０”は０番目を示す)の配送先［１５０.６４.３３.４４:８９０１］への配送要求を示している。
【００４７】
図１２は、図１１のステップＳ２３の接続処理の内容を示したフローチャートである。
【００４８】
ステップＳ３１で、配送管理部１０７は、要求受け付け部１０５が受け取った要求、例えば、前述の＜Connect  １５０.３１.１１.０９:６５０１１:１  #１１５０.６４.３３.４４:８９０１＞に対して、指定された接続先情報源（この場合は［１５０.３１.１１.０９:６５０１１:１］(これはアドレス１５０.３１.１１.０９、ポート番号６５０１１、ストリーム番号１を示すとする)）に対応する配送ストリームがあるかを、図９のストリーム管理テーブル３１４を参照して判定する。既に接続している場合はステップＳ３５に進み、接続していない場合にはステップＳ３２に進む。ステップＳ３２では、接続先である情報源への接続要求を出すように要求発信部１０９に指示する。これにより上流のカメラサーバ或は配送サーバへの接続要求が発行される。そしてステップＳ３３に進み、配送管理部１０７は、ストリーム管理テーブル３１４に、新規に接続されたストリームの情報を設定し、図７の配送管理テーブル３１２に、このストリームに対応する新しいエントリを作成する。更にステップＳ３４に進み、図８の蓄積管理テーブル３１３に新しいストリームに対する蓄積状況を設定する。そしてステップＳ３５に進み、配送先ＩＤを割り当て、配送先テーブル３１５に配送先情報(この場合、配送先ＩＤ,  アドレス  １５０.６４.３３.４４、ポート番号  ８９０１、配送管理ＩＤ  #１)を設定する。そして配送管理テーブル３１２の配送ストリームの(１５０.３１.１１.０９:６５０１１:１)に対する配送ストリームＩＤの項７０１に、この配送先ＩＤに対するエントリを作成し、接続時間カウンタ７０３をデフォルト値に、ダイジェスト７０４を「False」、ダイジェストカウンタ７０５を“０”に設定する。
【００４９】
図１３は、図１２のステップＳ３４の蓄積管理情報設定処理の内容を示すフローチャートである。
【００５０】
まずステップＳ４１で、蓄積管理部１０８は、配送管理部１０７から伝達された新規ストリームの情報と自身の持つ蓄積設定テーブル３１１を参照して、蓄積管理テーブル３１３への設定内容を決定する。この新規ストリーム情報には、それが自律蓄積処理(後述)で起動されたか、或は下流からの要求で起動されたかを示す情報が付随する。そして蓄積管理部１０８は、新しいエントリを蓄積管理テーブル３１３に作成し、ストリーム番号８０１として配送ストリームＩＤを設定する。次に、ストリームが自律モードで起動されている場合（自律蓄積６０４が「True」）には、このストリームの情報源に対応する蓄積設定情報を蓄積設定テーブル３１１から読み出し、自律モードで起動されていない場合（自律蓄積６０４が「False」）には、蓄積設定テーブル３１１の蓄積ストリーム（＝０）であるデフォルト値を読み出す。次にステップＳ４２に進み、蓄積設定テーブル３１１のアクセス間隔６０２から、蓄積管理テーブル３１３の蓄積周期８０２の項を設定し、ステップＳ４３で、取り込み長さの項８０３を設定する。そしてステップＳ４４に進み、蓄積カウンタの項８０４を“０”にし、ステップＳ４５では、取り込み中フラグ８０５を「False」に設定し、ステップＳ４６では、自律モードでストリームが起動されている場合には自律モードフラグ８０６を「True」に、そうでない場合には「False」に設定する。
【００５１】
図１４は、図１１のステップＳ２５の切断処理の内容を示すフローチャートである。
【００５２】
まずステップＳ５１で、配送管理部１０７は、この切断処理を実施するにおいて、配送管理テーブル３１２の中の配送先ＩＤ７０２に対応するエントリを削除する。次にステップＳ５２に進み、削除したエントリに対する配送ストリームＩＤ７０１の中に配送先ＩＤがもう残っていないか否かを判定する。まだ残っている場合には、この切断処理を終了する。もう残っていない（空）場合にはステップＳ５３に進み、要求発信部１０９に配送ストリームＩＤ７０１に対応する通信の終了要求を発するように指示する。続いてステップＳ５４に進み、配送管理テーブル３１２の配送ストリームＩＤ７０１に対応するエントリを削除し、ストリーム管理テーブル３１４の対応するエントリも削除する。そしてステップＳ５５に進み、配送ストリームＩＤ７０１に対応する蓄積管理テーブル３１３のエントリを削除する。また、この際、元の配送ストリームが、蓄積設定テーブル３１１の自律蓄積６０４が「True」であるストリームと一致している場合には、タイマ起動キューリストに当該ストリームの再起動が入っているかをチェックし、入っていない場合には、適当な時間間隔(例えば６０秒)をタイマに設定し、タイマ起動キューリストに(その設定時刻、蓄積設定テーブル３１１のNoで示される蓄積番号)を追加する。
【００５３】
図１５は、図１１のステップＳ２７のダイジェスト処理の内容を示すフローチャートである。
【００５４】
要求受け付け部１０５から配送管理部１０７へ伝達された要求がダイジェスト要求の場合にはステップＳ２７のダイジェスト処理が起動される。まずステップＳ６１で、配送管理部１０７は、そのダイジェスト要求を発した配送先に対して既に配送中であるか否かを配送管理テーブル３１２を参照して判断する。配送中でない(即ち、配送管理テーブル３１２にエントリがない)ならばステップＳ６２に進み、その配送管理テーブル３１２に新規な配送先のためのエントリを作成する。一方、配送中ならばそのままステップＳ６３に進む。ステップＳ６３では、配送管理部１０７は配送管理テーブル３１２の、前記配送先に対するエントリのダイジェストの項７０４を「True」に設定し、それ以外に配送管理テーブル３１２にダイジェストの要求がなければ、ダイジェスト送信タイマを設定する。次にステップＳ６４に進み、配送管理テーブル３１２のダイジェストカウンタの項７０５に、データ蓄積部１０６に蓄積されたダイジェストの長さを設定する。以上の処理が図１１のフローチャートで示された受け付け処理の内容である。
【００５５】
図１６は、図１０のフローチャートにおいてステップＳ１３のデータ受信に引き続き起動されるステップＳ１４の配送処理の内容を示したフローチャートである。
【００５６】
この処理は、受信データの読み出しステップＳ７１、配送管理テーブル３１２の受信ストリームに対する項から配送リストを読み出し作業リスト３１６に代入するステップＳ７２、作業リスト３１６が空か否か判定するステップＳ７３、作業リスト３１６が空のときにダイジェストデータを蓄積するデータ蓄積処理ステップＳ７４、作業リスト３１６が空でないときに作業リスト３１６から次の配送先を１つ読み出すステップＳ７５、その読み出した配送先が受信データを送信する必要がないダイジェストモードあるいは蓄積のためのみに上流から得ている場合、即ち配送先がダミーデータ(配送先ＩＤが負の値)の場合を判定するステップＳ７６、ステップＳ７６の判定が否のときに受信データを配送先へ送信するステップＳ７７、配送に伴い配送管理テーブル３１２を更新するステップＳ７８、更新により配送管理テーブル３１２の接続時間カウンタが“０”になったか否かを判定するステップＳ７９、接続時間カウンタ１２の値が（“０”の場合）にその配送先との接続を切る切断処理ステップＳ８０、読み出した配送先を作業リスト３１６から削除して作業リスト３１６を短くするステップＳ８１とを備えている。
【００５７】
具体的には、配送処理部１０４は、入力処理部１０２がデータを受信したイベントがある場合に配送処理を開始する。配送処理部１０４は、まずステップＳ７１で受信データを読み出し、配送管理テーブル３１２を参照して、その中の受信データを与えるストリーム７０１に対する配送先ＩＤの項７０２から配送先を読み出して作業リスト３１６に代入する(ステップＳ７２)。続いてステップＳ７３に進み、作業リスト３１６が空になるまで以降の処理を行う。
【００５８】
作業リスト３１６が空でないときはステップＳ７５に進み、その作業リスト３１６から配送先を1つ読み出す。次にステップＳ７６に進み、この配送先ＩＤがマイナスの値か、あるいは配送管理テーブル３１２の、対応する配送先のダイジェスト７０４が「True」であるかを判定し、そうであればダイジェスト送信が設定されているため送信の要無しとしてステップＳ８１に進み、それ以外の場合にはステップＳ７７に進む。ステップＳ７７では、配送処理部１０４は、受信データを出力処理部１０３を介して配送先へ送信し、配送管理テーブル３１２の同じ配送先に対応する項の接続時間カウンタ７０３を“１”だけ減算する(ステップＳ７８)。こうして接続時間カウンタ７０３の値が“０”以下になったかどうかを調べ、そうであればステップＳ８０に進み、接続時間（フレーム数）の制限を越えたものとして、その配送先との間の切断処理を行う。このステップＳ８０の後、或はステップＳ７９でカウンタ７０３の値が“０”以下でない時はステップＳ８１に進み、その処理し終わった配送先を作業リスト３１６から削除して、次の配送先の処理へ戻る。
【００５９】
また、ステップＳ７３で作業リスト３１６が空になった場合はステップＳ７４に進み、配送処理部１０４はデータ蓄積処理に制御を移す。
【００６０】
図１７は、図１６のステップＳ７４のデータ蓄積処理の内容を示したフローチャートである。
【００６１】
この処理は、蓄積すべきストリームであるか否かを判定するストリーム判定ステップＳ９１、現時点あるいは現フレームが書き込み期間内であるか否かを判定する書き込み期間内判定ステップＳ９２、受信データをデータ蓄積部１０６に実際に書き込む書き込みステップＳ９３、及び蓄積管理情報を更新する更新ステップＳ９４を備えている。
【００６２】
配送処理部１０４は、まずステップＳ９１で、蓄積管理テーブル３１３を参照し、処理対象の受信データを含むストリームの番号が蓄積管理テーブル３１３にあるかどうかを判定する。ない場合にはステップＳ９４に進み、ある場合にはステップＳ９２に進み、更に蓄積管理テーブル３１３の取り込み中フラグの項８０５を参照し、取り込み中であるか否かを判定する。取り込み中フラグの項８０５が「False」の場合には書込み期間内でないためステップＳ９４に進むが、このフラグ８０５が「True」の場合にはステップＳ９３に進み、受信データをデータ蓄積部１０６に書き込んでステップＳ９４に進む。このステップＳ９４では、蓄積管理テーブル３１３に記述されている蓄積管理情報の更新を行う。
【００６３】
図１８は、図１７のステップＳ９４の蓄積管理情報の更新処理を示すフローチャートで、この処理は、蓄積管理テーブル３１３が対象とするエントリの蓄積カウンタの項８０４の値を１つ減算する減算ステップＳ１０１、前記蓄積カウンタ８０４の値が“０”以下になったか否かを判定する０判定ステップＳ１０２、取り込み中フラグの項８０５が「True」であるか否かを判定する取り込み判定ステップＳ１０３、取り込み中フラグの項８０５に「True」を代入する代入ステップＳ１０４、蓄積カウンタの項８０４に取り込み長さの項８０３にある値を代入する代入ステップＳ１０５、自律モードであるか否かを判定する判定ステップＳ１０６、取り込み中フラグの項８０５に「False」を代入する代入ステップＳ１０７、蓄積カウンタの項８０４に周期の項８０２の値を代入する代入ステップＳ１０８、自律蓄積のための再起動タイマを設定する設定ステップＳ１０９、そして切断処理ステップＳ１１０を備えている。
【００６４】
まずステップＳ１０１で、配送処理部１０４は蓄積管理テーブル３１３の当該ストリームに対するエントリにアクセスし、まず蓄積カウンタの項８０４を“１”だけデクリメント（−１）する。次にステップＳ１０２に進み、この蓄積カウンタ８０４の値を“０”と比較し、“０”より大きければ変更なしで、この処理を終了する。一方、“０”以下であればステップＳ１０３に進み、取り込み中フラグの項８０５の値をテストする。ここでその項８０５の値が「True」でなければステップＳ１０４に進み、取り込み中フラグ８０５に「True」を代入し、ステップＳ１０５で、蓄積カウンタの項８０４に取り込み長さの項８０３の値を代入して処理を終了する。
【００６５】
一方、ステップＳ１０３で、取り込み中フラグ８０５が「True」ならばステップＳ１０６に進み、自律モードの値８０６をテストする。ここで自律モードが「True」でないならばステップＳ１０７に進み、取り込み中フラグ８０５に「False」を代入し、ステップＳ１０８で、蓄積カウンタの項８０４に周期の項８０２の値を代入して処理を終了する。またステップＳ１０６で、自律モード８０６が「True」ならばステップＳ１０９に進み、図６の蓄積設定テーブル３１１の当該ストリームに対応するエントリのアクセス間隔６０２の値を参照して、自律蓄積処理を再起動するためにタイマに時間を設定し、次にステップＳ１１０で、当該ストリームの切断処理を行う。尚、この切断処理の内容は図１４のフローチャートを参照して説明したのと同様である。
【００６６】
以上の動作により、自律蓄積モードの場合には、データの蓄積が完了した時点で一旦ストリームは切断され、また指定された時間間隔の後に再接続して、データの受信と再蓄積が行われる。一方、自律蓄積モードでないストリームの場合には、データ蓄積を蓄積管理テーブル３１３の取り込み長さの項８０３の値に相当する量だけ続けて、周期８０２で指示される時間だけ間を空けて、またデータ蓄積を行うという動作を繰り返す。これによりデータ蓄積部１０６のデータが定期的に更新され、常に新しいデータが蓄積されていることになる。
【００６７】
図１９は、図１０のステップＳ１６の自律蓄積処理の内容を示すフローチャートで、この処理は図１１のステップＳ２３の接続処理と同じ接続処理により実行される。
【００６８】
図２０は図１０のステップＳ１８のダイジェスト送信処理の内容を示すフローチャートで、ダイジェストに対応する配送テーブル３１５を読み出し作業リスト３１６にするステップＳ１２１、作業リスト３１６が空か否かを判定するステップＳ１２２、配送先を１つ読み出すステップＳ１２３、データ蓄積部１０６に蓄えられている受信データ(ダイジェストデータ)を配送先に送信するステップＳ１２４、配送管理テーブル３１２の更新ステップＳ１２５、ステップＳ１２５で更新されたダイジェストカウンタ７０５の値が“０”になったかを否かを判定するステップＳ１２６、配送ストリームがダミーであるかを判定するステップＳ１２７、配送先を削除するステップＳ１２８、配送先を復元するステップＳ１２９、作業リスト３１６から配送先を削除するステップＳ１３０、作業リスト３１６が空のときにダイジェスト要求があるか否かを判定するステップＳ１３１、そしてダイジェスト送信のためのタイマを設定するステップＳ１３２を備えている。
【００６９】
まずステップＳ１２１で、配送処理部１０４は、配送管理テーブル３１２を参照し、ダイジェストの項７０４が「True」の配送先を選び出し、あれば作業リスト３１６に代入する。次いでステップＳ１２２で、その作業リスト３１６が空であるかを判定し、空ならばステップＳ１３１に進み、空でなければステップＳ１２３に進む。ステップＳ１２３では、作業リスト３１６から１つ配送先を読み出して、それを対象配送先とし、ステップＳ１２４で、データ蓄積部１０６から蓄積データを読み出し対象配送先へ送信する。続いてステップＳ１２５に進み、配送管理テーブル３１２のダイジェストカウンタ７０５の値を“１”だけデクリメント（−１）し、ステップＳ１２６で、ダイジェストカウンタ７０５の値が“０”かどうか判定する。ダイジェストカウンタ７０５の値が“０”でなければステップＳ１３０に進み、作業リスト３１６から対象配送先を削除してステップＳ１２２に戻る。
【００７０】
またステップＳ１２６で、ダイジェストカウンタ７０５の値が“０”であればステップＳ１２７に進み、配送管理テーブル３１２の配送ストリームＩＤ７０１がマイナスの値である場合にはダミーであるとしてステップＳ１２８の配送先削除処理に進む。一方、ダミーでない場合はステップＳ１２９に進み、配送先復元処理を実行する。即ち、ステップＳ１２８では、配送管理テーブル３１２から対象配送先のエントリを削除し、ステップＳ１３０で作業リスト３１６からその対象配送先を削除してステップＳ１２２に戻る。またステップＳ１２９では、配送管理テーブル３１２の対象配送先のエントリのダイジェストの項７０４を「False」にしてステップＳ１３０に進み、作業リスト３１６から対象配送先を削除してステップＳ１２２へ戻る。これらステップＳ１２２からステップＳ１３０までの処理を、作業リスト３１６が空になるまで繰り返す。こうしてステップＳ１２２で作業リスト３１６が空になるとステップＳ１３１に進み、配送管理テーブル３１２を参照してダイジェストの項７０４が「True」のエントリがあるかを判定する。このダイジェストの項７０４が「True」のエントリがあればステップＳ１３２に進み、ダイジェスト送信処理を再起動するためのタイマ３０６を設定する。一方、ステップＳ１３１で「True」のエントリがなければそのまま処理を終了する。
【００７１】
このように図２０のフローチャートで示す動作がタイマ３０６の再設定により繰り返し行われることにより、データ蓄積部１０６に記憶されている蓄積データがダイジェスト要求を発した配送先に送信される。尚、ここでダイジェストカウンタ７０５の設定は、ダイジェストを流す長さ（フレーム数）を設定することになる。また、データ蓄積部１０６に蓄積されている蓄積データの読み出し順は、ダイジェスト送信処理が呼び出される度に１つづつ進み、全ての蓄積データが読み出された時に起点に戻るようにする。
【００７２】
尚、このダイジェストデータの送信に付随して、データパケット内のヘッダに情報源のアドレスやポート番号、ストリーム番号などの付属情報を書き込み、これを下流に位置している受信側に伝達することができる。また、別の方法として、データパケットとは別のコントロールパケットを作成し、これをもって上記の情報を伝送することも可能であり、このような手法は例えばInternet Engineering Task Forceによる標準化文書の１つ、RFC１８８９(A Realtime Transport Protocol)に述べられているRTCP(RTP Control Protocol)を利用することにより実現でき、コントロールパケットの比率を調整することでデータ流量面での負荷を制御することができる。
【００７３】
また、蓄積データの配送先端末では、これらのデータおよび付属情報を表示し、クライアントに接続する情報源を選択させ、再度、接続要求を本実施の形態の配送サーバに発することができることは言うまでもない。
【００７４】
図２１は、データの蓄積に用いるデータ蓄積部１０６のバッファメモリの構成の一例を示した図である。ここでは、それぞれのストリームに対して２つのバッファ領域(A１,A２など)が割り当てられている。
【００７５】
図２２は、図８と同様に蓄積管理テーブル３１３の一部を示した図である。
【００７６】
図８の構成に加えて、ストリーム番号８０１に対して読み出しポインタ８１１、書き込みポインタ８１２という２つのポインタと、読み出しバッファおよび書き込みバッファの２つのバッファの位置８１３，８１４、読み出し完了待ちフラグ８１５が格納されている。この読み出し完了待ちフラグ８１５は、後述するように読み出しバッファと書き込みバッファの切り替えの際に、読み出し操作により読み出しバッファを読み出し中である場合、その読み出し処理の完了待ちを示すためにセットするフラグである。
【００７７】
このようなバッファメモリの構成は、バッファの内容更新とダイジェストの送信を並行して行うためのものである。即ち、書き込み動作の行われているバッファは読み出しには用いず、読み出し時には読み出しバッファに当てられているバッファのみを蓄積管理テーブル３１３の読み出しバッファの値８１３および読み出しポインタ８１１の値を参照しながら、蓄積管理テーブル３１３の上から下へ順に読み出しが行われる。この読み出しに伴って読み出しポインタ８１１を１だけ増加させ、この読み出しポインタ８１１が取り込み長さ８０３と同じになった時に、そのバッファの読み出しが完了する。この時、読み出し完了待ちフラグが「True」に設定されている場合には、読み出しバッファと書き込みバッファを切り替え、読み出し完了待ちフラグ８１５を「False」に、読み出しポインタ８１１および書き込みポインタ８１２を共に“０”に設定する。
【００７８】
尚、図２２の２行目(ストリーム番号“１２３”のエントリ)に示したように、読み出しバッファが準備完了になっていない場合には、読み出しバッファの指定は正常値である“１”以上にはならずに“０”となるので、このようなストリームは読み飛ばすようにする。
【００７９】
図２３は、図１７のステップＳ９３の蓄積データの書き込み動作を示すフローチャートで、読み出し待ちフラグ８１５が「False」であるか否かを判定する判定ステップＳ１４１、蓄積管理テーブル３１３より書き込みポインタ８１２および書き込みバッファ８１４を読み込むステップＳ１４２、受信データを書き込みポインタ８１２および書き込みバッファ８１４で指定された場所に書き込むステップＳ１４３、書き込みポインタ８１２を“１”だけ増加させるステップＳ１４４、書き込みポインタ８１２の値が取り込み長さ８０３に達したか否かを判定するステップＳ１４５、読み出しポインタ８１１が“０”あるいは取り込み長さ８０３に等しいか否かを判定するステップＳ１４６、読み出し完了待ちフラグ８１５をセットするステップＳ１４７、及びバッファ切り替え操作を行うステップＳ１４８を有している。
【００８０】
データ蓄積部１０６は、受信データの蓄積のための書き込み動作に際して、まずステップＳ１４１で、蓄積管理テーブル３１３の受信ストリームのエントリを参照し、読み出し待ちフラグ８１５が設定されているか否かを判定する。これが「False」でない（フラグセット）場合には、読み出し完了まで書き込み不可であると判断して処理を終了する。一方、読出し待ちフラグ８１５がセットされていない「False」の場合にはステップＳ１４２に進み、書き込みポインタ８１２と書き込みバッファ８１４の項を読み出す。次いでステップＳ１４３に進み、入力処理部１０２を介してネットワーク１１０より受信した受信データを、書き込みポインタ８１２と書き込みバッファ８１４で指示されたメモリエリアに書き込み、その書き込みポインタ８１２を“１”だけ増加させる。
【００８１】
続いてステップＳ１４４に進み、書き込みポインタ８１２が取り込み長さ８０３に達した(即ち、書き込みが完了した)か否かを判定する。書き込みポインタ８１２が取り込み長さ８０３と等しくない（書込みが終了でない）場合にはそのまま処理を終了し、等しい場合（終了した場合）にはステップＳ１４６に進む。ステップＳ１４６では、読み出しポインタ８１１が“０”(即ち、全く読み出されていない)、或は取り込み長さ８０３と等しい(即ち、読み出しが終わっている)かそうでないかを判定する。“０”か取り込み長さでない場合にはステップＳ１４７に進み、読み出し待ちフラグ８１５を「True」にセットして処理を終了する。またステップＳ１４６で、“０”か或は取り込み長さ８０３と等しい場合にはステップＳ１４８に進み、バッファ切り替え処理として、読み出しバッファと書き込みバッファを切り替え、その読み出しポインタおよび書き込みポインタを“０”に設定する。
【００８２】
以上のように構成することにより、情報源より送られてくるデータの一部を蓄積し、下流側の配送先にダイジェストとして配送することが可能となった。
【００８３】
またこの際、下流側にあるクライアントからの要請がなくとも、予め設定された内容に従い自律的に上流側の情報源と定期的に接続して、そこから受信したデータを蓄積することができる。
【００８４】
本実施の形態に示される図２の構成での利用形態に対応させれば、ビューワ２０３からの要求に応じてカメラサーバ２０２からのデータをビューワ２０３に配送できると共に、ビューワ２０３ではダイジェスト機能を利用して、配送サーバ１００がどのカメラサーバ２０２からのデータを中継しているかを認識できるようになる。
【００８５】
また、配送サーバにおいて自律蓄積モードが設定できるようにすることにより、指定したいくつかのカメラサーバ２０２の最近の映像を定期的に更新しながら配送サーバ１００からのダイジェストとして下流側に流すことが可能となる。
【００８６】
(その他の実施の形態)
前述の実施の形態において、中継配送機能をなくした場合、本発明の実施の形態は、いくつかのカメラからの最近データをまとめて流す、いわゆるディレクトリ・サービスサーバとして利用可能である。
【００８７】
また、図３の構成を考えた場合、下位の配送サーバより上位の配送サーバにダイジェストを要求して、このダイジェスト要求に基づいて送られてくるデータを下位側の配送サーバにおけるダイジェストデータの一部として蓄積することにより、カメラなどの情報源に関する情報を、より多くのクライアントにダイジェストとして配送することができる。
【００８８】
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００８９】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても達成される。
【００９０】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００９１】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００９２】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００９３】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００９４】
以上説明したように本実施の形態によれば、複数の情報源からのデータのそれぞれの一部を蓄積し、配送先端末であるクライアントからの要求に応じて、それらの蓄積データをまとめてクライアントへ配送し、中継用サーバを介して、どのようなデータを利用できるかを示す情報をクライアントに示すことが可能となった。
【００９５】
また、情報源よりのデータの主たる対象を映像・画像、サウンドなどの連続データとすることにより、データの一部蓄積、その取り出しが容易になった。
【００９６】
また、設定情報に応じて、配送するデータの蓄積方法を設定可能にし、その設定情報に応じて情報源からのデータの一部を蓄積するように構成することにより、配送サーバの置かれた状況に応じて適切にデータを蓄積することが可能となった。
【００９７】
また、本実施の形態の配送サーバによれば、データの蓄積方法を、そのデータの取り込み先、取り込み長さ、取り込み間隔の少なくとも３項目を用いて設定することにより、指定した間隔で、指定した期間の長さのデータを、指定した情報源（取り込み先）から入手することができる。また、これらの情報源（取り込み先）を複数設定することが可能となった。
【００９８】
また、配送先（クライアント）からの中継配送要求を受付け、その要求に対して情報源にデータ配送を要請することができ、情報源からのデータの蓄積方法を配送先からの要求に対応する配送データの一部を蓄積できるようにすることにより、配送サーバを介して、配送先からの要請に基づくデータ配送と配送データからのダイジェストデータの作成が同時に可能となった。
【００９９】
また、予め設定された間隔をおいて定期的に情報源にデータを要求して、そのデータの一部を蓄積するように構成したことにより、情報源の最新の情報に自動的にアクセスし、このアクセスしたデータのダイジェスト送信を提供可能となった。
【０１００】
また、情報源からのデータの一部を蓄積する際、ダブルバッファでデータを蓄積することにより、データの蓄積のための書き込み動作と、クライアントへのダイジェスト配送のための読み出し動作が同時に可能となった。
【０１０１】
【発明の効果】
以上説明したように本発明によれば、情報源からのデータの一部を蓄積しておき、その蓄積データをクライアントからの指示に応じて、そのクライアントに送信することができるという効果がある。
【０１０２】
また本発明によれば、クライアントからの要求に応じて、その要求された情報源にデータを要請し、その要請に応じて送信される情報源からのデータの少なくとも一部を蓄積し、その蓄積されているデータを所定量送信できるという効果がある。
【０１０３】
また本発明によれば、予め設定された間隔をおいて定期的に情報源にデータを要求して、そのデータの一部を蓄積しておき、その蓄積したデータの適宜の送信できるという効果がある。
【０１０４】
【図面の簡単な説明】
【図１】本発明の実施の形態の配送サーバの機能構成を示す機能ブロック図である。
【図２】本発明の実施の形態のネットワークシステムの構成を示す概念図である。
【図３】本発明の他の実施の形態のネットワークシステムの構成を示す概念図である。
【図４】本実施の形態の配送サーバの構成を示すブロック図である。
【図５】本実施の形態の配送サーバにおける起動処理を示すフローチャートである。
【図６】本実施の形態の蓄積設定テーブルの内容例を示した図である。
【図７】本実施の形態の配送管理テーブルの内容例を示した図である。
【図８】本実施の形態の蓄積管理テーブルの一部の内容例を示した図である。
【図９】本実施の形態のストリーム管理テーブルの内容例を示した図である。
【図１０】本実施の形態の配送サーバのメイン処理を示すフローチャートである。
【図１１】図１０の受け付け処理（Ｓ１２）の詳細を示すフローチャートである。
【図１２】図１１の接続処理（Ｓ２３）の詳細を示すフローチャートである。
【図１３】図１２の蓄積管理情報設定（Ｓ３４）の詳細を示すフローチャートである。
【図１４】図１１の切断処理（Ｓ２５）の詳細を示すフローチャートである。
【図１５】図１１のダイジェスト処理（Ｓ２７）の詳細を示すフローチャートである。
【図１６】図１０の配送処理（Ｓ１４）の詳細を示すフローチャートである。
【図１７】図１６のデータ蓄積処理（Ｓ７４）の詳細を示すフローチャートである。
【図１８】図１７の蓄積管理情報更新処理（Ｓ９４）の詳細を示すフローチャートである。
【図１９】図１０の自律蓄積処理（Ｓ１６）の詳細を示すフローチャートである。
【図２０】図１０のダイジェスト送信処理（Ｓ１８）の詳細を示すフローチャートである。
【図２１】データ蓄積部におけるバッファメモリの構成の一例を示した図である。
【図２２】本実施の形態の蓄積管理テーブルの内容の一部の一例を示した図である。
【図２３】図１７の蓄積データの書き込み動作（Ｓ９３）の詳細を示すフローチャートである。
【符号の説明】
１００  配送サーバ
１０４  配送処理部
１０５  要求受付け部
１０６  データ蓄積部
１０７  配送管理部
１０８  蓄積管理部
１０９  要求発信部
３１１  蓄積設定テーブル
３１２  配送管理テーブル
３１３  蓄積管理テーブル
３１４  ストリーム管理テーブル
３１５  配送テーブル
【図１】
0003696995.tif 000002
【図２】
0003696995.tif 000003
【図３】
0003696995.tif 000004
【図４】
0003696995.tif 000005
【図５】
0003696995.tif 000006
【図６】
0003696995.tif 000007
【図７】
0003696995.tif 000008
【図８】
0003696995.tif 000009
【図９】
0003696995.tif 000010
【図１０】
0003696995.tif 000011
【図１１】
0003696995.tif 000012
【図１２】
0003696995.tif 000013
【図１３】
0003696995.tif 000014
【図１４】
0003696995.tif 000015
【図１５】
0003696995.tif 000016
【図１６】
0003696995.tif 000017
【図１７】
0003696995.tif 000018
【図１８】
0003696995.tif 000019
【図１９】
0003696995.tif 000020
【図２０】
0003696995.tif 000021
【図２１】
0003696995.tif 000022
【図２２】
0003696995.tif 000023
【図２３】
0003696995.tif 000024