(57)【要約】【課題】  テンプレートデータを変更する場合であっても、データを秘匿する方法を改めて指定することなく、データが秘匿された文書等を生成することを可能とする。【解決手段】  データ取得指示情報読み取り部２０４は、テンプレートデータに合成するデータを取得するためのデータ取得情報を入力する。また、秘匿指示情報読み取り部２０５は、データ取得情報に基づいて取得されるデータのうち、秘匿するデータを指定するための秘匿情報を入力する。データ取得部２０７は、記データ取得情報に基づいてデータを取得し、マスキングデータ生成部２０８は、秘匿情報に基づいて、秘匿するデータに対応する秘匿データを生成する。文書生成部２０９は、取得されたデータ及び生成された秘匿データをテンプレートデータに合成する。【選択図】  図２
2009276854.tif 000002
【特許請求の範囲】
【請求項１】
テンプレートデータに合成するデータを取得するためのデータ取得情報と、前記データ取得情報に基づいて取得されるデータのうち、秘匿するデータを指定するための秘匿情報とを入力する入力手段と、
前記データ取得情報に基づいてデータを取得する取得手段と、
前記秘匿情報に基づいて、前記秘匿するデータに対応する秘匿データを生成する生成手段と、
前記取得手段により取得されたデータ及び前記生成手段により生成された秘匿データを前記テンプレートデータに合成する合成手段とを有することを特徴とする情報処理装置。
【請求項２】
前記データ取得情報は、前記テンプレートデータに合成するデータの属性情報を指定した情報であり、前記秘匿情報は、前記データ取得情報により指定される前記テンプレートデータに合成するデータの属性情報のうち、前記秘匿するデータに対応する属性情報を指定した情報であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記取得手段は、前記データ取得情報により指定される属性情報のうち、前記秘匿情報により指定される属性情報に対応するデータを取得しないことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記取得手段は、前記秘匿情報により指定される属性情報に対応するデータのうちの一部のデータが秘匿対象のデータである場合、当該属性情報に対応するデータを取得し、前記生成手段は、前記取得手段により取得された当該属性情報に対応するデータを使用して前記秘匿データを生成することを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記属性情報は、データの型を示す情報であることを特徴とする請求項２乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記秘匿情報は、前記秘匿データを指定する情報を含み、前記生成手段は、前記秘匿情報に指定される前記秘匿データを生成することを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
テンプレートデータに合成するデータを取得するためのデータ取得情報と、前記データ取得情報に基づいて取得されるデータのうち、秘匿するデータを指定するための秘匿情報とを入力する入力ステップと、
前記データ取得情報に基づいてデータを取得する取得ステップと、
前記秘匿情報に基づいて、前記秘匿するデータに対応する秘匿データを生成する生成ステップと、
前記取得ステップにより取得されたデータ及び前記生成ステップにより生成された秘匿データを前記テンプレートデータに合成する合成ステップとを含むことを特徴とする情報処理装置の制御方法。
【請求項８】
テンプレートデータに合成するデータを取得するためのデータ取得情報と、前記データ取得情報に基づいて取得されるデータのうち、秘匿するデータを指定するための秘匿情報とを入力する入力ステップと、
前記データ取得情報に基づいてデータを取得する取得ステップと、
前記秘匿情報に基づいて、前記秘匿するデータに対応する秘匿データを生成する生成ステップと、
前記取得ステップにより取得されたデータ及び前記生成ステップにより生成された秘匿データを前記テンプレートデータに合成する合成ステップとをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テンプレートデータにデータを合成して電子文書等を生成するための技術に関するものである。
【背景技術】
【０００２】
従来、帳票の生成処理方法として、帳票のデザインを表すテンプレートに、データが格納されたファイルやデータベース等のデータソースから取得したデータを合成し、帳票を作成することが行われている。
【０００３】
一方、伝票、帳簿、契約書等の取引の詳細情報や特定の個人を表す情報等を含むドキュメントを印刷や表示出力する際に、それら情報の一部又は全てを別の文字で表したり、塗りつぶしたり、非表示にする等の伏せ字処理（マスキング処理）が行われている。
【０００４】
マスキング処理に関する技術は、例えば特許文献１、２に開示されている。特許文献１は、帳票のレイアウトデザインを示すテンプレートであるフォームファイル上に定義されたフィールドに対し、データファイルからデータを供給し、重ね合わせることで帳票を作成する技術である。各フィールドに重ね合わせるデータのマスキング方法を指定し、指定されたマスキング方法に応じてそのフィールドに入るデータの文字列を出力制御する。例えば、フィールドに「＿」が指定されていればその位置に対応するデータの文字を読み飛ばし、「K」が指定されていればその位置の文字を出力する。「あいうえおかきくけこ」がデータとして入るフォームファイルのフィールドに「KKKKKK」が指定してあれば、先頭から６文字「あいうえおか」を出力する。また、フィールドに「KKK＿＿＿＿KKK」と指定してあれば、「＿」の位置に該当する「えおかき」を読み飛ばして「あいうくけこ」を出力する。
【０００５】
また、特許文献２では、文書論理構造をベースにしてＸＭＬのタグ付けをしたＸＭＬ文書を作成して、そのＸＭＬ文書に基づいてマスキングする。具体的にはマスキング対象の文書に対して文書番号、日付、見出し等の文書項目をＸＭＬのタグで囲む。それに加え、ユーザが任意に指定した本文中の特定の範囲もその情報に見合うＸＭＬのタグで囲む。そして、それぞれのタグに対して非公開にするレベルを設定しておく。文書出力する際に指定された非公開レベルに該当するＸＭＬタグを検出し、検出したタグに囲まれた箇所をマスキングした文書を作成し出力する。
【０００６】
【特許文献１】特開２００２−１７００７２号公報
【特許文献２】特開２００４−９４５４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載された技術によると、各フィールドに対してマスク処理を指定する必要があるため、そのデータが帳票中の複数の個所に出現する場合はその個所ごとにマスク方法を指定する手間がかかった。また、同じデータファイルからデータを供給する場合でもデザインテンプレートになった場合は、新しいデザインテンプレートにマスク方法を改めて指定する手間がかかった。
【０００８】
また、特許文献２に記載された技術では、帳票のデザインを表すデザインテンプレートとそこにデータを埋め込む方法で帳票を作成するための技術ではないが、文書論理構造中にマスキングする箇所を指定するものである。そのため、文書中に出現するマスキングが必要箇所を全て特定のＸＭＬのタグをつける必要がある。従って、同じ情報であってもその情報が文書論理構造中に複数出現している場合はその全てにＸＭＬのタグをつけるという手間がある。
【０００９】
そこで、本発明の目的は、テンプレートデータを変更する場合であっても、データを秘匿する方法を改めて指定することなく、データが秘匿された文書等を生成することを可能とすることにある。
【課題を解決するための手段】
【００１０】
本発明の情報処理装置は、テンプレートデータに合成するデータを取得するためのデータ取得情報と、前記データ取得情報に基づいて取得されるデータのうち、秘匿するデータを指定するための秘匿情報とを入力する入力手段と、前記データ取得情報に基づいてデータを取得する取得手段と、前記秘匿情報に基づいて、前記秘匿するデータに対応する秘匿データを生成する生成手段と、前記取得手段により取得されたデータ及び前記生成手段により生成された秘匿データを前記テンプレートデータに合成する合成手段とを有することを特徴とする。
本発明の情報処理装置の制御方法は、テンプレートデータに合成するデータを取得するためのデータ取得情報と、前記データ取得情報に基づいて取得されるデータのうち、秘匿するデータを指定するための秘匿情報とを入力する入力ステップと、前記データ取得情報に基づいてデータを取得する取得ステップと、前記秘匿情報に基づいて、前記秘匿するデータに対応する秘匿データを生成する生成ステップと、前記取得ステップにより取得されたデータ及び前記生成ステップにより生成された秘匿データを前記テンプレートデータに合成する合成ステップとを含むことを特徴とする。
本発明のプログラムは、テンプレートデータに合成するデータを取得するためのデータ取得情報と、前記データ取得情報に基づいて取得されるデータのうち、秘匿するデータを指定するための秘匿情報とを入力する入力ステップと、前記データ取得情報に基づいてデータを取得する取得ステップと、前記秘匿情報に基づいて、前記秘匿するデータに対応する秘匿データを生成する生成ステップと、前記取得ステップにより取得されたデータ及び前記生成ステップにより生成された秘匿データを前記テンプレートデータに合成する合成ステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１１】
本発明においては、データ取得情報に基づいて取得されるデータのうち、秘匿するデータを指定するための秘匿情報に基づいて上記秘匿するデータに対応する秘匿データを生成し、取得されたデータと秘匿データとをテンプレートデータに合成するようにしている。従って、本発明によれば、テンプレートデータを変更する場合であっても、データを秘匿する方法を改めて指定することなく、データが秘匿された文書等を生成することが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【００１３】
図１は、本発明の実施形態に係る情報処理装置１００の構成を示すブロック図である。図１に示すように、情報処理装置１００は、主な構成要素として、情報処理装置１００全体の制御を司るコントローラ部１０１、操作部１０２、表示部１０３、ハードディスク１０４及びネットワークアダプタ１０８を備えている。
【００１４】
コントローラ部１０１は、ＣＰＵ１０５、ＲＯＭ１０６、ＲＡＭ１０７等を備える。ＣＰＵ１０５が実行する各種プログラムや、プログラムが必要とするデータ等は、予めＲＯＭ１０６に記憶されている。また、一部のプログラムやデータは、ハードディスク１０４に予め格納しておき、ＲＡＭ１０７に読み出して実行することも可能である。本実施形態では、ハードディスク１０４に文書生成を行うプログラム、生成した文書、文書生成に使用するテンプレート、データ取得指示情報、秘匿指示情報等を記憶する。ＲＡＭ１０７にはデータソースから取得したデータ、プログラム実行中に生成する中間データを一時的に記憶する。
【００１５】
操作部１０２はユーザからの入力操作を受け付ける。キーボート、マウスがこれに該当する。表示部１０３は処理を実行するアプリケーションのＧＵＩ（グラフィカルユーザインタフェース）を表示する。ディスプレイにはアプリケーションのパネル、ボタン、テキストフィールド等のＧＵＩが表示され、キーボード、マウス等の操作部１０２から入力を受けると、それぞれのＧＵＩ部品に対応付けられたプログラムが実行される。
【００１６】
ネットワークアダプタ１０８は、ネットワーク１０９を介してネットワーク上のデータベース１１０やファイルサーバ１１１等と通信するためのもので例えば、ＬＡＮカードである。
【００１７】
図２は、情報処理装置１００によって実現する文書生成システム２００の構成を示す図である。文書生成システム２００は、図１のデータベース１１０に相当するデータソース２１１からデータを取得し、指定されたテンプレートとデータソース２１１から取得したデータとを合成して文書を生成するシステムである。生成される文書は、指定された秘匿指示情報に従って、合成するデータの一部がマスキングされて出力されるものである。以下、文書生成システム２００に入力される各情報、文書生成システム２００を構成する各構成について説明する。なお、文書生成システム２００は、本発明の情報処理装置の適用例となる構成である。
【００１８】
データ取得指示情報２０１とは、データソース２１１から取得するデータを指定する情報である。データ取得指示情報２０１は、本発明のデータ取得情報の適用例となる構成である。
【００１９】
テンプレート２０３とは、データソース２１１から取得されるデータを埋め込む指示子を含んだ文書である。本実施形態では、文書のレイアウトデザインに指示子を加えた文書をテンプレートとして説明する。また、テンプレート２０３は、本発明のテンプレートデータの適用例となる構成である。
【００２０】
秘匿指示情報２０２とは、データ取得指示情報２０１に指定されたデータのマスキング方法を指示する情報である。即ち、秘匿指示情報２０２は、データソース２１１から取得するどのデータに対してマスキングを行うかをデータの属性情報により指定している。また、本実施形態では、マスキング対象のデータの指定とともに、マスキングに使用する代替データも指定する。例えば、特定の文字列や画像を代替データとして指定する。本実施形態では、黒く塗りつぶしたような出力をすることとともに、指定されたデータを特定のデータで置き換えて出力することもマスキングと表現する。データ取得指示情報２０１、テンプレート２０３及び秘匿指示情報２０２の各文書の例については後述する。また、秘匿指示情報２０２は、本発明の秘匿情報の適用例となる構成である。
【００２１】
データ取得指示情報読み取り部２０４、秘匿指示情報読み取り部２０５及びテンプレート読み取り部２０６はそれぞれ、指定されたデータ取得指示情報２０１、秘匿指示情報２０２及びテンプレート２０３を読み取るための機能構成である。なお、データ取得指示情報読み取り部２０４及び秘匿指示情報読み取り部２０５は、本発明の入力手段の適用例となる構成である。
【００２２】
データ取得部２０７は、データ取得指示情報２０１によって指定されたデータをデータソース２１１から取得する。データ取得指示情報２０１には、データ取得先と取得するデータを特定するための情報とが指定されている。例えば、データソース２１１とは、外部のリレーショナルデータベースであり、データソース２１１を操作するための言語ＳＱＬ（Structure Query Language）を使用してデータを取得する。データ取得指示情報２０１には、対象となるデータソース２１１のアクセス先、取得するデータのテーブル名、フィールド名及びデータの型等の情報を指定する。データ取得部２０７は、本発明の取得手段の適用例となる構成である。
【００２３】
データ取得部２０７では、テーブル名やフィールド名からＳＱＬの問い合わせ文を作成し、指定されたデータソース２１１にそのＳＱＬ文で問い合わせをする。そして、データ取得部２０７は、データソース２１１が返してきたデータを取得する。一方で、データ取得指示情報２０１で指定されているデータの中で、秘匿指示情報２０２にてマスキングすることが指定されているものについては、マスキングするための代替データと置き換えられる。つまり、代替データがマスキングした結果のデータ、マスキングデータとして扱われる。従って、マスキング対象のデータは、データソース２１１から取得する必要がない。そのため、データ取得部２０７は、データ取得指示情報２０１で指示されたデータのうち、秘匿指示情報２０２でマスキング対象に指定されているデータについてはＳＱＬ文で取得の指示を行わないようにする。
【００２４】
このように、マスキング対象のデータについては取得しないことで、データソース２１１から冗長な情報を取得する時間を省くことができる。データソース２１１から取得したマスキング対象のデータ以外のデータをデータ記憶部２１０に格納する。本実施形態では、データ記憶部２１０はＲＡＭ１０７であるとする。
【００２５】
但し、秘匿指示情報２０２に記すマスキング方法の指定として、データ全体を置き換えるものではなく、データの一部をマスキングする指定をすることもできる。その場合は、マスキング対象のデータであっても、データソース２１１からデータを取得する必要がある。例えば、データソース２１１から取得したデータが「090-1111-1111」であり、このデータに対して、マスキング方法の指示として「□□□-●●●●-●●●●」があったとする。そして、この指示が、「□」はその位置に出現するデータをそのまま出力し、それ以外の文字は代替文字としてマスキングに使用することを意味したとする。その場合、「090-●●●●-●●●●」を、マスキング指示を実行した結果のデータ、マスキングデータとして扱う。このように、実際のデータを使用してマスキングデータを作成する場合を、ここでは「部分マスキング」と呼ぶことにする。
【００２６】
もちろん、データ取得指示情報２０１に記述のあるデータを全てデータソース２１１から取得した後、秘匿指示情報２０２で指定されたデータ以外のデータをデータ記憶部２１０に格納してもかまわない。また、データ取得指示情報２０１で指定されている全ての情報をデータソース２１１から取得してデータ記憶部２１０に格納しておき、この後の処理で、マスキングデータ生成部２０８で作成されたマスキングデータで上書きするようにしてもよい。
【００２７】
マスキングデータ生成部２０８は、秘匿指示情報読み取り部２０５から秘匿指示情報２０２を得て、マスキングデータを生成する。秘匿指示情報２０２には、データ取得指示情報２０１に記述されたデータのうち、どのデータをマスキングするか記述されている。また、マスキング対象のデータをマスキングする際の代替データが指示されている。なお、マスキングデータ生成部２０８は、本発明の生成手段の適用例となる構成であり、マスキングデータは、本発明の秘匿データの適用例となる構成である。
【００２８】
マスキングデータ生成部２０８は、まず、マスキング対象のデータを認識する。そして、そのデータに対してマスキングに使用する代替データを確定する。代替データとして特定の文字列が指定されている場合はその文字列をデータ記憶部２１０に格納する。また、前述したように秘匿指示情報２０２に部分マスキングを行う指示がある場合は、指示に従って一部をマスキングしたデータをデータ記憶部２１０に格納する。
【００２９】
文書生成部２０９は、テンプレート読み取り部２０６から得たテンプレートと、データ記憶部２１０に格納されたデータとから文書を生成する。テンプレートには文書のデザイン、文書の論理構造やテキスト、画像等の文書を構成するコンテンツを含む文書情報である。また、テンプレートにはテンプレートに合成するデータが指定されている。文書生成部２０９は、テンプレートに指定された合成対象データをデータ記憶部２１０から取得して、テンプレートに合成して文書を生成する。文書生成部２０９は、テンプレートに記述された全ての合成指示に対して合成処理を行うことによって生成文書２１２を得る。なお、文書生成部２０９は、本発明の合成手段の適用例となる構成である。
【００３０】
図３に、データソース２１１から取得するデータを指示するためのデータ取得指示情報２０１の一例を示す。本実施形態では、データ取得指示情報２０１をＸＭＬ（Extensible Markup Language）文書として記述する。また、ここではデータソース２１１をデータベースとし、データベースに保存されたデータを取得するためのデータ取得指示情報２０１の例を示す。
【００３１】
図３に示すように、データ取得指示情報２０１では、データベースアクセス先と取得するテーブルの種類及びフィールドが指定されている。<server>要素はデータベースへのアクセス先を指示する要素で、http://database.hogehoge.comでアクセスできることを示している。また、<table>要素と<field>要素はそれぞれデータベースから取得する対象データのテーブルとそのフィールドを示している。<table>要素のname属性はテーブルの名前を表している。<field>要素のtype属性はフィールドのデータの型を示している。それぞれ“string”は文字列、“email”はデータが電子メール情報を持った文字列、“address”はデータが住所情報を持った文字列、“phone”はデータが電話番号情報を持った文字列であることを示している。<field>要素の内容はフィールドの名前を表している。具体的には、このデータ取得指示情報２０１は、アクセスできるデータベースのCustomerテーブルからName、Email、Prefecture、City、HomePhone、CellPhoneフィールドのデータを取得することを意味している。
【００３２】
図４は、データソース２１１であるデータベースのデータ例を示す図である。データベースのCustomerテーブルにデータが格納されている状態を示している。CustomerテーブルはName、Email、Prefecture、City、HomePhone、CellPhoneフィールドを有する。Customerテーブルには、それぞれのフィールドに値を持つID001からID003までの３件のデータが格納されている様子を表している。図３に示すデータ取得指示情報が指定されてこのテーブルにアクセスした場合は、このテーブルのID001、ID002、ID003の３件のデータが取得される。
【００３３】
図５は、データ取得指示情報２０１で指定されたデータに対するマスキング処理について指示する秘匿指示情報２０２の一例を示す図である。本実施形態では、秘匿指示情報２０２をＸＭＬ文書として記述している。
【００３４】
<Mask>要素は、秘匿情報のルート要素である。<data>要素は、データ取得指示情報２０１で指定されたデータのうち、マスクキング処理を行う対象のデータを指定している。table属性は、データベースのテーブルの名前、field属性はtable属性で指定されたデータベースのテーブルのフィールド名を示している。これらは、ここで指定したテーブルのフィールドの値をテンプレートに合成する際にマスキングすることを指示している。そして、type属性はデータの型を示し、field属性の替わりに指定されている場合にこの属性値に示された型を持つデータをマスキングすることを意味する。
【００３５】
data要素の内容にはマスキング処理を行うときに使用する代替データが指定される。何も指定されていない場合はデフォルトの処理である、黒い四角でマスキング処理される。文字列が指定されている場合は、指定された文字列を代替データとしてマスキング処理を行う。この例では、CustomerテーブルのEmailフィールドの値にはデフォルトの黒い四角を代替データとしてマスキングに使用することを意味している。また、Cityフィールドの値には「非表示」の文字列を代替データとしてマスキングに使用することを意味している。そして、フィールドの型が“phone”である値には「●●●-●●●●-●●●●」の文字列を代替データとしてマスキングに使用することを意味している。
【００３６】
図６は、テンプレートの例を示す図である。本実施形態ではテンプレートをＸＭＬの文書として示している。<table>、<tr>、<td>要素はＨＴＭＬの要素と同様の意味を持つものとして例を挙げた。<table>要素は表のデータであることを示し、<tr>要素は行のデータ、<td>要素は列のデータであることを示している。また、<for>要素は子要素を繰り返し出力することを意味する。listName属性値にはデータ取得指示情報２０１で指定されたデータベースのテーブル名が記述される。<for>要素はlistName属性値で指定されたデータを取得した個数分、子要素を繰り返し出力する処理することを意味している。
【００３７】
<data>要素は、データ取得指示情報２０１により取得したデータを<data>要素の替わりに合成することを指定する要素である。name属性には合成するデータを”テーブル名”.”フィールド名”の書式で指定する。つまり、”Customer.Name”と指定した場合は、CustomerテーブルのNameフィールドの値を代入することを意味する。
【００３８】
図７に、図６のテンプレートにデータベースから取得したデータを合成した例を示す。図７は、図３に示すデータ取得指示情報２０１、図４に示すデータベースのデータが用いられ、秘匿指示情報は指定されていない場合の生成文書２１２の例を示している。<for>要素の指定により、データベースから取得したCustomerテーブルの各フィールドの値が取得した順番毎に、所定の位置に合成されて出力される。ID001からID003の３データが出力される。
【００３９】
説明をわかりやすくするため、図７を表示できる形態としてレンダリングした様子を図８に示す。図６のテンプレートはＨＴＭＬの書式にデータベースからのデータを合成するための記述を加えたものであり、文書生成部２０９で作成されるデータベースから取得したデータが合成された文書はＨＴＭＬ文書として出力される。この文書をＷｅｂブラウザで表示すると図８のような表として出力される。一行目に表の各項目名、２行目、３行目、４行目にデータベースから取得したID001からID003までのデータが表示される。
【００４０】
図９は、文書生成部２０９で作成された生成文書２１２の例を示す図である。この生成文書２１２は、図３のデータ取得指示情報２０１、図５の秘匿指示情報２０２、図６のテンプレート２０３を使用し、データベースのCustomerテーブルに格納されたデータが図４であった場合に出力される生成文書２１２である。図５の秘匿指示情報に基づいて、Emailフィールド、Cityフィールド、そして型が”phone”であるHomePhone、CellPhoneフィールドに対してそれぞれに指定された代替データを使用してマスキングされている。
【００４１】
図１０に、図９の生成文書２１２をレンダリングした様子を示す。上述したように図７のテンプレート２０３はＨＴＭＬの書式と合成するデータを指示する書式に従って記述されているため、Ｗｅｂブラウザでレンダリング処理して表示した様子である。図５の秘匿指示情報に基づいて指定のデータが指定の代替データでマスキングされて表示される。
【００４２】
次に、図１１を参照しながら、フローチャートを使用して本実施形態の処理の流れを説明する。図１１は、全体の処理の流れを示すフローチャートである。
【００４３】
まず、データ取得指示情報２０１、秘匿指示情報２０２、テンプレート２０３を読み取る処理を行う。本フローチャートでは、この順で読み込む処理を行っているが、順不同でよい。
【００４４】
ステップＳ１１０１では、データ取得指示情報読み取り部２０４は指定されたデータ取得指示情報２０１を読み取り、データ取得部２０７に読み取った情報を渡す。
【００４５】
ステップＳ１１０２では、秘匿指示情報読み取り部２０５は、指定された秘匿指示情報２０２を読み取り、読み取った情報をデータ取得部２０７、マスキングデータ生成部２０８に渡す。
【００４６】
ステップＳ１１０３では、テンプレート読み取り部２０６は、テンプレート２０３を読み取り、文書生成部２０９に読み取ったデータを渡す。本実施形態では、データ取得指示情報２０１、秘匿指示情報２０２、テンプレート２０３はファイルとしてハードディスク１０４に保存されているので、指定されたファイルを読み込む処理を行う。もし、外部のファイルサーバ１１１等に保存されており、そのファイルサーバのＵＲＬが指定されている場合は、指定されたＵＲＬにアクセスしてファイルを取得して読み取り処理を行う。
【００４７】
ステップＳ１１０４では、データ取得部２０７は、データ取得指示情報読み取り部２０４から得たデータ取得指示情報２０１と、秘匿指示情報読み取り部２０５から得た秘匿指示情報２０２とに基づいてデータベースであるデータソース２１１からデータを取得する。そして、データ取得部２０７はデータ記憶部２１０にデータを格納する。秘匿指示情報２０２で指定されたデータは指定された代替データでマスキングされるため、データソース２１１からデータを取得する必要がない。そのため、データ取得部２０７は、秘匿指示情報２０２を用いてマスキング対象のデータを判別して、データソース２１１から取得しないようにしている。しかし、冗長ではあるが、もし、マスキング対象のデータもデータソース２１１から取得してデータ記憶部２１０に格納するのであれば、データ取得部２０７は秘匿指示情報２０２を使用しない。この場合、秘匿指示情報読み取り部２０５は、ステップＳ１１０２で読み取った秘匿指示情報２０２をデータ取得部２０７に渡さなくてもよい。
【００４８】
ステップＳ１１０５では、マスキングデータ生成部２０８は、秘匿指示情報２０８に従って、マスキングに使用する代替データをマスキング対象のデータに対応させてデータ記憶部２１０に記憶する。
【００４９】
ステップＳ１１０６では、文書生成部２０９は、テンプレート読み取り部２０６から取得したテンプレート２０３とデータ記憶部２１０に格納されたデータとを使用して生成文書２１２を作成する。テンプレート２０３には、テンプレートに合成するデータが記述されている。文書生成部２０９は、その記述で指定されたデータをデータ記憶部２１０から取得してテンプレートに合成して生成文書２１２を作成する。
【００５０】
次に、図１２を参照しながら、データ取得部２０７の処理について説明する。図１２は、データ取得部２０７の処理を示すフローチャートである。ここでは、データ取得指示情報読み取り部２０４から図３に示すデータ取得指示情報を得た後の処理について説明する。
【００５１】
ステップＳ１２０１では、データ取得部２０７は、データ取得指示情報２０１から取得するデータを認識する。ここでは、データ取得部２０７は、データ取得指示情報２０１を上から順次読み出して各要素の情報を処理する。具体的には、データ取得部２０７は、<server>要素の内容である”http://database.hogehoge.com”をアクセス先として検出する。続いて、データ取得部２０７は、<table>要素のname属性からテーブル名、<field>のtype属性と内容からフィールドの型とフィールド名を検出する。図３のデータ取得指示情報２０１の場合は以下のデータが検出される。CustomerテーブルのNameフィールド（string型）、Emailフィールド（email型）、Prefecture（address型）、Cityフィールド（address型）、HomePhoneフィールド（phone型）、CellPhone（phone型）である。
【００５２】
ステップＳ１２０２では、データ取得部２０７は、秘匿指示情報を上から順次読み出して、マスキング処理する情報を検出する。図５が秘匿指示情報である場合、マスキング対象データのテーブル名とフィールド名、フィールドの型が、<data>要素のtable属性値、field属性値、type属性値として記述されている。つまり、データ取得部２０７は、CustomerテーブルのEmailフィールド、Cityフィールド、そして、データ型がphoneである、HomePhoneフィールド、CellPhoneフィールドのデータをマスキング対象データとして検出する。
【００５３】
ステップＳ１２０３では、データ取得部２０７は、データソース２１１から取得するデータを決定する。データ取得部２０７は、ステップＳ１２０１で検出したフィールド名からＳ１２０２で検出したデータ名を抜いたフィールド名のデータを取得する。つまり、データ取得部２０７は、Name、Email、Prefecture、City、HomePhone、CellPhoneフィールドからEmail、City、HomePhone、CellPhoneを抜いた、Name、Prefectureフィールドのデータを取得することを決定する。
【００５４】
ステップＳ１２０４では、データ取得部２０７は、上記決定を基にデータソース２１１からデータを取得する。ステップＳ１２０４では先ず、データ取得部２０７は、ステップＳ１２０３で決定したフィールドに関してデータソース２１１から取得するためのＳＱＬ文を作成する。ステップＳ１２０３までにCustomerテーブルのName、Prefectureフィールドの値を取得することが決定している。従って、データ取得部２０７は、そのデータを取得するためのＳＱＬ文「SELECT Name, Prefecture FROM Customer」を作成する。そして、データ取得部２０７は、データソース２１１であるデータベースdatabase.hogehoge.comに対して、作成したＳＱＬ文で問い合わせてデータを取得する。
【００５５】
しかしながら、秘匿指示情報で全てのフィールドに対してマスキング処理が指定されている場合もある。その場合は、Customerテーブルに登録されているデータの件数を取得するためのＳＱＬ文「SELECT COUNT(*) FROM Customer 」を作成し、データソース２１１に問い合わせる。
【００５６】
ステップＳ１２０５では、データ取得部２０７は、データソース２１１から取得したデータをデータ記憶部２１０に格納する。その際、データ取得部２０７は、データ記憶部２１０にCustomerデータを格納するためのデータ管理テーブルを作成して、そこに取得したデータを格納する。
【００５７】
データ管理テーブルの例を図１３に示す。データ管理テーブル１５０１はデータ取得指示情報に指定された全てのフィールド名とその型の情報とを有し、データソース２１１から取得したデータを対応したフィールド名の列に格納する。
【００５８】
図１３では、ステップＳ１２０４で、ID001からID003のNameフィールド、Prefectureフィールドの値を取得した場合のデータ格納状態を表している。もし、秘匿指示情報で、データ取得指示情報に記述された全てのデータがマスキング処理されることが指定されている場合、データ管理テーブルは、ステップＳ１２０４で取得したデータの件数のみを格納したものになる。
【００５９】
次に、マスキングデータ生成部２０８の処理の流れについて説明する。秘匿指示情報読み取り部２０５から図５の秘匿指示情報２０２を取得した後の処理について説明する。
【００６０】
まず、マスキングデータ生成部２０８は、取得した秘匿指示情報２０２に記載されたデータフィールドとマスキング文字列を抽出する。即ち、マスキングデータ生成部２０８は、図５の秘匿指示情報２０２から<data>要素のtable属性値、field属性値、type属性値、そして、内容を読み出す。前述したようにtable属性はデータソース２１１のテーブル名、field属性はフィールド名、type属性はフィールドのデータ型を示している。属性値でデータソース２１１上のどのフィールドのデータか特定することができる。また、<data>要素の内容はマスキング処理をするときに使用する代替データを示しており、指定された文字列が代替データとして使用される。内容がない場合はデフォルトの文字列である、黒い四角が使用されることを意味する。この意味に従い、マスキングデータ生成部２０８は、図５の秘匿指示情報２０２は上から順に、CustomerテーブルのEmailフィールドをデフォルトの黒い四角の文字列を使用してマスキング処理することを認識する。また、マスキングデータ生成部２０８は、CustomerテーブルのCityフィールドを「非表示」の文字列でマスキング処理することを認識する。また、マスキングデータ生成部２０８は、Customerテーブルのデータ型が”phone”であるフィールドを「●●●-●●●●−●●●●」でマスキング処理することを認識する。
【００６１】
次に、マスキングデータ生成部２０８は、Ｓ１３０１で認識した情報に従ってデータ記憶部２１０のデータ管理テーブルにマスキングに使用する代替データを格納する。代替データを格納した結果のデータ管理テーブルを図１４に示す。
【００６２】
図１４に示すように、データ管理テーブルのEmailフィールドに対しては黒い四角を代替データとして用いるので、データ管理テーブルのEmailフィールドの列に黒い四角を格納する。そして、データ管理テーブルのCityフィールドに対しては「非表示」という文字列を用いる。従って、マスキングデータ生成部２０８は、データ管理テーブルのCityフィールドの列に「非表示」の文字列を格納する。また、データ管理テーブルのphone型のフィールドに対しては、「●●●-●●●●−●●●●」文字列をマスキング処理に用いる。従って、マスキングデータ生成部２０８は、データ管理テーブルのphone型データを検索して、代替データ「●●●-●●●●−●●●●」を格納する。この例の場合、HomePhoneフィールド、CellPhoneフィールドがphone型と検索されるので、マスキングデータ生成部２０８は、この２つのフィールドの列に対してこの代替データを格納する。以上のようにしてデータ管理テーブルにマスキングに使用する代替データを格納した結果、図１４に示すようなデータ管理テーブル１６０１が完成する。
【００６３】
最後に、文書生成部２０９の処理の流れを図１５のフローチャートを用いて説明する。まず、文書生成部２０９は、テンプレート読み取り部２０６から得たテンプレートを読み込んでテンプレート中のデータ合成に関する指示が記載されている記述を検索する。図６に示すテンプレートの場合は、子要素の繰り返し出力を指示する<for>要素と指定するデータとの入れ替えを指示する<data>要素がこれに該当する。次に、文書生成部２０９は、データ合成に関する指示記述に従い、データ管理テーブルから指定されたデータを取得してテンプレートにデータを合成する。
【００６４】
図６に示すテンプレートに対する文書生成部２０９の処理の流れを図１５のフローチャートを用いて説明する。ここでは、ＸＭＬの要素を上から順次処理する。
【００６５】
ステップＳ１８０１では、文書生成部２０９は、テンプレート中の全ての要素を処理したか否かを判定し、全て処理した場合に文書生成部２０９の処理が終了する。それまでは、文書生成部２０９は読み出したＸＭＬの要素に従った処理を行う。
【００６６】
ステップＳ１８０２では、文書生成部２０９は、読み出した要素が<for>要素かを判別する。<for>要素である場合、文書生成部２０９は、<for>要素のlistName属性値に記述のあるテーブル名のデータ管理テーブルから格納されているデータの数を取得し、その回数、子要素以下の要素に対する出力処理を繰り返す。<for>要素は子要素の繰り返し処理を指定するための要素であるため、生成文書には出力しない。テンプレート６０１のfor要素のlistName属性値は”Customer”なので、文書生成部２０９は、データ記憶部２１０に記憶されたデータ管理テーブルからデータの個数を取得する。
【００６７】
図１４に示すデータ管理テーブルの場合、データの件数は３であるため、<for>要素の子要素<tr>及びそれ以下の要素の出力が３回繰り返されることを意味する。そして、さらに、子要素及びそれ以下の要素の<data>要素でデータ管理テーブルのデータを合成する指示がある場合、文書生成部２０９は、繰り返す毎にデータ管理テーブルから順次Noの小さいデータから大きいデータを読み出し、データ管理テーブルに格納されているデータを全てテンプレートに合成することを意味する。
【００６８】
ステップＳ１８０４では、文書生成部２０９は、読み出した要素が<data>要素であるか否かを判別する。<data>要素である場合、文書生成部２０９は、<data>要素のname属性値に指定されたデータをデータ管理テーブルから取得し、この<data>要素の替わりに生成文書のデータとして出力する（Ｓ１８０５）。例えば、name属性値に”Customer.Name”記述されている場合、文書生成部２０９は、データ管理テーブル１６０１からNameフィールドの値を読み出す。<for>要素による最初の処理であればNo.1に記憶されている「田中花子」を生成文書に出力する。同様に、name属性値、”Customer.Email”、”Customer.Prefecture”、”Customer.City”、”Customer.HomePhone”、”Customer.CellPhone”に対してはそれぞれ、「■■■■■」、「東京都」、「非表示」、「●●●-●●●●-●●●●」、「●●●-●●●●-●●●●」を出力する。
【００６９】
テンプレートから読み出した要素がデータ合成に関するものでないと判断した場合、つまり、本実施形態においては、文書生成部２０９は、<for>要素、<data>要素以外の要素であると判断した場合、要素をそのまま出力する（Ｓ１８０６）。
【００７０】
テンプレート中の全ての要素を処理し、文書生成部２０９は処理を終える。出力された要素で構成された文書が生成文書２１２である。
【００７１】
図６に示すテンプレートに対して図１４のデータ管理テーブルが用いられた場合、図９に示す生成文書が作成される。
【００７２】
以上、説明した方法によりテンプレートにマスキング処理を指定せずにマスキング処理した文書の生成を行う。
【００７３】
なお、本実施形態では、テンプレートとしてＸＭＬ文書を例に挙げて説明したが、それに限定するものではなく、他の形式の文書であってもよい。テンプレートとは、最終的に生成する文書のフォーマットに、データソース２１１から取得したデータを合成する指示記述を加えたものである。また、データ合成を指示するための記述とは、それ以外の記述、つまり最終的に生成する文書フォーマットに従った記述と区別可能な記述である。本実施形態における文書生成部２０９は、データ合成を指示する記述以外はそのまま出力するため、そのまま出力するデータのフォーマットは認識しない。それゆえ、生成文書２１２は本実施形態で説明したＸＭＬ文書に限るものではない。例えば、ＰＤＦ（Portable Document Format）やマイクロソフト社のＷｏｒｄ、ＣＳＶ（Comma Separated Values）データ等の他形式の文書であってもよい。
【００７４】
本実施形態では１つの秘匿指示情報を例に挙げて説明した。もし、文書システムを使用するユーザやユーザが扱える機密情報のレベルによってマスキングされる箇所が異なる文書を生成したい場合は、ユーザや機密情報のレベルに応じて秘匿指示情報読み取り部に渡す秘匿指示情報を変えることにより実現できる。
【００７５】
上述したように、マスキングデータ生成部２０８は、データ取得指示情報２０１に基づいて取得されるデータのうち、秘匿するデータを指定するための秘匿指示情報２９２に基づいて上記秘匿するデータに対応するマスキングデータを生成する。そして、文書生成部２０９は、取得されたデータとマスキングデータとをテンプレート２０３に合成するようにしている。従って、テンプレート２０３を変更する場合であっても、データを秘匿する方法を改めて指定することなく、マスキングされた文書等を生成することが可能となる。
【００７６】
このように、本実施形態においては、テンプレート２０３のデザインだけを変更して同じデータを表示する場合、マスキング処理についての指定を変更することなく対応可能である。従って、マスキング箇所を指定することなく、目的であるテンプレート２０３のデザインを変更するだけで、マスキングされた文書を作成することができる。
【００７７】
また、本実施形態においては、マスキング箇所の指定はデータソース２１１から取得されるデータに対して行う。従って、テンプレート２０３の複数の箇所にデータをレイアウトする場合であっても、テンプレート２０３のどこにデータが出現するのかを検索しながら、その各々の箇所にマスキングを指定する手間が省ける。
【００７８】
なお、テンプレート２０３とデータソース２１１とは密接な関係がある。そのため、テンプレート２０３とデータソース２１１とは、一対として扱われることが考えられる。このような場合、テンプレート２０３にマスキング箇所を指定する方法では、マスキングするデータの違いによってテンプレート２０３とデータソース２１１との対を複数用意する必要がある。しかし、本実施形態においては、マスキング箇所の指定をテンプレート２０３に行わないため、テンプレート２０３とデータソース２１１との対を複数用意する必要がない。
【００７９】
上述した本発明の実施形態を構成する各手段及び各ステップは、コンピュータのＲＡＭやＲＯＭ等に記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００８０】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、一つの機器からなる装置に適用してもよい。
【００８１】
なお、本発明は、上述した実施形態の機能を実現するソフトウェアのプログラムを、システム又は装置に直接、又は遠隔から供給する。そして、そのシステム又は装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００８２】
従って、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００８３】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。更に、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳ等が、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００８４】
更に、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００８５】
【図１】本発明の実施形態に係る情報処理装置の構成を示すブロック図である。
【図２】本発明の実施形態に係る情報処理装置によって実現する文書生成システムの構成を示す図である。
【図３】データソースから取得するデータを指示するためのデータ取得指示情報の一例を示す図である。
【図４】データソースであるデータベースのデータ例を示す図である。
【図５】データ取得指示情報で指定されたデータに対するマスキング処理について指示した秘匿指示情報の一例を示す図である。
【図６】テンプレートの例を示す図である。
【図７】図６のテンプレートにデータベースから取得したデータを合成した例を示す図である。
【図８】図７を表示できる形態としてレンダリングした様子を示す図である。
【図９】文書生成部で作成された生成文書の例を示す図である。
【図１０】図９の生成文書をレンダリングした様子を示す図である。
【図１１】全体の処理の流れを示すフローチャートである。
【図１２】データ取得部の処理を示すフローチャートである。
【図１３】データ管理テーブルの例を示す図である。
【図１４】代替データを格納した結果のデータ管理テーブルの例を示す図である。
【図１５】文書生成部の処理の流れを示すフローチャートである。
【符号の説明】
【００８６】
１００  情報処理装置
１０１  コントローラ部
１０２  操作部
１０３  表示部
１０４  ハードディスク
１０５  ＣＰＵ
１０６  ＲＯＭ
１０７  ＲＡＭ
１０８  ネットワークアダプタ
１０９  ネットワーク
１１０  データベース
１１１  ファイルサーバ
２００  文書生成システム
２０１  データ取得指示情報
２０２  秘匿指示情報
２０３  テンプレート
２０４  データ取得指示情報読み取り部
２０５  秘匿指示情報読み取り部
２０６  テンプレート読み取り部
２０７  データ取得部
２０８  マスキングデータ生成部
２０９  文書生成部
２１０  データ記憶部
２１１  データソース
２１２  生成文書
【図１】
2009276854.tif 000003
【図２】
2009276854.tif 000004
【図３】
2009276854.tif 000005
【図４】
2009276854.tif 000006
【図５】
2009276854.tif 000007
【図６】
2009276854.tif 000008
【図７】
2009276854.tif 000009
【図８】
2009276854.tif 000010
【図９】
2009276854.tif 000011
【図１０】
2009276854.tif 000012
【図１１】
2009276854.tif 000013
【図１２】
2009276854.tif 000014
【図１３】
2009276854.tif 000015
【図１４】
2009276854.tif 000016
【図１５】
2009276854.tif 000017