IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧

特許7173282データ置換装置、データ置換方法、プログラム
<>
  • 特許-データ置換装置、データ置換方法、プログラム 図1
  • 特許-データ置換装置、データ置換方法、プログラム 図2
  • 特許-データ置換装置、データ置換方法、プログラム 図3
  • 特許-データ置換装置、データ置換方法、プログラム 図4
  • 特許-データ置換装置、データ置換方法、プログラム 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-08
(45)【発行日】2022-11-16
(54)【発明の名称】データ置換装置、データ置換方法、プログラム
(51)【国際特許分類】
   G06F 21/62 20130101AFI20221109BHJP
【FI】
G06F21/62 354
【請求項の数】 7
(21)【出願番号】P 2021504879
(86)(22)【出願日】2020-02-20
(86)【国際出願番号】 JP2020006710
(87)【国際公開番号】W WO2020184126
(87)【国際公開日】2020-09-17
【審査請求日】2021-08-16
(31)【優先権主張番号】P 2019043663
(32)【優先日】2019-03-11
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100121706
【弁理士】
【氏名又は名称】中尾 直樹
(74)【代理人】
【識別番号】100128705
【弁理士】
【氏名又は名称】中村 幸雄
(74)【代理人】
【識別番号】100147773
【弁理士】
【氏名又は名称】義村 宗洋
(72)【発明者】
【氏名】長谷川 聡
【審査官】上島 拓也
(56)【参考文献】
【文献】米国特許出願公開第2014/0189858(US,A1)
【文献】長谷川 聡,大規模データを実用的な速度で処理可能な匿名化ライブラリの設計と実装評価,CSS2017 コンピュータセキュリティシンポジウム2017 論文集,日本,一般社団法人情報処理学会,2017年10月16日,Vol.2017, No.2,pp.1342-pp.1349
【文献】新井 淳也,クラスタリングと空間分割の併用による効率的なk-匿名化,日本データベース学会和文論文誌,日本,日本データベース学会,2014年10月31日,Vol.13, No1,pp.72-pp.77
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
属性値をグループごとに代表値に置き換えるデータ置換装置であって、
グループ化された属性値集合のサイズが予め定めたサイズ以下である場合には、主記憶装置上にグループ化された前記属性値集合を取得し、グループ化された前記属性値集合のサイズが予め定めたサイズよりも大きい場合には、補助記憶装置上にグループ化された前記属性値集合を取得する属性値集合取得部と、
主記憶装置上、または補助記憶装置上でグループ化された前記属性値集合の中央値を算出する中央値算出部と、
前記中央値に基づいてグループ化された前記属性値集合を二分割した場合に、分割後の前記属性値集合のそれぞれのサイズが所定のしきい値以上となる場合に、分割後の二つの前記属性値集合それぞれを新たな前記グループとする分割判定部を含む
データ置換装置。
【請求項2】
請求項1に記載のデータ置換装置であって、
前記属性値集合取得部と、前記中央値算出部と、前記分割判定部の処理を繰り返し実行することにより収束した前記グループ内の前記属性値が連続するように前記属性値に紐つけられたレコード番号を配列してなる結合集合を生成する結合集合生成部と、
前記結合集合に基づいて前記補助記憶装置上の前記属性値を並び替える並び替え部と、
並び替えた前記属性値の一部を前記補助記憶装置から前記主記憶装置上に取得する処理をシーケンシャルに実行し、前記主記憶装置上に取得された前記属性値を前記代表値に置き換える代表値置換部と、
前記代表値を前記補助記憶装置に移動して、元の順序に並び替える再並び替え部を含む
データ置換装置。
【請求項3】
請求項1または2に記載のデータ置換装置であって、
前記属性値集合取得部は、
前記主記憶装置上に取得したグループ化された前記属性値集合をLRUアルゴリズムに基づいて更新する
データ置換装置。
【請求項4】
属性値をグループごとに代表値に置き換えるデータ置換装置であって、
前記グループ内の前記属性値が連続するように前記属性値に紐つけられたレコード番号を配列してグループ間で結合してなる結合集合を生成する結合集合生成部と、
前記結合集合に基づいて補助記憶装置上の前記属性値を並び替える並び替え部と、
並び替えた前記属性値の一部を前記補助記憶装置から主記憶装置上に取得する処理をシーケンシャルに実行し、前記主記憶装置上に取得された前記属性値を前記代表値に置き換える代表値置換部を含む
データ置換装置。
【請求項5】
属性値をグループごとに代表値に置き換えるデータ置換方法であって、
グループ化された属性値集合のサイズが予め定めたサイズ以下である場合には、主記憶装置上にグループ化された前記属性値集合を取得し、グループ化された前記属性値集合のサイズが予め定めたサイズよりも大きい場合には、補助記憶装置上にグループ化された前記属性値集合を取得する属性値集合取得ステップと、
主記憶装置上、または補助記憶装置上でグループ化された前記属性値集合の中央値を算出する中央値算出ステップと、
前記中央値に基づいてグループ化された前記属性値集合を二分割した場合に、分割後の前記属性値集合のそれぞれのサイズが所定のしきい値以上となる場合に、分割後の二つの前記属性値集合それぞれを新たな前記グループとする分割判定ステップを含む
データ置換方法。
【請求項6】
属性値をグループごとに代表値に置き換えるデータ置換方法であって、
前記グループ内の前記属性値が連続するように前記属性値に紐つけられたレコード番号を配列してグループ間で結合してなる結合集合を生成する結合集合生成ステップと、
前記結合集合に基づいて補助記憶装置上の前記属性値を並び替える並び替えステップと、
並び替えた前記属性値の一部を前記補助記憶装置から主記憶装置上に取得する処理をシーケンシャルに実行し、前記主記憶装置上に取得された前記属性値を前記代表値に置き換える代表値置換ステップを含む
データ置換方法。
【請求項7】
コンピュータを請求項1から4の何れかに記載のデータ置換装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データベース上の個別データを秘匿する技術に関し、データ置換装置、データ置換方法、プログラムに関する。
【背景技術】
【0002】
データベースの個別データを確定的手法により秘匿する技術として、非特許文献1がある。非特許文献1の秘匿処理では、データベースの各値をグループ化し、代表値に置き換えることで、データベースの秘匿処理を行う。この秘匿処理をミクロアグリゲーションと言う。
【先行技術文献】
【非特許文献】
【0003】
【文献】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.
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながらこの秘匿処理をパーソナルコンピュータ等の計算機で実現する場合、主記憶装置上に全データを保持した上で処理を行うことが前提となる。すなわち、主記憶装置上に収まりきらない大規模なデータに対してミクロアグリゲーションを実行することができない。
【0005】
そこで本発明では、小容量の主記憶装置のみを用いて、大規模データを高速にミクロアグリゲーションできるデータ置換装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明のデータ置換装置は、属性値をグループごとに代表値に置き換えるデータ置換装置であって、属性値集合取得部と、中央値算出部と、分割判定部を含む。
【0007】
属性値集合取得部は、グループ化された属性値集合のサイズが予め定めたサイズ以下である場合には、主記憶装置上にグループ化された属性値集合を取得し、グループ化された属性値集合のサイズが予め定めたサイズよりも大きい場合には、補助記憶装置上にグループ化された属性値集合を取得する。中央値算出部は、主記憶装置上、または補助記憶装置上でグループ化された属性値集合の中央値を算出する。分割判定部は、中央値に基づいてグループ化された属性値集合を二分割した場合に、分割後の属性値集合のそれぞれのサイズが所定のしきい値以上となる場合に、分割後の二つの属性値集合それぞれを新たなグループとする。
【発明の効果】
【0008】
本発明のデータ置換装置によれば、小容量の主記憶装置のみを用いて、大規模データを高速にミクロアグリゲーションできる。
【図面の簡単な説明】
【0009】
図1】実施例1のデータ置換装置の構成を示すブロック図。
図2】実施例1のデータ置換装置のグループ生成動作を示すフローチャート。
図3】実施例1のデータ置換装置のデータ置換動作を示すフローチャート。
図4】実施例1のデータ置換装置の並び替え部の動作を例示して説明する図。
図5】先読み処理を例示する図。
【発明を実施するための形態】
【0010】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【0011】
<処理の概要>
以下の実施例では、大規模データを小容量の主記憶装置で高速にミクロアグリゲーショするデータ置換装置、データ置換方法、プログラムを開示する。実施例1のデータ置換装置、データ置換方法、プログラムは、補助記憶装置(例えばHDD)のランダムアクセスと比較してシーケンシャルアクセス(連続アクセス)のほうが速いという特徴、補助記憶装置(例えばHDD)が主記憶装置(例えばメモリ)と比較して遅いという特徴、補助記憶装置(例えばHDD)が主記憶装置(例えばメモリ)と比べて記憶容量が大きいという特徴を考慮して、アルゴリズムとデータ構造を工夫することで、高速な処理を実現した。
【0012】
以下の実施例では、ミクロアグリゲーションのためのグループを作成する手法としてMondrianアルゴリズム(非特許文献1)をベースとして用いる。Mondrianアルゴリズムは、各属性ごとにデータの分割を行うことでグループ化を行い、そのグループのサイズが指定したしきい値になるまで繰り返しデータを分割して、グループを作成する。グループ化後、グループ内の属性値を対応する代表値に置き換えることで、秘匿処理を完了する。
【0013】
小容量の主記憶装置のみを用いて、Mondrianアルゴリズムを実行するにあたり、2つのアプローチを用いる。1つは、データの分割を繰り返す際に、補助記憶装置上に配置するデータが局所参照されることを想定し、LRUアルゴリズムによる主記憶装置へのデータ配置を行うアプローチである。もう1つは、グループ化後に代表値への置き換えの際にランダムアクセスにならないように、ソート処理を行い属性値をシーケンシャルに読み出すための処理を施すアプローチである。
【0014】
なお、各値をスカラとして表記することとしaのように小文字もしくは大文字のアルファベットで表記する。属性をベクトルとして表記することとしa^のように文字の後ろに「^」を付与する。なお、これは文書作成ソフトの都合による表現であり、例えばa^と表現する場合、ボールド体にサーカムフレックスを付した
【0015】
【数1】
【0016】
を意味する。なおベクトルのi番目の要素はaiと表記することとする。加えてベクトルa^の要素数を|a^|と表記することとする。加えて、ベクトルr^=(r1,r2,...,r|r|)の各値が正の整数の場合に限り、
【0017】
【数2】
【0018】
とする。行列を大文字かつ、文字の後ろに「^」を付与して表現する。なお、これは文書作成ソフトの都合による表現であり、例えばX^と表現する場合、ボールド体にサーカムフレックスを付した
【0019】
【数3】
【0020】
を意味する。データは行列で表現できるものとし、属性を列、レコードを行とする。例えばデータをX^とし、l番目の属性をx^l、ある属性lのi番目のレコードの値をx(l) iと表記することとする。
【実施例1】
【0021】
以下、図1を参照して実施例1のデータ置換装置の構成を説明する。同図に示すように、本実施例のデータ置換装置1は、主記憶装置10Aと、補助記憶装置10Bと、属性値集合取得部11と、中央値算出部12と、分割判定部13と、結合集合生成部14と、並び替え部15と、代表値置換部16と、再並び替え部17を含む。以下、図2図3を参照して、各構成要件の動作を説明する。
【0022】
<属性値集合取得部11>
この手順において、属性値集合取得部11は、グループ化された属性値集合を取得する。ここでグループ化された属性値集合とは、後述する分割判定部13の動作により分割されてグループ化された属性値集合であるものとする。また、分割判定部13の動作が未実行(すなわち初期状態)である場合には、属性値集合のデータ全体を一つのグループとみなし、属性値集合のデータ全体をグループ化された属性値集合として取り扱うものとする。
【0023】
属性値集合取得部11は、グループ化された属性値集合のサイズが予め定めたサイズ以下である場合(図2、条件分岐:サイズ?→小)には、主記憶装置10A上にグループ化された属性値集合を取得し(S11a)、グループ化された属性値集合のサイズが予め定めたサイズよりも大きい場合(図2、条件分岐:サイズ?→大)には、補助記憶装置10B上にグループ化された属性値集合を取得する(S11b)。
【0024】
なお、前述したように、属性値集合取得部11は、主記憶装置10A上に取得したグループ化された属性値集合をLRUアルゴリズムに基づいて更新すれば好適である。
【0025】
<中央値算出部12>
中央値算出部12は、主記憶装置10A上、または補助記憶装置10B上でグループ化された属性値集合の中央値を算出する(S12a,S12b)。
【0026】
<分割判定部13>
分割判定部13は、中央値に基づいてグループ化された属性値集合を二分割した場合に、分割後の属性値集合のそれぞれのサイズが所定のしきい値以上となる場合(図2、条件分岐:しきい値?→しきい値以上)に、分割後の二つの属性値集合それぞれを新たなグループとする(S13a,S13b)。なお、分割後の属性値集合のいずれかのサイズが所定のしきい値未満となる場合(図2、条件分岐:しきい値?→しきい値未満)は、ステップS11~S13のループ処理から外れ、分割前の属性値集合に対してステップS14以降の処理が続行される。
【0027】
グループが収束するまで、属性値集合取得部11と、中央値算出部12と、分割判定部13の処理(S11~S13)は繰り返し実行される。
【0028】
<結合集合生成部14>
図3に示すように、結合集合生成部14は、属性値集合取得部11と、中央値算出部12と、分割判定部13の処理(S11~S13)を繰り返し実行することにより収束したグループ内の属性値が連続するように属性値に紐つけられたレコード番号を配列してなる結合集合を生成する(S14)。例えばグループ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|のように、あるグループ内の属性値が他のグループ内の属性値と混ざらない並びにすることを意味し、結合集合生成部14は、上述した「グループ内の属性値が連続するような」並びが再現できるように、属性値に紐つけられたレコード番号を配列して結合集合を生成する。
【0029】
<並び替え部15>
並び替え部15は、結合集合に基づいて補助記憶装置10B上の属性値を並び替える(S15)。
【0030】
<代表値置換部16>
代表値置換部16は、並び替えた属性値の一部を補助記憶装置10Bから主記憶装置10A上に取得する処理をシーケンシャルに実行し、主記憶装置10A上に取得された属性値を代表値に置き換える(S16)。
【0031】
上述したように、補助記憶装置10B上の属性値集合は、グループ内の属性値が連続するように並び替えが行われているため、代表値に置き換える際に、補助記憶装置10Bから属性値をシーケンシャルに読み込むことができ、処理速度が向上する。
【0032】
<再並び替え部17>
再並び替え部17は、代表値を補助記憶装置10Bに移動して、元の順序に並び替える(S17)。
【0033】
以下、具体的なアルゴリズムの例を開示して、上述のステップについて更に説明する。
【0034】
≪アルゴリズム1:大規模データグループ化アルゴリズムGROUP≫
Input:レコード数N、属性数M、補助記憶装置10B上に格納されたデータD^、しきい値k、レコード番号集合r^、主記憶装置10A上で用いるM個の属性ベクトル集合A^=a^1,...,a^M(M種類の属性にそれぞれ対応)
Output:グループごとのレコード番号集合R^'=(r^1,...,r^|R^'|)
[1]:分割対象の属性lを決定する。
[2]:if |r^|≦|a^l| then(図2、条件分岐:サイズ?→小に相当)
[3]:分割対象の属性lのうち、レコード番号集合r^に該当する属性値集合d^(l) rを、アルゴリズム4(後述)により、主記憶装置10A上のベクトルa^lに取得する(S11aに相当)。
[4]:d^(l) rの中央値mを算出する(a^lから算出する、S12aに相当)。
[5]:d^(l) rのm未満のレコード番号集合をlr^、m以上のレコード番号集合をrr^とする(S13aに相当)。
[6]:else(図2、条件分岐:サイズ?→大に相当)
[7]:分割対象の属性lのうち、レコード番号集合r^に該当する属性値集合d^(l) rを、補助記憶装置10Bに連続に配置する(S11bに相当)。ここで、「連続に配置」とは他のデータを挟まないようにデータを連続に配置することを意味する。
[8]:d^(l) rの中央値mを算出する(S12bに相当)。その際、各値へのアクセスは、アルゴリズム5(後述)より行う。なお、中央値の計算は、ベクトルを外部ソート(例えばマージソート)し、ベクトルの中間の値を中央値として計算するようにする。
[9]:d^(l) rのm未満のレコード番号集合をlr^、m以上のレコード番号集合をrr^とする(S13bに相当)。
[10]:end if
[11]:if |lr^| < k OR |rr^| < k then(図2、条件分岐:しきい値?→しきい値未満に相当)
[12]:return r(図2、しきい値未満→*に相当)
[13]:else(図2、条件分岐:しきい値?→しきい値以上に相当)
[14]:return GROUP(D^,k,lr^,A^)∪GROUP(D^,k,rr^,A^)(図2、スタートに戻り、ループする処理に相当)
[15]:end if
【0035】
≪アルゴリズム2:代表値置換アルゴリズム≫
Input:グループごとのレコード集合R^'、補助記憶装置10Bに格納されたデータD^
Output:代表値に置き換わったD^'
[1]:グループごとのレコード番号集合R^'={r^'1,r^'2,...}を順番に並べて結合した集合
(結合集合)をs^とする(S14に相当)。
[2]:アルゴリズム3(後述)に従い結合集合s^の順にデータD^を並び替える(S15に相当)。
[3]:j=1
[4]:for r^'i in R^' do
[5]:j番目からj + |r^'i| - 1番目のレコードを補助記憶装置10Bに格納されているD^から主記憶装置10A上に格納し、代表値(例えば平均値、中央値、利用者の指定した値など)に置き換え、D^'に順次格納する(S16に相当)。
[6]:j = j + |r^'i|
[7]:end for
[8]:D^'を元の順序に並び替える(S17に相当)。
[9]:return D^'
【0036】
≪アルゴリズム3:並び順を変えるアルゴリズム≫
Input:補助記憶装置10B上に配置されたベクトルa^、並べ替えたい順番s^
Output:並び替えられたa^'
[1]:b^=1,2,...,|a^|を用意する(図4C参照)。
[2]:b^をs^をキーにしてソートを行う(図4D参照)。
[3]:a^をb^をキーにしてソートを行う(図4E参照)。
[4]:return a^' = a^
【0037】
≪アルゴリズム4:LRUアルゴリズムによる値取得≫
Input:補助記憶装置10B上に配置されたデータD^、参照する属性l、レコード番号ri、主記憶装置10A上のベクトルt^
Output:
【0038】
【数4】
【0039】
[1]:if t^に空きがある場合 then
[2]:補助記憶装置10Bから該当する値
【0040】
【数5】
【0041】
をt^に格納する。
[3]:else
[4]:if
【0042】
【数6】
【0043】
がd^に存在しない場合 then
[5]:d^の中から最も利用されていない要素と
【0044】
【数7】
【0045】
を入れ替える。
[6]:end if
[7]:end if
[8]:return t^内の
【0046】
【数8】
【0047】
≪アルゴリズム5:先読みアルゴリズムによる値取得≫
Input:補助記憶装置10B上に配置されたベクトルa^、参照したい要素の位置i、主記憶装置10A上のベクトルc^
Output:値ai
[1]:if i番目の要素がc^に存在しない場合 then
[2]:i番目からi+|c^|番目の要素を補助記憶装置10Bから取得し、c^に格納する。
[3]:end if
[4]:return c^内のai
【0048】
図5に、アルゴリズム5で実行される先読み処理の例を示す。同図に示すように、年齢=18,23,34,13という属性値が補助記憶装置10Bに格納されている場合、それらを順次主記憶装置10A上に読み出すことを想定する。同図の例では、主記憶装置10Aは2個の要素までを保持できるものとする。まず図5Aに示すように、0番目のindexの値にアクセスした際、0及び1番目のindexの値を主記憶装置10Aに転送し、主記憶装置10Aの0番目のindexの値を取得する。次に1番目のindexの値にアクセスした場合は、主記憶装置10Aからデータを読み取る。その後2番目のindexの値にアクセスした場合は、主記憶装置10Aに該当データが存在しないため、図5Bに示すように、補助記憶装置10Bから2及び3番目のindexの値を主記憶装置10Aに転送し、主記憶装置10A中の0番目のindexの値(補助記憶装置10B中の2番目に該当)を読み出す。このように連続アクセスを想定し、補助記憶装置10Bからデータを読み出す際は、先読み処理を実行する。
【0049】
<効果>
本実施例のデータ置換装置、データ置換方法、プログラムによれば、大規模なデータのミクロアグリゲーションを効率良く実行することができる。主記憶装置は、ランダムアクセス前提でアルゴリズムが設計されているため、主記憶装置のアルゴリズムをそのまま補助記憶装置の動作に移植すると途端に実行速度が低下する。そこで本実施例では、補助記憶装置10B上にデータベースが配置されていることを考慮し、可能な限り補助記憶装置10Bにシーケンシャルにアクセスがなされるように、かつ可能な限り補助記憶装置10Bへのアクセスを減らすように、アルゴリズムを設計したことである。例えばアルゴリズム1では、主記憶装置10Aの指定領域にデータ(属性値集合)が収まるか収まらないかにより、処理を変え、収まらない場合は、補助記憶装置10Bにシーケンシャルアクセスできるようにし、高速化を図っている。アルゴリズム2では、ソートを予め実施しておくことにより、補助記憶装置10Bへシーケンシャルにアクセスできるようにしている。
【0050】
<補記>
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、CPU(Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい)、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD-ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【0051】
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくこととしてもよい)。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。
【0052】
ハードウェアエンティティでは、外部記憶装置(あるいはROMなど)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行・処理される。その結果、CPUが所定の機能(上記、…部、…手段などと表した各構成要件)を実現する。
【0053】
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【0054】
既述のように、上記実施形態において説明したハードウェアエンティティ(本発明の装置)における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
【0055】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD-RAM(Random Access Memory)、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP-ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
【0056】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0057】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0058】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
図1
図2
図3
図4
図5