特許第6543472号(P6543472)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ エヌ・ティ・ティ・ソフトウェア株式会社の特許一覧

特許6543472データ符号化装置、データ符号化方法、及びプログラム
<>
  • 特許6543472-データ符号化装置、データ符号化方法、及びプログラム 図000002
  • 特許6543472-データ符号化装置、データ符号化方法、及びプログラム 図000003
  • 特許6543472-データ符号化装置、データ符号化方法、及びプログラム 図000004
  • 特許6543472-データ符号化装置、データ符号化方法、及びプログラム 図000005
  • 特許6543472-データ符号化装置、データ符号化方法、及びプログラム 図000006
  • 特許6543472-データ符号化装置、データ符号化方法、及びプログラム 図000007
  • 特許6543472-データ符号化装置、データ符号化方法、及びプログラム 図000008
  • 特許6543472-データ符号化装置、データ符号化方法、及びプログラム 図000009
  • 特許6543472-データ符号化装置、データ符号化方法、及びプログラム 図000010
  • 特許6543472-データ符号化装置、データ符号化方法、及びプログラム 図000011
  • 特許6543472-データ符号化装置、データ符号化方法、及びプログラム 図000012
  • 特許6543472-データ符号化装置、データ符号化方法、及びプログラム 図000013
  • 特許6543472-データ符号化装置、データ符号化方法、及びプログラム 図000014
  • 特許6543472-データ符号化装置、データ符号化方法、及びプログラム 図000015
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6543472
(24)【登録日】2019年6月21日
(45)【発行日】2019年7月10日
(54)【発明の名称】データ符号化装置、データ符号化方法、及びプログラム
(51)【国際特許分類】
   G09C 1/00 20060101AFI20190628BHJP
   G06F 21/62 20130101ALI20190628BHJP
   G06F 17/40 20060101ALI20190628BHJP
【FI】
   G09C1/00 660D
   G06F21/62 345
   G06F17/40 320A
