(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-23
(45)【発行日】2023-05-31
(54)【発明の名称】情報処理装置、データアクセス制御プログラム及びデータアクセス制御システム
(51)【国際特許分類】
G06F 21/60 20130101AFI20230524BHJP
G06F 21/62 20130101ALI20230524BHJP
G06Q 30/0207 20230101ALI20230524BHJP
【FI】
G06F21/60 340
G06F21/62 345
G06Q30/0207 372
(21)【出願番号】P 2019091155
(22)【出願日】2019-05-14
【審査請求日】2022-02-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100087480
【氏名又は名称】片山 修平
(72)【発明者】
【氏名】伊藤 栄信
(72)【発明者】
【氏名】坂本 拓也
(72)【発明者】
【氏名】中村 洋介
(72)【発明者】
【氏名】二村 和明
【審査官】吉田 歩
(56)【参考文献】
【文献】特開2009-301211(JP,A)
【文献】特開2007-232610(JP,A)
【文献】特開2015-201111(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/60
G06F 21/62
G06Q 30/0207
(57)【特許請求の範囲】
【請求項1】
ユーザが他者による利用に同意したデータに対してアクセス可能なプログラムを内包するアクセスチケット、前記データを送信する送信条件、及び前記データの送信先の情報、を含むデータアクセス用パラメータを前記送信先の外部装置から受信する受信部と、
前記送信先の情報に対応する
通知オブジェクトであって、前記送信先に送信したデータをセットし、該データに応じた処理を前記送信先に実行させるための通知オブジェクトを生成し、前記送信先に返信する返信部と、
前記送信条件を満たしたときに、前記アクセスチケットのプログラムを実行してデータを取得し
、取得した前記データを前記送信先に送信する送信部と、
を備える情報処理装置。
【請求項2】
前記データアクセス用パラメータは、暗号鍵を含み、
前記送信部は、取得した前記データを前記暗号鍵で暗号化して送信する、ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記送信部は、予め定められている終了条件を満たすまで、前記送信条件を満たすか否かを繰り返し判定することを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記データを受信した前記外部装置からの要求に応じて、前記ユーザが利用する装置に対して前記外部装置に関する情報を提供する提供部、を更に備える請求項1~3のいずれか一項に記載の情報処理装置。
【請求項5】
前記データは、前記ユーザが利用する車の走行に関するデータであり、
前記外部装置は、前記車が走行する予定のルートに基づいて特定された店舗の情報処理装置であり、
前記提供部は、前記店舗における前記ユーザの購買意欲を増進させる情報を前記ユーザが利用する装置に提供する、ことを特徴とする請求項4に記載の情報処理装置。
【請求項6】
ユーザが他者による利用に同意したデータに対してアクセス可能なプログラムを内包するアクセスチケット、前記データを送信する送信条件、及び前記データの送信先の情報、を含むデータアクセス用パラメータを前記送信先の外部装置から受信し、
前記送信先の情報に対応する
通知オブジェクトであって、前記送信先に送信したデータをセットし、該データに応じた処理を前記送信先に実行させるための通知オブジェクトを生成し、前記送信先に返信し、
前記送信条件を満たしたときに、前記アクセスチケットのプログラムを実行してデータを取得し
、取得した前記データを前記送信先に送信する、
処理をコンピュータに実行させるためのデータアクセス制御プログラム。
【請求項7】
情報処理装置と外部装置とを備え、前記情報処理装置が有するユーザが他者による利用に同意したデータに対するアクセスを制御するデータアクセス制御システムであって、
前記情報処理装置は、
前記データに対してアクセス可能なプログラムを内包するアクセスチケット、前記データを送信する送信条件、及び前記データの送信先の情報、を含むデータアクセス用パラメータを前記送信先の外部装置から受信する受信部と、
前記送信先の情報に対応する通知オブジェクトを生成し、前記送信先に返信する返信部と、
前記送信条件を満たしたときに、前記アクセスチケットのプログラムを実行してデータを取得し
、取得した前記データを前記送信先に送信する送信部と、
を備え
、
前記外部装置は、前記情報処理装置から送信されてきた前記データを、前記情報処理装置から返信されてきた前記通知オブジェクトにセットし、前記通知オブジェクトにセットした前記データに応じた処理を実行する、
データアクセス制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、データアクセス制御プログラム及びデータアクセス制御システムに関する。
【背景技術】
【0002】
コンピュータシステムでは、様々な資源を用いてサービスが提供される。サービスの提供に用いられる資源には、データまたはプログラムなどのソフトウェア資源や、コンピュータで制御される様々な機器が含まれる。
【0003】
例えばIoT(Internet of Things)関連技術の発展により、現在、コンピュータに限らず、様々なもの(IoTデバイス)をインターネットに接続することが可能となっている。IoTデバイス自身およびIoTから取得したデータも、サービス提供に利用される資源である。
【0004】
IoTデバイスは、データの収集に利用できる。例えばサービスプロバイダが、クラウドコンピューティングシステムにより、多数のIoTデバイスから、各IoTデバイスを所持しているユーザに関するデータを収集する。サービスプロバイダは、収集したデータのデータマイニングを行うことで、様々な知識を得ることができる。
【0005】
IoTデバイスから収集されたデータには、そのIoTデバイスを所持しているユーザの行動の特徴を表すデータが含まれる。そのため、あるユーザが使用するIoTデバイスから収集されたデータは、収集したサービスプロバイダが利用するだけではなく、そのデータを提供したユーザ自身も利用を希望する場合があり得る。例えば、ユーザがIoTデバイスを介して特定のサービスプロバイダ(例えばレンタカー会社のサーバ)に提供したデータを、そのユーザの意思により他のサービスプロバイダ(例えば店舗のサーバ)に提供することで、ユーザが適切なサービスの提供(例えばサービス利用料の割り引き)を受けることができる場合がある。この場合、例えばデータを所持するサービスプロバイダから他のサービスプロバイダに、該当データへのアクセス権限が渡され、他のサービスプロバイダは、アクセス権限に基づいてデータにアクセスする。
【0006】
任意のデータへのアクセス権限に関する技術としては、例えばOAuthがある。また、顧客が認可した範囲で認可トークンを共有できるように制御を行う権限委譲システムも考えられている。アクセス資格の無効化、譲渡、分割、変更などの操作を行えるようにするアクセス権管理装置も考えられている。さらに、ネットワーク上の利用権を動的に利用者に提供できないなどの利用権に関する問題を解決するための資源管理システムも考えられている。
【先行技術文献】
【特許文献】
【0007】
【文献】特開2003-6160号公報
【文献】特開平11-328254号公報
【文献】特開2003-242124号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、従来は、ユーザがIoTデバイスを介して特定のサービスプロバイダに提供したデータを、そのユーザの意思により他のサービスプロバイダに提供する際の技術が十分に確立されていなかった。このため、ある条件を満たしたタイミングで、特定のサービスプロバイダが取得したデータを他のサービスプロバイダに提供する、ということを簡易に実現することができなかった。
【0009】
1つの側面では、本発明は、データが送信条件を満たした適切なタイミングで、ユーザが他者からの利用に同意しているデータを外部装置に送信することが可能な情報処理装置、データアクセス制御プログラム及びデータアクセス制御システムを提供することを目的とする。
【課題を解決するための手段】
【0010】
一つの態様では、情報処理装置は、ユーザが他者による利用に同意したデータに対してアクセス可能なプログラムを内包するアクセスチケット、前記データを送信する送信条件、及び前記データの送信先の情報、を含むデータアクセス用パラメータを前記送信先の外部装置から受信する受信部と、前記送信先の情報に対応する通知オブジェクトであって、前記送信先に送信したデータをセットし、該データに応じた処理を前記送信先に実行させるための通知オブジェクトを生成し、前記送信先に返信する返信部と、前記送信条件を満たしたときに、前記アクセスチケットのプログラムを実行してデータを取得し、取得した前記データを前記送信先に送信する送信部と、を備えている。
【発明の効果】
【0011】
データが送信条件を満たした適切なタイミングで、ユーザが他者からの利用に同意しているデータを外部装置に送信することができる。
【図面の簡単な説明】
【0012】
【
図1】一実施形態に係るデータアクセス制御システムの構成を概略的に示す図である。
【
図2】
図2(a)は、レンタカー会社サーバ、店舗サーバ、チケットブローカーサーバのハードウェア構成を示す図であり、
図2(b)は、車載装置のハードウェア構成を示す図である。
【
図3】ユーザ端末のハードウェア構成を示す図である。
【
図4】レンタカー会社サーバの機能ブロック図である。
【
図6】
図6(a)は、車載装置の機能ブロック図であり、
図6(b)は、ユーザ端末の機能ブロック図である。
【
図7】チケットブローカーサーバの機能ブロック図である。
【
図8】
図8(a)、
図8(b)は、一実施形態の処理の概要を示す図(その1)である。
【
図9】
図9(a)、
図9(b)は、一実施形態の処理の概要を示す図(その2)である。
【
図10】レンタカー利用手続きの一連の画面遷移例を示す図である。
【
図11】リコメンド情報用チケット発行画面の具体例を示す図である。
【
図12】
図12(a)は、チケット発行要求の例を示す図であり、
図12(b)は、アクセスチケットの例を示す図である。
【
図13】データ取得用プログラムの例を示す図である。
【
図14】レンタカー会社サーバによるチケット生成・返信処理を示すフローチャートである。
【
図15】チケット登録画面の具体例を示す図である。
【
図16】チケットブローカーサーバによるチケット登録処理を示すフローチャートである。
【
図17】店舗サーバがチケットを取得する際のチケットブローカーサーバの処理を示すフローチャートである。
【
図18】チケットブローカーサーバが有する店舗情報DBの一例を示す図である。
【
図19】店舗サーバがチケットを返信する処理を示すフローチャートである。
【
図20】割引情報を送信するコールバック関数の例を示す図である。
【
図22】チケット処理要求を受信したレンタカー会社サーバの処理を示すフローチャートである。
【
図23】レンタカー会社サーバが有するチケットDBの一例を示す図である。
【
図24】レンタカー会社サーバが有する通知オブジェクトDBの一例を示す図である。
【
図26】レンタカー会社サーバによる運転情報監視処理を示すフローチャートである。
【
図27】コールバックURIでデータを受信した店舗サーバの処理を示すフローチャートである。
【
図29】ナビゲーション画面の一例を示す図である。
【
図30】
図30(a)、
図30(b)は、データ提供側サーバとデータ取得側サーバの処理の概要を、第1フェーズと第2フェーズの2つのフェーズに分けて模式的に示す図である。
【発明を実施するための形態】
【0013】
以下、データアクセス制御システムの一実施形態について、
図1~
図30に基づいて詳細に説明する。
図1には、本実施形態のデータアクセス制御システム100の構成が概略的に示されている。
【0014】
図1のデータアクセス制御システム100は、レンタカーサービスを利用するユーザが、自身が運転するレンタカーの運転情報を運転ルート上の店舗にチケット形式で提供し、店舗から有用なサービスを受けることを可能にするシステムである。
【0015】
データアクセス制御システム100は、
図1に示すように、情報処理装置としてのレンタカー会社サーバ10と、外部装置としての店舗サーバ20と、ユーザが利用する装置としての車載装置30と、ユーザ端末40と、仲介装置としてのチケットブローカーサーバ50と、を備える。データアクセス制御システム100に含まれる各装置は、インターネットなどのネットワーク80に接続されている。
【0016】
レンタカー会社サーバ10は、レンタカーから運転情報(データ)を収集したり、収集したデータに基づく情報をレンタカー内の車載装置30に提供する。また、レンタカー会社サーバ10は、店舗サーバ20からレンタカーへの情報送信をWebサービス形式で提供している。
【0017】
店舗サーバ20は、チケットブローカーサーバ50を通じてユーザから入手したチケットをレンタカー会社サーバ10に送信する。また、店舗サーバ20は、レンタカー会社サーバ10から受信した情報に基づいて、ユーザが運転するレンタカーの車載装置30に自身の店舗情報を送信するよう、レンタカー会社サーバ10に依頼する。
【0018】
車載装置30は、レンタカーに搭載されたナビゲーションシステムと、レンタカーに関する各種情報を検出するセンサ類と、を有している。
【0019】
ユーザ端末40は、スマートフォンやタブレットなどのユーザが利用可能な端末である。本実施形態では、ユーザ端末40は、レンタカーの利用手続きなどに用いられる。
【0020】
チケットブローカーサーバ50は、ユーザ端末40がレンタカー会社サーバ10から取得したチケットを収集し、ユーザからチケットを入手したい店舗へのチケットの配布を仲介するサーバである。なお、本実施形態では、ユーザはチケットブローカーサーバ50経由で店舗サーバ20にチケットを配布することとしているが、ユーザ自身がユーザ端末40から店舗サーバ20に対して直接チケットを送付することとしてもよい。
【0021】
(レンタカー会社サーバ10について)
図2(a)には、レンタカー会社サーバ10のハードウェア構成が示されている。
図2(a)に示すように、レンタカー会社サーバ10は、CPU(Central Processing Unit)90、ROM(Read Only Memory)92、RAM(Random Access Memory)94、記憶部(ここではHDD(Hard Disk Drive))96、ネットワークインタフェース97、及び可搬型記憶媒体用ドライブ99等を備えている。これらレンタカー会社サーバ10の構成各部は、バス98に接続されている。レンタカー会社サーバ10では、ROM92あるいはHDD96に格納されているプログラム(データアクセス制御プログラムを含む)、或いは可搬型記憶媒体用ドライブ99が可搬型記憶媒体91から読み取ったプログラム(データアクセス制御プログラムを含む)をCPU90が実行することにより、
図4に示す各部の機能が実現される。なお、
図4には、HDD96等に格納されている各種DB(database)も図示されている。各種DBの具体的なデータ構造等については後述する。なお、
図4の各部の機能は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。なお、
図4の各部の詳細については後述する。
【0022】
図4には、レンタカー会社サーバ10の機能ブロック図が示されている。
図4に示すように、レンタカー会社サーバ10では、CPU90がプログラムを実行することにより、受信部としての通信処理部102、要求解析部104、チケット生成部106、チケット処理部108、チケット管理部110、イベント監視部114、提供部としてのメッセージ処理部116、運転情報管理部118、情報管理部120、鍵管理部122、送信データ生成部124、送信先管理部126、として機能する。
【0023】
通信処理部102は、ネットワークインタフェース97を用い、ネットワーク80経由で、車載装置30、ユーザ端末40、店舗サーバ20及びチケットブローカーサーバ50との間でデータの送受信を行う。
【0024】
要求解析部104は、通信処理部102が受信したデータを解析し、データの内容(要求内容)に応じてチケット生成部106、チケット処理部108、メッセージ処理部116にデータを送信する。
【0025】
チケット生成部106は、ユーザ端末40からのチケット発行要求に応じたチケットをチケット管理部110を介して生成し、生成したチケットを送信データ生成部124に送信する。
【0026】
チケット処理部108は、店舗サーバ20から受信したチケットの内容を解析し、返信するデータ型が通常データの場合は運転情報管理部118に対してチケットに記録されたプログラムを実行するよう依頼し、その結果を送信データ生成部124に送信する。一方、返信するデータ型がプロミス型の場合は、イベント監視部114に通知条件を渡して通知オブジェクトの生成を依頼し、その結果として生成された通知オブジェクトを送信データ生成部124に送信する。さらに、返信するデータ型がチケット型の場合はチケット生成部106に新たなチケット生成を依頼し、その結果として生成されたチケットを送信データ生成部124に送信する。
【0027】
チケット管理部110は、要求に応じてチケットの生成、保存、検索、削除の処理を実行する。チケット管理部110は、チケットDB152(
図23参照)において、チケットの情報を管理している。なお、チケットDB152の詳細については後述する。
【0028】
イベント監視部114は、チケット処理部108から受け取った通知条件を通知条件DB154に保存する。そして、イベント監視部114は、運転情報管理部118が運転情報DB156において管理する運転情報の更新データを常に監視して、通知条件にマッチした場合、マッチしたデータと送信先情報を送信データ生成部124に送る。ここで、通知条件DB154は、チケットの識別情報(後述するticketid)に対応付けて通知条件文字列を格納するデータベースである。また、運転情報DB156は、車載装置30のセンサ類から得られた運転情報を車載装置30の識別情報と対応付けて格納するデータベースである。
【0029】
メッセージ処理部116は、店舗サーバ20から送信されてきたメッセージ送信要求を受信したときに、要求内容に応じたメッセージを生成し、指定された宛先のレンタカーの車載装置30にメッセージを送信する。
【0030】
運転情報管理部118はレンタル中のレンタカーの車載装置30からリアルタイムで送信されてくるデータ(運転情報)を運転情報DB156に保存したり、検索したりする。
【0031】
情報管理部120は、サービス情報DB158において、ユーザによって申し込まれた個々のレンタカーサービスの詳細情報を管理する。ここで、サービス情報DB158には、レンタカー利用手続きのトランザクションIDに対応付けて、レンタカーサービスの各種情報が格納されている。また、情報管理部120は、車情報DB160において、レンタカーの識別番号や後述するcartokenなどの静的な情報を管理する。また、情報管理部120は、ユーザ情報DB162において、レンタカー会社に対して登録されたユーザの情報(例えば、ユーザID、氏名、住所など)を管理する。
【0032】
鍵管理部122は、チケットや送信データの暗号化に必要な暗号鍵の生成・保存といった管理を行う。鍵管理部122では、暗号鍵DB164において、暗号鍵の管理を実行する。
【0033】
送信データ生成部124は、取得したデータに応じて、送信データを生成し、通信処理部102を介して指定された送信先に対して送信データを送信する。
【0034】
送信先管理部126は、通知オブジェクトの発行をするとともに、通知オブジェクトDB166において通知オブジェクトの保存、削除といった管理を行う。なお、通知オブジェクトDB166は、
図24に示すようなデータベースであるが、その詳細については後述する。また、送信先管理部126は、送信データの送信先に対応した暗号鍵を鍵管理部122から取得し、送信データ生成部124に送信する。
【0035】
(店舗サーバ20について)
店舗サーバ20は、レンタカー会社サーバ10と同様、
図2(a)に示すようなハードウェア構成を有する。店舗サーバ20においては、CPU90がプログラムを実行することにより、
図5に示す各部の機能が実現されている。
【0036】
図5に示すように、店舗サーバ20は、通信処理部202、要求解析部204、チケット処理部206、通知データ処理部208、通知オブジェクト管理部210、要求生成部212、通知条件管理部214、チケット管理部216、鍵管理部218、コールバック管理部220の機能を有する。
【0037】
通信処理部202は、ネットワークインタフェース97を用い、ネットワーク80経由でレンタカー会社サーバ10やチケットブローカーサーバ50との間でデータ送受信を行う。
【0038】
要求解析部204は、通信処理部202が受信したデータを解析し、受信したデータがチケットの場合は、チケット処理部206に処理を渡す。一方、受信したデータがコールバック(callback)URI(Uniform Resource Identifier)経由のデータの場合は、要求解析部204は、通知データ処理部208に処理を渡す。
【0039】
チケット処理部206は、受信したチケットに含まれるコンテンツを取得し、そのコンテンツが通常のデータの場合はデータに応じたサービス処理を行う。一方、チケットに含まれるコンテンツが通知オブジェクトの場合は通知オブジェクト管理部210に通知オブジェクトを渡し、コールバックの監視を有効化する。また、チケットに含まれるコンテンツが新たなチケットの場合は、要求生成部212にそのチケットを渡して、レンタカー会社サーバ10に送信する。
【0040】
通知データ処理部208は、コールバックURIに対応した通知オブジェクトからデータを取得し、データに応じたサービス処理を行う。
【0041】
通知オブジェクト管理部210は、チケットに含まれる通知オブジェクトをコールバックURIと関連付けて通知オブジェクトDB252に格納する。なお、通知オブジェクトDB252は、通知オブジェクトDB166と同様のデータベースである。
【0042】
要求生成部212は、チケットブローカーサーバ50へのチケット取得要求を生成したり、取得したチケットに通知条件管理部214で生成した通知条件を付加してレンタカー会社サーバ10へのチケット送信要求を生成する。
【0043】
通知条件管理部214は、レンタカー会社サーバ10へ送信するチケットの通知条件を生成し、通知条件DB254において管理する。なお、通知条件DB254は、チケットIDに対応付けて通知条件文字列を格納するデータベースである。また、通知条件管理部214は、コールバック管理部220に対して、運転情報が通知条件と合致した場合にメッセージを送信するコールバック関数の生成を依頼する。
【0044】
チケット管理部216は、チケットブローカーサーバ50又はユーザ端末40から取得したチケットをチケットDB256に保存し、管理する。なお、チケットDB256は、チケットDB152(
図23)と同様である。
【0045】
鍵管理部218は、レンタカー会社サーバ10からコールバックURIへのデータ送信を行う通信路の暗号鍵を生成し、暗号鍵DB258に保存して、管理する。
【0046】
コールバック管理部220は、通知条件管理部214からの依頼に応じてコールバック関数を生成し、コールバック関数DB260に保存し、管理する。なお、コールバック関数DB260は、コールバックURIに対応付けてコールバック関数を管理するデータベースである。
【0047】
(車載装置30について)
図2(b)には、車載装置30のハードウェア構成が示されている。
図2(b)に示すように、車載装置30は、CPU190、ROM192、RAM194、記憶部(HDD)196、ネットワークインタフェース197、可搬型記憶媒体用ドライブ199、表示部193、入力部195、位置センサ188a、速度センサ188b、アクセル操作量センサ188c、ブレーキ操作量センサ188d等を備えている。これら車載装置30の構成各部は、バス198に接続されている。車載装置30では、ROM192あるいはHDD196に格納されているプログラム、或いは可搬型記憶媒体用ドライブ199が可搬型記憶媒体191から読み取ったプログラムをCPU190が実行することにより、
図6(a)に示す各部の機能が実現される。
【0048】
車載装置30は、CPU190がプログラムを実行することにより、
図6(a)に示す、通信処理部302、データ送信部304、画面入力部306、データ処理部308、画面表示部310、センサデータ取得部312、として機能する。
【0049】
通信処理部302は、ネットワークインタフェース197を用い、ネットワーク80経由でレンタカー会社サーバ10との間でデータ送受信を行う。
【0050】
データ送信部304は、車載装置30が有するセンサ188a~188dからセンサデータ取得部312が取得した値、または、画面入力部306が入力を受け付けたユーザからの要求を、通信処理部302を介してレンタカー会社サーバ10に送信する。
【0051】
画面入力部306は、タッチパネルやキーボードのようなデータ入力手段であり、入力されたデータをデータ送信部304に渡す。
【0052】
データ処理部308は、通信処理部302が受信したデータを解析し、画面表示部310に渡す。
【0053】
画面表示部310は、データ処理部308から渡されたデータを表示部193上に表示可能な形式に変換してユーザが視認可能な形で表示部193上に表示する。
【0054】
(ユーザ端末40について)
ユーザ端末40は、
図3に示すようなハードウェア構成を有する。すなわち、
図3に示すように、ユーザ端末40は、CPU290、ROM292、RAM294、記憶部(HDD)296、ネットワークインタフェース297、可搬型記憶媒体用ドライブ299、表示部293、入力部295等を備えている。これらユーザ端末40の構成各部は、バス298に接続されている。ユーザ端末40では、ROM292あるいはHDD296に格納されているプログラム、或いは可搬型記憶媒体用ドライブ299が可搬型記憶媒体291から読み取ったプログラムをCPU290が実行することにより、
図6(b)に示す各部の機能が実現される。
【0055】
図6(b)に示すように、ユーザ端末40は、CPU290がプログラムを実行することにより、通信処理部402、データ送信部404、画面入力部406、データ処理部408、画面表示部410、としての機能を有する。
【0056】
なお、通信処理部402、データ送信部404、画面入力部406、データ処理部408、画面表示部410は、前述したユーザ端末40の対応する各部302、304、306、308、310と同様の機能を有している。
【0057】
(チケットブローカーサーバ50について)
チケットブローカーサーバ50は、前述したレンタカー会社サーバ10や店舗サーバ20と同様のハードウェア構成(
図2(a)参照)を有している。
【0058】
チケットブローカーサーバ50では、CPU90がプログラムを実行することにより、
図7に示す、通信処理部502、要求解析部504、チケット管理部506、店舗情報管理部508、チケット送信部510、として機能する。
【0059】
通信処理部502は、ネットワークインタフェース97を用い、ネットワーク80を介して、他のサーバや装置との間でデータの送受信を行う。
【0060】
要求解析部504は、通信処理部502が受信したデータを解析し、受信したデータがチケット格納要求であればチケットをチケット管理部506に渡す。一方、受信したデータがチケット取得要求であれば、要求解析部504は、要求内容に合致したチケットを検索する命令をチケット管理部506に送り、チケット管理部506は検索されたチケットをチケット送信部510に渡す。
【0061】
チケット管理部506は受信したチケットをチケットDB552に格納して管理するとともに、店舗情報管理部508が店舗情報DB554から検索した店舗に対して送信するチケットをチケットDB552において検索する。なお、チケットDB552は、チケットDB152(
図23)と同様である。
【0062】
店舗情報管理部508は、店舗情報DB554において、チケットを取得することが可能な店舗のリストおよび店舗情報を管理する。なお、店舗情報DB554は、
図18に示すようなデータベースであるが、その詳細については後述する。
【0063】
チケット送信部510は、チケット配布条件にマッチした店舗サーバ20に対して、通信処理部502を介してチケットを送信する。
【0064】
(データアクセス制御システム100において実行される処理の概要)
図8(a)~
図9(b)には、本実施形態における処理の概要が示されている。以下、
図8(a)~
図9(b)に沿って処理の概要について説明する。
【0065】
(
図8(a)の処理)
図8(a)には、ユーザがレンタカー利用手続きを行う場合における、ユーザ端末40とレンタカー会社サーバ10のやり取りが示されている。
【0066】
ユーザがユーザ端末40にレンタカー利用手続き画面を表示し、入力を行う。これにより、
図8(a)のように、(1)ユーザ端末40は、レンタカー会社サーバ10に対してレンタカー利用手続き画面に入力された情報を送信することで、レンタカー利用手続きを行う。また、ユーザがユーザ端末40にチケット発行画面を表示し、入力を行うと、(2)ユーザ端末40は、レンタカー会社サーバ10に対してチケット発行要求を行う。
【0067】
これに対し、(3)レンタカー会社サーバ10は、チケット発行要求に応じてチケットを生成し、(4)生成したチケットをユーザ端末40に対して返信する。
【0068】
(
図8(b)の処理)
図8(b)には、チケットを受信したユーザ端末40とチケットブローカーサーバ50のやり取りが示されている。
【0069】
図8(b)のやり取りにおいては、(1)ユーザ端末40が、受信したチケットの登録要求をチケットブローカーサーバ50に対して送信する。これに対し、(2)チケットブローカーサーバ50は、チケット登録を行う。そして、(3)チケットブローカーサーバ50は、ユーザ端末40に対してチケット登録完了を通知する。
【0070】
(
図9(a)の処理)
図9(a)には、レンタカーを利用するユーザが車載装置30においてルート検索を行った後に実行される処理が示されている。
【0071】
図9(a)の処理においては、ユーザが車載装置30のナビを用いてルート検索を行い、ルートが確定すると、(1)車載装置30は、レンタカー会社サーバ10に対してルート情報を送信する。次いで、(2)レンタカー会社サーバ10は、チケットブローカーサーバ50に対して、ルート情報とチケット配布要求を送信する。次いで、(3)チケットブローカーサーバ50は、ルート上(ルート近傍)の店舗を検索する。次いで、(4)チケットブローカーサーバ50は、検索された店舗の店舗サーバ20に対して、受信したルートを走行する予定のユーザのチケットを送信する。
【0072】
(
図9(b)の処理)
図9(b)には、店舗サーバ20がチケットを受信した後の処理が示されている。
【0073】
図9(b)の処理においては、店舗サーバ20がチケットを受信すると、(1)店舗サーバ20は、チケットに通知条件を付加する。また、(2)店舗サーバ20は、通知条件が付加されたチケットの処理要求をレンタカー会社サーバ10に送信する。(3)レンタカー会社サーバ10は、チケットの処理要求を受信すると、通知条件を登録したり、オブジェクトIDを生成し、保存したりする。そして、(4)レンタカー会社サーバ10は、生成したオブジェクトIDを含む返信データを店舗サーバ20に送信する。(5)返信データを受信した店舗サーバ20は、オブジェクトIDを保存して、以降、コールバック呼び出し待ち状態となる。
【0074】
その後、(6)レンタカー会社サーバ10は、受信した通知条件を満たすまで待機し、通知条件を満たすと、店舗サーバ20に対して通知を行う。
【0075】
(7)通知を受けた店舗サーバ20は、通知を受信すると、レンタカー会社サーバ10に対してメッセージ(例えば店舗の割引情報など)の転送要求を行う。これに対し、(8)レンタカー会社サーバ10は、転送要求を受け付けたメッセージを表示するように、車載装置30に対して表示要求を出力する。そして、(9)車載装置30は、表示要求に応じて、ナビ画面上にメッセージを表示する。
【0076】
以上の処理により、レンタカーを借りたユーザは、自己の運転情報をレンタカー会社に提供することで、車載装置30(ナビ画面)に、適切なタイミングで有用なメッセージ(割引情報など)を表示することができる。
【0077】
(処理の詳細について)
以下、データアクセス制御システム100において実行される処理の詳細について、
図10~
図29に基づいて詳細に説明する。
【0078】
なお、処理の前提として、各サーバは下記のWebサービス・インターフェースを有するものとする。
【0079】
<レンタカー会社サーバ10>
(a)レンタカー利用手続き画面:http://rentacar.example.com/rentacar
(b)チケット発行受付:http://rentacar.example.com/createTicket
(c)チケット処理受付:http://rentacar.example.com/processTicket
(d)メッセージ転送受付:http://rentacar.example.com/transferMessage
(e)運転データ受信受付:http://rentacar.example.com/uploadDriveData
【0080】
<店舗サーバ20>
(a)チケット取得受付:http://shop1.example.com/getTicket
(b)データ受信用コールバック:
http://shop1.example.com/callback550e8400d42397e88a76b32c
(なお、「callback」以降の文字列はチケットごとに異なる値とする)
【0081】
<車載装置30>
(a)メッセージ表示受付:http://car0001.example.com/displayMessage
【0082】
<チケットブローカーサーバ50>
(a)チケット登録受付:http://ticketbroker.example.com/registerTicket
(b)チケット配布受付:http://ticketbroker.example.com/deliverTicket
【0083】
(チケットの生成処理(
図8(a)の処理))
レンタカーの利用者は自身が利用するユーザ端末40のWebブラウザでレンタカー利用手続き画面(http://rentacar.example.com/rentacar)にアクセスし、レンタカーの利用手続きを行う。
【0084】
図10には、レンタカー利用手続きの一連の画面遷移例が示されている。ユーザは、自身のユーザIDを用いてレンタカー会社サーバ10にログインし、レンタカー利用手続き画面(G1)に必要な情報を入力してレンタカー利用手続きを行う。そして、レンタカー利用手続きが完了すると、レンタカー会社サーバ10は、ユーザ端末40に対して、リコメンド情報を受信するためのチケットを発行するかを確認する画面(
図10のリコメンド情報用チケット発行画面(G2))を表示する。なお、本実施形態においては、ナビ画面においてルート設定を行ったユーザが、ルート上(近傍)の店舗に運転情報を提供することを許可する(チケットを発行する)ことで、店舗からリコメンド情報(割引サービス等の情報)を得ることができるようになっている。
【0085】
図11には、リコメンド情報用チケット発行画面G2の具体例が示されている。
図11の画面においては、どのような状況になった場合にリコメンド情報を通知してもらうか(通知条件)を選択することができるようになっている。ユーザは、画面上で通知条件を選択した後に「チケット発行する」ボタンを押すか、通知条件を選択せずに「チケット発行しない」ボタンを押す。
【0086】
ユーザが「チケット発行する」ボタンを押すと、ユーザ端末40からレンタカー会社サーバ10のチケット発行受付API(http://rentacar.example.com/createTicket)にチケット発行要求が送信される。
図12(a)はチケット発行要求の例である。
【0087】
図12(a)の例では、チケット発行要求のデータはJSON(JavaScript(登録商標) Object Notation)形式で記述されている。このうち、“userid”は、レンタカー利用手続きにログインしているユーザIDであり、“credential”は、レンタカー利用手続きを行ったトランザクションIDをユーザの秘密鍵で署名したデータである。また、“type”は、チケットが返すコンテンツのデータ型を表し、通常のデータの場合は“plain”、通知型のデータの場合は“promise”、チケット型のデータの場合は“ticket”となる。“data”はこのチケットで取得したいデータの名前、“duration”、“condition”は、通知型データの場合に必要なプロパティである。“duration”はデータの取得期間を表し、
図12(a)の場合、通知時から5分前までのデータを送信することが記述されている。“condition”には指定可能な通知条件が記述でき、
図12(a)の場合、目的地までの距離(to_destination)と加減速量(acceleration_level)が記述されている。
【0088】
このチケット発行要求に対して、レンタカー会社サーバ10のチケット生成部106は、チケット管理部110に指示を出して、
図12(b)に示すようなアクセスチケットを生成し、送信データ生成部124と通信処理部102を介してユーザ端末40に返信する。なお、チケット管理部110は、生成したアクセスチケットをチケットDB152に保存する。
【0089】
図12(b)のアクセスチケットにおいて、“header”には、“url”、“ticketid”、“start”、“end”、“metadata”、“description”が記述される。このうち、“url”には、発行されたチケットを利用する際の送付先として、チケット処理受付APIのURL(http://rentacar.example.com/processTicket)が記述される。“ticketid”は、チケットを示す一意な識別子を意味する。“start”と“end”は、チケットの有効期間を意味し、“start”の時刻から“end”の時刻までがチケットの有効期間となる。“metadata”は、データ取得間隔を意味し、
図12(b)の例では、5分間隔でデータをチェックすることが記述されている。 “description”は、取得対象のデータ名が記述される。
【0090】
また、
図12(b)のアクセスチケットにおいて、“payload”には、暗号化されたデータ取得用プログラムが記述される。また、“condition”には、指定可能な通知条件が記述される。
図12(b)の例では、“condition”には、目的地までの距離(to_destination)と加減速量(acceleration_level)が記述されている。“signature”は、チケットデータのハッシュ値に発行者(レンタカーサービス)が署名したデータであり、チケットデータの改ざん検出に使用する。
【0091】
図13には、データ取得用プログラム(
図12(b)において“payload”に記述されているデータ取得用プログラムの暗号化前の状態)の例が示されている。
【0092】
図13は、データ取得先のデータベースがMySQLで構成されており、SQL文でデータ検索が可能な場合の例を示している。
図13の例では車IDが“car0001”であるレンタカーの運転情報データ(drivedata)を5分間分取得するというプログラムが記述されている。なお、データベースや検索プログラム言語はMySQLやSQL文に限定されない。
【0093】
ここで、ユーザ端末40からのチケット発行要求を受信したレンタカー会社サーバ10がチケットを生成して返信するまでの具体的な処理について
図14のフローチャートに沿って、詳細に説明する。
【0094】
レンタカー会社サーバ10の通信処理部102でチケット発行要求を受信すると(S10:肯定)、受信した通信内容を要求解析部104で解析する(S12)。要求解析部104は、チケット発行要求であることを認識すると、チケット生成部106に処理を渡す。
【0095】
チケット生成部106は、情報管理部120にチケット発行要求に含まれる“userid”と“credential”の値を渡し、正当なユーザからの要求かどうかの確認依頼を行う。情報管理部120は、ユーザの公開鍵で“credential”の内容を復号し、そこから得られるトランザクションIDがサービス情報DB158に保存されている内容と一致するか検証する(S14)。この検証の結果、トランザクションIDがサービス情報DB158に保存されている内容と一致すれば正当なユーザからの要求であるとみなして、確認OKをチケット生成部106に返す。
【0096】
次いで、チケット生成部106は、チケット発行要求に含まれる“type”、“data”、“duration”、“conditionの値をチケット管理部110に渡してチケットの発行を依頼する。チケット管理部110は渡された値に従ってデータ取得用プログラム、暗号鍵、チケットIDを生成し、暗号鍵で暗号化したプログラムを含むチケットを生成してチケット生成部106に返す(S16)。チケット生成部106は生成されたチケットを送信データ生成部124に渡し、送信データ生成部124は、チケットを含む返信データを作成して通信処理部102経由でユーザ端末40に返信する(S18)。
【0097】
(チケットブローカーサーバ50へのチケット登録(
図8(b)の処理))
次に、チケットブローカーサーバ50へのチケット登録処理について説明する。
【0098】
図11のチケット発行画面への入力に応じて、レンタカー会社サーバ10において発行されたチケットをユーザ端末40のブラウザが受信すると、ユーザ端末40は、ストレージ(HDD296等)にチケットを保存する。そして、チケット発行画面は、
図15に示すようなチケット登録画面(
図10の画面G3)に遷移する。
図15のチケット登録画面には、受信したチケットに記述されていた内容(どのような運転情報が店舗に提供されるか)が表示されるため、ユーザは、提供する情報に同意した場合に、「チケットを登録する」ボタンを押す。ユーザが「チケットを登録する」ボタンを押すと、ユーザ端末40は、チケットブローカーサーバ50のチケット登録受付API(http://ticketbroker.example.com/registerTicket)にチケットを含むチケット登録要求を送信する。
【0099】
チケットブローカーサーバ50においては、
図16のフローチャートに沿った処理が実行される。すなわち、通信処理部502がチケット登録要求を受信すると(S20:肯定)、要求解析部504が、登録要求に含まれるチケット情報を抽出してチケット管理部506を介してチケットをチケットDB552に保存する(S22)。チケットDB552に対するチケットの保存に成功すると、チケット管理部506は、チケット登録完了の返信データを作成し(S24)、通信処理部502を介してユーザ端末40に返信する(S26)。
【0100】
なお、
図15のチケット登録画面において、「チケットを登録しない」を選択した場合には、その時点で、
図16の処理が終了となる。
【0101】
(チケットの取得(
図9(a)の処理))
次に、店舗サーバ20がユーザ端末40に対して発行されたチケットを取得する処理について説明する。
【0102】
ユーザがレンタカーを借り、レンタカー内の車載装置30(ナビ画面)上で目的地までのルート設定を行うと、車載装置30からレンタカー会社サーバ10に対してルート情報が送信される。
【0103】
一方、ルート情報を受信したレンタカー会社サーバ10は、チケットブローカーサーバ50のチケット配布受付API(http://ticketbroker.example.com/deliverTicket)にルート情報を含むチケット配布要求を送信する。
【0104】
図17には、このときのチケットブローカーサーバ50の処理がフローチャートにて示されている。チケットブローカーサーバ50では、通信処理部502がチケット配布要求を受信すると(S30:肯定)、要求解析部504において要求データからルート情報を抽出する(S32)。そして、要求解析部504は、店舗情報管理部508に対して抽出したルート上から一定の範囲内にある店舗のアクセス先(チケット受付URL)の一覧取得を要求する。
【0105】
店舗情報管理部508は、店舗情報DB554から該当する店舗を検索して、検索された店舗のチケット受付URLの一覧を作成し、チケット管理部506に送る(S34)。その後、チケット管理部506は、取得した一覧に記載されている全てのチケット受付URLに対して、ルート設定を行ったユーザのチケットを送信する(S36)。
【0106】
ここで、店舗情報DB554には、チケットの配布先候補となる店舗の情報があらかじめ保存されており、店舗情報管理部508を介して店舗情報が検索できる状態になっている。
図18には、店舗情報DB554の一例が示されている。この店舗情報DB554には、「店舗ID」に対応付けて、「店舗名」、「位置情報」、「チケット受付URL」、「店舗種別」の情報が格納されている。「店舗名」は、店舗の名称であり、「位置情報」は店舗の所在地のGPS情報(緯度、経度)である。「チケット受付URL」は、店舗サーバ20がチケットを受け付ける際のURLであり、発行されたチケットの送信先として利用される。また、「店舗種別」は、店舗の種類を示す情報である。
【0107】
一方、店舗サーバ20では、通信処理部202においてチケットを受信すると、要求解析部204において受信したチケットを抽出し、チケット管理部216に送る。チケット管理部216では、チケットDB256にチケットを保存して、管理する。
【0108】
なお、上記においては、チケットブローカーサーバ50は提供するデータに依存しないようレンタカー会社サーバ10と別のサーバとして説明しているが、レンタカー会社サーバ10がチケットブローカーサーバ50と一体化していてもよい。すなわち、チケットブローカーサーバ50を省略して、レンタカー会社サーバ10にチケットブローカーサーバ50の機能を持たせることとしてもよい。このようにすることで、チケットの利用範囲がレンタカー会社サーバ10に限定されるため、よりプライバシーに配慮したサービスを提供することができる。
【0109】
(チケットの送信(
図9(b)の(1)~(5)の処理))
次に、店舗サーバ20がレンタカー会社サーバ10に対してチケットを送信する処理について、
図19のフローチャートに沿って説明する。
【0110】
チケットブローカーサーバ50からチケットを受信した店舗サーバ20においては、要求解析部204がレンタカー会社サーバ10へのチケット送信準備を開始する(S40)。
【0111】
なお、チケット送信準備は、オペレータが管理画面上で所定の入力をした段階で開始することとしてもよいし、チケット受信後にあらかじめ設定された条件を満たした場合(例えば所定時間経過した場合)に自動的に開始してもよい。チケット送信準備を開始すると、要求生成部212は、通知条件管理部214に条件追加処理を依頼する。
【0112】
ここで、オペレータが管理画面上で入力をした段階でチケット送信準備を開始する場合、通知条件管理部214はチケットに付加する条件入力画面を管理画面上に表示する。そして、通知条件管理部214は、オペレータが入力した条件の値をもとに通知条件文字列を生成して、通知条件DB254に登録する。一方、自動的にチケット送信準備を開始する場合、オペレータが設定画面あらかじめ設定した条件の値を通知条件DB254から検索し、その値を元に通知条件文字列を生成する。
【0113】
例えば、
図12(b)のアクセスチケットに対して設定可能な条件は目的地までの距離(to_destination)と加減速量(acceleration_level)なので、5km手前に近づく、または、加減速の度合いが中程度になった場合に通知が欲しい場合であれば、{“to_destination”:{“distance”:”5km”,“from”:”35.6684415\,139.600784”},“acceleration_level”:”3”}といった通知条件文字列を生成する。ここでfromの値は店舗自身のGPS位置データ(緯度、経度)である。
【0114】
次いで、通知条件管理部214が、コールバック管理部220に対してコールバック用URLの生成を依頼する。依頼を受けたコールバック管理部220は、取得した運転情報を解析して、あらかじめ設定した条件に合えばメッセージを送信するコールバック関数と、そのコールバック関数呼び出し先URLを生成する(S42)。
【0115】
図20には、割引情報のメッセージを送信するコールバック関数の例が示されている。
図20においては、2行目のパラメータにコールバック関数呼び出し先URLが記述されている。また、
図20のコールバック関数は、2行目のURLに送信されたJSON形式の運転情報を解析し、通知条件にマッチすればshop1から「限定ランチ10%引き」というメッセージの送信依頼をレンタカー会社サーバ10に送信する、というものである。なお、メッセージは、割引情報以外の情報、例えば、空席状況などを伝えるものであってもよい。
【0116】
なお、
図20の例では、送信するメッセージが予め決まっている例を示しているが、メッセージは運転情報を受信したときに動的に作成してもよい。この場合、オペレータの端末に通知画面を出して、その場でメッセージを入力させるような処理をコールバック関数に記述してもよい。
【0117】
次いで、通知条件管理部214は、チケット管理部216に対して、当該チケットでデータ返信時に利用するセッション鍵(通信暗号鍵)の生成を依頼する。依頼を受けたチケット管理部216は、鍵管理部218経由で暗号鍵を生成して通知条件管理部214に返す(S44)。なお、鍵管理部218は、生成した暗号鍵を暗号鍵DB258に格納する。
【0118】
次いで、通知条件管理部214は、先に生成した通知条件文字列とコールバック関数呼び出し先URL、セッション鍵を要求生成部212に返す。これを受け、要求生成部212は、チケット処理要求を生成してレンタカー会社サーバ10のチケット処理受付API(http://rentacar.example.com/processTicket)に送信する。
【0119】
図21には、チケット処理要求の例が示されている。
図21のチケット処理要求のうち、“ticket”にはチケットをbase64エンコードした文字列が入り、“notify“、“callback”、“sessionKey”には、通知条件管理部214が生成した値がそれぞれ入る。
【0120】
次に、
図21のチケット処理要求を受信したレンタカー会社サーバ10の処理手順について、
図22のフローチャートに沿って説明する。
【0121】
レンタカー会社サーバ10では、通信処理部102がチケット処理要求を受信すると(S50:肯定)、受信したチケット処理要求を要求解析部104に送る。要求解析部104は、チケット処理要求から、チケットデータ、通知条件文字列、コールバック関数呼び出し先URL、セッション鍵を抽出してチケット処理部108に渡す(S52)。チケット処理部108は、デコードしたチケットデータから“ticketid”の値を取り出し、チケット管理部110に渡し、当該“ticketid”のチケットがチケットDB152に登録されているかどうか確認する(S54)。
【0122】
図23には、チケット管理部110で管理しているチケットDB152の一例が示されている。チケットDB152の「ticketid」のフィールドには、チケットの識別情報が格納され、「発行者」のフィールドには、発行者の識別情報が格納される。また、「type」のフィールドには、チケットの種別の情報が格納され、「暗号鍵」のフィールドには暗号鍵の情報が格納され、「ハッシュ値」のフィールドには、チケットのハッシュ値の情報が格納される。また、「有効期限」のフィールドには、チケットの有効期限となる年月日時の情報が格納される。
【0123】
チケット管理部110は、チケットDB152にチケット処理要求から取り出した“ticketid”が存在していれば、その“ticketid”に対応する「type」の値をチケット処理部108に返す。そして、チケット処理部108は、「type」の値に応じた処理を実行する(S56)。
【0124】
ここで、「type」の値が“plain”の場合には、チケット処理部108は、チケットのペイロードをチケット管理部110に送る。このとき、チケット管理部110はチケットDB152から取り出した暗号鍵でペイロードを復号してチケットのプログラムを実行し、実行結果をチケット処理部108に返す。そして、チケット処理部108は、受信した実行結果を送信データ生成部124に渡す。その後は、送信データ生成部124が、チケットの実行結果を含む返信データを作成して、通信処理部102を介して店舗サーバ20に返信データを送信する。
【0125】
一方、「type」の値が“promise”の場合、チケット処理部108は、ticketidと紐づけて通知条件をイベント監視部114に渡し、コールバック先(コールバック関数呼び出し先URL)とセッション鍵を送信先管理部126に送る。この場合、イベント監視部114は、ticketidと対応付けて通知条件を通知条件DB154に登録する。また、送信先管理部126は、通知オブジェクト(オブジェクトID)を生成し、コールバック先(コールバック関数呼び出し先URL)とセッション鍵を紐づけて通知オブジェクトDB166に登録した後、チケット処理部108にオブジェクトIDを返す。ここで、通知オブジェクトDB166には、
図24に示すように、「チケットID」に対応付けて、「オブジェクトID」と「コールバックURL」(コールバック関数呼び出し先URL)と、「セッション鍵」とが対応付けて格納されている。その後、チケット処理部108は、オブジェクトIDを送信データ生成部124に送り、送信データ生成部124はオブジェクトIDを含む返信データ(
図25参照)を作成する。そして、チケット処理部108は通信処理部102を介して店舗サーバ20に返信データを送信する。
【0126】
次に、レンタカー会社サーバ10からオブジェクトIDを含む返信データを受信した店舗サーバ20の処理について説明する。
【0127】
店舗サーバ20では、チケット処理要求に対する返信データ(オブジェクトIDを含む)を受信した通信処理部202が、要求解析部204に返信データを渡す。
【0128】
要求解析部204は、返信データからオブジェクトIDとチケットIDを抽出して両者を紐づけ、通知オブジェクト管理部210に対して、通知オブジェクトDB166に保存するよう依頼する。通知オブジェクト管理部210は、これらのデータを通知オブジェクトDB166に保存して処理を完了すると、以降、コールバック呼び出し待ち状態になる。
【0129】
(チケットコンテンツの送信(
図9(b)の(6)~(7)の処理))
車載装置30は、センサ188a~188dで取得した情報をデータ送信部304で送信用のデータ形式に加工して定期的、またはリアルタイムにレンタカー会社サーバ10の運転情報受信受付API(http://rentacar.example.com/uploadDriveData)に送信する。なお、車載装置30からの運転情報の送信はインターネットなどのネットワーク80を介さず、メーカーの専用ネットワークを利用してメーカーが運営するデータベースに蓄積される場合もある。この場合には、レンタカー会社サーバ10からメーカーのデータベースに一定の間隔でアクセスして、データを取得することとしてもよい。
【0130】
これに対し、レンタカー会社サーバ10においては、通信処理部102が運転情報を受信すると、要求解析部104に運転情報を送る。そして、要求解析部104は、運転情報管理部118に対して運転情報を送信し、運転情報DB156に格納させる。
【0131】
図26には、レンタカー会社サーバ10による、運転情報を監視する処理がフローチャートにて示されている。
【0132】
図26に示すように、イベント監視部114は、運転情報管理部118の運転情報DB156の更新を常に監視している(S60)。この場合、イベント監視部114は、運転情報DB156において更新されている車のデータへのアクセスを必要とするチケットをチケット管理部110から取得して、チケットのプログラムを運転情報DB156に対して実行する。
【0133】
そして、イベント監視部114は、チケットのプログラムの実行により運転情報DB156から得られたデータに対して、当該チケットの通知条件に合致しているかどうかをチェックする(S62)。例えば、通知条件が、
図21で示した{“to_destination”:{“distance”:”5km”,“from”:”35.6684415\,139.600784”},“acceleration_level”:”3”}という通知条件であったとする。この場合、イベント監視部114は、運転情報に含まれる位置データとfromの値から距離を算出し、その結果が5kmより小さい場合に通知条件に合致したと判断する。あるいは、イベント監視部114は、運転情報に含まれる速度、アクセル操作量、ブレーキ操作量の変動幅が一定時間で一定数値を一定回数超えた(すなわち急加減速操作が頻繁に起こるようになり疲れてきたことを意味する)場合に、通知条件に合致したと判断する。
【0134】
イベント監視部114は、通知条件に合致した場合(S64:肯定)に、その運転情報とチケットIDを送信データ生成部124に送る。そして、送信データ生成部124は、送信先管理部126を介して通知オブジェクトDB166から通知チケットIDに対応する通知オブジェクトデータを抽出して、運転情報を暗号鍵で暗号化した送信データを生成する。その後、送信データ生成部124は、生成した送信データを通信処理部102を介してコールバック関数呼び出し先URL(コールバックURI)に送信する(S66)。なお、ステップS64の判断が否定された場合、すなわち通知条件に合致しなかった場合には、イベント監視部114は、ステップS60に戻る。
【0135】
次に、コールバックURIでデータを受信した店舗サーバ20の処理について、
図27のフローチャートに沿って説明する。
【0136】
店舗サーバ20においては、通信処理部202がコールバックURI宛の送信データを受信すると(S70:肯定)、要求解析部204に送信データを渡す。また、要求解析部204は、コールバック管理部220が管理するコールバック関数DB260からコールバックURIに対応するコールバック関数を抽出して受信データとともに通知データ処理部208に処理を渡す。そして、通知データ処理部208は、通知オブジェクト管理部210に問い合わせて、コールバックURIに対応したオブジェクトIDを抽出する(S72)。
【0137】
次いで、通知データ処理部208は、オブジェクトIDに紐づけられたチケットIDを鍵管理部218に渡して該当する暗号鍵を取得し、受信したデータを復号する。そして、復号したデータとオブジェクトIDをコールバック管理部220に渡して実行する。
【0138】
図20のコールバック関数の場合、受信した運転データからレンタカーが店舗に近づいたことがわかるので、コールバック管理部220は、“限定ランチ10%引き“というメッセージを作成する。また、コールバック管理部220は、要求生成部212及び通信処理部202を介して、レンタカー会社サーバ10にメッセージ転送要求を送信する(S74)。
【0139】
なお、上記例では、メッセージ転送要求はメッセージの文面とナビ画面に表示する画像イメージだけを送ることとしているが、これに限られるものではない。例えば、ナビ画面へのアクセス権や車の情報(例えば現在位置など)を利用したメッセージ送信を行いたい場合には、レンタカー会社サーバ10のデータベースへアクセスするためのメッセージ転送用のチケット(ナビ表示チケット)を事前にユーザから取得しておき、当該チケットを一緒に送信してもよい。なお、メッセージ転送用のチケットは事前にユーザから取得して店舗サーバ20で保存しておいてもよい。また、最初のデータ取得用のチケットの中にメッセージ転送用チケットを埋め込んでチケットを作成しておき、レンタカー会社サーバ10が通知データと一緒にメッセージ転送用チケットを送信してもよい。
【0140】
(メッセージ表示(
図9の(8)、(9)の処理))
以下、受信したメッセージ転送要求にナビ表示チケットが含まれる場合の、レンタカー会社サーバ10の処理について述べる。
【0141】
図28は、ナビ表示チケットの一例を示す図である。
図27のナビ表示チケットは、レンタカーの車載装置30(ナビ画面)に表示を出すアクセス権(cartoken)を取得するチケットであり、“payload”に当該レンタカーのcartokenデータを取得するプログラムが入っている。このチケットはレンタカーを借りたユーザがレンタカー申込をしたときに生成依頼して店舗サーバ20に事前に渡しているものとし、メッセージ転送要求とともに店舗サーバ20から送信される。
【0142】
レンタカー会社サーバ10の通信処理部102は、メッセージ転送要求を受信すると、要求解析部104に渡す。そして、要求解析部104は、要求内容からメッセージ(postData)とチケットを抽出し、それぞれのデータをメッセージ処理部116とチケット処理部108に渡す。メッセージ処理部116はメッセージのデータからメッセージ文を生成して送信データ生成部124に送る。一方、チケット処理部108は上述したチケット処理と同様の手順で情報管理部120が管理する車情報DB160のデータから当該レンタカーのcartokenを取得して送信データ生成部124に送る。送信データ生成部124は渡されたデータを含むメッセージ表示要求を生成して通信処理部102経由で車載装置30のメッセージ表示受付API(http://car0001.example.com/displayMessage)に送信する。
【0143】
一方、メッセージ表示要求を受信した車載装置30の通信処理部302はデータ処理部308に要求内容を渡す。データ処理部308は要求内容からcartokenとメッセージ内容を抽出し、cartokenが正しいことを検証すると画面表示部310にメッセージ内容を表示する。
図29は、
図20の割引情報メッセージに対応したナビ画面上に表示されたメッセージの表示例である。送信されたメッセージとQRコード(登録商標)が地図上の店舗の位置に表示され、画面上の「店を予約する」ボタンを押すと、店の予約サイトにアクセスして予約をすることができる。
【0144】
(チケット消滅について)
ところで、レンタカー会社サーバ10のチケット管理部110は定期的にチケットDB152の内容をチェックしており、有効期限が過ぎたエントリがあれば、削除する。したがって、削除したエントリに対応するチケットを受信した場合には、チケットDB152に該当するチケットがないため、チケット管理部110は、チケットの処理を行わずに、無効である旨のエラー情報を店舗サーバ20に返信する。
【0145】
図30(a)、
図30(b)は、データ提供側サーバ1000とデータ取得側サーバ2000の処理の概要を、第1フェーズと第2フェーズの2つのフェーズに分けて模式的に示す図である。データ提供側サーバ1000は、上述したレンタカー会社サーバ10に相当し、データ取得側サーバ20001は、上述した店舗サーバ20に相当する。
【0146】
第1フェーズでは、
図30(a)に示すように、データ取得側サーバ2000が、データアクセス用のチケットとリクエストパラメータを含むチケット処理要求(データアクセス用パラメータ)をデータ提供側サーバ1000に送信する。ここで、リクエストパラメータには、前述した通知条件と通知手段情報(コールバックURI)が含まれる。また、データ提供側サーバ1000は、イベントハンドラー1002(
図4のイベント監視部114に相当)に受信した通知条件をセットする。そして、通知オブジェクト生成部1004(
図4の送信先管理部126に相当)が、コールバックURIに対応したプログラムを含む通知オブジェクトを生成し、生成した通知オブジェクトを含む返信データをデータ取得側サーバ2000に返信する。そして、データ取得側サーバ2000では、通知受信用の通知オブジェクトをイベントリスナー2002(
図5の通知オブジェクト管理部210に相当)にセットする。
【0147】
一方、第2フェーズでは、
図30(b)に示すように、データ提供側サーバ1000のイベントハンドラー1002は、通知条件に合致したことを検出すると、チケットのプログラムを実行してデータを取得する。そして、データ提供側サーバ1000は、データ取得側サーバ2000から提供された通知手段(コールバックURI)へのアクセスにより、取得したデータを送信する。このとき、データ提供側サーバ1000は、チケットに含まれていたセッション鍵とともにデータを送信する。データ取得側サーバ2000では、セッション鍵が正しいことを検証した後、データを通知オブジェクトにセットする。そして、データ取得側サーバ2000のイベントリスナー2002は、通知があったことを検知すると、通知オブジェクトからデータを取得する。
【0148】
なお、第2フェーズは、予め設定された期限まで、又は終了条件が成立するまで処理を継続する。
【0149】
図30(a)、
図30(b)のようにすることで、通知処理をチケットの認可手順に含めているため、一度の認可処理で非同期のデータ受信が可能になる。なお、通知の安全性は、データ提供側サーバ1000にだけコールバックURIを許可することで保証する。
【0150】
また、チケット内にパラメータ処理のプログラムを含めることで、チケットとパラメータの関連付けを改竄できないようにしている。
【0151】
これまでの説明から明らかなように、本実施形態では、送信先管理部126と、送信データ生成部124とを含んで、通知オブジェクトを含む返信データを店舗サーバ20に返信する返信部としての機能が実現されている。また、本実施形態では、イベント監視部114と、送信データ生成部124とを含んで、通知条件を満たしたときに運転情報を店舗サーバ20に送信する送信部としての機能が実現されている。
【0152】
以上詳細に説明したように、本実施形態によると、レンタカー会社サーバ10の通信処理部102は、ユーザが他者による利用に同意したデータのアクセスチケット、通知条件、コールバックURI、を含むチケット処理要求を店舗サーバ20から受信する。また、送信先管理部126は、コールバックURIに対応する通知オブジェクトを生成し、送信データ生成部124は、通知オブジェクトを含む返信データを店舗サーバ20に送信する。そして、イベント監視部114の監視の下、運転情報が通知条件を満たしたときに、送信データ生成部124は、通知条件を満たした運転情報を含む送信データを生成し、通信処理部102を介して店舗サーバ20のコールバックURIに送信データを送信する。これにより、本実施形態では、店舗サーバ20から一度チケット処理要求を受信すれば、通知条件を満たした適切なタイミングで、送信データを店舗サーバ20に送信することができる。また、レンタカー会社サーバ10にのみコールバックURIを通知しているので、送信データの安全性を確保することができる。
【0153】
したがって、店舗サーバ20では、通知条件を満たしたタイミングで、ユーザが利用する車載装置30に店舗に誘導する情報(購買意欲を増進させる情報)を送信することができる。これにより、ユーザに対し、店舗の有用な情報を適切なタイミングで提供することができる。また、店舗にユーザが来店する可能性が高まるため、店舗にとっても有益である。すなわち、ユーザの状態に合わせた適切なリコメンドが可能になり、ユーザと店舗のマッチングの精度を向上することができる。また、レンタカー会社は、運転情報を店舗に提供することで、店舗からマージン(手数料)を得ることができる。
【0154】
また、本実施形態では、チケット処理要求に暗号鍵(セッション鍵)が含まれており、送信データ生成部124は、暗号鍵で暗号化した運転情報を送信データに含めて店舗サーバ20に送信する(S66)。これにより、運転情報の秘匿化を図ることができる。
【0155】
また、イベント監視部114は、有効期限が終わるまで又は予め定められている終了条件を満足するまで、運転情報が通知条件を満たすか否かを監視する。これにより、予め定めた範囲で、店舗に必要な運転情報を提供することができる。
【0156】
なお、上記実施形態では、レンタカー会社と店舗とユーザの三者間でデータアクセス制御システムを利用する場合について説明したが、これに限られるものではない。情報を提供する者、情報を収集する者、収集された情報を用いて情報を提供する者に対して別の情報を提供する者、の関係にある三者であれば、職種、業種等は問わない。
【0157】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記憶媒体(ただし、搬送波は除く)に記録しておくことができる。
【0158】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD-ROM(Compact Disc Read Only Memory)などの可搬型記憶媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0159】
プログラムを実行するコンピュータは、例えば、可搬型記憶媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記憶媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0160】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【0161】
なお、以上の実施形態の説明に関して、更に以下の付記を開示する。
(付記1) ユーザが他者による利用に同意したデータに対してアクセス可能なプログラムを内包するアクセスチケット、前記データを送信する送信条件、及び前記データの送信先の情報、を含むデータアクセス用パラメータを前記送信先の外部装置から受信する受信部と、
前記送信先の情報に対応する通知オブジェクトを生成し、前記送信先に返信する返信部と、
前記送信条件を満たしたときに、前記アクセスチケットのプログラムを実行してデータを取得し、取得した前記データを前記通知オブジェクトにセットするために、取得した前記データを前記送信先に送信する送信部と、
を備える情報処理装置。
(付記2) 前記データアクセス用パラメータは、暗号鍵を含み、
前記送信部は、取得した前記データを前記暗号鍵で暗号化して送信する、ことを特徴とする付記1に記載の情報処理装置。
(付記3) 前記送信部は、予め定められている終了条件を満たすまで、前記送信条件を満たすか否かを繰り返し判定することを特徴とする付記1又は2に記載の情報処理装置。
(付記4) 前記データを受信した前記外部装置からの要求に応じて、前記ユーザが利用する装置に対して前記外部装置に関する情報を提供する提供部、を更に備える付記1~3のいずれかに記載の情報処理装置。
(付記5) 前記データは、前記ユーザが利用する車の走行に関するデータであり、
前記外部装置は、前記車が走行する予定のルートに基づいて特定された店舗の情報処理装置であり、
前記提供部は、前記店舗における前記ユーザの購買意欲を増進させる情報を前記ユーザが利用する装置に提供する、ことを特徴とする付記4に記載の情報処理装置。
(付記6) ユーザが他者による利用に同意したデータに対してアクセス可能なプログラムを内包するアクセスチケット、前記データを送信する送信条件、及び前記データの送信先の情報、を含むデータアクセス用パラメータを前記送信先の外部装置から受信し、
前記送信先の情報に対応する通知オブジェクトを生成し、前記送信先に返信し、
前記送信条件を満たしたときに、前記アクセスチケットのプログラムを実行してデータを取得し、取得した前記データを前記通知オブジェクトにセットするために、取得した前記データを前記送信先に送信する、
処理をコンピュータに実行させるためのデータアクセス制御プログラム。
(付記7) 前記データアクセス用パラメータは、暗号鍵を含み、
前記送信する処理では、取得した前記データを前記暗号鍵で暗号化して送信する、ことを特徴とする付記6に記載のデータアクセス制御プログラム。
(付記8) 前記送信する処理では、予め定められている終了条件を満たすまで、前記送信条件を満たすか否かを繰り返し判定することを特徴とする付記6又は7に記載のデータアクセス制御プログラム。
(付記9) 前記データを受信した前記外部装置からの要求に応じて、前記ユーザが利用する装置に対して前記外部装置に関する情報を提供する、処理を前記コンピュータに更に実行させる付記6~8のいずれかに記載のデータアクセス制御プログラム。
(付記10) 情報処理装置と外部装置とを備え、前記情報処理装置が有するユーザが他者による利用に同意したデータに対するアクセスを制御するデータアクセス制御システムであって、
前記情報処理装置は、
前記データに対してアクセス可能なプログラムを内包するアクセスチケット、前記データを送信する送信条件、及び前記データの送信先の情報、を含むデータアクセス用パラメータを前記送信先の外部装置から受信する受信部と、
前記送信先の情報に対応する通知オブジェクトを生成し、前記送信先に返信する返信部と、
前記送信条件を満たしたときに、前記アクセスチケットのプログラムを実行してデータを取得し、取得した前記データを前記通知オブジェクトにセットするために、取得した前記データを前記送信先に送信する送信部と、
を備える、データアクセス制御システム。
(付記11) 前記情報処理装置から発行されたアクセスチケットを有するユーザ端末から前記アクセスチケットを取得し、前記外部装置に受け渡す仲介装置を更に備える付記10に記載のデータアクセス制御システム。
【符号の説明】
【0162】
10 レンタカー会社サーバ(情報処理装置)
20 店舗サーバ(外部装置)
30 車載装置(ユーザが利用する装置)
40 ユーザ端末
50 チケットブローカーサーバ(仲介装置)
100 データアクセス制御システム
102 通信処理部(受信部)
114 イベント監視部(送信部の一部)
116 メッセージ処理部(提供部)
124 送信データ生成部(返信部の一部、送信部の一部)
126 送信先管理部(返信部の一部)