(57)【特許請求の範囲】
【請求項１】
データベースサーバと、前記データベースサーバからデータを取得する複数の参照装置とを備える情報処理システムであって、
データベースサーバは、
複数の後記参照装置が共通して参照するキーと、各参照装置が抽出可能な複数の参照部分データを対応づけた対象データを含む格納データを記憶する記憶装置と、
後記参照装置から入力されたキーに対応づけられた対象データを出力する制御手段と、を備え、
参照装置は、
前記データベースサーバから取得した対象データから、当該参照装置が抽出可能な参照部分データを抽出する抽出手段を備える
ことを特徴とする情報処理システム。
【請求項２】
前記対象データは、
前記各参照装置がそれぞれ復号可能な形式で、それぞれ暗号化された参照部分データを含み、
前記参照装置の抽出手段は、
当該参照装置が復号に成功した参照部分データを抽出することを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記対象データは、
前記複数の参照部分データのそれぞれについて、当該参照部分データを抽出させる参照装置の識別子を対応づけ、
前記参照装置の抽出手段は、
当該参照装置の識別子に対応づけられた参照部分データを抽出することを特徴とする請求項１または２に記載の情報処理システム。
【請求項４】
前記対象データは、
前記各参照装置が抽出可能な複数の参照部分データを連結したデータであって、
前記参照装置の抽出手段は、
前記対象データのうち当該参照装置が抽出可能なデータ位置を特定するマスクを用いて、前記参照部分データを抽出する
ことを特徴とする請求項１または２に記載の情報処理システム。
【請求項５】
データベースサーバと、前記データベースサーバからデータを取得する複数の参照装置とを備える情報処理システムに用いられる参照装置であって、
データベースサーバにキーを送信するとともに、前記データベースサーバから、当該キーに関連し、各参照装置が抽出可能な複数の参照部分データを対応づける対象データを取得する取得手段と、
前記対象データから、当該参照装置が抽出可能な参照部分データを抽出する抽出手段
を備えることを特徴とする参照装置。
【請求項６】
コンピュータを、請求項５に記載の手段として機能させるための参照プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースサーバと、データベースサーバからデータを取得する複数の参照装置とを備える情報処理システム、参照装置および参照プログラムに関する。
【背景技術】
【０００２】
情報機器の発達に伴い、データベースからデータを取得する複数の参照装置を備える情報処理システムが普及している。複数の参照装置はそれぞれ、データベースから取得したデータを用いてサービスを提供する。
【０００３】
このようなシステムにおいて、各参照装置がサービスを提供するために、データベースサーバは、各参照装置が必要なデータを収集して保存する。一つのデータベースサーバが、複数のサービスに関するデータを保持することができるので、データベースサーバの装置数を削減し、データ収容能力に基づいて柔軟に実装することが可能となる。この結果、情報処理システム全体について、設備コストを削減するとともに、運用性および保守性の向上が期待できる。
【０００４】
ここで一般的なデータベースサーバは、複数のテーブルを保有し、正規化されたデータを格納する。このようなデータベースサーバは、複数のテーブルを横断して検索する。従って、複数の参照装置からの複数の要求に応えるため、データベースサーバの負荷が高くなってしまう問題がある。
【０００５】
このような問題を解決するために、複数のデータベースサーバや複数のキャッシュサーバを用いて、各サーバにかかる負荷を分散する方法がある（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−１４１９００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、複数のデータベースサーバや複数のキャッシュサーバを用いる場合、特許文献１に示されるように、各サーバが格納するデータについて同期する必要があり、各サーバに負担をかける場合が考えられる。
【０００８】
また、一つのデータベースサーバのみを用いる場合、複数のテーブルを保有し正規化されたデータを格納することが一般的であるので、このデータベースサーバの負荷が高くなってしまう問題がある。複数のサービスのデータを一つのデータベースサーバが管理する場合は特に、この問題は顕著になる。
【０００９】
従って本発明の目的は、データベースサーバの負担を軽減可能な情報処理システムと、この情報処理システムに用いられる参照装置および参照プログラムを提供することである。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の第１の特徴は、データベースサーバと、前記データベースサーバからデータを取得する複数の参照装置とを備える情報処理システムに関する。本発明の第１の特徴に係る情報処理システムにおいて、データベースサーバは、複数の後記参照装置が共通して参照するキーと、各参照装置が抽出可能な複数の参照部分データを対応づけた対象データを含む格納データを記憶する記憶装置と、参照装置から入力されたキーに対応づけられた対象データを出力する制御手段と、を備える。参照装置は、データベースサーバから取得した対象データから、当該参照装置が抽出可能な参照部分データを抽出する抽出手段を備える。
【００１１】
ここで、対象データは、各参照装置がそれぞれ復号可能な形式で、それぞれ暗号化された参照部分データを含み、参照装置の抽出手段は、当該参照装置が復号に成功した参照部分データを抽出しても良い。
【００１２】
また、対象データは、複数の参照部分データのそれぞれについて、当該参照部分データを抽出させる参照装置の識別子を対応づけ、参照装置の抽出手段は、当該参照装置の識別子に対応づけられた参照部分データを抽出しても良い。
【００１３】
さらに対象データは、各参照装置が抽出可能な複数の参照部分データを連結したデータであって、参照装置の抽出手段は、対象データのうち当該参照装置が抽出可能なデータ位置を特定するマスクを用いて、前記参照部分データを抽出しても良い。
【００１４】
本発明の第２の特徴は、データベースサーバと、前記データベースサーバからデータを取得する複数の参照装置とを備える情報処理システムに用いられる参照装置に関する。本発明の第２の特徴に係る参照装置は、データベースサーバにキーを送信するとともに、当該キーに関連する対象データを取得する取得手段と、対象データから、当該参照装置が抽出可能な参照部分データを抽出する抽出手段を備える。
【００１５】
本発明の第３の特徴は、コンピュータを本発明の第２の特徴に記載の手段として機能させるための参照プログラムに関する。
【発明の効果】
【００１６】
本発明によれば、データベースサーバの負担を軽減可能な情報処理システムと、この情報処理システムに用いられる参照装置および参照プログラムを提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施の形態に係る情報処理システムのシステム構成を説明するとともに、更新装置、データベースサーバおよび参照装置のハードウェア構成および機能ブロックを説明する図である。
【図２】本発明の実施の形態に係る更新装置の処理を説明するフローチャートである。
【図３】本発明の実施の形態に係るデータベースサーバの処理を説明するフローチャートである。
【図４】本発明の実施の形態に係る参照装置の処理を説明するフローチャートである。
【図５】本発明の第１の実装例を説明する図である。
【図６】本発明の第１の実装例に係る更新装置の更新処理を説明するフローチャートである。
【図７】本発明の第１の実装例に係る参照装置の抽出処理を説明するフローチャートである。
【図８】本発明の第２の実装例を説明する図である。
【図９】本発明の第２の実装例に係る更新装置の更新処理を説明するフローチャートである。
【図１０】本発明の第２の実装例に係る参照装置の抽出処理を説明するフローチャートである。
【図１１】本発明の第２の実装例に係る対象データの変形例を説明する図である。
【図１２】本発明の第３の実装例を説明する図である。
【図１３】本発明の第３の実装例に係る更新装置の更新処理を説明するフローチャートである。
【図１４】本発明の第３の実装例に係る参照装置の抽出処理を説明するフローチャートである。
【発明を実施するための形態】
【００１８】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一または類似の部分には同一または類似の符号を付している。
【００１９】
（実施の形態）
本発明の実施の形態に係る情報処理システム９は、データベースサーバ３と、複数の参照装置１と、少なくとも一つの更新装置２を備える。データベースサーバ３、参照装置１および更新装置２は、通信ネットワークなどにより、相互に通信可能に接続される。
【００２０】
図１に示す情報処理システム９は、一つのデータベースサーバ３、第１の参照装置１ａ、第２の参照装置１ｂ、第１の更新装置２ａおよび第２の更新装置２ｂを備える場合を説明するが、本発明の特徴を適用できるのであれば、これらの数は問わない。図１に示す例において、データベースサーバ３にデータを格納させる装置を更新装置２と称し、データベースサーバ３からデータを取得する装置を参照装置１とするが、これらは、独立した個々の装置でなくても良い。例えば、ある一つの業務サーバが、データベースサーバ３にデータを格納させる際は更新装置２として機能するとともに、データベースサーバ３からデータを取得する際は参照装置１として機能しても良い。本発明の実施の形態において、第１の参照装置１ａおよび第２の参照装置１ｂを区別しない場合、単に参照装置１と記載する場合がある。同様に、第１の更新装置２ａおよび第２の更新装置２ｂを区別しない場合、単に更新装置２と記載する場合がある。
【００２１】
データベースサーバ３は、更新装置２から入力されたデータを格納データＤに保持するとともに、参照装置１からの要請に基づいて、格納データＤの少なくとも一部のレコードのデータを出力する。
【００２２】
本発明の実施の形態において、第１の更新装置２ａがデータベースサーバ３に更新させ、第１の参照装置１ａが参照するデータを、「参照部分データＤ１１」と表記する。第１の更新装置２ａがデータベースサーバ３に更新させ、第２の参照装置１ｂが参照するデータを、「参照部分データＤ１２」と表記する。第２の更新装置２ｂがデータベースサーバ３に更新させ、第１の参照装置１ａが参照するデータを、「参照部分データＤ２１」と表記する。第２の更新装置２ｂがデータベースサーバ３に更新させ、第２の参照装置１ｂが参照するデータを、「参照部分データＤ２２」と表記する。本発明の実施の形態において、参照部分データＤ１１、Ｄ１２、Ｄ２１およびＤ２２はそれぞれ、単にデータＤ１１、Ｄ１２、Ｄ２１およびＤ２２と称される場合もある。
【００２３】
（更新装置）
第１の更新装置２ａは、処理制御装置２０、記憶装置２５および通信制御装置２９を備える一般的なコンピュータである。第１の更新装置２ａが、所定の機能を実現させるためのプログラムを実行することにより、処理制御装置２０は、更新手段２１ａを実装する。
【００２４】
第１の更新装置２ａの記憶装置２５は、サービス提供などにより、キーＫに関連して、第１の参照部分データＤ１１と、第２の参照部分データＤ１２とを記憶する。第１の参照部分データＤ１１は、第１の参照装置１ａが参照するデータの一部である。第２の参照部分データＤ１２は、第２の参照装置１ｂが参照するデータの一部である。
【００２５】
第１の更新装置２ａの更新手段２１ａは、キーＫと、データＤ１１およびＤ１２を、データベースサーバ３に送信して、更新するよう依頼する。このとき更新手段２１ａは、第１の参照部分データＤ１１については、第１の参照装置１ａが抽出可能な形式に変換するとともに、第２の参照部分データＤ１２については、第２の参照装置１ｂが抽出可能な形式に変換しても良い。その後、更新手段２１ａは、キーＫと、第１の参照装置１ａが抽出可能な形式に変換された第１の参照部分データＤ１１と、第２の参照装置１ｂが抽出可能な形式に変換された第２の参照部分データＤ１２とを、対応づけて、データベースサーバ３に送信する。
【００２６】
第１の更新装置２ａにおける参照部分データは、参照する参照装置１が抽出可能であれば、どのようなものでも良い。例えば、第１の更新装置２ａは、参照部分データを、参照するべき参照装置１のみが復号可能に暗号化して変換し、参照装置１の識別子を付与し変換しても良い。また第１の更新装置２ａにおいて特に特別な変換をすることなく、参照する参照装置１が有するマスクで参照部分データを抽出しても良い。後述の各実装例において詳述する。
【００２７】
図２を参照して、更新手段２１ａによる更新処理を説明する。ステップＳ１０１において更新手段２１ａは、第１の参照部分データＤ１１を、第１の参照装置１ａが取得可能な形式に変換する。ステップＳ１０２において更新手段２１ａは、第２の参照部分データＤ１２を、第２の参照装置１ｂが取得可能な形式に変換する。
【００２８】
ステップＳ１０３において更新手段２１ａは、キーＫと、ステップＳ１０１の変換後の第１の参照部分データＤ１１と、ステップＳ１０２の変換後の第２の参照部分データＤ１２とをデータベースサーバ３に送信する。更新手段２１ａは、これらのデータの格納データＤへの登録をリクエストする。
【００２９】
ここで、ステップＳ１０１およびステップＳ１０２の処理における参照部分データの変換は、必要に応じて実行されても良い。また第１の更新装置２ａについて説明したが、第２の更新装置２ｂも第１の更新装置２ａと同様である。
【００３０】
（データベースサーバ）
データベースサーバ３は、図１に示すように、処理制御装置３０、記憶装置３５および通信制御装置３９を備える一般的なコンピュータである。データベースサーバ３が、所定の機能を実現させるためのプログラムを実行することにより、処理制御装置３０は、制御手段３１を実装する。
【００３１】
記憶装置３５は、格納データＤを記憶する。格納データＤは、複数の対象データＤｋを含む。対象データＤｋは、複数の参照装置１が共通して参照するキーと、各参照装置１が抽出可能な複数の参照部分データを対応づける。図１に示す例において、キーＫに関する複数の参照部分データは、第１の参照装置１ａが参照するデータＤ１１およびＤ２１と、第２の参照装置１ｂが参照するデータＤ１２およびＤ２２である。データＤ１１およびＤ２１は、第１の参照装置１ａが抽出可能なデータである。データＤ１２およびＤ２２は、第２の参照装置１ｂが抽出可能なデータである。
【００３２】
制御手段３１は、格納データＤの更新および参照に関する処理を制御する。
【００３３】
制御手段３１は、更新装置２から受信したキーと参照部分データとを対応づけて格納データＤに保持する。図１に示す例において制御手段３１は、第１の更新装置２ａから、キーＫと、このキーに対応する参照部分データＤ１１およびＤ１２を取得すると、キーＫにデータＤ１１およびＤ１２を対応づけて格納データＤに記憶する。また制御手段３１は、第２の更新装置２ｂから、キーＫと、このキーに対応する参照部分データＤ２１およびＤ２２を取得すると、キーＫにデータＤ２１およびＤ２２を対応づけて格納データＤに記憶する。
【００３４】
制御手段３１は、参照装置１から入力されたキーＫに対応づけられた対象データＤｋを出力する。制御手段３１は、参照装置１から入力されたキーＫの対象データＤｋを、参照元の参照装置１が抽出するか否かに関わらず、送信する。具体的には、あるキーＫの対象データＤｋとして、キーＫ、データＤ１１、Ｄ１２、Ｄ２１およびＤ２１が関連づけられている場合を考える。この場合制御手段３１は、参照装置１からレコードを特定するキーＫが入力されると、このキーに関連する対象データＤｋを入力元の参照装置１に出力する。入力元が第１の参照装置１ａの場合、第１の参照装置１ａは、取得した対象データＤｋから、抽出するべきデータＤ１１およびＤ２１を取得し、それ以外のデータＤ１２およびＤ２２を破棄する。入力元が第２の参照装置１ｂの場合、第２の参照装置１ｂは、取得した対象データＤｋから、抽出するべきデータＤ１２およびＤ２２を取得し、それ以外のデータＤ１１およびＤ２１を破棄する。
【００３５】
図３を参照して、制御手段３１による制御処理を説明する。まずステップＳ１２１において制御手段３１は、他装置からリクエストが入力されると、そのリクエストの種別により処理を振り分ける。
【００３６】
例えば、更新装置２から、更新リクエストが入力された場合、制御手段３１は、ステップＳ１２２に進む。ステップＳ１２２において制御手段３１は、更新装置２から受信したキーＫと、更新対象の参照部分データとを対応づけて、格納データＤに記憶する。
【００３７】
また、参照装置１から、参照リクエストが入力された場合、制御手段３１は、ステップＳ１２３に進む。ステップＳ１２３において制御手段３１は、参照装置１から受信したキーＫに対応する対象データを、格納データＤから抽出する。制御手段３１は、抽出したデータを参照装置１に出力する。
【００３８】
（参照装置）
第１の参照装置１ａは、処理制御装置１０、記憶装置１５および通信制御装置１９を備える一般的なコンピュータである。第１の参照装置１ａが、所定の機能を実現させるための参照プログラムを実行することにより、処理制御装置１０は、取得手段１１および抽出手段１２ａを実装する。
【００３９】
第１の参照装置１ａの記憶装置１５は、処理制御装置１０の処理により、対象データＤｋおよび第１の参照データＲ１を記憶する。第１の参照データＲ１は、第１の更新装置２ａおよび第２の更新装置２ｂがデータベースサーバ３に登録したデータのうち、第１の参照装置１ａが抽出するべきデータである。
【００４０】
なお、第２の参照装置１ｂは、第２の参照データＲ２を記憶する。第２の参照データＲ２は、第１の更新装置２ａおよび第２の更新装置２ｂがデータベースサーバ３に登録したデータのうち、第２の参照装置１ｂが抽出するべきデータである。
【００４１】
第１の参照装置１ａの取得手段１１は、データベースサーバ３にキーＫを送信するとともに、当該キーに関連する対象データＤｋを取得する。取得手段１１は、取得した対象データＤｋを記憶装置１５に記憶する。
【００４２】
第１の参照装置１ａの抽出手段１２ａは、対象データＤｋから、第１の参照装置１ａが抽出可能な参照データＲ１を抽出して、記憶装置１５に記憶する。抽出手段１２ａは、対象データＤｋから、参照部分データＤ１１およびＤ２１を抽出して、第１の参照データＲ１を生成し記憶する。抽出手段１２ａは、更新装置２におけるデータ変換と対応した方法で、対象データＤｋから参照データＲ１を抽出する。
【００４３】
図４を参照して、第１の参照装置１ａの処理を説明する。第１の参照装置１ａは、ステップＳ１４１においてデータベースサーバ３に、キーＫを送信するとともにデータの参照リクエストを送信する。ステップＳ１４２において第１の参照装置１ａは、ステップＳ１４１で入力したキーＫに対応する対象データＤｋを取得する。ステップＳ１４３において第１の抽出手段１２ａは、対象データＤｋから、第１の参照装置１ａが参照するべき参照データＲ１を抽出して、記憶装置１５に記憶する。
【００４４】
第１の参照装置１ａについて説明したが、第２の参照装置１ｂも第１の参照装置１ａと同様である。なお第２の参照装置１ｂの抽出手段１２ｂは、対象データＤｋから、第２の参照装置１ｂが抽出可能な参照データＲ２を抽出して、記憶装置１５に記憶する。抽出手段１２ｂは、対象データＤｋから、参照部分データＤ１２およびＤ２２を抽出して、第２の参照データＲ２を生成し記憶する。
【００４５】
本発明の実施の形態に係る情報処理システム９は、様々なシステムに適用することができる。例えば、情報処理システム９において、第１の更新装置２ａおよび第１の参照装置１ａは、固定電話サービスに関する装置である。第２の更新装置２ｂおよび第２の参照装置１ｂは、移動体電話サービスに関する装置である。第１の更新装置２ａおよび第２の更新装置２ｂは、各保守運用サービスに関するデータを、データベースサーバ３に登録する。第１の参照装置１ａおよび第２の参照装置１ｂは、各サービスに関するデータを、データベースサーバ３から取得する。またキーＫは、固定電話サービスおよび移動体電話サービスの両方に参加するユーザ識別子などが考えられる。
【００４６】
図１を参照して説明した参照部分データＤ１１、Ｄ１２、Ｄ２１およびＤ２２は、更新の主体および参照の主体に応じて分類されたデータである。従って、各参照部分データＤ１１、Ｄ１２、Ｄ２１およびＤ２２は、それぞれ、一つのデータ項目を含んでも良いし、複数のデータ項目を含んでも良い。また参照部分データＤ１１、Ｄ１２、Ｄ２１およびＤ２２の分類もこれに限られたものではない。例えば、これらの他に、第１の参照装置１ａおよび第２の参照装置１ｂの両方が参照する参照部分データが、定義されても良い。この場合、更新装置２は、第１の参照装置１ａおよび第２の参照装置１ｂの両方が参照する参照部分データを、第１の参照装置１ａおよび第２の参照装置１ｂの両方が抽出可能な形式に変換して、データベースサーバ３に登録する。
【００４７】
このような本発明の実施の形態に係る情報処理システム９において、参照装置１においてデータベースサーバ３から取得した対象データから、所望のデータを抽出するロジックを追加することにより、データベースサーバ３の負荷を軽減することができる。
【００４８】
（第１の実装例）
図５ないし図７を参照して、第１の実装例を説明する。第１の実装例において、各参照装置１で参照するデータの秘匿性を確保するために、各データが暗号化されている場合を説明する。
【００４９】
更新装置２の更新手段２１は、参照装置１がそれぞれ復号可能な形式でそれぞれ暗号化された参照部分データを、データベースサーバ３に送信し、格納データＤを更新させる。参照装置１の抽出手段１２は、当該参照装置１が復号に成功した参照データＲを抽出する。
【００５０】
データベースサーバ３において、格納データＤの対象データＤｋは、それぞれの参照装置１が復号可能な形式でそれぞれ暗号化された複数の参照部分データを含む。なおデータベースサーバ３の制御手段３１は、更新装置２における暗号化処理および参照装置１における復号処理に関しては何ら関与しない。データベースサーバ３は、入力されたキーに対して更新または参照すれば良く、対象データＤｋが暗号化されているか否かにより処理が変わることはない。
【００５１】
図５を参照して、各装置において暗号鍵または復号鍵を用いて処理されたデータを説明する。第１の更新装置２ａおよび第２の更新装置２ｂは、それぞれ、第１の暗号鍵Ａ１および第２の暗号鍵Ａ２を保持する。また第１の参照装置１ａは、第１の暗号鍵Ａ１で暗号化された暗号文を復号するための第１の復号鍵Ｆ１を保持する。第２の参照装置１ｂは、第２の暗号鍵Ａ２で暗号化された暗号文を復号するための第２の復号鍵Ｆ２を保持する。第１の暗号鍵Ａ１、第２の暗号鍵Ａ２、第１の復号鍵Ｆ１および第２の復号鍵Ｆ２は、所定のサーバから各装置にそれぞれ配信されても良い。
【００５２】
第１の更新装置２ａの更新手段２１ａは、第１の参照部分データＤ１１を第１の暗号鍵Ａ１で暗号して、データＤ１１’を生成するとともに、第２の参照部分データＤ１２を第２の暗号鍵Ａ２で暗号して、データＤ１２”を生成する。更新手段２１ａは、キーＫと、データＤ１１’およびデータＤ１２”を対応づけてデータベースサーバ３に送信する。
【００５３】
第２の更新装置２ｂの更新手段２１ｂは、第１の参照部分データＤ２１を第１の暗号鍵Ａ１で暗号して、データＤ２１’を生成するとともに、第２の参照部分データＤ２２を第２の暗号鍵Ａ２で暗号して、データＤ２２”を生成する。更新手段２１ａは、キーＫと、データＤ２１’およびデータＤ２２”を対応づけてデータベースサーバ３に送信する。
【００５４】
図６を参照して、第１の更新装置２ａの更新手段２１ａにおける更新処理を説明する。第２の更新装置２ｂの更新手段２１ｂの処理も同様である。
【００５５】
ステップＳ２０１において更新手段２１ａは、第１の参照部分データＤ１１を第１の参照装置１ａのために暗号化して、データＤ１１’を生成する。ステップＳ２０２において更新手段２１ａは、第２の参照部分データＤ１２を第２の参照装置１ｂのために暗号化して、データＤ１２”を生成する。ステップＳ２０３において更新手段２１ａは、キーと、ステップＳ２０１で生成したデータＤ１１’と、ステップＳ２０２で生成したデータＤ１２”とを、データベースサーバ３に送信する。
【００５６】
データベースサーバ３は、第１の更新装置２ａおよび第２の更新装置２ｂから受信したデータに基づいて、格納データＤを更新する。この結果、格納データＤは、キーＫに、参照部分データＤ１１’、Ｄ１２”、Ｄ２１’およびＤ２２”を対応づけた対象データＤｋを含む。
【００５７】
第１の参照装置１ａおよび第２の参照装置１ｂは、キーＫをデータベースサーバ３に入力し、それぞれ、入力したキーＫに対応する対象データＤｋを取得する。ここで対象データＤｋは、参照部分データＤ１１’、Ｄ１２”、Ｄ２１’およびＤ２２”の、４つの暗号化されたデータ列を含む。
【００５８】
第１の参照装置１ａの抽出手段１２ａは、自身が参照するべきデータを判別するために、それぞれのデータ列を、第１の復号鍵Ｆ１で復号を試みる。この結果、抽出手段１２ａは、第１の復号鍵Ｆ１で復号可能に暗号化された参照部分データＤ１１およびＤ２１を取得する。抽出手段１２ａは、第１の復号鍵Ｆ１で復号できなかったデータＤ１２”およびＤ２２”を破棄する。
【００５９】
同様に、第２の参照装置１ｂの抽出手段１２ｂは、自身が参照するべきデータを判別するために、それぞれのデータ列を、第２の復号鍵Ｆ２で復号を試みる。この結果、抽出手段１２ｂは、第２の復号鍵Ｆ２で復号可能に暗号化されたデータＤ１２およびＤ２２を取得する。抽出手段１２ｂは、第２の復号鍵Ｆ２で復号できなかったデータＤ１１’およびＤ２１’を破棄する。
【００６０】
図７を参照して、第１の参照装置１ａの抽出手段１２ａにおける更新処理を説明する。第２の参照装置１ｂの抽出手段１２ｂの処理も同様である。
【００６１】
抽出手段１２ａは、データベースサーバ３から取得した対象データＤｋの各データ列について、ステップＳ２４１およびステップＳ２４２の処理を繰り返す。ステップＳ２４１において抽出手段１２ａは、処理対象のデータ列について、第１の復号鍵Ｆ１で復号可能であるか否かを判定する。復号可能な場合、ステップＳ２４２において、復号したデータを記憶し、復号できなかった場合は、そのデータ列を破棄する。
【００６２】
このような第１の実装例において各参照装置１は、自身が保有する復号鍵で復号できたことにより、自身が参照するべきデータを特定し取得するとともに、正しく復号できたことを確認する。また、自装置以外の参照装置１が参照するべきデータが暗号化されているので、各参照装置１が参照することのできないデータの漏洩を回避することができる。
【００６３】
（第１の実装例の変形例）
第１の実装例においては、参照装置１毎に暗号方法を特定する場合を説明したが、これに限られない。要求されるセキュリティレベルが低い場合、各参照装置１が共有する復号鍵に対応する暗号鍵で暗号化されても良い。
【００６４】
また、暗号方法は、第１の実装例に記載したものに限らない。例えば、暗号鍵および復号鍵を用いるのではなく、共通鍵方式を採用しても良い。
【００６５】
第１の参照装置１ａ、第１の更新装置２ａおよび第２の更新装置２ｂは、第１の参照装置１ａでデータを抽出可能とする第１の共通鍵を記憶する。第２の参照装置１ｂ、第１の更新装置２ａおよび第２の更新装置２ｂは、第２の参照装置１ｂでデータを抽出可能とする第２の共通鍵を記憶する。また第１の参照装置１ａは、第１のハッシュ値を決定し、第１の更新装置２ａおよび第２の更新装置２ｂに送信する。第２の参照装置１ｂは、第２のハッシュ値を決定し、第１の更新装置２ａおよび第２の更新装置２ｂに送信する。
【００６６】
第１の更新装置２ａは、第１のハッシュ値と第１の参照装置１ａの参照部分データＤ１１を第１の共通鍵で暗号化し、第２のハッシュ値と第２の参照装置１ｂの参照部分データＤ１２を第２の共通鍵で暗号化して、データベースサーバ３に送信する。第２の更新装置２ｂは、第１のハッシュ値と第１の参照装置１ａの参照部分データＤ２１を第１の共通鍵で暗号化し、第２のハッシュ値と第２の参照装置１ｂの参照部分データＤ２２を第２の共通鍵で暗号化して、データベースサーバ３に送信する。
【００６７】
第１の参照装置１ａは、データベースサーバ３から取得した対象データＤｋの各データ列を、第１の共通鍵で復号する。第１の参照装置１ａは、復号の結果、事前に定めた第１のハッシュ値が得られたデータ列、具体的にはデータＤ１１およびＤ２１を、自身が抽出する参照部分データとして把握する。
【００６８】
（第２の実装例）
図８ないし図１０を参照して、第２の実装例を説明する。第２の実装例において、各参照部分データに、区切り子を付加して連結する場合を説明する。
【００６９】
区切り子は、参照部分データＤ１１、Ｄ１２、Ｄ２１およびＤ２２に用いられることのない文字コードである。例えば、参照部分データＤ１１、Ｄ１２、Ｄ２１およびＤ２２がＵｎｉｃｏｄｅ体系で表現される場合、区切り文字としてＵ＋Ｅ０００からＵ＋Ｆ８ＦＦの私用領域のコードが用いられる。
【００７０】
図８に示す例では、区切り子を各参照部分データの最初に付加する場合を説明するがこれに限られず、各参照部分データの最後に付加するなど、参照装置１で判別可能であればどのような位置に付加されても良い。
【００７１】
更新装置２の更新手段２１は、複数の参照部分データのそれぞれについて、当該参照部分データを抽出する参照装置１の識別子を対応づけて、データベースサーバ３に送信し、格納データＤを更新させる。参照装置１の抽出手段１２は、参照装置の識別子に対応づけられた参照データＲを抽出する。
【００７２】
データベースサーバ３において、格納データＤの対象データＤｋの各参照部分データは、参照装置１が抽出するための区切り子が対応づけられる。なおデータベースサーバ３の制御手段３１は、入力されたキーに基づいて、格納データＤを更新または参照すれば良い。
【００７３】
図８を参照して、各装置において第１の区切り子Ｐ１および第２の区切り子Ｐ２を用いて処理されたデータを説明する。第１の区切り子Ｐ１は、第１の参照装置１ａに抽出させるデータであることを示す。第２の区切り子Ｐ２は、第２の参照装置１ｂに抽出させるデータであることを示す。
【００７４】
第１の更新装置２ａおよび第２の更新装置２ｂは、第１の区切り子Ｐ１および第２の区切り子Ｐ２を保持する。また第１の参照装置１ａは、第１の区切り子Ｐ１を保持する。第２の参照装置１ｂは、第２の区切り子Ｐ２を保持する。第１の区切り子Ｐ１および第２の区切り子Ｐ２は、所定のサーバから各装置にそれぞれ配信されても良い。
【００７５】
第１の更新装置２ａの更新手段２１ａは、第１の参照部分データＤ１１に第１の区切り子Ｐ１を対応づけるとともに、第２の参照部分データＤ１２に第２の区切り子Ｐ２を対応づける。更新手段２１ａは、キーＫと、第１の区切り子Ｐ１、第１の参照部分データＤ１１、第２の区切り子Ｐ２および第２の参照部分データＤ１２を連結したデータを、データベースサーバ３に送信する。
【００７６】
第２の更新装置２ｂの更新手段２１ｂは、第１の参照部分データＤ２１に第１の区切り子Ｐ１を対応づけるとともに、第２の参照部分データＤ２２に第２の区切り子Ｐ２を対応づける。更新手段２１ｂは、キーＫと、第１の区切り子Ｐ１、第１の参照部分データＤ２１、第２の区切り子Ｐ２および第２の参照部分データＤ２２を連結したデータを、データベースサーバ３に送信する。
【００７７】
図９を参照して、第１の更新装置２ａの更新手段２１ａにおける更新処理を説明する。第２の更新装置２ｂの更新手段２１ｂの処理も同様である。図９において、各参照部分データの先頭に区切り子が付与されている場合を説明する。
【００７８】
ステップＳ３０１において更新手段２１ａは、第１の参照部分データＤ１１の先頭に、第１の区切り子Ｐ１を追加する。ステップＳ３０２において更新手段２１ａは、第２の参照部分データＤ１２の先頭に、第２の区切り子Ｐ２を追加する。ステップＳ３０３において更新手段２１ａは、キーと、ステップＳ３０１において第１の区切り子Ｐ１を追加した第１の参照部分データＤ１１と、ステップＳ３０２において第２の区切り子Ｐ２を追加した第２の参照部分データＤ１２とを、連結する。その後更新手段２１ａは、連結したデータをデータベースサーバ３に送信する。
【００７９】
データベースサーバ３は、第１の更新装置２ａおよび第２の更新装置２ｂから受信したデータに基づいて、格納データＤを更新する。この結果、格納データＤは、キーＫに、区切り子Ｐ１、データＤ１１、区切り子Ｐ２、データＤ１２、区切り子Ｐ１、データＤ２１、区切り子Ｐ２、およびデータＤ２２を対応づけた対象データＤｋを含む。
【００８０】
第１の参照装置１ａおよび第２の参照装置１ｂは、キーＫをデータベースサーバ３に入力し、それぞれ、入力したキーＫに対応する対象データＤｋを取得する。ここで対象データＤｋは、複数の区切り子を含む一つのデータ列である。
【００８１】
第１の参照装置１ａの抽出手段１２ａは、自身が参照するべきデータを判別するために、取得した対象データＤｋの区切り子を探索する。抽出手段１２ａは、自身が抽出するべき区切り子Ｐ１に対応づけられたデータＤ１１およびＤ２１を取得する。抽出手段１２ａは、区切り子Ｐ１以外の区切り子に対応づけられたデータＤ１２およびＤ２２を破棄する。
【００８２】
同様に、第２の参照装置１ｂの抽出手段１２ｂは、自身が参照するべきデータを判別するために、取得した対象データＤｋの区切り子を探索する。抽出手段１２ｂは、自身が抽出するべき区切り子Ｐ２に対応づけられたデータＤ１２およびＤ２２を取得する。抽出手段１２ｂは、区切り子Ｐ２以外の区切り子に対応づけられたデータＤ１１およびＤ２１を破棄する。
【００８３】
図１０を参照して、第１の参照装置１ａの抽出手段１２ａにおける更新処理を説明する。第２の参照装置１ｂの抽出手段１２ｂの処理も同様である。図１０において、各参照部分データの先頭に区切り子が付与されている場合を説明する。
【００８４】
ステップＳ３２１において抽出手段１２ａは、データベースサーバ３から取得した対象データＤｋを先頭から読み込み、ステップＳ３２２において抽出手段１２ａは、単位ビットずつ読み込む。ここで単位ビットとは、区切り子のビット数に対応するビットである。ステップＳ３２３において抽出手段１２ａは、自装置の区切り子でない場合、ステップＳ３２２に戻り、さらに対象データＤｋを単位ビットずつ読み込む。
【００８５】
ステップＳ３２３において抽出手段１２ａは、自装置の区切り子を発見すると、ステップＳ３２４において、次の区切り子または対象データＤｋの終端のいずれか直近の位置までのデータを、記憶装置１５に記憶する。さらにステップＳ３２５において抽出手段１２ａは、対象データＤｋの終端まで読み込んだか否かを判定する。読み込んでいない場合、抽出手段１２ａは、ステップＳ３２２に戻り、さらに対象データＤｋを単位ビットずつ読み込む。このように、対象データＤｋの終端まで読み込むと、抽出手段１２ａは処理を終了する。
【００８６】
このような第２の実装例において各参照装置１は、自身が保有する区切り子に対応づけられたデータを取得することにより、自身が参照するべきデータを取得する。
【００８７】
（第２の実装例の第１の変形例）
第２の実装例においても、第１の実装例と同様に各データが暗号化されても良い。この場合、暗号化された参照部分データの区切りがわかれば良いので、第１の区切り子Ｐ１および第２の区切り子Ｐ２と区別する必要はなく、同じ区切り子が用いられても良い。
【００８８】
このような第２の実装例の第１の変形例において、第１の更新装置２ａの更新手段２１ａは、第１の実装例で説明した様に各参照部分データを、参照装置１が抽出可能な暗号鍵で暗号化する。更新手段２１ａはその後、区切り子を付与して、暗号化済みの各データを連結して、キーＫとともにデータベースサーバ３に送信する。第２の更新装置２ｂの更新手段２１ｂの処理も同様である。
【００８９】
第１の参照装置１ａの抽出手段１２ａは、キーＫに対応づけられた対象データＤｋを取得すると、第２の実装例で説明した様に、区切り子を探索し、その区切り子に対応づけられた参照部分データを抽出する。抽出手段１２ａは、抽出した参照部分データを、復号鍵で復号する。抽出手段１２ａは、復号に成功した場合、復号した参照部分データを記憶装置１５に記憶し、成功しなかった場合、データを破棄する。
【００９０】
（第２の実装例の第２の変形例）
第２の実装例において、データベースサーバ３は、図８に示すような対象データＤｋを記憶する場合を説明したが、区切り子毎にデータを集約しても良い。具体的には図１１に示すように、格納データＤは、キーＫに、区切り子Ｐ１、データＤ１１およびＤ１２、区切り子Ｐ２、データＤ１２およびＤ２２を対応づけた対象データＤｋを含む。
【００９１】
第２の変形例の第２の変形例において、データベースサーバ３の制御手段３１は、図１１に示すように、キーＫおよび区切り子にデータを対応づけて、格納データＤを更新する。制御手段３１は、第１の更新装置２ａから、キーＫ、第１の区切り子Ｐ１、データＤ１１、第２の区切り子Ｐ２およびデータＤ１２を取得する。さらに制御手段３１は、第２の更新装置２ｂから、キーＫ、第１の区切り子Ｐ１、データＤ２１、第２の区切り子Ｐ２およびデータＤ２２を取得する。この場合、制御手段３１は、キーＫおよび第１の区切り子Ｐ１にデータＤ１１およびＤ１２を対応づけるとともに、キーＫおよび第２の区切り子Ｐ２にデータＤ２１およびＤ２２を対応づけた対象データＤｋを、格納データＤに記憶する。
【００９２】
このように第２の変形例において、区切り子をサブキーとしてデータを対応づけることにより、格納データＤにおけるデータ容量を削減することができる。
【００９３】
（第３の実装例）
図１２ないし図１４を参照して、第３の実装例を説明する。第３の実装例において、各参照装置１は、各参照装置１が抽出するべきデータを特定するためのマスクＭを保持する場合を説明する。
【００９４】
更新装置２の更新手段２１は、各参照装置１が抽出可能な複数の参照部分データを連結して、キーＫとともにデータベースサーバ３に送信し、格納データＤを更新させる。参照装置１の抽出手段１２は、対象データＤｋのうち当該参照装置１が抽出可能なデータ位置を特定するマスクＭを用いて、参照データＲを抽出する。
【００９５】
図１２を参照して、各装置において第１のマスクＭ１および第２のマスクＭ２を用いて処理されるデータを説明する。第１の参照装置１ａは、第１のマスクＭ１を保持する。第２の参照装置１ｂは、第２のマスクＭ２を保持する。第１のマスクＭ１および第２のマスクＭ２は、２進数で表記される。第１のマスクＭ１および第２のマスクＭ２は、所定のサーバから各装置にそれぞれ配信されても良い。また、各マスクは、データベースサーバ３などが予め保持し、各参照装置１からの要求に応じて、参照装置１は所望のマスクを取得しても良い。
【００９６】
マスクにおいて、対象データＤｋのビット列のうち、参照装置１が抽出するべきデータのビットに対して“１”が、それ以外のビットに対して“０”が、それぞれ設定される。各参照装置１は、データベースサーバ３から取得した対象データＤｋとマスクを、ビット毎に乗算して、参照データＲを抽出する。
【００９７】
図１２に示す例では、各参照装置１が一つのマスクを保持する場合を説明するがこれに限られない。例えば、各参照装置１は、データを抽出する目的に応じて複数のマスクを保持しても良い。
【００９８】
第１の更新装置２ａの更新手段２１ａは、キーＫと、第１の参照部分データＤ１１および第２の参照部分データＤ１２を連結したデータを、データベースサーバ３に送信する。第２の更新装置２ｂの更新手段２１ｂは、キーＫと、第１の参照部分データＤ２１および第２の参照部分データＤ２２を連結したデータを、データベースサーバ３に送信する。
【００９９】
図１３を参照して、第１の更新装置２ａの更新手段２１ａにおける更新処理を説明する。第２の更新装置２ｂの更新手段２１ｂの処理も同様である。
【０１００】
ステップＳ４０１において更新手段２１ａは、第１の参照部分データＤ１１を取得する。ステップＳ４０２において更新手段２１ａは、第２の参照部分データＤ１２を取得する。ステップＳ４０３において更新手段２１ａは、キーと、ステップＳ４０１で取得した第１の参照部分データＤ１１と、ステップＳ４０２で生成した第２の参照部分データＤ１２とを、連結して、データベースサーバ３に送信する。
【０１０１】
データベースサーバ３は、第１の更新装置２ａおよび第２の更新装置２ｂから受信したデータに基づいて、格納データＤを更新する。データベースサーバ３の制御手段３１は、更新装置２から更新依頼がなされると、キーＫに、各更新装置２から受信した複数の参照部分データを所定の順序で連結して、格納データＤに更新する。この所定の順序は、各参照装置１が有するマスクＭのビット列に対応する。この結果、格納データＤは、キーＫに、データＤ１１、データＤ１２、データＤ２１、およびデータＤ２２を対応づけた対象データＤｋを含む。
【０１０２】
第１の参照装置１ａおよび第２の参照装置１ｂは、キーＫをデータベースサーバ３に入力し、それぞれ、入力したキーＫに対応する対象データＤｋを取得する。ここで対象データＤｋは、各参照装置１が保持するマスクに対応する順序で、参照部分データを連結する。第１の参照装置１ａおよび第２の参照装置１ｂは、データベースサーバ３に所望のマスクを要求して取得しても良い。
【０１０３】
第１の参照装置１ａの抽出手段１２ａは、自身が参照するべきデータのビット位置を特定するための第１のマスクＭ１と、取得した対象データＤｋとを乗算する。抽出手段１２ａは、対象データＤｋのうち、第１のマスクＭ１で“１”が対応づけられた位置のデータＤ１１およびＤ２１を取得する。抽出手段１２ａは、第１のマスクＭ１で“１”が対応づけられた位置以外のデータＤ１２およびＤ２２を破棄する。
【０１０４】
同様に、第２の参照装置１ｂの抽出手段１２ｂは、自身が参照するべきデータのビット位置を特定するための第２のマスクＭ２と、取得した対象データＤｋとを乗算する。抽出手段１２ｂは、対象データＤｋのうち、第２のマスクＭ２で“１”が対応づけられた位置のデータＤ１２およびＤ２２を取得する。抽出手段１２ｂは、第２のマスクＭ２で“１”が対応づけられた位置以外のデータＤ１１およびＤ２１を破棄する。
【０１０５】
図１４を参照して、第１の参照装置１ａの抽出手段１２ａにおける更新処理を説明する。第２の参照装置１ｂの抽出手段１２ｂの処理も同様である。
【０１０６】
ステップＳ４２１において抽出手段１２ａは、データベースサーバ３から取得した対象データＤｋと、第１のマスクＭ１とをビット毎に乗算する。ステップＳ４２２において抽出手段１２ａは、ステップＳ４２１における乗算結果を、参照データＲ１として記憶装置１５に記憶する。
【０１０７】
このような第３の実装例に係るデータベースサーバ３は、第２の実装例と比べて区切り子を保持する必要がないので、レコード数が増えた場合でも、記憶容量の削減を実現し、コストを削減することができる。第３の実装例において更新装置２は参照部分データをデータベースサーバ３に登録し、参照装置１が所望のデータを抽出する仕組みを持つので、データベースサーバ３のみならず、更新装置２における負荷も軽減することができる。また第３の実装例に係る参照装置１は、対象データＤｋの処理目的に応じてマスクを用意することで、容易に所望の参照データＲを抽出することができる。
【０１０８】
（第３の実装例の変形例）
第３の実装例においても、第１の実装例と同様に各データが暗号化されても良い。
【０１０９】
このような第３の実装例の変形例において、第１の更新装置２ａの更新手段２１ａは、第１の実装例で説明した様に各参照部分データを、参照装置１が抽出可能な暗号鍵で暗号化する。更新手段２１ａはその後、暗号化済みの各参照部分データを所定の順序で連結して、キーＫとともにデータベースサーバ３に送信する。第２の更新装置２ｂの更新手段２１ｂの処理も同様である。
【０１１０】
第１の参照装置１ａの抽出手段１２ａは、キーＫに対応づけられた対象データＤｋを取得すると、第３の実装例で説明した様に、マスクＭ１と乗算して参照部分データを抽出する。抽出手段１２ａは、抽出した参照部分データを、復号鍵で復号する。抽出手段１２ａは、復号に成功した場合、復号した参照部分データを記憶装置１５に記憶し、成功しなかった場合、データを破棄する。
【０１１１】
（その他の実施の形態）
上記のように、本発明の実施の形態とその第１ないし第３の実装例などによって記載したが、この開示の一部をなす論述および図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例および運用技術が明らかとなる。
【０１１２】
例えば、本発明の実施の形態に記載した参照装置１、更新装置２およびデータベースサーバ３は、図１に示すようにそれぞれ一つのハードウェア上に構成されても良いし、その機能や処理数に応じて複数のハードウェア上に構成されても良い。また、既存のシステム上に実現されても良い。
【０１１３】
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【符号の説明】
【０１１４】
１  参照装置
２  更新装置
３  データベースサーバ
９  情報処理システム
１０、２０、３０  処理制御装置
１１  取得手段
１２  抽出手段
１５、２５、３５  記憶装置
１９、２９、３９  通信制御装置
２１  更新手段
３１  制御手段
Ｄ  格納データ
Ｄｋ  対象データ
Ｄ１１、Ｄ１２、Ｄ１３、Ｄ１４  参照部分データ
Ｒ１、Ｒ２  参照データ
【図１】
0005965360.tif 000002
【図２】
0005965360.tif 000003
【図３】
0005965360.tif 000004
【図４】
0005965360.tif 000005
【図５】
0005965360.tif 000006
【図６】
0005965360.tif 000007
【図７】
0005965360.tif 000008
【図８】
0005965360.tif 000009
【図９】
0005965360.tif 000010
【図１０】
0005965360.tif 000011
【図１１】
0005965360.tif 000012
【図１２】
0005965360.tif 000013
【図１３】
0005965360.tif 000014
【図１４】
0005965360.tif 000015