(57)【要約】  【構成】  サーバ１２のＣＰＵ２６は、クライアント１４ａ，１４ｂ，…からの登録要求に応じてコンテンツファイルを登録し、クライアント１４ａ，１４ｂ，…からの転送要求に応じて登録ファイルを転送する。コンテンツファイルを登録するときＣＰＵ２６は、そのファイルに同時転送可能数を設定する。これによりファイル毎に同時転送可能数が設定される。新規な転送要求を受け付けたときＣＰＵ２６は、その転送要求に従うファイルについて同時に実行されている転送動作の数が、その転送要求に従うファイルに設定された同時転送可能数を下回るか否かを判別し、この判別結果が肯定的であれば新たな転送動作の開始を許可する。  【効果】  同時にファイル転送を受けるクライアントの数をファイル毎に制限できる。【選択図】  図１
2006221455.tif 000002
【特許請求の範囲】
【請求項１】
同時に実行することができる転送動作の数をファイル毎に設定する設定手段、
クライアントからのファイル転送要求を受け付ける転送要求受付手段、
前記転送要求受付手段によって受け付けたファイル転送要求に従うファイルを前記クライアントに転送する転送手段、
前記転送手段によって同時に実行されている転送動作の数をファイル毎に検出する検出手段、および
前記設定手段の設定結果と前記検出手段の検出結果とに基づいて前記転送手段による転送動作をファイル毎に制御する制御手段を備える、サーバ。
【請求項２】
前記制御手段は、前記転送要求受付手段によって新規のファイル転送要求を受け付けたとき前記検出手段の検出結果が前記設定手段の設定結果を下回るか否かを前記新規のファイル転送要求に従うファイルについて判別する転送判別手段、および前記転送判別手段の判別結果が肯定的であるとき前記新規のファイル転送要求に対応する新たな転送動作の開始を許容する第１許容手段を含む、請求項１記載のサーバ。
【請求項３】
ファイル毎に優先クライアントを決定する決定手段をさらに備え、
前記制御手段は、前記転送判別手段の判別結果が否定的であるとき前記新規のファイル転送要求の要求元が前記新規のファイル転送要求に従うファイルについて決定された優先クライアントであるか否かを判別する要求判別手段、前記要求判別手段の判別結果が肯定的であるとき前記新規のファイル転送要求に従うファイルについて同時に実行されている転送動作のいずれか１つを停止する停止手段、および前記停止手段の停止動作に関連して前記新規のファイル転送要求に従うファイルに対応する新たな転送動作の開始を許容する第２許容手段をさらに含む、請求項２記載のサーバ。
【請求項４】
クライアントからファイル登録を要求する登録要求を受け付ける登録要求受付手段をさらに備え、
前記決定手段は前記登録要求の要求元を前記登録要求に従うファイルの優先クライアントに決定する、請求項３記載のサーバ。
【請求項５】
前記転送要求受付手段によって受け付けたファイル転送要求に優先度を付与する付与手段をさらに備え、
前記停止手段は前記付与手段によって付与された優先度が最低のファイル転送要求に対応する転送動作を停止する、請求項３または４記載のサーバ。
【請求項６】
前記付与手段は優先クライアントからのファイル転送要求に最高優先度を付与する、請求項５記載のサーバ。
【請求項７】
サーバのプロセサによって実行されるファイル転送制御プログラムであって、
同時に実行することができる転送動作の数をファイル毎に設定する設定ステップ、
クライアントからのファイル転送要求を受け付ける転送要求受付ステップ、
前記転送要求受付ステップによって受け付けたファイル転送要求に従うファイルを前記クライアントに転送する転送ステップ、
前記転送ステップによって同時に実行されている転送動作の数をファイル毎に検出する検出ステップ、および
前記設定ステップの設定結果と前記検出ステップの検出結果とに基づいて前記転送ステップによる転送動作をファイル毎に制御する制御ステップを備える、ファイル転送制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、サーバに関し、特にたとえば、音楽，映像などのコンテンツを含むファイルを複数のクライアントに同時に転送する、サーバに関する。
【背景技術】
【０００２】
従来この種のサーバは一般に、同時に実行できる転送動作の数（以下“同時転送可能数”）をサーバ自身の処理能力に基づいて設定する。そして、クライアントから新規のファイル転送要求を受けたとき、同時に実行している転送処理の数（以下“現同時転送数”）が最大同時転送数を下回るか否かを判別し、判別結果が肯定的であれば新たな転送処理を開始し、判別結果が否定的であれば要求を拒否する。これにより、ファイル転送要求が集中したとき処理に破綻が生じるのを回避できる。
【０００３】
具体例としては、特許文献１に開示されたストリーミング配信装置が知られている。この装置は、クライアントから新規の配信要求を受けたとき、同時に配信しているコンテンツの数と、接続されているクライアントの数とを検出する。次に、検出結果とサーバ自身の最大同時配信特性とに基づいて最大同時配信数を算出する。そして、同時に実行している配信処理の数が算出結果を下回るか否かを判別し、判別結果に応じて新たな配信の可否を決定する。こうして最大同時配信数を動的に変化させることで、同時に配信を受けるクライアントの総数を適切に制御しようとしている。
【特許文献１】特開２００３−１７９９０２号公報〔Ｈ０４Ｎ ７／１７３，Ｈ０４Ｍ １１／００〕
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、従来技術では、同時にファイル転送を受けるクライアントの数をファイル毎に制限することができない。かかる制限を行えれば、コンテンツ製作者一人一人について、きめの細かい権利保護を図ることが可能となる。
【０００５】
それゆえに、この発明の主たる目的は、同時にファイル転送を受けるクライアントの数をファイル毎に制限できる、サーバを提供することである。
【課題を解決するための手段】
【０００６】
請求項１の発明に従うサーバは、同時に実行することができる転送動作の数を示す同時転送可能数をファイル毎に設定する設定手段、クライアントからのファイル転送要求を受け付ける転送要求受付手段、転送要求受付手段によって受け付けたファイル転送要求に従うファイルをクライアントに転送する転送手段、転送手段によって同時に実行されている転送動作の数をファイル毎に検出する検出手段、および設定手段の設定結果と検出手段の検出結果とに基づいて転送手段による転送動作をファイル毎に制御する制御手段を備える。
【０００７】
設定手段は、同時に実行することができる転送動作の数つまり同時転送可能数をファイル毎に設定する。クライアントからのファイル転送要求は、転送要求受付手段によって受け付けられ、転送手段は、受け付けられたファイル転送要求に従うファイルをクライアントに転送する。検出手段は、転送手段によって同時に実行されている転送動作の数つまり現同時転送数をファイル毎に検出する。制御手段は、設定手段の設定結果つまりファイル毎に設定された同時転送可能数と、検出手段の検出結果つまりファイル毎に検出された現同時転送数とに基づいて、転送手段による転送動作をファイル毎に制御する。
【０００８】
同時転送可能数をファイル毎に設定し、現同時転送数をファイル毎に検出し、そして設定結果および検出結果に基づく転送制御をファイル毎に行うので、同時にファイル転送を受けるクライアントの数をファイル毎に制限することができる。
【０００９】
請求項２の発明に従うサーバは、請求項１に従属し、制御手段は、転送要求受付手段によって新規のファイル転送要求を受け付けたとき検出手段の検出結果が設定手段の設定結果を下回るか否かを新規のファイル転送要求に従うファイルについて判別する転送判別手段、および転送判別手段の判別結果が肯定的であるとき新規のファイル転送要求に対応する新たな転送動作の開始を許容する第１許容手段を含む。
【００１０】
新規のファイル転送要求を受け付けたとき、転送判別手段は、そのファイル転送要求に従うファイルの現同時転送数が、そのファイル転送要求に従うファイルに設定された同時転送可能数を下回るか否かの判別を行う。第１許容手段は、かかる転送判別手段の判別結果が肯定的であるとき、新規のファイル転送要求に対応する新たな転送動作の開始を許容する。
【００１１】
請求項３の発明に従うサーバは、請求項２に従属し、ファイル毎に優先クライアントを決定する決定手段をさらに備え、制御手段は、転送判別手段の判別結果が否定的であるとき新規のファイル転送要求の要求元が新規のファイル転送要求に従うファイルについて決定された優先クライアントであるか否かを判別する要求判別手段、要求判別手段の判別結果が肯定的であるとき新規のファイル転送要求に従うファイルについて同時に実行されている転送動作のいずれか１つを停止する停止手段、および停止手段の停止動作に関連して新規のファイル転送要求に従うファイルに対応する新たな転送動作の開始を許容する第２許容手段をさらに含む。
【００１２】
決定手段は、ファイル毎に優先クライアントを決定する。新規のファイル転送要求に従うファイルについての転送判別手段の判別結果が否定的であるとき、要求判別手段は、そのファイル転送要求の要求元がそのファイル転送要求に従うファイルに決定された優先クライアントであるか否かを判別する。停止手段は、要求判別手段の判別結果が肯定的であるとき、新規のファイル転送要求に従うファイルについて同時に実行されている転送動作のいずれか１つを停止し、第２許容手段は、かかる停止手段の停止動作に関連して、新規のファイル転送要求に従うファイルの転送開始を許容する。
【００１３】
請求項２および３に従えば、１つ１つのファイルについて、現同時転送数が同時転送可能数を超えないように制限しつつ、重要なクライアントへの転送を優先的に行うことができる。
【００１４】
請求項４の発明に従うサーバは、請求項３に従属し、クライアントからファイル登録を要求する登録要求を受け付ける登録要求受付手段をさらに備え、決定手段は登録要求の要求元を登録要求に従うファイルの優先クライアントに決定する。
【００１５】
登録要求受付手段は、クライアントからファイル登録を要求する登録要求を受け付ける。こうして登録要求を受け付けたとき、決定手段は、その登録要求の要求元を、その登録要求に従うファイルの優先クライアントに決定する。
【００１６】
ファイルを登録したクライアントは、そのファイルの優先クライアントとして、そのファイルの転送を優先的に受けることができる。
【００１７】
請求項５の発明に従うサーバは、請求項３または４に従属し、転送要求受付手段によって受け付けたファイル転送要求に優先度を付与する付与手段をさらに備え、停止手段は付与手段によって付与された優先度が最低のファイル転送要求に対応する転送動作を停止する。
【００１８】
新たな転送動作の割り込みのために重要なクライアントへの転送が中断される可能性を低減できる。
【００１９】
請求項６の発明に従うサーバは、請求項５に従属し、付与手段は優先クライアントからのファイル転送要求に最高優先度を付与する。
【００２０】
優先クライアントへの転送が中断される可能性を低減できる。
【００２１】
請求項７の発明に従うプログラムは、サーバのプロセサによって実行されるファイル転送制御プログラムであって、同時に実行することができる転送動作の数をファイル毎に設定する設定ステップ、クライアントからのファイル転送要求を受け付ける転送要求受付ステップ、転送要求受付ステップによって受け付けたファイル転送要求に従うファイルをクライアントに転送する転送ステップ、転送ステップによって同時に実行されている転送動作の数をファイル毎に検出する検出ステップ、および設定ステップの設定結果と検出ステップの検出結果とに基づいて転送ステップによる転送動作をファイル毎に制御する制御ステップを備える。
【発明の効果】
【００２２】
この発明によれば、同時にファイル転送を受けるクライアントの数をファイル毎に制限できる。この結果、コンテンツ製作者一人一人について、きめの細かい権利保護を図ることが可能となる。
【００２３】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００２４】
図１を参照して、この実施例のコンテンツ配信システム１０は、サーバ１２を含む。サーバ１２は、ハブ１６を介して複数のクライアント１４ａ，１４ｂ，…，１４ｉ，…と接続される。つまり、サーバ１２，クライアント１４ａ，１４ｂ，…，１４ｉ，…，およびハブ１６によって、１つのローカルエリアネットワーク（ＬＡＮ）が構成される。ハブ１６はルータ機能も備えており、サーバ１２およびクライアント１４ａ，１４ｂ，…，１４ｉ，…の各々は、ハブ１６を介してインターネット１８に接続することができる。
【００２５】
たとえばクライアント１４ｉは、ＣＤ４８ｄからコンテンツを読み出し、読み出されたコンテンツを含むファイルの登録をサーバ１２に要求する。また、インターネット１８からコンテンツをダウンロードし、ダウンロードされたコンテンツを含むファイルの登録をサーバ１２に要求する。かかる登録要求に応答して、サーバ１２は、クライアント１４ｉからコンテンツデータを取り込み、取り込んだコンテンツデータを含むファイルを登録する。他のクライアントも同様の動作を行う。
【００２６】
こうしてサーバ１２には、複数のファイル（ファイル１，ファイル２，…，ファイルＮ，…）が登録される。複数のクライアント１４ａ，１４ｂ，…，１４ｉ，…の各々は、登録された複数のファイルのうち所望のファイルの転送を任意のタイミングでサーバに要求する。たとえばクライアント１４ｉがファイルＮの転送を要求する転送要求を発行すると、サーバ１２は、発行された転送要求を受け付け、受け付けられた転送要求に従うファイルつまりファイルＮに含まれるコンテンツデータを要求元つまりクライアント１４ｉに転送する。クライアント１４ｉは、転送されてくるコンテンツデータに基づいてストリーミング再生を行う。
【００２７】
同時期に複数の転送要求が発行された場合、サーバ１２は、発行された複数の転送要求を受け付け、受け付けられた複数の転送要求に対応する複数の転送処理を時分割的に実行する。つまりサーバ１２は、同時に複数の転送処理を実行することができる。
【００２８】
たとえばファイル１のクライアント１４ｂへの転送処理を実行中、クライアント１４ｃによってファイルＮの転送を要求する転送要求が発行されると、サーバ１２は、発行された転送要求を受け付け、ファイルＮに含まれるコンテンツデータをクライアント１４ｃに転送する転送処理を開始する。つまり、ファイル１のクライアント１４ｂへの転送処理と、ファイルＮのクライアント１４ｃへの転送処理との２つの転送処理を時分割的に実行する。
【００２９】
この後さらにクライアント１４ｄによってファイルＮの転送を要求する転送要求が発行されると、サーバ１２は、発行された転送要求を受け付け、ファイルＮに含まれるコンテンツデータをクライアント１４ｄに転送する転送処理を開始する。つまり、サーバ１２は、３つの転送処理を時分割的に実行する。このうち２つの転送処理は、同じファイルＮを対象としている。サーバ１２は、同じ１つのファイルを対象とする転送処理の同時実行数を、次のようにして制限する。
【００３０】
サーバ１２は、登録要求に応じてファイルを登録するとき、同時転送可能数（Ｔｍａｘ）を設定し、かつ“優先クライアント”を選定する。この結果、ファイル１，ファイル２，…にそれぞれ、同時転送可能数Ｔｍａｘ＿１，Ｔｍａｘ＿２，…と、優先クライアント識別子ＰＣＩＤ＿１，ＰＣＩＤ＿２，…とが割り当てられることとなる。そしてサーバ１２は、新規な転送要求が発行されたとき、その転送要求に従うファイルについて同時に実行されている転送処理の数（現同時転送数）を、その転送要求に従うファイルに対して設定された同時転送可能数と比較する。
【００３１】
比較の結果、現同時転送数が同時転送可能数に満たなければ、新たな転送処理を開始する。一方、現同時転送数が同時転送可能数に達していれば、新規の転送要求を破棄する。ただし、新たな転送要求の要求元が優先クライアントであれば、同時に実行している転送処理のうちいずれか１つを強制終了し、代わりに新たな転送処理を開始する。
【００３２】
これにより、同時にファイル転送を受けるクライアントの数をファイル毎に制限することができる。この結果、コンテンツ製作者一人一人の要望に沿って、きめの細かい権利保護を図ることが可能となる。一例を挙げれば、製作者“Ａ”〜“Ｃ”によるコンテンツ“ａ”〜“ｃ”を配信する場合、コンテンツ“ａ”を含むファイルについては、製作者“Ａ”の要望によりクライアント数を５以下に制限し、コンテンツ“ｂ”を含むファイルについては、製作者“Ｂ”の要望によりクライアント数を１０以下に制限し、コンテンツ“ｃ”を含むファイルについては、製作者“Ｃ”の要望によりクライアント数を無制限とすることができる。
【００３３】
より具体的には、サーバ１２は、ネットワークＩ／Ｆ２０，ＳＤＲＡＭ２２，ＳＤＲＡＭコントローラ２４，ＣＰＵ２６，ＨＤ（ハードディスク）ドライブ２８，およびフラッシュメモリ３０を含む。クライアント１４ｉは、ネットワークＩ／Ｆ３２，ＳＤＲＡＭ３４，ＳＤＲＡＭコントローラ３６，ＨＤドライブ３８，ＣＰＵ４０，信号処理回路４２，アンプ４４，スピーカ４６，ＣＤドライブ４８および操作パネル５０を含む。
【００３４】
ファイルを登録するとき、サーバ１２およびクライアント１４ｉは、次のように動作する。ＣＤ４８ｄに記録されたコンテンツを収めたファイルをクライアント１４ｉからサーバ１２に登録する場合、ＣＤドライブ４８にＣＤ４８ｄが装着される。クライアント１４ｉのＣＰＵ４０は、操作パネル５０を介してファイル登録操作を受け付けると、ファイル登録要求をサーバ１２に向けて送信する。一方、ＣＤドライブ４８には、コンテンツの読み出しを命令する。
【００３５】
ＣＤドライブ４８は、ＣＤ４８ｄからコンテンツデータを読み出す。ＣＤ４８ｄから読み出されたコンテンツデータは、ＳＤＲＡＭ３４に一時保持される。
【００３６】
ＣＰＵ４０によって送信されたファイル登録要求は、ネットワークＩ／Ｆ３２，ハブ１６およびネットワークＩ／Ｆ２０を通り、サーバ１２のＣＰＵ２６によって受信される。サーバ１２では、ＣＰＵ２６は最初、クライアント１４ｉのＣＰＵ４０にコンテンツの読み出しを依頼する。
【００３７】
依頼に応じてＣＰＵ４０は、ＳＤＲＡＭコントローラ３６にコンテンツの読み出しを命令し、命令に応じてＳＤＲＡＭコントローラ３６は、ＳＤＲＡＭ３４からコンテンツデータを読み出す。
【００３８】
ＣＰＵ２６は次に、読み出されたコンテンツデータのＳＤＲＡＭ２２への取り込みをＳＤＲＡＭコントローラ２４に命令する。命令に応じてＳＤＲＡＭコントローラ２４は、読み出されたコンテンツデータをネットワークＩ／Ｆ３２，ハブ１６およびネットワークＩ／Ｆ２０を通してＳＤＲＡＭ２２内に取り込む。
【００３９】
ＣＰＵ２６は、こうしてＳＤＲＡＭ２２内に取り込まれたコンテンツデータに対し、同時転送可能数を設定し、かつ優先クライアントを選定する。具体的には、コンテンツデータに予め同時転送可能数を示す情報が添付されていれば、この情報に従って設定を行い、添付されていなければ、所定値たとえば“３”を設定する。
【００４０】
一方、優先クライアントとしては、ファイル登録操作を受け付けたクライアント、つまりクライアント１４ｉを選定する。さらに、クライアント１４ｉの操作パネル５０を介して選定操作を受け付け、追加の優先クライアントを選定することもできる。ここでは、２つのクライアント１４ｉおよび１４ａが優先クライアントに選定されたものとする。
【００４１】
設定および選定が完了すると、ＣＰＵ２６は、ＨＤドライブ２８にファイル登録を命令する。ＨＤドライブ２８は、設定された同時転送可能数，選定された優先クライアントの識別子，およびＳＤＲＡＭ２２内のコンテンツデータを含むファイルをハードディスク２８ｄ内に生成する。生成されたファイルには、ＣＰＵ２６によってファイル番号（１，２，…，Ｎ，…）が付される。
【００４２】
かかるファイル登録に続いて、ＣＰＵ２６は、登録されたファイルに対応するテーブル（Ｔｂｌ：図３参照）をフラッシュメモリ３０内に生成する。そして、クライアント１４ａ，１４ｂ，…，１４ｉ，…からの転送要求を優先度順に、このテーブルに登録していく。同時転送可能数を超える数の転送要求が登録された場合には、優先度が最低の転送要求をテーブルから削除する（図４参照；詳細は後述）。これにより、１つ１つのファイルについて、現同時転送数が同時転送可能数を超えないように制限しつつ、重要なクライアントへの転送を優先的に行うことができる。
【００４３】
なお、クライアント１４ｉのハードディスク４８ｄには、インターネット１８からダウンロードされたコンテンツや他のＣＤから読み出されたコンテンツなどが格納されており、こうしたハードディスク３６ｄ内のコンテンツを収めたファイルも、同様の手順でサーバ１２に登録することができる。
【００４４】
上記のようなファイル登録処理が繰り返し行われると、ハードディスク２８ｄには複数のファイルつまりファイル１，ファイル２，…，ファイルＮ，…が蓄積される（図２参照）。一方、フラッシュメモリ３０には、ハードディスク２８ｄ内の複数のファイルにそれぞれ対応する複数のテーブル、つまりＴｂｌ＿１，Ｔｂｌ＿２，…，Ｔｂｌ＿Ｎ，…が記憶される（図３参照）。
【００４５】
登録ファイルを転送するとき、サーバ１２およびクライアント１４ａ，１４ｂ，…，１４ｉ，…は、次のように動作する。たとえばクライアント１４ｂがファイル１のストリーミング再生を希望する場合、クライアント１４ｂのＣＰＵ４０は、操作パネル５０を介して再生操作を受け付け、そして、再生命令を発行すると共に、ファイル１の転送要求（ｒｅｑ＿１＿ｂ）をサーバ１２に送信する。
【００４６】
サーバ１２では、ＣＰＵ２６は、転送要求ｒｅｑ＿１＿ｂを受信し、これをフラッシュメモリ３０内のテーブルＴｂｌ＿１に登録する（図３参照）。ｒｅｑ＿１＿ｂを受信した時点でＴｂｌ＿１の登録転送要求数は“０”であり、ファイル１に設定された同時転送可能数（Ｔｍａｘ＿１＝３）を下回っているため、ｒｅｑ＿１＿ｂに対応する転送処理を実行する。
【００４７】
すなわち、ＣＰＵ２６は、ＨＤドライブ２８を介し、ハードディスク２８ｄからファイル１のコンテンツデータを所定量だけ読み出す。ハードディスク２８ｄから読み出されたコンテンツデータは、ＳＤＲＡＭコントローラ２４によってＳＤＲＡＭ２２に書き込まれる。なお、ＳＤＲＡＭ２２には、データ転送用に複数のバンクが形成されており、書き込みは、これら複数のバンクのいずれか１つに対して行われる。なお、必要に応じて２つまたはそれ以上の数のバンクに書き込んでも構わない。
【００４８】
この後、ＣＰＵ２６は、ＳＤＲＡＭコントローラ２４を介してＳＤＲＡＭ２２からコンテンツデータを所定のタイミングで読み出すと共に、クライアント１４ａのＣＰＵ４０にコンテンツデータの書き込みを依頼する。ＣＰＵ４０は、ＳＤＲＡＭ２２から読み出されたコンテンツデータを、ネットワークＩ／Ｆ２０，ハブ１６，ネットワークＩ／Ｆ３２およびＳＤＲＡＭコントローラ３６を通してＳＤＲＡＭ３４に書き込む。
【００４９】
先の読み出しから所定時間が経過すると、ＣＰＵ２６は再び、ハードディスク２８ｄからファイル１のコンテンツデータを所定量だけ読み出す。読み出されたコンテンツデータは、上記と同様の手順でクライアント１４ｂのＳＤＲＡＭ３４に書き込まれる。このように、サーバ１２に登録されたファイル１のコンテンツデータは、所定量ずつ小分けにしてクライアント１４ｂへと転送される。
【００５０】
クライアント１４ｂでは、閾値を超える量のコンテンツデータがＳＤＲＡＭ３４に蓄積されると、ＣＰＵ４０は、ＳＤＲＡＭ３４から周期的に所定量のコンテンツデータを読み出す動作を開始する。ＳＤＲＡＭ３４から読み出されたコンテンツデータは、信号処理回路４２に与えられ、デコード，Ｄ／Ａ変換といった一連の信号処理を施され、これによりアナログの音声信号が生成される。生成された音声信号は、アンプ４４を通してスピーカ４６に入力され、この結果、スピーカ４６から音声が出力される。
【００５１】
ＳＤＲＡＭ３４の蓄積データ量が閾値を下回らないような速さでサーバ１２がコンテンツデータを転送することで、クライアント１４ｂは、出力音声が途切れないようにコンテンツ１を再生することができる。
【００５２】
こうしてクライアント１４ｂがファイル１のストリーミング再生を行っている状態で、クライアント１４ｃのＣＰＵ４０がファイルＮの再生を行う操作を受け付けたとする。応じてＣＰＵ４０は、再生命令を発行すると共に、ファイルＮの転送要求（ｒｅｑ＿Ｎ＿ｃ）をサーバ１２に送信する。
【００５３】
サーバ１２では、ＣＰＵ２６は、転送要求ｒｅｑ＿Ｎ＿ｃを受信し、これをフラッシュメモリ３０内のテーブルＴｂｌ＿Ｎに登録する（図３参照）。ｒｅｑ＿Ｎ＿ｃを受信した時点では、Ｔｂｌ＿Ｎに登録されている転送要求の数（以下“登録転送要求数”）は“０”、つまりファイルＮに設定された同時転送可能数（Ｔｍａｘ＿Ｎ＝３）を下回っているため、前述の転送処理に加えてさらに、ｒｅｑ＿Ｎ＿ｃに対応する転送処理を同じ要領で実行する。
【００５４】
すなわち、ＣＰＵ２６は、ハードディスク２８ｄからファイルＮのコンテンツデータを所定量だけ読み出し、読み出されたコンテンツデータをＳＤＲＡＭ２２に書き込む。なお、書き込みは、クライアント１４ｂへの転送に利用しているものとは別のバンクに対して行われる。
【００５５】
ＣＰＵ２６は、ＳＤＲＡＭコントローラ２４を介してＳＤＲＡＭ２２からコンテンツデータを所定のタイミングで読み出すと共に、クライアント１４ｃのＣＰＵ４０にコンテンツデータの書き込みを依頼する。ＣＰＵ４０は、ＳＤＲＡＭ２２から読み出されたコンテンツデータを、ＳＤＲＡＭコントローラ３６を介してＳＤＲＡＭ３４に書き込む。
【００５６】
以降、所定時間が経過する度に、ハードディスク２８ｄからファイルＮのコンテンツデータが所定量だけ読み出され、読み出されたコンテンツデータがクライアント１４ｃへと転送されていく。クライアント１４ｃでは、閾値を超える量のコンテンツデータがＳＤＲＡＭ３４に蓄積されるのを待って、コンテンツデータの再生処理を開始する。
【００５７】
この場合も、ＳＤＲＡＭ３６に蓄積されたコンテンツデータの量が閾値を下回らないような速さでサーバ１２がコンテンツデータを転送することによって、クライアント１４ｃは、出力音声が途切れないようにコンテンツＮを再生することができる。なお、この実施例のサーバ１２は、十分な処理能力を有しており、２つまたはそれ以上の数の転送処理を並列的に実行可能であるとする。
【００５８】
こうしてクライアント１４ｂがファイル１のストリーミング再生を行い、かつクライアント１４ｃがファイルＮのストリーミング再生を行っている状態で、クライアント１４ｄのＣＰＵ４０が同じファイルＮの再生を行う操作を受け付けたとする。これに応答してＣＰＵ４０は、再生命令を発行すると共に、ファイルＮの転送要求（ｒｅｑ＿Ｎ＿ｄ）をサーバ１２に送信する。
【００５９】
サーバ１２では、ＣＰＵ２６は、転送要求ｒｅｑ＿Ｎ＿ｄをテーブルＴｂｌ＿Ｎに登録する（図３参照）。ｒｅｑ＿１＿ｄを受信した時点でＴｂｌ＿Ｎの登録転送要求数は“１”であり、同時転送可能数を下回っているため、ｒｅｑ＿Ｎ＿ｄは、Ｔｂｌ＿Ｎの最上位、つまり先に登録されたｒｅｑ＿１＿ｃの上位に登録される。こうすれば、１つのテーブル内では、後に登録された転送要求ほど優先度が高くなる。そしてＣＰＵ２６は、前述の２つの転送処理に加えてさらに、ｒｅｑ＿Ｎ＿ｄに対応する転送処理を同じ要領で実行する。
【００６０】
すなわち、ハードディスク２８ｄからファイルＮのコンテンツデータを所定量だけ読み出し、読み出されたコンテンツデータをＳＤＲＡＭ２２に書き込む。書き込みは、さらに別のバンクに対して行われる。
【００６１】
ＣＰＵ２６は、ＳＤＲＡＭコントローラ２４を介してＳＤＲＡＭ２２からコンテンツデータを所定のタイミングで読み出し、クライアント１４ｄのＣＰＵ４０にコンテンツデータの書き込みを依頼する。ＣＰＵ４０は、ＳＤＲＡＭ２２から読み出されたコンテンツデータを、ＤＲＡＭコントローラ３６を介してＳＤＲＡＭ３４に書き込む。
【００６２】
以降、所定時間が経過する度に、ハードディスク２８ｄからファイルＮのコンテンツデータが所定量だけ読み出され、読み出されたコンテンツデータがクライアント１４ｄへと転送されていく。クライアント１４ｄでは、閾値を超える量のコンテンツデータがＳＤＲＡＭ３４に蓄積されるのを待って再生処理を開始する。
【００６３】
こうして、２つのクライアント１４ｃおよび１４ｄは、同じファイルＮを同時期にストリーミング再生することができる。従って、サーバ１２の処理能力の範囲内であれば、クライアント１４ａ，１４ｂ，…，１４ｉ，…は、所望のファイルを任意のタイミングでストリーミング再生できることになる。
【００６４】
しかしサーバ１２は、テーブルＴｂｌ＿Ｎに登録されたファイル転送要求の数がファイルＮに設定された同時転送可能数（Ｔｍａｘ＿Ｎ）に達したとき、新たに発行された転送要求を図４に示す要領で処理することで、優先クライアント（１４ｉおよび１４ａ）が所望のファイルを任意のタイミングでストリーミング再生できることを可能としたまま、同じ１つのファイルＮを同時期にストリーミング再生しているクライアントの数つまり現同時転送数をＴｍａｘ＿Ｎ以下に制限する。
【００６５】
図４を参照して、テーブルＴｂｌ＿Ｎには現在、２つの転送要求ｒｅｑ＿Ｎ＿ｄおよびｒｅｑ＿Ｎ＿ｃがこの順に登録されている。このため、サーバ１２は、ファイルＮについて、クライアント１４ｃへの転送処理とクライアント１４ｄへの転送処理との２つを並列的に実行している。つまり、ファイルＮの現同時転送数は“２”である。
【００６６】
このとき、クライアント１４ｅでファイルＮの再生操作が行われたとすると、サーバ１２のＣＰＵ２６は、新たな転送要求ｒｅｑ＿Ｎ＿ｅを受信する。この時点では、Ｔｂｌ＿Ｎの登録数はまだ同時転送可能数を下回っており、このためｒｅｑ＿Ｎ＿ｅは、最上位つまりｒｅｑ＿Ｎ＿ｄの上位に登録される。これにより、Ｔｂｌ＿Ｎの登録数が同時転送可能数に達する。登録に伴い、ファイルＮのクライアント１４ｅへの転送処理が新たに開始され、ファイルＮの現同時転送数は“２”から“３”に増える。
【００６７】
続いてクライアント１４ｆでファイルＮの再生操作が行われ、サーバ１２は、新たな転送要求ｒｅｑ＿Ｎ＿ｆを受信する。このとき既に登録数が同時転送可能数に達しているため、ｒｅｑ＿Ｎ＿ｅは、いったん最下位つまりｒｅｑ＿Ｎ＿ｃの下位に登録され、その後Ｔｂｌ＿Ｎから削除される。つまり、ファイルＮの現同時転送数は“３”に維持される。実行されている３つの転送処理の内訳にも変更はない。
【００６８】
続いてクライアント１４ｉでファイルＮの再生操作が行われると、サーバ１２は、新たな転送要求ｒｅｑ＿Ｎ＿ｉを受信する。このとき登録数は同時転送可能数に達しているものの、要求元が優先クライアントなので、ｒｅｑ＿Ｎ＿ｉは最上位に登録される。この結果、Ｔｂｌ＿Ｎの登録数が同時転送可能数を上回り、Ｔｂｌ＿Ｎからは、最下位の転送要求つまりｒｅｑ＿Ｎ＿ｃが削除される。かかる登録および削除に伴い、ファイルＮのクライアント１４ｉへの転送処理が開始される一方、ファイルＮのクライアント１４ｃへの転送処理は強制終了される。つまりサーバ１２は、実行中の３つの転送処理のうち優先度が最低のものを強制終了することで、ファイルＮの現同時転送数を“３”に維持したまま、優先クライアントへの転送処理を直ちに開始するようにしている。
【００６９】
この後、ファイルＮのクライアント１４ｄへの転送処理が通常終了され、これに伴いＴｂｌ＿Ｎからｒｅｑ＿Ｎ＿ｄが削除される。この結果、Ｔｂｌ＿Ｎの登録数が同時転送可能数を下回る。ファイルＮの現同時転送数は“３”から“２”に減る。
【００７０】
続いて再度クライアント１４ｆでファイルＮの再生操作が行われると、ＣＰＵ２６は、新たな転送要求ｒｅｑ＿Ｎ＿ｆを受信する。今回は登録数が同時転送可能数を下回っているので、ｒｅｑ＿Ｎ＿ｆはＴｂｌ＿Ｎに登録される。ただし、Ｔｂｌ＿Ｎには優先クライアントからの転送要求ｒｅｑ＿Ｎ＿ｉが登録されているので、ｒｅｑ＿Ｎ＿ｆの登録位置は、このｒｅｑ＿Ｎ＿ｉの下位となる。これにより、Ｔｂｌ＿Ｎの登録数は同時転送可能数に達する。登録に伴い、ファイルＮのクライアント１４ｆへの転送処理が開始され、ファイルＮについての現同時転送数は“２”から“３”に増える。
【００７１】
続いてクライアント１４ａでファイルＮの再生操作が行われると、ＣＰＵ２６は、新たな転送要求ｒｅｑ＿Ｎ＿ａを受信する。このとき登録数は同時転送可能数に達しているものの、要求元が優先クライアントなので、ｒｅｑ＿Ｎ＿ａは最上位つまりｒｅｑ＿Ｎ＿ｉの上位に登録される。この結果、Ｔｂｌ＿Ｎの登録数が同時転送可能数を上回り、Ｔｂｌ＿Ｎから最下位の転送要求つまりｒｅｑ＿Ｎ＿ｅが削除される。かかる登録および削除に伴い、ファイルＮのクライアント１４ａへの転送処理が開始される一方、ファイルＮのクライアント１４ｅへの転送処理は強制終了される。こうして、ファイルＮの現同時転送数を“３”に維持したまま、優先クライアントであるクライアント１４ａへの転送処理が直ちに開始される。
【００７２】
サーバ１２のＣＰＵ２６は、具体的には、図５〜図７に示すタスク管理タスク，図８および図９に示す転送制御タスク，および図１０に示す転送タスクを並列的に実行する。なお、これらのタスクに対応するプログラムは、フラッシュメモリ３０に記憶される。また、これらのタスクは、μＩＴＲＯＮのようなマルチタスクＯＳの制御の下で実行される。
【００７３】
図５を参照して、まずステップＳ１で初期化を行い、その後ステップＳ３，Ｓ５およびＳ７からなるループに入る。ステップＳ３ではファイル登録要求の有無を判別し、ステップＳ５ではファイル削除要求の有無を判別し、ステップＳ７ではファイル転送要求の有無を判別する。
【００７４】
ネットワークＩ／Ｆ２０を通してファイル登録要求を受信すると、ステップＳ３でＹＥＳと判別し、ステップＳ９に移る。ステップＳ９では、ファイル登録処理（後述）を実行する。これによりハードディスク２８ｄ内に新規のファイルが登録されると、ステップＳ１１に進み、登録された新規ファイルに対応するテーブル（Ｔｂｌ）をフラッシュメモリ３０内に生成する。続くステップＳ１３では、登録された新規ファイルに対応する転送制御タスク（ＣＴｓｋ）を起動し、その後ステップＳ３〜Ｓ７のループに戻る。
【００７５】
ファイル削除要求を受信すると、ステップＳ５でＹＥＳと判別し、ステップＳ１５に移る。ステップＳ１５では、要求されたファイルに対応する転送制御タスクＣＴｓｋを終了する。続くステップＳ１７ではファイルを削除し、これに対応するテーブルＴｂｌも併せて削除する。そして、ステップＳ３〜Ｓ７のループに戻る。
【００７６】
ファイル転送要求を受信すると、ステップＳ７でＹＥＳと判別し、ステップＳ２１に移る。ステップＳ２１では、要求されたファイルのファイル番号（これを“Ｎ”とする）を検出し、ステップＳ２３では、要求元の識別子（これを“ｉ”とする）を検出する。続くステップＳ２５では、ファイル転送要求登録処理（後述）を実行する。これによりファイル転送要求ｒｅｑ＿Ｎ＿ｉがテーブルＴｂｌ＿Ｎに登録されると、ステップＳ２７に移って、転送制御タスクＣＴｓｋ＿Ｎに向けてクライアント“ｉ”を転送先とする転送命令を発行する。そして、ステップＳ３〜Ｓ７のループに戻る。
【００７７】
上記ステップＳ９のファイル登録処理は、詳しくは図６のサブルーチンに従って実行される。図６を参照して、ステップＳ３１では、コンテンツの取り込みを命令する。クライアント１４ｉでは、ファイル登録操作に応答してＣＤ４８ｄ内のコンテンツデータがＳＤＲＡＭ３４に読み出されており、ＳＤＲＡＭコントローラ２４は、ＳＤＲＡＭ３４内のコンテンツデータをＳＤＲＡＭ２２内へと取り込む。
【００７８】
ステップＳ３３では、取り込まれたコンテンツデータに同時転送可能数が添付されているか否かを判別する。判別結果が否定的であれば、ステップＳ３５で同時転送可能数を所定値たとえば“３”に設定した後、ステップＳ３７に移る。ステップＳ３３の判別結果が肯定的であれば、ステップＳ３５をスキップしてステップＳ３７に進む。
【００７９】
ステップＳ３７では、優先クライアントを選定する。具体的には、要求元であるクライアント１４ｉを選定する。さらに、必要に応じて、クライアント１４ｉを通して選定操作を受け付け、更なる選定あるいは選定結果の変更を行う。この結果、たとえばクライアント１４ｉおよび１４ａが優先クライアントに選定される。
【００８０】
続くステップＳ３９でファイル番号を生成し、そしてステップＳ４１で、ファイル番号，同時転送可能数（Ｔｍａｘ），優先クライアント識別子（ＰＣＩＤ），およびコンテンツデータを１つのファイルに含めて登録する（図２参照）。その後、上位層のルーチンに復帰する。
【００８１】
上記ステップＳ２５のファイル転送要求登録処理は、詳しくは図７のサブルーチンに従って実行される。図７を参照して、転送要求ｒｅｑ＿Ｎ＿ｉを受け付けると、まずステップＳ５１で、要求元つまりクライアント“ｉ”が優先クライアントか否か判別する。この判別結果が肯定的であれば、ステップＳ５９に移って、ファイル転送要求ｒｅｑ＿Ｎ＿ｉをテーブルＴｂｌ＿Ｎの最上位に登録し、その後上層のルーチンに復帰する。
【００８２】
ステップＳ５１の判別結果が否定的であれば、ステップＳ５３に移って、テーブルＴｂｌ＿Ｎに登録されている要求の数がファイルＮに設定された同時転送可能数（Ｔｍａｘ＿Ｎ）よりも小さいか否かを判別する。この判別結果が否定的、つまり登録要求数が同時転送可能数に達していれば、ステップＳ５５に移って、ファイル転送要求ｒｅｑ＿Ｎ＿ｉをテーブルＴｂｌ＿Ｎの最下位に登録し、その後上層のルーチンに復帰する。
【００８３】
ステップＳ５３の判別結果が肯定的であれば、ステップＳ５７に移って、テーブルＴｂｌ＿Ｎに優先クライアントからの要求が登録されているか否かを判別する。この判別結果が否定的であれば、ステップＳ５９に移ってｒｅｑ＿Ｎ＿ｉをＴｂｌ＿Ｎの最上位に登録し、上層のルーチンに復帰する。
【００８４】
ステップＳ５７の判別結果が肯定的であれば、ステップＳ６１に移って、ファイル転送要求ｒｅｑ＿Ｎ＿ｉを、テーブルＴｂｌ＿Ｎの優先クライアントを除く最上位、つまり優先クライアントの直ぐ下に登録し、その後上層のルーチンに復帰する。
【００８５】
図８を参照して、ステップＳ７１では、変数Ｔｒａｎｓ＿Ｎに“０”をセットし、ステップＳ７３では、変数ＴＨ＿ＮにファイルＮの同時転送可能数（Ｔｍａｘ＿Ｎ）をセットする。その後、ステップＳ７５に移り、転送命令を待つ。タスク管理タスクを通して転送命令が発行されると、ステップＳ７７に移って、変数Ｔｒａｎｓ＿Ｎが変数ＴＨ＿Ｎよりも小さいか否かを判別する。この判別結果が肯定的であれば、ステップＳ７９で新規のファイル転送要求ｒｅｑ＿Ｎ＿ｉに対応する転送タスクＴｓｋ＿Ｎ＿ｉを起動し、次のステップＳ８１で変数Ｔｒａｎｓ＿Ｎをインクリメントする。そしてステップＳ７５に戻る。
【００８６】
ステップＳ７７の判別結果が否定的であれば、ステップＳ８３に移る。図９を参照して、ステップＳ８３では、優先度が最低のファイル転送要求をテーブルＴｂｌ＿Ｎから検出する。ステップＳ８５では、検出されたファイル転送要求をテーブルＴｂｌ＿Ｎから削除する。ステップＳ８７では、削除されたのがｒｅｑ＿Ｎ＿ｉか否かを判別し、判別結果が肯定的であればステップＳ７５に戻る。
【００８７】
ステップＳ８７の判別結果が否定的であれば、ステップＳ８９に移って、削除されたファイル転送要求に対応する転送タスクを強制終了する。そしてステップＳ９１で、ｒｅｑ＿Ｎ＿ｉに対応する転送タスクＴｓｋ＿Ｎ＿ｉを起動し、その後ステップＳ７５に戻る。
【００８８】
図１０を参照して、転送タスクＴｓｋ＿Ｎ＿ｉでは、まずステップＳ１０１で、ファイルＮのコンテンツデータを所定量だけ“ｉ”つまりクライアント１４ｉ宛に転送する。続くステップＳ１０３では、転送が完了したか否かを判別し、判別結果が否定的であればステップＳ１０１に戻る。
【００８９】
ステップＳ１０３の判別結果が肯定的であれば、ステップＳ１０５で変数Ｔｒａｎｓ＿Ｎをデクリメントし、ステップＳ１０７ではファイル転送要求ｒｅｑ＿Ｎ＿ｉをテーブルＴｂｌ＿Ｎから削除し、そして処理を終了する。
【００９０】
以上から明らかなように、この実施例のサーバ１２は、クライアント１４ａ，１４ｂ，…から登録要求を受け付けたとき、登録要求に従うファイルを登録し、クライアント１４ａ，１４ｂ，…から転送要求を受けたとき、転送要求に従うファイルを要求元に転送する。
【００９１】
ファイル登録の際、サーバ１２は、登録されるファイルに同時転送可能数を設定し、かつ優先クライアントを選定する。つまり、１つ１つのファイルに同時転送可能数および優先クライアント識別子が割り当てられる。なお、かかる選定および割り当ては、サーバ１２が所定の手順で自動的に行ってもよく、クライアントの手動操作に応答して行ってもよい。
【００９２】
ファイル転送の際、サーバ１２は、同時に実行されている転送動作の数つまり現同時転送数をファイル毎に検出し、検出結果と同時転送可能数とに基づいて転送動作をファイル毎に制御する。これにより、同時にファイル転送を受けるクライアントの数をファイル毎に制限することが可能となる。
【００９３】
具体的には、新規の転送要求を受け付けたとき、その転送要求に従うファイルの現同時転送数が、その転送要求に従うファイルに設定された同時転送可能数を下回るか否かを判別する。そして、この判別結果が肯定的であれば、新規の転送要求に対応する新たな転送動作の開始を許容する。
【００９４】
上記の判別結果が否定的であれば、その転送要求の要求元がその転送要求に従うファイルに選定された優先クライアントであるか否かをさらに判別する。この判別結果が肯定的であれば、新規の転送要求に従うファイルについて同時に実行されている転送動作のいずれか１つを停止し、そして新規の転送要求に従うファイルの転送開始を許容する。これにより、１つ１つのファイルについて、現同時転送数が同時転送可能数を超えないように制限しつつ、重要なクライアントへの転送を優先的に行うことができる。
【００９５】
また、サーバ１２は、クライアント１４ａ，１４ｂ，…から転送要求を受けたとき、転送要求に優先度を付与する。そして、新規の転送要求に従うファイルについて同時に実行されている転送動作のうち１つを停止する際には、優先度が最低の転送要求に対応する転送動作を停止する。これにより、新たな転送動作の割り込みのために重要なクライアントへの転送が中断される可能性が低減される。
【００９６】
加えて、サーバ１２は、転送要求に優先度を付与する際、優先クライアントからの転送要求に最高優先度を付与するので、優先クライアントへの転送が中断される可能性が低減される。
【００９７】
なお、この実施例では、音声データを配信するようにしているが、配信すべきデータは音声データに限られない。つまり、音声データに代えて画像データやプログラムデータを転送するようにしてもよい。
【００９８】
以上では、ＬＡＮ内でファイル転送を行う場合を説明したが、この発明は、インターネットなどのワイドエリアネットワーク（ＷＡＮ）を通してファイル転送を行う場合にも適用できる。
【図面の簡単な説明】
【００９９】
【図１】この発明の一実施例の構成を示す図解図である。
【図２】サーバに登録されるファイルの一例を示すブロック図である。
【図３】サーバに記憶されるテーブルの一例を示す図解図である。
【図４】テーブルの時間的な変化を示す図解図である。
【図５】サーバのＣＰＵ動作の一部を示すフロー図である。
【図６】サーバのＣＰＵ動作の他の一部を示すフロー図である。
【図７】サーバのＣＰＵ動作のその他の一部を示すフロー図である。
【図８】サーバのＣＰＵ動作のさらにその他の一部を示すフロー図である。
【図９】サーバのＣＰＵ動作の他の一部を示すフロー図である。
【図１０】サーバのＣＰＵ動作のその他の一部を示すフロー図である。
【符号の説明】
【０１００】
１０  …コンテンツ配信システム
１２  …サーバ
１４ａ，１４ｂ，１４ｉ  …クライアント
１６  …ハブ
２０，３２  …ネットワークＩ／Ｆ
２２，３４  …ＳＤＲＡＭ
２４，３６  …ＳＤＲＡＭコントローラ
２６，４０  …ＣＰＵ
２８，３８  …ハードディスクドライブ
【図１】
2006221455.tif 000003
【図２】
2006221455.tif 000004
【図３】
2006221455.tif 000005
【図４】
2006221455.tif 000006
【図５】
2006221455.tif 000007
【図６】
2006221455.tif 000008
【図７】
2006221455.tif 000009
【図８】
2006221455.tif 000010
【図９】
2006221455.tif 000011
【図１０】
2006221455.tif 000012