JPWO2011111837A1 - 情報処理方法、情報処理装置、プログラム及び記録媒体 - Google Patents

情報処理方法、情報処理装置、プログラム及び記録媒体 Download PDF

Info

Publication number
JPWO2011111837A1
JPWO2011111837A1 JP2012504546A JP2012504546A JPWO2011111837A1 JP WO2011111837 A1 JPWO2011111837 A1 JP WO2011111837A1 JP 2012504546 A JP2012504546 A JP 2012504546A JP 2012504546 A JP2012504546 A JP 2012504546A JP WO2011111837 A1 JPWO2011111837 A1 JP WO2011111837A1
Authority
JP
Japan
Prior art keywords
directory
numerical value
identifier
information
digit
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.)
Granted
Application number
JP2012504546A
Other languages
English (en)
Other versions
JP5129409B2 (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.)
Rakuten Group Inc
Original Assignee
Rakuten Inc
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 Rakuten Inc filed Critical Rakuten Inc
Priority to JP2012504546A priority Critical patent/JP5129409B2/ja
Application granted granted Critical
Publication of JP5129409B2 publication Critical patent/JP5129409B2/ja
Publication of JPWO2011111837A1 publication Critical patent/JPWO2011111837A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation

Abstract

識別情報取得部74は、記録するかまたは読み出す記録情報を識別するための識別情報を取得する。素数取得部75は、同じ桁数の素数の中から、識別情報に応じた素数を取得する。演算部76は、識別情報の桁ごとの値と、取得した素数から桁に応じた差分を減じて得られる差とを乗じて得られる積の総和であって、識別情報の総ての桁についての総和を演算する。パス決定部77は、総和から、記録情報が格納されるディレクトリを示すパスを決定する。本発明は、NFS(Network File System)に適用できる。

Description