【請求項の数】7
【全頁数】19
(21)【出願番号】特願2015-9648(P2015-9648)
(22)【出願日】2015年1月21日
(65)【公開番号】特開2016-133729(P2016-133729A)
(43)【公開日】2016年7月25日
【審査請求日】2017年12月25日
(73)【特許権者】
【識別番号】000102717
【氏名又は名称】NTTテクノクロス株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】山岡 智和
(72)【発明者】
【氏名】諸星 隆輔
【審査官】 青木 重徳
(56)【参考文献】
【文献】 特開2008−177821(JP,A)
【文献】 特開2011−065334(JP,A)
【文献】 特開2014−194662(JP,A)
【文献】 米国特許出願公開第2014/0149733(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
G06F 17/40
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
アプリケーションサーバと通信ネットワークを介して接続する機能を備えるデータ符号化装置であって、
利用者端末から受信した平データの特性に応じて、符号化処理の種別を決定し、当該種別に基づいて前記平データを符号化データに変換し、当該符号化データを前記アプリケーションサーバに送信する符号化手段と、
平データと符号化データとを対応付けて格納するデータ格納手段と、
前記アプリケーションサーバから符号化データを受信し、前記データ格納手段を参照することにより、当該符号化データを平データに変換し、当該平データを前記利用者端末に送信する復元手段とを備え、
前記種別は、1つの平データに対して1つの符号化データを生成する種別、1つの平データに対して所定の個数を上限とする数の符号化データを生成する種別、及び1つの平データに対して生成の度に異なる符号化データを生成する種別のうちのいずれかの種別である
ことを特徴とするデータ符号化装置。
【請求項2】
前記符号化手段は、前記符号化データと当該符号化データの存在を示す符号化データ存在識別情報とを含む符号化データ存在識別情報付きデータを前記アプリケーションサーバに送信し、
前記復元手段は、前記アプリケーションサーバから、前記符号化データ存在識別情報付きデータを含むデータを受信した場合に、前記符号化データ存在識別情報に基づき符号化データを抽出し、当該符号化データを変換することにより平データを取得する
ことを特徴とする請求項1に記載のデータ符号化装置。
【請求項3】
前記利用者端末から受信した検索要求を前記アプリケーションサーバに送信し、当該アプリケーションサーバから当該検索要求に含まれる検索キーワードを受信した場合に、前記データ格納手段から当該検索キーワードに対応する符号化データを抽出し、当該符号化データを検索キーワードとする検索を前記アプリケーションサーバに要求する手段
を備えることを特徴とする請求項1又は2に記載のデータ符号化装置。
【請求項4】
前記利用者端末から検索要求を受信した場合に、前記データ格納手段を参照することにより、当該検索要求に含まれる検索キーワードを符号化データに置き換え、当該置き換えを行った検索要求を前記アプリケーションサーバに送信する手段
を備えることを特徴とする請求項1又は2に記載のデータ符号化装置。
【請求項5】
前記アプリケーションサーバから検索結果を受信した場合に、当該検索結果に含まれる符号化データを平データに復元し、当該復元された平データを含む検索結果を前記利用者端末に送信する手段
を備えることを特徴とする請求項又はに記載のデータ符号化装置。
【請求項6】
アプリケーションサーバと通信ネットワークを介して接続する機能を備えるデータ符号化装置が実行するデータ符号化方法であって、
利用者端末から受信した平データの特性に応じて、符号化処理の種別を決定し、当該種別に基づいて前記平データを符号化データに変換し、当該符号化データを前記アプリケーションサーバに送信するステップと、
前記アプリケーションサーバから符号化データを受信し、平データと符号化データとを対応付けて格納するデータ格納手段を参照することにより、前記受信した符号化データを平データに変換し、当該平データを前記利用者端末に送信するステップとを備え
前記種別は、1つの平データに対して1つの符号化データを生成する種別、1つの平データに対して所定の個数を上限とする数の符号化データを生成する種別、及び1つの平データに対して生成の度に異なる符号化データを生成する種別のうちのいずれかの種別である
ことを特徴とするデータ符号化方法。
【請求項7】
コンピュータを、請求項1ないしのうちいずれか1項に記載のデータ符号化装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、トークン化したデータをアプリケーションサーバに格納する技術に関連するものである。
【背景技術】
【0002】
インターネット上のアプリケーションサーバから顧客データ管理アプリケーション等の各種アプリケーションサービスが提供されている。このようなサービスでは、サービス利用者(主に企業)が自身でサーバ構築、アプリケーションのインストール等をすることなく、すぐにサービスを受けられる利点がある。
【0003】
但し、これらサービスは、サービス利用者以外の第三者(サービス提供者)により提供されるため、サービス利用者がサーバに格納する顧客データ等を自ら管理できない。そのため、サービス利用者は、サービス提供者による情報漏えいを防ぐことができないという問題がある。この問題に対処する技術の例として、暗号化したデータをサービス提供者のサーバに格納する技術が開示されている(例えば特許文献1)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2013−25361号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
暗号化では元データと暗号化データとの間に数学的な関係があり、解析等により暗号化データが解読されてしまう可能性がある。また、暗号化でデータサイズやデータ形式が変わるという欠点もある。
上記のような暗号化の欠点に鑑みて、新しいデータ保護技術として「トークナイゼーション」と呼ばれる技術が使用されている。トークナイゼーション技術は、例えばクレジットカード情報のセキュリティ強化に使用されており、元データ(例:クレジットカード番号)の一部又は全部を別データ(例:同じ桁数の全く異なる数列)に置き換える技術である。置き換えた別データをトークンと呼ぶ。なお、トークン化のことをより一般的に「符号化」と呼び、別データを「符号化データ」と呼ぶこととしてもよい。また、元のデータを「平データ」と呼んでもよい。トークナイゼーションでは、トークンに数学的な解析処理がなされて復号化されてしまうリスクがない。また、たとえトークンが漏えいしたとしても、トークン自体は無意味なデータに過ぎないため、サービス利用者に被害を及ぼさない。
【0006】
トークナイゼーション技術を、背景技術で説明したアプリケーションサービスに適用することが考えられるが、このようなアプリケーションサービスにトークナイゼーション技術を適用した従来技術は見当たらない。従って、適切にトークンをアプリケーションサーバに格納し、復元を行うための新たな仕組みが必要である。
【0007】
また、トークナイゼーション技術を使用する場合、アプリケーションサーバにはトークンが格納されるため、アプリケーションサーバに対して元データを指定した検索を行うことができないという問題もある。
【0008】
本発明は上記の点に鑑みてなされたものであり、データを符号化し、符号化データをアプリケーションサーバに格納するとともに、符号化データから適切に元データを復元することを可能とする技術を提供することを目的とする。また、本発明は、符号化データとして格納されたデータに対する検索を適切に行うことを可能とする技術を提供することを目的としている。
【課題を解決するための手段】
【0009】
本発明の実施の形態によれば、アプリケーションサーバと通信ネットワークを介して接続する機能を備えるデータ符号化装置であって、
利用者端末から受信した平データの特性に応じて、符号化処理の種別を決定し、当該種別に基づいて前記平データを符号化データに変換し、当該符号化データを前記アプリケーションサーバに送信する符号化手段と、
平データと符号化データとを対応付けて格納するデータ格納手段と、
前記アプリケーションサーバから符号化データを受信し、前記データ格納手段を参照することにより、当該符号化データを平データに変換し、当該平データを前記利用者端末に送信する復元手段とを備え、
前記種別は、1つの平データに対して1つの符号化データを生成する種別、1つの平データに対して所定の個数を上限とする数の符号化データを生成する種別、及び1つの平データに対して生成の度に異なる符号化データを生成する種別のうちのいずれかの種別である
ことを特徴とするデータ符号化装置が提供される。
【0010】
また、本発明の実施の形態によれば、アプリケーションサーバと通信ネットワークを介して接続する機能を備えるデータ符号化装置が実行するデータ符号化方法であって、
利用者端末から受信した平データの特性に応じて、符号化処理の種別を決定し、当該種別に基づいて前記平データを符号化データに変換し、当該符号化データを前記アプリケーションサーバに送信するステップと、
前記アプリケーションサーバから符号化データを受信し、平データと符号化データとを対応付けて格納するデータ格納手段を参照することにより、前記受信した符号化データを平データに変換し、当該平データを前記利用者端末に送信するステップとを備え
前記種別は、1つの平データに対して1つの符号化データを生成する種別、1つの平データに対して所定の個数を上限とする数の符号化データを生成する種別、及び1つの平データに対して生成の度に異なる符号化データを生成する種別のうちのいずれかの種別である
ことを特徴とするデータ符号化方法が提供される。
【発明の効果】
【0011】
本発明の実施の形態により、データを符号化し、符号化データをアプリケーションサーバに格納するとともに、符号化データから適切に元データを復元することを可能とする技術を提供することができる。
【0012】
また、検索に係る手段を備えることで、符号化データとして格納されたデータに対する検索を適切に行うことが可能となる。
【図面の簡単な説明】
【0013】
図1】本発明の実施の形態に係るシステムの全体構成図である。
図2】アプリケーションサーバ30の機能構成図である。
図3】データ格納部32に格納されるテーブルデータの一例を示す図である。
図4】中継装置20の機能構成及び動作概要を説明するための図である。
図5】動作条件情報の項目例を示す図である。
図6】動作条件テーブルの例を示す図である。
図7】平文データがトークン化され、トークンに識別子、接頭子、接尾子が付与された例を示す図である。
図8】検索処理の概要手順を説明するための図である。
図9】検索方式1の概要を説明するための図である。
図10】検索方式1の詳細手順を説明するためのシーケンス図である。
図11】検索方式2の概要を説明するための図である。
図12】検索方式2の詳細手順を説明するためのシーケンス図である。
図13】検索方式3の概要を説明するための図である。
図14】検索方式3の詳細手順を説明するためのシーケンス図である。
【発明を実施するための形態】
【0014】
以下、図面を参照して本発明の実施の形態を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。例えば、本実施の形態では、利用者端末10とアプリケーションサーバ30間で、中継装置20を介して、HTTPによりテキストデータ(HTML文書等)を送受信することを想定しているが、プロトコルはHTTPに限られるわけではない。
【0015】
(システム構成、動作概要)
図1に、本発明の実施の形態に係るシステムの全体構成図を示す。図1に示すように、本実施の形態のシステムは、利用者端末10、中継装置20、及びアプリケーションサーバ30が、通信ネットワーク40で接続された構成を有する。図1には、利用者端末10、中継装置20、及びアプリケーションサーバ30がそれぞれ1つづつ示されているが、これは説明の便宜上のものであり、それぞれが複数であってもよい。
【0016】
本実施の形態における通信ネットワーク40は例えばインターネットであるが、本発明はどのような通信ネットワークにおいても適用可能である。利用者端末10は例えばWebブラウザを備えたPC(パーソナルコンピュータ)やスマートフォン等である。
【0017】
中継装置20は、本発明に係るデータ符号化装置の一実施形態に係る装置であり、詳細動作は後述するが、概して、利用者端末10から受信した要求メッセージに含まれるデータを所定の条件に基づきトークン化して、当該要求メッセージをアプリケーションサーバ30に送信し、当該データをアプリケーションサーバ30に格納する。また、利用者端末10から受信した検索要求に基づいて、アプリケーションサーバ30に格納されたトークンに対する検索処理を制御して、トークンとして得られた検索結果に対するトークンの元データへの復元を行ってから検索結果を利用者端末10に返す。なお、「トークン化」は、「符号化」の一例である。
【0018】
アプリケーションサーバ30は、クラウドサービスにおける仮想的なサーバであってもよいし、物理的なサーバであってもよい。図2に、アプリケーションサーバ30の機能構成例を示す。図2に示すように、アプリケーションサーバ30は、サービス提供部31、及びデータ格納部32を含む。
【0019】
サービス提供部31は、顧客データ管理サービス等のアプリケーションサービスを提供する機能部である。顧客データ管理サービスの場合、サービス提供部31は、一般に、端末から顧客データを受信し、顧客データを所定の形式でデータ格納部32に格納(登録)する。また、サービス提供部31は、端末から検索クエリーデータとともに検索要求を受信した場合には、当該検索クエリーデータに該当するデータを検索して当該端末に提供する機能も有する。このような検索機能は、アプリケーションの1つとして提供されてもよいし、検索API(検索プログラム)として提供されてもよい。
【0020】
本実施の形態では、サービス提供部31は、このようにデータの登録、検索等を行う機能部である。なお、本実施の形態では、トークナイゼーションにおける効率的な検索方式を採用しており、それについては後に詳細に説明する。
【0021】
図3に、アプリケーションサーバ30のデータ格納部32に格納されるテーブルデータの一例を示す。図3に示す例では、データ格納部32には、項目(氏名、住所、等)毎に、その項目に該当するデータがテーブルとして格納される。
【0022】
図4は、中継装置20の機能構成及び動作概要を説明するための図である。図4に示すように、中継装置20は、プロキシ機能部21、動作条件情報格納部22、トークン化機能部23、データ格納部24を有する。
【0023】
プロキシ機能部21は、リバースプロキシ・フォーワードプロキシの機能を持ち、アプリケーションサーバ30との通信を管理し、リクエストデータのトークン化、レスポンスデータの平文化等を実施する。トークン化に関する実際の処理はトークン化機能部23のトークン化機能を利用する(呼び出す)ことで実施する。また、トークン化・平文化に際しては、動作条件情報格納部22に格納された動作条件情報を参照し、動作条件に従って処理を実行する。更に、プロキシ機能部21は、検索要求のアプリケーションサーバ30への転送や、アプリケーションサーバ30から返される検索結果に含まれるトークンを平文に復元して利用者端末10に返却する等の処理も実施する。
【0024】
トークン化機能部23は、平文のトークン化、トークンの平文化、トークン情報のデータ格納部24への蓄積、検索処理等を実施する。
【0025】
図4を参照して、利用者端末10からアプリケーションサーバ30にデータ登録を行う際の動作概要例を説明する。
【0026】
例えば、利用者端末10がアプリケーションサーバ30にアクセスして、入力画面が表示され、当該画面上で図4のAに示すようにユーザによりデータ入力がなされ、入力されたデータが中継装置20のプロキシ機能部21に送信される(ステップ1)。
【0027】
プロキシ機能部21は、動作条件に従って、トークン化機能部23に対し、元データからトークンを生成するよう指示する(ステップ2)。指示を受けたトークン化機能部23は、元データをトークン化するとともに、図4のBに示すように、元データとトークンとを対応付けてデータ格納部24に格納する。Bにおいてトークンに引かれた下線は、元データからの変更箇所を示している。
【0028】
トークン化機能部23は、生成したトークンをプロキシ機能部21に返す(ステップ3)。プロキシ機能部21は、図4のCに示すように、利用者端末10から受信した入力データをトークンに置き換え、当該置き換えを行った情報をアプリケーションサーバ30に送信する(ステップ4)。アプリケーションサーバ30は、当該情報をデータ格納部32に格納する。なお、より詳細には、プロキシ機能部21は、トークンに対し、接頭子、識別子、接尾子を付加し、当該付加が行われたデータをアプリケーションサーバ30に転送し、アプリケーションサーバ30は当該データを格納する。これについては後述する。また、プロキシ機能部21、トークン化機能部23、及び、アプリケーションサーバ30のサービス提供部31は、連携して検索要求に対する検索処理を実施する。検索処理の詳細は後述する。
【0029】
本実施の形態に係る中継装置20は、1つ又は複数のコンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、中継装置20が有する機能は、当該コンピュータに内蔵されるCPUやメモリ、ハードディスクなどのハードウェア資源を用いて、中継装置20で実施される処理に対応するプログラムを実行することによって実現することが可能である。また、上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【0030】
また、中継装置20におけるプロキシ機能部21・動作条件情報格納部22を1つのサーバ(コンピュータ)で実現し、トークン化機能部23・データ格納部24を別のサーバで実現することとしてもよい。
【0031】
また、本実施の形態に係るアプリケーションサーバ30は、1つ又は複数のコンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、アプリケーションサーバ30が有する機能は、当該コンピュータに内蔵されるCPUやメモリ、ハードディスクなどのハードウェア資源を用いて、中継装置20で実施される処理に対応するプログラムを実行することによって実現することが可能である。また、上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【0032】
(トークンパターンについて)
本実施の形態において、トークン化機能部23が実行するトークン化処理は特定の処理内容に限られないが、一例として、「1:1 トークン」、「1:N トークン」、「1:∞ トークン」のいずれかのパターンでトークン化を行うことが可能である。
【0033】
「1:1 トークン」は、元データに対して一意のトークンを生成するパターンである。「1:1 トークン」は、例えば、住所や長文など、複雑で検索性が求められる情報に利用することができる。
【0034】
「1:N トークン」は、元データに対して所定の個数(N)分を上限としたトークンを生成するパターンである。例えば、都道府県や苗字など、母集団が少なく1:1では予測が容易であるが検索性が求められる情報に利用することができる。
【0035】
「1:∞ トークン」は、元データに対して、生成する毎に異なるトークンを生成するパターンである。例えば、性別や血液型等、1:1では予測が容易であるが、検索性が求められない情報に利用することができる。
【0036】
どのデータに対してどのパターンを使用するかについては、例えば、動作条件情報格納部22に、項目(住所、名前、...の区別)と、使用するパターンとを対応付けて保持し、プロキシ機能部21が、要求メッセージの中のデータの項目を識別し、動作条件情報格納部22を参照して、当該項目に対するパターンを決定し、当該パターンでのトークン化を行うようにトークン化機能部23に指示する。すなわち、中継装置20は、平データの特性に応じて、変換する符号化データの種別を決定する機能を持つ。
【0037】
また、本実施の形態では、元データの種別に対応するトークン種別(トークンの文字列長、文字種、フォーマット、接頭子・接尾子等)が定められており、元データの種別(項目)に対応したトークン種別を使用する。上記パターンがトークン種別の1つとして規定されてもよい。
【0038】
(動作条件について)
前述したように、プロキシ機能部21は、動作条件情報格納部22に格納された動作条件情報に基づいて、トークン化処理の要否、トークン化処理を行う場合のトークンパターン、トークン種別等を判断する。本実施の形態における動作条件情報は、図5に示す項目に対応するデータからなる。
【0039】
ユーザIDは、アプリケーションサーバ30が提供するアプリケーションサービスのログインIDである。
【0040】
例えば、動作条件情報格納部22には、ユーザID毎に、図5において番号2、3、4で示す項目のデータからなるテーブル(動作条件テーブルと呼ぶ)が格納される。プロキシ機能部21は、利用者端末10からアプリケーションサーバ30へのログイン時に取得されるユーザIDに対応する動作条件テーブルのデータに基づいて動作を行う。動作条件テーブルの例を図6に示す。
【0041】
トークン化対象URLは、トークン化動作を有効とするURLである。例えば、URLはアプリケーションサーバ30が提供するアプリケーションサービスのデータ登録画面等の画面単位の要素に対応する。URLは利用者端末10から送信される要求メッセージに含まれており、プロキシ機能部21は要求メッセージから要求先のURLを抽出し、当該URLが動作条件テーブルにトークン化対象URLとして設定されている場合に、トークン化のための動作を行う。ただし、これはデータ登録時の動作である。当該URLが動作条件テーブルにトークン化対象URLとして設定されていなければ、プロキシ機能部21は要求メッセージをそのままアプリケーションサーバ30に転送する。
【0042】
トークン化対象項目は、トークン化の対象とするデータの項目である。この「項目」とは、例えば図3に示した項目A、項目B、...等の項目に相当する。本実施の形態では、HTMLのフォームにおけるInput要素のname属性によってトークン化対象を指定している。例えば「氏名」がトークン化対象項目として動作条件テーブルに設定されている場合、プロキシ機能部21は、要求メッセージからname属性として「氏名」を探し、name属性として「氏名」がある場合に、「氏名」に対応する入力データをトークン化対象と判定する。name属性によってトークン化対象を指定することは一例に過ぎない。他の属性、あるいは、データ自体の内容に基づいてトークン化対象を指定することとしてもよい。なお、データ自体の内容は、データの属性の一例である。
【0043】
また、プロキシ機能部21は、レスポンスデータに対して、接頭子・接尾子のパターンマッチングによりトークン化形式に該当するデータに対し、トークン化機能部23を用いて復元(デコード)処理を行って利用者端末10に送信する。データ形式はHTMLに限定されずテキスト形式であればXML、JSON等の形式でもよい。
【0044】
図6に示すように、トークン化対象項目毎にトークン化動作種別が設定されている。プロキシ機能部21は、トークン化対象項目に該当するデータに対し、対応するトークン化動作種別で指定されるトークン化動作をトークン化機能部23に指示することによりデータをトークン化する。より具体的には、本実施の形態では、該当項目に対応するトークン種別でのトークン化を行う。また、例えば、トークン化動作種別によりトークンパターンも指定され、当該トークンパターンでのトークン化を行うこととしてもよい。
【0045】
(トークン化時のデータ形式等について)
図7に、トークン化時のデータ形式を示す。プロキシ機能部21は、元データ(平文データ)のトークン化を行う際に、トークン化動作種別に対応する識別子をトークンに付与する。また、トークン化が行われたデータであることを識別できるように、接頭子と接尾子を付与する。このような接頭子と接尾子を付与する方式におけるデータ登録時の動作は以下のとおりである。
【0046】
データ登録時において、プロキシ機能部21は、トークン化対象であると判定したデータに対して、対応するトークン化動作種別に基づくトークン化処理をトークン化機能部23を利用して行うとともに、トークンに対して識別子を付与し、更に、この「識別子+トークン」に対して接頭子と接尾子を付与する。
【0047】
具体的には、図7に示すように、平文データ(a)に上述したトークン化処理が施され、(b)に示すようにトークンに識別子、接頭子、接尾子が付与される。(c)は具体例を示す。プロキシ機能部21は、当該データ「接頭子+識別子+トークン+接尾子」を含む要求メッセージをアプリケーションサーバ30に転送する。「接頭子+識別子+トークン+接尾子」は、符号化データ存在識別情報付きデータと呼んでもよい。
【0048】
要求メッセージを受信したアプリケーションサーバ30において、サービス提供部31が、上記のデータ「接頭子+識別子+トークン+接尾子」を、該当する項目に対応するデータとしてデータ格納部32に格納(登録)する。
【0049】
また、例えば、アプリケーションサーバ30のサービス提供部31は、登録されたデータを利用者端末10に表示させるために、登録されたデータである「接頭子+識別子+トークン+接尾子」を含む応答メッセージをプロキシ機能部21に送信し、応答メッセージを受信したプロキシ機能部21は、応答メッセージ内に、接頭子及び接尾子の組が存在するか否かをパターンマッチングにより判定する。接頭子及び接尾子の組が存在する場合に、プロキシ機能部21は、接頭子と接尾子の間にあるデータから識別子を取得する。そして、プロキシ機能部21は、応答メッセージから識別されるユーザIDに対応する動作条件テーブルを参照し、取得した識別子に対応するトークン化処理種別を特定し、当該種別に対応する復元処理をトークン化機能部23に依頼することで、トークンに対して当該識別子に対応する復元処理を行わせ、トークンに対応する元データを取得する。
【0050】
プロキシ機能部21は、応答メッセージに含まれていた「接頭子+識別子+トークン+接尾子」を、復元により得られたデータに置き換え、当該置き換えを行った応答メッセージを利用者端末10に転送する。
【0051】
利用者端末10は、見かけ上は中継装置20を介さない場合と同様に、アプリケーションサーバ30から受信したデータを表示する。
【0052】
なお、接頭子・接尾子等をトークンに付与することは一例に過ぎず、必須ではない。例えば、トークンの位置を示す情報をメッセージ中に含めることで、接頭子・接尾子を用いることなくトークンを取得することが可能である。
【0053】
(検索処理について)
次に、本実施の形態における検索処理について説明する。まず、図8を参照して、手順の概要例を説明する。
【0054】
例えば、利用者端末10上に表示される検索キーワード入力画面から検索キーワードが入力され、検索キーワードを含む検索要求がプロキシ機能部21に送信される(ステップ101)。プロキシ機能部21は、検索要求をアプリケーションサーバ30に転送する(ステップ102)。
【0055】
アプリケーションサーバ30は、トークン化機能部23と通信することで検索キーワードに対応するトークンの取得を行い(ステップ103)、当該トークンを用いて検索を実施し、検索結果をプロキシ機能部21に返却する(ステップ104)。
【0056】
プロキシ機能部21は、検索結果として受信したトークンの復元をトークン化機能部23に要求し(ステップ105)、トークン化機能部23から平文データを受け取る(ステップ106)。なお、トークンの復元動作自体は、上記の応答メッセージ受信時においてトークンの復元を行う際の動作と同じである。プロキシ機能部21は、当該平文データを含む検索結果を利用者端末10に返す(ステップ107)。
【0057】
上記の処理において、元データに関しては、全てトークン化機能部23内でのみ利用されて、アプリケーションサーバ30には通知されない。アプリケーションサーバ30から中継装置20に返される検索結果はプロキシ機能部21を通過することで透過的に復元され、利用者端末10に返却される。
【0058】
以下、検索方式の例についてより詳細に説明する。以下では、検索方式1、検索方式2、検索方式3の3つの例について説明する。以下の説明におけるアプリケーションサーバ30の動作は、サービス提供部31により実行されるものである。
【0059】
(検索方式1)
図9を参照して検索方式1を説明する。利用者端末10から検索キーワード:田中、属性:名前(「田中(属性:名前)」と記述)で検索要求が送信される(ステップ201)。ここでの「属性」は、「名前」、「住所」等の項目に相当する。プロキシ機能部21は、当該検索要求を受信し、アプリケーションサーバ30に転送する(ステップ202)。
【0060】
アプリケーションサーバ30は、トークン化機能部23に対して「田中(属性:名前)」に関連するトークンを検索する指示を送る(ステップ203)。トークン化機能部23は、「田中(属性:名前)」に関連するトークン「ASDFGH,QWERT」を取得し、アプリケーションサーバ30に返す(ステップ204)。
【0061】
アプリケーションサーバ30は、「ASDFGH,QWERT」でデータ格納部32内の情報を検索し(ステップ205)、検索結果をプロキシ機能部21に返す(ステップ206)。プロキシ機能部21は、トークン化機能部23を用いて、アプリケーションサーバ30からのレスポンスデータに含まれるトークンを元データに復元し(ステップ207)、復元したデータを含む検索結果を利用者端末10に返す(ステップ208)。
【0062】
上記のように、アプリケーションサーバ30は、トークン化機能部23から検索キーワードに関連するトークンを取得し、そのデータをもとに検索を実施する。トークン化機能部23はトークンに関連する属性情報(項目情報)を持ち、その属性情報でフィルタすることが可能である。
【0063】
次に、図10を参照して、検索方式1の処理シーケンスを説明する。図10に示す例では、「田中(属性:名前)」の検索を行うことを想定している。また、田中に関連するトークンに係る情報として、「"AAAA"=>平文:田中二郎 属性:名前」、「"BBBB"=>平文:大田中子 属性:名前」、「"CCCC"=>平文:大田中市 属性:住所」があるものとする。
【0064】
利用者端末10から通常のHTTPリクエストとして検索要求がプロキシ機能部21に送られる(ステップ301)。プロキシ機能部21は、検索要求をアプリケーションサーバ30に転送する(ステップ302)。
【0065】
アプリケーションサーバ30は、検索キーワードに関連するトークン一覧を取得するために、まず、トークン取得要求として検索キーワード「田中(属性:名前)」をトークン化機能部23に渡す(ステップ303)。トークン化機能部23は、トークン一覧を抽出し、トークン一覧をアプリケーションサーバ30に渡す(ステップ304〜306)。
【0066】
アプリケーションサーバ30は、トークン化機能部23から受信したトークンを検索キーワードとして検索を実行し(ステップ307、308)、トークンを含む検索結果画面のデータをプロキシ機能部21に送信する(ステップ309)。
【0067】
プロキシ機能部21は、検索結果からトークンを抽出し、トークン化機能部23を用いてトークンを元データに復元する処理(ステップ310〜313)をトークン分だけ繰り返し行う。プロキシ機能部21は、トークンから復元されたデータを含む検索結果画面を利用者端末10に送信する(ステップ314)。
【0068】
検索方式1では、検索処理がアプリケーションサーバ30内で実施されるため、アプリケーションサーバ30が提供するアプリケーションサービス通常利用時と同等の性能で検索結果を得ることができる。ただし、アプリケーションサービスのコールアウト数制限などに影響を受ける可能性がある。また、アプリケーションサービス上に検索アプリケーション(検索機能・表示機能等)を実装する必要がある。
【0069】
上記の点から、検索方式1は、単一のテーブルに対する検索やシンプルな検索パターンで、かつ、検索性能が求められる場合の適用に適していると考えられる。ただし、適用先はこれに限定されるわけではない。
【0070】
(検索方式2)
図11を参照して検索方式2を説明する。検索方式2では、アプリケーションサーバ30において検索APIが実装され、トークン化機能部23がそのAPIを繰り返し呼び出すことで検索を実施し、検索結果を統合してアプリケーションサーバ30に返す。
【0071】
図11の例において、利用者端末10から検索キーワード:田中、属性:すべて(「田中(属性:すべて)」と記述)で検索要求が送信される(ステップ401)。プロキシ機能部21は、当該検索要求を受信し、アプリケーションサーバ30に転送する(ステップ402)。
【0072】
アプリケーションサーバ30は、トークン化機能部23に対して「田中(属性:すべて)」の検索を指示する(ステップ403)。トークン化機能部23は、アプリケーションサーバ30の検索APIを呼び出すことにより、検索指示に該当するトークンと属性での検索をアプリケーションサーバ30に指示することにより、検索結果を取得する(ステップ404)。一例として、図11の例では、属性:名前の田中に該当するトークンを用いたAPI呼び出しと、属性:住所の田中に該当するトークンを用いたAPI呼び出しとが実行されることにより、アプリケーションサーバ30で当該APIのプログラムによる検索が実行され、トークン化機能部23は、各検索結果を受信し、蓄積する。
【0073】
トークン化機能部23は、蓄積した検索結果を統合してアプリケーションサーバ30に返す(ステップ405)。
【0074】
アプリケーションサーバ30は、検索結果をプロキシ機能部21に返す(ステップ406)。プロキシ機能部21は、トークン化機能部23を用いて、アプリケーションサーバ30からのレスポンスデータに含まれるトークンを元データに復元し(ステップ407)、復元したデータを含む検索結果を利用者端末10に返す(ステップ408)。
【0075】
次に、図12を参照して、検索方式2の処理シーケンスを説明する。図12に示す例では、「田中(属性:名前)」の検索を行うことを想定している。また、田中に関連するトークンに係る情報として、「"AAAA"=>平文:田中二郎 属性:名前」、「"BBBB"=>平文:大田中子 属性:名前」、「"CCCC"=>平文:大田中市 属性:住所」があるものとする。
【0076】
利用者端末10から通常のHTTPリクエストとして検索要求がプロキシ機能部21に送られる(ステップ501)。プロキシ機能部21は、検索要求をアプリケーションサーバ30に転送する(ステップ502)。アプリケーションサーバ30は、検索要求をトークン化機能部23に送信する(ステップ503)。
【0077】
トークン化機能部23は、検索キーワード及び属性に対応するトークンの一覧を取得する(ステップ504〜505)。そして、トークン化機能部23は、アプリケーションサーバ30に対して、取得されたトークンを検索キーワードとする検索APIを呼び出す(ステップ506)。ここで属性:名前を指定してもよいし、指定しなくてもよい。指定しない場合、トークン化機能部23は、アプリケーションサーバ30から返される検索結果から返される検索結果から、属性:名前でマッチした検索結果を使用すればよい。
【0078】
アプリケーションサーバ30は、検索APIを実行することで検索を行って、マッチしたキーワード(トークン)毎の検索結果をトークン化機能部23に返す(ステップ507〜509)。アプリケーションサーバ30において検索対象とするテーブルが複数ある場合、対象テーブルの数だけ上記処理が繰り返し行われる。
【0079】
トークン化機能部23は、検索結果を統合し、統合により得られた検索結果データをアプリケーションサーバ30に返す(ステップ510〜513)。統合とは、例えば、検索結果1「名前:"AAAA"、住所:......」と、検索結果2「名前:"BBBB"、住所:......」が得られた場合に、「名前:"AAAA"、住所:......」と「名前:"BBBB"、住所:......」の両方を検索結果に含めることである。
【0080】
アプリケーションサーバ30は、トークンを含む検索結果画面のデータをプロキシ機能部21に送信する(ステップ513)。
【0081】
プロキシ機能部21は、検索結果からトークンを抽出し、トークン化機能部23を用いてトークンを元データに復元する処理(ステップ514〜517)をトークン分だけ繰り返し行う。プロキシ機能部21は、トークンから復元されたデータを含む検索結果画面を利用者端末10に送信する(ステップ518)。
【0082】
検索方式2では、APIコールを利用するため、アプリケーションサーバ30内のコールアウト制約等に影響されず検索が実施できる。検索方式2は、複雑なパターンや検索テーブルを多く対象とするような検索機能を求められる場合の適用に適していると考えられる。ただし、適用先はこれに限定されるわけではない。
【0083】
(検索方式3)
次に、図13を参照して検索方式3を説明する。検索方式3では、中継装置20において、検索要求電文の中の検索キーワードを抽出し、トークン情報に置き換えることで検索を実施する。
【0084】
利用者端末10から検索キーワード:田中で検索要求が送信される(ステップ601)。プロキシ機能部21は、トークン化機能部23を用いて、「田中」に関連するトークンを取得する(ステップ602、603)。
【0085】
プロキシ機能部21は、取得したトークンを用いて、検索要求電文の検索キーワードをトークンに書き換えて、アプリケーションサーバ30に検索要求を送信する(ステップ604)。
【0086】
アプリケーションサーバ30は、既存の検索機能を用いて検索を行って、検索結果をプロキシ機能部21に返す(ステップ605)。プロキシ機能部21は、トークン化機能部23を用いて、アプリケーションサーバ30からのレスポンスデータに含まれるトークンを元データに復元し(ステップ606)、復元したデータを含む検索結果を利用者端末10に返す(ステップ607)。
【0087】
次に、図14を参照して、検索方式3の処理シーケンスを説明する。図14に示す例では、「田中」の検索を行うことを想定している。本例では、アプリケーションサービスが属性フィルタを使用できないことを想定している。また、田中に関連するトークンに係る情報として、「"AAAA"=>平文:田中二郎 属性:名前」、「"BBBB"=>平文:大田中子 属性:名前」、「"CCCC"=>平文:大田中市 属性:住所」があるものとする。
【0088】
利用者端末10から通常のHTTPリクエストとして検索要求がプロキシ機能部21に送られる(ステップ701)。プロキシ機能部21は、検索要求から検索キーワードを抽出する(ステップ702〜703)。そして、プロキシ機能部21は、トークン化機能部23にトークン取得要求を送信する(ステップ704)ことで、検索キーワードに対応するトークンを取得する(ステップ705〜707)。
【0089】
プロキシ機能部21は、検索要求の検索キーワードをトークンに書き換えて(ステップ708)、検索要求をアプリケーションサーバ30に送信する(ステップ710)。
【0090】
アプリケーションサーバ30は、検索を実行し、トークンを含む検索結果画面のデータをプロキシ機能部21に送信する(ステップ711〜713)。
【0091】
プロキシ機能部21は、検索結果からトークンを抽出し、トークン化機能部23を用いてトークンを元データに復元する処理(ステップ714〜715)をトークン分だけ繰り返し行う。プロキシ機能部21は、トークンから復元されたデータを含む検索結果画面を利用者端末10に送信する(ステップ716)。
【0092】
検索方式3では、アプリケーションサーバ30内で用意されている既存の検索画面を利用することができる。検索方式3は、1対1トークン等、検索キーワード数を抑えることが可能な一意なデータ等を検索する場合の適用や、追加での機能構築が難しいアプリケーションサービスへの適用に適すると考えられる。ただし、これらに限定されるわけではない。
【0093】
以上、説明したように、本実施の形態によれば、アプリケーションサーバと通信ネットワークを介して接続する機能を備えるデータ符号化装置であって、利用者端末から受信した平データを符号化データに変換し、当該符号化データを前記アプリケーションサーバに送信する符号化手段と、平データと符号化データとを対応付けて格納するデータ格納手段と、前記アプリケーションサーバから符号化データを受信し、前記データ格納手段を参照することにより、当該符号化データを平データに変換し、当該平データを前記利用者端末に送信する復元手段とを備えることを特徴とするデータ符号化装置が提供される。
【0094】
前記符号化手段は、平データの特性に応じて、当該平データから変換される符号化データの種別を決定することとしてもよい。
【0095】
前記符号化手段は、前記符号化データと当該符号化データの存在を示す符号化データ存在識別情報とを含む符号化データ存在識別情報付きデータを前記アプリケーションサーバに送信し、前記復元手段は、前記アプリケーションサーバから、前記符号化データ存在識別情報付きデータを含むデータを受信した場合に、前記符号データ存在識別情報に基づき符号化データを抽出し、当該符号化データを変換することにより平データを取得することとしてもよい。
【0096】
前記データ符号化装置は、前記利用者端末から受信した検索要求を前記アプリケーションサーバに送信し、当該アプリケーションサーバから当該検索要求に含まれる検索キーワードを受信した場合に、前記データ格納手段から当該検索キーワードに対応する符号化データを抽出し、当該符号化データを検索キーワードとする検索を前記アプリケーションサーバに要求する手段を備えることとしてもよい。
【0097】
前記データ符号化装置は、前記利用者端末から検索要求を受信した場合に、前記データ格納手段を参照することにより、当該検索要求に含まれる検索キーワードを符号化データに置き換え、当該置き換えを行った検索要求を前記アプリケーションサーバに送信する手段を備えることとしてもよい。
【0098】
また、 前記データ符号化装置は、前記アプリケーションサーバから検索結果を受信した場合に、当該検索結果に含まれる符号化データを平データに復元し、当該復元された平データを含む検索結果を前記利用者端末に送信する手段を備えることとしてもよい。
【0099】
上記構成を備えるデータ符号化装置により、データを符号化し、符号化データをアプリケーションサーバに格納するとともに、符号化データから適切に元データを復元することを可能とする技術が提供される。また、符号化データとして格納されたデータに対する検索を適切に行うことが可能となる。
【0100】
(第1項)
アプリケーションサーバと通信ネットワークを介して接続する機能を備えるデータ符号化装置であって、
利用者端末から受信した平データを符号化データに変換し、当該符号化データを前記アプリケーションサーバに送信する符号化手段と、
平データと符号化データとを対応付けて格納するデータ格納手段と、
前記アプリケーションサーバから符号化データを受信し、前記データ格納手段を参照することにより、当該符号化データを平データに変換し、当該平データを前記利用者端末に送信する復元手段と
を備えることを特徴とするデータ符号化装置。
(第2項)
前記符号化手段は、平データの特性に応じて、当該平データから変換される符号化データの種別を決定する
ことを特徴とする第1項に記載のデータ符号化装置。
(第3項)
前記符号化手段は、前記符号化データと当該符号化データの存在を示す符号化データ存在識別情報とを含む符号化データ存在識別情報付きデータを前記アプリケーションサーバに送信し、
前記復元手段は、前記アプリケーションサーバから、前記符号化データ存在識別情報付きデータを含むデータを受信した場合に、前記符号データ存在識別情報に基づき符号化データを抽出し、当該符号化データを変換することにより平データを取得する
ことを特徴とする第1項又は第2項に記載のデータ符号化装置。
(第4項)
前記利用者端末から受信した検索要求を前記アプリケーションサーバに送信し、当該アプリケーションサーバから当該検索要求に含まれる検索キーワードを受信した場合に、前記データ格納手段から当該検索キーワードに対応する符号化データを抽出し、当該符号化データを検索キーワードとする検索を前記アプリケーションサーバに要求する手段
を備えることを特徴とする第1項ないし第3項のうちいずれか1項に記載のデータ符号化装置。
(第5項)
前記利用者端末から検索要求を受信した場合に、前記データ格納手段を参照することにより、当該検索要求に含まれる検索キーワードを符号化データに置き換え、当該置き換えを行った検索要求を前記アプリケーションサーバに送信する手段
を備えることを特徴とする第1項ないし第3項のうちいずれか1項に記載のデータ符号化装置。
(第6項)
前記アプリケーションサーバから検索結果を受信した場合に、当該検索結果に含まれる符号化データを平データに復元し、当該復元された平データを含む検索結果を前記利用者端末に送信する手段
を備えることを特徴とする第4項又は第5項に記載のデータ符号化装置。
(第7項)
アプリケーションサーバと通信ネットワークを介して接続する機能を備えるデータ符号化装置が実行するデータ符号化方法であって、
利用者端末から受信した平データを符号化データに変換し、当該符号化データを前記アプリケーションサーバに送信するステップと、
前記アプリケーションサーバから符号化データを受信し、平データと符号化データとを対応付けて格納するデータ格納手段を参照することにより、前記受信した符号化データを平データに変換し、当該平データを前記利用者端末に送信するステップと
を備えることを特徴とするデータ符号化方法。
(第8項)
コンピュータを、第1項ないし第6項のうちいずれか1項に記載のデータ符号化装置における各手段として機能させるためのプログラム。
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。


【符号の説明】
【0101】
10 利用者端末
20 中継装置
30 アプリケーションサーバ
40 通信ネットワーク
21 プロキシ機能部
22 動作条件情報格納部
23 トークン化機能部
24 データ格納部
31 サービス提供部
32 データ格納部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14