しかしながら、上記のような分散データベースシステム100では、個々の関係一時テーブル管理機能101ごとにテーブルの残り領域などを管理する必要があり、テーブル領域を拡張する場合、記憶装置を追加して関係一時テーブル管理機能101などの設定を変更しなければならない。また、関係一時テーブル管理機能101のアップデートや業務データのバックアップも個々の関係データベースごとに行う必要がある。このため、分散データベースシステム100は、システムの運用コストが高く、メンテナンスに手間を要するという問題があった。
さらに、分散データベースシステム100は、個々の関係一時テーブル管理機能101がネットワーク103を介して管理サーバに接続されており、不正アクセスされ易い。もし、いずれかの一時テーブル管理機能101のセキュリティが破られると、分散データベースシステム100は、個々の関係一時テーブル管理機能101が、図11(b)に関係データベースを概念的に示すように、実体データAからなるテーブル104の形で有するため、業務データの意味内容が外部に漏れるという問題があった。
一方、例えば、業務を外部委託する委託元企業が委託先企業に業務データを貸与し、委託先企業が貸与された業務データを分散データベースシステム100で運用する場合、委託先企業のオペレータなどがクライアント端末105を用いてソーシャルエンジニアリングなどの不正アクセスを行う恐れが有り、このような事態を防止することも求められていた。
そこで、本発明の課題は、メンテナンスが容易であると共に、不正アクセスに対する安全性の高いデータ分散格納装置および業務委託システムを提供することにある。
上記課題を解決するため、本発明に係る参考の手段として、データ分散格納装置を、関係データベースの実体データを属性ごとに分けて格納されるデータ格納サーバ群と、このデータ格納サーバ群と物理的に分離した状態で通信回線を介して接続されており、上記実体データを管理するデータ管理機能および上記実体データの格納場所情報から構成されるテーブルを管理するテーブル管理機能を有するデータ構成管理サーバとを備え、上記データ管理機能は、上記実体データを上記データ格納サーバ群に格納すると、上記実体データの格納場所情報を作成して上記テーブル管理機能に渡し、上記テーブル管理機能は、受け取った上記格納場所情報から上記テーブルを構成し、上記関係データベースを取り扱うアプリケーションから上記実体データへのアクセスを要求された場合に、上記実体データの上記格納場所情報を上記テーブルから取得して上記データ管理機能に渡し、上記データ管理機能は、受け取った上記格納場所情報を元に上記データ格納サーバ群より上記実体データを取得して上記テーブル管理機能に渡し、上記テーブル管理機能は、受け取った上記実体データを上記アプリケーションに渡すように構成した。
参考の手段のデータ分散格納装置では、上記データ格納サーバ群に関係データベースの上記実体データが属性ごとに分けて格納されるため、個々のデータ格納サーバに不正アクセスをされても、属性ごとの実体データが流出するだけとなり、上記実体データの意味内容を把握できる形で流出することがなくなる。特に、実体データにダミーデータなどを紛れ込ませておけば、大量の実体データが流出したとしても関係データベース全体を復元することが困難になる。
また、参考の手段のデータ分散格納装置では、物理的に分離された個々のデータ格納サーバごとに上記実体データが属性ごとに格納されているので、ソーシャルエンジニアリングが困難となる。なお、属性ごとにとは、レコードを構成する一属性ごとに、一つのデータ格納サーバを割り当てることのみに限定されず、属性の意味内容が無関係な組合せとなる実体データ同士をまとめて一つのデータ格納サーバに格納することも含まれる。また、物理的に分離されたとは、互いを別体のハードウェアから構成した状態をいうが、ソーシャルエンジニアリングなどに対する安全性を高めるため、本発明においては、別体のハードウェアとした上で、異なる場所(部屋、建物、地理的位置)に設置することが好ましい。
さらに、参考の手段のデータ分散格納装置では、上記データ管理機能は、上記実体データを上記データ格納サーバ群に格納すると、上記実体データの格納場所情報を作成して上記テーブル管理機能に渡し、上記テーブル管理機能は、受け取った上記格納場所情報から上記テーブルを構成し、上記関係データベースを取り扱うアプリケーションから上記実体データへのアクセスを要求された場合に、上記実体データの上記格納場所情報を上記テーブルから取得して上記データ管理機能に渡し、上記データ管理機能は、受け取った上記格納場所情報を元に上記データ格納サーバ群より上記実体データを取得して上記テーブル管理機能に渡し、上記テーブル管理機能は、受け取った上記実体データを上記アプリケーションに渡すため、上記データ構成管理サーバに不正アクセスされても、上記格納場所情報が流出するだけとなり、上記実体データが外部に漏れることを防止できる。
加えて、参考の手段のデータ分散格納装置では、上記データ構成管理サーバが上記データ格納サーバ群と物理的に分離した状態で配置されているため、ソーシャルエンジニアリングがより困難となる。
また、参考の手段のデータ分散格納装置では、上記テーブルが上記実体データの上記格納場所情報から構成されているため、上記実体データのデータサイズと無関係になる。すなわち、一格納場所情報当りのデータサイズが一定なので、上記テーブルのテーブルサイズが、単純に、上記実体データ数に比例するようになる。これにより、参考の手段のデータ分散格納装置では、上記データ構成管理サーバのテーブルサイズの試算が容易になり、装置の設計が行い易くなる。
また、参考の手段のデータ分散格納装置では、上記データ格納サーバ群にデータ格納サーバの追加や削除を行う際は、上記データ管理機能の環境設定を行うだけなので、上記データ格納サーバ群の格納容量の調整が容易になると共に、上記関係データベースの運用を停止する時間が短くなる。
特に、参考の手段のデータ分散格納装置を、上記テーブル管理機能が上記格納場所情報を上記論理的格納場所情報の形で保持し、上記データ管理機能が上記格納場所情報を物理的格納場所情報の形で保持し、両格納場所情報の対応付けを示すメタデータを保持するようにすることが好ましい。
この構成によれば、上記実体データの更新などで上記物理的格納場所情報が変化しても、上記メタデータに両格納場所情報の対応付けが示されているため、上記論理的格納場所情報を変更する必要がなくなる。これにより、参考の手段のデータ分散格納装置は、同一の上記実体データの論理的格納場所情報が変化しないようになり、上記アプリケーションに対するデータ透過性を確保することができる。
ところで、参考の手段のデータ分散格納装置では、上記データ構成管理サーバを複数設けることができる。これにより、上記データ構成管理サーバが冗長化されるので、データ分散格納装置の定常運転が容易になる。
さらに、参考の手段のデータ分散格納装置においては、上記データ構成管理サーバは、上記格納場所情報を暗号鍵にて暗号化し、上記暗号鍵の復号鍵を、少なくとも、上記データ構成管理サーバに入力される管理サーバ用復号鍵片と上記アプリケーションを利用するクライアント端末より入力される端末用復号鍵片から構成し、全ての復号鍵片が入力された状態で上記格納場所情報を復号化するように構成することができる。
この構成によれば、全ての復号鍵片が入力された状態でないと、上記格納場所情報が分からないため、不正アクセスに対する安全性がより一層高くなる。なお、上記復号鍵を、必要に応じてより多くの復号鍵片から構成することもできる。例えば、上記関係データベースを取り扱うアプリケーションが格納されたアプリケーションサーバに入力されるAPサーバ用復号鍵片、上記データ格納サーバ群に入力される格納サーバ用復号鍵片を加えることもできる。
上述のように参考の手段のデータ分散格納装置は、関係データベースのテーブルに実体データを保持しない。それ故、上記実体データは、上記データ管理機能および上記テーブル管理機能による処理を介して上記アプリケーションと上記データ格納サーバ群との間で受け渡しされる。したがって、参考の手段のデータ分散格納装置では、上記テーブルの規模や上記実体データの受け渡し処理量が大きくなると、装置側の処理負担が非常に大きくなり、また、上記データ構成管理サーバと上記データ格納サーバ群との間の通信負担も大きくなるので、上記アプリケーションと上記データ構成管理サーバとの間のトランザクション速度が遅くなる。
そこで、本発明は、関係データベースの実体データを格納されるデータ格納サーバ群と、このデータ格納サーバ群と物理的に分離した状態で通信回線を介して接続されており、上記実体データを保持させたテーブルを揮発性メモリ上で取り扱う一時テーブル管理機能、および上記実体データの格納場所情報を記述したメタデータを上記テーブルの構造と対応させて管理するメタデータ管理機能を含むデータ構成管理サーバとを備え、上記一時テーブル管理機能は、アプリケーションからの追加処理又は更新処理要求のSQLを受けて当該処理を成す都度、バックグラウンドで、当該処理対象のレコードに保持させた実体データを属性ごと分けて上記データ格納サーバ群に格納する処理と、格納した各実体データの上記メタデータを作成して上記メタデータ管理機能に送る処理とを行い、上記一時テーブル管理機能は、上記アプリケーションからの検索処理要求のSQLを受けて、上記実体データを保持させたテーブルから該当実体データを取得して当該アプリケーションに渡す処理を行い、上記一時テーブル管理機能は、上記揮発性メモリが初期化された状態で、上記メタデータ管理機能が管理するメタデータとこのメタデータの格納構造に基づいて、上記実体データを保持させたテーブルを上記揮発性メモリ上に復元する処理を行い、上記揮発性メモリが初期化されると、上記実体データを保持させたテーブルが装置から完全に消去されるデータ分散格納装置に構成した。
本発明のデータ分散格納装置では、関係データベースの実体データを属性ごとに分けて格納されるデータ格納サーバ群と、このデータ格納サーバ群と物理的に分離した状態で通信回線を介して接続されており、上記実体データを保持させたテーブルを揮発性メモリ上で取り扱う一時テーブル管理機能、および上記実体データの格納場所情報を記述したメタデータを上記テーブルの構造と対応付けて管理するメタデータ管理機能を含むデータ構成管理サーバを備えるので、例えばデータの検索時には上記実体データが上記関係データベースを取り扱うアプリケーションと上記データベースサーバとの間だけで直接的に受け渡しされる。このため、本発明のデータ分散格納装置は、上記テーブルの規模や上記実体データの受け渡し処理量が大きくなっても、上記アプリケーションと上記データ構成管理サーバとの間の処理速度が参考の手段に比べて遅くならない。
しかし、上記テーブルは、実体データを保持するので、夜間などに上記ハードディスクドライブを設置した建物に侵入された場合に実体データが意味内容を理解できる形で大量流出することになる。これを防止するための手段として、上記関係データベースの利用時間外に上記テーブルの実体データを消去してしまうことが考えられる。
従来、上記テーブルの実体データはハードディスクドライブ上に記録されているが、上記テーブルの実体データを完全に消去するには、ハードディスクドライブのオーバーライト処理を行う必要がある。この処理は、時間を要するので、管理者の手を煩わせることになる。特に、顧客管理データの関係データベースのように、日々利用されるものの場合、日々管理者が手動でテーブルの実体データを消去することは不可能に近い。
そこで本発明のデータ分散格納装置では、上記データベースサーバが上記実体データを保持させたテーブルを揮発性メモリ上で取り扱うようにし、上記実体データを属性ごとに分けて上記データ格納サーバ群に格納されるように工夫した。これにより、上記テーブルは、揮発性メモリ上に保持されるので、揮発性メモリをクリアするか、或は装置の通電が止まると消失する。このため、上記テーブルの完全消去作業は、ハードディスクドライブをオーバーライトする場合と比して極短時間で行うことができる。また、上記一時テーブル管理機能を実装したサーバ等が盗難にあってもデータ流出の心配がない。なお、上記データ格納サーバ群に関係データベースの上記実体データが属性ごとに分けて格納される点で得られる効果は、上記参考の手段のデータ分散格納装置と同じである。
しかし、本発明の手段のデータ分散格納装置では、上記テーブルが完全に消去されるので、上記テーブルの復元性を確保しなければならない。つまり、個々の実体データに対して、レコード番号、属性、セル番号、インデックス等のように上記テーブルの構造と実体データとの対応付け情報を、揮発性メモリ上のテーブルとは別のハードディスク上のテーブルにて管理しなければならなくなるが、その場合、参考の手段よりもさらに多くの情報を管理しなければならなくなり、アプリケーションからのデータ更新処理要求時の処理速度改善効果があまり期待できなくなる。
そこで、本発明のデータ分散格納装置では、上記データ構成管理サーバは、上記実体データの格納場所情報を記述したメタデータを上記テーブルの構造と対応させて管理するメタデータ管理機能を含み、上記実体データを上記データ格納サーバ群に格納すると上記メタデータを作成し、上記メタデータ管理機能が管理するメタデータとこのメタデータの格納構造に基づいて上記テーブルを上記揮発性メモリ上に復元するように構成した。これにより、上記テーブルのレコード番号、属性、セル番号、インデックス等のような上記テーブルの構造と、上記実体データとが上記メタデータ管理機能を介して対応付けられるので、上記テーブルが復元可能となる。また、上記データ構成管理サーバに不正アクセスされて、上記メタデータが流出したとしても、直接的に上記実体データが外部に漏れることは防止できる。
なお、上記実体データの上記データ格納サーバ群への格納は、上記テーブルの耐障害性を確保するために、更新等の処理がなされる都度、バックグラウンドで格納するようにすることが好ましいが、装置停止前に一括格納するようにしてもよい。
しかし、上記データ構成管理サーバと上記データ格納サーバ群の両方に不正アクセスされると、上記メタデータに基づいて上記テーブルが復元される恐れがある。このため、上記参考の手段と同様、上記メタデータを暗号化することが好ましい。
そこで、本発明のデータ分散格納装置においても、上記データ構成管理サーバは、上記メタデータ管理機能が管理するメタデータを暗号鍵にて暗号化し、上記暗号鍵の復号鍵を、少なくとも、上記データ構成管理サーバに入力される管理サーバ用復号鍵片と上記関係データベースを利用するクライアント端末より入力される端末用復号鍵片から構成し、全ての復号鍵片が入力された状態で上記メタデータを復号化するように構成することができる。
上述のように、本発明のデータ分散格納装置では、上記実体データを保持させたテーブルを揮発性メモリ上で取り扱うため、バックグラウンドで上記実体データの格納処理を行うことができる。このため、上記実体データの格納時に複雑な処理を施すことが可能になる。
そこで、本発明のデータ分散格納装置では、上記データ構成管理サーバは、属性ごとに分けた実体データを一定単位データで区切り、単位間の順序関係を可逆的に入れ替え、入れ替え法則情報を保持すると共に、この入れ替え後のスクランブルデータを分割して上記データ格納サーバ群に格納する構成を採用することが好ましい。この構成によれば、上記実体データが、上記データ格納サーバ群から流出しても、その内容を把握することが極めて困難となる。より好ましくは、上記入れ替え法則情報も上記メタデータと同様に暗号化すれば、上記入れ替え法則情報が盗まれても上記実体データの安全性がより高くなる。
また、本発明のデータ分散格納装置でも、上記データ格納サーバ群にデータ格納サーバの追加や削除を行う際は、上記データ構成管理サーバの環境設定を行うだけなので、上記データ格納サーバ群の格納容量の調整が容易になると共に、上記関係データベースの運用を停止する時間が短くなる。
また、本発明のデータ分散格納装置では、上記メタデータを、その実体データから一意に導かれる文字列からなる論理的格納場所情報と上記データ格納サーバ群への物理的格納場所情報とを対応させた構造とすることが好ましい。
この構成によれば、上記実体データの更新などで上記物理的格納場所情報が変化しても、上記論理的格納場所情報を変更する必要がなくなる。これにより、本発明のデータ分散格納装置でも、上記アプリケーションに対するデータ透過性を確保することができる。
勿論、本発明のデータ分散格納装置でも、上記データ構成管理サーバを複数設けることができる。
また、本発明では、業務委託システムを、委託元から業務を外部委託される委託先企業に配置されたクライアント端末と、上記委託元および上記委託先企業と第三者の立場にある第三者機関に配置された本発明に係るデータ分散格納装置と、このデータ分散格納装置と接続されると共に上記クライアント端末と通信回線を介して接続されたアプリケーションサーバとを備え、上記関係データベースの上記実体データが上記委託元の業務データからなり、上記関係データベースを取り扱うアプリケーションを上記アプリケーションサーバに格納している構成とした。
本発明に係る業務委託システムでは、上述のように、業務データが不正アクセスに対する安全性の高いデータ分散格納装置に格納されるので、業務データからなる上記実体データが意味内容を理解できる形で漏れることを防止できる。また、本発明に係る業務委託システムによれば、上記データ分散格納装置を第三者機関の管理下に配置したため、ソーシャルエンジニアリングに対する安全性の高い業務委託システムとなる。
以上に述べたように、本発明に係るデータ分散格納装置によれば、関係データベースの管理と実体データの管理を独立させたので、装置のメンテナンスが容易であると共に、上記実体データが流出しただけだと上記実体データの意味内容を把握することが困難である。このため、本発明に係るデータ分散格納装置は、不正アクセスに対する安全性を高めることができる。また、本発明に係るデータ分散格納装置を用いた業務委託システムによれば、業務データへの不正アクセス、特にソーシャルエンジニアリングに対する安全性の高い業務委託システムを提供できる。
以下、図1から図7を参照して上記参考の手段に係るデータ分散格納装置と業務委託システムの参考例1を説明する。図1に示すように、業務委託システム1は、委託元(図示省略)から業務を外部委託される委託先企業Oに配置されたクライアント端末2と、上記委託元および委託先企業Oと第三者の立場にある第三者機関Tに配置されたデータ分散格納装置3と、このデータ分散格納装置3と通信回線5で接続されると共にクライアント端末2と通信回線4を介して接続されたアプリケーションサーバ6とを備える。
データ分散格納装置3は、データ格納サーバ群30と、このデータ格納サーバ群30と物理的に分離された状態で通信回線31を介して接続されたデータ構成管理サーバ32とを備える。
通信回線4、通信回線5、通信回線31には、例えば、双方向通信の専用線またはIPネットワークなどを用いることができる。
データ格納サーバ群30は、物理的に分離した状態のデータ格納サーバ30a、30b、30cを有し、関係データベースの実体データAを属性ごとに分けた実体データAが格納されている。ここで、実体データAは、通常の関係データベースのテーブルに保持されるデータである(図11(b)参照)。
なお、本発明においては、データ格納サーバ30a、30b、30cにストレージを用いることができる。しかし、実体データAの管理を後述のデータ構成管理サーバ32が行うので、個々のデータ格納サーバ30a、30b、30cにDBMSを構築する必要がない。また、個々のデータ格納サーバ30a、30b、30cには、属性ごとに実体データAが格納されるだけなので、通常の関係データベース程の記憶容量を求められない。このため、データ分散格納装置3は、個々のデータ格納サーバ30a、30b、30cに、例えば、パーソナルコンピュータなどの装置を使用すると低コスト化を実現できる。
データ構成管理サーバ32は、図2に示すように、実体データAを管理するデータ管理機能33と、実体データAの格納場所情報から構成されるテーブル38を管理するテーブル管理機能34とを有し、後述の論理的格納場所情報を作成する。
データ管理機能33は、データ格納サーバ群30を仮想的に一元管理しており、実体データAをデータ格納サーバ群30に格納すると、実体データAの格納場所情報として、データ格納サーバ群30における実体データAの物理的格納場所情報を作成する。
図2、図3(a)(b)に示すように、物理的格納場所情報には、物理ファイル名35を、論理的格納場所情報には、論理ファイル名(URL)36を用いることができる。例えば、URL36は、データ格納サーバ群30を構成する各データ格納サーバに対応付けられたノード名:パス/ファイル名からなる。
また、データ管理機能33は、物理的格納場所情報と論理的格納場所情報の対応付けを示すメタデータを作成し、メタデータファイル37として保持する。メタデータファイル37は、図3(a)に概念的に示すように、物理ファイル名35とURL36を対応付けたデータファイルである。なお、データ管理機能33は、チェックサム、データ複製情報、データサイズ、アクセス権、システムログ、更新ログなどをメタデータファイル37に記録する。
データ管理機能33は、URL36をテーブル管理機能34に渡し、テーブル管理機能34から受け取ったURL36を元にメタデータファイル37から物理ファイル名35を取得し、これをファイルハンドルとして、データ格納サーバ群30より実体データAを取得してテーブル管理機能34に渡す。
一方、テーブル管理機能34は、受け取ったURL36からテーブル38を構成する。テーブル38は、図3(b)に概念的に示すように、関係データベースのテーブルにURL36を格納したものである。なお、テーブル38を正規化して複数のテーブルに分割することもできる。
また、テーブル管理機能34は、上記関係データベースを取り扱うアプリケーション39から実体データAへのアクセスを要求された場合に、実体データAのURL36をテーブル38から取得してデータ管理機能33に渡し、受け取った実体データAからレコードを復元してアプリケーション39に渡す。
アプリケーション39(AP)は、アプリケーションサーバ6に格納されている。アプリケーション39は、SQLなどによりテーブル管理機能34のテーブル38にアクセスし、上記関係データベースを取り扱うものである。
一方、データ構成管理サーバ32は、URL36を暗号鍵にて暗号化する。その復号鍵は、データ構成管理サーバ32に入力される管理サーバ用復号鍵片とクライアント端末2より入力される端末用復号鍵片とから構成することができる。このような暗号化法としては、例えば、秘密分散法を用いることができる。データ構成管理サーバ32は、全ての復号鍵片が入力された状態でURL36を復号化する。
上記構成の業務委託システム1のシステムフローを図4から図7を用いて説明する。業務委託システム1では、運用開始の前提として、委託元が委託先企業Oに業務委託を行う際、第三者機関Tに業務データを貸与する。
第三者機関Tでは、データ分散格納装置3に、貸与された業務データが初期データとして入力される。データ構成管理サーバ32は、実体データAを属性ごとに分けてデータ格納サーバ群30に格納する。データ管理機能33はメタデータファイル37に、テーブル管理機能34はテーブル38に上記の各種情報を書き込む。この際、テーブル管理機能34は、テーブル38の各URL36を暗号鍵で暗号化し、秘密分散法により、その暗号鍵から端末用復号鍵片と管理サーバ用復号鍵片とを作成する。
委託先企業Oは、第三者機関Tから、アプリケーション39を利用するためのパスワードと、ICカードに入力された端末用復号鍵片を受け取り、クライアント端末2に入力する。そして、第三者機関Tは、管理サーバ用復号鍵片をデータ構成管理サーバ32からデータ格納サーバ群30に格納すると、データ管理機能33は、管理サーバ用復号鍵片の格納場所情報を作成する。なお、クライアント端末2に、委託先企業Oのオペレータの指紋認証データを入力するようにしてもよい。
以上で、業務委託システム1とデータ分散格納装置3はスタンバイ状態となる。
上記業務委託システムへのログインについて述べる。図4に示すように、委託先企業Oが上記業務データからなる実体データAを利用する場合、アプリケーションサーバ6に対してログインする。クライアント端末2よりパスワードと端末用復号鍵片を入力し、アプリケーションサーバ6に送る(S1)。アプリケーションサーバ6は、端末用復号鍵片と共に復号鍵復元要求をデータ構成管理サーバ32に送る(S2)。
データ構成管理サーバ32のテーブル管理機能34が管理サーバ用復号鍵片の格納場所情報を取得し、データ管理機能33に送り(S3)、データ管理機能33がデータ格納サーバ群30に管理サーバ用復号鍵片の格納場所情報と取得要求を送る(S4)。
データ格納サーバ群30は、受け取った管理サーバ用復号鍵片の格納場所情報に基いて管理サーバ用復号鍵片を、データ構成管理サーバ32のテーブル管理機能34に送る(S5)。
テーブル管理機能34が、管理サーバ用復号鍵片の取得に成功したか判断する(S6)。ここで、取得に失敗したと判断した場合、再取得を行い(S8)、一方、取得したと判断した場合、テーブル管理機能34は、管理サーバ用復号鍵片と端末用復号鍵片とから復号鍵を復元(S9)する。テーブル管理機能34は、復号鍵が復元できたか判断する(S7)。ここで、テーブル管理機能34は、復元失敗と判断した場合、アプリケーションサーバ6に認証拒絶を通知し、アプリケーションサーバ6は、認証が拒絶されたことをクライアント端末2に通知し(S16)、クライアント端末2は、ログインの失敗を表示する(S17)。
一方、テーブル管理機能34は、S7において復元成功と判断した場合、復号鍵をメモリに常駐させる(S10)。
S10の次に、アプリケーションサーバ6は、パスワード認証を行い、認証が成功したか判断する(S11)。ここで、パスワードの認証に成功した場合、クライアント端末2にログイン許可を通知し、クライアント端末2は、ログインの成功を表示する(S12)。
以上で、業務委託システム1のログイン処理が完了し、委託先企業Oは、アプリケーション39を利用することが可能になる。
一方、パスワードの認証に失敗した場合、クライアント端末2とテーブル管理機能34に通知する(S13)。通知を受けたクライアント端末2は、ログインの失敗を表示する(S14)。また、通知を受けたテーブル管理機能34は、復号鍵のメモリ常駐を開放する(S15)。
次に、委託先企業Oがアプリケーションサーバ6からログアウトする場合のフローを述べる。図5に示すように、クライアント端末2からログアウト命令を入力してアプリケーションサーバ6に送り(S21)、アプリケーションサーバ6は、ログアウト要求をテーブル管理機能34に通知する(S22)。
通知を受けたテーブル管理機能34は、復号鍵のメモリ常駐を開放し、そのことをアプリケーションサーバ6に通知する(S23)。アプリケーションサーバ6では、アプリケーション39が必要な内部処理を行い(S24)、クライアント端末2に処理結果を送り、処理結果を受け取ったクライアント端末2は、ログアウトの完了を表示する(S25)。
以上で、業務委託システム1のログアウト処理が完了する。
次に、委託先企業Oが委託業務実行中にデータ分散格納装置1のデータ更新作業を行う場合のフローを図6に基づき説明する。先ず、委託先企業Oはクライアント端末2から業務データを追加入力して、アプリケーションサーバ6に送る(S31)。追加の業務データを受け取ったアプリケーションサーバ6は、関係デ−タベースのレコード追加要求をテーブル管理機能34に送る(S32)。
テーブル管理機能34は、新規レコード追加処理を開始し(S33)、受け取った業務データの中の実体データAをデータ管理機能33に送る(S34)。データ管理機能33は、実体データAの格納場所を決定し(S35)、データ格納サーバ群30に実体データAを転送する(S36)。データ格納サーバ群30は、受け取った実体データAを格納する(S37)。
次に、データ管理機能33は、実体データAの追加ログを記録すると共に、実体データAのメタデータファイル37などに書き込みを行い(S38)、実体データAのURL36をテーブル管理機能34に通知する(S39)。通知を受けたテーブル管理機能34は、レコードを更新すると共にURL36を暗号化し(S40)、アプリケーションサーバ6に更新の完了を通知する。通知を受けたアプリケーションサーバ6では、アプリケーション39が必要な内部処理を行い(S41)、クライアント端末2にアプリケーション39の処理結果を送る。処理結果を受けたクライアント端末2は、その更新結果を表示する(S42)。
以上で、業務委託システム1のデータ更新作業が完了する。
なお、データ管理機能33は、複製命令を受けて実体データAを複製する場合、データ格納サーバ群30に実体データAを転送する(S43)。データ格納サーバ群30は、受け取った実体データAを格納する(S44)。次に、データ管理機能33は、実体データAの冗長ログ記録を作成する(S45)。
次に、委託先企業Oが委託業務実行中に実体データAの検索作業を行う場合のフローを図7に基づき説明する。先ず、委託先企業Oはクライアント端末2から検索条件を入力し、アプリケーションサーバ6に送る(S51)。検索条件を受け取ったアプリケーションサーバ6は、データベース検索要求をテーブル管理機能34に送る(S52)。これを受けてテーブル管理機能34は、テーブル38のURL36を復号化し、レコード検索処理を開始し(S53)、該当する業務データが有るか判断する(S54)。
テーブル管理機能34は、該当する業務データが有ると判断した場合、その実体データAのURL36を取得し、そのURL36をデータ管理機能33に送る(S55)。これを受けてデータ管理機能33は、メタデータファイル37を参照して実体データAの取得要求をデータ格納サーバ群30に送り(S58)、これらを受けてデータ格納サーバ群30は、その実体データAをデータ管理機能33に送る(S59)。
データ管理機能33は、実体データAの取得に成功したか判断する(S60)。ここで、データ管理機能33は、実体データAの取得に成功したと判断した場合、テーブル管理機能34に渡す。テーブル管理機能34は、レコードを復元し、これをアプリケーションサーバ6に送る(S61)。レコードを受け取ったアプリケーションサーバ6では、アプリケーション39が必要な内部処理を行い(S62)、クライアント端末2にアプリケーション39の処理結果を送る。処理結果を受けたクライアント端末2は、その更新結果を表示する(S63)。これにより、業務データの検索作業が完了する。
一方、データ管理機能33は、実体データAの取得に失敗したと判断した場合、実体データAの再取得を試みる(S64)。
以上に述べたように、参考例1に係る業務委託システム1およびデータ分散格納装置3によれば、関係データベースの管理と実体データAの管理を独立させたので、メンテナンスを容易に行えると共に、実体データAが流出した場合でも、業務データの意味内容を把握することが困難になるため、不正アクセスに対する安全性を高めることができる。
参考例1に係るデータ分散格納装置3は、他の業務システムに利用することも可能である。例えば、参考例2を図8に示す。なお、以下、上記参考例1と同じ構成要素については、同一の符号を付し、その説明を省略する。この参考例2では、アプリケーションサーバ6には、DBMSサーバ40が接続され、DBMSサーバ40は、データ構成管理サーバ32とも接続されている。また、データ構成管理サーバ32は、予備通信回線によりアプリケーションサーバ6と接続されている。
この構成においては、従来から広く行われているように、通常は、DBMSサーバ40で上記関係データベースの運用を行い、データ分散格納装置3をDBMSサーバ40のバックアップシステムとして利用する。上述のように、データ分散格納装置3は、データ格納サーバの増設が容易であり、データ格納サーバ群30の低コスト化を図れるので、バックアップシステムとして特に好適なものである。
また、参考例1に係るデータ分散格納装置3は、データ構成管理サーバ32を二重化することができる。例えば、参考例3を図9に示す。この参考例3では、アプリケーションサーバ6に2セットのデータ構成管理サーバ32、32が接続されており、データ格納サーバ群30は、両方のデータ構成管理サーバ32、32と接続されている。
この構成においては、両データ構成管理サーバ32、32を同期させると、運転時にそれぞれのデータ構成管理サーバ32に加わる負荷を分散することができ、いずれか一方のデータ構成管理サーバ32が故障した場合には、他方のデータ構成管理サーバ32で縮退運転することができる。
さらに別の二重化形態として、参考例4を図10に示す。この参考例4では、上記参考例3において、それぞれのデータ構成管理サーバ32ごとにアプリケーションサーバ6が接続されている。また、それぞれのデータ構成管理サーバ32、32は互いに物理的に分離された状態で配置されている。
この構成においては、クライアント端末2、2ごとにアクセスさせるデータ構成管理サーバ32、32を分けることができるので、セキュリティ対策をより局所的に行えるようになると共に、利用ユーザに回線距離が短い方のデータ構成管理サーバ32にアクセスさせると通信負担を低減できる。
本発明に係る実施形態の全体構成を図12に示す。この実施形態に係るデータ分散格納装置50は、アプリケーションサーバ6に接続されたデータ構成管理サーバ51と、データ格納サーバ群52とを備え、データ構成管理サーバ51とデータ分散格納装置50がネットワーク53を介して物理的に分離した状態で接続されたものである。
データ構成管理サーバ51は、関係データベースの顧客管理テーブル60を揮発性メモリ57上で取り扱う一時テーブル管理機能54、およびテーブル60に保持させた実体データの格納場所情報を記述したメタデータ70をテーブル60の構造と対応させて管理するメタデータ管理機能56を含み、それぞれサーバとして構成された一時テーブル管理機能54およびメタデータ管理機能56が通信回線55を介して接続されているものである。なお、データ格納サーバ群52は、参考例1と同様のものなので説明を省略する。
一時テーブル管理機能54は、揮発性メモリ57を仮想的にハードディスクドライブとみなしてデータ保存等に利用するRAMディスク機能の他、図13に概念的に示すように、レコード61aを一ファイル単位とし、例えば、レコード61aの属性が顧客ID62である実体データ63a(AB12・・・)のように、実体データを保持させた顧客管理テーブル60を揮発性メモリ57上で取り扱うデータベースマネジメント機能を備える。この一時テーブル管理機能54は、属性ごとに分けた実体データを一定単位データで区切り、単位間の順序関係を可逆的に入れ替え、入れ替え法則情報を保持すると共に、この入れ替え後のスクランブルデータを分割してデータ格納サーバ群52に格納するようになっている。
また、一時テーブル管理機能54は、顧客管理テーブル60の実体データをデータ格納サーバ群52に格納すると、メタデータ70を作成するようになっている。メタデータ70は、図14に概念的に示すように、顧客管理テーブル71の属性名を有するディレクトリ構造となっており、例えば、顧客ID72のように、顧客管理テーブル60の属性ごとに実体データのメタデータが格納される下位階層が設けられた構造となっており、メタデータ管理機能56により管理される。
一時テーブル管理機能54は、レコード61aに保持させた実体データを、属性ごとに、或はデータ流出しても問題とならない意味内容の組み合わせとなるように分ける。すなわち、顧客管理テーブル60では、顧客ID、名前と住所、電話番号と生年月日等というように分けられる。以下の処理は、顧客ID62の実体データ63a(ABCD1234567890)を代表例に説明する。
次に、一時テーブル管理機能54は、実体データ63aを一定データ長で断片化する。断片する一定データ長は、後述するパックサイズの整数倍であることがアクセス性能上好ましいので、この例では、断片データ64a、64bの一定データ長を8バイトとしている。以下の処理は、断片データ64a(ABCD1234)を例に説明する。
次に、一時テーブル管理機能54は、断片データ64aを一定単位データで区切り、単位間の順序関係を可逆的に入れ替える(以下、一定単位データをシャッフルサイズという)。この例では、シャッフルサイズが1バイトなっているので、単位間の順序関係は、図13において左から順に(0)、(1)、・・・、(7)の順次関係となっている。入れ替え法則情報には、実体データ63aに固有の乱数が用いられており、入れ替えは、断片データ64aをシャッフルサイズ単位に区切り、上記乱数で決定する任意の2つの単位を交換することで行われる。
この例では、実体データ63aの固有乱数が「06142537」とすると、乱数の構成数字を左側から2個1セットごとに区分して交換単位とし、該当する順序関係の一定単位データが交換される。すなわち、断片データ64aの(0)番面のデータ「A」と(6)番面のデータ「3」、(1)番面のデータ「B」と(4)番面のデータ「1」というように入れ替えられるようになっており、断片データ64aからスクランブルデータ65aが得られる。上記乱数は、実体データ63aの入れ替え法則情報としてメタデータに記述され、暗号化された状態でメタデータ管理機能56に格納されるようになっている。
次に、一時テーブル管理機能54は、スクランブルデータ65aを、さらに一定サイズ(以下、一定サイズをパックサイズという)で分割する。アクセス性能上、断片データのデータ長をパックサイズの倍数にすることが望ましいことから、この例では、パックサイズを2バイトとし、断片データのデータ長を8バイトとしている。
なお、分割データ66a〜dは、データ格納サーバ群52の各ノード52a〜dに対してランダムに格納する。ここで、分割データ66a〜dをランダムに格納するのは、データ流出に対する安全性をより高めるためである。
実体データ63aは、上記各処理を逆順に行うことによって復元される。すなわち、分割データ66a〜dを結合すると元のスクランブルデータ65aが得られ、上記乱数を参照して再度同じ交換処理を行うと断片データ64aが得られ、断片データ64a、64bを結合すると実体データ63aが復元される。
なお、一時テーブル管理機能54は、断片データのいずれかが一定データ長に足らない場合、乱数データを追加して一定データ長に整える。例えば、断片データ64b(567890$%)では、本来6バイト(567890)しかないので、乱数データ「$%」を追加することにより8バイトとされている。このように乱数データが追加されると、分割データ66a〜dの復元や判読が困難になるという利点がある。分割データに含まれる乱数データは、断片データ64a、64bを結合する段階で除去される。
一時テーブル管理機能54は、実体データ63aを分割データ66a〜dとしてデータ格納サーバ群52に格納すると、実体データ63aの論理的格納場所情報と、分割データ66a〜dの物理的格納場所情報を合わせてメタデータとしてメタデータ管理機能56に渡す。例えば顧客ID72の下位階層内に格納された実体データ63aのメタデータは、その論理的格納場所情報と、分割データ66a〜dのデータ格納サーバ群52への物理的格納場所情報とを対応させた構造となっている。
論理的格納場所情報は、レコード61aに保持される実体データを一方向性関数(ハッシュ関数)により計算したハッシュ値に、顧客管理テーブル60の属性の並びに対応するシーケンシャル番号を付けた文字列からなる。また、物理的格納場所情報には、ランダムに格納された各分割データ66a〜dの物理的格納場所情報が記述されている。
一時テーブル管理機能54は、顧客ID72内の論理的格納場所情報を参照して各分割データ66a〜dから実体データ63aを復元し、顧客管理テーブル71の他の下位階層からも同様にレコード61aを構成する他の実体レコードを復元し、各実体データの物理的格納場所情報に対応する論理的格納場所情報のシーケンシャル番号に基づいて結合することにより、顧客管理テーブル60の属性の並び順に実体データが保持されたレコード61aを1ファイルとして復元する。
上述のように、メタデータ70が全体として顧客管理テーブル60の構造と同一に対応させた階層構造とされているため、データ構成管理サーバ51は、メタデータ70が(テーブル名−属性名)というディレクトリ構造になっていることから、上位にあるテーブル名を指定することにより、顧客管理テーブル60を揮発性メモリ57上に一括で復元することができる。また、一時テーブル管理機能54は、顧客管理テーブル60に関する全実体データの格納場所を一括取得することが可能になるので、一時テーブル管理機能54からデータ格納サーバ群52へのアクセスを並列処理することにより他のレコード61bも並列的に復元し、トランザクション速度の高速化を図ることができる。
また、データ構成管理サーバ51は、上記参考例1と同様に、メタデータ管理機能56が管理するメタデータ70を暗号鍵にて暗号化し、暗号鍵の復号鍵を、少なくとも、データ構成管理サーバ51に入力される管理サーバ用復号鍵片と上記関係データベースを利用するクライアント端末より入力される端末用復号鍵片から構成し、全ての復号鍵片が入力された状態でメタデータ70を復号化するようになっている。
上記の構成を有するデータ分散格納装置50のシステムフローを図15から図19に基づいて説明する。なお、以下では理解を容易にするため、適宜図12から14の符号を付して説明するが、図15から図19中では符号を省略する。
データ分散格納装置50の利用前段階として、委託先企業の業務管理者(O)は、アプリケーションサーバ6を管理し、顧客管理テーブル60の利用権限を有する者である。第三者機関は、データ分散格納装置50へのアクセスを可能とするシステムキーをデータベース単位に一つ作成している。このシステムキーは、上記暗号鍵と復号鍵に相当するものであり、固有の乱数からなる。管理サーバ用復号鍵片は、システムキーを業務管理者(O)のパスワードもしくは指紋データのハッシュ値(以下、ユーザキーという。)でXOR分割したものであり、データ格納サーバ群52に格納されている。なお、メタデータ管理機能56には、業務管理者(O)のユーザ名のハッシュ値からなる論理的格納場所情報と対応させて管理サーバ用復号鍵片の物理的格納場所情報が格納されている。一方、端末用復号鍵片は、業務管理者(O)の保持する上記ユーザキーである。なお、この実施形態では、アプリケーションサーバ6が上記クライアント端末として機能する。
図15、図16は、業務管理者(O)がアプリケーションサーバ6よりデータ分散格納装置50へアクセスし、アプリケーションサーバ6がスタンバイ状態になるまでの概略フローを示している。図15に示すように、先ず、業務管理者(O)は、アプリケーションサーバ6からDBMSサーバ54に対して、業務開始要求、ユーザ名、上記ユーザキーを送る(s200)。
一時テーブル管理機能54は、この業務開始要求に応じて業務開始機能を呼び出し(s201)、業務開始機能が、システムキーの復元処理要求、前記のユーザ名のハッシュ値、上記ユーザキーをメタデータ管理機能56に送る(s202)。
メタデータ管理機能56は、前記のユーザ名のハッシュ値からなる論理的格納場所情報に対応する管理サーバ用復号鍵片の物理的格納場所情報を取得し(s204)、この物理的格納場所情報に基づいてデータ格納サーバ群52から管理サーバ用復号鍵片を取り寄せ(s205)、この管理サーバ用復号鍵片と前記のユーザキーとをXOR演算してシステムキーを復元し、復元完了通知を一時テーブル管理機能54の業務開始機能に送る(s206)。
一時テーブル管理機能54の業務開始機能は、メタデータ管理機能56に対してメタデーモン起動要求を送る(s208)。
メタデータ管理機能56は、これを受けてメタデーモン機能を起動させ(s209)、起動完了通知を一時テーブル管理機能54の業務開始機能に送る。ここで、メタデーモン機能は、システムキーをそのシステムメモリに常駐させると共に、メタデータ70等の暗号化・復号化処理を可能な状態とする。
一時テーブル管理機能54の業務開始機能がメタデーモンの起動完了通知を受けると、データ分散格納装置50は利用準備状態になる(s210)。
図16に示すように、業務開始機能は、RAM−DB開始要求をRAM−DB開始機能に送り(s211)、RAM−DB開始機能は、これを受けてRAMディスク機能、データベースマネジメント機能の起動(s212、s213)と、RAMディスク機能による揮発性メモリ57の初期化処理(s214)を図り、一時テーブル管理機能54の業務開始機能に初期化完了通知を送る(s215)。
一時テーブル管理機能54の業務開始機能は、これを受けて、顧客管理テーブル60の復元要求を一時テーブル管理機能54のDBロード実行機能に送り(s216)、DBロード実行機能は、これを受けて、メタデータ管理機能56に対してメタデータ70の一括送信要求を送り(s217)、メタデータ管理機能56は、これを受けて、メタデータ70を復号化し、DBロード実行機能に一括送信する(s218)。
一時テーブル管理機能54のDBロード実行機能は、受け取ったメタデータ70から顧客管理テーブル60に保持させる実体データの送信要求をデータ格納サーバ群52の各ノード52a〜dに送り、データ格納サーバ群52から各分割データを受け取ると、随時実体データを復元する(s219)。
次に、一時テーブル管理機能54のDBロード実行機能は、復元された実体データをその論理的格納場所情報のシーケンシャル番号に基づいて結合することにより1レコードのファイルを作成し、それを随時テキストファイルに追記して行くことによってDBロードファイルを作成する(s220)。次に、DBロード実行機能は、前記のDBロードファイルをデータベースマネジメント機能に送信し、それを受信したデータベースマネジメント機能は、揮発性メモリ57上に実体データの保持された顧客管理テーブル60を完全に復元し、復元完了通知を一時テーブル管理機能54の業務開始機能に送る(s221)。
一時テーブル管理機能54の業務開始機能は、これを受けて、DB更新開始要求を一時テーブル管理機能54のDB更新処理開始機能に送り(s223)、DB更新処理開始機能は、この要求を受けて起動し(s224)、DB更新トリガ処理を有効化し(s225)、DB更新デーモンを起動させ、起動完了通知を一時テーブル管理機能54の業務開始機能に送る(s226)。ここまでの処理を経て、顧客管理テーブル60が更新処理準備状態になる。
一時テーブル管理機能54の業務開始機能は、DB更新デーモンの起動完了通知を受けて、アプリケーションサーバ6に結果表示を出力させ(s227)、アプリケーションサーバ6がスタンバイ状態となる(s228)。
図17、図18は、業務管理者(O)の管理するクライアント端末2が、アプリケーションサーバ6に格納されたアプリケーション39を介して顧客管理テーブル60へアクセスし、各種の取り扱い処理を実行する際のシステムフローを概略的に示している。
図17に示すように、先ず、クライアント端末2は、アプリケーションサーバ6にログイン要求を送り(s229)、アプリケーションサーバ6は、これを受けてログイン認証を行い(s230)、ログイン許可を受けて、クライアント端末2は、アプリケーション39を介して顧客管理テーブル60へアクセス可能となる(s231)。
(s231)の状態で、クライアント端末2が検索処理要求をアプリケーションサーバ6に送ると(s232)、アプリケーションサーバ6は、「SELECT」のSQLを一時テーブル管理機能54に送り(s233)、一時テーブル管理機能54はSELECT処理を行い(s234)、顧客管理テーブル60から該当ファイルや実体データを取得し(s235)、その検索結果をアプリケーションサーバ6を介してクライアント端末2に表示させる(s236)。
(s231)の状態で、クライアント端末2が追加処理要求と追加データをアプリケーションサーバ6に送ると(s237)、アプリケーションサーバ6は、「INSERT」のSQLを一時テーブル管理機能54に送り(s238)、一時テーブル管理機能54はトリガ処理を実行してそのファイル挿入機能を起動させる(s241)。
一時テーブル管理機能54のファイル挿入機能は、追加データをスクランブルデータにして分割データを作成し(s242)、各分割データをデータ格納サーバ群52に対してランダムに格納すると共に、追加データの論理的格納場所情報を作成し(s243)、各分割データの物理的格納場所情報をメタデータ管理機能56に送る(s244)。メタデータ管理機能56は、該当するメタデータを更新することにより、ファイル挿入機能が作成した論理的格納場所情報と各分割データの物理的格納場所情報を対応させ、更新完了通知を一時テーブル管理機能54のファイル挿入機能に送る(s245)。
一時テーブル管理機能54のファイル挿入機能は、これを受けて、トリガ処理を終了し(s246)、クライアント端末2に追加処理結果をアプリケーションサーバ6を介して表示させる(s247)。
図18に示すように、(s231)の状態で、クライアント端末2が更新処理要求と更新データをアプリケーションサーバ6に送ると(s248)、アプリケーションサーバ6は、「UPDATE」のSQLを一時テーブル管理機能54に送り(s249)、一時テーブル管理機能54は、これを受けてUPDATE処理を行い(s250)、顧客管理テーブル60から該当する更新対象ファイルを検索し(s260)、更新対象ファイルを発見するとトリガ処理を実行し、一時テーブル管理機能54のファイル削除機能を起動させる(s270)。ファイル削除機能は、更新対象ファイルに保持された実体データの削除要求をデータ格納サーバ群52に送り(s271)、データ格納サーバ群52は、これを受けて該当実体データを削除し、その結果をメタデータ管理機能56に送り(s272)、メタデータ管理機能56は、これを受けて、該当実体データのメタデータを削除し、完了通知を一時テーブル管理機能54に送る(s273)。
一時テーブル管理機能54は、これを受けてトリガ処理を実行し(s274)、ファイル挿入機能を起動させる(s275)。ファイル挿入機能は、更新データをスクランブルデータにして分割データを作成し(s276)、各分割データをデータ格納サーバ群52に対してランダムに格納すると共に、更新データの論理的格納情報を作成し(s277)、各分割データの物理的格納場所情報と合わせてメタデータ管理機能56に送る(s278)。メタデータ管理機能56は、該当するメタデータを更新することにより、ファイル挿入機能が作成した論理的格納場所情報と各分割データの物理的格納場所情報を対応させ、更新完了通知を一時テーブル管理機能54のファイル挿入機能に送る(s278)。
一時テーブル管理機能54は、これを受けてトリガ処理を終了し(s279)、クライアント端末2に更新処理結果をアプリケーションサーバ6を介して結果表示させる(s280)。
図19は、業務管理者(O)がアプリケーションサーバ6とデータ分散格納装置50とのアクセスを終了させる際の概略フローを示している。図19に示すように、先ず、業務管理者(O)は、アプリケーションサーバ6がスタンバイ状態で、アプリケーションサーバ6から一時テーブル管理機能54に対して、業務終了要求を送る(s281)。
一時テーブル管理機能54は、これを受けて業務終了機能を起動させ(s282)、業務終了機能は、DB更新処理停止要求を一時テーブル管理機能54のDB更新処理停止機能に送り(s283)、DB更新処理停止機能は、DB更新デーモンを停止させ(s284)、DB更新トリガを無効化し(s285)する。
次に、業務終了機能は、顧客管理テーブル60の消去要求をRAM−DB停止機能に送り(s289)、RAM−DB停止機能は、これを受けて顧客管理テーブル60の処理を停止させ(s290)、揮発性メモリ57上の顧客管理テーブル60を消去し、業務終了機能に消去完了通知を送る(s291)。
業務終了機能は、これを受けてメタデーモン停止要求をメタデータ管理機能56に送り(s293)、メタデータ管理機能56は、メタデーモン機能を停止させて、停止完了通知を一時テーブル管理機能54の業務終了機能に送る(s294)。
業務終了機能は、これを受けて、業務終了処理結果をアプリケーションサーバ6に表示させ(s295)、アプリケーションサーバ6とデータ分散格納装置50とのアクセスが終了状態となる(s296)。