本発明は、情報処理方法、情報処理装置、プログラム及び記録媒体に関する。
IETF(Internet Engineering Task Force)によるRFC(Request for Comments)3530などで規定されている分散ファイルシステムおよびそのプロトコルであるNFS(Network File System)が広く使用されている。分散ファイルシステムは、単一のファイルシステムが複数のコンピュータノードに分散して存在するネットワークファイルシステムであり、NFSを用いることでネットワークに分散された記憶装置にファイルを格納したり、当該記憶装置のファイルを参照したりすることができる。ネットワークに分散された記憶装置を利用するためには、ファイルの格納場所を管理する手法が必要となる。ファイルの格納場所を管理する手法として、以下の文献が開示されている。
特許文献1には、任意の一つのディレクトリに含まれるすべてのファイル名をフルパス付きで格納するとともにそれぞれのファイルの記憶装置内における格納位置の情報をファイル名に関連付けて格納するテーブルと、入力ファイル名がフルパス付きのときフルパス付きの入力ファイル名を用いてテーブルを検索し入力ファイル名の記憶装置内における格納位置の情報を検索する検索手段とを設けることが記載されている。この場合、ユーザ若しくはプログラムから見える入力ファイル名は、階層構造を持つ一般的なファイルシステムとまったく変わりなく、外的な多層構造を維持でき、しかも、任意の一つのディレクトリに含まれるすべてのファイル名が一つのテーブルで管理されるため、内的にフラットなファイル管理とすることができる。
特許文献2には、ディレクトリ階層に存在するエントリの登録や削除、ID更新時に、エントリの先祖関係を管理する表を変更するエントリ管理手段と、属性条件によるエントリ検索を行うフィルタ検索手段と、エントリの先祖関係の表を利用して範囲検索を行うスコープ判定手段から構成され、ディレクトリ検索時には、フィルタ検索手段で属性条件を満たすエントリを取得し、スコープ判定手段でその中でさらに範囲条件を満たすエントリを絞り込むことが記載されている。
特許文献3には、プロセッサ内で、インデックス生成部は、ファイル名とインデックスが一対一対応の関数を用いて、読出対象ファイルを表すファイル名から、読出対象ファイルのファイル管理情報を示すインデックスを生成し、インデックス・ファイル管理情報対応付け部は、インデックス順にファイル管理情報が並んだファイル管理情報配列から、インデックス生成部で生成されたインデックスに対応するファイル管理情報を読み出して、ファイル管理情報に指定された読出対象ファイルに関する記憶装置内の格納位置を得ることが記載されている。
特開平10−74154号公報 特開2000−242538号公報 特開2004−185214号公報
特許文献1乃至特許文献3に記載の発明においては、入力ファイル名がフルパス付きのときフルパス付きの入力ファイル名を用いてテーブルを検索し入力ファイル名の記憶装置内における格納位置の情報を検索するなど、テーブルやインデックスなどを記録し、これを検索しなければならず、記録容量も検索時間も必要になる。
このような課題を解決するために、与えられた入力に対して128ビットのハッシュ値を出力するハッシュ関数であるMD5(Message Digest Algorithm 5)を用いてパスを決定することも考えられる。しかしながら、MD5の演算には、複雑な計算が必要とされるので、CPU(Central Processing Unit)の負荷が大きくなり、時間もかかる。また、MD5は、本来、電子署名向けに開発されたものであり、フォルダを指定するために4桁程度の値を生成させるには、オーバースペックであり、そこまで、厳密なものは不要である。
本発明は、このような状況に鑑みてなされたものであり、テーブルやインデックスなどを必要とせず、簡単な計算で、迅速に、偏りなく記録できるパスを求めることができるようにするものである。
本発明の一側面の情報処理方法は、記録情報の格納先のディレクトリを管理する情報処理方法であって、URLのアドレス情報から前記記録情報を識別するための識別子を取得する識別子取得ステップと、前記識別子から当該識別子を代表する複数桁の数値を算出する数値算出ステップと、前記数値で定まる整数と前記数値の位の数字とを用いて演算された値をさらに相互に演算し、演算結果をもとに前記記録情報の格納先のディレクトリを決定する決定ステップと、を備えて構成される。なお、ここでいう数字とは、0〜9以外にアルファベットで表記された数字(例えば16進数のA〜F)を含むものである。
ここで、前記数値算出ステップでは、完全ハッシュ関数ではないハッシュ関数を用いて前記数値を算出してもよい。また、前記決定ステップでは、予め用意された整数の集合から前記数値を用いて選択された異なる整数を前記数値の位の数字との演算に用いてもよい。また、前記決定ステップにおいて決定された前記ディレクトリが存在しない場合、前記ディレクトリを生成する生成ステップをさらに含んでもよい。
本発明の一側面の情報処理装置は、記録情報の格納先のディレクトリを管理する情報処理装置であって、URLのアドレス情報から前記記録情報を識別するための識別子を取得する識別子取得部と、前記識別子から当該識別子を代表する複数桁の数値を算出する数値算出部と、前記数値で定まる整数と前記数値の位の数字とを用いて演算された値をさらに相互に演算し、演算結果をもとに前記記録情報の格納先のディレクトリを決定する決定部と、を備えて構成される。
本発明の一側面のプログラムは、記録情報の格納先のディレクトリを管理するプログラムであって、URLのアドレス情報から前記記録情報を識別するための識別子を取得する識別子取得ステップと、前記識別子から当該識別子を代表する複数桁の数値を算出する数値算出ステップと、前記数値で定まる整数と前記数値の位の数字とを用いて演算された値をさらに相互に演算し、演算結果をもとに前記記録情報の格納先のディレクトリを決定する決定ステップと、をコンピュータに実行させるためのプログラムとして構成される。
本発明の一側面の記録媒体は、記録情報の格納先のディレクトリを管理するプログラムを記録した記録媒体であって、URLのアドレス情報から前記記録情報を識別するための識別子を取得する識別子取得ステップと、前記識別子から当該識別子を代表する複数桁の数値を算出する数値算出ステップと、前記数値で定まる整数と前記数値の位の数字とを用いて演算された値をさらに相互に演算し、演算結果をもとに前記記録情報の格納先のディレクトリを決定する決定ステップと、をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体として構成される。
本発明の一側面においては、URLのアドレス情報から記録情報を識別するための識別子が取得され、識別子から当該識別子を代表する複数桁の数値が算出され、数値の位の数字と、数値で定まる整数とを演算した値をさらに相互に演算し、演算結果をもとに記録情報の格納先のディレクトリが決定される。
本発明の一側面によれば、URLのアドレス情報からディレクトリを決定することができるので、テーブルやインデックスなどを必要とせず、簡単な計算で、迅速に、偏りなく記録できるパスを求めることが可能となる。さらに、URLから一義的にディレクトリを求めることができるとともに、識別子を代表する複数桁の数値の偏りによらず各ディレクトリに分散してファイルを格納することが可能となる。
本発明の一実施の形態の情報提供システムの構成の例を示す図である。 Webサーバ11のハードウェアの構成例を示すブロック図である。 プログラムを実行するWebサーバ11において実現される機能の構成の例を示すブロック図である。 パスの例を説明する図である。 サーバ群13にファイルとして記録されるデータの例を示す図である。 ファイルの記録の処理を説明するフローチャートである。 パスの決定の処理の詳細を説明するフローチャートである。 パスの決定の処理の詳細を説明するフローチャートである。 ファイルの読み出しの処理を説明するフローチャートである。 計算時間とディレクトリに記録されるファイルの最大数とを示す図である。 本実施の形態によるディレクトリに記録されるファイルの数の分布を示す図である。 従来の方式によるディレクトリに記録されるファイルの数の分布を示す図である。
以下に本発明の実施の形態を説明するが、本発明の構成要件と、発明の詳細な説明に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、発明の詳細な説明に記載されていることを確認するためのものである。従って、発明の詳細な説明中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の一側面のプログラムは、記録するかまたは読み出す記録情報を識別するための識別情報を取得する識別情報取得ステップ(例えば、図7のステップS31の手続き)と、同じ桁数(例えば、3桁)の素数の中から、前記識別情報に応じた素数を取得する素数取得ステップ(例えば、図7のステップS33およびステップS34の手続き)と、前記識別情報の桁ごとの値と、取得した前記素数から前記桁に応じた差分(例えば、最上位からの桁数−1)を減じて得られる差とを乗じて得られる積の総和であって、前記識別情報の総ての桁についての総和を演算する演算ステップ(例えば、図7のステップS38乃至ステップS42の手続き)と、前記総和から、前記記録情報が格納されるディレクトリを示すパスを決定する決定ステップ(例えば、図8のステップS43乃至ステップS48の手続き)とを含む処理をコンピュータに行わせる。
決定された前記パスで示される前記ディレクトリが無い場合、前記パスで示される前記ディレクトリを生成する生成ステップ(例えば、図6のステップS14の手続き)をさらに含む処理をコンピュータに行わせることができる。
本発明の一側面の情報処理装置は、記録するかまたは読み出す記録情報を識別するための識別情報を取得する識別情報取得手段(例えば、図3の識別情報取得部74)と、同じ桁数(例えば、3桁)の素数の中から、前記識別情報に応じた素数を取得する素数取得手段(例えば、図3の素数取得部75)と、前記識別情報の桁ごとの値と、取得した前記素数から前記桁に応じた差分(例えば、最上位からの桁数−1)を減じて得られる差とを乗じて得られる積の総和であって、前記識別情報の総ての桁についての総和を演算する演算手段(例えば、図3の演算部76)と、前記総和から、前記記録情報が格納されるディレクトリを示すパスを決定する決定手段(例えば、図3のパス決定部77)とを備える。
本発明の一側面の情報処理方法は、記録するかまたは読み出す記録情報を識別するための識別情報を取得する識別情報取得ステップ(例えば、図7のステップS31の手続き)と、同じ桁数(例えば、3桁)の素数の中から、前記識別情報に応じた素数を取得する素数取得ステップ(例えば、図7のステップS33およびステップS34の手続き)と、前記識別情報の桁ごとの値と、取得した前記素数から前記桁に応じた差分(例えば、最上位からの桁数−1)を減じて得られる差とを乗じて得られる積の総和であって、前記識別情報の総ての桁についての総和を演算する演算ステップ(例えば、図7のステップS38乃至ステップS42の手続き)と、前記総和から、前記記録情報が格納されるディレクトリを示すパスを決定する決定ステップ(例えば、図8のステップS43乃至ステップS48の手続き)とを含む。
図1は、本発明の一実施の形態の情報提供システムの構成の例を示す図である。情報提供システムは、Webサーバ11、ネットワーク12、およびサーバ群13からなり、インターネット21を介して、クライアント22−1乃至22−3のそれぞれに、ウェブページのデータを提供する。
Webサーバ11は、クライアント22−1乃至22−3からの要求に応じて、インターネット21を介して、要求してきた相手にウェブページのデータを送信する。例えば、Webサーバ11は、クライアント22−1乃至22−3に、インターネット21を介して、商品を販売するなどの電子商取引のウェブページのデータを送信する。
その際、Webサーバ11は、1つの記録領域を提供するサーバ群13から、ネットワーク12を介して、ファイルとして記録されている各種のデータを読み出す。また、Webサーバ11は、ネットワーク12を介して、サーバ群13に各種のデータをファイルとして記録させる。
Webサーバ11は、サーバ群13にファイルを記録させる場合、または、サーバ群13からファイルを読み出す場合、そのファイルが格納されるディレクトリを示すパスを決定する。ネットワーク12は、いわゆる内部ネットワークであり、10 gigabit Ethernet(登録商標)など、帯域の大きなネットワークからなる。ネットワーク12は、Webサーバ11とサーバ群13とを相互に接続する。
サーバ群13は、NFSサーバ14−1乃至NFSサーバ14−N(Nは、正の整数)からなる。NFSサーバ14−1乃至NFSサーバ14−Nのそれぞれのストレージの領域は、1つの記録領域としてマウントされ、1つの記録領域として記録または読み出しができるように構成されている。すなわち、Webサーバ11は、NFSサーバ14−1乃至NFSサーバ14−Nからなるサーバ群13の記録領域を、自己のストレージの記録領域と同様に仮想的に取り扱うことができる。
図2は、Webサーバ11のハードウェアの構成例を示すブロック図である。
Webサーバ11において、CPU(Central Processing Unit)31,ROM(Read Only Memory)32,RAM(Random Access Memory)33は、バス34により相互に接続されている。
バス34には、さらに、入出力インタフェース35が接続されている。入出力インタフェース35には、キーボード、マウス、マイクロホンなどよりなる入力部36、ディスプレイ、スピーカなどよりなる出力部37、ハードディスクや不揮発性のメモリなどよりなる記憶部38、ネットワークインタフェースなどよりなる通信部39、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア41を駆動するドライブ40が接続されている。
以上のように構成されるWebサーバ11(コンピュータ)では、CPU31が、例えば、記憶部38に記憶されているプログラムを、入出力インタフェース35及びバス34を介して、RAM33にロードして実行することにより、後述する一連の処理が行われる。
Webサーバ11(CPU31)が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア41に記録して、あるいは、ローカルエリアネットワーク、インターネット21、ネットワーク12、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
そして、プログラムは、リムーバブルメディア41をドライブ40に装着することにより、入出力インタフェース35を介して、記憶部38に記憶することで、コンピュータにインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部39で受信し、記憶部38に記憶することで、コンピュータにインストールすることができる。その他、プログラムは、ROM32や記憶部38にあらかじめ記憶しておくことで、コンピュータにあらかじめインストールしておくことができる。
図3は、プログラムを実行するWebサーバ11において実現される機能の構成の例を示すブロック図である。すなわち、Webサーバ11がプログラムを実行すると、Webサーバ機能51、ページデータ生成部52、ページ設定部53、およびファイル読み書き制御部54が実現される。
Webサーバ機能51は、例えば、Apache HTTP Serverなどの、いわゆるWebサーバプログラムを実行することにより実現され、HTTP(Hypertext Transfer Protocol)に規定される手順に基づいて、テキストまたは画像などの各種のオブジェクトが含まれるHTML(Hypertext Markup Language)方式またはXML(Extensible Markup Language)方式などのウェブページのデータを提供する。
ページデータ生成部52は、Webサーバ機能51によって提供される、ウェブページのデータを生成する。ページ設定部53は、クライアント22−1乃至22−3のそれぞれに提供するウェブページに配置する、画像やテキストなどの各種のデータを設定する。
ファイル読み書き制御部54は、ページ設定部53からの要求に応じて、ウェブページに配置される、画像やテキストなどの各種のデータをファイルとしてネットワーク12を介してサーバ群13に記録させる。また、クライアント22−1乃至22−3のそれぞれにウェブページを提供する場合、ファイル読み書き制御部54は、ページデータ生成部52からの要求に応じて、ネットワーク12を介してサーバ群13から、ウェブページに配置される、画像やテキストなどの各種のデータを読み出す。
ファイル読み書き制御部54は、ネットワーク12を介して、サーバ群13にファイルを記録させるか、または、サーバ群13からファイルを読み出す場合、ファイルが記録されるディレクトリおよびファイル名を示すパスを決定する。パスに示されるディレクトリは、サーバ群13の記録領域を、階層的な木構造によって表現する記録単位である。それぞれのディレクトリには、1または複数のファイルが格納される。
図4は、電子商取引のウェブページに掲載する商品に関するデータをファイルとして記録する場合のパスの例を説明する図である。商品を販売するウェブページのURL(Uniform Resource Locator)方式のアドレス(図中の#{shop_url})毎に、そのウェブページに掲載される商品(図4中のitem)に関する商品情報(図4中の#{manage_numberl}_item.xml)とその商品の在庫の有無を示す在庫情報(図4中の#{manage_numberl}_inv.xml)とが、所定のディレクトリに格納される。このとき、商品情報と在庫情報を識別するための識別情報(識別子)として、商品の商品管理番号#{manage_numberl}から、商品情報と在庫情報とを格納するためのディレクトリを示すためのパス初期値Mが求められる。また、URL方式のアドレス情報に含まれる商品管理番号から商品情報と在庫情報とを格納するためのディレクトリを示すためのパス初期値Mを求めてもよい。
仮に、このパス初期値Mが、5D79・・・である場合、パス初期値Mの上位4桁の5D79から、パスが決定される。すなわち、商品情報と在庫情報とを格納するディレクトリとして、5Dである上位のディレクトリが決定され、5Dである上位のディレクトリの下の79である下位のディレクトリが決定されて、商品情報と在庫情報とは、5Dである上位のディレクトリの下の79である下位のディレクトリに格納される。この場合、ファイル読み書き制御部54は、5Dである上位のディレクトリと、79である下位のディレクトリとを示すパスを決定する。なお、この場合、レイアウト情報は、別途記録される。なお、パス初期値Mの上位4桁を用いてパスを決定する例を説明したが、4桁より多い桁数を用いてパスを決定してもよい。
図5は、サーバ群13にファイルとして記録される、電子商取引のウェブページに掲載する商品に関するデータの例を示す図である。例えば、電子商取引のウェブページに、商品説明文、商品の画像、商品の動画、商品名、商品情報、フォーム、および販売方法別説明文が配置される場合、商品説明パーツ(商品説明データ)と、サーバ群13にファイルFとして記録される商品情報(図5中の商品情報XML(図4中の#{manage_numberl}_item.xml))とによって、ウェブページの商品説明文のデータが生成され、また、商品情報パーツ(商品情報データ)と、サーバ群13にファイルFとして記録される商品情報(図5中の商品情報XML)および在庫情報(図5中の在庫情報XML(図4中の#{manage_numberl}_inv.xml))とによって、ウェブページの商品情報のデータが生成される。
なお、同様に、サーバ群13にファイルとして記録される商品情報(商品情報XML)を用いて、ウェブページの商品の画像、商品の動画、商品名、フォーム、および販売方法別説明文のデータが生成される。さらに、サーバ群13にファイルとして記録される商品情報(商品情報XML)を用いて、ウェブページのナビゲーションおよびフッター(図示せず)のデータが生成される。
図3に戻り、ファイル読み書き制御部54は、記録制御部71、ディレクトリ生成部72、読み出し制御部73、識別情報取得部74(識別子取得部)、素数取得部75、演算部76(数値算出部)、パス決定部77(決定部)、および素数表記憶部78を含む。記録制御部71は、分散ファイルシステムのプロトコルに基づいて、ネットワーク12を介したサーバ群13への、ファイルとしての各種のデータの記録を制御する。ディレクトリ生成部72は、サーバ群13の記録領域に、ファイルを記録しようとするディレクトリが無い場合、ディレクトリを生成する。
読み出し制御部73は、分散ファイルシステムのプロトコルに基づいて、ネットワーク12を介した、サーバ群13からのファイルの読み出しを制御する。識別情報取得部74は、ファイルとして記録するかまたは読み出すデータ(記録情報)を識別するための識別情報を取得する。具体的には、例えば、電子商取引のウェブページに掲載する商品に関するデータをファイルとして記録するかまたは読み出す場合、識別情報は、商品を特定する商品管理番号とされる。
素数取得部75は、素数表記憶部78に記憶されている、同じ桁数の素数の中から、取得された識別情報に応じた素数を取得する。演算部76は、識別情報の桁ごとの値と、取得した素数から桁に応じた差分を減じて得られる差とを乗じて得られる積の総和であって、識別情報の総ての桁についての総和を演算する。演算部76における総和の演算の詳細は後述する。
パス決定部77は、演算部76において演算された総和から、ファイルとしてのデータ(記録情報)が格納されるディレクトリを示すパスを決定する。素数表記憶部78は、同じ桁数の素数が配置された素数表を記憶する。具体的には、例えば、素数表記憶部78は、101から997までの100の位の素数(3桁の素数)が配置された素数表を記憶する。素数表に配置される素数は、大きさの順や、またはランダムに並べられる。なお、素数の桁数は、3に限定されるものではなく、2,4,5,6などいずれであってもよい。さらに、素数は、配列とするか、またはポインタにより配置するようにしてもよい。
次に、図6乃至図9を参照して、Webサーバ11によるファイルの記録およびファイルの読み出しの処理を説明する。
まず、ファイルの記録の処理について説明する。例えば、ページ設定部53が、ファイル読み書き制御部54に、ウェブページに配置される商品情報をファイルとしてネットワーク12を介してサーバ群13に記録させる旨を要求した場合に、ファイルの記録の処理が行われる。
図6は、ファイルの記録の処理を説明するフローチャートである。ページ設定部53から、ウェブページに配置されるデータのファイルのサーバ群13への記録が要求されると、そのファイルがページ設定部53から供給されるので、ステップS11において、ファイル読み書き制御部54は、その記録するファイルを取得する。ステップS12において、ファイル読み書き制御部54は、パスの決定の処理を行う。パスの決定の処理の詳細は、図7および図8のフローチャートを参照して、後述する。
ステップS13において、ファイル読み書き制御部54の記録制御部71は、決定されたパスで示されるディレクトリがサーバ群13にあるか否かを判定する。ステップS13において、決定されたパスで示されるディレクトリがサーバ群13にないと判定された場合、手続きはステップS14に進み、ディレクトリ生成部72は、分散ファイルシステムのプロトコルに基づいて、ネットワーク12を介して、サーバ群13に、決定されたパスで示されるディレクトリの生成を指令することで、サーバ群13にディレクトリを生成する。ステップS14の後、手続きはステップS15に進む。
ステップS13において、決定されたパスで示されるディレクトリがサーバ群13にあると判定された場合、ディレクトリを生成する必要はないので、ステップS14の手続きはスキップされて、手続きはステップS15に進む。
ステップS15において、記録制御部71は、決定されたパスで示されるサーバ群13のディレクトリにファイルを記録して、ファイルの記録の処理は終了する。
次に、図7および図8のフローチャートを参照して、ステップS12のパスの決定の処理の詳細を説明する。ステップS31において、識別情報取得部74は、識別情報の一例である商品管理番号を取得する。商品管理番号は、ファイル記録される商品情報に示される商品を特定する番号である。例えば、ステップS31において、識別情報取得部74は、ページ設定部53から供給されるファイルから抽出することで、ABC−001である商品管理番号を取得する。また、例えば、ステップS31において、識別情報取得部74は、ページ設定部53からファイル名として供給される、ABC−001である商品管理番号を取得する。また、例えば、ステップS31において、識別情報取得部74は、ページ設定部53から供給されるURL方式のアドレスから抽出することで、ABC−001である商品管理番号を取得する。なお、識別情報取得部74は、商品管理番号などの識別情報を、商品に関するデータを格納する商品データベース(図示せず)などのWebサーバ11の内部または外部のデータベースから取得するようにしてもよい。
ステップS32において、演算部76は、取得された商品管理番号に簡単なハッシュ関数を適用する。なお、演算部76は、簡単なハッシュ関数だけでなく、元データ(識別子)から当該元データを代表する数値(例えば複数桁の整数)を生成する関数を用いてもよい。ここで、簡単なハッシュ関数とは、単射、すなわち、正しい入力に対して異なるハッシュ値を出力する完全ハッシュ関数ではないという意味である。具体的には、例えば、ステップS32において、演算部76は、商品管理番号に、プログラミング言語であるC++のライブラリに標準で含まれているハッシュ関数を適用する。より具体的には、例えば、ステップS32において、演算部76は、ABC−001である商品管理番号に、簡単なハッシュ関数を適用して、489014746であるハッシュ値を得る。
ステップS33において、素数取得部75は、ステップS32の手続きで得られたハッシュ値を133で割り算して、その余りを得る。ここでハッシュ値を割り算する除数(法)は、143以下であって、十分に大きい数(例えば、100以上)とされる。143は、101から997までの100の位の素数(3桁の素数)の数である。
例えば、ステップS33において、素数取得部75は、489014746であるハッシュ値を133で割り算して、80である余りを得る。
ステップS34において、素数取得部75は、素数表記憶部78に予め記憶されている、100の位の素数が配置された素数表から、余りで示される位置の素数aを取得する。具体的には、例えば、素数取得部75は、余りが80である場合、素数表記憶部78から、素数表記憶部78に80番目に配置されている631である素数を素数aとして取得する。
ステップS35において、演算部76は、ステップS32の手続きで得られたハッシュ値を、16進数に変換する。例えば、ステップS35において、演算部76は、489014746であるハッシュ値を、16進数である1d25c5daに変換する。このように16進数に変換することで、桁数を抑えて後述する演算を行うことができる。
ステップS36において、演算部76は、桁を指示するための変数である桁指示変数nに、初期値として0を設定する。ステップS37において、演算部76は、パス初期値Mに、ステップS34の手続きで取得された素数aを設定する。パス初期値Mは、素数aおよび商品管理番号から計算される、パスを決定するための値である。例えば、ステップS37において、演算部76は、パス初期値Mに、631である素数aを設定する。
ステップS38において、演算部76は、16進数で表されるハッシュ値の最上位から(n+1)桁目の値bを抽出する。例えば、最初に実行されるステップS38において、桁指示変数nは0なので、演算部76は、16進数で表されるハッシュ値の最上位の桁の1である値bを抽出する。また、例えば、繰り返しにより3回目に実行されるステップS38において、桁指示変数nは2なので、演算部76は、16進数で表されるハッシュ値の最上位から3桁目の2である値bを抽出する。
ステップS39において、演算部76は、ステップS38の手続きで抽出した値bを10進数に変換する。ステップS40において、演算部76は、素数aから桁指示変数nを減算して、その結果得られた差に10進数の値bを乗算する。演算部76は、乗算の結果得られた積をパス初期値Mに加算する。言い換えれば、ステップS40において、演算部76は、値b×(素数a−桁指示変数n)を計算して、その結果をパス初期値Mに加算する。この場合、桁に応じた差分は、桁指示変数nであるが、任意の整数(例えば、−3,−2,−1,2,3などのいずれか)である定数kを用いて、値b×(素数a−桁指示変数n×定数k)とするようにしてもよい。
ステップS41において、演算部76は、桁指示変数nを1だけインクリメントする。ステップS42において、演算部76は、16進数で表されるハッシュ値から最下位の桁が抽出されたか否かを判定し、最下位の桁が抽出されていないと判定された場合、まだ抽出すべき桁があるので、手続きはステップS38に戻り、次の桁について上述した処理が繰り返される。
すなわち、ステップS38乃至ステップS40に手続きが繰り返されることにより、商品管理番号を1桁ずつ素数aと掛け合わせ、その際、素数aが1ずつ減じられて、その総和が求められる。
例えば、素数aが631であり、16進数であるハッシュ値が1d25c5daである場合、ステップS37の手続きにおいて、パス初期値Mは、631とされ、最初に実行されるステップS38乃至ステップS40の手続きにおいて、素数aと16進数のハッシュ値の最上位の桁の1である値bとを用いて、1×631から求められた631がパス初期値Mに加算される。そして、次に実行されるステップS38乃至ステップS40の手続きにおいて、素数aと16進数のハッシュ値の最上位から2桁目のd、すなわち、10進数で表すと13である値bとを用いて、13×(631−1)から求められた8190がパス初期値Mに加算される。
同様に、ステップS38乃至ステップS40の手続きが繰り返されることにより、素数aと16進数のハッシュ値の最上位から3桁目の2である値bとを用いて、2×(631−2)から求められた1258がパス初期値Mに加算され、素数aと16進数のハッシュ値の最上位から4桁目の5である値bとを用いて、5×(631−3)から求められた3140がパス初期値Mに加算され、素数aと16進数のハッシュ値の最上位から5桁目のc、すなわち、10進数で表すと12である値bとを用いて、12×(631−4)から求められた7524がパス初期値Mに加算される。さらに、ステップS38乃至ステップS40の手続きが繰り返されることにより、素数aと16進数のハッシュ値の最上位から6桁目の5である値bとを用いて、5×(631−5)から求められた3130がパス初期値Mに加算され、素数aと16進数のハッシュ値の最上位から7桁目のd、すなわち、10進数で表すと13である値bとを用いて、13×(631−6)から求められた8125がパス初期値Mに加算され、素数aと16進数のハッシュ値の最下位のa、すなわち、10進数で表すと10である値bとを用いて、10×(631−7)から求められた6240がパス初期値Mに加算される。
以上の演算により、38869であるパス初期値Mが求められる。
ステップS42において、最下位の桁が抽出されたと判定された場合、抽出すべき桁がなくなったので、手続きはステップS43に進み、パス決定部77は、パス初期値Mが4096以下であるか否かを判定する。ステップS43において、パス初期値Mが4096以下であると判定された場合、手続きはステップS44に進み、パス決定部77は、パス初期値Mに50を乗算する。ここで、パス初期値Mが4096以下である場合に、パス初期値Mに50を乗算するのは、16進数に変換した場合に、パス初期値Mを4桁以上にするためである。ステップS44の後、手続きはステップS45に進む。
ステップS43において、パス初期値Mが4096以下でない、すなわち、パス初期値Mが4096を超えていると判定された場合、ステップS44の手続きはスキップされて、手続きはステップS45に進む。
ステップS45において、パス決定部77は、パス初期値Mを16進数に変換する。例えば、ステップS45において、パス決定部77は、38869であるパス初期値Mを、16進数の97D5であるパス初期値Mに変換する。なお、16進数のパスを用いることで、同一桁数の10進数に比べて大きい値を取り扱うことができるので、10進数のパスを用いる場合に比べてファイルの格納先のディレクトリを分散させることができる。
ステップS46において、パス決定部77は、上位側の桁と下位側の桁とが入れ替わるように、16進数のパス初期値Mを反転させる。例えば、ステップS46において、パス決定部77は、reverse関数をパス初期値Mに適用することにより、パス初期値Mを逆並びにする。具体的には、例えば、ステップS46において、パス決定部77は、97D5であるパス初期値Mを反転し、5D79とする。
ステップS47において、パス決定部77は、反転されたパス初期値Mから、上位4桁を抽出する。ステップS48において、パス決定部77は、抽出された4桁のうち上位2桁が上位のディレクトリを示し、下位2桁が下位のディレクトリを示すようにし、商品管理番号をファイル名として、パスを決定して、パスの決定の処理は終了する。
例えば、ステップS48において、パス決定部77は、5D79であるパス初期値Mのうち、上位2桁の5Dが上位のディレクトリを示し、下位2桁の79が下位のディレクトリを示すようにし、商品管理番号をファイル名として、/5D/79/商品管理番号をパスに決定する。
このように、簡単な計算で、迅速に、偏りなく記録できるパスを求めることができる。また、パスが複雑でどのフォルダにファイルを格納してよいか不明であるといった状況を回避することができるとともに、後々のデータの移管等、メンテナンスが容易となる。
次に、ファイルの読み出しについて説明する。例えば、クライアント22−1乃至22−3のそれぞれからウェブページがリクエストされた場合に、そのウェブページのデータを生成するページデータ生成部52が、ファイル読み書き制御部54に、ネットワーク12を介したサーバ群13からのファイルの読み出しを要求したとき、ファイルの読み出しの処理が行われる。
図9は、ファイルの読み出しの処理を説明するフローチャートである。ページデータ生成部52から、ネットワーク12を介したサーバ群13からのファイルの読み出しが要求されると、ページデータ生成部52から、URL方式のアドレスやこれに応じたファイル名を示す商品管理番号などが供給されるので、ステップS71において、ファイル読み書き制御部54は、読み出すファイルのファイル名を取得する。例えば、ファイル読み書き制御部54は、ウェブページのURL方式のアドレスに含まれる文字情報からファイル名(商品管理番号)を取得してもよい。ステップS72において、ファイル読み書き制御部54は、パスの決定の処理を行う。ステップS72におけるパス決定の処理は、ステップS12の処理と同様なので、その説明は省略する。
ステップS73において、ファイル読み書き制御部54の読み出し制御部73は、決定されたパスで示されるサーバ群13のディレクトリからファイルを読み出して、ファイルの読み出しの処理は終了する。
このように、ファイルの読み出しには、テーブルやインデックスなどが必要とされない。また、ユーザ端末等にウェブページを表示する際、表示されるURLに商品情報等が保存されている階層を表示することなく、階層構造からなるフォルダにデータを簡易に保存することができる。また、細かくパスをURLに記載する必要がないので、表示されるURLを短くすることが可能となる。さらに、URLを短くすることで、表示・認識・取り扱いが容易となる。
すなわち、URL自体に階層を持たない状態で、URLを用いて複数階層を実現することができる。例えば、図4に示すURL方式のアドレスでは、本実施形態に係る情報処理方法によれば(http://○○○.△△.co.jp/SHOP_URL/ITEM_URL/)と表示するだけでよく、(http://○○○.△△.co.jp/SHOP_URL/▽▽/××/ITEM_URL/)の/▽▽/××/を生成する必要がない。従来の手法であれば、/▽▽/××/を生成し、データベース等の管理ファイルで関連付けして管理する必要がある。さらに、参照する際にも、URL取得、APP処理、管理ファイル参照、問い合わせ、ディレクトリ特定、ファイル参照の順に処理を行う必要がある。これに対して、本実施形態に係る手法であれば、URL取得、APP処理、ディレクトリ特定、ファイル参照という処理でURLのアドレス情報のみでファイルにたどりつくことが可能となる。
ここで、図10乃至図12を参照して、MD5を用いた従来の方式と、本実施の形態に示される方式との比較の結果を説明する。
図10は、パスの決定に要した計算時間と1つのディレクトリに記録されるファイルの最大数とを示す図である。ここに示される計算時間は、5回計算を行った計算時間の平均値である。
まず、3桁の英数字と7桁の数値とをハイフンで連綴してなる300万個の商品管理番号からパスを決定する場合を比較すると、本実施の形態に示される方式では、15,025msの計算時間が必要とされ、1つのディレクトリに記録されるファイルの最大数は、78個であったのに対して、MD5を用いた従来の方式では、39,669msの計算時間が必要とされ、1つのディレクトリに記録されるファイルの最大数は、83個であった。また、3桁の英数字と7桁の数値とをハイフンで連綴してなる200万個の商品管理番号からパスを決定する場合を比較すると、本実施の形態に示される方式では、9,809msの計算時間が必要とされ、1つのディレクトリに記録されるファイルの最大数は、61個であったのに対して、MD5を用いた従来の方式では、26,542msの計算時間が必要とされ、1つのディレクトリに記録されるファイルの最大数は、54個であった。
さらに、3桁の英数字と7桁の数値とをハイフンで連綴してなる100万個の商品管理番号からパスを決定する場合を比較すると、本実施の形態に示される方式では、5,082msの計算時間が必要とされ、1つのディレクトリに記録されるファイルの最大数は、37個であったのに対して、MD5を用いた従来の方式では、13,733msの計算時間が必要とされ、1つのディレクトリに記録されるファイルの最大数は、34個であった。
さらにまた、映画関連の24,946個の商品管理番号からパスを決定する場合を比較すると、本実施の形態に示される方式では、106msの計算時間が必要とされ、1つのディレクトリに記録されるファイルの最大数は、5個であったのに対して、MD5を用いた従来の方式では、407msの計算時間が必要とされ、1つのディレクトリに記録されるファイルの最大数は、5個であった。また、1,565,419冊の書籍のISBN(International Standard Book Number)を商品管理番号としてパスを決定する場合を比較すると、本実施の形態に示される方式では、7,575msの計算時間が必要とされ、1つのディレクトリに記録されるファイルの最大数は、48個であったのに対して、MD5を用いた従来の方式では、19,601msの計算時間が必要とされ、1つのディレクトリに記録されるファイルの最大数は、49個であった。
この比較において、本実施の形態に示される方式における、1件の処理時間は、0.005msであったのに対して、MD5を用いた従来の方式における、1件の処理時間は、0.013msであった。
ちなみに、1から3,000,000までの桁数を変えた商品管理番号からパスを決定する場合を比較すると、本実施の形態に示される方式では、1つのディレクトリに記録されるファイルの最大数は、83個であったのに対して、MD5を用いた従来の方式では、1つのディレクトリに記録されるファイルの最大数は、75個であった。また、0000001から3,000,000までの桁数を同じとした商品管理番号からパスを決定する場合を比較すると、本実施の形態に示される方式では、1つのディレクトリに記録されるファイルの最大数は、86個であったのに対して、MD5を用いた従来の方式では、1つのディレクトリに記録されるファイルの最大数は、76個であった。
これより、本実施の形態に示される方式によれば、MD5を用いた従来の方式に対して、迅速に、パスを求めることができることがわかる。また、桁ごとに異なる数字(素数a−桁指示変数n)は少なくとも3桁以上が好ましく、パスは少なくとも4桁以上の数値からディレクトリを生成すると良い効果が得られることがわかる。
図11は、3桁の英数字と7桁の数値とをハイフンで連綴してなる300万個のランダムな商品管理番号から、本実施の形態に示される方式でパスを決定する場合に、ディレクトリに記録されるファイルの数の分布を示す図である。図10を参照して説明したように、計算時間は、15,025msであり、1つのディレクトリに記録されるファイルの最大数は、78個であった。
図11に示されるように、45個のファイルが記録されるディレクトリの数が、約3700であり、最も多く、1つのディレクトリに記録されるファイルの数と、その数のファイルを格納するディレクトリの数との関係は、正規分布に近い分布となっている。
図12は、3桁の英数字と7桁の数値とをハイフンで連綴してなる300万個のランダムな商品管理番号から、MD5を用いた従来の方式でパスを決定する場合に、ディレクトリに記録されるファイルの数の分布を示す図である。図10を参照して説明したように、計算時間は、39,669msであり、1つのディレクトリに記録されるファイルの最大数は、83個であった。
図11に示されるように、44個、45個、または47個のファイルが記録されるディレクトリの数が、約3800であり、最も多く、1つのディレクトリに記録されるファイルの数と、その数のファイルを格納するディレクトリの数との関係は、正規分布に近い分布となっている。
これより、本実施の形態に示される方式によれば、MD5を用いた従来の方式と同様に、ディレクトリに対して偏りなくファイルを記録できるパスを求めることができることがわかる。また、桁ごとに異なる数字(素数a−桁指示変数n)は少なくとも3桁以上が好ましく、パスは少なくとも4桁以上の数値からディレクトリを生成すると良い効果が得られることがわかる。
なお、以上において、電子商取引のウェブページに掲載する商品に関するデータが格納されるファイルを読み書きする例を説明したが、読み書きされるデータはこれに限定されるものではなく、データの種類に限定されず、画像や音声、テキスト、数値などいずれのデータであっても良い。この場合、識別情報は、データ(記録情報)を識別できれば足り、ファイル名、データ名、記録日時、デジタルカメラなどの機器を特定する機器ID(Identification)、Macアドレス(Media Access Control address)、ユーザを特定するユーザID、記録された場所を示す緯度経度や、これらを組み合わせたものとすることができる。
また、以上において、2階層のディレクトリを示すパスを生成したが、パスは、2階層に限らず、1階層または3階層以上とすることができる。
このように、本実施の形態に示される方式によれば、簡単な計算で、迅速に、偏りなく記録できるパスを求めることができる。
以上のように、記録するかまたは読み出す記録情報を識別するための識別情報を取得し、同じ桁数の素数の中から、識別情報に応じた素数を取得し、識別情報の桁ごとの値と、取得した素数から桁に応じた差分を減じて得られる差とを乗じて得られる積の総和であって、識別情報の総ての桁についての総和を演算し、総和から、記録情報が格納されるディレクトリを示すパスを決定するようにした場合には、テーブルやインデックスなどを必要とせず、迅速に、偏りなく記録できるパスを求めることができる。すなわち、簡単なハッシュ法により求めたハッシュ値に基づいて、そのハッシュ値の位の数字と、整数の集合からハッシュ値を用いて選択された異なる整数とを演算し、その演算結果を相互に演算処理をして求めた値をもとにディレクトリを決定することができる。さらに、URLから一義的にディレクトリを求めることができるとともに、ハッシュ値の偏りによらず各ディレクトリに分散してファイルを格納することが可能となる。
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、上記実施形態のステップS34において、素数aを素数表(集合)から取得しているが、他の方法で取得してもよい。例えば、不連続かつ整数の集合から取得してもよいし、予め定められた表から取得してもよい。
また、上記実施形態のステップS44において、16進数に変換した場合にパス初期値Mを4桁以上にするために、パス決定部77がパス初期値Mに50を乗算する例を説明したが、必要に応じて省略してもよい。
また、上記実施形態のステップS39において、桁ごとに値b×(素数a−桁指示変数n)を算出し加算する例を説明したが、値bに積算する値は桁ごとに異なる整数であれば何でもよく、上記のように素数aから桁指示変数nを減算するのみならず加算であってもよいし、素数aから求めなくてもよい。例えば、乱数を用いて異なる整数を求めてもよい。また、桁ごとに値b異なる整数を積算する例を説明したが、加算・減算・除算であってもよい。
11 Webサーバ, 12 ネットワーク, 13 サーバ群, 14−1乃至14−N NFSサーバ, 31 CPU, 32 ROM, 33 RAM, 38 記憶部, 39 通信部, 41 リムーバブルメディア, 51 Webサーバ機能, 52 ページデータ生成部, 53 ページ設定部, 54 ファイル読み書き制御部, 71 記録制御部, 72 ディレクトリ生成部, 73 読み出し制御部, 74 識別情報取得部, 75 素数取得部, 76 演算部, 77 パス決定部, 78 素数表記憶部。
本発明の一側面の情報処理方法は、記録情報の格納先のディレクトリを管理する情報処理方法であって、URLのアドレス情報から前記記録情報を識別するための識別子を取得する識別子取得ステップと、前記識別子から当該識別子を代表する複数桁の数値を算出する数値算出ステップと、予め用意された整数の集合から前記数値を用いて整数を選択し、選択された整数を用いて前記数値の桁ごとに異なる整数を用意し、用意された整数と前記数値の位の数字とを用いて演算された値をさらに相互に演算し、演算結果をもとに前記記録情報の格納先のディレクトリを決定する決定ステップと、を備えて構成される。なお、ここでいう数字とは、0〜9以外にアルファベットで表記された数字(例えば16進数のA〜F)を含むものである。
ここで、前記ディレクトリが、上位のディレクトリと下位のディレクトリを有し、前記決定ステップでは、前記演算結果の上位の桁で上位のディレクトリを決定し、前記演算結果の下位の桁で下位のディレクトリを決定してもよい。また、前記数値算出ステップでは、完全ハッシュ関数ではないハッシュ関数を用いて前記数値を算出してもよい。また、前記決定ステップにおいて決定された前記ディレクトリが存在しない場合、前記ディレクトリを生成する生成ステップをさらに含んでもよい。
本発明の一側面の情報処理装置は、記録情報の格納先のディレクトリを管理する情報処理装置であって、URLのアドレス情報から前記記録情報を識別するための識別子を取得する識別子取得部と、前記識別子から当該識別子を代表する複数桁の数値を算出する数値算出部と、予め用意された整数の集合から前記数値を用いて整数を選択し、選択された整数を用いて前記数値の桁ごとに異なる整数を用意し、用意された整数と前記数値の位の数字とを用いて演算された値をさらに相互に演算し、演算結果をもとに前記記録情報の格納先のディレクトリを決定する決定部と、を備えて構成される。
本発明の一側面のプログラムは、記録情報の格納先のディレクトリを管理するプログラムであって、URLのアドレス情報から前記記録情報を識別するための識別子を取得する識別子取得ステップと、前記識別子から当該識別子を代表する複数桁の数値を算出する数値算出ステップと、予め用意された整数の集合から前記数値を用いて整数を選択し、選択された整数を用いて前記数値の桁ごとに異なる整数を用意し、用意された整数と前記数値の位の数字とを用いて演算された値をさらに相互に演算し、演算結果をもとに前記記録情報の格納先のディレクトリを決定する決定ステップと、をコンピュータに実行させるためのプログラムとして構成される。
本発明の一側面の記録媒体は、記録情報の格納先のディレクトリを管理するプログラムを記録した記録媒体であって、URLのアドレス情報から前記記録情報を識別するための識別子を取得する識別子取得ステップと、前記識別子から当該識別子を代表する複数桁の数値を算出する数値算出ステップと、予め用意された整数の集合から前記数値を用いて整数を選択し、選択された整数を用いて前記数値の桁ごとに異なる整数を用意し、用意された整数と前記数値の位の数字とを用いて演算された値をさらに相互に演算し、演算結果をもとに前記記録情報の格納先のディレクトリを決定する決定ステップと、をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体として構成される。
本発明の一側面においては、URLのアドレス情報から記録情報を識別するための識別子が取得され、識別子から当該識別子を代表する複数桁の数値が算出され、予め用意された整数の集合から前記数値を用いて整数を選択し、選択された整数を用いて前記数値の桁ごとに異なる整数を用意し、用意された整数と、数値の位の数字と、を演算した値をさらに相互に演算し、演算結果をもとに記録情報の格納先のディレクトリが決定される。

Claims (7)

  1. 記録情報の格納先のディレクトリを管理する情報処理方法であって、
    URLのアドレス情報から前記記録情報を識別するための識別子を取得する識別子取得ステップと、
    前記識別子から当該識別子を代表する複数桁の数値を算出する数値算出ステップと、
    前記数値で定まる整数と前記数値の位の数字とを用いて演算された値をさらに相互に演算し、演算結果をもとに前記記録情報の格納先のディレクトリを決定する決定ステップと、
    を備える情報処理方法。
  2. 前記数値算出ステップでは、完全ハッシュ関数ではないハッシュ関数を用いて前記数値を算出する請求項1に記載の情報処理方法。
  3. 決定ステップでは、予め用意された整数の集合から前記数値を用いて選択された異なる整数を前記数値の位の数字との演算に用いる請求項1に記載の情報処理方法。
  4. 前記決定ステップにおいて決定された前記ディレクトリが存在しない場合、前記ディレクトリを生成する生成ステップをさらに含む請求項1〜3の何れか一項に記載の情報処理方法。
  5. 記録情報の格納先のディレクトリを管理する情報処理装置であって、
    URLのアドレス情報から前記記録情報を識別するための識別子を取得する識別子取得部と、
    前記識別子から当該識別子を代表する複数桁の数値を算出する数値算出部と、
    前記数値で定まる整数と前記数値の位の数字とを用いて演算された値をさらに相互に演算し、演算結果をもとに前記記録情報の格納先のディレクトリを決定する決定部と、
    を備える情報処理装置。
  6. 記録情報の格納先のディレクトリを管理するプログラムであって、
    URLのアドレス情報から前記記録情報を識別するための識別子を取得する識別子取得ステップと、
    前記識別子から当該識別子を代表する複数桁の数値を算出する数値算出ステップと、
    前記数値で定まる整数と前記数値の位の数字とを用いて演算された値をさらに相互に演算し、演算結果をもとに前記記録情報の格納先のディレクトリを決定する決定ステップと、
    をコンピュータに実行させるためのプログラム。
  7. 記録情報の格納先のディレクトリを管理するプログラムを記録した記録媒体であって、
    URLのアドレス情報から前記記録情報を識別するための識別子を取得する識別子取得ステップと、
    前記識別子から当該識別子を代表する複数桁の数値を算出する数値算出ステップと、
    前記数値で定まる整数と前記数値の位の数字とを用いて演算された値をさらに相互に演算し、演算結果をもとに前記記録情報の格納先のディレクトリを決定する決定ステップと、
    をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2012504546A 2010-03-11 2011-03-11 情報処理方法、情報処理装置、プログラム及び記録媒体 Active JP5129409B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012504546A JP5129409B2 (ja) 2010-03-11 2011-03-11 情報処理方法、情報処理装置、プログラム及び記録媒体

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010055159 2010-03-11
JP2010055159 2010-03-11
JP2012504546A JP5129409B2 (ja) 2010-03-11 2011-03-11 情報処理方法、情報処理装置、プログラム及び記録媒体
PCT/JP2011/055832 WO2011111837A1 (ja) 2010-03-11 2011-03-11 情報処理方法、情報処理装置、プログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP5129409B2 JP5129409B2 (ja) 2013-01-30
JPWO2011111837A1 true JPWO2011111837A1 (ja) 2013-06-27

Family

ID=44563634

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012504546A Active JP5129409B2 (ja) 2010-03-11 2011-03-11 情報処理方法、情報処理装置、プログラム及び記録媒体

Country Status (6)

Country Link
US (1) US8812568B2 (ja)
EP (1) EP2546750B1 (ja)
JP (1) JP5129409B2 (ja)
CN (1) CN102782659B (ja)
ES (1) ES2703767T3 (ja)
WO (1) WO2011111837A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8767954B2 (en) * 2011-12-01 2014-07-01 Colloid, Llc Methods and systems for deriving a cryptographic framework
JP2013171493A (ja) * 2012-02-22 2013-09-02 Sony Corp 情報処理装置及び方法、並びにプログラム
CN104239376B (zh) * 2013-11-07 2018-02-02 大唐网络有限公司 数据存储方法和装置
CN111414337B (zh) * 2019-01-08 2023-05-26 阿里巴巴集团控股有限公司 一种文件读取方法、装置、计算设备及存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6202136B1 (en) * 1994-12-15 2001-03-13 Bmc Software, Inc. Method of creating an internally consistent copy of an actively updated data set without specialized caching hardware
JPH1074154A (ja) 1996-08-30 1998-03-17 Digital Vision Lab:Kk ファイル管理装置
JP2000242538A (ja) 1999-02-22 2000-09-08 Nec Corp ディレクトリ検索システム、ディレクトリ検索方法およびディレクトリ検索用プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2000357115A (ja) 1999-06-15 2000-12-26 Nec Corp ファイル検索装置及びファイル検索方法
US6754649B2 (en) * 2000-04-18 2004-06-22 Matsushita Electric Industrial Co., Ltd. Apparatus and method for storing data in a storage medium, while saving storage areas which are used for holding a data path name and become necessary in response to the storing of data
JP2004185214A (ja) 2002-12-02 2004-07-02 Renesas Technology Corp ファイル管理装置
JP4141239B2 (ja) * 2002-12-06 2008-08-27 三洋電機株式会社 撮影初期化方法とこの方法に利用可能な撮像装置および画像サーバ
US7412449B2 (en) * 2003-05-23 2008-08-12 Sap Aktiengesellschaft File object storage and retrieval using hashing techniques
JP4315876B2 (ja) * 2004-08-17 2009-08-19 富士通株式会社 ファイル管理プログラム、ファイル管理方法、及びファイル管理装置
US20070112784A1 (en) * 2004-11-17 2007-05-17 Steven Blumenau Systems and Methods for Simplified Information Archival
JP2007004604A (ja) * 2005-06-24 2007-01-11 Nippon Telegr & Teleph Corp <Ntt> ファイル所在管理方法、端末、およびファイル所在管理サーバ
US7840540B2 (en) * 2006-04-20 2010-11-23 Datascout, Inc. Surrogate hashing
US7809685B2 (en) * 2006-04-21 2010-10-05 Ricoh Co., Ltd. Secure and efficient methods for logging and synchronizing data exchanges
JP2008210318A (ja) * 2007-02-28 2008-09-11 Keytel:Kk 電子ファイル受渡システム、プログラム及び計算機システム
TWI476610B (zh) * 2008-04-29 2015-03-11 Maxiscale Inc 同級間冗餘檔案伺服器系統及方法

Also Published As

Publication number Publication date
EP2546750A4 (en) 2015-01-07
EP2546750A1 (en) 2013-01-16
US8812568B2 (en) 2014-08-19
CN102782659B (zh) 2015-09-30
EP2546750B1 (en) 2018-11-28
US20130041928A1 (en) 2013-02-14
ES2703767T3 (es) 2019-03-12
WO2011111837A1 (ja) 2011-09-15
CN102782659A (zh) 2012-11-14
JP5129409B2 (ja) 2013-01-30

Similar Documents

Publication Publication Date Title
US8176061B2 (en) Tracking digital assets on a distributed network
US10372769B2 (en) Displaying results, in an analytics visualization dashboard, of federated searches across repositories using as inputs attributes of the analytics visualization dashboard
US20090043815A1 (en) System and method for processing downloaded data
JP5356657B2 (ja) コンテンツ配信装置およびコンテンツ配信方法
US9858306B2 (en) Archiving to a single database table information located across multiple tables
RU2007143551A (ru) Способ, система и читаемый компьютером носитель информации для синхронизации поддающихся изменению документов для множества клиентов
JP5129409B2 (ja) 情報処理方法、情報処理装置、プログラム及び記録媒体
JP2010538386A (ja) クエリ別検索コレクション生成方法およびシステム
US10885036B2 (en) Obtaining incremental updates from a database using a partial query
CN105373576A (zh) 用于内容中心网络中的一体化内容流的系统和方法
CN105786953B (zh) 在内容中心网络中对编码清单排序
CN104010016A (zh) 数据管理方法、云端服务器及终端设备
JP2008501175A (ja) プロテクトされた構造化されたデータのクエリ方法及び装置
JP2006244229A (ja) ウェブデータ生成装置およびコンピュータプログラム
US9898463B2 (en) Document management server, document management method, and non-transitory storage medium storing program
JP2007213322A (ja) 情報配信システム、情報配信方法、ノード装置、及びノード処理プログラム
EP3043510B1 (en) Decoupled name security binding for ccn objects
Hausenblas On entities in the web of data
JP4974090B2 (ja) アイテム管理サーバ、及びアイテム管理システム
CN111221781A (zh) 一种数据查找方法、装置、电子设备及系统
JP2009118236A (ja) 電話発信システム、投稿閲覧装置及び電話発信方法
JP4479439B2 (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
CN117216433A (zh) 一种针对网页端的多格式文件在线预览方法、设备及介质
CN114676096A (zh) 索引存储方法、文件查找方法、装置、电子设备和介质
CN117667838A (zh) 一种文件记录管理方法、装置及电子设备

Legal Events

Date Code Title Description
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: 20121023

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121101

R150 Certificate of patent or registration of utility model

Ref document number: 5129409

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: 20151109

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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