以下詳細な本発明の実施例に関して説明する。なお、以下の各実施例は、処理の内容を矛盾させない範囲で適宜組み合わせることが可能である。以下、図面に基づいて各実施例について説明する。
[実施例1]
図1は、実施例1に係るサービス提供システムの構成図である。サービス提供システムは、サーバ1、場の機器2(端末21またはタグ22)、通信装置3(第一の通信装置301および第二の通信装置302)を含む。
サーバ1は、特定の場所に存在するユーザの通信装置3(例えば、第一の通信装置301や第二の通信装置302)に、特定のサービスを提供するコンピュータである。サーバ1と、通信装置3は、無線通信網やインターネット等のネットワークNを介して、通信を行う。また、サーバ1は、場の機器2を管理する。
場の機器2は、特定の場所に設置された機器であって、例えば、端末21またはタグ22である。端末21は、特定の場所に設置されたコンピュータであって、例えば、店舗に設置されたポイント付与端末や、広告等を表示するデジタルサイネージ端末である。タグ22は、特定の場所に設置された無線通信機能を有するタグであって、例えば、NFCタグである。
場の機器2は、ユーザが所持する通信装置3が特定の場所または範囲に存在することを証明する為に、場の機器2を識別する機器識別情報を、通信装置3に、何らかの方法で取得させる。言い換えると、機器識別情報を取得することができた通信装置3は、特定の場所または範囲に存在することが認証される。
例えば、場の機器2が、端末21である場合、実施例1においては、端末を識別する端末IDを、ユーザの通信装置3に、近距離無線通信機能を用いて送信する。端末21は、端末IDをQRコードなどの、通信装置が読み取り可能な情報に変換して、通信装置3に読み取らせてもよい。また、例えば、場の機器2が、タグ22である場合、実施例1においては、タグ22は、タグを識別するタグIDを、通信装置3に、無線通信機能を用いて送信する。なお、機器識別情報は、タグIDと端末IDを含む。
次に、通信装置3は、ユーザが所持するスマートフォンやタブレットコンピュータ等であって、第一の通信装置301または第二の通信装置302である。通信装置3は、ネットワークNを介して、サーバ1にアクセスすることで、ユーザは、特定の場所に応じたサービスを享受する。
図1においては、場の機器2から機器識別情報を取得する通信装置3が、第一の通信装置301である。つまり、第一の通信装置301は、場の機器2から機器識別情報を取得する事で、第一の通信装置301が特定の場所または範囲に存在することが認証される。そして、第一の通信装置301は、取得した機器識別情報をサーバ1へ送信する事で、第一の通信装置301のユーザは、特定のサービスを享受することができる。
さらに、第一の通信装置301は、所定の条件の下、場の機器2に代わって、場の機器2から取得した機器識別情報または、当該機器識別情報に関連する情報を、第二の通信装置302に取得させる。以下、ある通信装置3(例えば第一の通信装置301)が、所定の条件の下で、場の機器2に代わって、場の機器2から取得した機器識別情報または、当該機器識別情報に関連する情報を、他の通信装置3(例えば第二の通信装置302)に取得させることを、代理認証と称する。なお、機器識別情報に関連する情報については、後述する。
一方、代理認証を実行している第一の通信装置301経由で、機器識別情報または、当該機器識別情報に関連する情報を取得する通信装置3が、第二の通信装置302である。第二の通信装置302は、機器識別情報または、当該機器識別情報に関連する情報を、第一の通信装置301から取得する事で、第二の通信装置302が特定の場所または範囲に存在することが認証される。そして、第二の通信装置302は、取得した機器識別情報をサーバ1へ送信する事で、第二の通信装置302のユーザは、特定のサービスを享受することができる。
ここで、所定の条件とは、時間または距離によって限定される範囲に関する条件である。例えば、第一の通信装置301が機器識別情報を取得してからの経過時間が所定の閾値以下であることや、第一の通信装置301が機器識別情報を取得してからの移動距離が所定の閾値以下であること、などが条件として採用される。また、所定の条件は、経過時間と移動距離の両方に関する条件であってもよい。
よって、第一の通信装置301は、所定の条件を満たす限り、代理認証に係る機能をオンにすることで、第二の通信装置302に、機器識別情報または、当該機器識別情報に関連する情報を、取得させる。一方、所定の条件を満たさない場合には、代理認証に係る機能をオフにすることで、第一の通信装置301の代理認証機能により、これ以上、他の通信装置へ、機器識別情報や、機器識別情報に関連する情報が、拡散されないようにする。つまり、他の通信装置は、第一の通信装置301の代理認証機能を利用して、特定のサービスを享受することができなくなる。なお、所定の条件は、場の機器2の設置場所や、提供されるサービスの特性に応じて、サーバ1の管理者により適宜設定される。
図2は、実施例1に係るトランザクションの概要図である。なお、図2では、場の機器2として、NFCタグ22を用いて、説明する。まず、第一の通信装置301は、近距離無線通信機能を用いて、NFCタグ22にタグIDの送信を要求する(101)。そして、NFCタグ22は、近距離無線通信機能を用いて、タグIDを、第一の通信装置301に返信する(102)。第一の通信装置301は、ユーザIDと、タグIDとを、サーバ1に送信する(103)。なお、ユーザIDは、サービスの利用登録時に発行される、ユーザを識別するユーザ識別情報である。また、第一の通信装置301は、ユーザIDと併せて、通信装置3の識別情報である通信装置識別情報も併せて送信してもよい。
サーバ1は、ユーザIDに対応するユーザに特定のサービスを提供する(104)。例えば、サーバ1は、ユーザIDに紐づいているポイント数に、所定のポイントを加算する。また、サーバ1は、同一のタグIDを送信したユーザID同士を紐づけることで、グループ化を実行する。
そして、サーバ1は、代理認証に係る所定の条件と、機器識別情報に関連する情報である代理認証値を送信する(105)。代理認証値は、第一の通信装置301のユーザIDおよび機器識別情報に基づき生成される値である。代理認証値は、第二の通信装置302が、どの通信装置3(例えば、第一の通信装置301)により代理認証を受けたのかを特定するために用いられる。なお、代理認証値ではなく、サーバ1は、機器識別情報そのものを送信するとしてもよい。
つぎに、代理認証に係る所定の条件と代理認証値を受信した第一の通信装置301は、代理認証機能をオンとするとともに、例えば、経過時間や移動距離の計測を開始し、所定の条件の下で、代理認証機能を制御する。
一方、代理認証を望む第二の通信装置302は、第一の通信装置301に対して、近距離無線通信機能を用いて、代理認証値を要求する信号を送信する(106)。そして、第一の通信装置301は、代理認証機能がオンであれば、代理認証値を送信する(107)。第一の通信装置301は、所定の条件の下、経過時間や移動距離が閾値を超えた場合に、代理認証機能をオフとするため、代理認証機能がオフの場合、106における代理認証値の送信は実行されない。
代理認証値を取得した第二の通信装置302は、第二の通信装置302に係るユーザIDと、代理認証値を、サーバ1に送信する(108)。サーバ1は、ユーザIDにより特定されるユーザに対して、特定のサービスを提供する(109)。さらに、サーバ1は、代理認証によって認証された第二の通信装置302に対しても、代理認証のための条件と、代理認証値を送信する(110)。
ここで、第二の通信装置302に対して条件を送信する前に、サーバ1は、まず、第一の通信装置301に対して、タグIDを取得してからの経過時間や移動距離の送信を要求する。そして、サーバ1は、初期の所定の条件に対して経過時間や移動距離を適用した、更新条件を生成する。そして、更新条件を、代理認証値とともに第二の通信装置302に対して送信する。
例えば、初期の所定の条件が、「経過時間が3分以下」であって、第一の通信装置301から、現時点での経過時間として「2分」という情報を受信した場合、更新条件は、「経過時間が1分以下」となる。
以上のように、第二の通信装置302は、NFCタグ22から直接的にタグIDを取得せずとも、第一の通信装置1からタグIDを取得することができる。つまり、第二の通信装置302も特定の場所に応じたサービスを享受することができる。さらに、所定の条件の下でのみ、第一の通信装置301は、代理認証機能をオンにするため、特定の場所や範囲に存在しない他の通信装置に対して、サービスが提供されることを防ぐことができる。
つぎに、より詳細に実施例1に係るサービス提供システムについて、説明する。図3は、実施例1に係るサーバの機能ブロック図である。
サーバ1は、通信部11、制御部12、管理情報記憶部13、条件情報記憶部14を有する。また、図2に示したサーバ1は、サービスとして、複数のユーザをグループ化するとともに、グループ内の各ユーザの通信装置3に、同様の情報を配信したり、画面を共有させたりする。よって、本実施例におけるサーバ1は、さらに、グループ情報記憶部15を有する。
通信部11は、通信装置3と通信を行う。例えば、通信部11は、通信装置3から、機器識別情報または代理認証値を含むサービス要求を受信する。なお、サービス要求は、特定の場所に応じたサービスの提供を依頼する要求であって、機器識別情報または代理認証値以外に、提供するユーザを特定する為に、ユーザIDを含む。
制御部12は、サーバ1全体の各種処理を制御する。例えば、特定の場所または範囲に存在することが認証された通信装置3に対して、特定のサービスを提供する。なお、通信装置3から、機器識別情報や代理認証値を受信する事で、当該通信装置は特定の場所にいることが認証されたものとみなされる。
管理情報記憶部13は、管理情報を記憶する。管理情報は、サーバ1にアクセスした通信装置3を管理するための情報である。図4は、実施例1に係る管理情報記憶部のデータ構成例を示す。管理情報記憶部13は、ユーザIDと、ユニーク値と、タグID、受信代理認証値、送信代理認証値を対応付けて記憶する。
ユーザIDは、通信装置から受信したユーザIDである。ユーザIDは、例えば、図2における103や108でサーバ1に通知される。また、101や106に先駆けて、サーバ1とセッションを確立する際に、通信装置3からサーバ1に通知されてもよい。
ユニーク値は、確立されたセッションにおいてのみ有効な識別情報であって、例えば、ユーザIDとセッションIDに応じて生成される。例えば、サーバ1は、ユーザIDに基づき、当該セッションにおいて有効なユニーク値を生成し、当該セッションにおいては、ユーザIDの代わりにユニーク値を利用して、ユーザを特定する事としてもよい。よって、ユニーク値が生成された場合には、ユーザIDに対応付けて、ユニーク値が記憶される。
タグIDは、機器識別情報の一例であって、例えば、図2における103にて、通信装置3からタグIDがサーバ1に対して送信された場合に、格納される。
受信代理認証値は、代理認証機能がオンの第一の通信装置301から第二の通信装置302が取得した代理認証値であって、当該代理認証値をサーバ1が第二の通信装置302から受信した場合に、格納される(図2における108)。
図4の例では、サーバ1が、ユーザID「002」(またはユニーク値「xxxx2」)に対応する第二の通信装置302から、代理認証値「yyyy1」を受信した場合に、制御部12は、受信した代理認証値「yyyy1」を、ユーザID「002」(またはユニーク値「xxxx2」)に対応付けて、受信代理認証値に格納する。
なお、図4の例では、ユーザID「001」(またはユニーク値「xxxx1」)に対応する第一の通信装置301は、直接、NFCタグ22からはタグID「tag1」を取得し、サーバへ送信している。よって、サーバ1は、第一の通信装置301から代理認証値を受信することはない。このため、ユーザID「001」(またはユニーク値「xxxx1」)に係るレコードの受信代理認証値は「Null」である。
次に、送信代理認証値は、通信装置に条件とともに送信される代理認証値である(図2における105や110)。送信代理認証値は、制御部12が、図2における105や110に先駆けて生成し、送信対象の通信装置3のユーザIDやユニーク値に対応付けて、管理情報記憶部13に格納する。
図4の例では、制御部12は、ユーザID「001」(またはユニーク値「xxxx1」)に対応する第一の通信装置301に代理認証値を送信する為に、一意の値「yyyy1」を生成する。そして、生成された代理認証値「yyyy1」を、送信代理認証値として、ユーザID「001」(またはユニーク値「xxxx1」)に対応付けて、管理情報記憶部13に格納する。
さらに、サーバ1が第二の通信装置302に対しても、代理認証値を送信する場合には、新たに生成された代理認証値「yyyy2」が、管理情報記憶部13に格納される。なお、代理認証値は、例えば、ユーザIDおよびタグIDまたは受信代理認証値に基づき、生成される一意の値である。
ここで、第二の通信装置302が、第一の通信装置301から代理認証値を取得した場合について、説明する。第二の通信装置302は、ユーザID「002」(またはユニーク値「xxxx2」)および代理認証値「yyyy1」を含むサービス要求を、サーバ1へ送信する。
サービス要求を受信したサーバ1の制御部12は、ユーザID「002」(またはユニーク値「xxxx2」)のレコードを新たに生成し、ユーザID「002」(またはユニーク値「xxxx2」)に対応付けて、受信代理認証値として、「yyyy1」を記憶する。
また、制御部12は、送信代理認証値に「yyyy1」を持つレコードを特定する。なお、送信代理認証値に「yyyy1」を持つレコードにおいて、仮にタグIDが「Null」である場合には、制御部12は、特定されたレコードにおける受信代理認証値の値をキーに、当該値を送信代理認証値に持つレコードを検索する処理を、さらに実施する。
図4の例では、制御部12は、送信代理認証値に「yyyy1」を持つレコードから、タグID「tag1」およびユーザID「001」(またはユニーク値「xxxx1」)を取得する。そして、制御部12は、タグIDに応じたサービスを、第二の通信装置302に提供したり、タグIDに応じた所定の条件を、後述の条件情報記憶部14から取得する。さらに、第二の通信装置302に条件を送信する前に、ユーザID「001」(またはユニーク値「xxxx1」)に対応する第一の通信装置301から、最新の経過時間や移動距離を取得し、条件を更新し、第二の通信装置302に更新条件を送信する。
次に、図3における条件情報記憶部14は、通信装置3に送信する条件に関する情報を記憶する。図5は、実施例1に係る条件情報記憶部のデータ構成例を示す。条件情報記憶部14は、タグIDと条件とを対応付けて記憶する。
図5の例では、例えば、タグID「tag1」に対応するNFCタグ22に関しては、通信装置3において代理認証機能がオンに設定されてからの「経過時間が3分以内」に限って、通信装置3は、代理認証値を他の通信装置3に取得させることができる。
制御部12は、第一の通信装置301からタグID「tag1」を含むサービス要求を受信した場合、サービスを提供するとともに、タグID「tag1」に対応する条件「経過時間が3分以内」を条件情報記憶部14から取得する。そして、制御部12は、通信部11を制御して、第一の通信装置301へ送信する。
さらに、制御部12は、第二の通信装置302から代理認証値「yyyy1」を含むサービス要求を受信した場合、管理情報記憶部13を参照して、「yyyy1」を送信代理認証値に持つレコードから、タグID「tag1」およびユーザID「001」(またはユニーク値「xxxx1」)を取得する。
そして、制御部12は、タグID「tag1」に対応する条件「経過時間が3分以内」を条件情報記憶部14から取得する。さらに、通信部11を制御して、ユーザID「001」に対応する第一の通信装置301へ、最新の経過時間の送信を依頼する。例えば、最新の経過時間として「2分」を取得した場合、タグID「tag1」に対応する条件「経過時間が3分以内」を、「経過時間が1分以内」に変更した上で、第二の通信装置302へ、更新条件を送信する。
次に、図3におけるグループ情報記憶部15は、グループ化されたユーザの情報を記憶する。図6は、実施例1に係るグループ情報記憶部のデータ構成例を示す。グループ情報記憶部15は、タグIDとグループメンバーとを対応付けて記憶する。
図6の例では、タグID「tag1」をNFCタグ22から取得した通信装置(第一の通信装置301)に係るユーザと、タグID「tag1」に関わる代理認証値を代理認証機能がオンの通信装置から取得した通信装置(第二の通信装置302)に係るユーザとが、同一のグループとしてグループ化される。例えば、制御部12によって、ユーザID「001」のユーザと、ユーザID「002」のユーザが、タグID「tag1」に関するグループのメンバーとして管理される。
図7は、実施例1に係る通信装置の機能ブロック図である。なお、図7における通信装置3は、第一の通信装置301または第二の通信装置302として機能する。
通信装置3は、第一の通信部31、第二の通信部32、制御部33、計測部34、代理認証情報記憶部35を有する。第一の通信部31は、サーバ1と、ネットワークNを介した通信を行う。例えば、第一の通信部31は、サーバ1から、ユニーク値や条件情報、代理認証値を取得する。
第二の通信部32は、場の機器2と、近距離無線通信による通信を行う。例えば、NFCタグ22から、タグIDを取得する。ただし、場の機器2に表示されたQRコードを、通信装置3が読み取る方式の場合、第二の通信部32は不要である。第二の通信部32の代わりに、通信装置3は撮影部(図示せず)および表示部(図示せず)を有する。
タグIDを取得する方式の場合であって、かつ、通信装置3が第一の通信装置301として機能する場合には、第二の通信部32は、第二の通信装置302に代理認証値を送信する。さらに、通信装置3が第二の通信装置302として機能する場合には、第二の通信部32は、第一の通信装置301から代理認証値を受信する。
また、通信装置3が読み取る方式の場合であって、かつ、通信装置3が第一の通信装置301として機能する場合には、撮影部は、場の機器2に表示されたQRコードを含む画像を撮影し、制御部33に入力する。さらに、代理認証機能実行時には、制御部33が生成したQRコードを含む画像を、表示部に表示する。また、通信装置3が第二の通信装置302として機能する場合には、撮影部は、第一の通信装置301に表示されたQRコードを含む画像を撮影し、制御部33に入力する。
制御部33は、通信装置3全体の各処理を制御する。制御部33は、さらに、認証制御部331と、代理認証制御部332とを有する。認証制御部331は、タグIDなどの機器識別情報または代理認証値を取得することで、通信装置3が特定の場所または範囲に存在することを認証する。そして、認証制御部331は、第一の通信部31を制御して、サーバ1に、機器識別情報または代理認証値を含むサービス要求を送信する事で、特定のサービスの提供を要求する。
代理認証制御部332は、代理認証機能のオンまたはオフを制御するとともに、代理認証機能がオンの場合に、第二の通信部32を制御して、代理認証値を、他の通信装置に取得させる。例えば、代理認証制御部332は、サーバ1から条件を取得した時点で、代理認証機能をオンとし、条件を満たさなくなった時点で、代理認証機能をオフとする。また、代理認証制御部332は、代理認証機能がオンの場合に、第二の通信部32を制御して、他の通信装置に、代理認証値を取得させる。
計測部34は、経過時間または移動距離を計測する。例えば、計測部34は、代理認証機能がオンとなってからの経過時間を計測するタイマーである。また、計測部34は、代理認証機能がオンとなってからの移動距離を計測する加速度センサーである。
代理認証情報記憶部35は、代理認証に必要な代理認証情報を記憶する。図8は、実施例1に係る代理認証情報記憶部のデータ構成例を示す。代理認証情報記憶部35は、代理認証値および条件を対応付けて記憶する。さらに、サーバ1から取得したユニーク値を対応付けて記憶してもよい。
図8の例では、代理認証値「yyyy1」と、条件「経過時間が3分以内」という情報が、代理認証情報として記憶されている。
次に、各装置の処理の流れを説明する。図9は、実施例1に係るサーバにおけるサービス提供処理のフローチャートである。通信部11は、通信装置3からユーザIDを受信する(Op.1)。そして、制御部12は、ユニーク値を生成するとともに、生成したユニーク値を、ユーザIDに対応付けて、管理情報記憶部13に格納する(Op.2)。制御部12の制御の下、通信部11は、ユニーク値を、通信装置3に送信する(Op.3)。
制御部12は、通信部11が、通信装置3から、サービス要求を受信したか否かを判定する(Op.4)。なお、サービス要求は、機器識別情報または代理認証値のいずれか一方を含むとともに、ユニーク値(またはユーザID)を含む。機器識別情報を含むサービス要求は、通信装置3が、直接、場の機器2から機器識別情報を取得した場合に、通信装置3により送信されるサービス要求である。また、代理認証値を含むサービス要求は、通信装置3が、代理認証機能がオンの他の通信装置3から、代理認証値を取得した場合に、通信装置3により送信されるサービス要求である。
サービス要求を受信していない場合には(Op.4NO)、制御部12は、そのまま待機する。一方、サービス要求を受信した場合は(Op.4YES)、制御部12は、サービス要求には、機器識別情報が含まれているかを判定する(Op.5)。
サービス要求が機器識別情報を含む場合(Op.5YES)、制御部12は、サービス要求に含まれるユニーク値を持つレコードを、管理情報記憶部13から検索する。そして、制御部12は、当該レコードに、サービス要求に含まれる機器識別情報(タグID)を格納する(Op.6)。さらに、制御部12は、当該機器識別情報(タグID)をキーに、条件情報記憶部14から、対応する条件を取得する(Op.7)。
一方、サービス要求が機器識別情報を含まない場合(Op.5NO)、制御部12は、サービス要求に含まれるユニーク値を持つレコードを、管理情報記憶部13から検索する。そして、制御部12は、当該レコードの受信代理認証値に、サービス要求に含まれる代理認証値を格納する(Op.11)。
さらに、制御部12は、更新条件を生成する(Op.12)。具体的には、サービス要求に含まれる代理認証値を、送信代理認証値に持つレコードを特定し、当該レコードにおける機器識別情報(タグID)およびユーザIDを取得する。そして、制御部12は、通信部11を制御して、ユーザIDに対応する通信装置3に最新の測定値の送信を依頼する。制御部12は、当該機器識別情報(タグID)に基づき条件情報記憶部14から取得した条件を、先に取得した最新の測定値に応じて更新することで、更新条件を生成する。
Op.7またはOp.12が終了した後、制御部12は、代理認証値を生成するとともに、Op.4で受信したサービス要求に含まれるユニーク値に対応付けて、管理情報記憶部13の送信代理認証値に、生成した代理認証値を格納する(Op.8)。さらに、制御部12は、グループ化処理を実行する(Op.9)。つまり、特定の場所や範囲に応じた、サービスの提供が実行される。
具体的には、制御部12は、グループ情報記憶部15に、機器識別情報(タグID)に対応付けて、ユニーク値から特定されるユーザIDを格納する。
そして、制御部12の制御の下、通信部11は、Op.7で取得した条件またはOp.12で生成した更新条件と、Op.8で生成した代理認証値とを、通信装置3へ送信する(Op.10)。そして、サーバ1は、一連の処理を終了する。
次に、図10は、実施例1に係る通信装置におけるサービス要求処理および代理認証処理のフローチャートである。まず、図10の処理に先駆けて、制御部33は、ユーザからの指示に応じて、アプリケーションを起動する。なお、特定のアプリケーションは、サービスごとの個別アプリケーションであってもよいし、複数のサービスの享受を管理する汎用アプリケーションであってもよい。アプリケーションの起動を受けて、制御部33は、通信装置3はサーバ1との間でセッションを確立する。
セッションが確立されたのち、制御部33の制御の下、第一の通信部31は、サーバ1にユーザIDを送信する(Op.21)。そして、第一の通信部31は、サーバ1から、ユニーク値を取得する(Op.22)。なお、ここで取得されたユニーク値は、セッションが切断されるまで、一時的に保持される。
次に、第二の通信部32は、場の機器2から、機器識別情報を取得する(Op.23)。または、第二の通信部32は、代理認証機能がオンの他の通信装置3から、代理認証値を取得する(Op.23)。なお、近距離無線通信機能によって、機器識別情報または代理認証値を取得する場合には、Op.23に先駆けて、場の機器2または他の通信装置3に対して、機器識別情報または代理認証値の送信を要求する。
そして、制御部33の制御の下、第一の通信部31は、Op.23で取得した機器識別情報または代理認証情報とユニーク値とを含むサービス要求を、サーバ1へ送信する(Op.24)。
続いて、第一通信部31は、サーバ1から、所定の条件および代理認証値を受信する(Op.25)。なお、通信装置3が第一の通信装置301である場合、条件は、サーバ1がOp.7で取得した初期条件である。一方、通信装置3が第二の通信装置302である場合、条件は、サーバ1がOp.12で生成した更新条件である。
さらに、制御部33の制御の下、計測部34は、計測を開始する(Op.26)。例えば、条件が経過時間に関する条件である場合には、計測部34は経過時間の計測を開始する。また、条件が移動距離に関する条件である場合には、計測部34は移動距離の計測を開始する。そして、計測の開始とともに、制御部33は、代理認証機能をオンに設定する(Op.27)。
次に、所定時間ごとに、制御部33は、計測部34から計測値を取得して、条件を満たすか否かを判定する(Op.28)。例えば、条件が「経過時間が3分以内」であって、計測部34から取得した計測値(経過時間)が2分である場合には、制御部33は条件を満たすと判断する。
条件を満たす場合(Op.28YES)には、制御部33は、そのまま待機する。一方、条件を満たさない場合(Op.28NO)、制御部33は、代理認証機能をオフにする(Op.29)。つまり、通信装置3は、これ以降、代理認証を実施する事はできない。
ここで、通信装置3が、他の通信装置から認証要求を受信した場合について説明する。図11は、認証要求を受信した場合のフローチャートである。なお、認証要求は、例えば、通信装置3間の近距離無線通信のセッション要求であってもよいし、セッション確立後に、別にやり取りされる要求であってもよい。
まず、第二の通信部32が、他の通信装置3の第二の通信部32から認証要求を受信したか否かを判定する(Op.31)。認証要求を受信していない場合は(Op.31NO)、制御部33は、そのまま待機する。
一方、第二の通信部32が、他の通信装置3の第二の通信部32から、認証要求を受信した場合(Op.31YES)、制御部33は、代理認証機能がオンであるかを判定する(Op.32)。代理認証機能がオンである場合には(Op.32YES)、制御部33の制御の下、第二の通信部32は、代理認証値を、他の通信装置3に送信する(Op.33)。なお、代理認証機能がオンでない場合は(Op.32NO)、制御部33は、図11に示す一連の処理を終了する。
以上のように、実施例1に係る通信装置3が、代理認証を実施する事で、他の通信装置3は、場の機器2と直接通信する必要がなくなる。つまり、通信装置3は、場の機器2以外にも、特定の場所や範囲に、他の通信装置3が存在することを認証することができる。よって、ユーザの利便性が向上する。
さらに、代理認証機能は時間または距離によって限定される範囲に関する条件の下で、オンまたはオフが制限されるため、本実施例は、特定の場所に存在しないような他の通信装置3を、誤って認証してしまうことを防ぐ。よって、サーバ1が、特定の場所に存在しないような他の通信装置3に、サービスを提供することを防ぐことができる。
[実施例1の変型例]
所定の条件は、サーバ1が管理するものとして説明したが、場の機器2が管理してもよい。つまり、場の機器2が条件を通信装置に出力する事としてもよい。例えば、第一の通信装置301が、場の機器2から機器識別情報を取得する際、併せて、条件も取得してもよい。
また、実施例1は、代理認証値の代わりに、機器識別情報(タグIDや端末ID)をそのまま利用してもよい。例えば、図2の105以降、代理認証値の代わりに、タグIDが利用される。サーバ1は、第二の通信装置302から取得したタグIDに応じて、サービス提供処理を実施する。
[実施例2]
図12は、実施例2に係るサービス提供システムの構成図である。サービス提供システムは、サーバ5、場の機器6、第一の通信装置701、第二の通信装置702を含む。
サーバ5は、特定の場所に存在するユーザの通信装置7(例えば、第一の通信装置701や第二の通信装置702)に、特定のサービスを提供するコンピュータである。サーバ5と、通信装置7は、無線通信網やインターネット等のネットワークNを介して通信を行う。また、サーバ5は、場の機器6を管理する。
場の機器6は、特定の場所に設置されたコンピュータであって、例えば、店舗に設置された端末や、広告等を表示するデジタルサイネージ端末である。場の機器6は、実施例2においては、ユーザの通信装置7から、ユーザIDまたはユニーク値を取得する。なお、ユニーク値は、実施例1と同様に、サーバ5がユーザIDに基づき生成した値であって、セッションごとに異なる値が用いられる。
例えば、場の機器6は、近距離無線通信機能を用いて、ユーザIDまたはユニーク値を、第一の通信装置701から受信する。または、場の機器6は、第一の通信装置701に表示されたQRコードを読み取り、QRコードからユーザIDまたはユニーク値を抽出する。そして、実施例2においては、場の機器6が、場の機器6を識別する機器識別情報(端末ID)を、ユーザIDまたはユニーク値とともに、サーバ5へ送信することで、ユーザIDまたはユニーク値に対応する通信装置7が、特定の場所に存在することを証明する。
次に、通信装置7は、ユーザが所持するスマートフォンやタブレットコンピュータ等であって、第一の通信装置701や第二の通信装置702である。図12においては第一の通信装置701は、場の機器6に、自装置のユーザIDまたはユニーク値を送信し、サーバ5へ中継してもらう事で、特定の場所に応じたサービスを享受する。
さらに、第一の通信装置701は、場の機器6に代わって、他の通信装置7(例えば、第二の通信装置702)から取得したユーザIDまたはユニーク値を、サーバ5に中継する事で、他の通信装置7が特定の場所に存在することを代理認証する。そして、第二の通信装置702は、代理認証機能がオンである第一の通信装置701に、自装置のユーザIDまたはユニーク値を、サーバ5へ中継してもらう事で、特定の場所に応じたサービスを享受する。なお、代理認証は、実施例1と同様、所定の条件の下で、実行される。
図13は、実施例2に係るトランザクションの概要図である。まず、第一の通信装置701は、サーバ5に対して、ユーザIDを送信する(201)。そして、サーバ5は、ユーザIDに基づき生成したユニーク値Aを、第一の通信装置701に返信する(202)。次に、第一の通信装置701は、場の機器6に対して、ユニーク値Aを送信する(203)。なお、QRコードの場合は、ユーザが、QRコードを表示させた画面を、場の機器6のカメラの撮影範囲に置くことで、場の機器6がユニーク値Aを取得する。
次に、場の機器6は、サービス要求を、サーバ5に送信する(204)。なお、204において、場の機器6から送信されるサービス要求は、取得したユニーク値Aおよび機器識別情報(端末ID)を含む。
サービス要求を受信すると、サーバ5は、ユニーク値Aに基づきユーザIDを特定するとともに、当該ユーザIDに対応するユーザに特定のサービスを提供する(205)。そして、サーバ5は、代理認証に係る所定の条件を、第一の通信装置701に送信する(206)。
一方、サービスの提供を希望する第二の通信装置702は、201と同様に、自装置のユーザIDを、サーバ5へ送信する(207)。そして、サーバ5は、ユーザIDに基づき生成したユニーク値Bを、第二の通信装置702に返信する(208)。次に、第二の通信装置702は、第一の通信装置701に対して、ユニーク値Bを送信する(209)。
第一の通信装置701は、代理認証機能がオンである場合に、サービス要求を、サーバ5に送信する(210)。210で送信されるサービス要求は、他の通信装置7(第二の通信装置702)から取得したユニーク値B、自装置(第一の通信装置701)のユニーク値A、更新条件を含む。更新条件は、206で取得した初期条件に、最新の経過時間や移動距離を反映させた条件である。例えば、206で取得した初期条件が、「経過時間が3分以下」であって、現時点での経過時間として「2分」である場合、第一の通信装置701は、条件を「経過時間が1分以下」に更新するとともに、更新条件を、サーバ5へ送信する。
そして、サーバ5は、ユニーク値Bに基づきユーザIDを特定するとともに、当該ユーザIDに対応するユーザに特定のサービスを提供する(211)。そして、サーバ5は、更新条件を、第二の通信装置702に送信する(212)。
以上のように、第二の通信装置702は、場の機器6に、自装置のユーザIDやユニーク値を取得させずとも、特定の場所に応じたサービスを享受することができる。さらに、所定の条件の範囲でのみ、第一の通信装置701は、代理認証機能をオンにすることができるため、特定の場所や範囲に存在しない他の通信装置7に対して、サービスが提供されることを防ぐことができる。
図14は、実施例2に係るサーバの機能ブロック図である。サーバ5は、通信部51、制御部52、管理情報記憶部53、条件情報記憶部54、グループ情報記憶部55を有する。通信部51は、通信装置7と通信を行う。制御部52は、サーバ5全体の各種処理を制御する。例えば、特定の場所に存在することが認証された通信装置7に対して、特定のサービスを提供する。
管理情報記憶部53は、管理情報を記憶する。管理情報は、サーバ5にアクセスした通信装置7を管理するための情報である。
図15は、実施例2に係る管理情報記憶部のデータ構成例を示す。管理情報記憶部53は、ユーザIDと、ユニーク値と、機器識別情報(端末ID)を対応付けて記憶する。図15の例では、例えば、ユーザID「001」を通信部51が受信した場合、制御部52は、ユーザID「001」に基づき一意のユニーク値「xxxx1」を生成し、ユーザID「001」と対応付けて記憶する。
さらに、場の機器6が、図13における204において、ユニーク値「xxxx1」と端末ID「terminal 1」を送信した場合、サーバ5の制御部52は、管理情報記憶部53において、ユニーク値「xxxx1」を持つレコードを特定し、当該レコードに、取得した端末ID「terminal 1」を記憶する。
次に、図14における条件情報記憶部54は、通信装置における代理認証機能を付与する条件に関する情報を記憶する。条件情報記憶部54のデータ構成例は、図5と同様である。ただし、実施例2においては、タグIDの代わりに端末IDが利用される。
グループ情報記憶部55は、グループ化されたユーザの情報を記憶する。グループ情報記憶部55のデータ構成例は、図6と同様である。ただし、実施例2においては、タグIDの代わりに端末IDが利用される。
図16は、実施例2に係る通信装置の機能ブロック図である。なお、図16における通信装置7は、第一の通信装置701または第二の通信装置702として機能する。
通信装置7は、第一の通信部71、第二の通信部72、制御部73、計測部74、代理認証情報記憶部75を有する。第一の通信部71は、サーバ5と、ネットワークNを介した通信を行う。例えば、第一の通信部71は、サーバ5から、ユニーク値や条件情報を取得する。
第二の通信部72は、場の機器6と、近距離無線通信による通信を行う。例えば、場の機器6へ、ユニーク値を送信する。また、通信装置7が第一の通信装置701として機能する場合には、第二の通信部72は、第二の通信装置702から、ユニーク値を受信する。さらに、通信装置7が第二の通信装置702として機能する場合には、第二の通信部72は、第一の通信装置701へユニーク値を送信する。
制御部73は、通信装置7全体の各処理を制御する。制御部73は、さらに、代理認証制御部730を有する。代理認証制御部730は、代理認証機能のオンまたはオフを制御するとともに、代理認証機能がオンの場合に、第二の通信部72を制御して、他の通信装置から、ユニーク値を取得する。例えば、代理認証制御部730は、サーバ5から条件を取得した時点で、代理認証機能をオンとし、条件を満たさなくなった時点で、代理認証機能をオフとする。
計測部74は、経過時間または移動距離を計測する。例えば、計測部74は、代理認証機能がオンとなってからの経過時間を計測するタイマーである。また、計測部74は、代理認証機能がオンとなってからの移動距離を計測する加速度センサーである。
代理認証情報記憶部75は、代理認証に必要な代理認証情報を記憶する。図17は、実施例2に係る代理認証情報記憶部のデータ構成例を示す。代理認証情報記憶部75は、サーバ5から取得した条件を記憶する。さらに、代理認証情報記憶部75は、ユニーク値を対応付けて記憶してもよい。
図18は、実施例2に係るサーバにおけるサービス提供処理のフローチャートである。通信部51は、通信装置7からユーザIDを受信する(Op.41)。そして、制御部52は、ユニーク値を生成するとともに、生成したユニーク値を、ユーザIDに対応付けて、管理情報記憶部53に格納する(Op.42)。制御部52の制御の下、通信部51は、ユニーク値を、通信装置7に送信する(Op.43)。
制御部52は、通信部51が、通信装置7から、サービス要求を受信したか否かを判定する(Op.44)。なお、サービス要求は、図13における204で送信されるサービス要求と、図13における210で送信されるサービス要求がある。前者は、ユニーク値および機器識別情報(端末ID)を含む。一方、後者は、他の通信装置7(第二の通信装置702)から取得したユニーク値B、自装置(第一の通信装置701)のユニーク値A、更新条件を含む。
サービス要求を受信していない場合には(Op.44NO)、制御部52は、そのまま待機する。一方、サービス要求を受信した場合は(Op.44YES)、制御部52は、サービス要求には、機器識別情報(端末ID)が含まれているかを判定する(Op.45)。
サービス要求が機器識別情報を含む場合(Op.45YES)、制御部52は、サービス要求に含まれるユニーク値を持つレコードを、管理情報記憶部53から検索する。そして、制御部52は、当該レコードの機器識別情報(端末ID)に、サービス要求に含まれる機器識別情報を格納する(Op.46)。さらに、制御部52は、当該機器識別情報(端末ID)をキーに、条件情報記憶部54から、対応する条件を取得する(Op.47)。一方、サービス要求が機器識別情報を含まない場合(Op.45NO)、制御部52は、サービス要求から、更新条件を取得する(Op.50)。
Op.47またはOp.50が終了した後、制御部52は、グループ化処理を実行する(Op.48)。具体的には、制御部52は、グループ情報記憶部55に、機器識別情報(端末ID)に対応付けて、ユニーク値から特定されるユーザIDを格納する。
そして、制御部52の制御の下、通信部51は、Op.47で取得した条件またはOp.50で取得した更新条件を、サービス要求に含まれるユニーク値で特定される通信装置7へ送信する(Op.49)。そして、サーバ5は、一連の処理を終了する。
次に、図19は、実施例2にかかる通信装置におけるサービス要求処理および代理認証処理のフローチャートである。まず、図19の処理に先駆けて、制御部73は、ユーザからの指示に応じて、アプリケーションを起動する。アプリケーションの起動を受けて、制御部73は、通信装置7はサーバ5との間でセッションを確立する。
セッションが確立されたのち、制御部73の制御の下、第一の通信部71は、サーバ5にユーザIDを送信する(Op.61)。そして、第一の通信部71は、サーバ5から、ユニーク値を受信する(Op.62)。なお、ここで取得されたユニーク値は、セッションが切断されるまで、一時的に保持される。
次に、第二の通信部72は、場の機器6へ、ユニーク値を送信する(Op.63)。または、第二の通信部72は、代理認証機能がオンの他の通信装置7へ、ユニーク値を送信する(Op.63)。
制御部73は、サーバ5から条件が送信されるまで待機する。そして、第一通信部71は、サーバ5から、条件を受信する(Op.64)。なお、通信装置7が第一の通信装置701である場合、条件は、サーバ5がOp.47で取得した、初期条件である。一方、通信装置7が第二の通信装置702である場合、条件は、サーバ5がOp.50で取得した更新条件である。
次に、制御部73の制御の下、計測部74は、計測を開始する(Op.65)。例えば、条件が経過時間に関する条件である場合には、計測部74は時間の計測を開始する。また、条件が移動距離に関する条件である場合には、計測部74は移動距離の計測を開始する。そして、計測の開始とともに、制御部73は、代理認証機能をオンに設定する(Op.66)。
次に、所定時間ごとに、制御部73は、計測部74から計測値を取得して、条件を満たすか否かを判定する(Op.67)。条件を満たす場合(Op.67YES)には、制御部73は、そのまま待機する。一方、条件を満たさない場合(Op.67NO)、制御部73は、代理認証機能をオフとする(Op.68)。つまり、通信装置7は、これ以降、代理認証を実施する事はできない。
ここで、通信装置7が、他の通信装置7からユニーク値(図13におけるユニーク値B)を受信した場合について説明する。図20は、他の通信装置からユニーク値を受信した場合のフローチャートである。
まず、第二の通信部72が、他の通信装置7の第二の通信部72から、他の通信装置7のユニーク値Bを受信したか否かを判定する(Op.71)。ユニーク値Bを受信していない場合は(Op.71NO)、制御部73は、そのまま待機する。
一方、ユニーク値Bを受信した場合(Op.71YES)、制御部73は、代理認証機能がオンであるかを判定する(Op.72)。代理認証機能がオンである場合には(Op.72YES)、制御部73は、計測部74から取得した計測値を用いて、更新条件を生成する(Op.73)。そして、自装置のユニーク値A、取得したユニーク値B、更新条件を、サーバ5へ送信する(Op.74)。なお、代理認証機能がオンでない場合は(Op.72NO)、制御部73は、図20に示す一連の処理を終了する。
以上のように、実施例2に係る通信装置7が、代理認証を実施する事で、他の通信装置7は、場の機器6と直接通信する必要がなくなる。つまり、通信装置7は、場の機器6以外にも、特定の場所や範囲に、他の通信機器7が存在することを認証することができる。よって、ユーザの利便性が向上する。
さらに、代理認証機能は、時間または距離によって限定される範囲に関する条件の下で、オンまたはオフが制限されるため、本実施例は、特定の場所に存在しないような他の通信装置7を、誤って認証してしまうことを防ぐ。よって、サーバ5が、特定の場所に存在しないような他の通信装置7に、サービスを提供することを防ぐことができる。
[実施例2の変型例]
所定の条件は、サーバ5が管理するものとして説明したが、場の機器6が管理してもよい。場の機器6が、条件を通信装置に出力する事としてもよい。例えば、第一の通信装置701が、図13の203にて、ユニーク値Aを場の機器6に送信した後、場の機器6は、予め場の機器6の記憶領域に格納されていた条件を、第一の通信装置701に送信するとしてもよい。
[実施例3]
実施例3においては、実施例1に係るサーバ1および実施例2に係るサーバ5は、以下のコンピュータ1000によって実現される。また、実施例1に係る通信装置3および実施例2に係る通信装置7は、以下のコンピュータ2000によって実現される。
図21は、コンピュータ(サーバ)のハードウェア構成例である。コンピュータ1000は、各実施例に係る処理を実行し、サーバ1またはサーバ5として機能する。
コンピュータ1000はCentral Processing Unit(CPU)1001、Read Only Memory(ROM)1002、Random Access Memory(RAM)1003、通信装置1004、Hard Disk Drive(HDD)1005、入力装置1006、表示装置1007、媒体読取装置1008を有しており、各部はバス1009を介して相互に接続されている。そしてCPU1001による制御下で相互にデータの送受を行うことができる。
各実施例の処理に係るプログラムは、コンピュータ1000が読み取り可能な記録媒体に記録される。コンピュータ1000が読み取り可能な記録媒体には、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、HDD、フレキシブルディスク(FD)、磁気テープ(MT)などがある。
光ディスクには、Digital Versatile Disc(DVD)、DVD−RAM、Compact Disc − Read Only Memory(CD−ROM)、Compact Disc − Recordable/ReWritable(CD−R/RW)などがある。光磁気記録媒体には、Magneto − Optical disk(MO)などがある。各実施例に係る処理が記述されたプログラムを流通させる場合には、例えば、当該プログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売されることが考えられる。
そして本実施例に係るプログラムを実行するコンピュータ1000の媒体読取装置1008が、当該プログラムを記録した記録媒体から、該プログラムを読み出す。CPU1001は、読み出されたプログラムをHDD1005若しくはROM1002、RAM1003に格納する。CPU1001は、サーバ1またはサーバ2全体の動作制御を司る中央処理装置である。
そして、CPU1001が、各実施例に関わる処理が記述されたプログラムをHDD1005から読み出して実行することで、CPU1001は、サーバ1における制御部12、または、サーバ5における制御部52として機能する。先に述べたとおり、プログラムはCPU1001とアクセス可能なROM1002またはRAM1003に格納されていても良い。
通信装置1004は、CPU1001の制御の下、サーバ1における通信部11、または、サーバ5における通信部51として機能する。なお、コンピュータ1000における通信装置1004は、通信インターフェースであって、ネットワークNを介した通信の制御を行なう。通信インターフェースが制御する通信は、無線通信を利用して、無線基地局を介してネットワークNにアクセスする。通信インターフェースの一例は、ネットワーク・インタフェース・カード(NIC)である。
HDD1005は、CPU1001の制御下で、各種情報を記憶し、サーバ1における管理情報記憶部13、条件情報記憶部14、グループ情報記憶部15として機能する。または、HDD1005は、CPU1001の制御下で、各種情報を記憶し、サーバ5における管理情報記憶部53、条件情報記憶部54、グループ情報記憶部55として機能する。
なお、各種情報は、プログラム同様、CPU1001とアクセス可能なROM1002またはRAM1003に格納されても良い。さらに、処理の過程で一時的に生成および保持される各種情報は、例えば、RAM1003に格納される。
入力装置1006は、各種入力を受け付ける。入力装置1006は、例えばキーボードやマウスである。表示装置1007は、各種情報を表示する。表示装置1007は、例えばディスプレイである。
図22は、コンピュータ(通信装置)のハードウェア構成例である。コンピュータ2000は、各実施例に係る処理を実行し、通信装置3または通信装置7として機能する。なお、通信装置3は、第一の通信装置301または第二の通信装置302である。また、通信装置7は、第一の通信装置701または第二の通信装置702である。
コンピュータ2000はCentral Processing Unit(CPU)2001、Read Only Memory(ROM)2002、Random Access Memory(RAM)2003、通信装置2004、Hard Disk Drive(HDD)2005、入力装置2006、表示装置2007、媒体読取装置2008、近距離無線通信装置2010、カメラ2011を有しており、各部はバス2009を介して相互に接続されている。そしてCPU2001による制御下で相互にデータの送受を行うことができる。
各実施例の処理に係るプログラムは、コンピュータ2000が読み取り可能な記録媒体に記録される。コンピュータ2000が読み取り可能な記録媒体には、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、HDD、フレキシブルディスク(FD)、磁気テープ(MT)などがある。
光ディスクには、Digital Versatile Disc(DVD)、DVD−RAM、Compact Disc − Read Only Memory(CD−ROM)、Compact Disc − Recordable/ReWritable(CD−R/RW)などがある。光磁気記録媒体には、Magneto − Optical disk(MO)などがある。各実施例に係る処理が記述されたプログラムを流通させる場合には、例えば、当該プログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売されることが考えられる。
そして本実施例に係るプログラムを実行するコンピュータ2000の媒体読取装置2008が、当該プログラムを記録した記録媒体から、該プログラムを読み出す。CPU2001は、読み出されたプログラムをHDD2005若しくはROM2002、RAM2003に格納する。CPU2001は、通信装置3または通信装置7全体の動作制御を司る中央処理装置である。
そして、CPU2001が、各実施例に関わる処理が記述されたプログラムをHDD2005から読み出して実行することで、CPU2001は、通信装置3における制御部33、または、通信装置7における制御部73として機能する。先に述べたとおり、プログラムはCPU2001とアクセス可能なROM2002またはRAM2003に格納されていても良い。
通信装置2004は、CPU2001の制御の下、通信装置3における第一の通信部31、または、通信装置7における第一の通信部71として機能する。なお、コンピュータ2000における通信装置2004は、通信インターフェースであって、ネットワークNを介した通信の制御を行なう。通信インターフェースが制御する通信は、無線通信を利用して、無線基地局を介してネットワークNにアクセスする。通信インターフェースの一例は、ネットワーク・インタフェース・カード(NIC)である。
HDD2005は、CPU2001の制御下で、各種情報を記憶し、通信装置3における代理認証情報記憶部35、または、通信装置7における代理認証情報記憶部75として機能する。なお、各種情報は、プログラム同様、CPU2001とアクセス可能なROM2002またはRAM2003に格納されても良い。さらに、処理の過程で一時的に生成および保持される各種情報は、例えば、RAM2003に格納される。
入力装置2006は、各種入力を受け付ける。入力装置2006は、例えばキーボードやタッチパネルである。表示装置2007は、各種情報を表示する。表示装置2007は、例えばディスプレイである。
近距離無線通信装置2010は、CPU2001の制御の下、通信装置3における第二の通信部32、または、通信装置7における第二の通信部72として機能する。カメラ2011は、ユーザまたはアプリケーションの指示の下、画像を撮影する。例えば、QRコードを用いる実施例の場合には、QRコードの画像を撮影するとともに、撮影した画像をCPU2001に入力する。