(57)【要約】  小容量の主記憶装置のみを用いて、大規模データを高速にミクロアグリゲーションできるデータ置換装置を提供する。属性値をグループごとに代表値に置き換えるデータ置換装置であって、グループ化された属性値集合のサイズが予め定めたサイズ以下である場合には、主記憶装置上にグループ化された属性値集合を取得し、グループ化された属性値集合のサイズが予め定めたサイズよりも大きい場合には、補助記憶装置上にグループ化された属性値集合を取得する属性値集合取得部と、主記憶装置上、または補助記憶装置上でグループ化された属性値集合の中央値を算出する中央値算出部と、中央値に基づいてグループ化された属性値集合を二分割した場合に、分割後の属性値集合のそれぞれのサイズが所定のしきい値以上となる場合に、分割後の二つの属性値集合それぞれを新たなグループとする分割判定部を含む。
2020184126.tif 000002
【特許請求の範囲】
【請求項１】
属性値をグループごとに代表値に置き換えるデータ置換装置であって、
グループ化された属性値集合のサイズが予め定めたサイズ以下である場合には、主記憶装置上にグループ化された前記属性値集合を取得し、グループ化された前記属性値集合のサイズが予め定めたサイズよりも大きい場合には、補助記憶装置上にグループ化された前記属性値集合を取得する属性値集合取得部と、
主記憶装置上、または補助記憶装置上でグループ化された前記属性値集合の中央値を算出する中央値算出部と、
前記中央値に基づいてグループ化された前記属性値集合を二分割した場合に、分割後の前記属性値集合のそれぞれのサイズが所定のしきい値以上となる場合に、分割後の二つの前記属性値集合それぞれを新たな前記グループとする分割判定部を含む
データ置換装置。
【請求項２】
請求項１に記載のデータ置換装置であって、
前記属性値集合取得部と、前記中央値算出部と、前記分割判定部の処理を繰り返し実行することにより収束した前記グループ内の前記属性値が連続するように前記属性値に紐つけられたレコード番号を配列してなる結合集合を生成する結合集合生成部と、
前記結合集合に基づいて前記補助記憶装置上の前記属性値を並び替える並び替え部と、
並び替えた前記属性値の一部を前記補助記憶装置から前記主記憶装置上に取得する処理をシーケンシャルに実行し、前記主記憶装置上に取得された前記属性値を前記代表値に置き換える代表値置換部と、
前記代表値を前記補助記憶装置に移動して、元の順序に並び替える再並び替え部を含む
データ置換装置。
【請求項３】
請求項１または２に記載のデータ置換装置であって、
前記属性値集合取得部は、
前記主記憶装置上に取得したグループ化された前記属性値集合をＬＲＵアルゴリズムに基づいて更新する
データ置換装置。
【請求項４】
属性値をグループごとに代表値に置き換えるデータ置換装置であって、
前記グループ内の前記属性値が連続するように前記属性値に紐つけられたレコード番号を配列してなる結合集合を生成する結合集合生成部と、
前記結合集合に基づいて補助記憶装置上の前記属性値を並び替える並び替え部と、
並び替えた前記属性値の一部を前記補助記憶装置から主記憶装置上に取得する処理をシーケンシャルに実行し、前記主記憶装置上に取得された前記属性値を前記代表値に置き換える代表値置換部を含む
データ置換装置。
【請求項５】
属性値をグループごとに代表値に置き換えるデータ置換方法であって、
グループ化された属性値集合のサイズが予め定めたサイズ以下である場合には、主記憶装置上にグループ化された前記属性値集合を取得し、グループ化された前記属性値集合のサイズが予め定めたサイズよりも大きい場合には、補助記憶装置上にグループ化された前記属性値集合を取得する属性値集合取得ステップと、
主記憶装置上、または補助記憶装置上でグループ化された前記属性値集合の中央値を算出する中央値算出ステップと、
前記中央値に基づいてグループ化された前記属性値集合を二分割した場合に、分割後の前記属性値集合のそれぞれのサイズが所定のしきい値以上となる場合に、分割後の二つの前記属性値集合それぞれを新たな前記グループとする分割判定ステップを含む
データ置換方法。
【請求項６】
属性値をグループごとに代表値に置き換えるデータ置換方法であって、
前記グループ内の前記属性値が連続するように前記属性値に紐つけられたレコード番号を配列してなる結合集合を生成する結合集合生成ステップと、
前記結合集合に基づいて補助記憶装置上の前記属性値を並び替える並び替えステップと、
並び替えた前記属性値の一部を前記補助記憶装置から主記憶装置上に取得する処理をシーケンシャルに実行し、前記主記憶装置上に取得された前記属性値を前記代表値に置き換える代表値置換ステップを含む
データ置換方法。
【請求項７】
コンピュータを請求項１から４の何れかに記載のデータ置換装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース上の個別データを秘匿する技術に関し、データ置換装置、データ置換方法、プログラムに関する。
【背景技術】
【０００２】
データベースの個別データを確定的手法により秘匿する技術として、非特許文献１がある。非特許文献１の秘匿処理では、データベースの各値をグループ化し、代表値に置き換えることで、データベースの秘匿処理を行う。この秘匿処理をミクロアグリゲーションと言う。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Kristen LeFevre, David J DeWitt, and Raghu Ramakrishnan, "Mondrian multidimensional k-anonymity" In Proceedings of the 22nd International Conference on Data Engineering, pp. 25-25, 2006.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながらこの秘匿処理をパーソナルコンピュータ等の計算機で実現する場合、主記憶装置上に全データを保持した上で処理を行うことが前提となる。すなわち、主記憶装置上に収まりきらない大規模なデータに対してミクロアグリゲーションを実行することができない。【０００５】
そこで本発明では、小容量の主記憶装置のみを用いて、大規模データを高速にミクロアグリゲーションできるデータ置換装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明のデータ置換装置は、属性値をグループごとに代表値に置き換えるデータ置換装置であって、属性値集合取得部と、中央値算出部と、分割判定部を含む。【０００７】
属性値集合取得部は、グループ化された属性値集合のサイズが予め定めたサイズ以下である場合には、主記憶装置上にグループ化された属性値集合を取得し、グループ化された属性値集合のサイズが予め定めたサイズよりも大きい場合には、補助記憶装置上にグループ化された属性値集合を取得する。中央値算出部は、主記憶装置上、または補助記憶装置上でグループ化された属性値集合の中央値を算出する。分割判定部は、中央値に基づいてグループ化された属性値集合を二分割した場合に、分割後の属性値集合のそれぞれのサイズが所定のしきい値以上となる場合に、分割後の二つの属性値集合それぞれを新たなグループとする。
【発明の効果】
【０００８】
本発明のデータ置換装置によれば、小容量の主記憶装置のみを用いて、大規模データを高速にミクロアグリゲーションできる。
【図面の簡単な説明】
【０００９】
【図１】実施例１のデータ置換装置の構成を示すブロック図。
【図２】実施例１のデータ置換装置のグループ生成動作を示すフローチャート。
【図３】実施例１のデータ置換装置のデータ置換動作を示すフローチャート。
【図４】実施例１のデータ置換装置の並び替え部の動作を例示して説明する図。
【図５】先読み処理を例示する図。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【００１１】
＜処理の概要＞
以下の実施例では、大規模データを小容量の主記憶装置で高速にミクロアグリゲーショするデータ置換装置、データ置換方法、プログラムを開示する。実施例１のデータ置換装置、データ置換方法、プログラムは、補助記憶装置（例えばＨＤＤ）のランダムアクセスと比較してシーケンシャルアクセス(連続アクセス)のほうが速いという特徴、補助記憶装置（例えばＨＤＤ）が主記憶装置（例えばメモリ）と比較して遅いという特徴、補助記憶装置（例えばＨＤＤ）が主記憶装置（例えばメモリ）と比べて記憶容量が大きいという特徴を考慮して、アルゴリズムとデータ構造を工夫することで、高速な処理を実現した。
【００１２】
以下の実施例では、ミクロアグリゲーションのためのグループを作成する手法としてMondrianアルゴリズム（非特許文献１）をベースとして用いる。Mondrianアルゴリズムは、各属性ごとにデータの分割を行うことでグループ化を行い、そのグループのサイズが指定したしきい値になるまで繰り返しデータを分割して、グループを作成する。グループ化後、グループ内の属性値を対応する代表値に置き換えることで、秘匿処理を完了する。
【００１３】
小容量の主記憶装置のみを用いて、Mondrianアルゴリズムを実行するにあたり、２つのアプローチを用いる。１つは、データの分割を繰り返す際に、補助記憶装置上に配置するデータが局所参照されることを想定し、ＬＲＵアルゴリズムによる主記憶装置へのデータ配置を行うアプローチである。もう１つは、グループ化後に代表値への置き換えの際にランダムアクセスにならないように、ソート処理を行い属性値をシーケンシャルに読み出すための処理を施すアプローチである。
【００１４】
なお、各値をスカラとして表記することとしaのように小文字もしくは大文字のアルファベットで表記する。属性をベクトルとして表記することとしa^のように文字の後ろに「^」を付与する。なお、これは文書作成ソフトの都合による表現であり、例えばa^と表現する場合、ボールド体にサーカムフレックスを付した
【００１５】
【数１】
2020184126.tif 000003
【００１６】
を意味する。なおベクトルのi番目の要素はaiと表記することとする。加えてベクトルa^の要素数を|a^|と表記することとする。加えて、ベクトルr^=(r1,r2,...,r|r|)の各値が正の整数の場合に限り、
【００１７】
【数２】
2020184126.tif 000004
【００１８】
とする。行列を大文字かつ、文字の後ろに「^」を付与して表現する。なお、これは文書作成ソフトの都合による表現であり、例えばX^と表現する場合、ボールド体にサーカムフレックスを付した
【００１９】
【数３】
2020184126.tif 000005
【００２０】
を意味する。データは行列で表現できるものとし、属性を列、レコードを行とする。例えばデータをX^とし、l番目の属性をx^l、ある属性lのi番目のレコードの値をx(l)iと表記することとする。
【実施例１】
【００２１】
以下、図１を参照して実施例１のデータ置換装置の構成を説明する。同図に示すように、本実施例のデータ置換装置１は、主記憶装置１０Ａと、補助記憶装置１０Ｂと、属性値集合取得部１１と、中央値算出部１２と、分割判定部１３と、結合集合生成部１４と、並び替え部１５と、代表値置換部１６と、再並び替え部１７を含む。以下、図２、図３を参照して、各構成要件の動作を説明する。【００２２】
＜属性値集合取得部１１＞
この手順において、属性値集合取得部１１は、グループ化された属性値集合を取得する。ここでグループ化された属性値集合とは、後述する分割判定部１３の動作により分割されてグループ化された属性値集合であるものとする。また、分割判定部１３の動作が未実行（すなわち初期状態）である場合には、属性値集合のデータ全体を一つのグループとみなし、属性値集合のデータ全体をグループ化された属性値集合として取り扱うものとする。【００２３】
属性値集合取得部１１は、グループ化された属性値集合のサイズが予め定めたサイズ以下である場合（図２、条件分岐：サイズ？→小）には、主記憶装置１０Ａ上にグループ化された属性値集合を取得し（Ｓ１１ａ）、グループ化された属性値集合のサイズが予め定めたサイズよりも大きい場合（図２、条件分岐：サイズ？→大）には、補助記憶装置１０Ｂ上にグループ化された属性値集合を取得する（Ｓ１１ｂ）。【００２４】
なお、前述したように、属性値集合取得部１１は、主記憶装置１０Ａ上に取得したグループ化された属性値集合をＬＲＵアルゴリズムに基づいて更新すれば好適である。【００２５】
＜中央値算出部１２＞
中央値算出部１２は、主記憶装置１０Ａ上、または補助記憶装置１０Ｂ上でグループ化された属性値集合の中央値を算出する（Ｓ１２ａ，Ｓ１２ｂ）。【００２６】
＜分割判定部１３＞
分割判定部１３は、中央値に基づいてグループ化された属性値集合を二分割した場合に、分割後の属性値集合のそれぞれのサイズが所定のしきい値以上となる場合（図２、条件分岐：しきい値？→しきい値以上）に、分割後の二つの属性値集合それぞれを新たなグループとする（Ｓ１３ａ，Ｓ１３ｂ）。なお、分割後の属性値集合のいずれかのサイズが所定のしきい値未満となる場合（図２、条件分岐：しきい値？→しきい値未満）は、ステップＳ１１〜Ｓ１３のループ処理から外れ、分割前の属性値集合に対してステップＳ１４以降の処理が続行される。【００２７】
グループが収束するまで、属性値集合取得部１１と、中央値算出部１２と、分割判定部１３の処理（Ｓ１１〜Ｓ１３）は繰り返し実行される。【００２８】
＜結合集合生成部１４＞
図３に示すように、結合集合生成部１４は、属性値集合取得部１１と、中央値算出部１２と、分割判定部１３の処理（Ｓ１１〜Ｓ１３）を繰り返し実行することにより収束したグループ内の属性値が連続するように属性値に紐つけられたレコード番号を配列してなる結合集合を生成する（Ｓ１４）。例えばグループPに属性値p1,p2,…,p|P|があり、グループQに属性値q1,q2,…,q|Q|がある場合、「グループ内の属性値が連続するように」とは、p1,p2,…,p|P|,q1,q2,…,q|Q|、あるいは、q1,q2,…,q|Q|,p1,p2,…,p|P|のように、あるグループ内の属性値が他のグループ内の属性値と混ざらない並びにすることを意味し、結合集合生成部１４は、上述した「グループ内の属性値が連続するような」並びが再現できるように、属性値に紐つけられたレコード番号を配列して結合集合を生成する。【００２９】
＜並び替え部１５＞
並び替え部１５は、結合集合に基づいて補助記憶装置１０Ｂ上の属性値を並び替える（Ｓ１５）。【００３０】
＜代表値置換部１６＞
代表値置換部１６は、並び替えた属性値の一部を補助記憶装置１０Ｂから主記憶装置１０Ａ上に取得する処理をシーケンシャルに実行し、主記憶装置１０Ａ上に取得された属性値を代表値に置き換える（Ｓ１６）。【００３１】
上述したように、補助記憶装置１０Ｂ上の属性値集合は、グループ内の属性値が連続するように並び替えが行われているため、代表値に置き換える際に、補助記憶装置１０Ｂから属性値をシーケンシャルに読み込むことができ、処理速度が向上する。【００３２】
＜再並び替え部１７＞
再並び替え部１７は、代表値を補助記憶装置１０Ｂに移動して、元の順序に並び替える（Ｓ１７）。【００３３】
以下、具体的なアルゴリズムの例を開示して、上述のステップについて更に説明する。【００３４】
≪アルゴリズム１：大規模データグループ化アルゴリズムGROUP≫
Input:レコード数N、属性数M、補助記憶装置１０Ｂ上に格納されたデータD^、しきい値k、レコード番号集合r^、主記憶装置１０Ａ上で用いるM個の属性ベクトル集合A^=a^1,...,a^M（M種類の属性にそれぞれ対応）
Output:グループごとのレコード番号集合R^'=(r^1,...,r^|R^'|)
[1]:分割対象の属性lを決定する。
[2]:if |r^|≦|a^l| then（図２、条件分岐：サイズ？→小に相当）
[3]:分割対象の属性lのうち、レコード番号集合r^に該当する属性値集合d^(l)rを、アルゴリズム４（後述）により、主記憶装置１０Ａ上のベクトルa^lに取得する（Ｓ１１ａに相当）。
[4]:d^(l)rの中央値mを算出する(a^lから算出する、Ｓ１２ａに相当)。
[5]:d^(l)rのm未満のレコード番号集合をlr^、m以上のレコード番号集合をrr^とする（Ｓ１３ａに相当）。
[6]:else（図２、条件分岐：サイズ？→大に相当）
[7]:分割対象の属性lのうち、レコード番号集合r^に該当する属性値集合d^(l)rを、補助記憶装置１０Ｂに連続に配置する（Ｓ１１ｂに相当）。ここで、「連続に配置」とは他のデータを挟まないようにデータを連続に配置することを意味する。
[8]:d^(l)rの中央値mを算出する（Ｓ１２ｂに相当）。その際、各値へのアクセスは、アルゴリズム５（後述）より行う。なお、中央値の計算は、ベクトルを外部ソート(例えばマージソート)し、ベクトルの中間の値を中央値として計算するようにする。
[9]:d^(l)rのm未満のレコード番号集合をlr^、m以上のレコード番号集合をrr^とする（Ｓ１３ｂに相当）。
[10]:end if
[11]:if |lr^| < k OR |rr^| < k then（図２、条件分岐：しきい値？→しきい値未満に相当）
[12]:return r（図２、しきい値未満→＊に相当）
[13]:else（図２、条件分岐：しきい値？→しきい値以上に相当）
[14]:return GROUP(D^,k,lr^,A^)∪GROUP(D^,k,rr^,A^)（図２、スタートに戻り、ループする処理に相当）
[15]:end if【００３５】
≪アルゴリズム２：代表値置換アルゴリズム≫
Input:グループごとのレコード集合R^'、補助記憶装置１０Ｂに格納されたデータD^
Output:代表値に置き換わったD^'
[1]:グループごとのレコード番号集合R^'={r^'1,r^'2,...}を順番に並べて結合した集合
（結合集合）をs^とする（Ｓ１４に相当）。
[2]:アルゴリズム３（後述）に従い結合集合s^の順にデータD^を並び替える（Ｓ１５に相当）。
[3]:j=1
[4]:for r^'i in R^' do
[5]:j番目からj + |r^'i| - 1番目のレコードを補助記憶装置１０Ｂに格納されているD^から主記憶装置１０Ａ上に格納し、代表値(例えば平均値、中央値、利用者の指定した値など)に置き換え、D^'に順次格納する（Ｓ１６に相当）。
[6]:j = j + |r^'i|
[7]:end for
[8]:D^'を元の順序に並び替える（Ｓ１７に相当）。
[9]:return D^'【００３６】
≪アルゴリズム３：並び順を変えるアルゴリズム≫
Input:補助記憶装置１０Ｂ上に配置されたベクトルa^、並べ替えたい順番s^
Output:並び替えられたa^'
[1]:b^=1,2,...,|a^|を用意する(図４Ｃ参照)。
[2]:b^をs^をキーにしてソートを行う(図４Ｄ参照)。
[3]:a^をb^をキーにしてソートを行う(図４Ｅ参照)。
[4]:return a^' = a^【００３７】
≪アルゴリズム４：ＬＲＵアルゴリズムによる値取得≫
Input:補助記憶装置１０Ｂ上に配置されたデータD^、参照する属性l、レコード番号ri、主記憶装置１０Ａ上のベクトルt^
Output:【００３８】
【数４】
2020184126.tif 000006
【００３９】
[1]:if t^に空きがある場合 then
[2]:補助記憶装置１０Ｂから該当する値【００４０】
【数５】
2020184126.tif 000007
【００４１】
をt^に格納する。
[3]:else
[4]:if【００４２】
【数６】
2020184126.tif 000008
【００４３】
がd^に存在しない場合 then
[5]:d^の中から最も利用されていない要素と【００４４】
【数７】
2020184126.tif 000009
【００４５】
を入れ替える。
[6]:end if
[7]:end if
[8]:return t^内の【００４６】
【数８】
2020184126.tif 000010
【００４７】
≪アルゴリズム５：先読みアルゴリズムによる値取得≫
Input:補助記憶装置１０Ｂ上に配置されたベクトルa^、参照したい要素の位置i、主記憶装置１０Ａ上のベクトルc^
Output:値ai
[1]:if i番目の要素がc^に存在しない場合 then
[2]:i番目からi+|c^|番目の要素を補助記憶装置１０Ｂから取得し、c^に格納する。
[3]:end if
[4]:return c^内のai【００４８】
図５に、アルゴリズム５で実行される先読み処理の例を示す。同図に示すように、年齢＝１８，２３，３４，１３という属性値が補助記憶装置１０Ｂに格納されている場合、それらを順次主記憶装置１０Ａ上に読み出すことを想定する。同図の例では、主記憶装置１０Ａは２個の要素までを保持できるものとする。まず図５Ａに示すように、０番目のindexの値にアクセスした際、０及び１番目のindexの値を主記憶装置１０Ａに転送し、主記憶装置１０Ａの０番目のindexの値を取得する。次に１番目のindexの値にアクセスした場合は、主記憶装置１０Ａからデータを読み取る。その後２番目のindexの値にアクセスした場合は、主記憶装置１０Ａに該当データが存在しないため、図５Ｂに示すように、補助記憶装置１０Ｂから２及び３番目のindexの値を主記憶装置１０Ａに転送し、主記憶装置１０Ａ中の０番目のindexの値(補助記憶装置１０Ｂ中の２番目に該当)を読み出す。このように連続アクセスを想定し、補助記憶装置１０Ｂからデータを読み出す際は、先読み処理を実行する。【００４９】
＜効果＞
本実施例のデータ置換装置、データ置換方法、プログラムによれば、大規模なデータのミクロアグリゲーションを効率良く実行することができる。主記憶装置は、ランダムアクセス前提でアルゴリズムが設計されているため、主記憶装置のアルゴリズムをそのまま補助記憶装置の動作に移植すると途端に実行速度が低下する。そこで本実施例では、補助記憶装置１０Ｂ上にデータベースが配置されていることを考慮し、可能な限り補助記憶装置１０Ｂにシーケンシャルにアクセスがなされるように、かつ可能な限り補助記憶装置１０Ｂへのアクセスを減らすように、アルゴリズムを設計したことである。例えばアルゴリズム１では、主記憶装置１０Ａの指定領域にデータ（属性値集合）が収まるか収まらないかにより、処理を変え、収まらない場合は、補助記憶装置１０Ｂにシーケンシャルアクセスできるようにし、高速化を図っている。アルゴリズム２では、ソートを予め実施しておくことにより、補助記憶装置１０Ｂへシーケンシャルにアクセスできるようにしている。【００５０】
＜補記＞
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置（例えば通信ケーブル）が接続可能な通信部、ＣＰＵ（Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい）、メモリであるＲＡＭやＲＯＭ、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、ＣＰＵ、ＲＡＭ、ＲＯＭ、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、ＣＤ−ＲＯＭなどの記録媒体を読み書きできる装置（ドライブ）などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。【００５１】
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている（外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるＲＯＭに記憶させておくこととしてもよい）。また、これらのプログラムの処理によって得られるデータなどは、ＲＡＭや外部記憶装置などに適宜に記憶される。【００５２】
ハードウェアエンティティでは、外部記憶装置（あるいはＲＯＭなど）に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にＣＰＵで解釈実行・処理される。その結果、ＣＰＵが所定の機能（上記、…部、…手段などと表した各構成要件）を実現する。【００５３】
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。【００５４】
既述のように、上記実施形態において説明したハードウェアエンティティ（本発明の装置）における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。【００５５】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等を、光磁気記録媒体として、ＭＯ（Magneto-Optical disc）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（Electronically Erasable and Programmable-Read Only Memory）等を用いることができる。【００５６】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。【００５７】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。【００５８】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2020184126.tif 000011
【図２】
2020184126.tif 000012
【図３】
2020184126.tif 000013
【図４】
2020184126.tif 000014
【図５】
2020184126.tif 000015
【国際調査報告】
2020184126.tif 000016
2020184126.tif 000017
2020184126.tif 000018
2020184126.tif 000019