データをテープ媒体に書き込む装置及び方法
【課題】データの全ての部分がテープ媒体に記録される場合において、データの再生を開始するまでの時間を短縮する。
【解決手段】コンテンツサーバ20において、通信部21は、コンテンツを受信し、保存制御部22は、コンテンツを第1キャッシュ24に記憶すると共に入出力部26を介してテープに書き込み、テープ上の書き込み位置に基づいて決定されたデータ量の先導部をデータ抽出部23を用いてコンテンツから抽出し、抽出された先導部を第2キャッシュ25に記憶する。また、再生制御部27は、コンテンツの再生が要求された場合に、コンテンツが第1キャッシュ24になく、コンテンツの先導部が第2キャッシュ25になければ、テープから先導部を読み出して通信部21に渡し、テープからそれに続く追尾部を読み出してステージングバッファ28に記憶した後、通信部21に渡すことにより、継続的な再生を行う。
【解決手段】コンテンツサーバ20において、通信部21は、コンテンツを受信し、保存制御部22は、コンテンツを第1キャッシュ24に記憶すると共に入出力部26を介してテープに書き込み、テープ上の書き込み位置に基づいて決定されたデータ量の先導部をデータ抽出部23を用いてコンテンツから抽出し、抽出された先導部を第2キャッシュ25に記憶する。また、再生制御部27は、コンテンツの再生が要求された場合に、コンテンツが第1キャッシュ24になく、コンテンツの先導部が第2キャッシュ25になければ、テープから先導部を読み出して通信部21に渡し、テープからそれに続く追尾部を読み出してステージングバッファ28に記憶した後、通信部21に渡すことにより、継続的な再生を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データをテープ媒体に書き込む装置及び方法に関する。特に、本発明は、再生されるデータをテープ媒体に書き込む装置及び方法に関する。
【背景技術】
【0002】
近年、映像コンテンツを始めとした各種コンテンツのデータをインターネット等のネットワークを介して配信するようなシステムが広く見られるようになっている。そのようなシステムでは、コンテンツのデータを如何なる記録媒体に記録して蓄積しておくかが問題となる。コンテンツのデータがそれほど大容量でなければ、価格と性能のバランスから、磁気ディスクが利用されることも多い。一方で、コンテンツのデータが大容量になってくると、使用頻度が低いコンテンツのデータは磁気テープに記録する、といった階層型の記憶システムが採用されることもある。
しかしながら、コンテンツのデータを磁気テープに記録する場合、コンテンツのデータを磁気ディスクに記録した場合に比べて、コンテンツの再生を開始するまでに多くの時間を要するという問題がある。こうした問題を解決するため、従来から種々の技術が提案されている(例えば、特許文献1、2参照)。
【0003】
特許文献1では、1つ以上のディスク・アレイに対して、200の最もポピュラーな映画の最初の5分間に関する「プリ・ストライピング」を実施し、これらの映画の1つが要求されると、プリ・ストライピングを施したビデオ・データによって迅速にサービスを行い、同時に、ビデオ・データ・プログラムの残りをアーカイバル記憶装置から呼び出して、ディスク・アレイに転記することで、ユーザがビデオ・データを受け取る際の遅延を最小限に抑えている。
特許文献2では、第1の記憶装置(例えば、磁気テープ)の中にあるビデオ・データの一部分をあらかじめ第2の記憶装置(例えば、磁気ディスク)にロードしておき、ビデオに対するリクエストを受信した時、第2の記憶装置の中にあるビデオ・データの一部分をユーザに転送し、同時に、第1の記憶装置にあるビデオ・データの残りの部分をユーザに転送するために第2の記憶装置へ転送することで、第1の記憶装置に付随する遅延時間を最小化している。
【0004】
【特許文献1】特開平8−18947号公報
【特許文献2】特開平9−182028号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
このように、従来から、磁気テープに記録されたコンテンツの再生を開始するまでの時間を短縮するための種々の試みがなされている。しかしながら、何れの技術も、コンテンツ等のデータの全ての部分が磁気テープ等のテープ媒体に記録される場合において、かかる時間の短縮を図るものではなかった。
本発明の目的は、データの全ての部分がテープ媒体に記録される場合において、データの再生を開始するまでの時間を短縮することにある。
【課題を解決するための手段】
【0006】
かかる目的のもと、本発明は、再生されるデータをテープ媒体に書き込む装置であって、テープ媒体に書き込むデータを取得する取得部と、取得部により取得されたデータをテープ媒体に書き込む書込み部と、テープ媒体からのデータの読出し時間を短縮するためにデータとは別に記憶されるデータの先頭部分のデータ量を、先頭部分の再生の終了までに先頭部分に続く部分の再生が開始できるように決定する決定部と、取得部により取得されたデータから決定部により決定されたデータ量の先頭部分を抽出する抽出部と、抽出部により抽出された先頭部分を記憶する記憶部とを備えた、装置を提供する。
【0007】
ここで、決定部は、先頭部分のデータ量を、テープ媒体上の先頭部分に続く部分が書き込まれた位置に基づいて決定する、ものであってよい。
また、書込み部は、取得部により取得されたデータが書き込まれたテープ媒体に先頭部分を書き込む、ものであってよい。この場合、書込み部は、取得部により取得されたデータをテープ媒体にデータよりも前方に空き領域を設けて書き込み、先頭部分を空き領域に書き込む、ようにしてもよい。
更に、書込み部は、取得部により取得されたデータが書き込まれたテープ媒体とは異なる他のテープ媒体に先頭部分を書き込む、ものであってよい。この場合、書込み部は、取得部により取得されたデータをテープ媒体にデータよりも前方に空き領域を設けずに書き込み、先頭部分を他のテープ媒体に先頭部分よりも前に空き領域を設けずに書き込む、ようにしてもよい。
【0008】
また、本発明は、再生されるデータをテープ媒体に書き込む装置であって、テープ媒体に書き込むデータを取得する取得部と、取得部により取得されたデータから第1の部分及び第1の部分に続く第2の部分を抽出する抽出部と、第1の部分の再生の終了までに第2の部分の再生が開始できるように、テープ媒体上の第1の部分が書き込まれる位置と第2の部分が書き込まれる位置との距離を決定する決定部と、テープ媒体上の所定の位置に第1の部分を書き込み、所定の位置から決定部により決定された距離の間隔を空けた位置に第2の部分を書き込む書込み部とを備えた、装置も提供する。
【0009】
ここで、取得部は、テープ媒体に書き込むデータとして、第1のデータ及び第2のデータを取得し、書込み部は、テープ媒体に対して、第1のデータの第1の部分の再生の終了までに第1のデータの第2の部分の再生が開始できるように、第1のデータの第1の部分及び第2の部分を書き込み、第2のデータの第1の部分の再生の終了までに第2のデータの第2の部分の再生が開始できるように、第2のデータの第1の部分及び第2の部分を書き込む、ものであってよい。この場合、決定部は、第1のデータの第2の部分のデータ量を、テープ媒体上の第2のデータの第1の部分が書き込まれる位置と第2のデータの第2の部分が書き込まれる位置との距離に基づいて決定し、書込み部は、テープ媒体に対して、第1のデータの第1の部分及び第2のデータの第1の部分を連続して書き込み、第1のデータの第2の部分及び第2のデータの第2の部分を連続して書き込む、ものであってもよい。
【0010】
更に、本発明は、再生されるデータをテープ媒体に書き込む方法であって、テープ媒体に書き込むデータを取得するステップと、取得されたデータをテープ媒体に書き込むステップと、テープ媒体からのデータの読出し時間を短縮するためにデータとは別に記憶されるデータの先頭部分のデータ量を、先頭部分の再生の終了までに先頭部分に続く部分の再生が開始できるように決定するステップと、取得されたデータから、決定されたデータ量の先頭部分を抽出するステップと、抽出された先頭部分を所定の記憶手段に記憶するステップとを含む、方法も提供する。
【0011】
更にまた、本発明は、再生されるデータをテープ媒体に書き込む方法であって、テープ媒体に書き込むデータを取得するステップと、取得されたデータの第1の部分の再生の終了までに第1の部分に続くデータの第2の部分の再生が開始できるように、テープ媒体上の第1の部分が書き込まれる位置と第2の部分が書き込まれる位置との距離を決定するステップと、テープ媒体上の所定の位置に第1の部分を書き込み、所定の位置から決定された距離の間隔を開けた位置に第2の部分を書き込むステップとを含む、方法も提供する。
【0012】
また、本発明は、再生されるデータをテープ媒体に書き込む装置としてコンピュータを機能させるプログラムであって、コンピュータを、テープ媒体に書き込む複数のデータを取得する取得部と、取得部により取得された複数のデータの各データの第1の部分の再生の終了までに第1の部分に続く各データの第2の部分の再生が開始できるように、テープ媒体上の第1の領域に各データの第1の部分を書き込み、テープ媒体上の第2の領域に各データの第2の部分を書き込む書込み部として機能させる、プログラムも提供する。
【発明の効果】
【0013】
本発明によれば、データの全ての部分がテープ媒体に記録される場合において、データの再生を開始するまでの時間を短縮できる。
【発明を実施するための最良の形態】
【0014】
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、「実施の形態」という)について詳細に説明する。
図1は、本実施の形態が適用されるコンピュータシステム100の構成例を示した図である。このコンピュータシステム100は、テープライブラリ10と、コンテンツサーバ20と、クライアント30a,30b,30c,…とが、ネットワーク80により通信可能に接続されることにより構成されている。
【0015】
テープライブラリ10は、複数の磁気テープカートリッジの中から所望の磁気テープカートリッジを選択してテープドライブにロードすることで、磁気テープへのデータの書き込みや磁気テープからのデータの読み出しを行う装置である。例えば、複数の磁気テープカートリッジを複数のスロットにそれぞれ収納しておき、ロボット機構(チェンジャ)が要求された磁気テープカートリッジをスロットから取り出し、テープドライブまで搬送してロードする。尚、テープライブラリ10にてデータの読み書きがなされるテープ媒体としては、磁気テープが代表例であるが、磁気テープ以外のテープ媒体でもよい。従って、以下では「磁気テープ」と表記せず、単に「テープ」と表記する。
【0016】
コンテンツサーバ20は、クライアント30a,30b,30c,…の何れかからの要求に応じて、テープに記録されたコンテンツを、要求元のクライアントに提供するサーバコンピュータである。ここで、コンテンツとは、クライアント30a,30b,30c,…にてユーザが鑑賞可能なひとまとまりの情報をデジタル化したデジタルデータを意味する。また、本実施の形態では、再生可能なコンテンツを対象としている。例えば、映像(動画)、音楽等である。更に、このコンテンツサーバ20は、コンテンツの提供事業者により運営されるものでも、コンテンツの提供事業者以外の事業者によって運営されるものでもよい。そして、何れの場合であっても、新たなコンテンツの保存を要求する端末装置(例えば、クライアント30a,30b,30c,…)に接続されていることが望ましい。尚、本実施の形態では、データの一例としてコンテンツを用いるが、ユーザによる鑑賞の対象という性質を持たない情報をデジタル化したデジタルデータであっても、再生できるものであれば、本実施の形態を適用することは可能である。
【0017】
クライアント30a,30b,30c,…は、ユーザがコンテンツを鑑賞するために用いる端末装置であり、例えば、PC(Personal Computer)によって実現するとよい。尚、ここでは、クライアントとして、クライアント30a,30b,30c,…を示したが、以下の説明でこれらの何れかに限定しない場合は、単にクライアント30と表記するものとする。
【0018】
このようなシステム構成において、本実施の形態では、コンテンツサーバ20内にディスクキャッシュを設け、ディスクキャッシュとテープライブラリ10にてデジタルアーカイブシステムのストレージ装置を構成する。この場合、ディスクキャッシュにヒットするコンテンツの再生に比べて、ディスクキャッシュにヒットせずにテープからの呼び戻し(Recall)を必要とするコンテンツは、再生要求から再生開始までの時間が長くなる。
【0019】
そこで、本実施の形態では、コンテンツを、先頭部分(以下、「先導部」(Leading Part)という)と、全体(以下、「全コンテンツ」(Full Content)という)とに分けて保管する。ビデオデータに代表されるコンテンツのデータストリーム速度は、ディスクキャッシュとテープドライブの間のデータ転送速度に比べて遅い。例えば、MPEG2データの転送速度は50Mbpsであるのに対して、LTO(Linear Tape-Open)第4世代は、960Mbpsのデータ転送速度を持つ。従って、ある量の先導部がディスクキャッシュ内にあれば、コンテンツの再生要求に応えることができる。そして、先導部の再生が終了する前にディスクキャッシュとテープドライブの間の全コンテンツのデータ転送を開始できれば、再生を継続することが可能となる。
【0020】
次に、このような動作を行うコンテンツサーバ20の機能構成について説明する。
図2は、コンテンツサーバ20の機能構成例を示したブロック図である。
図示するように、コンテンツサーバ20は、通信部21と、保存制御部22と、データ抽出部23と、第1キャッシュ24と、第2キャッシュ25とを備える。また、入出力部26と、再生制御部27と、ステージングバッファ28とを備える。
【0021】
通信部21は、保管の目的で送られてきたコンテンツやコンテンツの再生要求を、例えばクライアント30から受信する。また、コンテンツの再生要求に応じて読み出されたコンテンツを、例えばクライアント30に送信する。本実施の形態では、データを取得する取得部の一例として、通信部21を設けている。
【0022】
保存制御部22は、通信部21からコンテンツを受け取り、全コンテンツを第1キャッシュ24に保管した後、そのコピーをテープに記録するために入出力部26に送る。尚、ここでのテープへの記録を、本明細書では、事前移動(Pre-Migrate)と呼ぶ。このように、第1キャッシュ24へのコンテンツの記録とほぼ同時に事前移動することにより、第1キャッシュ24の障害時にコンテンツのデータが消失するのを防ぐことができる。また、保存制御部22は、そのコンテンツの先導部を第2キャッシュ25に保存する。この場合、保存する先導部のサイズは、先導部に続くコンテンツの部分(以下、「追尾部」(Trailing Part)という)のはじめの部分をテープからステージングバッファ28に読み出すのに要する時間に対応する。本実施の形態では、先導部のデータ量やテープ媒体上の書き込み位置間の距離を決定する決定部の一例として、保存制御部22を設けている。
データ抽出部23は、保存制御部22により渡されたコンテンツから指定されたデータを抽出する。ここで、指定されたデータとしては、例えば、上述した先導部がある。本実施の形態では、データから所定の部分を抽出する抽出部の一例として、データ抽出部23を設けている。
【0023】
第1キャッシュ24は、保存制御部22から送られたコンテンツを記憶する。但し、第1キャッシュ24に記憶されるコンテンツの数が増加し、コンテンツの総データ量が第1キャッシュ24の容量を超える場合、最後に使用した時間が最も古い(Least Recently Used)コンテンツで、第1キャッシュ24への保存要求の低いものから順に、第1キャッシュ24から削除される。このように第1キャッシュ24からコンテンツが削除されると、この時点で、そのコンテンツはテープのみに存在することになる。このことを、本明細書では、移動(Migrate)と呼ぶ。尚、第1キャッシュ24は、例えば半導体メモリによって実現すればよく、テープに対するディスクキャッシュとしての性格を有するものである。
第2キャッシュ25は、第1キャッシュ24に保存されたコンテンツの先導部を記憶する。但し、コンテンツの総データ量が第2キャッシュ25の容量を超える場合、最後に使用した時間が最も古い(Least Recently Used)コンテンツから順に、第2キャッシュ25から削除される。尚、第2キャッシュ25は、例えば半導体メモリによって実現すればよい。本実施の形態では、データの先頭部分の一例として、先導部を用い、先頭部分を記憶する記憶部の一例として、第2キャッシュ25を設けている。
【0024】
入出力部26は、コンテンツをテープに書き込むためにテープライブラリ10に出力する。また、再生のためにテープから読み出されたコンテンツをテープライブラリ10から受け取る。本実施の形態では、データをテープ媒体に書き込む書込み部の一例として、入出力部26を設けている。
【0025】
再生制御部27は、通信部21からコンテンツの再生要求を受け取ると、コンテンツが第1キャッシュ24に存在すれば、第1キャッシュ24からコンテンツを読み出して通信部21に送る。また、コンテンツが第1キャッシュ24に存在しなければ、第2キャッシュ25から読み出した先導部と、テープから読み出した全コンテンツとを用いて、コンテンツの再生を制御する。但し、コンテンツが第1キャッシュ24に存在しても、第1キャッシュ24からのコンテンツの読出し及び再生が現在既に進行中で、新たなコンテンツの読出し及び再生が現在のコンテンツの再生品質に影響を及ぼす可能性がある場合がある。そのような場合は、第2キャッシュ25から読み出した先導部と、テープから読み出した全コンテンツとを用いて、コンテンツの再生を制御するようにしてもよい。このように先導部と全コンテンツとを用いてコンテンツの再生を制御する場合、再生制御部27は、第2キャッシュ25から先導部を読み出して通信部21に送り、テープから読み出された全コンテンツを入出力部26から受け取ってステージングバッファ28に送る。或いは、全コンテンツをステージングバッファ28に送るのではなく、先導部に続く追尾部をステージングバッファ28に送るようにしてもよい。先導部と追尾部とを組み合わせることにより、全コンテンツを構成することができるからである。再生制御部27は、先導部を通信部21に送るのに引き続き、追尾部を通信部21に送る。尚、追尾部の再生は、追尾部の全部がテープから読み出されていなくとも開始できる。これは、コンテンツの再生のための再生データの転送速度に比べて、テープからステージングバッファ28へのデータ転送速度が十分に速いためである。
【0026】
ステージングバッファ28は、テープから読み出した全コンテンツを一時的に格納するバッファである。尚、ステージングバッファ28は、例えば磁気ディスクによって実現すればよい。
【0027】
このように、コンテンツサーバ20は、第2キャッシュ25にコンテンツの先導部を記憶することにより、テープに記録されたコンテンツの再生開始までの時間を短縮している。しかしながら、第2キャッシュ25の容量は有限であるので、保存される先導部が増加し続けた場合、例えば、最後に使用された時間が古いものからテープに移動される。
その際、本実施の形態では、次のような記録方式によりテープにコンテンツを記録するようにしている。即ち、まず、先導部のバッファリングがより短時間で行えるよう、テープ上の領域を先導部用の部分と全コンテンツ用の部分とに分け、テープに記録されたデータを最も早く読み出せる部分を先導部用として用い、この部分に先導部を集めている。また、先導部の再生が終了した時点で追尾部の再生が開始できるよう、先導部の記録長さを決定している。
【0028】
図3は、第1の記録方式におけるテープ上の記録フォーマットの一例を示した図である。
この第1の記録方式では、先導部と全コンテンツとを同一のテープ上に保存する。つまり、1つのテープ上の領域を、先導部用領域と全コンテンツ用領域とに分け、先導部用領域にはコンテンツの先導部を、全コンテンツ用領域にはその先導部に対応する全コンテンツを記録する。
そして、先導部用領域に記録する先導部の長さを、先導部の記録位置からそれに対応する全コンテンツのうちの追尾部の記録位置までの距離に応じて決定する。この距離が長い場合は、先導部の記録長さも長くする。また、この距離が短い場合は、先導部の記録長さも短くする。これにより、先導部用領域を効率的に使用する。
【0029】
ここで、j番目のコンテンツの先導部をLj、全コンテンツをFjとし、テープの先頭からLjの記録開始位置までの距離をmj(mm)、テープの先頭からFjの記録開始位置までの距離をkj(mm)とする(j=1,2,3,…)。但し、テープの先頭とは、テープ上の記録可能な領域の先頭を意味するものとし、m1=0とする。また、Ljのデータ量をbj(byte)、テープ上のデータの記録密度をBpl(byte/mm)、テープの走行速度をLs(mm/sec)、コンテンツの再生速度をBpps(byte/sec)とする。この場合、mjとkjとbjの間には、次の関係が成り立つ。
bj/Bpps=(kj−(mj+bj/Bpl)+bj/Bpl)/Ls+α (式1)
【0030】
この式1は、先導部Ljの再生が終了した時点で、テープが全コンテンツFjのうち少なくとも先導部Ljに続く追尾部の記録開始位置に達していることを意味している。
式1の右辺の「kj−(mj+bj/Bpl)」は、先導部Ljの記録終了位置から全コンテンツFjの記録開始位置までの距離を表す。但し、全コンテンツFjは先導部Ljも含んでいるので、先導部Ljに続く追尾部の記録開始位置までの距離とするため、これに「bj/Bpl」を加えている。
また、一般に、テープから読み出されたデータはすぐ次の工程へ転送されるのではなく、例えばブロック単位でエラーのチェック等を行ってから転送される。つまり、このデータのブロック分の遅れの後、データの転送が始まることになる。そこで、式1では、先導部Ljの再生が終了するのが、全コンテンツFj中の追尾部の記録開始位置に達するのと同時ではなく、全コンテンツFj中の追尾部の記録開始位置に達してから若干時間を経過した時点であるのが望ましいと考え、右辺に余裕分αを加えている。
そして、式1から、bjは次のように表される。
bj=(kj−mj+α×Ls)×Bpps/Ls (式1’)
【0031】
図4は、第2の記録方式におけるテープ上の記録フォーマットの一例を示した図である。
この第2の記録方式では、先導部と全コンテンツとを異なるテープ上に保存する。つまり、複数のテープを、先導部用テープと全コンテンツ用テープとに分け、先導部用テープにはコンテンツの先導部を、全コンテンツ用テープにはその先導部に対応する全コンテンツを記録する。これにより、1つのテープに多くの先導部を保存できるようになる。従って、そのテープがテープドライブにロードされていれば、テープを再ロードすることなく、より多くの先導部を読み出すことができる。また、一度に多くの先導部をテープから第2キャッシュ25へ呼び戻すことができる。
そして、先導部用テープに記録する先導部の長さを、全コンテンツ用テープの先頭からその先導部に対応する全コンテンツのうちの追尾部の記録位置までの距離に応じて決定する。この距離が長い場合は、先導部の記録長さも長くする。また、この距離が短い場合は、先導部の記録長さも短くする。
【0032】
ここで、j番目のコンテンツの先導部をLj、全コンテンツをFjとし、テープの先頭からLjの記録開始位置までの距離をmj(mm)、テープの先頭からFjの記録開始位置までの距離をkj(mm)とする(j=1,2,3,…)。但し、テープの先頭とは、テープ上の記録可能な領域の先頭を意味するものとし、m1=0、k1=0とする。また、Ljのデータ量をbj(byte)、テープ上のデータの記録密度をBpl(byte/mm)、テープの走行速度をLs(mm/sec)、コンテンツの再生速度をBpps(byte/sec)とする。この場合、mjとkjとbjの間には、次の関係が成り立つ。
bj/Bpps=(kj+bj/Bpl)/Ls+α+β (式2)
【0033】
この式2は、先導部Ljの再生が終了した時点で、テープが全コンテンツFjのうち少なくとも先導部Ljに続く追尾部の記録開始位置に達していることを意味している。
式2の右辺の「kj」は、テープの先頭から全コンテンツFjの記録開始位置までの距離を表す。但し、全コンテンツFjは先導部Ljも含んでいるので、先導部Ljに続く追尾部の記録開始位置までの距離とするため、これに「bj/Bpl」を加えている。
また、式1に関して述べたのと同様の理由により、右辺に余裕分αを加えている。更に、この記録方式の場合、先導部用テープは常時テープドライブにロードしておき、全コンテンツ用テープは、要求があった時点でロボット機構が搬送してテープドライブにロードするような運用を行うのが好ましい。そこで、この搬送等に要する時間も余裕分βとして加えている。
そして、式2から、bjは次のように表される。
bj=(kj+(α+β)×Ls)×Bpl×Bpps/(Bpl×Ls−Bpps) (式2’)
【0034】
また、本実施の形態におけるコンピュータシステム100では、第1キャッシュ24から全コンテンツがテープに移動する場合がある。この場合におけるテープ上の記録方式として、次のような記録方式を第3の記録方式として採用してもよい。
図5は、第3の記録方式におけるテープ上の記録フォーマットの一例を示した図である。
この第3の記録方式は、複数のコンテンツを並行してバッファリングすることで、擬似的に複数コンテンツの同時再生を可能とするものである。つまり、テープ上の領域を複数の部分領域に分割する。図では、テープ上の領域を、部分領域R1、R2、R3に分割している。そして、部分領域Riに、第1のコンテンツの一部である部分コンテンツPi,1と、第2のコンテンツの一部である部分コンテンツPi,2と、第3のコンテンツの一部である部分コンテンツPi,3とを連続して記録している。また、同じ方法での追加記録を可能とするため、空き領域Ziも用意している(i=1,2,3)。
【0035】
ところで、本実施の形態では、前述の通り、テープドライブにおけるデータの読み出し速度又は転送速度が、読み出されたデータのデータ再生装置における再生速度(例えば、ビデオ再生速度)に対して十分に速いことを前提とする。尚、この速度差は、テープドライブとデータ再生装置との間に設置されるバッファ装置によって吸収されるものとする。従って、部分領域Ri−1に記録された部分コンテンツPi−1,jとこれに継続する部分コンテンツPi,jの距離mi,j−mi−1,jを、部分コンテンツPi−1,jの再生時間と等しいか又はそれ以下の時間でテープを走行できる距離とすれば、データ再生装置に継続してデータを供給できる。例えば、データの読み出し又は転送の速度がデータの再生速度の10倍であれば、mi,j−mi−1,jをPi−1,jの記録長さの10倍に設定することが可能である。
【0036】
ここで、部分領域Riに記録されたj番目のコンテンツの部分コンテンツをPi,jとし、テープの先頭からPi,jの記録開始位置までの距離をmi,j(mm)とする(i=1,2,3,…、j=1,2,3,…)。但し、テープの先頭とは、テープ上の記録可能な領域の先頭を意味するものとし、m1,1=0とする。また、Pi,jのデータ量をbi,j(byte)、テープ上のデータの記録密度をBpl(byte/mm)、テープの走行速度をLs(mm/sec)、コンテンツの再生速度をBpps(byte/sec)とする。この場合、bi−1,jとbi−1,j+1とbi,jの間には、次の関係が成り立つ。
bi−1,j+1/Bpl+(bi−1,j+1/Bpps)×Ls=(bi−1,j/Bpps)×Ls+bi,j/Bpl (式3)
【0037】
この式3は、部分コンテンツPi−1,j+1の記録長さと、この部分コンテンツPi−1,j+1の記録終了位置からこれに継続する部分コンテンツPi,j+1の記録開始位置までの長さとの和が、部分コンテンツPi−1,jの記録終了位置からこれに継続する部分コンテンツPi,jの記録開始位置までの長さと、部分コンテンツPi,jの記録長さの和に等しいことを意味している。
そして、式3から、bi,jは次のように表される。
bi,j=bi−1,j+1+(bi−1,j+1−bi−1,j)×Bpl×Ls/Bpps (式3’)
【0038】
次いで、本実施の形態におけるコンテンツサーバ20の動作について説明する。
まず、コンテンツサーバ20の動作のうち、コンテンツを保管する際の動作を説明する。
この場合、まず、通信部21がコンテンツの保管要求を受け付ける。尚、このコンテンツの保管要求は、コンテンツの識別情報(コンテンツID)を伴うものとする。そして、通信部21は、そのコンテンツ及び保管要求を保存制御部22に渡す。これにより、保存制御部22の動作が開始する。
【0039】
図6は、保存制御部22の動作例を示したフローチャートである。尚、以下では、先導部Lj及び全コンテンツFj(j=1,2,3,…)を図3又は図4のように記録する場合を例にとり、説明する。
保存制御部22は、まず、通信部21からコンテンツを受け取る(ステップ201)。そして、このコンテンツの全体である全コンテンツFjを第1キャッシュ24に保存する(ステップ202)。また、その一方で、全コンテンツFjのコピーを入出力部26に渡して、テープに保存するように指示する(ステップ203)。
これにより、入出力部26が、全コンテンツFjのコピーをテープに書き込むためにテープライブラリ10に送り、その結果として、テープの識別情報(テープID)及びテープ上の記録開始位置kjをテープライブラリ10から受け取るので、保存制御部22は、それらの情報を取得する(ステップ204)。そして、先導部Ljのデータ量bjを求める(ステップ205)。
【0040】
この場合、先導部Ljのデータ量bjは、次のようにして求められる。
例えば、第1の記録方式を採用した場合、先導部Ljのデータ量bjは、先に述べた通り、
bj=(kj−mj+α×Ls)×Bpps/Ls (式1’)
で求められる。ここで、mjは、先導部Lj−1を第2キャッシュ25に記憶した際に算出されメモリに記憶されたmj−1とbj−1とを用いて、mj=mj−1+bj−1/Bplで求められる。また、Bpl、Ls、Bpps、αは、予め与えられた定数である。
また、第2の記録方式を採用した場合、先導部Ljのデータ量bjは、先に述べた通り、
bj=(kj+(α+β)×Ls)×Bpl×Bpps/(Bpl×Ls−Bpps) (式2’)
で求められる。ここで、Bpl、Ls、Bpps、αは、予め与えられた定数である。また、βは、予め与えられた定数であってもよいし、ステップ204で取得したテープIDに基づいてロボット機構によるテープの搬送時間を推測して得られた数値であってもよい。
【0041】
その後、保存制御部22は、データ抽出部23に対して、コンテンツの先頭からbjバイトを先導部Ljとして切り出すよう指示する(ステップ206)。すると、データ抽出部23は、指示に応じて先導部Ljを切り出し、これを保存制御部22に戻す。
これにより、保存制御部22は、先導部Ljを受け取って第2キャッシュ25に記憶する(ステップ207)。そして、最後に、コンテンツIDと、テープIDと、先導部Ljの記録開始位置mjと、先導部Ljのデータ量bjとを対応付けて、メモリに記憶しておく(ステップ208)。ここで、記録開始位置mjは、前述の通り、mj=mj−1+bj−1/Bplで求められる。
【0042】
その後、第2キャッシュ25からテープへ先導部Ljの移動がなされる場合、保存制御部22は、次のような動作を行う。
例えば、第1の記録方式を採用した場合であれば、移動対象のコンテンツのコンテンツIDをキーとしてテープIDを取得し、このテープIDにより先導部Ljの移動先のテープを特定する。そして、コンテンツIDに対応付けられている記録開始位置mjまでテープを進めるコマンドを発行し、これに続けて先導部Ljを書き込む。
また、第2の記録方式を採用した場合であれば、例えばテープドライブに既にロードされているテープを、先導部Ljの移動先のテープとして特定する。そして、コンテンツIDに対応付けられている記録開始位置mjまでテープを進めるコマンドを発行し、これに続けて先導部Ljを書き込む。
【0043】
ところで、本実施の形態では、ステップ203で全コンテンツをテープに移動する際に、第3の記録方式を採用してもよい。
そこで、第3の記録方式にて全コンテンツを記録する際の動作について説明する。
図7は、このときの保存制御部22の動作例を示したフローチャートである。
まず、保存制御部22は、部分領域をカウントするための変数iに「1」を代入し(ステップ221)、コンテンツをカウントするための変数jに「1」を代入する(ステップ222)。以下、i=1,2,3,…Rn、j=1,2,3,…Cnの全ての(i,j)について、次の処理を行う。ここで、Rnはテープ上に設けられた部分領域の数、Cnはテープ上に記録するコンテンツの数を意味する。
【0044】
即ち、まず、保存制御部22は、Pi,jのデータ量bi,jを決定する(ステップ223)。
ここで、i=1であれば、データ量bi,jは、任意に決定してよい。例えば、最小バッファデータ量の20倍とすることが考えられる。尚、最小バッファデータ量とは、上述したエラーチェックを行う単位であるブロックのデータ量である。
また、i>1であれば、データ量bi,jは、
bi,j=bi−1,j+1+(bi−1,j+1−bi−1,j)×Bpl×Ls/Bpps (式3’)
で求められる。ここで、bi−1,j、bi−1,j+1は、部分コンテンツPi−1,j、Pi−1,j+1をテープに書き込んだ際に算出されメモリに記憶されたものを用いるとよい。また、Bpl、Ls、Bppsは、予め与えられた定数である。
【0045】
その後、保存制御部22は、データ抽出部23に対して、コンテンツの先頭からbi,jバイトを部分コンテンツPi,jとして切り出すよう指示する(ステップ224)。すると、データ抽出部23は、指示に応じて部分コンテンツPi,jを切り出し、これを保存制御部22に戻す。
これにより、保存制御部22は、部分コンテンツPi,jを受け取って、テープに書き込むよう入出力部26に指示する(ステップ225)。すると、入出力部26は、部分コンテンツPi,jをテープに書き込むため、テープライブラリ10に出力する。その際、コンテンツIDも部分コンテンツPi,jに付加して書き込まれるものとする。また、保存制御部22は、bi,j、mi,jをメモリに記憶する。尚、mi,jは、mi,j=mi−1,j+(bi−1,j/Bpps)×Lsで求められる。
そして、最後に、保存制御部22は、jがCnよりも小さいかどうかを判定する(ステップ226)。jがCnよりも小さければ、jに「1」を加算して(ステップ227)、ステップ223に戻る。また、jがCnに達していれば、iがRnよりも小さいかどうかを判定する(ステップ228)。iがRnよりも小さければ、テープを先頭からmi+1,1の位置まで走行させるコマンドを発行し(ステップ229)、iに「1」を加算して(ステップ230)、ステップ222に戻る。尚、mi+1,1は、mi+1,1=mi,1+(bi,1/Bpps)×Lsで求められる。
【0046】
次に、コンテンツサーバ20の動作のうち、コンテンツを読み出す際の動作を説明する。
この場合、まず、通信部21がコンテンツの再生要求を受け付ける。尚、このコンテンツの再生要求は、コンテンツの識別情報(コンテンツID)を伴うものとする。そして、通信部21は、そのコンテンツID及び再生要求を再生制御部27に渡す。これにより、再生制御部27の動作が開始する。
【0047】
図8は、再生制御部27の動作例を示したフローチャートである。
再生制御部27は、まず、通信部21からコンテンツの再生要求を受け付ける(ステップ241)。次に、このコンテンツの全体である全コンテンツFjが第1キャッシュ24に記憶されているかどうかを判定する(ステップ242)。
その結果、全コンテンツFjが第1キャッシュ24に記憶されていれば、これを第1キャッシュ24から読み出して、通信部21に渡す(ステップ243)。
【0048】
一方、全コンテンツFjが第1キャッシュ24に記憶されていなければ、再生制御部27は、このコンテンツの先導部Ljが第2キャッシュ25に記憶されているかどうかを判定する(ステップ244)。ここで、先導部Ljが第2キャッシュ25に記憶されていなければ、テープから先導部Ljを読み出すよう入出力部26に指示する(ステップ245)。具体的には、コンテンツIDをキーとして先導部Ljの記録開始位置mjを特定し、そこまでテープを走行させるコマンドと、そこからデータを読み出すコマンドとを発行するよう、入出力部26に指示する。そして、これにより入出力部26が読み出した先導部Ljを取得して第2キャッシュ25に記憶し、これを通信部21にも受け渡す(ステップ246)。また、先導部Ljが第2キャッシュ25に記憶されていれば、そのまま第2キャッシュ25から読み出して、通信部21に受け渡す(ステップ246)。
【0049】
その後、再生制御部27は、このコンテンツの追尾部Tjがステージングバッファ28に記憶されているかどうかを判定する(ステップ247)。ここで、追尾部Tjがステージングバッファ28に記憶されていなければ、テープから追尾部Tjを読み出すよう入出力部26に指示する(ステップ248)。具体的には、コンテンツIDをキーとして追尾部Tjの記録開始位置を特定し、そこまでテープを走行させるコマンドと、そこからデータを読み出すコマンドとを発行するよう、入出力部26に指示する。尚、追尾部Tjの記録開始位置は、kj+(mj−mj−1)/Bplにより求められる。そして、これにより入出力部26が読み出した追尾部Tjを取得してステージングバッファ28に記憶し、これを通信部21にも受け渡す(ステップ249)。また、追尾部Tjがステージングバッファ28に記憶されていれば、そのままステージングバッファ28から読み出して、通信部21に受け渡す(ステップ249)。
【0050】
尚、この動作例では、ステップ248で1つのコンテンツの追尾部を読み出すようにしたが、これには限らない。例えば、複数のコンテンツが図5のようなフォーマットで記録されている場合に、同一テープに記憶された複数のコンテンツの再生要求があった場合に、これらを同時に読み出して再生することもできる。
【0051】
図9は、このときの再生制御部27の動作例を示したフローチャートである。
再生制御部27は、まず、テープから読み出したコンテンツを入出力部26から受け取る(ステップ261)。次に、読み出したコンテンツに付加されたコンテンツIDに基づいて、読み出したコンテンツを蓄積すべきバッファを特定する(ステップ262)。そして、ステップ261で受け取ったコンテンツを、ステップ262で特定したバッファに格納する(ステップ263)。
【0052】
このような動作により、図5の部分領域に記録されたコンテンツごとのデータは、それぞれのデータに対応するコンテンツ用バッファに蓄積される。
図10は、このようなバッファへのデータの読み込みの様子を示したものである。即ち、第1のコンテンツの部分コンテンツP1,1、P2,1、P3,1が、バッファ28aに格納され、第2のコンテンツの部分コンテンツP1,2、P2,2、P3,2が、バッファ28bに格納され、第3のコンテンツの部分コンテンツP1,3、P2,3、P3,3が、バッファ28cに格納されている。尚、この図において、各バッファは、連続アクセスが可能であることを示す概念的な図として示したに過ぎず、各バッファが連続した物理メモリアドレスを持つ必要はない。また、白抜きの矢印は、データが格納される方向を示している。このようにバッファリングがほぼ並行して進行することから、複数のコンテンツの効率的な再生が可能となる。
【0053】
また、再生要求が発生した場合、最初に再生される部分を予めバッファに蓄積しておくこともできる。例えば、図10において、テープの先頭に近い部分領域R1とR2に記録されたデータをメモリバッファに事前蓄積しておいてもよい。この事前蓄積により、テープロード時間等によって発生する再生遅延時間を吸収することが可能となる。
【0054】
ところで、上記説明では、テープ上のデータの記録密度Bpl、テープの走行速度Ls、コンテンツの再生速度Bppsを固定の値とした。しかしながら、必ずしも固定の値にしなくてもよい。例えば、テープ上のデータの記録密度Bpl、テープの走行速度Lsは、コンテンツが記録されるテープによって異なるようにしてもよい。また、コンテンツの再生速度Bppsは、コンテンツによって異なるようにしてもよい。
【0055】
このように、本実施の形態では、第1の記録方式、第2の記録方式、第3の記録方式でテープにコンテンツを記録するようにした。つまり、コンテンツの第1の部分(例えば先導部)の再生の終了までに第1の部分に続く第2の部分(例えば、追尾部)の再生が開始できるように、第1及び第2の部分を記録するようにした。これにより、コンテンツの全ての部分がテープに記録される場合において、コンテンツの再生を開始するまでの時間を短縮することができるようになった。また、その際、第1の部分の再生の終了時期と、第2の部分の再生の準備が整う時期とができるだけ近づくように、第1の部分が再生している間にテープが走行する距離だけ離れた位置に第2の部分を記録することで、第1の部分と第2の部分との間の領域を有効に利用できるようにした。
【0056】
最後に、本実施の形態を適用するのに好適なコンピュータのハードウェア構成について説明する。図11は、このようなコンピュータのハードウェア構成の一例を示した図である。図示するように、コンピュータは、演算手段であるCPU(Central Processing Unit)90aと、M/B(マザーボード)チップセット90bを介してCPU90aに接続されたメインメモリ90cと、同じくM/Bチップセット90bを介してCPU90aに接続された表示機構90dとを備える。また、M/Bチップセット90bには、ブリッジ回路90eを介して、ネットワークインターフェイス90fと、磁気ディスク装置(HDD)90gと、音声機構90hと、キーボード/マウス90iと、フレキシブルディスクドライブ90jとが接続されている。
【0057】
尚、図11において、各構成要素は、バスを介して接続される。例えば、CPU90aとM/Bチップセット90bの間や、M/Bチップセット90bとメインメモリ90cの間は、CPUバスを介して接続される。また、M/Bチップセット90bと表示機構90dとの間は、AGP(Accelerated Graphics Port)を介して接続されてもよいが、表示機構90dがPCI Express対応のビデオカードを含む場合、M/Bチップセット90bとこのビデオカードの間は、PCI Express(PCIe)バスを介して接続される。また、ブリッジ回路90eと接続する場合、ネットワークインターフェイス90fについては、例えば、PCI Expressを用いることができる。また、磁気ディスク装置90gについては、例えば、シリアルATA(AT Attachment)、パラレル転送のATA、PCI(Peripheral Components Interconnect)を用いることができる。更に、キーボード/マウス90i、及び、フレキシブルディスクドライブ90jについては、USB(Universal Serial Bus)を用いることができる。
【0058】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)及びDVDが含まれる。
【0059】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【図面の簡単な説明】
【0060】
【図1】本発明の実施の形態が適用されるコンピュータシステムの全体構成を示したブロック図である。
【図2】本発明の実施の形態におけるコンテンツサーバの機能構成例を示した図である。
【図3】本発明の実施の形態によりデータが記録されたテープのフォーマットの例を示した図である。
【図4】本発明の実施の形態によりデータが記録されたテープのフォーマットの例を示した図である。
【図5】本発明の実施の形態によりデータが記録されたテープのフォーマットの例を示した図である。
【図6】本発明の実施の形態におけるコンテンツサーバのコンテンツ書込み時の動作例を示したフローチャートである。
【図7】本発明の実施の形態におけるコンテンツサーバのコンテンツ書込み時の動作例を示したフローチャートである。
【図8】本発明の実施の形態におけるコンテンツサーバのコンテンツ読出し時の動作例を示したフローチャートである。
【図9】本発明の実施の形態におけるコンテンツサーバのコンテンツ読出し時の動作例を示したフローチャートである。
【図10】本発明の実施の形態による複数のコンテンツのバッファへの読出しの様子を示した図である。
【図11】本発明の実施の形態を適用可能なコンピュータのハードウェア構成を示した図である。
【符号の説明】
【0061】
20…コンテンツサーバ、21…通信部、22…保存制御部、23…データ抽出部、24…第1キャッシュ、25…第2キャッシュ、26…入出力部、27…再生制御部、28…ステージングバッファ
【技術分野】
【0001】
本発明は、データをテープ媒体に書き込む装置及び方法に関する。特に、本発明は、再生されるデータをテープ媒体に書き込む装置及び方法に関する。
【背景技術】
【0002】
近年、映像コンテンツを始めとした各種コンテンツのデータをインターネット等のネットワークを介して配信するようなシステムが広く見られるようになっている。そのようなシステムでは、コンテンツのデータを如何なる記録媒体に記録して蓄積しておくかが問題となる。コンテンツのデータがそれほど大容量でなければ、価格と性能のバランスから、磁気ディスクが利用されることも多い。一方で、コンテンツのデータが大容量になってくると、使用頻度が低いコンテンツのデータは磁気テープに記録する、といった階層型の記憶システムが採用されることもある。
しかしながら、コンテンツのデータを磁気テープに記録する場合、コンテンツのデータを磁気ディスクに記録した場合に比べて、コンテンツの再生を開始するまでに多くの時間を要するという問題がある。こうした問題を解決するため、従来から種々の技術が提案されている(例えば、特許文献1、2参照)。
【0003】
特許文献1では、1つ以上のディスク・アレイに対して、200の最もポピュラーな映画の最初の5分間に関する「プリ・ストライピング」を実施し、これらの映画の1つが要求されると、プリ・ストライピングを施したビデオ・データによって迅速にサービスを行い、同時に、ビデオ・データ・プログラムの残りをアーカイバル記憶装置から呼び出して、ディスク・アレイに転記することで、ユーザがビデオ・データを受け取る際の遅延を最小限に抑えている。
特許文献2では、第1の記憶装置(例えば、磁気テープ)の中にあるビデオ・データの一部分をあらかじめ第2の記憶装置(例えば、磁気ディスク)にロードしておき、ビデオに対するリクエストを受信した時、第2の記憶装置の中にあるビデオ・データの一部分をユーザに転送し、同時に、第1の記憶装置にあるビデオ・データの残りの部分をユーザに転送するために第2の記憶装置へ転送することで、第1の記憶装置に付随する遅延時間を最小化している。
【0004】
【特許文献1】特開平8−18947号公報
【特許文献2】特開平9−182028号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
このように、従来から、磁気テープに記録されたコンテンツの再生を開始するまでの時間を短縮するための種々の試みがなされている。しかしながら、何れの技術も、コンテンツ等のデータの全ての部分が磁気テープ等のテープ媒体に記録される場合において、かかる時間の短縮を図るものではなかった。
本発明の目的は、データの全ての部分がテープ媒体に記録される場合において、データの再生を開始するまでの時間を短縮することにある。
【課題を解決するための手段】
【0006】
かかる目的のもと、本発明は、再生されるデータをテープ媒体に書き込む装置であって、テープ媒体に書き込むデータを取得する取得部と、取得部により取得されたデータをテープ媒体に書き込む書込み部と、テープ媒体からのデータの読出し時間を短縮するためにデータとは別に記憶されるデータの先頭部分のデータ量を、先頭部分の再生の終了までに先頭部分に続く部分の再生が開始できるように決定する決定部と、取得部により取得されたデータから決定部により決定されたデータ量の先頭部分を抽出する抽出部と、抽出部により抽出された先頭部分を記憶する記憶部とを備えた、装置を提供する。
【0007】
ここで、決定部は、先頭部分のデータ量を、テープ媒体上の先頭部分に続く部分が書き込まれた位置に基づいて決定する、ものであってよい。
また、書込み部は、取得部により取得されたデータが書き込まれたテープ媒体に先頭部分を書き込む、ものであってよい。この場合、書込み部は、取得部により取得されたデータをテープ媒体にデータよりも前方に空き領域を設けて書き込み、先頭部分を空き領域に書き込む、ようにしてもよい。
更に、書込み部は、取得部により取得されたデータが書き込まれたテープ媒体とは異なる他のテープ媒体に先頭部分を書き込む、ものであってよい。この場合、書込み部は、取得部により取得されたデータをテープ媒体にデータよりも前方に空き領域を設けずに書き込み、先頭部分を他のテープ媒体に先頭部分よりも前に空き領域を設けずに書き込む、ようにしてもよい。
【0008】
また、本発明は、再生されるデータをテープ媒体に書き込む装置であって、テープ媒体に書き込むデータを取得する取得部と、取得部により取得されたデータから第1の部分及び第1の部分に続く第2の部分を抽出する抽出部と、第1の部分の再生の終了までに第2の部分の再生が開始できるように、テープ媒体上の第1の部分が書き込まれる位置と第2の部分が書き込まれる位置との距離を決定する決定部と、テープ媒体上の所定の位置に第1の部分を書き込み、所定の位置から決定部により決定された距離の間隔を空けた位置に第2の部分を書き込む書込み部とを備えた、装置も提供する。
【0009】
ここで、取得部は、テープ媒体に書き込むデータとして、第1のデータ及び第2のデータを取得し、書込み部は、テープ媒体に対して、第1のデータの第1の部分の再生の終了までに第1のデータの第2の部分の再生が開始できるように、第1のデータの第1の部分及び第2の部分を書き込み、第2のデータの第1の部分の再生の終了までに第2のデータの第2の部分の再生が開始できるように、第2のデータの第1の部分及び第2の部分を書き込む、ものであってよい。この場合、決定部は、第1のデータの第2の部分のデータ量を、テープ媒体上の第2のデータの第1の部分が書き込まれる位置と第2のデータの第2の部分が書き込まれる位置との距離に基づいて決定し、書込み部は、テープ媒体に対して、第1のデータの第1の部分及び第2のデータの第1の部分を連続して書き込み、第1のデータの第2の部分及び第2のデータの第2の部分を連続して書き込む、ものであってもよい。
【0010】
更に、本発明は、再生されるデータをテープ媒体に書き込む方法であって、テープ媒体に書き込むデータを取得するステップと、取得されたデータをテープ媒体に書き込むステップと、テープ媒体からのデータの読出し時間を短縮するためにデータとは別に記憶されるデータの先頭部分のデータ量を、先頭部分の再生の終了までに先頭部分に続く部分の再生が開始できるように決定するステップと、取得されたデータから、決定されたデータ量の先頭部分を抽出するステップと、抽出された先頭部分を所定の記憶手段に記憶するステップとを含む、方法も提供する。
【0011】
更にまた、本発明は、再生されるデータをテープ媒体に書き込む方法であって、テープ媒体に書き込むデータを取得するステップと、取得されたデータの第1の部分の再生の終了までに第1の部分に続くデータの第2の部分の再生が開始できるように、テープ媒体上の第1の部分が書き込まれる位置と第2の部分が書き込まれる位置との距離を決定するステップと、テープ媒体上の所定の位置に第1の部分を書き込み、所定の位置から決定された距離の間隔を開けた位置に第2の部分を書き込むステップとを含む、方法も提供する。
【0012】
また、本発明は、再生されるデータをテープ媒体に書き込む装置としてコンピュータを機能させるプログラムであって、コンピュータを、テープ媒体に書き込む複数のデータを取得する取得部と、取得部により取得された複数のデータの各データの第1の部分の再生の終了までに第1の部分に続く各データの第2の部分の再生が開始できるように、テープ媒体上の第1の領域に各データの第1の部分を書き込み、テープ媒体上の第2の領域に各データの第2の部分を書き込む書込み部として機能させる、プログラムも提供する。
【発明の効果】
【0013】
本発明によれば、データの全ての部分がテープ媒体に記録される場合において、データの再生を開始するまでの時間を短縮できる。
【発明を実施するための最良の形態】
【0014】
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、「実施の形態」という)について詳細に説明する。
図1は、本実施の形態が適用されるコンピュータシステム100の構成例を示した図である。このコンピュータシステム100は、テープライブラリ10と、コンテンツサーバ20と、クライアント30a,30b,30c,…とが、ネットワーク80により通信可能に接続されることにより構成されている。
【0015】
テープライブラリ10は、複数の磁気テープカートリッジの中から所望の磁気テープカートリッジを選択してテープドライブにロードすることで、磁気テープへのデータの書き込みや磁気テープからのデータの読み出しを行う装置である。例えば、複数の磁気テープカートリッジを複数のスロットにそれぞれ収納しておき、ロボット機構(チェンジャ)が要求された磁気テープカートリッジをスロットから取り出し、テープドライブまで搬送してロードする。尚、テープライブラリ10にてデータの読み書きがなされるテープ媒体としては、磁気テープが代表例であるが、磁気テープ以外のテープ媒体でもよい。従って、以下では「磁気テープ」と表記せず、単に「テープ」と表記する。
【0016】
コンテンツサーバ20は、クライアント30a,30b,30c,…の何れかからの要求に応じて、テープに記録されたコンテンツを、要求元のクライアントに提供するサーバコンピュータである。ここで、コンテンツとは、クライアント30a,30b,30c,…にてユーザが鑑賞可能なひとまとまりの情報をデジタル化したデジタルデータを意味する。また、本実施の形態では、再生可能なコンテンツを対象としている。例えば、映像(動画)、音楽等である。更に、このコンテンツサーバ20は、コンテンツの提供事業者により運営されるものでも、コンテンツの提供事業者以外の事業者によって運営されるものでもよい。そして、何れの場合であっても、新たなコンテンツの保存を要求する端末装置(例えば、クライアント30a,30b,30c,…)に接続されていることが望ましい。尚、本実施の形態では、データの一例としてコンテンツを用いるが、ユーザによる鑑賞の対象という性質を持たない情報をデジタル化したデジタルデータであっても、再生できるものであれば、本実施の形態を適用することは可能である。
【0017】
クライアント30a,30b,30c,…は、ユーザがコンテンツを鑑賞するために用いる端末装置であり、例えば、PC(Personal Computer)によって実現するとよい。尚、ここでは、クライアントとして、クライアント30a,30b,30c,…を示したが、以下の説明でこれらの何れかに限定しない場合は、単にクライアント30と表記するものとする。
【0018】
このようなシステム構成において、本実施の形態では、コンテンツサーバ20内にディスクキャッシュを設け、ディスクキャッシュとテープライブラリ10にてデジタルアーカイブシステムのストレージ装置を構成する。この場合、ディスクキャッシュにヒットするコンテンツの再生に比べて、ディスクキャッシュにヒットせずにテープからの呼び戻し(Recall)を必要とするコンテンツは、再生要求から再生開始までの時間が長くなる。
【0019】
そこで、本実施の形態では、コンテンツを、先頭部分(以下、「先導部」(Leading Part)という)と、全体(以下、「全コンテンツ」(Full Content)という)とに分けて保管する。ビデオデータに代表されるコンテンツのデータストリーム速度は、ディスクキャッシュとテープドライブの間のデータ転送速度に比べて遅い。例えば、MPEG2データの転送速度は50Mbpsであるのに対して、LTO(Linear Tape-Open)第4世代は、960Mbpsのデータ転送速度を持つ。従って、ある量の先導部がディスクキャッシュ内にあれば、コンテンツの再生要求に応えることができる。そして、先導部の再生が終了する前にディスクキャッシュとテープドライブの間の全コンテンツのデータ転送を開始できれば、再生を継続することが可能となる。
【0020】
次に、このような動作を行うコンテンツサーバ20の機能構成について説明する。
図2は、コンテンツサーバ20の機能構成例を示したブロック図である。
図示するように、コンテンツサーバ20は、通信部21と、保存制御部22と、データ抽出部23と、第1キャッシュ24と、第2キャッシュ25とを備える。また、入出力部26と、再生制御部27と、ステージングバッファ28とを備える。
【0021】
通信部21は、保管の目的で送られてきたコンテンツやコンテンツの再生要求を、例えばクライアント30から受信する。また、コンテンツの再生要求に応じて読み出されたコンテンツを、例えばクライアント30に送信する。本実施の形態では、データを取得する取得部の一例として、通信部21を設けている。
【0022】
保存制御部22は、通信部21からコンテンツを受け取り、全コンテンツを第1キャッシュ24に保管した後、そのコピーをテープに記録するために入出力部26に送る。尚、ここでのテープへの記録を、本明細書では、事前移動(Pre-Migrate)と呼ぶ。このように、第1キャッシュ24へのコンテンツの記録とほぼ同時に事前移動することにより、第1キャッシュ24の障害時にコンテンツのデータが消失するのを防ぐことができる。また、保存制御部22は、そのコンテンツの先導部を第2キャッシュ25に保存する。この場合、保存する先導部のサイズは、先導部に続くコンテンツの部分(以下、「追尾部」(Trailing Part)という)のはじめの部分をテープからステージングバッファ28に読み出すのに要する時間に対応する。本実施の形態では、先導部のデータ量やテープ媒体上の書き込み位置間の距離を決定する決定部の一例として、保存制御部22を設けている。
データ抽出部23は、保存制御部22により渡されたコンテンツから指定されたデータを抽出する。ここで、指定されたデータとしては、例えば、上述した先導部がある。本実施の形態では、データから所定の部分を抽出する抽出部の一例として、データ抽出部23を設けている。
【0023】
第1キャッシュ24は、保存制御部22から送られたコンテンツを記憶する。但し、第1キャッシュ24に記憶されるコンテンツの数が増加し、コンテンツの総データ量が第1キャッシュ24の容量を超える場合、最後に使用した時間が最も古い(Least Recently Used)コンテンツで、第1キャッシュ24への保存要求の低いものから順に、第1キャッシュ24から削除される。このように第1キャッシュ24からコンテンツが削除されると、この時点で、そのコンテンツはテープのみに存在することになる。このことを、本明細書では、移動(Migrate)と呼ぶ。尚、第1キャッシュ24は、例えば半導体メモリによって実現すればよく、テープに対するディスクキャッシュとしての性格を有するものである。
第2キャッシュ25は、第1キャッシュ24に保存されたコンテンツの先導部を記憶する。但し、コンテンツの総データ量が第2キャッシュ25の容量を超える場合、最後に使用した時間が最も古い(Least Recently Used)コンテンツから順に、第2キャッシュ25から削除される。尚、第2キャッシュ25は、例えば半導体メモリによって実現すればよい。本実施の形態では、データの先頭部分の一例として、先導部を用い、先頭部分を記憶する記憶部の一例として、第2キャッシュ25を設けている。
【0024】
入出力部26は、コンテンツをテープに書き込むためにテープライブラリ10に出力する。また、再生のためにテープから読み出されたコンテンツをテープライブラリ10から受け取る。本実施の形態では、データをテープ媒体に書き込む書込み部の一例として、入出力部26を設けている。
【0025】
再生制御部27は、通信部21からコンテンツの再生要求を受け取ると、コンテンツが第1キャッシュ24に存在すれば、第1キャッシュ24からコンテンツを読み出して通信部21に送る。また、コンテンツが第1キャッシュ24に存在しなければ、第2キャッシュ25から読み出した先導部と、テープから読み出した全コンテンツとを用いて、コンテンツの再生を制御する。但し、コンテンツが第1キャッシュ24に存在しても、第1キャッシュ24からのコンテンツの読出し及び再生が現在既に進行中で、新たなコンテンツの読出し及び再生が現在のコンテンツの再生品質に影響を及ぼす可能性がある場合がある。そのような場合は、第2キャッシュ25から読み出した先導部と、テープから読み出した全コンテンツとを用いて、コンテンツの再生を制御するようにしてもよい。このように先導部と全コンテンツとを用いてコンテンツの再生を制御する場合、再生制御部27は、第2キャッシュ25から先導部を読み出して通信部21に送り、テープから読み出された全コンテンツを入出力部26から受け取ってステージングバッファ28に送る。或いは、全コンテンツをステージングバッファ28に送るのではなく、先導部に続く追尾部をステージングバッファ28に送るようにしてもよい。先導部と追尾部とを組み合わせることにより、全コンテンツを構成することができるからである。再生制御部27は、先導部を通信部21に送るのに引き続き、追尾部を通信部21に送る。尚、追尾部の再生は、追尾部の全部がテープから読み出されていなくとも開始できる。これは、コンテンツの再生のための再生データの転送速度に比べて、テープからステージングバッファ28へのデータ転送速度が十分に速いためである。
【0026】
ステージングバッファ28は、テープから読み出した全コンテンツを一時的に格納するバッファである。尚、ステージングバッファ28は、例えば磁気ディスクによって実現すればよい。
【0027】
このように、コンテンツサーバ20は、第2キャッシュ25にコンテンツの先導部を記憶することにより、テープに記録されたコンテンツの再生開始までの時間を短縮している。しかしながら、第2キャッシュ25の容量は有限であるので、保存される先導部が増加し続けた場合、例えば、最後に使用された時間が古いものからテープに移動される。
その際、本実施の形態では、次のような記録方式によりテープにコンテンツを記録するようにしている。即ち、まず、先導部のバッファリングがより短時間で行えるよう、テープ上の領域を先導部用の部分と全コンテンツ用の部分とに分け、テープに記録されたデータを最も早く読み出せる部分を先導部用として用い、この部分に先導部を集めている。また、先導部の再生が終了した時点で追尾部の再生が開始できるよう、先導部の記録長さを決定している。
【0028】
図3は、第1の記録方式におけるテープ上の記録フォーマットの一例を示した図である。
この第1の記録方式では、先導部と全コンテンツとを同一のテープ上に保存する。つまり、1つのテープ上の領域を、先導部用領域と全コンテンツ用領域とに分け、先導部用領域にはコンテンツの先導部を、全コンテンツ用領域にはその先導部に対応する全コンテンツを記録する。
そして、先導部用領域に記録する先導部の長さを、先導部の記録位置からそれに対応する全コンテンツのうちの追尾部の記録位置までの距離に応じて決定する。この距離が長い場合は、先導部の記録長さも長くする。また、この距離が短い場合は、先導部の記録長さも短くする。これにより、先導部用領域を効率的に使用する。
【0029】
ここで、j番目のコンテンツの先導部をLj、全コンテンツをFjとし、テープの先頭からLjの記録開始位置までの距離をmj(mm)、テープの先頭からFjの記録開始位置までの距離をkj(mm)とする(j=1,2,3,…)。但し、テープの先頭とは、テープ上の記録可能な領域の先頭を意味するものとし、m1=0とする。また、Ljのデータ量をbj(byte)、テープ上のデータの記録密度をBpl(byte/mm)、テープの走行速度をLs(mm/sec)、コンテンツの再生速度をBpps(byte/sec)とする。この場合、mjとkjとbjの間には、次の関係が成り立つ。
bj/Bpps=(kj−(mj+bj/Bpl)+bj/Bpl)/Ls+α (式1)
【0030】
この式1は、先導部Ljの再生が終了した時点で、テープが全コンテンツFjのうち少なくとも先導部Ljに続く追尾部の記録開始位置に達していることを意味している。
式1の右辺の「kj−(mj+bj/Bpl)」は、先導部Ljの記録終了位置から全コンテンツFjの記録開始位置までの距離を表す。但し、全コンテンツFjは先導部Ljも含んでいるので、先導部Ljに続く追尾部の記録開始位置までの距離とするため、これに「bj/Bpl」を加えている。
また、一般に、テープから読み出されたデータはすぐ次の工程へ転送されるのではなく、例えばブロック単位でエラーのチェック等を行ってから転送される。つまり、このデータのブロック分の遅れの後、データの転送が始まることになる。そこで、式1では、先導部Ljの再生が終了するのが、全コンテンツFj中の追尾部の記録開始位置に達するのと同時ではなく、全コンテンツFj中の追尾部の記録開始位置に達してから若干時間を経過した時点であるのが望ましいと考え、右辺に余裕分αを加えている。
そして、式1から、bjは次のように表される。
bj=(kj−mj+α×Ls)×Bpps/Ls (式1’)
【0031】
図4は、第2の記録方式におけるテープ上の記録フォーマットの一例を示した図である。
この第2の記録方式では、先導部と全コンテンツとを異なるテープ上に保存する。つまり、複数のテープを、先導部用テープと全コンテンツ用テープとに分け、先導部用テープにはコンテンツの先導部を、全コンテンツ用テープにはその先導部に対応する全コンテンツを記録する。これにより、1つのテープに多くの先導部を保存できるようになる。従って、そのテープがテープドライブにロードされていれば、テープを再ロードすることなく、より多くの先導部を読み出すことができる。また、一度に多くの先導部をテープから第2キャッシュ25へ呼び戻すことができる。
そして、先導部用テープに記録する先導部の長さを、全コンテンツ用テープの先頭からその先導部に対応する全コンテンツのうちの追尾部の記録位置までの距離に応じて決定する。この距離が長い場合は、先導部の記録長さも長くする。また、この距離が短い場合は、先導部の記録長さも短くする。
【0032】
ここで、j番目のコンテンツの先導部をLj、全コンテンツをFjとし、テープの先頭からLjの記録開始位置までの距離をmj(mm)、テープの先頭からFjの記録開始位置までの距離をkj(mm)とする(j=1,2,3,…)。但し、テープの先頭とは、テープ上の記録可能な領域の先頭を意味するものとし、m1=0、k1=0とする。また、Ljのデータ量をbj(byte)、テープ上のデータの記録密度をBpl(byte/mm)、テープの走行速度をLs(mm/sec)、コンテンツの再生速度をBpps(byte/sec)とする。この場合、mjとkjとbjの間には、次の関係が成り立つ。
bj/Bpps=(kj+bj/Bpl)/Ls+α+β (式2)
【0033】
この式2は、先導部Ljの再生が終了した時点で、テープが全コンテンツFjのうち少なくとも先導部Ljに続く追尾部の記録開始位置に達していることを意味している。
式2の右辺の「kj」は、テープの先頭から全コンテンツFjの記録開始位置までの距離を表す。但し、全コンテンツFjは先導部Ljも含んでいるので、先導部Ljに続く追尾部の記録開始位置までの距離とするため、これに「bj/Bpl」を加えている。
また、式1に関して述べたのと同様の理由により、右辺に余裕分αを加えている。更に、この記録方式の場合、先導部用テープは常時テープドライブにロードしておき、全コンテンツ用テープは、要求があった時点でロボット機構が搬送してテープドライブにロードするような運用を行うのが好ましい。そこで、この搬送等に要する時間も余裕分βとして加えている。
そして、式2から、bjは次のように表される。
bj=(kj+(α+β)×Ls)×Bpl×Bpps/(Bpl×Ls−Bpps) (式2’)
【0034】
また、本実施の形態におけるコンピュータシステム100では、第1キャッシュ24から全コンテンツがテープに移動する場合がある。この場合におけるテープ上の記録方式として、次のような記録方式を第3の記録方式として採用してもよい。
図5は、第3の記録方式におけるテープ上の記録フォーマットの一例を示した図である。
この第3の記録方式は、複数のコンテンツを並行してバッファリングすることで、擬似的に複数コンテンツの同時再生を可能とするものである。つまり、テープ上の領域を複数の部分領域に分割する。図では、テープ上の領域を、部分領域R1、R2、R3に分割している。そして、部分領域Riに、第1のコンテンツの一部である部分コンテンツPi,1と、第2のコンテンツの一部である部分コンテンツPi,2と、第3のコンテンツの一部である部分コンテンツPi,3とを連続して記録している。また、同じ方法での追加記録を可能とするため、空き領域Ziも用意している(i=1,2,3)。
【0035】
ところで、本実施の形態では、前述の通り、テープドライブにおけるデータの読み出し速度又は転送速度が、読み出されたデータのデータ再生装置における再生速度(例えば、ビデオ再生速度)に対して十分に速いことを前提とする。尚、この速度差は、テープドライブとデータ再生装置との間に設置されるバッファ装置によって吸収されるものとする。従って、部分領域Ri−1に記録された部分コンテンツPi−1,jとこれに継続する部分コンテンツPi,jの距離mi,j−mi−1,jを、部分コンテンツPi−1,jの再生時間と等しいか又はそれ以下の時間でテープを走行できる距離とすれば、データ再生装置に継続してデータを供給できる。例えば、データの読み出し又は転送の速度がデータの再生速度の10倍であれば、mi,j−mi−1,jをPi−1,jの記録長さの10倍に設定することが可能である。
【0036】
ここで、部分領域Riに記録されたj番目のコンテンツの部分コンテンツをPi,jとし、テープの先頭からPi,jの記録開始位置までの距離をmi,j(mm)とする(i=1,2,3,…、j=1,2,3,…)。但し、テープの先頭とは、テープ上の記録可能な領域の先頭を意味するものとし、m1,1=0とする。また、Pi,jのデータ量をbi,j(byte)、テープ上のデータの記録密度をBpl(byte/mm)、テープの走行速度をLs(mm/sec)、コンテンツの再生速度をBpps(byte/sec)とする。この場合、bi−1,jとbi−1,j+1とbi,jの間には、次の関係が成り立つ。
bi−1,j+1/Bpl+(bi−1,j+1/Bpps)×Ls=(bi−1,j/Bpps)×Ls+bi,j/Bpl (式3)
【0037】
この式3は、部分コンテンツPi−1,j+1の記録長さと、この部分コンテンツPi−1,j+1の記録終了位置からこれに継続する部分コンテンツPi,j+1の記録開始位置までの長さとの和が、部分コンテンツPi−1,jの記録終了位置からこれに継続する部分コンテンツPi,jの記録開始位置までの長さと、部分コンテンツPi,jの記録長さの和に等しいことを意味している。
そして、式3から、bi,jは次のように表される。
bi,j=bi−1,j+1+(bi−1,j+1−bi−1,j)×Bpl×Ls/Bpps (式3’)
【0038】
次いで、本実施の形態におけるコンテンツサーバ20の動作について説明する。
まず、コンテンツサーバ20の動作のうち、コンテンツを保管する際の動作を説明する。
この場合、まず、通信部21がコンテンツの保管要求を受け付ける。尚、このコンテンツの保管要求は、コンテンツの識別情報(コンテンツID)を伴うものとする。そして、通信部21は、そのコンテンツ及び保管要求を保存制御部22に渡す。これにより、保存制御部22の動作が開始する。
【0039】
図6は、保存制御部22の動作例を示したフローチャートである。尚、以下では、先導部Lj及び全コンテンツFj(j=1,2,3,…)を図3又は図4のように記録する場合を例にとり、説明する。
保存制御部22は、まず、通信部21からコンテンツを受け取る(ステップ201)。そして、このコンテンツの全体である全コンテンツFjを第1キャッシュ24に保存する(ステップ202)。また、その一方で、全コンテンツFjのコピーを入出力部26に渡して、テープに保存するように指示する(ステップ203)。
これにより、入出力部26が、全コンテンツFjのコピーをテープに書き込むためにテープライブラリ10に送り、その結果として、テープの識別情報(テープID)及びテープ上の記録開始位置kjをテープライブラリ10から受け取るので、保存制御部22は、それらの情報を取得する(ステップ204)。そして、先導部Ljのデータ量bjを求める(ステップ205)。
【0040】
この場合、先導部Ljのデータ量bjは、次のようにして求められる。
例えば、第1の記録方式を採用した場合、先導部Ljのデータ量bjは、先に述べた通り、
bj=(kj−mj+α×Ls)×Bpps/Ls (式1’)
で求められる。ここで、mjは、先導部Lj−1を第2キャッシュ25に記憶した際に算出されメモリに記憶されたmj−1とbj−1とを用いて、mj=mj−1+bj−1/Bplで求められる。また、Bpl、Ls、Bpps、αは、予め与えられた定数である。
また、第2の記録方式を採用した場合、先導部Ljのデータ量bjは、先に述べた通り、
bj=(kj+(α+β)×Ls)×Bpl×Bpps/(Bpl×Ls−Bpps) (式2’)
で求められる。ここで、Bpl、Ls、Bpps、αは、予め与えられた定数である。また、βは、予め与えられた定数であってもよいし、ステップ204で取得したテープIDに基づいてロボット機構によるテープの搬送時間を推測して得られた数値であってもよい。
【0041】
その後、保存制御部22は、データ抽出部23に対して、コンテンツの先頭からbjバイトを先導部Ljとして切り出すよう指示する(ステップ206)。すると、データ抽出部23は、指示に応じて先導部Ljを切り出し、これを保存制御部22に戻す。
これにより、保存制御部22は、先導部Ljを受け取って第2キャッシュ25に記憶する(ステップ207)。そして、最後に、コンテンツIDと、テープIDと、先導部Ljの記録開始位置mjと、先導部Ljのデータ量bjとを対応付けて、メモリに記憶しておく(ステップ208)。ここで、記録開始位置mjは、前述の通り、mj=mj−1+bj−1/Bplで求められる。
【0042】
その後、第2キャッシュ25からテープへ先導部Ljの移動がなされる場合、保存制御部22は、次のような動作を行う。
例えば、第1の記録方式を採用した場合であれば、移動対象のコンテンツのコンテンツIDをキーとしてテープIDを取得し、このテープIDにより先導部Ljの移動先のテープを特定する。そして、コンテンツIDに対応付けられている記録開始位置mjまでテープを進めるコマンドを発行し、これに続けて先導部Ljを書き込む。
また、第2の記録方式を採用した場合であれば、例えばテープドライブに既にロードされているテープを、先導部Ljの移動先のテープとして特定する。そして、コンテンツIDに対応付けられている記録開始位置mjまでテープを進めるコマンドを発行し、これに続けて先導部Ljを書き込む。
【0043】
ところで、本実施の形態では、ステップ203で全コンテンツをテープに移動する際に、第3の記録方式を採用してもよい。
そこで、第3の記録方式にて全コンテンツを記録する際の動作について説明する。
図7は、このときの保存制御部22の動作例を示したフローチャートである。
まず、保存制御部22は、部分領域をカウントするための変数iに「1」を代入し(ステップ221)、コンテンツをカウントするための変数jに「1」を代入する(ステップ222)。以下、i=1,2,3,…Rn、j=1,2,3,…Cnの全ての(i,j)について、次の処理を行う。ここで、Rnはテープ上に設けられた部分領域の数、Cnはテープ上に記録するコンテンツの数を意味する。
【0044】
即ち、まず、保存制御部22は、Pi,jのデータ量bi,jを決定する(ステップ223)。
ここで、i=1であれば、データ量bi,jは、任意に決定してよい。例えば、最小バッファデータ量の20倍とすることが考えられる。尚、最小バッファデータ量とは、上述したエラーチェックを行う単位であるブロックのデータ量である。
また、i>1であれば、データ量bi,jは、
bi,j=bi−1,j+1+(bi−1,j+1−bi−1,j)×Bpl×Ls/Bpps (式3’)
で求められる。ここで、bi−1,j、bi−1,j+1は、部分コンテンツPi−1,j、Pi−1,j+1をテープに書き込んだ際に算出されメモリに記憶されたものを用いるとよい。また、Bpl、Ls、Bppsは、予め与えられた定数である。
【0045】
その後、保存制御部22は、データ抽出部23に対して、コンテンツの先頭からbi,jバイトを部分コンテンツPi,jとして切り出すよう指示する(ステップ224)。すると、データ抽出部23は、指示に応じて部分コンテンツPi,jを切り出し、これを保存制御部22に戻す。
これにより、保存制御部22は、部分コンテンツPi,jを受け取って、テープに書き込むよう入出力部26に指示する(ステップ225)。すると、入出力部26は、部分コンテンツPi,jをテープに書き込むため、テープライブラリ10に出力する。その際、コンテンツIDも部分コンテンツPi,jに付加して書き込まれるものとする。また、保存制御部22は、bi,j、mi,jをメモリに記憶する。尚、mi,jは、mi,j=mi−1,j+(bi−1,j/Bpps)×Lsで求められる。
そして、最後に、保存制御部22は、jがCnよりも小さいかどうかを判定する(ステップ226)。jがCnよりも小さければ、jに「1」を加算して(ステップ227)、ステップ223に戻る。また、jがCnに達していれば、iがRnよりも小さいかどうかを判定する(ステップ228)。iがRnよりも小さければ、テープを先頭からmi+1,1の位置まで走行させるコマンドを発行し(ステップ229)、iに「1」を加算して(ステップ230)、ステップ222に戻る。尚、mi+1,1は、mi+1,1=mi,1+(bi,1/Bpps)×Lsで求められる。
【0046】
次に、コンテンツサーバ20の動作のうち、コンテンツを読み出す際の動作を説明する。
この場合、まず、通信部21がコンテンツの再生要求を受け付ける。尚、このコンテンツの再生要求は、コンテンツの識別情報(コンテンツID)を伴うものとする。そして、通信部21は、そのコンテンツID及び再生要求を再生制御部27に渡す。これにより、再生制御部27の動作が開始する。
【0047】
図8は、再生制御部27の動作例を示したフローチャートである。
再生制御部27は、まず、通信部21からコンテンツの再生要求を受け付ける(ステップ241)。次に、このコンテンツの全体である全コンテンツFjが第1キャッシュ24に記憶されているかどうかを判定する(ステップ242)。
その結果、全コンテンツFjが第1キャッシュ24に記憶されていれば、これを第1キャッシュ24から読み出して、通信部21に渡す(ステップ243)。
【0048】
一方、全コンテンツFjが第1キャッシュ24に記憶されていなければ、再生制御部27は、このコンテンツの先導部Ljが第2キャッシュ25に記憶されているかどうかを判定する(ステップ244)。ここで、先導部Ljが第2キャッシュ25に記憶されていなければ、テープから先導部Ljを読み出すよう入出力部26に指示する(ステップ245)。具体的には、コンテンツIDをキーとして先導部Ljの記録開始位置mjを特定し、そこまでテープを走行させるコマンドと、そこからデータを読み出すコマンドとを発行するよう、入出力部26に指示する。そして、これにより入出力部26が読み出した先導部Ljを取得して第2キャッシュ25に記憶し、これを通信部21にも受け渡す(ステップ246)。また、先導部Ljが第2キャッシュ25に記憶されていれば、そのまま第2キャッシュ25から読み出して、通信部21に受け渡す(ステップ246)。
【0049】
その後、再生制御部27は、このコンテンツの追尾部Tjがステージングバッファ28に記憶されているかどうかを判定する(ステップ247)。ここで、追尾部Tjがステージングバッファ28に記憶されていなければ、テープから追尾部Tjを読み出すよう入出力部26に指示する(ステップ248)。具体的には、コンテンツIDをキーとして追尾部Tjの記録開始位置を特定し、そこまでテープを走行させるコマンドと、そこからデータを読み出すコマンドとを発行するよう、入出力部26に指示する。尚、追尾部Tjの記録開始位置は、kj+(mj−mj−1)/Bplにより求められる。そして、これにより入出力部26が読み出した追尾部Tjを取得してステージングバッファ28に記憶し、これを通信部21にも受け渡す(ステップ249)。また、追尾部Tjがステージングバッファ28に記憶されていれば、そのままステージングバッファ28から読み出して、通信部21に受け渡す(ステップ249)。
【0050】
尚、この動作例では、ステップ248で1つのコンテンツの追尾部を読み出すようにしたが、これには限らない。例えば、複数のコンテンツが図5のようなフォーマットで記録されている場合に、同一テープに記憶された複数のコンテンツの再生要求があった場合に、これらを同時に読み出して再生することもできる。
【0051】
図9は、このときの再生制御部27の動作例を示したフローチャートである。
再生制御部27は、まず、テープから読み出したコンテンツを入出力部26から受け取る(ステップ261)。次に、読み出したコンテンツに付加されたコンテンツIDに基づいて、読み出したコンテンツを蓄積すべきバッファを特定する(ステップ262)。そして、ステップ261で受け取ったコンテンツを、ステップ262で特定したバッファに格納する(ステップ263)。
【0052】
このような動作により、図5の部分領域に記録されたコンテンツごとのデータは、それぞれのデータに対応するコンテンツ用バッファに蓄積される。
図10は、このようなバッファへのデータの読み込みの様子を示したものである。即ち、第1のコンテンツの部分コンテンツP1,1、P2,1、P3,1が、バッファ28aに格納され、第2のコンテンツの部分コンテンツP1,2、P2,2、P3,2が、バッファ28bに格納され、第3のコンテンツの部分コンテンツP1,3、P2,3、P3,3が、バッファ28cに格納されている。尚、この図において、各バッファは、連続アクセスが可能であることを示す概念的な図として示したに過ぎず、各バッファが連続した物理メモリアドレスを持つ必要はない。また、白抜きの矢印は、データが格納される方向を示している。このようにバッファリングがほぼ並行して進行することから、複数のコンテンツの効率的な再生が可能となる。
【0053】
また、再生要求が発生した場合、最初に再生される部分を予めバッファに蓄積しておくこともできる。例えば、図10において、テープの先頭に近い部分領域R1とR2に記録されたデータをメモリバッファに事前蓄積しておいてもよい。この事前蓄積により、テープロード時間等によって発生する再生遅延時間を吸収することが可能となる。
【0054】
ところで、上記説明では、テープ上のデータの記録密度Bpl、テープの走行速度Ls、コンテンツの再生速度Bppsを固定の値とした。しかしながら、必ずしも固定の値にしなくてもよい。例えば、テープ上のデータの記録密度Bpl、テープの走行速度Lsは、コンテンツが記録されるテープによって異なるようにしてもよい。また、コンテンツの再生速度Bppsは、コンテンツによって異なるようにしてもよい。
【0055】
このように、本実施の形態では、第1の記録方式、第2の記録方式、第3の記録方式でテープにコンテンツを記録するようにした。つまり、コンテンツの第1の部分(例えば先導部)の再生の終了までに第1の部分に続く第2の部分(例えば、追尾部)の再生が開始できるように、第1及び第2の部分を記録するようにした。これにより、コンテンツの全ての部分がテープに記録される場合において、コンテンツの再生を開始するまでの時間を短縮することができるようになった。また、その際、第1の部分の再生の終了時期と、第2の部分の再生の準備が整う時期とができるだけ近づくように、第1の部分が再生している間にテープが走行する距離だけ離れた位置に第2の部分を記録することで、第1の部分と第2の部分との間の領域を有効に利用できるようにした。
【0056】
最後に、本実施の形態を適用するのに好適なコンピュータのハードウェア構成について説明する。図11は、このようなコンピュータのハードウェア構成の一例を示した図である。図示するように、コンピュータは、演算手段であるCPU(Central Processing Unit)90aと、M/B(マザーボード)チップセット90bを介してCPU90aに接続されたメインメモリ90cと、同じくM/Bチップセット90bを介してCPU90aに接続された表示機構90dとを備える。また、M/Bチップセット90bには、ブリッジ回路90eを介して、ネットワークインターフェイス90fと、磁気ディスク装置(HDD)90gと、音声機構90hと、キーボード/マウス90iと、フレキシブルディスクドライブ90jとが接続されている。
【0057】
尚、図11において、各構成要素は、バスを介して接続される。例えば、CPU90aとM/Bチップセット90bの間や、M/Bチップセット90bとメインメモリ90cの間は、CPUバスを介して接続される。また、M/Bチップセット90bと表示機構90dとの間は、AGP(Accelerated Graphics Port)を介して接続されてもよいが、表示機構90dがPCI Express対応のビデオカードを含む場合、M/Bチップセット90bとこのビデオカードの間は、PCI Express(PCIe)バスを介して接続される。また、ブリッジ回路90eと接続する場合、ネットワークインターフェイス90fについては、例えば、PCI Expressを用いることができる。また、磁気ディスク装置90gについては、例えば、シリアルATA(AT Attachment)、パラレル転送のATA、PCI(Peripheral Components Interconnect)を用いることができる。更に、キーボード/マウス90i、及び、フレキシブルディスクドライブ90jについては、USB(Universal Serial Bus)を用いることができる。
【0058】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)及びDVDが含まれる。
【0059】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【図面の簡単な説明】
【0060】
【図1】本発明の実施の形態が適用されるコンピュータシステムの全体構成を示したブロック図である。
【図2】本発明の実施の形態におけるコンテンツサーバの機能構成例を示した図である。
【図3】本発明の実施の形態によりデータが記録されたテープのフォーマットの例を示した図である。
【図4】本発明の実施の形態によりデータが記録されたテープのフォーマットの例を示した図である。
【図5】本発明の実施の形態によりデータが記録されたテープのフォーマットの例を示した図である。
【図6】本発明の実施の形態におけるコンテンツサーバのコンテンツ書込み時の動作例を示したフローチャートである。
【図7】本発明の実施の形態におけるコンテンツサーバのコンテンツ書込み時の動作例を示したフローチャートである。
【図8】本発明の実施の形態におけるコンテンツサーバのコンテンツ読出し時の動作例を示したフローチャートである。
【図9】本発明の実施の形態におけるコンテンツサーバのコンテンツ読出し時の動作例を示したフローチャートである。
【図10】本発明の実施の形態による複数のコンテンツのバッファへの読出しの様子を示した図である。
【図11】本発明の実施の形態を適用可能なコンピュータのハードウェア構成を示した図である。
【符号の説明】
【0061】
20…コンテンツサーバ、21…通信部、22…保存制御部、23…データ抽出部、24…第1キャッシュ、25…第2キャッシュ、26…入出力部、27…再生制御部、28…ステージングバッファ
【特許請求の範囲】
【請求項1】
再生されるデータをテープ媒体に書き込む装置であって、
前記テープ媒体に書き込むデータを取得する取得部と、
前記取得部により取得されたデータを前記テープ媒体に書き込む書込み部と、
前記テープ媒体からの前記データの読出し時間を短縮するために当該データとは別に記憶される当該データの先頭部分のデータ量を、当該先頭部分の再生の終了までに当該先頭部分に続く部分の再生が開始できるように決定する決定部と、
前記取得部により取得されたデータから前記決定部により決定されたデータ量の前記先頭部分を抽出する抽出部と、
前記抽出部により抽出された前記先頭部分を記憶する記憶部と
を備えた、装置。
【請求項2】
前記決定部は、前記先頭部分のデータ量を、前記テープ媒体上の当該先頭部分に続く部分が書き込まれた位置に基づいて決定する、請求項1の装置。
【請求項3】
前記書込み部は、前記取得部により取得されたデータが書き込まれた前記テープ媒体に前記先頭部分を書き込む、請求項1の装置。
【請求項4】
前記書込み部は、前記取得部により取得されたデータを前記テープ媒体に当該データよりも前方に空き領域を設けて書き込み、前記先頭部分を当該空き領域に書き込む、請求項3の装置。
【請求項5】
前記書込み部は、前記取得部により取得されたデータが書き込まれた前記テープ媒体とは異なる他のテープ媒体に前記先頭部分を書き込む、請求項1の装置。
【請求項6】
前記書込み部は、前記取得部により取得されたデータを前記テープ媒体に当該データよりも前方に空き領域を設けずに書き込み、前記先頭部分を前記他のテープ媒体に当該先頭部分よりも前に空き領域を設けずに書き込む、請求項5の装置。
【請求項7】
再生されるデータをテープ媒体に書き込む装置であって、
前記テープ媒体に書き込むデータを取得する取得部と、
前記取得部により取得されたデータから第1の部分及び当該第1の部分に続く第2の部分を抽出する抽出部と、
前記第1の部分の再生の終了までに前記第2の部分の再生が開始できるように、前記テープ媒体上の当該第1の部分が書き込まれる位置と当該第2の部分が書き込まれる位置との距離を決定する決定部と、
前記テープ媒体上の所定の位置に前記第1の部分を書き込み、当該所定の位置から前記決定部により決定された距離の間隔を空けた位置に前記第2の部分を書き込む書込み部と
を備えた、装置。
【請求項8】
前記取得部は、前記テープ媒体に書き込むデータとして、第1のデータ及び第2のデータを取得し、
前記書込み部は、前記テープ媒体に対して、前記第1のデータの前記第1の部分の再生の終了までに前記第1のデータの前記第2の部分の再生が開始できるように、前記第1のデータの前記第1の部分及び前記第2の部分を書き込み、前記第2のデータの前記第1の部分の再生の終了までに前記第2のデータの前記第2の部分の再生が開始できるように、前記第2のデータの前記第1の部分及び前記第2の部分を書き込む、請求項7の装置。
【請求項9】
前記決定部は、前記第1のデータの前記第2の部分のデータ量を、前記テープ媒体上の前記第2のデータの前記第1の部分が書き込まれる位置と前記第2のデータの前記第2の部分が書き込まれる位置との距離に基づいて決定し、
前記書込み部は、前記テープ媒体に対して、前記第1のデータの前記第1の部分及び前記第2のデータの前記第1の部分を連続して書き込み、前記第1のデータの前記第2の部分及び前記第2のデータの前記第2の部分を連続して書き込む、請求項8の装置。
【請求項10】
再生されるデータをテープ媒体に書き込む方法であって、
前記テープ媒体に書き込むデータを取得するステップと、
取得された前記データを前記テープ媒体に書き込むステップと、
前記テープ媒体からの前記データの読出し時間を短縮するために当該データとは別に記憶される当該データの先頭部分のデータ量を、当該先頭部分の再生の終了までに当該先頭部分に続く部分の再生が開始できるように決定するステップと、
取得された前記データから、決定された前記データ量の前記先頭部分を抽出するステップと、
抽出された前記先頭部分を所定の記憶手段に記憶するステップと
を含む、方法。
【請求項11】
再生されるデータをテープ媒体に書き込む方法であって、
前記テープ媒体に書き込むデータを取得するステップと、
取得された前記データの第1の部分の再生の終了までに当該第1の部分に続く当該データの第2の部分の再生が開始できるように、前記テープ媒体上の当該第1の部分が書き込まれる位置と当該第2の部分が書き込まれる位置との距離を決定するステップと、
前記テープ媒体上の所定の位置に前記第1の部分を書き込み、当該所定の位置から決定された前記距離の間隔を開けた位置に前記第2の部分を書き込むステップと
を含む、方法。
【請求項12】
再生されるデータをテープ媒体に書き込む装置としてコンピュータを機能させるプログラムであって、
前記コンピュータを、
前記テープ媒体に書き込む複数のデータを取得する取得部と、
前記取得部により取得された複数のデータの各データの第1の部分の再生の終了までに当該第1の部分に続く当該各データの第2の部分の再生が開始できるように、前記テープ媒体上の第1の領域に当該各データの第1の部分を書き込み、前記テープ媒体上の第2の領域に当該各データの第2の部分を書き込む書込み部と
して機能させる、プログラム。
【請求項13】
前記各データの第1の部分は、当該各データの先頭部分であり、
前記書込み部は、前記各データの第2の部分を書き込んだ後、前記テープ媒体上の当該第2の部分が書き込まれた位置に基づいて決定されたデータ量の前記各データの第1の部分を書き込む、請求項12のプログラム。
【請求項14】
前記各データから当該各データの第1の部分及び第2の部分を抽出する抽出部と、
前記各データの第1の部分の再生の終了までに前記各データの第2の部分の再生が開始できるように、前記テープ媒体上の当該第1の部分が書き込まれる位置と当該第2の部分が書き込まれる位置との距離を決定する決定部とを更に備え、
前記書込み部は、前記テープ媒体上の所定の位置に前記各データの第1の部分を書き込み、当該所定の位置から前記決定部により決定された距離の間隔を開けた位置に前記各データの第2の部分を書き込む、請求項12のプログラム。
【請求項1】
再生されるデータをテープ媒体に書き込む装置であって、
前記テープ媒体に書き込むデータを取得する取得部と、
前記取得部により取得されたデータを前記テープ媒体に書き込む書込み部と、
前記テープ媒体からの前記データの読出し時間を短縮するために当該データとは別に記憶される当該データの先頭部分のデータ量を、当該先頭部分の再生の終了までに当該先頭部分に続く部分の再生が開始できるように決定する決定部と、
前記取得部により取得されたデータから前記決定部により決定されたデータ量の前記先頭部分を抽出する抽出部と、
前記抽出部により抽出された前記先頭部分を記憶する記憶部と
を備えた、装置。
【請求項2】
前記決定部は、前記先頭部分のデータ量を、前記テープ媒体上の当該先頭部分に続く部分が書き込まれた位置に基づいて決定する、請求項1の装置。
【請求項3】
前記書込み部は、前記取得部により取得されたデータが書き込まれた前記テープ媒体に前記先頭部分を書き込む、請求項1の装置。
【請求項4】
前記書込み部は、前記取得部により取得されたデータを前記テープ媒体に当該データよりも前方に空き領域を設けて書き込み、前記先頭部分を当該空き領域に書き込む、請求項3の装置。
【請求項5】
前記書込み部は、前記取得部により取得されたデータが書き込まれた前記テープ媒体とは異なる他のテープ媒体に前記先頭部分を書き込む、請求項1の装置。
【請求項6】
前記書込み部は、前記取得部により取得されたデータを前記テープ媒体に当該データよりも前方に空き領域を設けずに書き込み、前記先頭部分を前記他のテープ媒体に当該先頭部分よりも前に空き領域を設けずに書き込む、請求項5の装置。
【請求項7】
再生されるデータをテープ媒体に書き込む装置であって、
前記テープ媒体に書き込むデータを取得する取得部と、
前記取得部により取得されたデータから第1の部分及び当該第1の部分に続く第2の部分を抽出する抽出部と、
前記第1の部分の再生の終了までに前記第2の部分の再生が開始できるように、前記テープ媒体上の当該第1の部分が書き込まれる位置と当該第2の部分が書き込まれる位置との距離を決定する決定部と、
前記テープ媒体上の所定の位置に前記第1の部分を書き込み、当該所定の位置から前記決定部により決定された距離の間隔を空けた位置に前記第2の部分を書き込む書込み部と
を備えた、装置。
【請求項8】
前記取得部は、前記テープ媒体に書き込むデータとして、第1のデータ及び第2のデータを取得し、
前記書込み部は、前記テープ媒体に対して、前記第1のデータの前記第1の部分の再生の終了までに前記第1のデータの前記第2の部分の再生が開始できるように、前記第1のデータの前記第1の部分及び前記第2の部分を書き込み、前記第2のデータの前記第1の部分の再生の終了までに前記第2のデータの前記第2の部分の再生が開始できるように、前記第2のデータの前記第1の部分及び前記第2の部分を書き込む、請求項7の装置。
【請求項9】
前記決定部は、前記第1のデータの前記第2の部分のデータ量を、前記テープ媒体上の前記第2のデータの前記第1の部分が書き込まれる位置と前記第2のデータの前記第2の部分が書き込まれる位置との距離に基づいて決定し、
前記書込み部は、前記テープ媒体に対して、前記第1のデータの前記第1の部分及び前記第2のデータの前記第1の部分を連続して書き込み、前記第1のデータの前記第2の部分及び前記第2のデータの前記第2の部分を連続して書き込む、請求項8の装置。
【請求項10】
再生されるデータをテープ媒体に書き込む方法であって、
前記テープ媒体に書き込むデータを取得するステップと、
取得された前記データを前記テープ媒体に書き込むステップと、
前記テープ媒体からの前記データの読出し時間を短縮するために当該データとは別に記憶される当該データの先頭部分のデータ量を、当該先頭部分の再生の終了までに当該先頭部分に続く部分の再生が開始できるように決定するステップと、
取得された前記データから、決定された前記データ量の前記先頭部分を抽出するステップと、
抽出された前記先頭部分を所定の記憶手段に記憶するステップと
を含む、方法。
【請求項11】
再生されるデータをテープ媒体に書き込む方法であって、
前記テープ媒体に書き込むデータを取得するステップと、
取得された前記データの第1の部分の再生の終了までに当該第1の部分に続く当該データの第2の部分の再生が開始できるように、前記テープ媒体上の当該第1の部分が書き込まれる位置と当該第2の部分が書き込まれる位置との距離を決定するステップと、
前記テープ媒体上の所定の位置に前記第1の部分を書き込み、当該所定の位置から決定された前記距離の間隔を開けた位置に前記第2の部分を書き込むステップと
を含む、方法。
【請求項12】
再生されるデータをテープ媒体に書き込む装置としてコンピュータを機能させるプログラムであって、
前記コンピュータを、
前記テープ媒体に書き込む複数のデータを取得する取得部と、
前記取得部により取得された複数のデータの各データの第1の部分の再生の終了までに当該第1の部分に続く当該各データの第2の部分の再生が開始できるように、前記テープ媒体上の第1の領域に当該各データの第1の部分を書き込み、前記テープ媒体上の第2の領域に当該各データの第2の部分を書き込む書込み部と
して機能させる、プログラム。
【請求項13】
前記各データの第1の部分は、当該各データの先頭部分であり、
前記書込み部は、前記各データの第2の部分を書き込んだ後、前記テープ媒体上の当該第2の部分が書き込まれた位置に基づいて決定されたデータ量の前記各データの第1の部分を書き込む、請求項12のプログラム。
【請求項14】
前記各データから当該各データの第1の部分及び第2の部分を抽出する抽出部と、
前記各データの第1の部分の再生の終了までに前記各データの第2の部分の再生が開始できるように、前記テープ媒体上の当該第1の部分が書き込まれる位置と当該第2の部分が書き込まれる位置との距離を決定する決定部とを更に備え、
前記書込み部は、前記テープ媒体上の所定の位置に前記各データの第1の部分を書き込み、当該所定の位置から前記決定部により決定された距離の間隔を開けた位置に前記各データの第2の部分を書き込む、請求項12のプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2009−205719(P2009−205719A)
【公開日】平成21年9月10日(2009.9.10)
【国際特許分類】
【出願番号】特願2008−45096(P2008−45096)
【出願日】平成20年2月26日(2008.2.26)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【復代理人】
【識別番号】100104880
【弁理士】
【氏名又は名称】古部 次郎
【復代理人】
【識別番号】100118201
【弁理士】
【氏名又は名称】千田 武
【復代理人】
【識別番号】100118108
【弁理士】
【氏名又は名称】久保 洋之
【Fターム(参考)】
【公開日】平成21年9月10日(2009.9.10)
【国際特許分類】
【出願日】平成20年2月26日(2008.2.26)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【復代理人】
【識別番号】100104880
【弁理士】
【氏名又は名称】古部 次郎
【復代理人】
【識別番号】100118201
【弁理士】
【氏名又は名称】千田 武
【復代理人】
【識別番号】100118108
【弁理士】
【氏名又は名称】久保 洋之
【Fターム(参考)】
[ Back to top ]