(第1の実施の形態)
図1は、本発明の第1の実施の形態であるデータ流通システムのブロック図を示す。データ販売機101は店舗等のユーザーが比較的自由に利用可能な適当な設置場所に置かれて、ユーザが持参したミニディスク(MD)、メモリカードのようなメモリ手段に、電子化された書籍データを書き込んで販売することを想定するが、このような想定、以下の各構成要素の具体的な仕様、細部の構成およびデータ構造は、あくまでも説明のための例であり、この発明の範囲を限定するものではない。
データ販売機101は、データ選択装置102、データソース選択装置103、データ受信装置104、データ更新装置105、課金装置106、表示装置108、データ情報テーブル109、データレートテーブル110を備えている。ここで、データ更新装置105は、ミニディスク107の書き込みあるいは書き換えを行う。データ受信装置104は、4つのデータソース、ここでは第1のデータ衛星111、第2のデータ衛星112、第1のデータサーバ113、第2のデータサーバ114に接続され、データを受信する。本来データ販売機101は複数台あっても差し支えないが、1台でも特に動作に重要な違いはないので、以下では1台のデータ販売機101を持つデータ流通システムについて説明する。
以下、ユーザがデータ販売機101を使用して、データを購入する際のデータ流通システム全体の処理の流れを図2のフローチャートに沿って説明する。
まず、ユーザがデータ更新装置105に、ユーザが持参したミニディスク107を挿入する(ステップS201)と、データ選択装置102は、データ情報テーブル109に格納されている図3に例を示すデータ情報テーブル109の内容の一部を取り出して、表示装置108に表示する(ステップS202)。この例では、データ情報テーブル109は、選択可能なデータの数を表すデータ数フィールド301と、データ数フィールド301があらわす数だけ存在する、各データの名称を示す名称フィールド302、各データの販売価格を示す価格フィールド303、各データが存在するデータソースを示すデータソースフィールド304、および各データの容量をバイトで表した容量フィールド305からなる。
データ数フィールド301は、選択可能なデータの数を2バイトの符号なし整数で表し、名称フィールド302はここでは1つのデータにつき16文字のシフトJISコードで格納されているとする。ただし、データの名称が16文字を本来超える場合は、最初の16文字が格納され、16文字に満たない場合は0で埋められているとする。価格フィールド303は各データの価格を2バイトの符号なし整数で表している。データソースフィールド304は、データ数フィールド301であらわされる数だけある各データごとに、各データソースに対応するビットが割り当てられており、「1」のビットはそのデータソースに該当データが存在すること、「0」のビットは、存在しないことを示す。データソースフィールド304はデータソースが新たに該当のデータが用意されると、更新される。容量フィールド305は各データのバイト単位の容量を4バイトの符号なし整数で表している。ただし図3では整数はすべて10進で、シフトJISコードは対応する漢字に直して図示した。
図4は表示装置108の表示例およびデータ選択装置102が備える、前項目スイッチ401、次項目スイッチ402、決定スイッチ403および取り消しスイッチ404の外観図である。現在選択対象になっているデータの名称及び販売価格が、長方形で囲まれて、あるいは反転表示して、各データごとに表示される。前項目スイッチ401が押されると、選択対象データは現在選択対象になっているデータの上隣に表示されているデータに切り替えられる(ステップS203)。次項目スイッチ402が押されると、選択対象データは現在選択対象となっているデータの下隣に表示されているデータに切り替えられる(ステップS204)。決定スイッチ403が押されると、データ選択装置102は、その時点で選択対象になっていたデータ、つまりユーザが購入しようとしているデータがどれであるかをデータソース選択装置103に伝える(ステップS205)。取り消しスイッチ404については後述する。
さて、データ情報テーブル109は、データ選択装置102とデータソース選択装置103で共有されているので、データ選択装置102からデータソース選択装置103に伝える必要があるのは、データ情報テーブル109の何番目にあるデータが選択されたかという情報のみである。データソース選択装置103は、データ情報テーブル109の、データソースフィールド304を参照して、選択されたデータが、どのデータソースに存在するかを調べ(ステップS206)、選択されたデータが存在するデータソースについて、そこからデータを取り出した場合の所要時間はどれほどかという情報をデータレートテーブル110から取り出して、その中でもっともデータレートの高い、すなわち転送に要する所要時間が平均的に最も短いデータソースを選択する(ステップS207)。
データレートテーブル110の例を図5に示す。各データソースごとの、データレートがここでは秒あたりの転送ビット数で表されている。ただし、ここであげた数値は説明のためであり、現在の技術による標準的な数値を必ずしも表してはいない。データレートはデータソースの技術革新、使用技術により更新されるものである。即ち、データ情報テーブル109、データレートテーブル110によって、各データソースで供給可能なデータや各データソースのデータレートを管理する利点について説明すると、もし各データソースで供給可能なデータや各データソースのデータレートが固定したものであれば、データごとに最速なデータソースを選択することは固定的に結線されたハードウエアでも可能であるが、実際には各データソースから供給可能なデータの内容、価格などは変化しうるため、データ情報テーブル109、データレートテーブル110の内容を変更するだけでそのような変化に対応できるようにしたのである。ここでは詳述しないが、データ情報テーブル109、データレートテーブル110を容易に書き換えられる方法として、フロッピーディスクから新しいテーブルの内容を読み取る、あるいは各データソースからそのデータソースに対応するテーブルの部分を適切なタイミングで送信するなどの方法を用いて、テーブルの更新を行なうことも考えられる。
この例では、データソースとしては、第1のデータ衛星111、第2のデータ衛星112、第1のデータサーバ113、第2のデータサーバ114の4つがあり、この順で、データレートがデータレートテーブル110に書かれているとする。各データソースは、第1のデータ衛星111、第2のデータ衛星112はもちろん、第1のデータサーバ113、第2のデータサーバ114も、データ受信装置102から物理的に遠く隔たった地点に存在していても良い。第1のデータ衛星111、第2のデータ衛星112は、データを電波によってデータ受信装置102に送信し、第1のデータサーバ113、第2のデータサーバ114は、データ受信装置104と高速電話回線で結ばれているとするが、このような通信手段はデータソースや用いられる技術によって他にも種々のものがありうるのはもちろんのことである。
各データソースは、データ販売機101と同一の構成を持った、別のデータ販売機101’、101”…とも同様に交信を行なうとする。各データソースの所有者が同一である必要はなく、また各データ販売機101、101’、101”…の所有者も各データソースの所有者と異なっても良い。
各データ販売機101、101’、101”…の動作は全く同一のため、以下、1台のデータ販売機101と各データソースの動作についてのみ述べる。
ここで、データソースが通常のDRAMメモリ、ハードディスクなど、日常的な意味での通信を行なわない装置である場合について付言すれば、このような場合も、メモリやハードディスクのインターフェースをデータ受信装置104とみなすことができるので、データソースがこのような機器であったとしても、本発明の範疇から外れるものではないのは明らかである。
例えば、データ情報テーブル109における2番目のデータがユーザに選択されたとすると、データソース選択装置103は、データ情報テーブル109のデータソースフィールド304から、それが2番目のデータソースと3番目のデータソース、すなわち第2のデータ衛星112と第1のデータサーバ113にあることを知り、次にデータレートテーブル110を参照して、どのデータソースから得るのがもっとも速いかを調べる。図5の例では、第2のデータソースのデータレートが、第3のデータソースのデータレートより遥かに大きい、すなわち第2のデータ衛星112のデータレートが第1のデータサーバ113によるデータレートより遥かに大きいため、データソース選択装置103は、第2のデータ衛星115をデータソースとして選択するのである。
次いで、データソース選択装置103は、選択されたデータソースからデータ受信装置104を介してデータを受信する(ステップS208)。このとき、データ受信装置104が、選択されたデータソースに対して、データの要求を送信する必要があるかどうかは、データソースに依存する。
例えば、図6で示すように、時分割式で、「フランダースの犬」「我輩は猫である」「オッペルと象」・・・・・のように一定時間単位のデータが繰り返し発信されるようなデータソースであれば、データの要求を送信する必要はなく、所望のデータが送信されるまで受信データを読み捨てれば良く、必要なデータのみを受信する。データ衛星など、送信が非常に高速であるが、個別の宛先に応じた内容の送信が難しいデータソースではこのような方法は現実的である。ただし、データレートテーブル110に格納する数値は、このような所望のデータが送信されるまでの平均待ち時間を考慮したものにする必要がある。ここでは、第1のデータ衛星111、第2のデータ衛星112は、このようにしてデータ受信装置104にデータの送信を行なうものとする。このようなものではなく、要求があって初めてデータが送出されるようなデータソースについては、データの要求がデータ販売機101からデータソースに対して発行される必要がある。ここでは、第1のデータサーバ113、第2のデータサーバ114はそのようなデータソースとする。
このようなデータソースに対しては、データ販売機101から、何らかの形でデータソースへの送信手段が必要となる。ここでは、第1のデータサーバ113または第2のデータサーバ114からデータ受信装置104がデータを受信する際は、データ受信装置104から第1のデータサーバ113または第2のデータサーバ114へデータの要求が、送信されるとする。
データ受信装置104によるデータの指定が、第1のデータサーバ113と第2のデータサーバ114に理解される必要があるので、ここでは、第1のデータサーバ113と第2のデータサーバ114にも、データ情報テーブル109のコピー109’、109”を持たせておき、データ受信装置104による第1のデータサーバ113または第2のデータサーバ114に対するデータの要求は、データ情報テーブル109の何番目のデータであるかをデータ受信装置104がこれらのデータソースに送信することで行なう。
このようにして、いずれの場合にも、データ受信装置104は、ユーザが所望のデータをデータソース選択装置103が最適と判定するデータソースから得ることができる。
データ選択装置102は、表示装置108に、データ情報テーブル109から得たデータの価格を表示する。(ステップS209)。ユーザは表示装置108に表示された金額を課金装置106に投入するか、取り消しスイッチ404を押す。
取り消しスイッチ404が押された場合は、データ更新装置112からはミニディスク107が排出され、データ販売機101は再びユーザがミニディスクを挿入するのを待つ状態になる(ステップS210)。
課金装置106に定められた金額が投入された場合は、データ受信装置104は、送られたデータを、データ更新装置105に転送する(ステップS211)。データ更新装置105は、送られたデータをミニディスク107に書き込む(ステップS212)。次にデータ更新装置105は、ミニディスク107を排出して、データ販売機101は再びユーザがミニディスクを挿入するのを待つ状態になる(ステップS210)。
なお、この例では電子化された書籍データを扱っているが、その電子化の形態についてはこれまで述べなかった。しかし、文書データを電子化することはすでに広く行なわれており、そのような方法の一例として、テキストデータであればシフトJISにてコード化することができるし、画像データとして、スキャナで入力することで電子化することができるが、本発明はそのような電子化の方法、データ形式に関わりなく適用されうるものである。これまで述べてきたデータ販売機101の説明は書籍データを楽曲データ、画像データ、動画データ、商業データ、コンピュータソフト、ゲームソフトなどに置き換えても成り立ち、したがって書籍データに用途は限定されないことも明らかである。また、データ記憶装置として、フロッピーディスク、メモリカード、光磁気ディスクなど、ミニディスク以外の記憶メディアを用いても差し支えない。
また、データを再生するための再生装置が、上記のデータ記憶装置と一体化した形態であっても構わないのももちろんのことである。
(第2の実施の形態)
第2の実施の形態は、前記第1の実施の形態とほぼ同じで、データ販売機701の中にデータバッファリング装置715を備え、他のデータソースからデータ受信装置704が受信したデータのうち、所定の基準に基づいて選ばれたデータがデータバッファリング装置715に格納され、データバッファリング装置715をデータソースの一種と見なすことを特徴とする。以下特徴を説明する。なお、以下の各構成要素の具体的な仕様、細部の構成およびデータ構造は、あくまでも説明のための例であり、本発明の範囲をこれに限定するものではない。
図7は、第2の実施の形態である、データ流通システムのブロック図を示す。データバッファリング装置715を備える以外は第1の実施の形態で述べたデータ流通システムと同様で、図1の100台を700台に変えて図示する。なお、データバッファリング装置715をデータソースと見なす場合、データ受信装置704との間で必ずしも日常的な意味の通信を行なうわけではないが、そのような場合も両者の間のインターフェースがデータ受信装置704を構成すると見なすことができる。
データバッファリング装置715は、より具体的には、図8に示されるように、コントローラ801、バッファメモリ802および時計803からなる。時計803は、年月日、時分秒を持っているものとする。コントローラ801は、バッファメモリ802に格納するデータを選ぶとともに、バッファメモリ802に格納されたデータを管理し、およびデータ情報テーブル709およびデータレートテーブル710の書き換えを、後述するように必要に応じて行なう。
データ情報テーブル709とデータレートテーブル710の例をそれぞれ図9および図10に示す。図3および図5で示したものとの相違は、データ情報テーブル709には、データ選択装置702にて選択された回数を示す選択回数フィールド906、および最後に選択された時刻を示す選択時刻フィールド907が追加されていること、データ情報テーブル709とデータレートテーブル710双方とも、データソースとして、データバッファリング装置715が追加されていることである。その他は300台と900台を対応させて示している。なお、データ情報テーブルの、データバッファリング装置715に対応するビットは、データ販売機701が起動されたときは、どのデータに対しても「0」となっているとする。また、データレートテーブル710の、データバッファリング装置715に対応するデータレートは、非常に高い値、つまり非常に転送が高速であることを示す値「900000」を格納しておく。もちろん、データバッファリング装置715からデータ受信装置704にデータを転送する際の実測データレートの平均的な値を格納しておいても差し支えない。
データ流通システム全体の、データソース選択装置703でデータが選択されるまでの動作は第1の実施の形態で述べたデータ販売機101と同じである。
以下、データバッファリング装置715の動作を図11のフローチャートに沿って説明する。
ここでは、コントローラ801は、データ選択装置702で選択される回数が多いものを優先してバッファメモリ802に格納することを仮定する。
データバッファリング装置715は、データソース選択装置703で新たなデータが選択されると、データ情報テーブル709の、該当データに対応する選択回数フィールド906に1を加え(ステップS1101)、対応する選択時刻フィールド907に、時計803から得られる現在の時刻を書き込む(ステップS1102)。
次に、該当データがバッファメモリ802にあるかどうかによって、以下のいずれかの動作を行なう。ただし、該当データがバッファメモリ802に存在するかどうかは、データ情報テーブル709のデータソースフィールド904を参照することで判定できる。すなわち、データバッファリング装置715に対応するビットが「1」であれば、該当データはデータバッファリング装置715、つまりバッファメモリ802に存在するし、「0」であれば存在しない。図9の例では「オッペルと象」がバッファメモリ802に存在することを表している。「フランダースの犬」「我輩は猫である」はバッファメモリ802に格納されていないことが分かる。
データバッファリング装置715に該当データが存在する場合は、データバッファリング装置715の処理は終了する(ステップS1103)。
該当データがバッファメモリ802になかった場合、コントローラ801は、選択回数が該当データより多いデータがすべてバッファメモリ802に格納されているかどうかによって以下のいずれかの動作を行なう。ただし、この判定は、選択回数フィールド906と、データソースフィールド904を参照して、選択回数が該当データより多く、かつデータソースフィールド904の、データバッファリング装置715に対応するビットに「0」が立っているようなデータがない場合に、選択回数が該当データより多いデータはすべてバッファメモリ802に格納されていると判定することで行なえる。すなわち選択回数が該当データより多いデータはすべてバッファメモリ802に格納されている場合は、該当データはバッファメモリ802に新たに格納される資格があるといえる。このときは、コントローラ801は、バッファメモリ802に該当データを格納する余裕があるかどうかを調べるため、現在のバッファメモリ802の使用量Uを算出する(ステップS1104)。ここでは、バッファメモリ802に、各データはバイト単位で図12のように、4バイト符号なし整数でデータのバイト数を表すデータ容量1201、データ本体1202の順で格納されており、以下、データの数だけ同じ構造が、データ容量1201’、データ本体1202’、データ容量1201”、データ本体1202”の順で繰り返され、異なるデータの間に空きは作らないとする。このときのバッファメモリ802の使用量Uは、U=8*データ数+各データの容量の和で得られ、データ数および各データの容量はデータ情報テーブル709のデータ数フィールドおよび容量フィールドから容易に得られるので、このような計算は可能である。
次に、コントローラ801は、使用量Uと該当データの容量Dの和とバッファメモリ802の容量Bを比較して、その結果によって以下の動作を行う。
U+D<=Bのときは、新たにバッファメモリ802に該当データを登録することに何の問題もない。バッファメモリ802の、使われていない最初のアドレスから、該当データのデータ容量1201を書き込み(ステップS1105)、続いて該当データのデータ本体1202を書き込み(ステップS1106)、データ情報テーブル709の該当データのデータソースフィールド904の、データバッファリング装置715に対応するビットを「1」にして(ステップS1107)、データバッファリング装置715の処理は終了する(ステップS1103)。
U+D>Bのときは、新たにバッファメモリ802に該当データを登録するにはバッファメモリ802の残りの容量Bが不足している。コントローラ801は、データ情報テーブル709の、選択回数フィールド906とデータソースフィールド904を参照して、選択回数が該当データより少なく、しかもデータソースフィールド904の、データバッファリング装置715に対応するビットに「1」が立っている、つまりバッファメモリ802に存在するデータ(以下「置き換え対象データ」と呼ぶ)があるかどうかによって、以下の動作を行う。
置き換え対象データが存在しない場合は、データバッファリング装置715の処理は終了する(ステップS1103)。
置き換え対象データがあった場合、コントローラ801は置き換え対象データ(複数個ある可能性に注意)の容量Tを、T=8*置き換え対象データの数+各置き換え対象データの容量の和で求める(ステップS1108)。置き換え対象データは上に述べた通り、データ情報テーブル709の選択回数フィールド906と、データソースフィールド904を参照して得られるので、対象データの容量Tの計算に必要な置き換え対象データの数と、各置き換え対象データの容量の情報が、データ情報テーブル709のデータソースフィールド904、容量フィールド905、選択回数フィールド906の情報から得られるのは明らかである。対象データの容量Tは、該当データによって、置き換えてもよいデータのバッファメモリ802上で占める容量を示している。そこで、T<Dが成り立つかどうかによって、以下の動作を行なう。
T<Dが成り立つときには、置き換え対象データを該当データで置き換えることは不可能なので、データバッファリング装置715の処理は終了する(ステップS1103)。
T<Dが成り立たないときには、コントローラ801は、データ情報テーブル709を参照して、B−U>=Dとなるまで、各時点でバッファメモリ802に存在するうちで容量が最小の置き換え対象データをバッファメモリ802から削除して(ステップS1109)、これによってできたバッファメモリ802の空きを詰め(ステップS1110)、データ情報テーブル709の、データソースフィールド904の、バッファメモリ802から削除された置き換え対象データに対応するビットを「0」にセットする(ステップS1111)。その後コントローラ801は、バッファメモリ802の、使われていない最初のアドレスから、該当データのデータ容量1201を8バイトで書き込み(ステップS1105)、続いて該当データのデータ本体1202を書き込み(ステップS1106)、データ情報テーブル709の該当データのデータソースフィールド904の、データバッファリング装置715に対応するビットを「1」にして(ステップS1107)、データバッファリング装置715の処理は終了する(ステップS1103)。
データバッファリング装置715の処理が終了した後のデータ流通システムの動作は、データレートテーブル710の内容に応じて、データソース選択装置703が最適なデータソースを選択するところを含めて、これ以降、データソース選択装置703で再びデータが選択されるまでの動作は、第1の実施の形態と同じである。ただし、所望のデータがデータバッファリング装置715に存在する場合は、データバッファリング装置のデータレートとして、データレートテーブル710にある数値が十分に高いものであれば、データソースとしてデータバッファリング装置715が選ばれる点は異なる。
また、コントローラ801が、バッファメモリ802に格納するデータを選ぶ基準としては上で述べたもの以外にも、種々のものが考えられる。上で述べたものは、データ選択装置702で選択される回数が多いものを優先してバッファメモリ802に格納し、バッファメモリ802がいっぱいになったときは、データ選択装置702で選択される回数の少ないものからバッファメモリ802から消去する、言い換えればデータ選択装置702で選択される回数が多いものを優先する制御であったが、データの容量が大きいものを優先する制御、伝送1回にかかる時間、選択される回数とデータの容量の積が大きいものを優先する制御、または最後に選択された時刻が後のものを優先する制御は、図9に示したデータ情報テーブル709の例にある情報のみであきらかに実現可能である。
また、バッファメモリ802の空き領域が少なくなったとき、消去するデータを選ぶ基準は、データ容量、1回の伝送ににかかる時間、選択された回数、最後に選択されてからの経過時間のいずれかまたは全てから選択される。バッファメモリに格納しない時にデータソースからデータ受信装置に転送するのにかかる転送時間が大きいデータを優先する制御は、容量フィールド905から各データの容量、データソースフィールド904からそれが存在するデータソース、データレートテーブル710にある、各データソースのデータレートを取り出し、各データの容量と各データが存在するデータソースのデータレートの積を算出して比較することで可能である。これ以外にも、適切な情報を保持して使用することで、種々の基準が可能になるのはもちろんのことである。
(第3の実施の形態)図13は第3の実施の形態であるデータ流通システムのブロック図を示す。第3の実施の形態も第1の実施の形態と基本的に類似しており、対応部分には100台を1300台に変えて図示する。第3の実施の形態は、データ選択装置1302に、データスケジュール表1313と時計1314が備わること、データソースが、第1のデータ衛星1310、第2のデータ衛星1311、第3のデータ衛星1312となっており、データレートテーブルを欠いていることを特徴とする。第3の実施の形態では第1のデータ衛星1310、第2のデータ衛星1311、第3のデータ衛星1312の複数のデータソースが、書籍1冊分単位に時分割式に同じデータを時間をずらして送信しており、データソース選択装置1303は、データ選択装置1302にて選択されたデータを最も早く得られるようなデータソースを選択する特徴を持つ。なお、以下の各構成要素の具体的な仕様、細部の構成およびデータ構造は、あくまでも説明のための例であり、本発明の範囲をこれに限定するものではない。
図14は、データスケジュール表1313の例である。ただし、ここでは一部を図示した。図示するように、図中、同一の名称を持ったデータは、同じ内容を持つとし、「我輩は猫である」「オッペルと象」「フランダースの犬」の順に書籍1冊分をデータ伝送している。各データによって、一回の送信に要する時間が異なるのは、データの長さが異なることを反映したものである。この例では、各データソースは、同一の順序で時分割式にデータを送信しているが、もちろんこれは必須ではなく、データ選択装置1302で選択されたデータが各データソースからいつ送信されるかという情報がデータスケジュール表1313から得られるようになってさえいれば良いし、そのような情報が、時刻から計算するなどの別の方法で得られるのであれば、データスケジュール表1313のようなテーブルを持つ必要もない。いずれにしろ、ここでは第1のデータ衛星1310、第2のデータ衛星1311および第3のデータ衛星1312は、図14に示したデータスケジュール表1313に沿ってデータを時分割で送信しているとする。
データソースとしては、時分割で送信されているものであればデータ衛星でなくても良く、またデータソースの数もこの例では3つであるが、これに限るものでないのはもちろんである。データ選択装置1302で、データが選択されるまでのデータ流通システムの動作は第1の実施の形態と同様である。データソース選択装置1303は、データスケジュール表1313と時計1314を参照して、選択されたデータが現在の時刻から見て最も早く送信されるデータソースを選択する。例えば、時計1314から得た時刻が15:11であるときに「フランダースの犬」という名称を持ったデータが選択されたとすると、データソース選択装置1303は、データスケジュール表1313を参照して、第1のデータ衛星1310が選択されたデータを次に送信開始する時刻15:19、第2のデータ衛星1311が選択されたデータを次に送信開始する時刻15:17、第3のデータ衛星1312が選択されたデータを次に送信開始する時刻15:21を比較して、第2のデータ衛星が選択されたデータを次に送信開始する時刻が現在の時刻ともっとも近いため、第2のデータ衛星をデータソースとして選択するのである。なお、15:11には、第3のデータ衛星1312から、「フランダースの犬」が送信中であるが、このデータを先頭から、第3のデータ衛星1312から、受信するためには、送信が開始される時刻である15:21まで待つ必要がある。
途中からデータを受信した後、先頭からすでに受信したところまでの部分を再び探してもっとも早く送信されるデータソースを探して受信するような制御を行なう場合はこの限りではなく、このような場合も本発明の範囲内であるのももちろんである。
これ以降、次にデータが選択されるまでのデータ流通システムの動作は、データソースの違いを除いて第1の実施の形態と同様である。
なお、ここまでの説明では、各データソースからの送信開始時刻から、データ受信装置1304においてデータが受信されるまでに要する時間(以下、通信時間)は各データソースにおいて有意な差はないとの仮定の下、所望のデータの次の送信開始時刻がもっとも早いデータソースをデータソース選択装置1303が選択するとしたが、各データソースにおける通信時間の差が無視できない場合は、データ受信装置1304がデータスケジュール表1313から、各データソースごとに所望のデータの次の送信開始時刻を得た後、各データソースごとの通信時間を、各データソースも送信開始時刻に加えてから、送信開始時刻を比較することも考えられる。この場合は、実質的には各データソースにおける送信の終了する時刻、またはデータ受信装置1304において受信が終了する時刻を比較していることになる。
(第4の実施の形態)
図15は、第4の実施の形態であるデータ流通システムのブロック図を示す。第4の実施の形態は、第1の実施の形態のデータ流通システムと類似しており、特徴はデータソースが、各データを時間単位に時分割式に、ブロックに分けて送出し、データ選択装置1502によって選択される回数が多いデータほど、送信時間が多く割り当てられるようにすることで、選択された際に少ない待ち時間でデータ販売機1501でデータが得られるようにする点にある。その他、図1と対応する部分には100台を1500台に変えて図示する。以下、特に断らない部分は、第1の実施の形態で述べたものとデータソースの違いを除いて同様とする。なお、以下の各構成要素の具体的な仕様、細部の構成およびデータ構造は、説明のための一例であり、本発明の範囲をこれに限定するものではない。
また、以下では「選択データ」という呼称で、データ選択装置1502で選択される選択単位を表す。これはデータを分割して作ったブロックの中のヘッダ部に対するデータ部と区別するためである。この例では、後の説明に出てくる「我輩は猫である」や「フランダースの犬」がそれぞれ1つの選択データである。
第4の実施の形態ではデータソースはデータサーバ1511のみとなっているが、これは以下の説明を必要以上に複雑にしないためであり、複数あっても差し支えない。また、この例のように、データソースが1つしかない場合、データソース選択装置1503、データレートテーブル1510は省略可能であるが、データソースが複数になっても最小限の変更で済むようにするために入れた。
データ情報テーブル1509の例を図16に示す。図3と対応する部分には300台を1600台に変えて図示する。選択データが名称フィールド1602に示すように、2種類となっており、データソースフィールド1604に示すように、データソースが1種類となっている以外は、第1の実施の形態における図3に示すデータ情報テーブル109の内容と同一である。選択データを2種類にしたのも、以下の説明を簡潔にするためであり、3種類以上あっても全く差し支えない。データサーバ1511はデータ情報テーブルのコピー1509”に加えて、データスケジュール管理テーブル1512を持つ。
データサーバ1511からは、データ受信装置1504に対して、図17に例を示すようなブロックに分けられたデータが時分割式に送信される。図17では、1つのブロックは、データ番号フィールド1701、ブロック番号フィールド1702、ブロック数フィールド1703、データ長フィールド1704およびデータ本体1705からなる。データ番号フィールド1701は、データ情報テーブル1509に、各データに関する情報が並んでいる順番に1、2、3…と各データに番号を付けたときの番号でデータを指定しているものであり、2バイト整数とする。ブロック番号フィールド1702は、そのデータの中の何番目のブロックかを表す2バイト整数、ブロック数フィールド1703はそのデータがいくつのブロックからなるかを表す2バイト整数である。
したがって、ブロック数フィールド1703は、データ番号フィールド1701と同じであれば、同じ値を持つ。データ本体1705は、バイト単位で、分割されたデータそのものであり、データ長フィールド1704は、データ本体1705の長さをバイト単位で表す4バイト整数である。ここでは、データ長フィールド1704は、データの先頭ブロック(ブロック番号フィールド=1)から最終ブロック(ブロック番号フィールド=ブロック数フィールド)の1つ前のブロックまでは、どの選択データについても、データ長フィールドは共通の値を持たせるとする。以下この数値を標準ブロックサイズと呼び、ここでは4KBとする。最終ブロックについてはデータ全体の長さを標準ブロックサイズで割った余りのバイト数とする。したがって、ここでは、データ長フィールド1704は、最終ブロック以外はすべて共通の値4KB(4096)を持っていることになる。
図17では、数値はすべて10進で図示しており、各数値としては図16のデータ情報テーブルの例における「フランダースの犬」の3番目のブロックに適合する値が入っている。すなわち、データ番号フィールド1701には、「フランダースの犬」が、データ情報テーブル1509における、1番目のデータなので、1が、ブロック番号フィールド1702には、3番目のブロックなので3が、格納される。ブロック数フィールド1703には、「フランダースの犬」がデータ情報テーブル1509の容量フィールド1605によれば14636バイトの容量を持つので、14636÷1ブロックの長さ4096(バイト)≒3.57より4が、データ長フィールド1704には、最終ブロックではないので4096が、それぞれ格納されている。
データスケジュール管理テーブル1512の構成例を図18に示す。選択頻度フィールド1801は、各選択データがデータ選択装置1502で選択された頻度が格納されており、データ流通システム稼動開始時はすべて0に初期化されているとする。割り当てブロック数フィールド1802は、各選択データに割り当てられたブロック数を、ここでは100ブロックのうちのいくつが割り当てられるかで示している。この値の決定方法については後述する。データ長フィールド1803は、各選択データごとに、標準ブロックサイズを与えるものであり、この例では、上に述べたように、各選択データのどれについても4096が格納されている。逆にいうと、この例ではデータ長フィールド1803は必ずしも必要ではないが、あえて設けたのは、後述の実施の形態についての説明で用いるためである。データ長フィールド1803は、各選択データを分割したブロックのデータ長フィールド1704と、各選択データの最終ブロック以外では一致する。また、データ情報テーブル1509とデータスケジュール管理テーブル1512の要素は同じデータに対応する部分が同じ順番にくるように並んでいるとする。「フランダースの犬」は14636(バイト)÷4096(バイト)≒3.57より上述のように4つのブロックに分けられ、「我輩は猫である」は31744(バイト)÷4(バイト)=7.75より8つのブロックに分けられる。各選択データとも最後のデータブロックが送出されると、再び最初のブロックから送信される。図19に示したように、時間あたりの送出されるブロック数を選択データの間で均等にすると、「我輩は猫である」全体を受信するには、約15ブロックが送出される間待つ必要があり、「フランダースの犬」全体の受信には約7ブロックの送出を待つ必要がある。ただし、待ち時間の計算は、最終ブロックの長さが他のブロックと一般には異なることは考慮していない(以下同様)。
1つのブロックの送受信にかかる時間は選択データに大きくは依存しないと考えられるので、これはそのまま待ち時間の比を表すと見てよい。ここで、仮に「我輩は猫である」がデータ選択装置1502で選択される頻度が「フランダースの犬」の選択される頻度の9倍であったとすると、データ販売機1501の使用10回あたりの平均待ち時間は、15ブロック*9+7ブロック*1=142ブロック …(1)
の送受信にかかる時間となる。
第4の実施の形態の要点は、データ選択装置1502で、各選択データが選択される頻度を、データソースのデータ送信のスケジュールに反映させ、この平均的な待ち時間を減少させることである。
データがデータ選択装置1502によって選択されるまでのデータ流通システムの動作は、第1の実施の形態で述べたデータ流通システムと同様である。データがデータ選択装置1502で選択されると、データソース選択装置1503はデータ情報テーブル1509とデータレートテーブル1510を参照して、最適なデータソースを決定するのであるが、この例ではデータソースはデータサーバ1511しかないので、もちろんデータサーバ1511が選択され、データ受信装置1504からデータ送信要求が出される。これは、第1の実施の例における、データ受信装置104の、第1のデータサーバ113および第2のデータサーバ114に対するデータの要求と同じ方法で行なえる。データ受信装置1504から、データを指定する番号を受け取ると、データサーバ1511は、データスケジュール管理テーブル1512の選択頻度フィールド1801の対応する要素をインクリメントする。さらに、データサーバ1511は、以下に述べる論理で、割り当てブロック数フィールド1802の対応する要素を更新する。以下選択された選択データをDiとして、Diに対応する選択頻度フィールド1801の要素をFi、対応する割り当てブロック数フィールド1802の要素をQiとすると、Qi=(100*Fi)/ΣFiとしてQiを求める。ただしΣは全ての選択データについての和である。
Qiの計算において、少数点以下は切り捨てとなるので、一般にΣQiは100を下回る。このとき、(100−ΣQi)だけのブロックを、最も割り当てブロック数が少ないデータに割り当てることとする。
上式で、Diの選択頻度数と全てのデータの選択頻度数の和は、いずれもデータスケジュール管理テーブル1512の選択頻度フィールド1801の情報を用いて得られる。
データサーバ1511は、各選択データを、データスケジュール管理テーブル1512のデータ長フィールド1803で指定される大きさのブロックに分割して、割り当てブロック数フィールド1802で指定される各データに割り当てられたブロック数の比率にしたがって、ブロックごとに送出する。データ受信装置1504は、このようにして送られたデータのブロックをつなぎあわせ、1つなぎのデータにする。これ以降、新たにデータ選択装置1502で、データが選択されるまでのデータ流通システムの動作は、第1の実施の形態で述べたものと同様である。各選択データのブロック数をいくつにするかをデータサーバ1511が、データ情報テーブルのコピー1509”にある、容量フィールド1605’の情報と、データスケジュール管理テーブル1512のデータ長フィールド1803の情報から決定できるのは明らかである。
ここで、第4の実施の形態の効果について説明する。仮にD1:「我輩は猫である」(8ブロック)がデータ選択装置1502で選択される頻度がD2「フランダースの犬」(4ブロック)の選択される頻度の9倍であったとすると、このような、選択頻度に応じてブロック数を割り当てる方法では、Q1=(100*9)/(1+9)=90Q2=(100*1)/(1+9)=10となり、D1を得るために送出を待たなくてはならないおよその平均ブロック数は、D1:8*100/90=8.89ブロックD2:4*100/10=40ブロックとなる。したがって、データ販売機1501の使用10回あたりの、送出を待つ必要のあるおよその平均ブロック数は、8.89ブロック*9+40ブロック*1=120ブロック…(2)
となり、(1)式で得られた142ブロックと比較して、15%以上もの減少となっている。つまり平均待ち時間の少ないデータ流通システムが実現できるのである。
第4の実施の形態の要点は、データの選択回数を、時間あたりの各データの送信量に自動的に反映することであり、この方法は上で述べたものに限らない。上に述べた方法は、時間あたりの各データの送信量を、時間あたりの割り当てブロック数*ブロックあたりのデータ長と分解して、ブロックあたりのデータ長を一定に保ちつつ、時間あたりの割り当てブロック数を変化させていたが、代わりにブロックあたりのデータ長をコントロールしても同じ効果が本発明の範囲内で得られる。例えば、データサーバ1511は、データスケジュール管理テーブル1512の割り当てブロック数フィールド1802を各選択データで同一にしながらも、データ長フィールド1803を選択データDiごとに定数α*Fi/ΣFi(ただしFiはDiに対応する選択頻度フィールド1801の要素。ただしΣは全ての選択データについての和)で与えれば、やはり時間あたりの各データの送信量は、データの選択回数を反映したものになるので、同一の効果が得られるのは明らかである。
また、選択データをブロックごとに分割せず、時間あたりの各選択データDiのデータ送信量を、選択データ全体の長さ*選択データ全体の時間あたりの送出回数で制御することもできる。この場合、選択データの長さは変化しないので、各選択データDiの時間あたりの送信量に選択頻度を反映させるためには、データサーバ1511は、選択データの時間あたりの送出回数を制御する必要がある。
ここで用いたデータスケジュール管理テーブル1512の例では、データ長フィールド1803を極めて大きくとれば、選択データは最終ブロック、1ブロックで送信されるので、事実上、割り当てブロック数フィールド1802は、選択データ全体の時間あたりの送出回数を示すことになる。よって、割り当てブロック数フィールド1802を制御すれば良い。これをQiとすると、Diの長さをSi、FiはDiに対応する選択頻度フィールド1801の要素としてQi=定数β*Fi/Siで与えられ、時間あたりの各選択データDiのデータ送信量=Si*Qi=定数β*Fiとなり、時間あたりの各選択データDiのデータ送信量は選択データDiの選択頻度Fiに、比例したものになる。
(第5の実施の形態)
図20は、本発明の第5の実施の形態であるデータ検索機のブロック図である。データ検索機2001は、シフトJISなどのテキスト形式で格納された書籍データを検索する用途を想定したものであるが、このような想定、以下の各構成要素の具体的な仕様、細部の構成およびデータ構造は、あくまでも説明のための例であり、この発明の範囲を限定するものではない。データ検索機2001には、検索条件設定装置2002と、検索装置2003、記憶装置2004およびミニディスク書き込み装置2005が備わっている。記憶装置2004には、書籍データ数2007および、書籍データ数2007が示す数だけある、書籍データ2008、2008’、2008”…が格納されている。以降、特に断らない限り、書籍データ2008に関する説明は、他の書籍データ2008’、2008”…にも該当するとする。
ユーザは、データ検索機2001の使用にあたって、持参したミニディスク2006をミニディスク書き込み手段2005に挿入する。次に検索条件設定装置2002から検索条件を入力する。図21は検索条件設定装置2002の構成例である。検索条件設定装置2002は、コントローラ2101、キーボード2102、表示装置2103、該当データ数レジスタ2104およびオフセットレジスタ2105からなる。この例では検索条件設定装置2002で設定できるのは、キーワードと、段落、節、章、書籍全体など、どのようなレベルを単位としてデータを取り出すかを指定する、データ取り出し範囲とする。図22は表示装置2103の表示例である。キーワードウインドウ2201には、キーボード2102から入力されたキーワードが、データ取り出し範囲ウインドウ2202には、現在選択されているデータ取り出し範囲が四角形で囲まれて示されている。このデータ取り出し範囲の選択は、キーボード2102のカーソルキーによって、文字列を囲む四角形を上下させることで行なうとする。該当データ数レジスタ2104、オフセットレジスタ2105および検索結果ウインドウ2203については後述する。
検索装置2003において、あいまいな検索を許すことも考えられるが、あいまいな検索自体は広く実施されているので、説明を不必要に複雑にすることを防ぐために、このような検索条件の指定の仕様についての追加、変更によってもデータ検索機2001が本発明の範囲から外れるようなことはないことを指摘するにとどめ、ここでは検索装置2003は完全一致検索を行なうものとして説明する。入力されたキーワードおよびデータ選択範囲は、検索装置2003に送られ、検索装置2003は、記憶装置2004に格納されている書籍データ2008、2008’、2008”…を検索して、キーワードを含むような書籍データの部分を、検索条件設定装置2002で設定された単位で取り出したもの(以下「該当データ」)を、ミニディスク書き込み装置2005に転送した後、該当データの数を検索条件設定装置2002に転送する。この検索装置2003の動作については後に詳しく述べる。
検索条件設定装置は、転送されてきた該当データの数を検索結果ウインドウ2203に表示する。図22には該当データが2件存在した場合の検索結果ウインドウ2203の表示例が示されている。ミニディスク書き込み装置2005は、挿入されているミニディスク2006に、送られた該当データを書き込み、ミニディスク2006を排出して終了する。該当データが存在しない場合は、ミニディスク書き込み装置2005は、書き込みを行なわずにミニディスク2006を排出して終了する。
ここで、段落、節、章など、指定されたデータの選択範囲にしたがって、検索装置がデータを取り出すことができるためには、記憶装置2004にあらかじめ、そのような書籍の構造を反映した形で書籍データ2008が格納されていると好都合である。図23にこのような目的に合ったデータ構造の例を示す。ただし、検索装置2003が、書籍データ2008の構造を自動的に解析することも、例えば「第1章」、「第2節」などの単語を書籍から取り出すことで少なくとも標準的な書籍データでは可能なため、このようなデータ構造は必須というわけではなく、また図23の例が考えうる唯一のものでもない。図23に示した書籍データ2008は テキストデータ長2301、テキストデータ2302、目次2303に分かれている。テキストデータ2302は、書籍全体のテキストデータを、シフトJISコードにて格納したものであり、そのバイト数が4バイトの数値で、テキストデータ長2302に格納されている。目次2303は、書籍データ2008の内容に対するものであり、したがって、各書籍データ2008、2008’、2008”ごとに存在することに注意されたい。目次2303は項目データ2304、2304’、2304”…を並べたものとなっている。以下、特に断らない限り、項目データ2304に関する説明は、他の項目データ2304’、2304”…にも該当するものとする。
項目データ2304は書籍全体、章、節、段落など、異なるレベルにある、書籍の一部分に関する情報を表すものであり、表1に示す5つの整数値の組からなっている。
例えば、書籍全体:章:節という階層構造を持ち、前書き、3つの節からなる第1章、2つの節からなる第2章、4つの節からなる第3章および後書きからなるような書籍データの例に対応する目次2303は、図24のようになる。なお、表の右端列の「日常的意味」は理解を助けるために入れたものであり、目次2303の一部ではない。目次2303の一部ではないのは、1行目の全ての数値の名称も同様である。
図24の表の1行目を除く各行が各項目データに対応し、各項目データはこの表の2行目から順に目次2303に格納されているとする。ただし、一部の項目データを除き、先頭バイト2305、最終バイト2306の数値は省略した。
書籍の「前書き」、「後書き」は、それぞれ、下位の階層を持たない独立した章として扱われている。また、各章の先頭バイトと、各章第1節の先頭バイトは、各章の第1節の前に章の見出しや、章の導入部があるため一般に一致しない。同様に、書籍全体の開始バイトと前書きの開始バイトは、その間に書籍の表題などがあるため一般に一致しない。後書きの最終バイトと書籍全体の最終バイトも、その間に奥付けなどがあるため一般に一致しない。
以上で説明したデータ構造を用いた場合、検索条件設定装置2002で選択されるデータ取り出し範囲は、データ検索機2001の内部処理では、各項目データの深さレベル2108を指定する数値で表される。この場合、データ取り出し範囲ウインドウ2202の表示も、「レベル0(書籍全体)」、「レベル1(章など)」、「レベル2(節など)」、と言う様に、書籍によっては「章」の代わりに別の言葉が使われている可能性を考慮したものにすればさらに正確で好ましい。
上述したデータ構造を用いた場合の検索装置2003の動作を、図25のフローチャートで示す。検索条件設定装置2002から、コントローラ2101がキーワードおよびデータを取り出す単位を受け取り(ステップS2501)、該当データ数レジスタ2104を0で初期化する(ステップS2502)。記憶装置2004に格納されている書籍データ数2007の数だけある書籍データ2008…の内、まだ処理されていない最初のものに処理を移し(ステップS2503)、テキストデータ2302の中の、処理されていない部分からキーワードを探す(ステップS2504)。見つかるたびに、キーワードの、テキストデータ2302内のバイトオフセットをオフセットレジスタ2105に記録し(ステップS2506)、目次2303の、各項目データを参照して、先頭バイト2305の数値が、オフセットレジスタ2105の内容より大きくなく、かつ最終バイト2306の数値がオフセットレジスタ2105の内容より小さくない項目データについて、深さレベル2108が、検索条件設定装置2002で設定されたデータ取り出し範囲と一致すれば、該当データ数レジスタ2104をインクリメントする(ステップS2507)。そして、該当する項目データの先頭バイト2305、最終バイト2306を再び参照して、その範囲にあるデータをテキストデータ2302から全て取り出して、ミニディスク書き込み装置2005に転送する(ステップS2508)。これが現在処理中の書籍データの最後の項目データでなければ、次の項目データに処理を移す(ステップS2509)。最後の項目データであれば、これが最後の書籍データでなければ、次の書籍データに処理を移し(ステップS2510)、最後の書籍データであれば、該当データ数レジスタ2104の内容を検索条件設定装置2002に出力して終了する(ステップS2511)。
各書籍データの、記憶装置2004への格納方法であるが、記憶装置2004に各書籍データ2008、2008’、2008”…は空きを作らずに連続して格納され、書籍データ2008の内部では図23に示したようにテキストデータ長2301、テキストデータ2302、目次2303の順序で格納されているとする。このようにすれば、検索装置2003は、各書籍データ2008、2008’の始まりと終わりを知ることができる。その理由は、検索装置2003は、目次2303の、書籍全体のサブレベル項目数2309を参照することで、深さレベルが1になるような項目データで、その書籍では最後のものがどれであるかを知ることができる。一般的には、深さレベル2108が(n+1)になるような項目データの最後のものを、その直前の深さレベル2108がnになるような項目データの、サブレベル項目数2309の数値から知ることができることから、目次2303の中を先頭からたどる際、目次2303の終わりを知ることができる。テキストデータ長2102については、固定長なので、当然終わりを知ることができ、テキストデータ2302については、テキストデータ長2102を参照することで、終わりを知ることができるからである。また、上に述べたことに加えて、書籍データ数2007を参照することで、検索装置2003が、記憶装置2004のどこまでが書籍データ2008…が格納された領域かを知ることができるのももちろんのことである。
(第6の実施の形態)
第6の実施の形態のブロック図を図26に示す。この第6の実施の形態は、第1の実施の形態のデータ流通システムと類似しており、データソースとして、電子出版業者2615が加わり、データ選択装置2602に、キーボード2616が加わっている点を特徴とする。図1と対応する部分には、100台を2600台に変えて図示する。なお、以下の各構成要素の具体的な仕様、細部の構成およびデータ構造は、あくまでも説明のための例であり、本発明の範囲をこれに限定するものではない。
下記で説明するように、電子出版業者2615は、他のデータソースとは非常に性質が異なり、データ情報テーブル2609、データレートテーブル2610に登録される必要はない。データ受信装置2604と、電子出版業者2615の間の通信は、データ受信装置2604から電子出版業者2615の方向の、片方向通信で良い。
第1の実施の形態と異なるのは、ユーザが、データ選択装置2602にて、表示装置2608に表示された選択肢から、所望のデータを選択する際、表示装置2608の選択肢に「その他」という選択肢を設け、「その他」が選択された際には、表示装置2608は、そのデータについての情報、その他の情報がキーボード2616から入力するための表示に切り替わり、入力された情報に合わせて、電子出版業者2615に発注または問い合わせがなされるようになっていることである。したがって、データ選択装置2602にて、「その他」が選択されなかった際の動作は、第1の実施の形態と同じである。
図27はデータ選択装置2602にて、「その他」が選択された際の、表示装置2608の表示例およびデータ選択装置2602が備える、前項目スイッチ2701、次項目スイッチ2702、決定スイッチ2703および取り消しスイッチ2704の外観図である。ユーザは、データの名称などの情報をデータ情報入力ウインドウ2705に、問い合わせ・発注の別をアクション入力ウインドウ2706に、氏名、住所、電話番号をユーザ情報入力ウインドウ2707に入力する。ユーザが決定スイッチ2703を押下するたびに、入力の対象となるウインドウが、データ情報入力ウインドウ2705、アクション入力ウインドウ2706、ユーザ情報入力ウインドウ2707と移り、ユーザ情報入力ウインドウ2707が入力されている状態で、決定スイッチ2703を押下すると、入力が終了したことがデータ選択装置に伝わるようになっている。また、アクション入力ウインドウ2707においては、「問い合わせ」、「発注」のそれぞれの文字列を囲む長方形を、前項目スイッチ2702によって、上隣のものに移し、次項目スイッチ2703によって、下隣のものに移すことで指定するようになっている。なお、データ選択装置2602で「その他」が選択されなかった場合は、前項目スイッチ2701、次項目スイッチ2702、決定スイッチ2703および取り消しスイッチ2704は第1の実施例で述べた対応する構成要素と同一の作用を行なうのはいうまでもない。
電子出版業者2615では、送られた情報に合わせて、回答送付または商品送付を行なうようになっている。電子出版業者2615が即時にデータを用意することは難しいと考えられるので、他のデータソースの場合とは異なり、データが電子出版業者2615からその場でデータ受信装置2604に転送されることは予期していない(これが可能な場合は、電子出版業者2615を他のデータソースと区別する理由は全くなくなってしまい、第1の実施の形態に、単に新たなデータソースを加えたものになる。)。
もちろん、データ受信装置2604と、電子出版業者2615の間の通信を、後者から前者への方向も許した双方向にしておけば、、電子データを電子的に電子出版業者2615からデータ更新装置2605に伝送する経路が確保されるので、電子出版業者2615がデータの準備が完了した時点でユーザに知らせ、ユーザは、その時点で、再びデータ販売機2601まで出向いて、他のデータソースからと同じように、データの供給を受けるようにしてもよい。
また、電子出版業者2615を単なる書店にしてしまい、ユーザに届けられるのが電子データではなく、同一または類似の内容を持った紙の書籍とすることも可能である。
このように、データ販売機2601が、本来のデータソース以外の、電子出版業者2615との交信機能を持つことで、より多種のデータの流通が実現するのである。
また、電子出版業者2615で供給可能なデータを、あらかじめデータ選択装置2602の選択肢に入れておき、そのようなデータが選択された際に、データの送付先などの必要な情報を入力させることも可能である。この場合、電子出版業者2615も少なくとも操作の途中までは仮想的に通常のデータソースとしてユーザに把握されることになる。
(第7の実施の形態)
図28は、第7の実施の形態であるデータ流通システムに流通しているデータの不正コピーを検出するための複製データ検出システムのブロック図を示す。このシステムは、複数台のデータ再生装置において使用されている、ミニディスク(MD)で格納されて流通するデータが複製メディアかどうかを検査し、不正コピーを抑止する機能を持つ。なお、このような想定、以下の各構成要素の具体的な仕様、細部の構成およびデータ構造は、あくまでも説明のための例であり、この発明の範囲を限定するものではない。
第7の実施の形態である複製データ検出システムは、データ検査装置2801および、データ再生装置2802、2802’、2802”…を備える。以下データ再生装置2802に関する説明は、特に断らない限り、他のデータ再生装置2802’、2802”…にも適用されるとする。データ再生装置2802は、CPU2803、データ通信装置2804、ミニディスクドライブ2805、表示装置2806、再生スイッチ2807、終了スイッチ2808を備える。
ミニディスクドライブ2805で読み取られる各ミニディスク2809、2809’、2809”…には、正常な使用状態では、一意的な内容を持つ認証データ2810、2810’、2810”…が記憶されているとする。これ以外に、ミニディスク2809、2809’、2809”…は、データ再生装置2802他で再生するための、再生データ2811、2811’、2811”…を記憶している。
データ検査装置2801は、コントローラ2812、データ通信装置2813、データ数レジスタ2814および、データ管理テーブル2815を備えている。以下認証データ2810(または2810’、2810”)の内容のコピーを単に認証データ2810(または2810’、2810”)と書くことがあるが、混同のおそれはないと思われる。
データ通信装置2804とデータ通信装置2813は、電話回線、電波など適切な手段で双方向通信を行なうものとする。
以下データ再生装置2802の動作を説明する。なお、以下の説明で、「使用開始」、「使用終了」、「再生禁止」の信号については、採用される通信手段に応じて適宜定めるとする。
ユーザが、ミニディスク2809をミニディスクドライブ2805に挿入し、再生スイッチ2807を押すと、ミニディスクドライブ2805は、認証データ2810をミニディスク2809から読み出し、CPU2803は、それをデータ通信装置2804に転送する。データ通信装置2804は、「使用開始」を示す信号と、認証データ2810を、データ検査装置2801、より具体的にはデータ通信装置2813に送出する。データ検査装置2801では後述する複製データ検出が行われ、その結果によっては、データ検査装置2801は「再生禁止」信号をデータ通信装置2804に送る。一方、ミニディスクドライブ2805は再生データ2811をミニディスクドライブ2805から読み出し、CPU2803はそれを表示装置2807に送ることで、再生データ2811の再生を開始するが、データ通信装置2804が、「再生禁止」信号を受け取ると、表示装置2806に、「このデータは違法コピーの可能性がある」というメッセージを表示するとともに、ミニディスクドライブ2805の動作を停止する。
また、ユーザが、再生データ2811の再生中に、終了スイッチ2808を押すと、データ通信装置2804は、「使用終了」を示す信号と、認証データ2810を、データ通信装置2813に送出した後、CPU2803はミニディスクドライブ2805の動作を停止する。
データ管理テーブル2815には、「使用開始」を示す信号を伴って送られてきた認証データの番号が連続して格納されている。データ数レジスタ2814には、そのような認証データの数が格納されている。図29はデータ数レジスタ2814および、データ管理テーブル2815の例である。この例では、認証データの数、認証データとも4バイト符号なし整数を想定するが、図29では認証データの数「8」と、8個の認証データの番号は、いずれも10進法で書き表してある。
データ再生装置2802からデータが送られてきた際のデータ検査装置2801の動作を、図30のフローチャートに沿って説明する。
コントローラ2812はデータ通信装置2813が受信したデータが「使用開始」という信号を含んでいる場合に、データに含まれる認証データ2810が、データ管理テーブル2815に既にあれば、そのデータを送信したデータ通信装置2804に対して、「再生禁止」信号を送り、待機状態に戻る(ステップS3002)。データ管理テーブル2815に認証データ2810がなければ、コントローラ2812はデータ管理テーブル2815の最後の認証データの後に、送られてきた認証データ2810を追加し(ステップS3003)、データ数レジスタ2814をインクリメントして(ステップS3004)、待機状態に戻る(ステップS3002)。
コントローラ2812はデータ通信装置2813が受信したデータが「使用開始」という信号を含んでおらず、「使用終了」という信号を含んでいる場合に、データ管理テーブル2815に認証データ2810があれば、データ管理テーブル2815から認証データ2810を削除し(ステップS2407)、データ数レジスタ2814をデクリメントして(ステップS2408)、待機状態に戻る(ステップS3002)。データ管理テーブル2815に認証データ2810がなければ、送られたデータは異常データであるとして無視して(ステップS3007)、待機状態に戻る(ステップS3002)。
また、データ通信装置2813が受信したデータが「使用開始」という信号、「使用終了」という信号のいずれも含んでいない場合も、送られたデータは異常データであるとして無視して(ステップS3007)、待機状態に戻る(ステップS3002)。なお、ステップS3005で、データ管理テーブル2815から削除された認証データ2810に対応する部分は、空き領域とせず、順に詰められるとする。
このシステムによって、不正コピーが抑止されるのは、ミニディスク2809、2809’、2809”…の認証データ2810、2810’、2810”…が同じ値を持っている場合、上記ステップS3005により、異なるデータ再生装置2802、2802’、2802”…においてミニディスク2809、2809’、2809”…を同時に使用できないためである。すなわち、仮に、悪意のある者が、ミニディスクの違法コピーを大量に生産しても、通常の手段でコピーを行なう限り、それらはオリジナルと同じ認証データを持つことになるので、同時に使用できるのはそのうちで1枚しかないため意味をなさない。また、善意の個人がバックアップ目的でコピーをする場合は、オリジナルと同時に使用するわけではないから制限が全くかからない。
この例では、データ通信装置2804と、データ通信装置2813の間の通信は双方向としたが、これを、前者から後者への片方向として、「再生禁止」信号の後者から前者への送出、データ再生装置2802における再生の禁止を省略しても、データの複製の検出自体は行なえているので、用途はやや制限されるものの、やはり有用である。
また、悪意ある者が、コピーしたミニディスクの、認証データのみを書き換えて、一意性を保とうとするのを防ぐために、認証データ2810を、再生データ2811と分離が難しくなるように符号化することができればより好ましい。
(第8の実施の形態)
図31は、第8の実施の形態である複製データ検出システムのブロック図を示す。第7の実施の形態と類似しているので、以下相違点についてのみ説明する。以下データ再生装置3102に関する説明は、特に断らない限り、他のデータ再生装置3102’、3102”…にも適用されるとする。なお、以下の各構成要素の具体的な仕様、細部の構成およびデータ構造は、あくまでも説明のための例であり、この発明の範囲を限定するものではない。以下認証データ3110(または3110’、3110”)の内容のコピーを単に認証データ3110(または3110’、3110”)と書くことがあるが、混同のおそれはないと思われる。
ミニディスク3109がミニディスクドライブ3105に挿入されている状態で、再生スイッチ3107が押されると、データ通信装置3104からあらかじめ定められた時間間隔α秒ごとに、認証データ3110がデータ通信装置3104からデータ通信装置3113に送信され、終了スイッチ3108を押されるまでこれが持続する。
ただし、ミニディスク3109がミニディスクドライブ3105に挿入されて、再生スイッチ3107が押されてから、あらかじめ定められたβ秒(β>α)が経過して初めて認証データの送出が開始されるとする。この理由は後述する。データ管理テーブル3115は、図32に示すように、認証データフィールド3201と時刻フィールド3202に分かれており、認証データとそれが送られてきた時刻と組になって記録されている。また、データ検査装置は時計3116を備える。時計3116は、年月日、時分秒を持っているものとする。
データ再生装置3102からデータが送られてきた際のデータ検査装置3101の動作を、図33のフローチャートを用いて説明する。
コントローラ3112は、送られた認証データ3110がデータ管理テーブル3115の認証データフィールド3201に既にあれば、時計3116から得られた現在の時刻と、認証データ3110に対応する時刻フィールド3202の内容の差を算出して(ステップS3301)、あらかじめ定められた時間間隔γ秒(α>γ)に比べて小さければデータ通信装置3113は、データ通信装置3104に対して、「再生禁止」信号を送出して(ステップS3302)、待機状態に戻る(ステップS3303)。小さくなれば、認証データ3110に対応する時刻フィールド3202を現在の時刻に更新して(ステップS3301)、待機状態に戻る(ステップS3303)。認証データフィールド3201に認証データ3110がなければ、認証データフィールド3201の最後のデータの後に、そのデータを追加して(ステップS3305)、対応する時刻フィールド3202に、時計3116から得た現在の時刻を書き込み(ステップS3306)、データ数レジスタ3114をインクリメントして(ステップS3307)、待機状態に戻る(ステップS3303)。
これとは別に、コントローラ3112は、所定のタイミングで、時刻フィールド3202を参照して、時計3116から得た現在の時刻と比較し、その差があらかじめ定められた時間間隔Δ秒(Δ>>α)とくらべて大きい要素があれば、その要素および対応する認証データを時刻フィールド3202および認証データフィールド3201より削除して、データ数レジスタ3114をデクリメントする。これは、すでに使われていないデータによって、データ管理テーブル3115が大きくなりすぎることを防ぐためである。もちろん、第7の実施の形態と同じように、終了スイッチ2808が押された際にデータ通信装置3104が、「使用終了」を示す信号と、認証データ3110を、データ通信装置3113に送出するようにして、これをトリガーにしてこのようなデータ管理テーブル3115から不要になった時刻フィールド3202の要素および認証データフィールド3201の要素を削除するようにしても差し支えない。いずれにしろ、削除された認証データの時刻フィールド3202および認証データフィールド3201に対応する部分は、空き領域とせず、順に詰められるとする。
ミニディスク3109をミニディスクドライブ3105に挿入してから、認証データの一回目の送出が始まるまでにかかる時間は、データを複製と判定するための上記のしきい値γ秒より長いことが望ましい。これは、例えばデータ再生装置3102’で再生されているミニディスク3109を異なるデータ再生装置3102に入れ直して再生したときに、データ検査装置3101が、ミニディスク3109を複製と判定することを防ぐためである。
たとえば、しきい値γを15秒と取った場合、データ再生装置3102’のデータ通信装置3104’による最後の、ミニディスク3109の認証データ3110の送出から、ミニディスク3109がデータ再生装置3102’から取り出されて、別のデータ再生装置3102で再生が始まり、データ通信装置3104による、ミニディスク3109の認証データ3110の1回目の送出までにかかる時間が10秒であったとすると、認証データ3110が2回、10秒の間隔で送出されることになるため、ミニディスク3109は複製と判定されてしまう。これを防ぐために、ミニディスクがミニディスクドライブ3105に挿入されて、再生スイッチ3107が押されてから、あらかじめ定められたβ秒(β>α)が経過して初めて認証データの送出が開始されるようにしたのである。
なお、第7の実施の形態と同じように、終了スイッチ3108が押された際にデータ通信装置3104が、「使用終了」を示す信号と、認証データ3110を、データ通信装置3113に送出するようにした場合は、データ再生装置3102’で使用を終了した時点で、データ管理テーブル3115からミニディスク3109の認証データ3110を削除できるので、このようなことを考慮する必要はない。
第8の実施の形態で、不正コピーが抑止される理由、およびやや簡略化した形態の実現方法については第7の実施の形態に述べたのと同様である。
(第9の実施の形態)
図34は第9の実施の形態である、データ流通システムのブロック図を示す。第1の実施の形態との主要な相違は、第1の実施の形態に、データ検査装置3415が加わっている点である。図1と対応する部分には100台を3400台に変えて図示する。また、データ更新装置3405はミニディスクに書き込むだけでなく、読み出しも行なう必要がある。さらに、ミニディスク3407、3407’、3407”…には、第7の実施の形態、第8の実施の形態と同様に、正常な使用状態では、一意的な内容を持つ認証データ3416、3416’、3416”…および再生データ3417、3417’、3417”…が記憶されている。なお、以下の各構成要素の具体的な仕様、細部の構成およびデータ構造は、あくまでも説明のための例であり、本発明の範囲をこれに限定するものではない。
ユーザが、データ更新装置3405に、持参したミニディスク3407を挿入した際、データ更新装置3405は、ミニディスク3407から、認証データ3416を読み出し、データ検査装置3415に送る。データ検査装置3415は、送られた認証データ3416から、ミニディスク3407に複製が存在するかどうかを判定する。複製が存在すると判定された場合には、表示装置3408に、挿入されたディスクに複製が存在する旨のメッセージが表示され、データ更新装置3405から、ミニディスク3407が書き込みが行われないまま排出されて、データ販売機3401は初期状態に戻る。複製が存在すると判定されなかった場合は、データ検査装置3415は、新たな認証データ3416Aを発生して、データ更新装置3405に送り、データ更新装置は、これをミニディスク3407に書き込む。これ以降の動作は、第1の実施の形態と同様である。
次にデータ検査装置3415の動作については詳しく述べる。図35にデータ検査装置3415の構成例を示す。コントローラ3501、データ数レジスタ3502、データ管理テーブル3503、認証データ発生装置3504、時計3505からなる。時計3505は、年月日、時分秒を持つものとする。データ管理テーブル3503は、図36に例を示すように、認証データフィールド3601と、時刻フィールド3602からなっている。第8の実施の形態で述べたデータ管理テーブル3115と形態は似ているが、データ管理テーブル3115は、使用中のデータの情報を示しているのに対し、データ管理テーブル3503は、使用を禁止されたデータの情報を示している点で、機能が大きく異なる。また、認証データフィールドに格納されている認証データの数が、データ数レジスタ3502に格納されている。
以下、ユーザがデータ更新装置3405にミニディスク3407を挿入した際の、データ検査装置3415の動作について図37のフローチャートに沿って説明する。
コントローラ3501は、データ管理テーブル3503の、認証データフィールド3601を参照して、認証データ3416と一致するものがあれば、データ更新装置3405に、ミニディスクは複製である、という判定結果を送り(ステップS3701)、待機状態に戻る(ステップS3702)。一致するものがなければ、コントローラ3501は、認証データ3416の内容を、認証データフィールド3601の最後に追加して(ステップS3703)、時計3505から得た現在の時刻を対応する時刻フィールド3602に書き込み(ステップS3704)、データ数レジスタ3502をインクリメントして(ステップS3705)、認証データ発生装置3504が、認証データ3416と異なる内容の、新たな認証データ3416Aを発生して、データ更新装置3405に転送し(ステップS3706)、待機状態に戻る(ステップS3702)。
また、これとは別に、コントローラ3501は、所定のタイミングで、時刻フィールド3602を参照して、時計3505から得た現在の時刻と比較し、その差があらかじめ定められた時間間隔、例えば30日とくらべて大きいときには、そのような時刻および対応する認証データを、時刻フィールド3602および認証データフィールド3601より削除して、データ数レジスタ3502をデクリメントする。これは、不要になったデータでデータ管理テーブル3503がいっぱいになることを防ぐためであるが、十分大きなデータ管理テーブル3503が用意できる場合は、これは必須ではない。また、データ管理テーブル3503が、一杯になった時のみ、最も古い時刻を時刻フィールド3602に持つ認証データおよび対応する時刻を認証データフィールド3601および時刻フィールド3602から削除するようにしてもよい。
なお、時刻フィールド3602および認証データフィールド3601の、削除された認証データに対応する部分は、空き領域とせず、順に詰められるとする。このような方法によって、仮に悪意のある者が、ミニディスクの不正コピーを大量に行なっても、オリジナルとコピーディスクのうち1つが、データの書き換えを行なうと、少なくともある期間は他のコピーディスクは書き換えが行なえないため、不正コピーを行なったメディアと、そうでないメディアとの差は大きく、不正コピーを抑止する効果がある。
また、ミニディスク3407が、データ検査装置3415によって複製と判定された場合、単にデータ更新装置3405から排出するのではなく、その再生データを消去するなどして再生できないようにする、ミニディスク3407自体を回収する、係員を呼び出すなどの動作を行なうことも考えられる。
次に、認証データ発生装置3504の動作について述べる。認証データ発生装置3504は、認証データの一意性が保証される形で、新たな認証データ3416Aをミニディスク3407に与えることが望ましい。これは特にデータ販売機3401が複数台あり、したがって認証データ発生装置3504も複数台存在するときに問題になる。
このようなことが可能な認証データの構成法としては、例えば、図38に示すように、認証データ3416Aを128ビットで構成し、各認証データ発生装置3504に固有のID番号をあらかじめ定めておき、これを上半分の64ビットとして、下半分の64ビットを、各認証データ発生装置毎の通し番号0、1、2…で構成することが考えられる。こうすれば、認証データ3416Aは、異なる認証データ発生装置によって生成されれば、少なくとも上位64ビットのいくつかは必ず異なり、同一の認証データ発生装置によって生成されれば、下位64ビットのいくつかは必ず異なるので、一意性が保証される。
また、一度も内容の更新を受けていないミニディスクと、更新を受けたミニディスクを通じて認証データの一意性を保つためには、いずれの場合にも共通の枠組みで認証データを与えるようにする。すなわち、ミニディスクの製造段階において認証データ3416を付ける際の、認証データ3416を発生する装置も、上記の認証データ発生装置の1つとみなして、通しで固有のID番号を与えておき、データが更新される際と同じように、128ビットの認証データを与えておけば良い。
(第10の実施の形態)
図39は、第10の実施の形態であるデータ流通システムのブロック図を示す。第1の実施の形態との相違点について説明する。特に説明しない部分については、第1の実施の形態と同様であり、対応する部分には100台を3900台に変えて図示する。なお、以下の各構成要素の具体的な仕様、細部の構成およびデータ構造は、あくまでも説明のための例であり、本発明の範囲をこれに限定するものではない。
ミニディスク3907には、課金情報3915が再生データ3916とともに記憶されている。課金情報3915は、図40に示すように、データ更新時刻4001、データ使用料4002およびデータ更新回数4003からなる。
データ情報テーブル3909が格納している図3に示す価格フィールド303と、課金情報3915のデータ使用料4002には、データの24時間あたりの使用料が格納されているとする。課金装置3906には時計3917およびタイマ3918が加わっている。時計3917は年月日、時分秒を持つものとする。タイマ3918は、一定時間を計る能力があるものであれば良い。ここでは20秒とする。ただし、後で分かるように、タイマ3918は、第10の実施の形態のデータ流通システムのユーザインターフェースをより実用的にするために設けたものであり、本質的に必要な構成要素ではない。
第10の実施の形態の要点は、データが更新される際に、それまでミニディスク3907に格納されていたデータの使用料を、それがミニディスク3907に保持されていた時間に応じて請求することである。
以下、ユーザが、データ販売機3901の使用を開始するために、データ更新装置3905にミニディスク3907を挿入した際の、データ販売機3901の動作について図41のフローチャートに沿って説明する。
データ更新装置3905は、ミニディスク3907から、課金情報3915を読み出し、課金装置3906に伝送する(ステップS4101)。課金装置3906は、時計3917から得た現在の時刻と、データ更新時刻4001、データ使用料4002を参照して、課金額を決定する(ステップS4102)。
なお、課金装置3906の課金額の決定方法については種々のものが考えられるが、ここでは、24時間あたりの価格*((現在の時刻―データ更新が前回更新された時刻)/24時間)で得るとする。
なお、24時間あたりの価格はデータ使用料4002から、現在の時刻は時計3917から、データが前回更新された時刻はデータ更新時刻4301から得られる。
課金装置3906は決定した課金額を表示装置3908に表示する(ステップS4103)。また、課金装置3906は、タイマ3918を起動する(ステップS4104)。タイマ3918が20秒を計時すると、データ更新装置3905はミニディスク3907を排出し(ステップS4105)、データ販売機3901は待機状態に戻る(ステップS4106)。タイマ3918が20秒を計時する前に、課金額がユーザによって課金装置3906に投入されると、データ選択に移る(ステップS4107)。これ以降、データ選択装置3902が、表示装置3908にデータ情報テーブル3909の価格フィールド303(図3)から得たデータの価格を表示する直前までのデータ流通システムの動作は、第1の実施の形態と全く同様であるので、その後の動作について図42のフローチャートで説明する。データ選択装置3902は、表示装置3908に、データ情報テーブル3909の価格フィールドから得たデータの価格を表示する(ステップS4201)。ユーザの入金は、次回の更新時に行われるので、第1の実施の形態と異なり、ここではユーザは入金を行なわない。また、価格についても、次の更新時までの経過時間に依存するので、例えば、「一日あたり200円」、あるいは「1週間以内1000円・以降一日あたり50円」など、経過時間と次回の課金額の関係がユーザに分かるようなものが望ましい。
ユーザは、図4に示す決定スイッチ403または、取り消しスイッチ404を押す。取り消しスイッチ404が押された場合は、データ更新装置3905からはミニディスク3907が排出され(ステップS4202)、データ販売機3901は待機状態に戻る(ステップS4203)。決定スイッチ403が押された場合は、データ受信装置3904は、送られたデータを、データ更新装置3905に転送し、データ更新装置3905は、送られたデータをミニディスク3907の再生データ3916として書き込む(ステップS4204)。課金装置3906は、時計3917から得た現在の時刻をデータ更新装置3905に送り、データ更新装置3905は、これもミニディスク3907のデータ更新時刻4001に書き込む(ステップS4205)。データ更新装置3905はデータ情報テーブル3909の価格フィールド303の内容をミニディスク3907のデータ使用料4002に書き込み(ステップS4206)、データ更新回数4003の内容をインクリメントして(ステップS4207)、最後にミニディスク3907を排出する(ステップS4208)。データ販売機3901は待機状態に戻る(ステップS4203)。
この例では、単純に、データがミニディスク3907に保持されていた時間に比例して課金しているが、もちろんミニディスク3907にデータが保持されていた時間と課金額の関係としてはこれに限るものではない。また、データ更新回数3918の内容も課金に用いることで、これが何回目の更新であるかによって課金額を決定または変化させる、例えば更新回数が多ければ、課金額を安く設定するなど、種々の課金体系が考えられるのも明らかである。
(第11の実施の形態)
図39は第11の実施の形態であるデータ流通システムのブロック図としても通用する。以下、第10の実施の形態との動作の相違点について説明する。なお、以下の各構成要素の具体的な仕様、細部の構成およびデータ構造は、あくまでも説明のための例であり、本発明の範囲をこれに限定するものではない。
ミニディスク3907の課金情報3915の内容は、第11の実施の形態では、図43に例を示す、データ更新時刻4301と、データ使用記録4302からなっている。データ使用記録4302は、データ再生装置による、ミニディスク3907の再生データ3916が、データ再生装置で再生された履歴を保存するものであり、ここではデータ使用記録4302には、再生データ3916がデータ再生装置にて再生された時間の合計が格納されるとする。
課金装置3906は、次式で課金額を決定する。
課金額=定数*(再生データ3916の再生時間の合計*0.9+前回のデータ更新からの経過時間*0.1)
再生データ3916の再生時間の合計はデータ使用記録4302を読み出すことでそのまま得られる。前回の更新からの経過時間は、時計3917から得た現在の時刻から、データ更新時刻4301の内容を引くことで得られる。
これによって、長い間保持されていたけれども、使用されていないデータについての課金が過大になることを防ぐことができる。上式の0.1、0.9という重み係数はもちろん説明のための一例である。
これ以外の、データ流通システムの動作は、データ選択装置3902は、表示装置408に、データ情報テーブル3912から得たデータの価格を表示する際の表示内容が、課金計算方法に合わせて変更する必要があること、またデータ使用記録4302を残すためにデータ再生装置に改変が必要なこと以外は第10の実施の形態と同様である。
また、課金額の算出方法はここであげた例に限らない。例えば、データ更新時刻4301を用いずに、データ使用記録4302から得られる、再生データ3915が再生された時間に比例して課金しても差し支えない。この場合は、時計3917は不要になる。
他にも、再生データ3916の再生時間が一定以下の場合には、課金額を0にするなども実際的であると考えられる。
データ使用記録4302を残すためのデータ再生装置の例を図44に示す。
データ再生装置4401は、CPU4402、ミニディスクドライブ4403、表示装置4404、再生スイッチ4405、終了スイッチ4406、時計4407、使用開始時刻レジスタ4408を備えている。ユーザが、ミニディスク3907をミニディスクドライブ4403に挿入し、再生スイッチ4405を押すと、CPU4402は、時計4407を参照して、現在の時刻を使用開始時刻レジスタ4408に保存する。終了スイッチ4406が押されると、CPU4402は、時計4407を参照して、現在の時刻と、使用開始時刻レジスタ4408の内容の差を計算して、ミニディスク3907のデータ使用記録4302に書き込み、ミニディスク3907をミニディスクドライブ4403から排出する。ただし、一度再生スイッチ4405が押されると、次に終了スイッチ4406が押されるまで、再生スイッチ4405は無視されるものとする。
1.本発明の、特に第1、2、3、9、10または11の実施の形態では、同一のデータを保持するデータソースのうち、ユーザを待たせる時間がもっとも短くなるようなデータソースが自動的に選択されるため、ユーザの待ち時間を低減することができる。本発明の、特に第2の実施の形態では、一部のデータソースがデータバッファリング装置として作用するため、ユーザの待ち時間を低減することができ、また、他のデータソースが低速でも、ユーザの平均的な待ち時間への影響は少なくなる。本発明の、特に第4の実施の形態では、時分割式に送信される異なるデータのうち、選択される頻度の高いものに自動的に多くの送信時間が割り当てられるので、やはりユーザの平均的な待ち時間を低減させることができる。
2.本発明の、特に第7または8の実施の形態では、コピーメディアが、オリジナルと同時には使用できないので、善意のユーザがデータのバックアップを行なう余地を残しながらも、悪意ある者が不正コピーを多量に作成して販売などの形で配布することを心理的に抑止することができる。本発明の、特に第9の実施の形態では、オリジナルの内容が更新された後、少なくとも一定期間はコピーメディアの内容の更新が行なえないので、同様に、善意のユーザがデータのバックアップを行なう余地を残しながらも、悪意ある者が不正コピーを多量に作成して販売などの形で配布することを心理的に抑止することができる。
3.本発明の特に第1、2、3、9、10または11の実施の形態では、種類の異なるデータソースが混在しても、その中から、最適なデータソースを自動的に選択することができる。
4.本発明の、特に第10または11の実施の形態では、ユーザへの課金額は、データの購入時に行われるのではなく、実際にユーザがそのデータを保持していた時間、使用した実績などに基づいて動的に決定されるので、実際に再生してみて、興味を引かないものであれば、課金は全く発生しないか、ごくわずかで済むため、ユーザは気軽にデータを試用することができる。
5.本発明の、特に第6の実施の形態では、まだ電子化されていないデータをユーザが所望した場合にも、同一の販売機から発注、照会などが行なえるので、ユーザは、所望のデータが電子化されているかどうかを気にすることなく、販売機を使用して発注、照会などを行なうことができる。
6.本発明の、特に第5の実施の形態によれば、ユーザが入力された検索条件に適合する電子データの部分をまとまった単位で自動的に取り出すことができる。また、どのような単位で取り出すかを選択することも可能である。
このように、「発明が解決しようとする課題」で挙げた問題は、全て解決されるのである。
101 データ販売機、102 データ選択装置、103 データソース選択装置、104 データ受信装置、105 データ更新装置、106 課金装置、107 ミニディスク、108 表示装置、109 データ情報テーブル、110 データレートテーブル、111 第1のデータ衛星、112 第2のデータ衛星、113 第1のデータサーバ、114 第2のデータサーバ、109’ データ情報テーブルのコピー、109” データ情報テーブルのコピー。