(57)【特許請求の範囲】
【請求項１】
アプリケーションサーバと通信ネットワークを介して接続する機能を備えるデータ符号化装置であって、
利用者端末から受信した平データの特性に応じて、符号化処理の種別を決定し、当該種別に基づいて前記平データを符号化データに変換し、当該符号化データを前記アプリケーションサーバに送信する符号化手段と、
平データと符号化データとを対応付けて格納するデータ格納手段と、
前記アプリケーションサーバから符号化データを受信し、前記データ格納手段を参照することにより、当該符号化データを平データに変換し、当該平データを前記利用者端末に送信する復元手段とを備え、
前記種別は、１つの平データに対して１つの符号化データを生成する種別、１つの平データに対して所定の個数を上限とする数の符号化データを生成する種別、及び１つの平データに対して生成の度に異なる符号化データを生成する種別のうちのいずれかの種別である
ことを特徴とするデータ符号化装置。
【請求項２】
前記符号化手段は、前記符号化データと当該符号化データの存在を示す符号化データ存在識別情報とを含む符号化データ存在識別情報付きデータを前記アプリケーションサーバに送信し、
前記復元手段は、前記アプリケーションサーバから、前記符号化データ存在識別情報付きデータを含むデータを受信した場合に、前記符号化データ存在識別情報に基づき符号化データを抽出し、当該符号化データを変換することにより平データを取得する
ことを特徴とする請求項１に記載のデータ符号化装置。
【請求項３】
前記利用者端末から受信した検索要求を前記アプリケーションサーバに送信し、当該アプリケーションサーバから当該検索要求に含まれる検索キーワードを受信した場合に、前記データ格納手段から当該検索キーワードに対応する符号化データを抽出し、当該符号化データを検索キーワードとする検索を前記アプリケーションサーバに要求する手段
を備えることを特徴とする請求項１又は２に記載のデータ符号化装置。
【請求項４】
前記利用者端末から検索要求を受信した場合に、前記データ格納手段を参照することにより、当該検索要求に含まれる検索キーワードを符号化データに置き換え、当該置き換えを行った検索要求を前記アプリケーションサーバに送信する手段
を備えることを特徴とする請求項１又は２に記載のデータ符号化装置。
【請求項５】
前記アプリケーションサーバから検索結果を受信した場合に、当該検索結果に含まれる符号化データを平データに復元し、当該復元された平データを含む検索結果を前記利用者端末に送信する手段
を備えることを特徴とする請求項３又は４に記載のデータ符号化装置。
【請求項６】
アプリケーションサーバと通信ネットワークを介して接続する機能を備えるデータ符号化装置が実行するデータ符号化方法であって、
利用者端末から受信した平データの特性に応じて、符号化処理の種別を決定し、当該種別に基づいて前記平データを符号化データに変換し、当該符号化データを前記アプリケーションサーバに送信するステップと、
前記アプリケーションサーバから符号化データを受信し、平データと符号化データとを対応付けて格納するデータ格納手段を参照することにより、前記受信した符号化データを平データに変換し、当該平データを前記利用者端末に送信するステップとを備え、
前記種別は、１つの平データに対して１つの符号化データを生成する種別、１つの平データに対して所定の個数を上限とする数の符号化データを生成する種別、及び１つの平データに対して生成の度に異なる符号化データを生成する種別のうちのいずれかの種別である
ことを特徴とするデータ符号化方法。
【請求項７】
コンピュータを、請求項１ないし５のうちいずれか１項に記載のデータ符号化装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トークン化したデータをアプリケーションサーバに格納する技術に関連するものである。
【背景技術】
【０００２】
インターネット上のアプリケーションサーバから顧客データ管理アプリケーション等の各種アプリケーションサービスが提供されている。このようなサービスでは、サービス利用者（主に企業）が自身でサーバ構築、アプリケーションのインストール等をすることなく、すぐにサービスを受けられる利点がある。
【０００３】
但し、これらサービスは、サービス利用者以外の第三者（サービス提供者）により提供されるため、サービス利用者がサーバに格納する顧客データ等を自ら管理できない。そのため、サービス利用者は、サービス提供者による情報漏えいを防ぐことができないという問題がある。この問題に対処する技術の例として、暗号化したデータをサービス提供者のサーバに格納する技術が開示されている（例えば特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２５３６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
暗号化では元データと暗号化データとの間に数学的な関係があり、解析等により暗号化データが解読されてしまう可能性がある。また、暗号化でデータサイズやデータ形式が変わるという欠点もある。 
上記のような暗号化の欠点に鑑みて、新しいデータ保護技術として「トークナイゼーション」と呼ばれる技術が使用されている。トークナイゼーション技術は、例えばクレジットカード情報のセキュリティ強化に使用されており、元データ（例：クレジットカード番号）の一部又は全部を別データ（例：同じ桁数の全く異なる数列）に置き換える技術である。置き換えた別データをトークンと呼ぶ。なお、トークン化のことをより一般的に「符号化」と呼び、別データを「符号化データ」と呼ぶこととしてもよい。また、元のデータを「平データ」と呼んでもよい。トークナイゼーションでは、トークンに数学的な解析処理がなされて復号化されてしまうリスクがない。また、たとえトークンが漏えいしたとしても、トークン自体は無意味なデータに過ぎないため、サービス利用者に被害を及ぼさない。
【０００６】
トークナイゼーション技術を、背景技術で説明したアプリケーションサービスに適用することが考えられるが、このようなアプリケーションサービスにトークナイゼーション技術を適用した従来技術は見当たらない。従って、適切にトークンをアプリケーションサーバに格納し、復元を行うための新たな仕組みが必要である。
【０００７】
また、トークナイゼーション技術を使用する場合、アプリケーションサーバにはトークンが格納されるため、アプリケーションサーバに対して元データを指定した検索を行うことができないという問題もある。
【０００８】
本発明は上記の点に鑑みてなされたものであり、データを符号化し、符号化データをアプリケーションサーバに格納するとともに、符号化データから適切に元データを復元することを可能とする技術を提供することを目的とする。また、本発明は、符号化データとして格納されたデータに対する検索を適切に行うことを可能とする技術を提供することを目的としている。
【課題を解決するための手段】
【０００９】
本発明の実施の形態によれば、アプリケーションサーバと通信ネットワークを介して接続する機能を備えるデータ符号化装置であって、
利用者端末から受信した平データの特性に応じて、符号化処理の種別を決定し、当該種別に基づいて前記平データを符号化データに変換し、当該符号化データを前記アプリケーションサーバに送信する符号化手段と、
平データと符号化データとを対応付けて格納するデータ格納手段と、
前記アプリケーションサーバから符号化データを受信し、前記データ格納手段を参照することにより、当該符号化データを平データに変換し、当該平データを前記利用者端末に送信する復元手段とを備え、
前記種別は、１つの平データに対して１つの符号化データを生成する種別、１つの平データに対して所定の個数を上限とする数の符号化データを生成する種別、及び１つの平データに対して生成の度に異なる符号化データを生成する種別のうちのいずれかの種別である
ことを特徴とするデータ符号化装置が提供される。
【００１０】
また、本発明の実施の形態によれば、アプリケーションサーバと通信ネットワークを介して接続する機能を備えるデータ符号化装置が実行するデータ符号化方法であって、
利用者端末から受信した平データの特性に応じて、符号化処理の種別を決定し、当該種別に基づいて前記平データを符号化データに変換し、当該符号化データを前記アプリケーションサーバに送信するステップと、
前記アプリケーションサーバから符号化データを受信し、平データと符号化データとを対応付けて格納するデータ格納手段を参照することにより、前記受信した符号化データを平データに変換し、当該平データを前記利用者端末に送信するステップとを備え、
前記種別は、１つの平データに対して１つの符号化データを生成する種別、１つの平データに対して所定の個数を上限とする数の符号化データを生成する種別、及び１つの平データに対して生成の度に異なる符号化データを生成する種別のうちのいずれかの種別である
ことを特徴とするデータ符号化方法が提供される。
【発明の効果】
【００１１】
本発明の実施の形態により、データを符号化し、符号化データをアプリケーションサーバに格納するとともに、符号化データから適切に元データを復元することを可能とする技術を提供することができる。
【００１２】
また、検索に係る手段を備えることで、符号化データとして格納されたデータに対する検索を適切に行うことが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態に係るシステムの全体構成図である。
【図２】アプリケーションサーバ３０の機能構成図である。
【図３】データ格納部３２に格納されるテーブルデータの一例を示す図である。
【図４】中継装置２０の機能構成及び動作概要を説明するための図である。
【図５】動作条件情報の項目例を示す図である。
【図６】動作条件テーブルの例を示す図である。
【図７】平文データがトークン化され、トークンに識別子、接頭子、接尾子が付与された例を示す図である。
【図８】検索処理の概要手順を説明するための図である。
【図９】検索方式１の概要を説明するための図である。
【図１０】検索方式１の詳細手順を説明するためのシーケンス図である。
【図１１】検索方式２の概要を説明するための図である。
【図１２】検索方式２の詳細手順を説明するためのシーケンス図である。
【図１３】検索方式３の概要を説明するための図である。
【図１４】検索方式３の詳細手順を説明するためのシーケンス図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施の形態を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。例えば、本実施の形態では、利用者端末１０とアプリケーションサーバ３０間で、中継装置２０を介して、ＨＴＴＰによりテキストデータ（ＨＴＭＬ文書等）を送受信することを想定しているが、プロトコルはＨＴＴＰに限られるわけではない。
【００１５】
（システム構成、動作概要）
図１に、本発明の実施の形態に係るシステムの全体構成図を示す。図１に示すように、本実施の形態のシステムは、利用者端末１０、中継装置２０、及びアプリケーションサーバ３０が、通信ネットワーク４０で接続された構成を有する。図１には、利用者端末１０、中継装置２０、及びアプリケーションサーバ３０がそれぞれ１つづつ示されているが、これは説明の便宜上のものであり、それぞれが複数であってもよい。
【００１６】
本実施の形態における通信ネットワーク４０は例えばインターネットであるが、本発明はどのような通信ネットワークにおいても適用可能である。利用者端末１０は例えばＷｅｂブラウザを備えたＰＣ（パーソナルコンピュータ）やスマートフォン等である。
【００１７】
中継装置２０は、本発明に係るデータ符号化装置の一実施形態に係る装置であり、詳細動作は後述するが、概して、利用者端末１０から受信した要求メッセージに含まれるデータを所定の条件に基づきトークン化して、当該要求メッセージをアプリケーションサーバ３０に送信し、当該データをアプリケーションサーバ３０に格納する。また、利用者端末１０から受信した検索要求に基づいて、アプリケーションサーバ３０に格納されたトークンに対する検索処理を制御して、トークンとして得られた検索結果に対するトークンの元データへの復元を行ってから検索結果を利用者端末１０に返す。なお、「トークン化」は、「符号化」の一例である。
【００１８】
アプリケーションサーバ３０は、クラウドサービスにおける仮想的なサーバであってもよいし、物理的なサーバであってもよい。図２に、アプリケーションサーバ３０の機能構成例を示す。図２に示すように、アプリケーションサーバ３０は、サービス提供部３１、及びデータ格納部３２を含む。
【００１９】
サービス提供部３１は、顧客データ管理サービス等のアプリケーションサービスを提供する機能部である。顧客データ管理サービスの場合、サービス提供部３１は、一般に、端末から顧客データを受信し、顧客データを所定の形式でデータ格納部３２に格納（登録）する。また、サービス提供部３１は、端末から検索クエリーデータとともに検索要求を受信した場合には、当該検索クエリーデータに該当するデータを検索して当該端末に提供する機能も有する。このような検索機能は、アプリケーションの１つとして提供されてもよいし、検索ＡＰＩ（検索プログラム）として提供されてもよい。
【００２０】
本実施の形態では、サービス提供部３１は、このようにデータの登録、検索等を行う機能部である。なお、本実施の形態では、トークナイゼーションにおける効率的な検索方式を採用しており、それについては後に詳細に説明する。
【００２１】
図３に、アプリケーションサーバ３０のデータ格納部３２に格納されるテーブルデータの一例を示す。図３に示す例では、データ格納部３２には、項目（氏名、住所、等）毎に、その項目に該当するデータがテーブルとして格納される。
【００２２】
図４は、中継装置２０の機能構成及び動作概要を説明するための図である。図４に示すように、中継装置２０は、プロキシ機能部２１、動作条件情報格納部２２、トークン化機能部２３、データ格納部２４を有する。
【００２３】
プロキシ機能部２１は、リバースプロキシ・フォーワードプロキシの機能を持ち、アプリケーションサーバ３０との通信を管理し、リクエストデータのトークン化、レスポンスデータの平文化等を実施する。トークン化に関する実際の処理はトークン化機能部２３のトークン化機能を利用する（呼び出す）ことで実施する。また、トークン化・平文化に際しては、動作条件情報格納部２２に格納された動作条件情報を参照し、動作条件に従って処理を実行する。更に、プロキシ機能部２１は、検索要求のアプリケーションサーバ３０への転送や、アプリケーションサーバ３０から返される検索結果に含まれるトークンを平文に復元して利用者端末１０に返却する等の処理も実施する。
【００２４】
トークン化機能部２３は、平文のトークン化、トークンの平文化、トークン情報のデータ格納部２４への蓄積、検索処理等を実施する。
【００２５】
図４を参照して、利用者端末１０からアプリケーションサーバ３０にデータ登録を行う際の動作概要例を説明する。
【００２６】
例えば、利用者端末１０がアプリケーションサーバ３０にアクセスして、入力画面が表示され、当該画面上で図４のＡに示すようにユーザによりデータ入力がなされ、入力されたデータが中継装置２０のプロキシ機能部２１に送信される（ステップ１）。
【００２７】
プロキシ機能部２１は、動作条件に従って、トークン化機能部２３に対し、元データからトークンを生成するよう指示する（ステップ２）。指示を受けたトークン化機能部２３は、元データをトークン化するとともに、図４のＢに示すように、元データとトークンとを対応付けてデータ格納部２４に格納する。Ｂにおいてトークンに引かれた下線は、元データからの変更箇所を示している。
【００２８】
トークン化機能部２３は、生成したトークンをプロキシ機能部２１に返す（ステップ３）。プロキシ機能部２１は、図４のＣに示すように、利用者端末１０から受信した入力データをトークンに置き換え、当該置き換えを行った情報をアプリケーションサーバ３０に送信する（ステップ４）。アプリケーションサーバ３０は、当該情報をデータ格納部３２に格納する。なお、より詳細には、プロキシ機能部２１は、トークンに対し、接頭子、識別子、接尾子を付加し、当該付加が行われたデータをアプリケーションサーバ３０に転送し、アプリケーションサーバ３０は当該データを格納する。これについては後述する。また、プロキシ機能部２１、トークン化機能部２３、及び、アプリケーションサーバ３０のサービス提供部３１は、連携して検索要求に対する検索処理を実施する。検索処理の詳細は後述する。
【００２９】
本実施の形態に係る中継装置２０は、１つ又は複数のコンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、中継装置２０が有する機能は、当該コンピュータに内蔵されるＣＰＵやメモリ、ハードディスクなどのハードウェア資源を用いて、中継装置２０で実施される処理に対応するプログラムを実行することによって実現することが可能である。また、上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【００３０】
また、中継装置２０におけるプロキシ機能部２１・動作条件情報格納部２２を１つのサーバ（コンピュータ）で実現し、トークン化機能部２３・データ格納部２４を別のサーバで実現することとしてもよい。
【００３１】
また、本実施の形態に係るアプリケーションサーバ３０は、１つ又は複数のコンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、アプリケーションサーバ３０が有する機能は、当該コンピュータに内蔵されるＣＰＵやメモリ、ハードディスクなどのハードウェア資源を用いて、中継装置２０で実施される処理に対応するプログラムを実行することによって実現することが可能である。また、上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【００３２】
（トークンパターンについて）
本実施の形態において、トークン化機能部２３が実行するトークン化処理は特定の処理内容に限られないが、一例として、「１：１  トークン」、「１：Ｎ  トークン」、「１：∞  トークン」のいずれかのパターンでトークン化を行うことが可能である。
【００３３】
「１：１  トークン」は、元データに対して一意のトークンを生成するパターンである。「１：１  トークン」は、例えば、住所や長文など、複雑で検索性が求められる情報に利用することができる。
【００３４】
「１：Ｎ  トークン」は、元データに対して所定の個数（Ｎ）分を上限としたトークンを生成するパターンである。例えば、都道府県や苗字など、母集団が少なく１：１では予測が容易であるが検索性が求められる情報に利用することができる。
【００３５】
「１：∞  トークン」は、元データに対して、生成する毎に異なるトークンを生成するパターンである。例えば、性別や血液型等、１：１では予測が容易であるが、検索性が求められない情報に利用することができる。
【００３６】
どのデータに対してどのパターンを使用するかについては、例えば、動作条件情報格納部２２に、項目（住所、名前、...の区別）と、使用するパターンとを対応付けて保持し、プロキシ機能部２１が、要求メッセージの中のデータの項目を識別し、動作条件情報格納部２２を参照して、当該項目に対するパターンを決定し、当該パターンでのトークン化を行うようにトークン化機能部２３に指示する。すなわち、中継装置２０は、平データの特性に応じて、変換する符号化データの種別を決定する機能を持つ。
【００３７】
また、本実施の形態では、元データの種別に対応するトークン種別（トークンの文字列長、文字種、フォーマット、接頭子・接尾子等）が定められており、元データの種別（項目）に対応したトークン種別を使用する。上記パターンがトークン種別の１つとして規定されてもよい。
【００３８】
（動作条件について）
前述したように、プロキシ機能部２１は、動作条件情報格納部２２に格納された動作条件情報に基づいて、トークン化処理の要否、トークン化処理を行う場合のトークンパターン、トークン種別等を判断する。本実施の形態における動作条件情報は、図５に示す項目に対応するデータからなる。
【００３９】
ユーザＩＤは、アプリケーションサーバ３０が提供するアプリケーションサービスのログインＩＤである。
【００４０】
例えば、動作条件情報格納部２２には、ユーザＩＤ毎に、図５において番号２、３、４で示す項目のデータからなるテーブル（動作条件テーブルと呼ぶ）が格納される。プロキシ機能部２１は、利用者端末１０からアプリケーションサーバ３０へのログイン時に取得されるユーザＩＤに対応する動作条件テーブルのデータに基づいて動作を行う。動作条件テーブルの例を図６に示す。
【００４１】
トークン化対象ＵＲＬは、トークン化動作を有効とするＵＲＬである。例えば、ＵＲＬはアプリケーションサーバ３０が提供するアプリケーションサービスのデータ登録画面等の画面単位の要素に対応する。ＵＲＬは利用者端末１０から送信される要求メッセージに含まれており、プロキシ機能部２１は要求メッセージから要求先のＵＲＬを抽出し、当該ＵＲＬが動作条件テーブルにトークン化対象ＵＲＬとして設定されている場合に、トークン化のための動作を行う。ただし、これはデータ登録時の動作である。当該ＵＲＬが動作条件テーブルにトークン化対象ＵＲＬとして設定されていなければ、プロキシ機能部２１は要求メッセージをそのままアプリケーションサーバ３０に転送する。
【００４２】
トークン化対象項目は、トークン化の対象とするデータの項目である。この「項目」とは、例えば図３に示した項目Ａ、項目Ｂ、...等の項目に相当する。本実施の形態では、ＨＴＭＬのフォームにおけるＩｎｐｕｔ要素のｎａｍｅ属性によってトークン化対象を指定している。例えば「氏名」がトークン化対象項目として動作条件テーブルに設定されている場合、プロキシ機能部２１は、要求メッセージからｎａｍｅ属性として「氏名」を探し、ｎａｍｅ属性として「氏名」がある場合に、「氏名」に対応する入力データをトークン化対象と判定する。ｎａｍｅ属性によってトークン化対象を指定することは一例に過ぎない。他の属性、あるいは、データ自体の内容に基づいてトークン化対象を指定することとしてもよい。なお、データ自体の内容は、データの属性の一例である。
【００４３】
また、プロキシ機能部２１は、レスポンスデータに対して、接頭子・接尾子のパターンマッチングによりトークン化形式に該当するデータに対し、トークン化機能部２３を用いて復元（デコード）処理を行って利用者端末１０に送信する。データ形式はＨＴＭＬに限定されずテキスト形式であればＸＭＬ、ＪＳＯＮ等の形式でもよい。
【００４４】
図６に示すように、トークン化対象項目毎にトークン化動作種別が設定されている。プロキシ機能部２１は、トークン化対象項目に該当するデータに対し、対応するトークン化動作種別で指定されるトークン化動作をトークン化機能部２３に指示することによりデータをトークン化する。より具体的には、本実施の形態では、該当項目に対応するトークン種別でのトークン化を行う。また、例えば、トークン化動作種別によりトークンパターンも指定され、当該トークンパターンでのトークン化を行うこととしてもよい。
【００４５】
（トークン化時のデータ形式等について）
図７に、トークン化時のデータ形式を示す。プロキシ機能部２１は、元データ（平文データ）のトークン化を行う際に、トークン化動作種別に対応する識別子をトークンに付与する。また、トークン化が行われたデータであることを識別できるように、接頭子と接尾子を付与する。このような接頭子と接尾子を付与する方式におけるデータ登録時の動作は以下のとおりである。
【００４６】
データ登録時において、プロキシ機能部２１は、トークン化対象であると判定したデータに対して、対応するトークン化動作種別に基づくトークン化処理をトークン化機能部２３を利用して行うとともに、トークンに対して識別子を付与し、更に、この「識別子＋トークン」に対して接頭子と接尾子を付与する。
【００４７】
具体的には、図７に示すように、平文データ（ａ）に上述したトークン化処理が施され、（ｂ）に示すようにトークンに識別子、接頭子、接尾子が付与される。（ｃ）は具体例を示す。プロキシ機能部２１は、当該データ「接頭子＋識別子＋トークン＋接尾子」を含む要求メッセージをアプリケーションサーバ３０に転送する。「接頭子＋識別子＋トークン＋接尾子」は、符号化データ存在識別情報付きデータと呼んでもよい。
【００４８】
要求メッセージを受信したアプリケーションサーバ３０において、サービス提供部３１が、上記のデータ「接頭子＋識別子＋トークン＋接尾子」を、該当する項目に対応するデータとしてデータ格納部３２に格納（登録）する。
【００４９】
また、例えば、アプリケーションサーバ３０のサービス提供部３１は、登録されたデータを利用者端末１０に表示させるために、登録されたデータである「接頭子＋識別子＋トークン＋接尾子」を含む応答メッセージをプロキシ機能部２１に送信し、応答メッセージを受信したプロキシ機能部２１は、応答メッセージ内に、接頭子及び接尾子の組が存在するか否かをパターンマッチングにより判定する。接頭子及び接尾子の組が存在する場合に、プロキシ機能部２１は、接頭子と接尾子の間にあるデータから識別子を取得する。そして、プロキシ機能部２１は、応答メッセージから識別されるユーザＩＤに対応する動作条件テーブルを参照し、取得した識別子に対応するトークン化処理種別を特定し、当該種別に対応する復元処理をトークン化機能部２３に依頼することで、トークンに対して当該識別子に対応する復元処理を行わせ、トークンに対応する元データを取得する。
【００５０】
プロキシ機能部２１は、応答メッセージに含まれていた「接頭子＋識別子＋トークン＋接尾子」を、復元により得られたデータに置き換え、当該置き換えを行った応答メッセージを利用者端末１０に転送する。
【００５１】
利用者端末１０は、見かけ上は中継装置２０を介さない場合と同様に、アプリケーションサーバ３０から受信したデータを表示する。
【００５２】
なお、接頭子・接尾子等をトークンに付与することは一例に過ぎず、必須ではない。例えば、トークンの位置を示す情報をメッセージ中に含めることで、接頭子・接尾子を用いることなくトークンを取得することが可能である。
【００５３】
（検索処理について）
次に、本実施の形態における検索処理について説明する。まず、図８を参照して、手順の概要例を説明する。
【００５４】
例えば、利用者端末１０上に表示される検索キーワード入力画面から検索キーワードが入力され、検索キーワードを含む検索要求がプロキシ機能部２１に送信される（ステップ１０１）。プロキシ機能部２１は、検索要求をアプリケーションサーバ３０に転送する（ステップ１０２）。
【００５５】
アプリケーションサーバ３０は、トークン化機能部２３と通信することで検索キーワードに対応するトークンの取得を行い（ステップ１０３）、当該トークンを用いて検索を実施し、検索結果をプロキシ機能部２１に返却する（ステップ１０４）。
【００５６】
プロキシ機能部２１は、検索結果として受信したトークンの復元をトークン化機能部２３に要求し（ステップ１０５）、トークン化機能部２３から平文データを受け取る（ステップ１０６）。なお、トークンの復元動作自体は、上記の応答メッセージ受信時においてトークンの復元を行う際の動作と同じである。プロキシ機能部２１は、当該平文データを含む検索結果を利用者端末１０に返す（ステップ１０７）。
【００５７】
上記の処理において、元データに関しては、全てトークン化機能部２３内でのみ利用されて、アプリケーションサーバ３０には通知されない。アプリケーションサーバ３０から中継装置２０に返される検索結果はプロキシ機能部２１を通過することで透過的に復元され、利用者端末１０に返却される。
【００５８】
以下、検索方式の例についてより詳細に説明する。以下では、検索方式１、検索方式２、検索方式３の３つの例について説明する。以下の説明におけるアプリケーションサーバ３０の動作は、サービス提供部３１により実行されるものである。
【００５９】
（検索方式１）
図９を参照して検索方式１を説明する。利用者端末１０から検索キーワード：田中、属性：名前（「田中（属性：名前）」と記述）で検索要求が送信される（ステップ２０１）。ここでの「属性」は、「名前」、「住所」等の項目に相当する。プロキシ機能部２１は、当該検索要求を受信し、アプリケーションサーバ３０に転送する（ステップ２０２）。
【００６０】
アプリケーションサーバ３０は、トークン化機能部２３に対して「田中（属性：名前）」に関連するトークンを検索する指示を送る（ステップ２０３）。トークン化機能部２３は、「田中（属性：名前）」に関連するトークン「ＡＳＤＦＧＨ，ＱＷＥＲＴ」を取得し、アプリケーションサーバ３０に返す（ステップ２０４）。
【００６１】
アプリケーションサーバ３０は、「ＡＳＤＦＧＨ，ＱＷＥＲＴ」でデータ格納部３２内の情報を検索し（ステップ２０５）、検索結果をプロキシ機能部２１に返す（ステップ２０６）。プロキシ機能部２１は、トークン化機能部２３を用いて、アプリケーションサーバ３０からのレスポンスデータに含まれるトークンを元データに復元し（ステップ２０７）、復元したデータを含む検索結果を利用者端末１０に返す（ステップ２０８）。
【００６２】
上記のように、アプリケーションサーバ３０は、トークン化機能部２３から検索キーワードに関連するトークンを取得し、そのデータをもとに検索を実施する。トークン化機能部２３はトークンに関連する属性情報（項目情報）を持ち、その属性情報でフィルタすることが可能である。
【００６３】
次に、図１０を参照して、検索方式１の処理シーケンスを説明する。図１０に示す例では、「田中（属性：名前）」の検索を行うことを想定している。また、田中に関連するトークンに係る情報として、「"ＡＡＡＡ"＝＞平文：田中二郎  属性：名前」、「"ＢＢＢＢ"＝＞平文：大田中子  属性：名前」、「"ＣＣＣＣ"＝＞平文：大田中市  属性：住所」があるものとする。
【００６４】
利用者端末１０から通常のＨＴＴＰリクエストとして検索要求がプロキシ機能部２１に送られる（ステップ３０１）。プロキシ機能部２１は、検索要求をアプリケーションサーバ３０に転送する（ステップ３０２）。
【００６５】
アプリケーションサーバ３０は、検索キーワードに関連するトークン一覧を取得するために、まず、トークン取得要求として検索キーワード「田中（属性：名前）」をトークン化機能部２３に渡す（ステップ３０３）。トークン化機能部２３は、トークン一覧を抽出し、トークン一覧をアプリケーションサーバ３０に渡す（ステップ３０４〜３０６）。
【００６６】
アプリケーションサーバ３０は、トークン化機能部２３から受信したトークンを検索キーワードとして検索を実行し（ステップ３０７、３０８）、トークンを含む検索結果画面のデータをプロキシ機能部２１に送信する（ステップ３０９）。
【００６７】
プロキシ機能部２１は、検索結果からトークンを抽出し、トークン化機能部２３を用いてトークンを元データに復元する処理（ステップ３１０〜３１３）をトークン分だけ繰り返し行う。プロキシ機能部２１は、トークンから復元されたデータを含む検索結果画面を利用者端末１０に送信する（ステップ３１４）。
【００６８】
検索方式１では、検索処理がアプリケーションサーバ３０内で実施されるため、アプリケーションサーバ３０が提供するアプリケーションサービス通常利用時と同等の性能で検索結果を得ることができる。ただし、アプリケーションサービスのコールアウト数制限などに影響を受ける可能性がある。また、アプリケーションサービス上に検索アプリケーション（検索機能・表示機能等）を実装する必要がある。
【００６９】
上記の点から、検索方式１は、単一のテーブルに対する検索やシンプルな検索パターンで、かつ、検索性能が求められる場合の適用に適していると考えられる。ただし、適用先はこれに限定されるわけではない。
【００７０】
（検索方式２）
図１１を参照して検索方式２を説明する。検索方式２では、アプリケーションサーバ３０において検索ＡＰＩが実装され、トークン化機能部２３がそのＡＰＩを繰り返し呼び出すことで検索を実施し、検索結果を統合してアプリケーションサーバ３０に返す。
【００７１】
図１１の例において、利用者端末１０から検索キーワード：田中、属性：すべて（「田中（属性：すべて）」と記述）で検索要求が送信される（ステップ４０１）。プロキシ機能部２１は、当該検索要求を受信し、アプリケーションサーバ３０に転送する（ステップ４０２）。
【００７２】
アプリケーションサーバ３０は、トークン化機能部２３に対して「田中（属性：すべて）」の検索を指示する（ステップ４０３）。トークン化機能部２３は、アプリケーションサーバ３０の検索ＡＰＩを呼び出すことにより、検索指示に該当するトークンと属性での検索をアプリケーションサーバ３０に指示することにより、検索結果を取得する（ステップ４０４）。一例として、図１１の例では、属性：名前の田中に該当するトークンを用いたＡＰＩ呼び出しと、属性：住所の田中に該当するトークンを用いたＡＰＩ呼び出しとが実行されることにより、アプリケーションサーバ３０で当該ＡＰＩのプログラムによる検索が実行され、トークン化機能部２３は、各検索結果を受信し、蓄積する。
【００７３】
トークン化機能部２３は、蓄積した検索結果を統合してアプリケーションサーバ３０に返す（ステップ４０５）。
【００７４】
アプリケーションサーバ３０は、検索結果をプロキシ機能部２１に返す（ステップ４０６）。プロキシ機能部２１は、トークン化機能部２３を用いて、アプリケーションサーバ３０からのレスポンスデータに含まれるトークンを元データに復元し（ステップ４０７）、復元したデータを含む検索結果を利用者端末１０に返す（ステップ４０８）。
【００７５】
次に、図１２を参照して、検索方式２の処理シーケンスを説明する。図１２に示す例では、「田中（属性：名前）」の検索を行うことを想定している。また、田中に関連するトークンに係る情報として、「"ＡＡＡＡ"＝＞平文：田中二郎  属性：名前」、「"ＢＢＢＢ"＝＞平文：大田中子  属性：名前」、「"ＣＣＣＣ"＝＞平文：大田中市  属性：住所」があるものとする。
【００７６】
利用者端末１０から通常のＨＴＴＰリクエストとして検索要求がプロキシ機能部２１に送られる（ステップ５０１）。プロキシ機能部２１は、検索要求をアプリケーションサーバ３０に転送する（ステップ５０２）。アプリケーションサーバ３０は、検索要求をトークン化機能部２３に送信する（ステップ５０３）。
【００７７】
トークン化機能部２３は、検索キーワード及び属性に対応するトークンの一覧を取得する（ステップ５０４〜５０５）。そして、トークン化機能部２３は、アプリケーションサーバ３０に対して、取得されたトークンを検索キーワードとする検索ＡＰＩを呼び出す（ステップ５０６）。ここで属性：名前を指定してもよいし、指定しなくてもよい。指定しない場合、トークン化機能部２３は、アプリケーションサーバ３０から返される検索結果から返される検索結果から、属性：名前でマッチした検索結果を使用すればよい。
【００７８】
アプリケーションサーバ３０は、検索ＡＰＩを実行することで検索を行って、マッチしたキーワード（トークン）毎の検索結果をトークン化機能部２３に返す（ステップ５０７〜５０９）。アプリケーションサーバ３０において検索対象とするテーブルが複数ある場合、対象テーブルの数だけ上記処理が繰り返し行われる。
【００７９】
トークン化機能部２３は、検索結果を統合し、統合により得られた検索結果データをアプリケーションサーバ３０に返す（ステップ５１０〜５１３）。統合とは、例えば、検索結果１「名前："ＡＡＡＡ"、住所：......」と、検索結果２「名前："ＢＢＢＢ"、住所：......」が得られた場合に、「名前："ＡＡＡＡ"、住所：......」と「名前："ＢＢＢＢ"、住所：......」の両方を検索結果に含めることである。
【００８０】
アプリケーションサーバ３０は、トークンを含む検索結果画面のデータをプロキシ機能部２１に送信する（ステップ５１３）。
【００８１】
プロキシ機能部２１は、検索結果からトークンを抽出し、トークン化機能部２３を用いてトークンを元データに復元する処理（ステップ５１４〜５１７）をトークン分だけ繰り返し行う。プロキシ機能部２１は、トークンから復元されたデータを含む検索結果画面を利用者端末１０に送信する（ステップ５１８）。
【００８２】
検索方式２では、ＡＰＩコールを利用するため、アプリケーションサーバ３０内のコールアウト制約等に影響されず検索が実施できる。検索方式２は、複雑なパターンや検索テーブルを多く対象とするような検索機能を求められる場合の適用に適していると考えられる。ただし、適用先はこれに限定されるわけではない。
【００８３】
（検索方式３）
次に、図１３を参照して検索方式３を説明する。検索方式３では、中継装置２０において、検索要求電文の中の検索キーワードを抽出し、トークン情報に置き換えることで検索を実施する。
【００８４】
利用者端末１０から検索キーワード：田中で検索要求が送信される（ステップ６０１）。プロキシ機能部２１は、トークン化機能部２３を用いて、「田中」に関連するトークンを取得する（ステップ６０２、６０３）。
【００８５】
プロキシ機能部２１は、取得したトークンを用いて、検索要求電文の検索キーワードをトークンに書き換えて、アプリケーションサーバ３０に検索要求を送信する（ステップ６０４）。
【００８６】
アプリケーションサーバ３０は、既存の検索機能を用いて検索を行って、検索結果をプロキシ機能部２１に返す（ステップ６０５）。プロキシ機能部２１は、トークン化機能部２３を用いて、アプリケーションサーバ３０からのレスポンスデータに含まれるトークンを元データに復元し（ステップ６０６）、復元したデータを含む検索結果を利用者端末１０に返す（ステップ６０７）。
【００８７】
次に、図１４を参照して、検索方式３の処理シーケンスを説明する。図１４に示す例では、「田中」の検索を行うことを想定している。本例では、アプリケーションサービスが属性フィルタを使用できないことを想定している。また、田中に関連するトークンに係る情報として、「"ＡＡＡＡ"＝＞平文：田中二郎  属性：名前」、「"ＢＢＢＢ"＝＞平文：大田中子  属性：名前」、「"ＣＣＣＣ"＝＞平文：大田中市  属性：住所」があるものとする。
【００８８】
利用者端末１０から通常のＨＴＴＰリクエストとして検索要求がプロキシ機能部２１に送られる（ステップ７０１）。プロキシ機能部２１は、検索要求から検索キーワードを抽出する（ステップ７０２〜７０３）。そして、プロキシ機能部２１は、トークン化機能部２３にトークン取得要求を送信する（ステップ７０４）ことで、検索キーワードに対応するトークンを取得する（ステップ７０５〜７０７）。
【００８９】
プロキシ機能部２１は、検索要求の検索キーワードをトークンに書き換えて（ステップ７０８）、検索要求をアプリケーションサーバ３０に送信する（ステップ７１０）。
【００９０】
アプリケーションサーバ３０は、検索を実行し、トークンを含む検索結果画面のデータをプロキシ機能部２１に送信する（ステップ７１１〜７１３）。
【００９１】
プロキシ機能部２１は、検索結果からトークンを抽出し、トークン化機能部２３を用いてトークンを元データに復元する処理（ステップ７１４〜７１５）をトークン分だけ繰り返し行う。プロキシ機能部２１は、トークンから復元されたデータを含む検索結果画面を利用者端末１０に送信する（ステップ７１６）。
【００９２】
検索方式３では、アプリケーションサーバ３０内で用意されている既存の検索画面を利用することができる。検索方式３は、１対１トークン等、検索キーワード数を抑えることが可能な一意なデータ等を検索する場合の適用や、追加での機能構築が難しいアプリケーションサービスへの適用に適すると考えられる。ただし、これらに限定されるわけではない。
【００９３】
以上、説明したように、本実施の形態によれば、アプリケーションサーバと通信ネットワークを介して接続する機能を備えるデータ符号化装置であって、利用者端末から受信した平データを符号化データに変換し、当該符号化データを前記アプリケーションサーバに送信する符号化手段と、平データと符号化データとを対応付けて格納するデータ格納手段と、前記アプリケーションサーバから符号化データを受信し、前記データ格納手段を参照することにより、当該符号化データを平データに変換し、当該平データを前記利用者端末に送信する復元手段とを備えることを特徴とするデータ符号化装置が提供される。
【００９４】
前記符号化手段は、平データの特性に応じて、当該平データから変換される符号化データの種別を決定することとしてもよい。
【００９５】
前記符号化手段は、前記符号化データと当該符号化データの存在を示す符号化データ存在識別情報とを含む符号化データ存在識別情報付きデータを前記アプリケーションサーバに送信し、前記復元手段は、前記アプリケーションサーバから、前記符号化データ存在識別情報付きデータを含むデータを受信した場合に、前記符号データ存在識別情報に基づき符号化データを抽出し、当該符号化データを変換することにより平データを取得することとしてもよい。
【００９６】
前記データ符号化装置は、前記利用者端末から受信した検索要求を前記アプリケーションサーバに送信し、当該アプリケーションサーバから当該検索要求に含まれる検索キーワードを受信した場合に、前記データ格納手段から当該検索キーワードに対応する符号化データを抽出し、当該符号化データを検索キーワードとする検索を前記アプリケーションサーバに要求する手段を備えることとしてもよい。
【００９７】
前記データ符号化装置は、前記利用者端末から検索要求を受信した場合に、前記データ格納手段を参照することにより、当該検索要求に含まれる検索キーワードを符号化データに置き換え、当該置き換えを行った検索要求を前記アプリケーションサーバに送信する手段を備えることとしてもよい。
【００９８】
また、  前記データ符号化装置は、前記アプリケーションサーバから検索結果を受信した場合に、当該検索結果に含まれる符号化データを平データに復元し、当該復元された平データを含む検索結果を前記利用者端末に送信する手段を備えることとしてもよい。
【００９９】
上記構成を備えるデータ符号化装置により、データを符号化し、符号化データをアプリケーションサーバに格納するとともに、符号化データから適切に元データを復元することを可能とする技術が提供される。また、符号化データとして格納されたデータに対する検索を適切に行うことが可能となる。
【０１００】
（第１項）
アプリケーションサーバと通信ネットワークを介して接続する機能を備えるデータ符号化装置であって、
利用者端末から受信した平データを符号化データに変換し、当該符号化データを前記アプリケーションサーバに送信する符号化手段と、
平データと符号化データとを対応付けて格納するデータ格納手段と、
前記アプリケーションサーバから符号化データを受信し、前記データ格納手段を参照することにより、当該符号化データを平データに変換し、当該平データを前記利用者端末に送信する復元手段と
を備えることを特徴とするデータ符号化装置。
（第２項）
前記符号化手段は、平データの特性に応じて、当該平データから変換される符号化データの種別を決定する
ことを特徴とする第１項に記載のデータ符号化装置。
（第３項）
前記符号化手段は、前記符号化データと当該符号化データの存在を示す符号化データ存在識別情報とを含む符号化データ存在識別情報付きデータを前記アプリケーションサーバに送信し、
前記復元手段は、前記アプリケーションサーバから、前記符号化データ存在識別情報付きデータを含むデータを受信した場合に、前記符号データ存在識別情報に基づき符号化データを抽出し、当該符号化データを変換することにより平データを取得する
ことを特徴とする第１項又は第２項に記載のデータ符号化装置。
（第４項）
前記利用者端末から受信した検索要求を前記アプリケーションサーバに送信し、当該アプリケーションサーバから当該検索要求に含まれる検索キーワードを受信した場合に、前記データ格納手段から当該検索キーワードに対応する符号化データを抽出し、当該符号化データを検索キーワードとする検索を前記アプリケーションサーバに要求する手段
を備えることを特徴とする第１項ないし第３項のうちいずれか１項に記載のデータ符号化装置。
（第５項）
前記利用者端末から検索要求を受信した場合に、前記データ格納手段を参照することにより、当該検索要求に含まれる検索キーワードを符号化データに置き換え、当該置き換えを行った検索要求を前記アプリケーションサーバに送信する手段
を備えることを特徴とする第１項ないし第３項のうちいずれか１項に記載のデータ符号化装置。
（第６項）
前記アプリケーションサーバから検索結果を受信した場合に、当該検索結果に含まれる符号化データを平データに復元し、当該復元された平データを含む検索結果を前記利用者端末に送信する手段
を備えることを特徴とする第４項又は第５項に記載のデータ符号化装置。
（第７項）
アプリケーションサーバと通信ネットワークを介して接続する機能を備えるデータ符号化装置が実行するデータ符号化方法であって、
利用者端末から受信した平データを符号化データに変換し、当該符号化データを前記アプリケーションサーバに送信するステップと、
前記アプリケーションサーバから符号化データを受信し、平データと符号化データとを対応付けて格納するデータ格納手段を参照することにより、前記受信した符号化データを平データに変換し、当該平データを前記利用者端末に送信するステップと
を備えることを特徴とするデータ符号化方法。
（第８項）
コンピュータを、第１項ないし第６項のうちいずれか１項に記載のデータ符号化装置における各手段として機能させるためのプログラム。
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【０１０１】
１０  利用者端末
２０  中継装置
３０  アプリケーションサーバ
４０  通信ネットワーク
２１  プロキシ機能部
２２  動作条件情報格納部
２３  トークン化機能部
２４  データ格納部
３１  サービス提供部
３２  データ格納部
【図１】
0006543472.tif 000002
【図２】
0006543472.tif 000003
【図３】
0006543472.tif 000004
【図４】
0006543472.tif 000005
【図５】
0006543472.tif 000006
【図６】
0006543472.tif 000007
【図７】
0006543472.tif 000008
【図８】
0006543472.tif 000009
【図９】
0006543472.tif 000010
【図１０】
0006543472.tif 000011
【図１１】
0006543472.tif 000012
【図１２】
0006543472.tif 000013
【図１３】
0006543472.tif 000014
【図１４】
0006543472.tif 000015