JP4256397B2 - ファイル格納装置 - Google Patents

ファイル格納装置 Download PDF

Info

Publication number
JP4256397B2
JP4256397B2 JP2006040311A JP2006040311A JP4256397B2 JP 4256397 B2 JP4256397 B2 JP 4256397B2 JP 2006040311 A JP2006040311 A JP 2006040311A JP 2006040311 A JP2006040311 A JP 2006040311A JP 4256397 B2 JP4256397 B2 JP 4256397B2
Authority
JP
Japan
Prior art keywords
bit string
file
identification information
code
user identification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006040311A
Other languages
English (en)
Other versions
JP2007219882A (ja
Inventor
誠 後藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to JP2006040311A priority Critical patent/JP4256397B2/ja
Priority to US11/705,840 priority patent/US9262426B2/en
Publication of JP2007219882A publication Critical patent/JP2007219882A/ja
Application granted granted Critical
Publication of JP4256397B2 publication Critical patent/JP4256397B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、ファイル格納装置、その動作方法およびファイル格納プログラムに関する。
不特定多数のユーザを対象に、インターネットなどの通信回線を介してファイルを格納するためのディスクスペースを貸し出すサービスが提供されている(例えば、特許文献1参照。)。このようなサービスでは、インターネットなどの通信回線に接続されたサーバ装置の記憶装置の中に、各ユーザごとにディレクトリを設定しておき、各ユーザは、各自に割り当てられたディレクトリに、FTP(File Transfer Protocol)などを用いて、ファイルをアップロードして格納できる。
特開2003−67253号公報
従来のディスクスペースを貸し出すサービスでは、複数のユーザが内容が同じファイルや類似のファイルをアップロードした場合、重複して同じ内容(同じビット列やバイト列など)が複数のファイルに格納され、ディスクスペースを消費するというという無駄が生じる。
従来のサービスにおいては、ユーザが互いに知人同士であり、かつ、お互いが同じファイルや類似のファイルを格納することがわかっている場合には、共有のアカウントを作成したり、アップロード前に、お互いの類似ファイルから、重複する内容からなる部分である冗長部分を、取り除く処理をすることで、冗長性を減らしてサーバ装置の格納容量を有効に利用することが可能ではある。しかし、その場合には、ユーザ間で意思の統一をしてからファイルのアップロードを行なうなどの必要があり、ユーザにとって負担となってしまう。また、不特定のユーザを対象とする場合には、ユーザが知人同士であることの頻度は少ない。また、ファイルの内容を自分のみ知る状態にして秘匿する場合には、ユーザ間での意思の統一はできない。
そこで、ディスクスペースを貸し出すサービスを提供する者が、ファイルの内容を符号化するのに必要な情報を用意しておき、この情報をファイルを格納する領域とは別の領域に格納し、その情報を用いてファイルの内容をより短い符号に置換することにより、サーバ装置が、ファイルの冗長な部分を取り除くことが考えられる。例えば、複数のユーザがアップロードしたファイルの中に共通して現れるビット列を抽出などし、そのビット列に符号を対応づけ、ファイルの中の特定のビット列を符号に置換することにより、冗長性を取り除き、効率よくデータを格納することが可能である。しかし、この場合には、データを符号化するのに必要な情報を格納するのに必要なコストを、サービスを提供する者が自分で負担するか、共益費などとして、ユーザに振り分ける必要が出てくる。サービスを提供するものがこのコストを負担する場合には、符号化するのに必要な情報の量が膨大になると、その情報の管理のオーバーヘッドにより、サービスの提供の継続が困難となる虞がある。また、ユーザにコストを振り分ける場合には、例えば、均等に割り振れば、他のユーザと共通する内容を持たないファイルを格納するユーザにとっては不合理なコストを負担しなければならなくなる。
そこで、本発明では、従来と比べて、サービスの提供者にも、ユーザにも不合理なコストの負担をさせることなく、ユーザのファイル間の冗長性の自動的な解消と、効率的なサーバ装置の記憶領域の利用を実現することを目的とする。
なお、そもそもディスクスペースを貸し出すサービスにおいて、ファイルの内容の一部を符号に置換してファイル格納の効率を図ることは、出願人の知る限り実際には行なわれていないことである。したがって、上述の部分には従来技術だけではなく、本願の発明者による発明の記述が一部含まれている。
かかる目的を解決するために、本発明では、符号と関連付けられて管理されるビット列と一致するビット列を前記符号に置換することにより、ユーザ識別情報と関連付けて入力されるファイルを圧縮して格納するファイル格納装置であって、符号又は/及びビット列の管理のコストをユーザ識別情報ごとに分配するファイル格納装置を提供する。ここに、符号又は/及びビット列の管理のコストとは、符号又は/及びビット列を保持や維持などすることに必要なコストであり、例えば、必要な記憶領域の大きさや、必要なCPUの動作に対するコストである。
このようなファイル格納装置では、管理のコストがユーザに適正に分配されることが実現できるので、課題が解決される。
また、ファイルに対してビット列の符号への置換の数をビット列ごとにユーザ識別情報に関連付けて取得し、この数に用いて管理のコストをユーザに分配してもよい。これにより、より適正なコストの分配が可能となる。
また、ファイルの先頭から開始するビット列が、符号と関連付けられた一または複数のビット列と一致するかどうかを判断して、一致すると判断された部分以降のビット列を新たな符号と関連付けて保持するようにしてもよい。これにより、管理するべきビット列を自動的に収集することが可能となる。
また、ファイルの予め定められた構造に従って、ファイルを断片に分別し、それぞれの断片をファイルとして圧縮の対象とするようにしてもよい。これにより、構造を持ったファイルの格納を効率よく行なうことが可能となる。
また、特定のビット列の管理のコストの一部または全てを特定のユーザに対して分配してもよい。これにより、特定の言葉(例えば、商標など)や特定の思想の表現を普及させたいと考えるユーザの考えを実現することができる。
また、管理のコストに基づいてファイル格納の料金を算出するようにしてもよい。これにより、サービスの提供者は適正な対価を得ることができる。
以上のように、本発明によれば、ファイルを格納するサーバ装置の記憶領域を効率よく使用することができ、また、コストをユーザに適正に分配することができる。
以下、本発明を実施するための最良の形態について、実施形態として図を参照しながら説明を行なう。なお、本発明はこれら実施形態になんら限定されるものではなく、その要旨を逸脱しない範囲において、種々なる態様で実施し得る。
(実施形態1)
実施形態1として、符号と関連付けられて管理されるビット列と一致するビット列を前記符号に置換することにより、ユーザ識別情報と関連付けて入力されるファイルを圧縮して格納するファイル格納装置であって、符号又は/及びビット列の管理のコストをユーザ識別情報ごとに分配するファイル格納装置について説明する。
(実施形態1:前提)
図1は、以下でのファイル格納装置などの開示の前提となる構成を示す機能ブロック図を例示する。すなわち、本明細書において、それぞれの実施形態に係るファイル格納装置の機能ブロック図は、図1に例示された機能ブロック図が共通した前提となる。そこで、ここで説明を行なう。このため、ここで例示された機能ブロック図の部分を省略して、以降の実施形態に係るファイル格納装置の機能ブロック図を示す。
ファイル格納装置100は、インターネットなどの通信網101に接続され、ユーザ端末102、103、104よりアクセスが可能である。ユーザ端末からFTPプログラムなどを実行してファイル格納装置100と接続を行なう。この場合、通信インターフェース105を介して、認証部106により、ユーザの識別情報とパスワードなどとの適合を判断して、ユーザの認証が行なわれる。
認証部106によるユーザの認証が正常に終了すると、ユーザはユーザ端末からファイルをアップロードする。アップロードされたファイルは、通信インターフェース105を介して受信部107により受信される。その後、圧縮部108により圧縮が行なわれる。
圧縮部108による圧縮においては、符号−ビット列格納部109に格納されて管理されている符号とビット列との関連付けが参照される。一般的に、符号は、それに関連付けられるビット列よりも短いビット数で表現が可能である。このため、ファイルの中に、符号と関連付けられているビット列をその符号に置換することにより、ファイルを、より小さなサイズに圧縮することができる。このように圧縮されたファイルは、圧縮ファイル格納部110に格納される。
図2は、ユーザの識別情報であるユーザ識別情報と、ファイルと、ビット列と、符号との関係を例示する図である。符号c1とビット列b1とが関連付けられて符号−ビット列格納部109に格納され、また同様に、c2とb2と、c3とb3と、c4とb4と、c5とb5とが関連付けて格納される。もし、U1で識別されるユーザがファイルF1とF2とをアップロードし、F1の中にb1、b2とb4とが含まれている場合には、そのb1の出現はc1に置換され、そのb2の出現はc2に置換され、そのb4の出現はc4に置換される。同様に、F2の中にb3が含まれる場合には、そのb3の出現は、c3に置換され、格納がされる。同様に、U2で識別されるユーザがファイルF3をアップロードし、F3の中に、b4とb5とが含まれる場合には、それぞれの出現は、c4、c5に置換され、格納がされる。
どのようなビット列に符号を関連付けるかについては、例えば、受信したファイルを形態素解析などにより単語などの所定の単位に分解して、100回以上現れる単語や単語の並びの句や文とする。ただし、多数の短い単語、句や文のビット列に符号を関連付けることを行うと、逆に圧縮効率が低下することもあるため、所定の長さ未満となる短い単語、句や文のビット列については関連づけないようになっていてもよい。
ユーザ端末より、FTPプログラムなどにより、ファイルの送信要求があった場合には、認証部106で認証の後、ファイル送信要求受付部111でファイルの送信要求が受け付けられる。その後、圧縮ファイル格納部110に格納されたファイルが、伸長部112により、符号−ビット列格納部109に格納された符号とビット列とが参照され、その符号が、それに関連づけて格納されているビット列へ置換されて伸長が行なわれ、送信部113によりファイルの送信が行なわれる。これにより受信部107で受信したときのファイルが復元されて送信される。
なお、ファイル格納装置100は、CPU、メモリ、ハードディスク、入出力インターフェース、通信インターフェースなどをバスにより結合させた計算機で実現することができる。この場合、認証部106、受信部107、圧縮部108、符号−ビット列格納部109、圧縮ファイル格納部110、ファイル送信要求受付部111、伸長部112、送信部113は、プログラムのモジュールなどとして実現できる。例えば、符号−ビット列格納部109は、符号とビット列とをハードディスクに関連付けて格納するモジュールとして実現できる。そのモジュールには、圧縮部108によってビット列が入力などされ、一致するビット列に対して符号を返す。また、伸長部112から符号の入力がされると、それに関連付けられているビット列を返す。また、入出力インターフェースを介してファイル格納装置100のオペレータなどから、符号とビット列との関連付けが管理可能となっている。圧縮ファイル格納部110は、ハードディスクに圧縮されたファイルを書き出して格納したり、伸長部112のためにファイルを読み出すことを行なう。
認証部106は通信インターフェース105にアクセスを行ない、ユーザ識別情報とパスワードなどを受信し、ユーザ識別情報とパスワードなどとの適合性の検査を行ない、ユーザを認証するモジュールとして実現される。ユーザ識別情報とパスワードなどとの関連付けは、ハードディスクなどに格納される。
受信部107は、通信インターフェース105にアクセスを行ない、受信したファイルをメモリやハードディスクに一時的に記憶して、受信したファイルを圧縮部108に渡すモジュールとして実現される。圧縮部108は、渡されたファイルのビット列を読み出し、符号−ビット列格納部109に入力などを行ない、符号と関連付けられているビット列があれば、その符号を受け取り、ファイルのビット列と置換を行なう。このように圧縮されたファイルは、ハードディスクに格納するために圧縮ファイル格納部110を実現するモジュールに渡される。
また、ファイル送信要求受付部111は、通信インターフェースを介して、ファイル送信要求を受け付け、送信部113にファイルの送信を命令するモジュールとして実現される。送信部113は、伸長部112を実現するモジュールにファイルの伸長を命令し得られるファイルを通信インターフェースを介して送信するモジュールとして実現される。
伸長部112は、送信部113から命令があったファイルの中の符号を符号−ビット列格納部109により管理などされているビット列に置換してファイルを伸長し、伸長の結果をメモリやハードディスクに一時的に記憶して、送信部113を実現するモジュールに渡す。
このような構成により、符号と関連付けられて管理されるビット列と一致するビット列を前記符号に置換することにより、ユーザ識別情報と関連付けて入力されるファイルを圧縮して格納するファイル格納装置が実現される。
また、以上説明したモジュールからなるプログラムを媒体に記録することも可能である。すなわち、ファイル格納装置を計算機で実現するためのプログラムを記録した媒体を提供することも可能である。ここに、媒体とは、例えば、フレキシブルディスクなどの磁気ディスクのほか、光ディスク、光磁気ディスク、メモリ媒体など、ビット情報をある程度の時間以上保持可能な有体物を意味する。
なお、ファイル格納装置は、例えば、受信した電子メールを保持するメールサーバや、HTMLなどで記述されたファイルを格納し、格納されたファイルを閲覧可能とするウェブサーバとして動作させることもできる。
(実施形態1:構成)
図3は、実施形態1に係るファイル格納装置の機能ブロック図を例示する。ファイル格納装置300は、管理コスト分配部301を有する。
「管理コスト分配部」301は、前記管理のコストをユーザ識別情報ごとに分配する。「前記管理」とは、“符号と関連づけられて管理されるビット列”でいうところの「管理」を指し示す。より具体的な例として説明すると、符号−ビット列格納部109で格納される符号とビット列との関連付けのために行なわれる管理である。
「前記管理のコスト」とは、前記管理のために必要となったコストである。より詳細には、例えば、符号とビット列との関連付けの格納に必要なディスクスペースにかかるコストであったり、圧縮部108、符号−ビット列格納部109などを動作させるのに必要となったCPUの動作コストなどである。コストは、ディスクスペースであれば、バイト単位で測定され、CPUの動作コストであれば、時間を単位にして測定されるが、測定の結果を貨幣価値や所定の単位を用いた数値に換算した結果によりコストを表示してもよい。
また、「管理のコスト」と「課金額」とは同じ意味の単語として扱われる場合があるかもしれないが、一般的には異なる概念である。例えば、ファイルの格納に対して課金する額が、ファイルのサイズや格納する期間などに関わらず、どのユーザにも同じ課金額とすることもできるが、管理のコストはユーザごとに異なり得る。すなわち、ユーザがファイル格納装置に格納させたファイルのサイズや期間などに応じて、ユーザごとの管理のコストは異なり得るからである。この場合、どのユーザにも同じ課金額が課されるが、格納させたファイルの管理のコストを管理コスト分配部301により分配した値が所定の値になるまで、ファイルを各ユーザが格納できるように制限を付けることもできる。
一般に、有料サービスの提供者は、サービスの提供に必要なコストよりも多くの料金をユーザから徴収することにより、利益を得ることができる。従来技術における、ディスクスペースを貸し出すサービスの提供においては、サーバが受信したファイルを単にディスクに格納するだけなので、必要なコストは、ディスクスペースのサイズのみに依存したり、あるいは、ディスクスペースのサイズに主に依存したりする。したがって、ユーザから徴収する料金に見合った容量のディスクスペースをユーザに割り当て、その容量を超える総計のサイズのファイルが格納できないようにすることにより、ユーザへのサービスによって生じるコストの上限を設定することができる。このような状況下では、ユーザが格納したファイルのサイズのトータルを、例えばバイトを単位として測定することが、ユーザへのサービスの提供のための管理のコストを測定していることとなる。
しかし、本発明では、格納されるファイルを構成するビット列のサイズが、重要な管理のコストの要素ではあると言えるが、ファイルの圧縮や伸長に必要なCPUの動作を含む計算機システムの管理のコストも重要な要素となり得る。すなわち、圧縮の処理や伸長の処理に伴う待ち時間などを発生させずに、ユーザに快適なサービスを提供するためには、従来技術における、ディスクスペースを貸し出すサービスに用いる計算機システムよりも高額でかつ大きな負荷に耐えうる計算機システムを調達してファイル格納装置を実現し、計算機システムを動作させる必要がある。また、サービスの提供者は、計算機システムのCPUなどを動作させるコストを負担する必要がある。
本発明における第一の管理のコストの算出方法は、このようなコストの負担に見合うように例えばバイトあたりの単価を一律に高めに設定し、従来技術と同様に、格納に必要なディスクサイズで管理のコストを測定することである。すなわち、バイトあたりの単価を1.2倍に上げて、圧縮によるディスクサイズの節約の効果が、高めに設定した分を上回る場合には、サービス提供者が利益を得ることができるコストの算出方法であると言える。また、この算出方法を用いると、実際の全格納サイズ、すなわち、圧縮ファイルのサイズの総和と、ビット列のサイズの総和とが等しくなる。このことから、有料サービスの提供者は、用意すべきディスクの容量を合理的に決めることができる。例えば、10名のユーザに各々圧縮ファイル格納部に格納される圧縮ファイルの管理のコストと符号−ビット列格納部の管理のコストの分配分の総和を1Gバイトまで許可し、圧縮ファイル格納部と符号−ビット列格納部を単一のディスク装置に実装するならば、10Gバイトの容量を持つディスク装置を用いて、ファイル格納装置を実現するための計算機システムを構成すればよいと決めることができる。
本発明における第二の管理のコストの算出方法は、高額な計算機システムの調達・動作によるビット列の処理については、高めの単価で管理のコストを算出し、高額な計算機システムを用いなくても同じサイズとなるであろうビット列の管理については低めの単価で管理コストを算出することである。例えば、図1の圧縮ファイル格納部110に格納される圧縮ファイルの管理のコストは、所定の単価の1.0倍として算出し、符号−ビット列格納部109に格納されるビット列の管理のコストは、所定の単価の1.2倍として算出してもよい。第一の管理のコストの算出方法のみが使用される場合には、圧縮することにより圧縮の効果が現れるファイルの格納には、本発明を用いたサービスを利用し、圧縮の効果があまりないファイルの格納には、従来技術のサービスを利用して、本発明を用いたサービスと従来技術のサービスとを使いわけるユーザが発生し、本発明を用いたサービスの提供者にあまり利益が発生しないなどの虞がある。しかし、第二の管理のコストの算出方法を用いると、どの部分も符号に置換されることなく全体がそのまま圧縮ファイル格納部110に格納されてしまうようなファイルについても低いバイトあたりの単価で格納することができる。これにより、上述のような使い分けをするユーザの発生を防止することができる。
なお、本発明を用いる場合には、符号に置換されることのないファイルであっても便宜的に一つのビット列を構成すると考え、ファイル全体を一つの符号として関連付けを行ない符合−ビット列格納部109に格納し、圧縮ファイル格納部110には管理のコストを無視できるほどの小さな符号のみを格納することで、管理のコストの算出を、符号−ビット列格納部109に格納されているビット列のみに対して行なうことが考えられる。このようにすることにより、管理のコストの一元的な管理ができる。また、第二の管理のコストの算出方法を用いる場合には、一回しか置換されていない符号に関連付けられているビット列の格納コストは、所定の単価の1.0倍とし、二回以上置換に用いられている符号に関連付けられているビット列の格納コストは、1.2倍とするようにしてもよい。
図4は、管理のコストを分配するために参照される表を例示する。例えば、図2のように、ユーザ識別情報と、ファイルと、ビット列と、符号とが関連付けられているとする。この場合、U1で識別されるユーザがアップロードしたファイルは、b1、b2、b3、b4のビット列が置換されたので、「U1」の行と、「b1」、「b2」、「b3」、「b4」の列とが交差する欄(すなわち、U1とb1、b2、b3、b4とに対応する欄)には、「+」がU1と関連付けて格納され、U1で識別されるユーザがアップロードしたファイルには、b5のビット列が置換されていないので、「U1」の行と「b5」の列とが交差する欄には、「−」がU1と関連付けて格納される。同様に、「U2」の行と「b1」、「b2」、「b3」、「b4」、「b5」の列とが交差する欄には、それぞれ、「−」、「−」、「−」、「+」、「+」がU2と関連付けて格納される。
管理のコストを分配する場合には、例えば、ユーザ識別情報ごとに関連付けられている「+」の個数を求め、その数により管理コストの総数を按分する。U1に関連付けられている「+」の個数(この個数を「符号参照数」という場合がある)は4であり、U2に関連付けられている「+」の個数は2であるので、U1に配分する管理のコストと、U2に配分する管理のコストとの比が4対2になるように按分する。例えば、管理のコストが6万円であれば、U1には4万円、U2には2万円が按分により分配される。このように按分することにより、「+」の個数が多いほど、ユーザ識別情報には多くの管理のコストが分配される。「+」の個数が多いということは、符号−ビット列格納部109により符号とビット列とを参照しているということであるので、符号とビット列との関連付けの格納に必要なディスクスペースなどの管理のコストを多く分配できるので、適正な管理のコストの分配が実現できる。
なお、図4に例示される表は、ファイル格納装置300が、圧縮部108でファイルの圧縮を行なう都度、更新されるようになっていてもよい。すなわち、圧縮部108が、符号と関連付けられて管理されるビット列を検出するごとに、ユーザ識別情報とそのビット列とに対応する欄に「−」が格納されていれば、「+」を格納し、「+」が格納されていれば、「+」のままにする。あるいは、管理コスト分配部301が動作するときに図4に例示される表を算出するようになっていてもよい。すなわち、各ユーザ識別情報に関連づけて圧縮ファイル格納部110に格納されているファイルを走査し、その中に含まれる符号を検出し、その符号と関連付けられているビット列に対応する欄に「+」が格納されるように表を算出する。
(実施形態1:処理)
図5は、実施形態1に係るファイル格納装置の処理の流れを説明するフローチャートを例示する。このフローチャートでは、管理コスト分配部301の処理の流れが説明されている。ステップS501において、例えば、符号とビット列の関連付けての管理コストの総量を求める。あるいは、CPUの動作コストの総量を求めてもよい。ステップS502では、ユーザ識別情報ごとの符号参照数を求める。あるいは、圧縮の程度をユーザ識別情報ごとに求めてもよい。ステップS503では、管理のコストの総量を、ユーザ識別情報ごとに分配する。例えば、符号参照数により按分を行なう。
なお、図5で示される処理を、プログラムのモジュールとして実現することは、容易である。例えば、管理のコストの総量を求めて、メモリなどに一時的に記憶し、また、ユーザ識別情報ごとに符号参照数を図4に相当するデータ構造を生成して求めて、メモリなどに一時的に記憶し、メモリなどに記憶された管理のコストの総量を、符号参照数に応じて按分して、結果をメモリなどに記憶して、入出力インターフェースにアクセスを行ない、出力する。
(実施形態1:別の分配の技法)
また、管理のコストの分配の技法としては、ファイルの圧縮量に基づいて管理のコストを分配する技法がある。例えば、U1のユーザに関連付けられるファイルが受信部107により受信されたときのサイズの合計が500キロバイトであり、圧縮部108での圧縮の後、300キロバイトとなったとすると、圧縮量は、例えば、500−300=200キロバイトとなる。同様にU2のユーザに関連付けられるファイルが受信部107により受信されたときのサイズの合計が800キロバイトであり、圧縮部108での圧縮の後、700キロバイトとなったとすると、圧縮量は、100キロバイトとなる。そこで、圧縮量の大きいユーザU1が圧縮の恩恵をうけていると考えて、U1に配分する管理のコストと、U2に配分する管理のコストとの比が例えば200対100となるように按分することが考えられる。
図6は、このような技法のために用いられる表を例示する。その表には、「圧縮前サイズ合計」と「圧縮後サイズ合計」という列があり、それぞれ、ユーザ識別情報ごとに、受信部107により受信されたときのファイルのサイズの合計と、圧縮ファイル格納部110に格納されるファイルのサイズの合計とが格納される。このような表は、受信部107によりファイルを受信し、圧縮部108により圧縮を行ない、圧縮ファイル格納部110にファイルを格納するごとに算出してもよいし、受信部107でファイルの受信のログをとっておき、圧縮ファイル格納部110に格納されているファイルのユーザ識別情報ごとのサイズの合計を求めることにより、管理コスト分配部301の動作ごとに求めるようになっていてもよい。
例えば、U1の圧縮前サイズ合計がSa1であり、圧縮後サイズ合計がSb1であれば、(Sa1−Sb1)によりU1の圧縮量を示す数値を算出し、同様に他のユーザ識別情報の圧縮量を示す数値を算出して、管理のコストの按分を行なう。
(実施形態1:主な効果)
ファイル格納装置では、管理のコストを、ファイルの圧縮に必要な資源(例えば、符号とビット列との関連付けの格納の領域サイズなど)の消費に応じてユーザに分配することが可能となり、適正な分配が実現できる。
(実施形態2)
実施形態2として、ファイルに対してビット列の符号への置換の数をビット列ごとにユーザ識別情報に関連付けて取得し、この数を用いて管理のコストをユーザに分配するファイル格納装置について説明する。
(実施形態2:構成)
図7は、実施形態2に係るファイル格納装置の機能ブロック図を例示する。ファイル格納装置700は、管理コスト分配部301と、置換数取得部701とを有し、管理コスト分配部301は、置換数依存分配手段702を有している。すなわち、実施形態1に係るファイル格納装置が、置換数取得部をさらに有し、その管理コスト分配部が置換数依存分配手段を有することにより、本実施形態に係るファイル格納装置の構成が得られる。
「置換数取得部」701は、ユーザ識別情報と関連付けて、そのユーザ識別情報と関連付けられて入力されたファイルに対して置換されたビット列ごとに置換の数を取得する。例えば、U1というユーザ識別情報を持つユーザがアップロードしたファイルF1の中に、b1というビット列が5回出現し、その5回のb1の出現が、c1というb1と関連付けられた符号に置換された場合には、U1に対して、b1については5回という数を取得する。このような取得は、圧縮部108により、ビット列がそれと関連付けられた符号に置換されるごとにカウントアップされて管理されている数を取得することにより行なわれる。あるいは、置換数取得部701が動作する都度、圧縮ファイル格納部110に格納されたファイルの内容を走査して、符号の数を求めて取得が行なわれてもよい。
なお、置換数取得部701が取得する置換の数が、圧縮部108により、ビット列がそれと関連付けられた符号に置換されるごとにカウントアップされて管理されている場合には、圧縮部108で圧縮された後、圧縮ファイル格納部110にファイルが格納された時間の長さを考慮して、置換の数が管理されていてもよい。例えば、時間の長さが長ければ、置換の数を実際の数より大きくするなどである。また、実際の置換の数が多い場合には、その置換の数が関連されている符号は、ファイルの圧縮に貢献していると言えるので、そのような貢献を勘案などして、実際の置換の数よりも小さい数を置換数取得部701が取得するようになっていてもよい。
図8は、置換数取得部701が取得する置換の数を表の形式とした例を示す。例えば、U2というユーザ識別情報を持つユーザがアップロードした全てのファイルの中にビット列b1が3箇所、ビット列b2が2箇所、ビット列b3が1箇所、ビット列b4が2箇所、ビット列b5が0箇所あり、これらが、それぞれc1、c2、c3、c4、c5に置換されて圧縮ファイル格納部110に格納されているとする。このとき図8の表に、U2とb1、b2、b3、b4、b5とを対応付けて、U2の行に欄それぞれに3、2、1、2、0を格納する。他のユーザ識別情報U1、U3についても同様であるとする。
このとき、ビット列b1の管理のコストがE1であるとすると、U2には、b1の管理のコストとして、E1×(3/5)、U3には、E1×(2/5)を分配する。同様に、ビット列b2の管理のコストがE2であるとすると、b2の管理のコストとして、U1には、E2×(1/4)、U2には、E2×(2/4)、U3には、E3×(1/4)を分配する。このようにビット列ごとに管理のコストを分配して、ユーザ識別情報ごとに管理のコストの総和を求める。あるいは、最初に管理のコストの総量を求めておいて、ユーザ識別情報ごとのファイルにおける各ビット列の出現回数の和を求め、この和の値に応じて管理のコストの総量を分配してもよい。また、符号に置換されないビット列がある場合には、その管理のコストも加算してもよい。
置換数取得部701が取得する置換の数が、実際の置換の数を変化させたものである場合には、図8の表が、実際の置換の数を格納し、図8の表を読み取り、加重、加減などの処理である勘案の処理などして変化させた結果の置換の数を置換数取得部701が取得するようになっていてもよい。この場合には、図8の表は、例えば、圧縮部108により管理される。また、圧縮ファイル格納部110に格納されているファイルが削除された場合には、削除前に、削除されるファイルに含まれる符号の数に応じて、圧縮ファイル格納部110などにより、図8の表に格納されている数を適宜減少させる処理が行なわれるようになっていてもよい。
「置換数依存分配手段」702は、置換数取得部701で取得された置換の数を用いて前記管理のコストを分配する。例えば、ユーザ識別情報ごとに、置換の数の合計を求めて、その合計で按分をして管理のコストを分配する。あるいは、ビット列のビット数(あるいはバイト数)を置換の数に掛けて合計をユーザ識別情報ごとに求めて、按分を行なってもよい。例えば、b1が100バイト、b2が120バイト、b3が150バイト、b4が200バイトであれば、U1について、100*5+120*10+150*18+200*3を求め、同様に他のユーザ識別情報についても求めて、按分を行なう。
(実施形態2:主な効果)
本実施形態では、置換の数を用いることにより、管理のコストをより正確にユーザ識別情報ごとに分配することができる。
(実施形態3)
実施形態3として、ファイルの先頭から開始するビット列が、符号と関連付けられた一または複数のビット列と一致するかどうかを判断して、一致すると判断された部分以降のビット列を新たな符号と関連付けて保持するファイル格納装置について説明する。
(実施形態3:構成)
図9は、実施形態3に係るファイル格納装置の機能ブロック図を例示する。ファイル格納装置900は、管理コスト分配部301と、判断部901と、新符号ビット列保持部902とを有する。また、置換数取得部をさらに有し、管理コスト分配部301が置換数依存分配手段を有していてもよい。したがって、本実施形態に係るファイル格納装置は、実施形態1または2に係るファイル格納装置が、判断部901と、新符号ビット列保持部902とを有する構成となっている。
「判断部」901は、ファイルの先頭から開始するビット列が、符号と関連付けられた一又は複数のビット列と一致するか判断する。ここでいうファイルとは、受信部107で受信されたファイルを意味し、圧縮部108で圧縮される前のファイルである。また、ここでいうファイルは、判断部901の判断処理と圧縮部108の圧縮処理を再帰的に繰り返す場合において、判断部901の判断の対象となる圧縮途中のファイルのことも意味する場合もある。判断部901は、そのようなファイルの内容の先頭からビット列を読み出し、符号−ビット列格納部109に格納されたビット列と順にそれぞれのビット列の先頭から比較を行ない、どの程度一致するかを判断する。「どの程度一致するか」とは、(1)全く一致しない、(2)ビット列の全体がファイルの途中までと一致するものがある、(3)ビット列の途中までがファイルの途中までと一致するものがある、(4)ビット列の全体がファイルの全体と一致するものがある、(5)ビット列の途中までがファイルの全体と一致するものがあるか、のいずれかに該当するかを判断することである。
(1)の例としては、ビット列が「XY」であり、ファイルの内容が「YZ」である場合がある。(2)の例としては、ビット列が「AB」であり、ファイルの内容が「ABC」である場合がある。(3)の例としては、ビット列が「ABD」でありファイルの内容が「ABC」である場合がある。(4)の例としては、ビット列が「AB」でありファイルの内容が「AB」である場合がある。(5)の例としては、ビット列が「ABD」でありファイルの内容が「AB」である場合がある。
なお、一致するかの判断は、ビット単位に行なわれる必要はなく、連続する所定のビットを単位として、例えば、8ビット、すなわち1バイトを比較の単位として比較してもよい。あるいは、1024バイト、すなわち1キロバイトを比較の単位としてもよいし、記憶装置がブロックを単位として記憶するブロックデバイスであれば、記憶の単位であるブロックの大きさを比較の単位としてもよい。
「新符号ビット列保持部」902は、一致すると判断された部分以降のビット列を新たな符号と関連付けて保持する。「関連付けて保持する」とは、符号−ビット列格納部109に、符号とビット列の関連付けを格納することである。上記の(2)、(4)の場合には、新符号ビット列保持部902は何もする必要がない。なぜなら、新たに格納するファイルのビット列が、すでに格納された符号により表現可能であるからである。ただし、(2)の場合には、圧縮ファイル格納部110が符号のみを格納するようになっているときは、ファイルの内容のうち、符号−ビット列格納部109に格納されたビット列に一致する部分をそのビット列に関連付けられた符号により置換して得られるファイルの内容を、新たな符号と関連付けることをしてもよい。例えば、ビット列が「AB」であり、このビット列に関連付けられた符号がc1であり、ファイルの内容が「ABC」であれば、「ABC」の「AB」をc1により置換した「(c1)C」を得て(括弧は符号の存在を示す情報とする)、この「(c1)C」を新たな符号c2と関連付けて符号−ビット列格納部109に格納して、符号c2を圧縮ファイル格納部110に格納することをしてもよい。あるいは、得られた「(c1)C」を改めて圧縮対象のファイルとみなし、再度、判断部による判断の対象とすることにより、再帰的に圧縮処理を繰りかえてしてもよい。なお、本明細書において「ビット列」という場合には、符号により置換された後のものを意味する場合もある。したがって、「(c1)C」のように符号を含むものも本明細書で意味されるビット列や「ファイル」となる。
(1)の場合には、新符号ビット列格納部902は何もする必要がない。なぜなら、新たに格納するファイルのビット列は、すでに格納された符号によって表現することが不可能であるからである。ただし、圧縮ファイル格納部110が符号のみを格納するようになっているときは、新符号ビット列保持部902は、ファイルの内容の全体のビット列を新たな符号と関連づけて保持し、圧縮ファイル格納部110は、その新たな符号を格納するようになっていてもよい。また、再帰的に圧縮処理が行なわれる場合の中間段階においては、ファイルとビット列との間で先頭の符号のみが一致する場合は、判断部において「検索結果なし」と判断し、例外的に(1)の場合に含まれるものとする。例えば、再帰的処理の中間段階において、ビット列の中に「(c1)XY」が存在し、ファイルの内容が「(c1)YZ」である場合には、(c1)の部分が同一であるにも関わらず、途中まで一致するとは判断せず、このビット列とは全く一致しないと判断することにする。
(3)の場合には、符号−ビット列格納部109に格納されているビット列の途中までとファイルの途中までのビット列と一致するビット列を新たな符号と関連付けて符号−ビット列格納部109に格納し、その新たな符号により、符号−ビット列格納部109に格納されているビット列の途中までと、ファイルの内容の途中までを置換する。例えば、符号−ビット列格納部109に格納されているビット列が「ABD」であり、ファイルの内容が「ABC」である場合には、「AB」を新たな符号c3と関連づけて符号−ビット列格納部109に格納し、「ABD」を「(c3)D」に置換し、ファイルの内容を「(c3)C」とする。
(5)の場合には、ファイルの内容を新たな符号と関連づけて符号−ビット列格納部109に格納する。例えば、符号−ビット列格納部109に格納されたビット列が「ABD」であり、ファイルの内容が「AB」であれば、「AB」を新たな符号c4と関連付けて符号−ビット列格納部109に格納する。このとき、符号−ビット列格納部109に格納されたビット列「ABD」を「(c4)D」として格納しなおしてもよい。
(実施形態3:処理の流れ)
図10は、本実施形態におけるファイル格納装置における主に判断部901と新符号ビット列保持部902との処理の流れを説明するフローチャートを例示する。
ステップS1001において、符号−ビット列格納部109に符号と関連付けられて格納されているビット列のうち、その先頭から全体または一部が、受信したファイルの先頭からの内容と一致するビット列を検索することを、判断部901により、実行する。すなわち、ある一つの符号に関連付けられたビット列のうち受信したファイルの先頭から開始するビット列と全体または一部が一致するビット列の有無を確認する。
ステップS1002においては、ステップS1001の結果である検索結果の有無を判断する。もし、検索結果がなければ、上述の(1)の場合であるので、ステップS1003とステップS1004の処理を行なう。すなわち、ステップS1003においては、ファイルの内容の全体を、新たな符号と関連付けて、符号−ビット列格納部109に格納する。そして、ステップS1004においては、その新たな符号(ステップS1003でファイルの内容の全体と関連づけて符号−ビット列格納部109に格納された符号)をファイルの内容として、圧縮ファイル格納部110に格納する。
もし、ステップS1001の結果である検索結果が存在すれば、ステップS1005へ処理を移行させる。ステップS1005では、変数Bに、S1001で検索されたビット列を代入し、変数Cに、変数Bに代入されたビット列と関連づけられた符号を代入する。この時点では、上述の(2)から(5)の場合があるので、以下、ステップS1006、S1008、S1012にて場合分けを行なう。なお、検索結果が複数ある場合には、ビット列が最長のものを選んで代入するのが好ましい。また、他の基準を用いて検索結果のうちの一つを選ぶようになっていてもよい。あるいは、複数のビット列が共通の先頭部分を持つことがないように、すなわち、先頭の共通部分は必ず別のビット列に関連付けられた符号と置換されているように保つことにより、検索結果が必ず一つとなるように実装してもよい。
ステップS1006において、変数Bに代入されたビット列の全体がファイルの内容の途中までと一致するかどうかを判断する。もし、その結果がYESであるならば、上述の(2)の場合であるので、ステップS1007へ処理を移行させる。ステップS1006の判断の結果がNOならば、上述の(3)から(5)の場合であるので、ステップS1008へ処理を移行させる。
ステップS1007においては、変数Bに代入されたビット列と一致するファイルの先頭からの内容を、変数Cに代入された符号により置換する。このような符号への置換により圧縮が行なわれる。その後、ステップS1001へ処理を戻し、新たにファイルと考えるビット列、すなわち、置換された符号とそれに続くビット列が、符号−ビット列格納部109に格納されたビット列と一致するかどうかの判断が行なわれる。
ステップS1008においては、変数Bに代入されたビット列の途中までと、ファイルの内容と途中までとが一致するかどうかを判断する。もし、この判断がYESならば、上述の(3)の場合であり、ステップS1009へ処理を移行させ、NOならば、上述の(4)または(5)の場合であり、ステップS1011へ処理を移行させる。
ステップS1009では、変数Bに代入されたビット列の途中までと、ファイルの内容と途中までとの一致する部分を、新たな符号と関連付けて符号−ビット列格納部に格納する。例えば、変数Bに代入されたビット列が「ABD」であり、ファイルの内容が「ABC」であれば、「AB」を新たな符号と関連付ける。
ステップS1010では、ファイルの内容と途中まで一致する、変数Bに代入されたビット列の部分を、その新たな符号により置換して符号−ビット列格納部に格納する。例えば、「ABD」の「AB」の部分を新たな符号で置換する。
ステップS1011では、ファイルの先頭からの部分で、その新たな符号と関連付けられたビット列と一致する部分を、その新たな符号により置換する。例えば、「ABC」の「AB」を新たな符号と関連付ける。その後、ステップS1001へ戻る。ただし、ファイルには新たな符号が含まれているので、ステップS1001の検索結果は無いので、ただちにステップS1003へ処理を移行してもよい。
ステップS1012では、ファイルの内容全体と、変数Bに代入されたビット列全体とが一致するかどうかを判断する。もしこの判断がYESであれば、上述の(4)の場合であり、ステップS1013へ処理を移行させる。もしNOであれば、上述の(5)の場合であり、ステップS1014へ処理を移行させる。
ステップS1013では、変数Cに代入された符号を、ファイルの内容として圧縮ファイル格納部110に格納する。
ステップS1014では、ファイルの内容全体を新たな符号と関連付けて符号−ビット列格納部109に格納する。
ステップS1015では、変数Bに格納されたビット列の先頭からの部分で、ファイルの内容と一致した部分を、その新たな符号により置換して符号−ビット列格納部に格納する。例えば、変数Bに「ABD」が代入されており、ファイルの内容が「AB」であれば、「AB」に新たな符号を関連づけ、「ABD」の「AB」の部分をその新たな符号により置換する。
ステップS1016では、その新たな符号をファイルの内容として、圧縮ファイル格納部110に格納する。
(実施形態3:処理の具体例)
図11は、実施形態3に係るファイル格納装置の処理の具体例を説明する。まず、符号−ビット列格納部109には何も格納されていない状態で、ユーザU3が、"AAACCC"いうビット列からなるファイル(以後、「"AAACCC"からなるファイル」などと略す)をアップロードしたとする。この場合には、符号−ビット列格納部109には何も格納されていないので、ステップS1002で「NO」へ分岐し、ステップS1003、S1004の処理が行なわれる。すなわち、AAACCC全体が新たな符号c1と関連付けられて、その符号からなるファイルが、圧縮ファイル格納部110に格納される。圧縮ファイル格納部110に格納される場合には、アップロードをしたユーザの識別情報であるU3と関連付けられる。この時の符号−ビット列格納部109と圧縮ファイル格納部110との状態を図11(1)の表として示す。すなわち、ビット列"AAACCC"が符号c1と関連付けられて符号−ビット列格納部109に格納される。また、ユーザ識別情報U3と符号c1とが関連付けられて圧縮ファイル格納部110に格納される。また、このとき、ビット列"AAACCC"の置換数は1となる。
次に、ユーザU2が、"AAAAAA"からなるファイルをアップロードしたとする。このとき、"AAAAAA"からなるファイルの先頭部分と、すでに符号c1と関連付けられているビット列"AAACCC"の「AAA」までが一致する。したがって、ステップS1002では「YES」へ分岐し、ステップS1006では「NO」へ分岐し、ステップS1008では「YES」へ分岐し、ステップS1009、S1010、S1011の処理が行なわれる。この結果、"AAA"というビット列が新たな符号c2と関連付けて保持され、c1に関連付けられているビット列"AAACCC"は、"(c2)CCC"になる。次に、ファイルの内容である"AAAAAA"は、"(c2)AAA"となる。その後、ステップS1001へ戻って処理が行なわれ、"(c2)AAA"に新たな符号c3が関連付けられる。結果として、図11(2)のようになる。
次にユーザU3が、"BBBBBBB"からなるファイルをアップロードしたとすると、既に符号−ビット列格納部109に格納されたどのビット列とも一致しないので、ステップS1003、S1004の処理が行なわれ、ビット列"BBBBBBB"が新たな符号c4と関連付けて保持され、図11(3)に示す状態となる。
次に、ユーザU1が、"AAA"からなるファイルをアップロードしたとすると、既にc2と関連付けて格納されているビット列"AAA"と一致するので、c2に置換される。結果として、図11(4)に示す状態となる。
次にユーザU2が"BBBB"からなるファイルをアップロードしたとすると、既に格納されているビット列"BBBBBBB"と、最初の四つのBが一致する。これにより、ステップS1006では、「NO」へ分岐し、S1008では、「NO」へ分岐し、S1012では、「NO」へ分岐する。ステップS1014では、ファイルの内容"BBBB"が新たな符号c5と関連付けられ、ステップS1015では、c4と関連付けられたビット列が"(c5)BBB"に置換され、ステップS1016では、c5が圧縮ファイル格納部110に格納される。結果として、図11(5)に示す状態となる。
次にユーザU2が"BBAAA"からなるファイルをアップロードしたとすると、そのファイルの先頭から最初の二つのBのビット列が、c5に関連付けられたビット列の最初の二つのBBと一致するので、ステップS1009の処理により、新たな符号c6がBBというビット列に関連付けられ、ステップS1010の処理によりc5が"(c6)BB"と関連付けられる。ステップS1011の処理により、ファイルの内容が"(c6)AAA"となり、ステップS1001に処理が戻った後、ステップS1003、S1004の処理により、新たな符号c7と"(c6)AAA"とが関連付けられる。このとき、符号c6に関連付けられたビット列"BB"の置換数は3となる。なぜならば、図11(5)の状態のときに符号c5に関連付けられたビット列"BBBB"の置換数2に対して、新たにアップロードされたファイルの先頭部分の置換に対応する1を加算して3が算出されたためである。この「3」という値は、言い換えれば、別々にアップロードされた3つのファイル((3)"BBBBBBB"、(5)"BBBB"、(6)"BBAAA")の先頭部分"BB"が、このビット列として1つにまとめられて格納されていることを表わしている。結果として、図11(6)の状態となる。
なお、判断部901、新符号ビット列保持部902を用いて、上記で説明した処理を行なう場合には、受信部107で受信したファイルのビットあるいはバイトの並びの順序を逆にしてから、上記で説明した処理を行なってもよい。多くのファイルは、ヘッダ部が先に来て、ボディ部が後に来るように分かれる場合が多い。このような場合には、ヘッダは異なるが、ボディ部が同じであることが多いからである(例えば、スパムメールなどが典型的な例である)。このような場合には、先にボディ部から処理を行なうようにするために、ファイルのビットあるいはバイトの並びの順序を逆にするようにしてもよい。
(実施形態3:主な効果)
本実施形態により、管理するべきビット列を自動的に収集することが可能となる。
(実施形態4)
実施形態4として、ファイルの予め定められた構造に従って、ファイルを断片に分別し、それぞれの断片をファイルとして圧縮の対象とするファイル格納装置について説明する。
(実施形態4:構成)
図12は、実施形態4に係るファイル格納装置の機能ブロック図を例示する。ファイル格納装置1200は、管理コスト分配部301と、分別部1201とを有する。なお、ファイル格納装置1200は、置換数取得部をさらに有して管理コスト分配部301が置換数依存分配手段を有していてもよいし、判断部及び新符号ビット列保持部を有していてもよい。したがって、本実施形態に係るファイル格納装置は、実施形態1から3のいずれかに係るファイル格納装置が分別部を有する構成となっている。
「分別部」1201は、ファイルの予め定められた構造に従って断片に分別する部である。例えば、一つの電子メールを一つのファイルとした場合、ヘッダ部とボディ部とからなる構造を持つことになるが、この場合、分別部1201は、ヘッダ部からなる断片とボディ部からなる断片に分別する。その他、特定の文法に従って記述されるプログラミング言語などの場合にも、文法の構造に従って、いくつかの断片に分別することができる。また、いわゆるJISコードを用いた文章では、漢字かな混じりの部分の開始と終了とが含まれるので、その開始と終了とを手がかりにして、漢字かな混じりの部分と、そうではないアスキー文字からなる部分に分別が可能である。
図13は、予め定められた構造を持つファイルを例示する。(A)、(B)として、「<SEPARATOR>」により区分される構造を有するファイルを示している。最初の「<SEPARATOR>」より前の部分をヘッダ部、「<SEPARATOR>」が複数ある場合の最後のものより後の部分をフッタ部と呼び、残りの部分をボディ部と呼ぶことにする。すなわち、(A)では、「ABC」がヘッダ部となり、「GHIJKLMNOP」がボディ部となり、フッタ部はない。また、(B)では、「DEF」がヘッダ部となり、「GHIJKLMNOP」がボディ部となり、「XYZ」がフッタ部となる。したがって(A)と(B)とではヘッダ部、フッタ部は異なっているが、ボディ部は一致している。そこで、ヘッダ部、ボディ部、もしあればフッタ部から構成される2つもしくは3つの部分(あるいは「断片」ともいう)に分別し、それぞれの部分ごとに、例えば、実施形態3で説明した処理を行なうと、高い圧縮率を得ることが可能となる。
したがって、本実施形態では、分別部1201により分別された断片を独立のファイルとして圧縮の対象とするものである。
(実施形態4:処理の流れ)
よって、本実施形態において、ファイル格納装置は、受信部107で受信したファイルを、構文解析などを行ない、断片に分別し、それぞれの断片ごとに圧縮部108での圧縮を行ない、その結果を関連づけて、圧縮ファイル格納部110に格納する。「その結果を関連付けて」とは、複数の断片に分別された場合において断片ごとに圧縮された結果を一つのファイルとして伸長部112により伸長して復元が可能となるようにすることをいう。
(実施形態4:主な効果)
本実施形態では、ファイルの予め定められた構造に従って断片に分別し、断片ごとに圧縮を行なうので、高い圧縮率を得ることが可能となる。
(実施形態5)
実施形態5として、特定のビット列の管理のコストの一部または全てを特定のユーザ識別情報に分配するファイル格納装置について説明する。
(実施形態5:構成)
図14は、実施形態5に係るファイル格納装置の機能ブロック図を例示する。ファイル格納装置1400は、管理コスト分配部301と、特定ビット列判断部1401とを有し、管理コスト分配部301は、特定ユーザ分配手段1402を有する。なお、ファイル格納装置1400は、置換数取得部をさらに有して管理コスト分配部301が置換数依存分配手段を有していてもよいし、判断部及び新符号ビット列保持部を有していてもよいし、分別部を有していてもよい。したがって、本実施形態に係るファイル格納装置は、実施形態1から4のいずれか一に係るファイル格納装置が、特定ビット列判断部を有し、その管理コスト分配部が特定ユーザ分配手段を有する構成となっている。
「特定ビット列判断部」1401は、特定のビット列を特定のユーザ識別情報と関連付けて保持されている状況下で、ファイル格納装置1400において、その特定のビット列を用いて圧縮を行なったかどうかを判断する。例えば、符号−ビット列格納部109に符号と関連付けて格納されているビット列の全てまたは一部が、特定のユーザ識別情報と関連づけられており、そのような特定のユーザ識別情報と関連づけられたビット列が符号に置換されたかどうかを判断する。
図15は、ビット列のうちb1がユーザ識別情報U1と関連づけられ、ビット列b5がユーザ識別情報U2と関連付けられ、ビット列b4がユーザ識別情報U3と関連付けられていることを示す表を例示する。このような特定のビット列とユーザ識別情報との関連付けを行なう目的は、特定のビット列についての管理のコストは、特定のビット列に関連付けられたユーザ識別情報に割り振ることである。例えば、ビット列が、商品名を示す場合には、その商品名を含むファイルのうち、商品名の部分の格納コストについては、特定のビット列に関連付けられたユーザ識別情報に課金することを目的としている。これにより、特定の商品名の普及を図り、宣伝広告の効果が生ずる。また、ビット列が特定の思想を表わす文字列であれば、その思想の普及を図ることが可能となる。
「特定ユーザ分配手段」1402は、特定ビット列判断部1401での判断結果が、「用いた」との判断結果である場合には、分配される管理のコストの一部または全てを、特定ビット列と関連付けられたユーザ識別情報で識別されるユーザに対して分配する。
例えば、ユーザ識別情報U1に対して、1500単位の管理のコストが管理コスト分配部301により第一の段階として分配された場合、そのうち、ビット列b4についての管理のコストが50単位であったとすると、50単位の全てを、b4に関連付けられたユーザ識別情報であるU3に対して分配するようにし、U1に対しては残りの1450単位を第二の段階として分配する。あるいは、50単位の一部である25単位をU3に対して分配し、U1に対しては、1475単位を分配してもよい。あるいは、50単位の一倍を越える単位をU3に対して分配し、例えば、1.6倍である80単位を算出し、50単位を超える30単位をU1に対して貨幣価値などに変換して還元してもよい。このような還元を行うことにより、U3以外のユーザ識別情報で識別されるユーザが特定の言葉、標語、スローガン、思想の内容、商品名などを使用するインセンティブを与えることができる。
(実施形態5:主な効果)
本実施形態によれば、特定のビット列の管理のコストを特定のユーザ識別情報に分配することができるので、特手のユーザが普及を望む商品名の知名度などを上げることができる。また、特定の思想の単語のビット列を特定のユーザ識別情報に関連付けて、それぞれのユーザ識別情報に対して算出される料金の度合いを調べることにより、ファイル格納装置のユーザの思想傾向などを知ることができたり、学校における定期試験などにより記述された論文を格納することにより、論文をまとめて採点したりすることもできる。
(実施形態6)
実施形態6として、分配される管理のコストに基づいてファイル格納の料金を算出するファイル格納装置について説明する。
(実施形態6:構成)
図16は、実施形態6に係るファイル格納装置の機能ブロック図を例示する。ファイル格納装置1600は、管理コスト分配部301と、料金算出部1601とを有する。なお、ファイル格納装置1600は、置換数取得部をさらに有して管理コスト分配部301が置換数依存分配手段を有していてもよいし、判断部及び新符号ビット列保持部していてもよいし、分別部を有していてもよい。また、特定ビット列判断部を有し、管理コスト分配部が特定ユーザ分配手段を有していてもよい。したがって、本実施形態に係るファイル格納装置は、実施形態1から5のいずれかに係るファイル格納装置が料金算出部1401を有する構成となっている。
「料金算出部」1601は、管理コスト分配部301で分配された管理のコストに基づいて、ファイル格納の料金を算出する。「基づいて」とは、ユーザ識別情報ごとに分配された管理のコストを参照して、一定の規則を用いて料金を算出することをいう。例えば、管理のコストが、符号−ビット列格納部109により格納される符号とビット列との関連付けの格納に必要なディスクスペースであれば、ユーザ識別情報ごとに分配されたディスクスペースと、単位ディスクスペースあたりの料金との積を求めることにより、料金を算出する。また、管理のコストと料金との対応表があり、その表を管理のコストにより参照して料金を算出するようになっていてもよい。また、所定の料金以上の料金であれば、割引などを行なってもよい。また、一定額の料金に満たない場合には、その一定額を最低の料金として算出してもよい。また、料金が所定額を超える場合には、その所定額を料金として算出して、定額制のようにしてもよい。
(実施形態6:料金算出の処理の例)
料金算出部による料金の算出は、管理コスト分配部301による管理のコスト分配が行なわれる都度行なわれるようになっていてもよい。例えば、毎月の最終日に管理のコスト分配が行なわれるようになっていれば、毎月の最終日に料金の算出を行なう。また、毎日定まった時間に管理コスト分配部301による管理のコスト分配が行なわれる場合には、ユーザ識別情報ごとに、分配された管理のコストの月間の移動平均値などの平均値を求めて、その平均値に基づいて、料金算出部1601が料金を算出するようになっていてもよい。
(実施形態6:主な効果)
本実施形態では、管理のコストの分配に応じて料金を算出するので、サービスの提供者は、ファイルの圧縮格納に必要な対価をユーザ識別情報に分配して得ることができる。
ファイル格納装置の前提となる構成を示す機能ブロック図 ユーザの識別情報であるユーザ識別情報と、ファイルと、ビット列と、符号との関係を例示する図 実施形態1に係るファイル格納装置の機能ブロック図 管理のコストを分配するために参照される表の一例図 実施形態1に係るファイル格納装置の処理のフローチャート ファイルの圧縮の程度に基づいて管理のコスト分配するために用いられる表の一例図 実施形態2に係るファイル格納装置の機能ブロック図 置換数取得部701が取得する置換の数を示す表の一例図 実施形態3に係るファイル格納装置の機能ブロック図 実施形態3に係るファイル格納装置の処理のフローチャート 実施形態3に係るファイル格納装置の処理の具体例を示す図 実施形態4に係るファイル格納装置の機能ブロック図 予め定められたファイルの構造の一例図 実施形態5に係るファイル格納装置の機能ブロック図 ビット列とユーザ識別情報との関連付けを示す表の一例図 実施形態6に係るファイル格納装置の機能ブロック図
符号の説明
300 ファイル格納装置
301 管理コスト分配部

Claims (8)

  1. 公衆ネットワークを介して不特定多数のユーザが操作する端末装置と接続され、符号と関連付けられて管理されるビット列と一致するビット列を前記符号に置換することにより、前記端末装置からユーザ識別情報と関連付けて入力されるファイルを圧縮して格納するファイル格納装置であって、
    前記管理されたビット列は、互いに異なるユーザ識別情報と関連づけられて入力された複数のファイルの圧縮処理において共通して参照されることを特徴とし、
    ユーザ識別情報に関連付けて、そのユーザ識別情報と関連付けられて入力されたファイルに対して置換されたビット列ごとに置換の有無を取得する置換有無取得部と、
    前記ビット列を管理するための管理コストをユーザ識別情報ごとに分配する管理コスト分配部を有し、
    前記管理コスト分配部は、前記置換有無取得部で取得された置換の有無を用いて前記管理コストをユーザ識別情報ごとに分配する置換有無依存分配手段を有する
    ファイル格納装置。
  2. 公衆ネットワークを介して不特定多数のユーザが操作する端末装置と接続され、符号と関連付けられて管理されるビット列と一致するビット列を前記符号に置換することにより、前記端末装置からユーザ識別情報と関連付けて入力されるファイルを圧縮して格納するファイル格納装置であって、
    前記管理されたビット列は、互いに異なるユーザ識別情報と関連づけられて入力された複数のファイルの圧縮処理において共通して参照されることを特徴とし、
    ユーザ識別情報に関連づけて、そのユーザ識別情報と関連付けられて入力されたファイルに対して置換されたビット列ごとに置換の数を取得する置換数取得部と、
    前記ビット列を管理するための管理コストをユーザ識別情報ごとに分配する管理コスト分配部を有し、
    前記管理コスト分配部は、前記置換数取得部で取得された置換の数を用いて前記管理コストを分配する置換数依存分配手段を有するファイル格納装置。
  3. ファイルの先頭から開始するビット列が、符号と関連付けられた一または複数のビット列と一致するか判断する判断部と、
    一致すると判断された部分以降のビット列を新たな符号と関連付けて保持する新符号ビット列保持部と、
    を有する請求項1または2に記載のファイル格納装置。
  4. ファイルの予め定められた構造に従って断片に分別する分別部を有し、
    前記分別部により分別された断片を独立のファイルとして前記圧縮の対象とする請求項1から3のいずれか一に記載のファイル格納装置。
  5. 特定のビット列を特定のユーザ識別情報と関連づけて保持し、
    ファイル格納装置において前記特定のビット列を用いて圧縮を行ったか判断する特定ビット列判断部とを有し、
    前記管理コスト分配部は、特定ビット列判断部での判断結果が用いたとの判断結果であ
    る場合には、分配される管理のコストの一部または全てを、特定ビット列と関連付けられ
    たユーザ識別情報で識別されるユーザに対して分配する特定ユーザ分配手段を有する請求
    項1から4のいずれか一に記載のファイル格納装置。
  6. 前記管理コスト分配部で分配された管理のコストに基づいてファイル格納の料金を算出
    する料金算出部を有する請求項1から5のいずれか一に記載のファイル格納装置。
  7. 公衆ネットワークを介して不特定多数のユーザが操作する端末装置と接続され、符号と関連付けられて管理されるビット列と一致するビット列を前記符号に置換することにより、前記端末装置からユーザ識別情報と関連付けて入力されるファイルを圧縮して格納するファイル格納装置の動作方法であって、
    前記管理されたビット列は、互いに異なるユーザ識別情報と関連づけられて入力された複数のファイルの圧縮処理において共通して参照されることを特徴とし、
    ユーザ識別情報に関連付けて、そのユーザ識別情報と関連付けられて入力されたファイルに対して置換されたビット列ごとに置換の有無を取得する置換有無取得ステップと、
    前記ビット列を管理するための管理コストをユーザ識別情報ごとに分配する管理コスト分配ステップを含み、
    前記管理コスト分配ステップは、前記置有無取得ステップで取得された置換の有無を用いて前記管理コストを分配する置換有無依存分配ステップをさらに含むファイル格納装置の動作方法。
  8. 公衆ネットワークを介して不特定多数のユーザが操作する端末装置と接続され、符号と関連付けられて管理されるビット列と一致するビット列を前記符号に置換することにより、前記端末装置からユーザ識別情報と関連付けて入力されるファイルを圧縮して格納するファイル格納装置の動作方法であって、
    前記管理されたビット列は、互いに異なるユーザ識別情報と関連づけられて入力された複数のファイルの圧縮処理において共通して参照されることを特徴とし、
    ユーザ識別情報に関連づけて、そのユーザ識別情報と関連付けられて入力されたファイ
    ルに対して置換されたビット列ごとに置換の数を取得する置換数取得ステップと、
    前記ビット列を管理するための管理コストをユーザ識別情報ごとに分配する管理コスト分配ステップを有し、
    前記管理コスト分配ステップは、前記置換数取得ステップで取得された置換の数を用いて前記管理のコストを分配する置換数依存分配ステップを含むファイル格納装置の動作方法。
JP2006040311A 2006-02-17 2006-02-17 ファイル格納装置 Expired - Fee Related JP4256397B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006040311A JP4256397B2 (ja) 2006-02-17 2006-02-17 ファイル格納装置
US11/705,840 US9262426B2 (en) 2006-02-17 2007-02-14 File storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006040311A JP4256397B2 (ja) 2006-02-17 2006-02-17 ファイル格納装置

Publications (2)

Publication Number Publication Date
JP2007219882A JP2007219882A (ja) 2007-08-30
JP4256397B2 true JP4256397B2 (ja) 2009-04-22

Family

ID=38429651

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006040311A Expired - Fee Related JP4256397B2 (ja) 2006-02-17 2006-02-17 ファイル格納装置

Country Status (2)

Country Link
US (1) US9262426B2 (ja)
JP (1) JP4256397B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8902582B2 (en) 2012-05-22 2014-12-02 Lear Corporation Coldplate for use with a transformer in an electric vehicle (EV) or a hybrid-electric vehicle (HEV)
US8971041B2 (en) 2012-03-29 2015-03-03 Lear Corporation Coldplate for use with an inverter in an electric vehicle (EV) or a hybrid-electric vehicle (HEV)
US8971038B2 (en) 2012-05-22 2015-03-03 Lear Corporation Coldplate for use in an electric vehicle (EV) or a hybrid-electric vehicle (HEV)
US9030822B2 (en) 2011-08-15 2015-05-12 Lear Corporation Power module cooling system
US9076593B2 (en) 2011-12-29 2015-07-07 Lear Corporation Heat conductor for use with an inverter in an electric vehicle (EV) or a hybrid-electric vehicle (HEV)
US9362040B2 (en) 2014-05-15 2016-06-07 Lear Corporation Coldplate with integrated electrical components for cooling thereof
US9615490B2 (en) 2014-05-15 2017-04-04 Lear Corporation Coldplate with integrated DC link capacitor for cooling thereof

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7439937B2 (en) * 2006-04-14 2008-10-21 Microsoft Corporation Appropriately rendering terminal server graphical data at multiple client side monitors
US7945595B1 (en) 2008-05-12 2011-05-17 Adobe Systems Incorporated System and method for generating an item list in electronic content
US9176943B2 (en) 2008-05-12 2015-11-03 Adobe Systems Incorporated Comment presentation in electronic documents
US7949633B1 (en) 2008-05-12 2011-05-24 Adobe Systems Incorporated Shared edit access of electronic content
US9329744B2 (en) 2008-05-12 2016-05-03 Adobe Systems Incorporated Segmented scroll bar
US8996621B2 (en) 2008-05-12 2015-03-31 Adobe Systems Incorporated Asynchronous comment updates
US10055392B2 (en) * 2008-05-12 2018-08-21 Adobe Systems Incorporated History-based archive management
US9418054B2 (en) 2008-05-12 2016-08-16 Adobe Systems Incorporated Document comment management
WO2014002161A1 (ja) * 2012-06-25 2014-01-03 富士通株式会社 情報処理装置、ファイル管理方法、及びファイル管理プログラム
US20230084574A1 (en) * 2021-09-16 2023-03-16 UncommonX Inc. Bit sequence storage method and system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE8307228D0 (sv) * 1983-12-30 1983-12-30 Grundstenen 16808 Ab Datakomprimering
US5533051A (en) * 1993-03-12 1996-07-02 The James Group Method for data compression
JP3273119B2 (ja) * 1995-09-29 2002-04-08 京セラ株式会社 データ圧縮・伸長装置
US5951623A (en) * 1996-08-06 1999-09-14 Reynar; Jeffrey C. Lempel- Ziv data compression technique utilizing a dictionary pre-filled with frequent letter combinations, words and/or phrases
KR100597513B1 (ko) * 1999-08-13 2006-07-10 후지쯔 가부시끼가이샤 파일 처리 방법, 데이터 처리 장치 및 기억 매체
KR20010089012A (ko) 2000-03-20 2001-09-29 전성영 인터넷 금고 서비스 시스템 및 그 방법
JP2002197001A (ja) * 2000-12-27 2002-07-12 Fujitsu Ltd クライアント・サーバ型のシステムにおける情報の通信方法
JP4083997B2 (ja) * 2001-04-16 2008-04-30 株式会社日立製作所 レンタルストレージのサービス方法、および、レンタルストレージシステム
JP2003067253A (ja) 2001-08-24 2003-03-07 Link:Kk 安全なネットワーク上でのデータの保管方法
JP2003116040A (ja) * 2001-10-04 2003-04-18 Nikon Gijutsu Kobo:Kk レンタルデジタルカメラシステム、管理装置、およびデジタルカメラ
US6941328B2 (en) * 2002-01-22 2005-09-06 International Business Machines Corporation Copy process substituting compressible bit pattern for any unqualified data objects
US6678828B1 (en) 2002-07-22 2004-01-13 Vormetric, Inc. Secure network file access control system

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9030822B2 (en) 2011-08-15 2015-05-12 Lear Corporation Power module cooling system
US9774247B2 (en) 2011-08-15 2017-09-26 Lear Corporation Power module cooling system
US9076593B2 (en) 2011-12-29 2015-07-07 Lear Corporation Heat conductor for use with an inverter in an electric vehicle (EV) or a hybrid-electric vehicle (HEV)
US8971041B2 (en) 2012-03-29 2015-03-03 Lear Corporation Coldplate for use with an inverter in an electric vehicle (EV) or a hybrid-electric vehicle (HEV)
US8902582B2 (en) 2012-05-22 2014-12-02 Lear Corporation Coldplate for use with a transformer in an electric vehicle (EV) or a hybrid-electric vehicle (HEV)
US8971038B2 (en) 2012-05-22 2015-03-03 Lear Corporation Coldplate for use in an electric vehicle (EV) or a hybrid-electric vehicle (HEV)
US9362040B2 (en) 2014-05-15 2016-06-07 Lear Corporation Coldplate with integrated electrical components for cooling thereof
US9615490B2 (en) 2014-05-15 2017-04-04 Lear Corporation Coldplate with integrated DC link capacitor for cooling thereof

Also Published As

Publication number Publication date
US20070198616A1 (en) 2007-08-23
JP2007219882A (ja) 2007-08-30
US9262426B2 (en) 2016-02-16

Similar Documents

Publication Publication Date Title
JP4256397B2 (ja) ファイル格納装置
JP5782214B2 (ja) 情報検索プログラム、情報検索装置および情報検索方法
US7539685B2 (en) Index key normalization
JP3859313B2 (ja) タグ文書の圧縮装置および復元装置,圧縮方法および復元方法,圧縮/復元装置および圧縮/復元方法並びに圧縮,復元もしくは圧縮/復元プログラムを記録したコンピュータ読み取り可能な記録媒体
JP3337633B2 (ja) データ圧縮方法及びデータ復元方法並びにデータ圧縮プログラム又はデータ復元プログラムを記録したコンピュータ読み取り可能な記録媒体
JP4680925B2 (ja) 取引エンジンによる市場データメッセージフォーマットを使用してのマス・クオートメッセージ処理
US20100085222A1 (en) Information processing apparatus, information processing method, and computer product
CN113901006B (zh) 大规模基因测序数据存储与查询系统
US7647291B2 (en) B-tree compression using normalized index keys
US20050219076A1 (en) Information management system
CN106547911A (zh) 一种海量小文件的存取方法和系统
US20200272784A1 (en) A method and system for compressing data
US20090132564A1 (en) Information processing apparatus, control method, and storage medium
Favretti et al. CORIS/CODIS: A corpus of written Italian based on a defined and a dynamic model
JPH10261969A (ja) データ圧縮方法および装置
Hasemann et al. The wiselib tuplestore: a modular RDF database for the internet of things
Govindan et al. An intelligent text data encryption and compression for high speed and secure data transmission over internet
KR20180099136A (ko) 네트워크 패킷의 중복 데이터 제거 장치 및 그 방법, 중복제거파일 복원 장치
CN106571909A (zh) 数据加密方法及装置
Jain et al. An efficient compression algorithm (ECA) for text data
US20020184617A1 (en) Method, computer system and computer program product for determining the equivalence of two blocks of assignment statements
JP2000194617A (ja) 電子メール蓄積方法と電子メール蓄積装置
CN102567294A (zh) 文本数据处理方法和装置
JP5494860B2 (ja) 情報管理プログラム、情報管理装置および情報管理方法
KR102434455B1 (ko) 검색 데이터베이스 구축을 위한 문서 정보처리 시스템 및 문서 정보처리 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080616

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20080616

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20080708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080722

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080922

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081209

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090106

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

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

Free format text: PAYMENT UNTIL: 20120206

R150 Certificate of patent or registration of utility model

Ref document number: 4256397

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120206

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120206

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130206

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20130206

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140206

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees