JPWO2013047535A1 - サーバ装置、クーポン管理方法、通信システム及びプログラム - Google Patents

サーバ装置、クーポン管理方法、通信システム及びプログラム Download PDF

Info

Publication number
JPWO2013047535A1
JPWO2013047535A1 JP2013536308A JP2013536308A JPWO2013047535A1 JP WO2013047535 A1 JPWO2013047535 A1 JP WO2013047535A1 JP 2013536308 A JP2013536308 A JP 2013536308A JP 2013536308 A JP2013536308 A JP 2013536308A JP WO2013047535 A1 JPWO2013047535 A1 JP WO2013047535A1
Authority
JP
Japan
Prior art keywords
user
terminal device
terminal
electronic
electronic coupon
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013536308A
Other languages
English (en)
Other versions
JP5661191B2 (ja
Inventor
将人 山田
将人 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2013536308A priority Critical patent/JP5661191B2/ja
Application granted granted Critical
Publication of JP5661191B2 publication Critical patent/JP5661191B2/ja
Publication of JPWO2013047535A1 publication Critical patent/JPWO2013047535A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Game Theory and Decision Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

端末装置のメモリ領域を共有して複数の電子クーポンが書き込まれる場合であっても、所期の数を超えないように電子クーポンを提供する。記憶部13は、メモリ領域251への書込処理の成功が確定した電子クーポンの未利用数と、この書込処理の成功が未確定である未確定数と、複数の端末装置に新たに提供可能な電子クーポンの残数を記憶する。第1更新部111は、第1電子クーポンの全体の残数から減じた数を第1電子クーポンの未確定数に加算する。第2更新部113は、未確定数の第1電子クーポンの書込処理を端末装置20に指示する。第2更新部113は、端末装置20での書込処理の成功が確定した後、第1電子クーポンの未確定数を未利用数に設定する。第2更新部113は、第2電子クーポンが記憶されたメモリ領域251に第1電子クーポンが上書きされた場合、第2電子クーポンの未利用数を残数に差し戻す。

Description

本発明は、IC(Integrated Circuit)チップ等に記憶して利用される電子クーポンを管理する技術に関する。
電子化クーポン(電子化したクーポン券)を利用したサービスが、例えば商店や企業がサービス提供者となって提供されている。電子クーポンサービスでは、携帯電話端末等の端末装置のモバイルFeliCa(登録商標)等のICチップに、予め入手した電子クーポンを記憶させておき、ユーザが店舗に設置されたリーダ/ライタに端末装置をかざすことによって、電子クーポンを利用することができる。この電子クーポンサービスでは、サービス提供者の予算やサービスの主旨等に照らして、例えば、提供することができる電子クーポンの総数や、ユーザ一人当たりが利用することができる数の上限が決められていることがあり、電子クーポンの提供及び利用を制限するための管理には正確さが求められる。
例えば、特許文献1は、ユーザの携帯電話と、ネットワーク上に存在する仮想店舗と、電子クーポンの利用状況を管理するクーポン管理サーバとを備えるシステムにおいて、電子クーポンが2重利用されないようにする仕組みについて開示している。特許文献1に記載された発明では、携帯電話が非接触ICチップから電子クーポンを読み取ったことを契機に、自携帯電話が記憶する電子クーポンの利用可否を示す利用フラグを書き換えて、利用フラグが利用不可であることを示す期間には電子クーポンを利用できないようにする。この構成により、電子クーポンの利用の際に、携帯電話と仮想店舗との通信が切断した場合であっても、電子クーポンが2重利用されるのを回避することができる。特許文献2は、顧客側のICカードが電子クーポンサービス毎に利用回数と上限回数とを記憶し、店舗端末がICカードに記憶された利用回数と上限回数を読み取って、両者を比較することにより、電子クーポンの利用を制限することを開示している。特許文献3は、電子クーポンの再配布に伴う、電子クーポンの無制限な提供を防止するための仕組みを開示している。特許文献1に記載の発明では、クーポン発行サーバが、電子クーポンを発券する携帯端末のユーザ識別情報を記憶するデータベースや、該ユーザ識別情報と該携帯端末からの電子クーポンの再配布が許可された端末のユーザ識別情報とを紐付けたデータベースを有し、該紐付けの関係を満たす場合にのみ、該携帯端末からの電子クーポンの再配布が許可される。
特開2008−225716号公報 特開2006−221383号公報 特開2007−72906号公報
特許文献1及び特許文献2は、提供者側のサーバからユーザ側の端末装置に電子クーポンを提供する際の処理を原因として、複数の端末装置(例えば、クーポンを取得することができるすべての端末装置)に対して、予め決められた数を超えて電子クーポンが提供されることを防ぐための仕組みについては開示していない。ところで、電子クーポンが記憶させられるメモリ領域がサービス提供者毎(言い換えれば、電子クーポン毎)に分けられていて、各領域を一のサービス提供者に占有させる仕様であれば、提供者側のサーバからでも、ユーザ側の端末装置に記憶された電子クーポンの管理をしやすい。しかしながら、サービス提供者に占有させる領域を割り当てない仕組みによって、電子クーポンに関する情報を管理しようとすると、或る電子クーポンがメモリ領域に書き込まれた後、別の電子クーポンによって上書き消去されてしまったような場合に、提供者側のサーバからユーザ側の端末装置に記憶された電子クーポンに関する情報を正確に管理することが難しい。電子クーポンに関する情報がサーバ側で正確な管理が実現されないと、所期の数を超えて電子クーポンが提供されてしまうおそれがある。
また、提供可能な数がユーザ毎に制限された電子クーポンの各ユーザの保有状況を、ユーザ固有の識別子であるユーザIDを用いて管理しても、提供可能な数を超えて電子クーポンが利用される可能性がある。例えば、悪意のあるユーザが複数回会員登録を行うなどして1のユーザに複数のユーザIDが割り当てられた場合、そのユーザは、各ユーザIDを用いて電子クーポンを取得し利用することができる。厳格に1のユーザにつき1のユーザIDを割り当てることのできるシステムでは、ユーザがユーザIDを忘れたりそのユーザIDを用いたユーザ認証に必要なパスワードを忘れたりした場合には、ユーザIDの再発行に係る手続きが煩雑にならざるを得ない、という別の問題が生じる。
そこで、本発明は、端末装置のメモリ領域を共有して複数の電子クーポンが書き込まれる場合であっても、所期の数を超えないように電子クーポンを提供できるようにすることである。
上述した課題を解決するため、本発明のサーバ装置は、端末装置に提供されて当該端末装置において利用される各電子クーポンについて、前記端末装置に提供された電子クーポンの未利用数と、前記端末装置に対して新たに提供可能な電子クーポンの残数を記憶する第1記憶部と、前記電子クーポンが提供された端末装置を識別する端末IDに、当該端末装置のユーザを識別する1のユーザIDを対応付けて記憶する第2記憶部と、前記電子クーポンを第1の端末装置に新たに提供する場合に、当該第1の端末装置の端末IDと当該第1の端末装置のユーザのユーザIDとを取得する取得部と、前記電子クーポンの残数から、前記第1の端末装置に提供される前記電子クーポンの数を減じるよう、前記第1記憶部を更新する第1更新部と、前記第1更新部により減じられた数の電子クーポンについて前記第1の端末装置が有するメモリ領域への書込処理を実行するよう、前記第1の端末装置に指示する書込指示部と、前記書込指示部により前記書込処理の実行が指示される場合、前記第2記憶部において前記取得した端末IDに前記取得したユーザIDを対応付ける書込部と、前記書込指示部の指示に応じた前記書込処理の成功が確定した後、前記減じられた数を前記電子クーポンの未利用数に設定するよう、前記第1記憶部を更新する第2更新部とを備えることを特徴とする。
本発明のサーバ装置において、前記第2更新部は、前記書込指示部の指示に応じた前記書込処理により他の電子クーポンに前記電子クーポンが上書きされた場合、当該他の電子クーポンの未利用数を当該他の電子クーポンの残数に加算して、当該未利用数をクリアするよう、前記第1記憶部を更新することが好ましい。
本発明のサーバ装置において、前記第1更新部は、前記第1電子クーポンの残数から減じた数を、前記書込処理の成功が未確定の電子クーポンの数である未確定数に設定して、前記第1記憶部に記憶させ、前記第2更新部は、前記書込処理の成功が確定した後、前記減じられた数である前記電子クーポンの未確定数を、前記電子クーポンの未利用数に設定し、当該未確定数をクリアすることが好ましい。
本発明のサーバ装置において、前記第2更新部は、前記第1の端末装置が前記指示に応じた前記書込処理に失敗した場合、前記未確定数を前記電子クーポンの残数に加算し、当該未確定数をクリアすることが好ましい。
本発明のサーバ装置において、前記第1記憶部は、一の端末装置に対して新たに提供可能な電子クーポンの残数を記憶し、前記第1の端末装置が利用した前記電子クーポンの利用数を含む利用履歴を取得する利用履歴取得部と、前記利用履歴取得部が取得した利用履歴に基づいて、前記利用した電子クーポンの前記未利用数、及び前記一の端末装置に対する残数のそれぞれから、前記利用数を減じるよう、前記第1記憶部を更新する第3更新部とを備えることが好ましい。
本発明のサーバ装置において、前記メモリ領域に前記電子クーポンを書き込む前記書込処理が終了した旨の通知を受け付けた後、前記第1の端末装置から前記書込処理の結果を取得する管理サーバに問い合わせて当該結果を取得する処理結果取得部を備え、前記第2更新部は、前記処理結果取得部により取得された前記結果に応じて、前記書込処理の成功が確定したか否かを判断することが好ましい。
本発明のサーバ装置において、前記書込指示部は、前記第2記憶部において、前記取得部が取得した端末IDに前記取得部が取得したユーザIDと異なるユーザIDが対応付けられていない場合、又は、前記取得した端末IDに前記取得したユーザIDと異なるユーザIDが対応付けられている場合に予め決められた条件を満たすときには、前記指示を行うことが好ましい。
本発明のサーバ装置において、前記書込指示部は、前記第2記憶部において、前記取得した端末IDに前記取得したユーザIDと異なるユーザIDが対応付けられている場合に、前記条件を満たさないときには、前記指示を行わないことが好ましい。
本発明のサーバ装置において、前記書込指示部は、前記第2記憶部において、前記取得した端末IDに前記取得したユーザIDと異なるユーザIDが対応付けられている場合には、前記指示を行い、前記書込部は、前記条件を満たさないときに前記書込指示部により前記指示が行われた場合には、前記第2記憶部において前記取得した端末IDに対応付けられたユーザIDを変更しないことが好ましい。
本発明のサーバ装置において、前記取得部は、前記第1の端末装置から前記端末IDを取得したが前記ユーザIDを取得しなかった場合に、前記第2記憶部において当該端末IDにいずれかのユーザIDが対応付けられているときには当該ユーザIDを取得し、前記第2記憶部において当該端末IDがいずれのユーザIDとも対応付けられていないときには新たにユーザIDを発行して取得し、前記書込部は、前記書込指示部により前記指示が行われた場合に、前記取得部が前記第2記憶部からユーザIDを取得していたときには、前記取得した端末IDに対応付けられたユーザIDを変更せず、新たにユーザIDを発行して取得していたときには、当該ユーザIDを前記取得した端末IDに対応付けて前記第2記憶部に書き込むことが好ましい。
本発明のサーバ装置において、前記書込指示部は、前記指示を行ってから予め決められた期間が経過したことを前記条件とすることが好ましい。
本発明のサーバ装置において、前記書込指示部は、前記電子クーポンの利用可能期間が経過したことを前記条件とすることが好ましい。
本発明のサーバ装置において、前記書込指示部は、複数種類の電子クーポンについて、前記第1の端末装置が有するメモリ領域への書込処理を実行するよう、前記第1の端末装置に指示した場合、終了時期が最も後である電子クーポンの利用可能期間が経過したことを前記条件とすることが好ましい。
本発明のサーバ装置において、前記端末IDは、当該端末IDが示す端末装置が有するメモリ領域に記憶され、提供可能な数がユーザ毎に制限された電子クーポンを提供する場合には、前記メモリ領域からの前記端末IDの読み出しを指示し、提供可能な数がユーザ毎に制限されていない電子クーポンを当該第1の端末装置に提供する場合には、前記端末IDの読み出しを指示しない読出指示部を備え、前記取得部は、前記読出指示部により前記端末IDの読み出しが指示された場合に、当該指示に従って前記メモリ領域から読み出された前記端末IDを取得し、前記書込指示部は、前記読出指示部により前記端末IDの読み出しが指示されなかった場合に、前記提供可能な数がユーザ毎に制限されていない電子クーポンを前記第1の端末装置が有するメモリ領域への書込処理を実行するよう、前記第1の端末装置に指示することが好ましい。
本発明のサーバ装置において、前記第2記憶部において、前記取得した端末IDに前記取得したユーザIDと異なるユーザIDが対応付けられており、かつ、前記条件を満たす場合に、前記第2記憶部において、前記取得したユーザIDと、前記取得した端末IDと異なる端末IDとが対応付けられているときに、当該取得したユーザIDと当該異なる端末IDとの対応付けを削除する削除部をさらに備えることが好ましい。
本発明のクーポン管理方法は、端末装置に提供されて当該端末装置において利用される各電子クーポンについて、前記端末装置に提供された電子クーポンの未利用数と、前記端末装置に対して新たに提供可能な電子クーポンの残数を記憶する第1記憶部と、前記電子クーポンが提供された端末装置を識別する端末IDに、当該端末装置のユーザを識別する1のユーザIDを対応付けて記憶する第2記憶部とを備えるサーバ装置のクーポン管理方法であって、前記電子クーポンを第1の端末装置に新たに提供する場合に、当該第1の端末装置の端末IDと当該第1の端末装置のユーザのユーザIDとを取得する取得ステップと、前記電子クーポンの残数から、前記第1の端末装置に提供される前記電子クーポンの数を減じるよう、前記第1記憶部を更新する第1更新ステップと、前記第1更新ステップにおいて減じられた数の電子クーポンについて前記第1の端末装置が有するメモリ領域への書込処理を実行するよう、前記第1の端末装置に指示する書込指示ステップと、前記書込指示ステップにおいて前記書込処理の実行が指示される場合、前記第2記憶部において前記取得した端末IDに前記取得したユーザIDを対応付ける書込ステップと、前記書込指示ステップにおける指示に応じた前記書込処理の成功が確定した後、前記減じられた数を前記電子クーポンの未利用数に設定するよう、前記第1記憶部を更新する第2更新ステップとを有することを特徴とする。
本発明のクーポン管理方法において、前記第1記憶部は、端末装置が有するメモリ領域への書込処理の成功が確定した電子クーポンの未利用数を、端末装置に提供された電子クーポンの未利用数として記憶し、前記第2更新ステップは、前記書込指示部の指示に応じた前記書込処理により他の電子クーポンに前記電子クーポンが上書きされた場合、当該他の電子クーポンの未利用数を当該他の電子クーポンの残数に加算して、当該未利用数をクリアするよう、前記第1記憶部を更新することが好ましい。
本発明のクーポン管理方法において、前記書込指示ステップは、前記第2記憶部において、前記取得ステップで取得した端末IDに前記取得ステップで取得したユーザIDと異なるユーザIDが対応付けられていない場合、又は、前記取得した端末IDに前記取得したユーザIDと異なるユーザIDが対応付けられている場合に予め決められた条件を満たすときには、前記指示を行うことが好ましい。
本発明の通信システムは、サーバ装置と端末装置とを備える通信システムであって、前記サーバ装置は、端末装置に提供されて当該端末装置において利用される各電子クーポンについて、前記端末装置に提供された電子クーポンの未利用数と、前記端末装置に対して新たに提供可能な電子クーポンの残数を記憶する第1記憶部と、前記電子クーポンが提供された端末装置を識別する端末IDに、当該端末装置のユーザを識別する1のユーザIDを対応付けて記憶する第2記憶部と、前記電子クーポンを第1の端末装置に新たに提供する場合に、当該第1の端末装置の端末IDと当該第1の端末装置のユーザのユーザIDとを取得する取得部と、前記電子クーポンの残数から、前記第1の端末装置に提供される前記電子クーポンの数を減じるよう、前記第1記憶部を更新する第1更新部と、前記第1更新部により減じられた数の電子クーポンについて前記第1の端末装置が有するメモリ領域への書込処理を実行するよう、前記第1の端末装置に指示する書込指示部と、前記書込指示部により前記書込処理の実行が指示される場合、前記第2記憶部において前記取得した端末IDに前記取得したユーザIDを対応付ける書込部と、前記書込指示部の指示に応じた前記書込処理の成功が確定した後、前記減じられた数を前記電子クーポンの未利用数に設定するよう、前記第1記憶部を更新する第2更新部とを備え、前記端末装置は、前記書込指示部の指示に従った前記書込処理により前記未利用数の電子クーポンを前記メモリ領域に書き込み、当該書込処理を終了したことを前記サーバ装置に通知することを特徴とする。
本発明の通信システムにおいて、前記第1記憶部は、端末装置が有するメモリ領域への書込処理の成功が確定した電子クーポンの未利用数を、端末装置に提供された電子クーポンの未利用数として記憶し、前記第2更新部は、前記書込指示部の指示に応じた前記書込処理により他の電子クーポンに前記電子クーポンが上書きされた場合、当該他の電子クーポンの未利用数を当該他の電子クーポンの残数に加算して、当該未利用数をクリアするよう、前記第1記憶部を更新することが好ましい。
本発明のプログラムは、端末装置に提供されて当該端末装置において利用される各電子クーポンについて、前記端末装置に提供された電子クーポンの未利用数と、前記端末装置に対して新たに提供可能な電子クーポンの残数を記憶する第1記憶部と、前記電子クーポンが提供された端末装置を識別する端末IDに、当該端末装置のユーザを識別する1のユーザIDを対応付けて記憶する第2記憶部とを備えるコンピュータに、前記電子クーポンを第1の端末装置に新たに提供する場合に、当該第1の端末装置の端末IDと当該第1の端末装置のユーザのユーザIDとを取得する取得ステップと、前記電子クーポンの残数から、前記第1の端末装置に提供される前記電子クーポンの数を減じるよう、前記第1記憶部を更新する第1更新ステップと、前記第1更新ステップにおいて減じられた数の電子クーポンについて前記第1の端末装置が有するメモリ領域への書込処理を実行するよう、前記第1の端末装置に指示する書込指示ステップと、前記書込指示ステップにおいて前記書込処理の実行が指示される場合、前記第2記憶部において前記取得した端末IDに前記取得したユーザIDを対応付ける書込ステップと、前記書込指示ステップにおける指示に応じた前記書込処理の成功が確定した後、前記減じられた数を前記電子クーポンの未利用数に設定するよう、前記第1記憶部を更新する第2更新ステップとを実行させる。
本発明のプログラムにおいて、前記書込指示ステップは、前記第2記憶部において、前記取得ステップで取得した端末IDに前記取得ステップで取得したユーザIDと異なるユーザIDが対応付けられていない場合、又は、前記取得した端末IDに前記取得したユーザIDと異なるユーザIDが対応付けられている場合に予め決められた条件を満たすときには、前記指示を行うことが好ましい。
本発明によれば、端末装置のメモリ領域を共有して複数の電子クーポンが書き込まれる場合であっても、所期の数を超えないように電子クーポンを提供することができる。
通信システムの全体構成を示す図。 ASPサーバのハードウェア構成を示すブロック図。 クーポン管理テーブルのデータ構造を示す図。 ユーザ管理テーブルのデータ構造を示す図。 トランザクション管理テーブルのデータ構造を示す図。 保留リストテーブルのデータ構造を示す図。 端末装置のハードウェア構成を示すブロック図。 電子クーポンの提供に関する機能の機能的構成を示す機能ブロック図。 電子クーポンの利用に関する機能の機能的構成を示す機能ブロック図。 通信システムの全体的な処理の流れを示すシーケンスチャート。 端末装置が電子クーポンを取得しようとするときの画面例。 セット開始処理の流れを示すフローチャート。 データテーブルの更新の様子を示す図。 セット確定処理の流れを示すフローチャート。 セット確定処理の流れを示すフローチャート。 データテーブルの更新の様子を示す図。 データテーブルの更新の様子を示す図。 利用時処理の流れを示すフローチャート。 利用時処理により変化するデータテーブルのデータ構造を示す図。 データテーブルの更新の様子を示す図。 データテーブルの更新の様子を示す図。 データテーブルの更新の様子を示す図。 データテーブルの更新の様子を示す図。 ASPサーバのハードウェア構成を示すブロック図。 クーポン情報テーブルの構成を示す図。 ユーザ管理テーブルの構成を示す図。 保有状況管理テーブルの構成を示す図。 電子クーポンの管理に関する機能の機能的構成を示す機能ブロック図。 通信システムの全体的な処理の流れを示すシーケンスチャート。 クーポン取得画面を示す図。 端末ID要否判定処理の手順を示すフローチャート。 端末ID通知処理の手順を示すフローチャート。 クーポン提供判定処理の手順を示すフローチャート。 ユーザ管理テーブルの更新の様子を示す図。 ユーザ管理テーブルの更新の様子を示す図。 電子クーポンの書込処理の手順を示すシーケンスチャート。
1.第1実施形態
以下、図面を参照しつつ本発明の第1実施形態を説明する。
図1は、通信システム1の全体構成を示す図である。
通信システム1は、ASP(Application Service Provider)サーバ10と、端末装置20と、店舗管理サーバ30と、店舗端末40と、アプリケーション管理サーバ50とを備える。ASPサーバ10は、端末装置20に対して電子クーポンサービスを提供するサーバ装置である。ここにおいて、ASPサーバ10は、端末装置20からの要求に応じて、複数のサービス提供者による電子クーポンサービスを端末装置20に提供する。端末装置20は、ここではスマートフォンであり、ASPサーバ10から提供された電子クーポンを取得する。ただし、端末装置20はスマートフォンに限らず、携帯電話端末やタブレット端末、パーソナルコンピュータ、PDA(Personal Digital Assistant)等の他の端末装置であってもよい。店舗管理サーバ30は、端末装置20により電子クーポンが利用された場合に、電子クーポンの利用の履歴である利用履歴を、ASPサーバ10宛てに送信する。店舗端末40は、電子クーポンを利用することができる店舗に設置されたコンピュータ装置である。店舗端末40は、非接触式ICカードとの間で無線通信を行ってデータの読み書きを行うリーダ/ライタ41を有し、リーダ/ライタ41により読み取ったデータに基づき利用履歴を生成し、生成した利用履歴を店舗管理サーバ30宛てに送信する。アプリケーション管理サーバ50は、端末装置20における電子クーポンの書込処理に関する管理を司る管理サーバである。
通信システム1では、ASPサーバ10、端末装置20、店舗管理サーバ30及びアプリケーション管理サーバ50がそれぞれネットワークNWに接続されている。ネットワークNWは、ここでは、移動体通信網、ゲートウェイ及びインターネットを含む通信網である。店舗管理サーバ30と店舗端末40とは、例えば、専用の通信回線で接続されている。図1には、端末装置20を1台だけ図示しているが、実際には、電子クーポンサービスを受けることができる端末装置20が複数存在する。店舗管理サーバ30は、一店舗につき一台設置されてもよいし、複数店舗につき一台設置されてもよいし、サービス提供者毎に一台ずつ設置されてもよい。店舗端末40は、電子クーポンを利用可能な各店舗に設置されていて、実際にはより多数存在している。
図2は、ASPサーバ10のハードウェア構成を示すブロック図である。図2に示すように、ASPサーバ10は、制御部11と、通信部12と、記憶部13とを備える。
制御部11は、CPU(Central Processing Unit)、ROM(Read Only Memory)及びRAM(Random Access Memory)を備えるマイクロプロセッサである。CPUは、ROMや記憶部13に記憶されたプログラムをRAMに読み出して実行することにより、ASPサーバ10の各部を制御する。通信部12は、ネットワークNWに接続するためのインタフェースである。制御部11は、通信部12によりネットワークNW経由で接続された外部装置と通信する。記憶部13は、例えばハードディスク装置を備え、制御部11により実行される電子クーポンサービスの提供に必要なプログラムを記憶する。また、記憶部13は、クーポン管理テーブル131、ユーザ管理テーブル132、トランザクション管理テーブル133及び保留リストテーブル134を記憶する。
なお、記憶部13は、電子クーポンサービスの提供に関する別の情報も記憶している。例えば、記憶部13は、電子クーポンを提供する対象とするユーザの条件(年齢や性別等のユーザ属性)や、電子クーポンを提供する期間、電子クーポンを利用可能な期間等を記憶するが、本実施形態ではそれらの説明を省略する。ところで、本実施形態の電子クーポンは、電子バリューとも呼ばれる電子データであり、紙媒体として提供又は利用されるわけではない。しかしながら、以下の説明を理解しやすくするため、電子クーポンの提供又は利用可能な最小単位を、本実施形態では「枚」と称し、提供又は利用される電子クーポンの数(つまり、単位数)を、「枚数」と称する。
図3は、クーポン管理テーブル131のデータ構造を示す図である。
図3に示すように、クーポン管理テーブル131は、「クーポンID」と、「制限枚数(全体)」と、「利用枚数(全体)」と、「残枚数(全体)」とで示される各情報が対応付けられたデータテーブルである。「クーポンID」は、ASPサーバ10により提供される電子クーポンを識別する識別情報である。「制限枚数(全体)」は、ASPサーバ10により電子クーポンが提供される対象となる全ての端末装置20(つまり、全ユーザ)に対する制限枚数(以下、「全体の制限枚数」という。)である。ASPサーバ10では、利用を許可する電子クーポンの全ての端末装置20に対する枚数の総和が、全体の制限枚数を超えないように管理される。「利用枚数(全体)」は、既に利用された電子クーポンの全ての端末装置20に対する枚数の総和(以下、「全体の利用枚数」という。)である。全体の制限枚数は、全体の利用枚数の上限ということができる。「残枚数(全体)」は、全ての端末装置20に対する電子クーポンの残数(以下、「全体の残枚数」という。)である。ASPサーバ10では、提供する電子クーポンの全ての端末装置20に対する枚数の総和が、全体の残枚数を超えないように管理される。
図3に示す例では、クーポンID「CID001」の電子クーポンA、及びクーポンID「CID002」の電子クーポンBに関する情報を代表して示している。クーポンID「CID001」の電子クーポンAと、クーポンID「CID002」の電子クーポンBとは、ここでは、互いに異なるサービス提供者によって提供される電子クーポンである。図3の第1行に対応するレコードは、クーポンID「CID001」の電子クーポンAの全体の制限枚数が「1000」であり、全体の利用枚数が「0」であり、全体の残枚数が「1000」であることを意味する。図3の第2行に対応するレコードは、クーポンID「CID002」の電子クーポンBの全体の制限枚数が「5000」であり、全体の利用枚数が「0」であり、全体の残枚数が「5000」であることを意味する。
図4は、ユーザ管理テーブル132のデータ構造を示す図である。
図4に示すように、ユーザ管理テーブル132は、「ユーザID」と、「クーポンID」と、「制限枚数(個人)」と、「セット未確定枚数」と、「セット済未利用枚数」と、「利用枚数(個人)」と、「残枚数(個人)」とで示される各情報が対応付けられたデータテーブルである。「ユーザID」は、端末装置20のユーザを識別する識別情報であるとともに、端末装置20を識別する識別情報である。
本実施形態のユーザIDは、各端末装置20に排他的に割り当てられた識別情報であるが、例えばSIM(Subscriber Identity Module)カードから特定される端末識別情報や電話番号、任意の識別番号等である。ユーザ管理テーブル132に書き込まれるユーザIDは、ここでは、端末装置20の後述するICチップ25(具体的には、ICチップ25の所定のメモリ領域)に書き込まれたユーザIDに対応しているものとする。ここにおいて、同一ユーザに対応してICチップ25に書き込まれたユーザIDとユーザ管理テーブル132に書き込まれるユーザIDとは、一致していなくてもよい。両者のユーザIDが異なる場合には、例えば、ASPサーバ10が同一のユーザのユーザID同士を対応付ける対応表を記憶部13に記憶しておく。そして、この対応表を用いたユーザIDの照合により、ASPサーバ10がユーザID同士の対応関係を特定すればよい。この対応表を用いる構成にすれば、例えば端末装置20の機種変更が行われた場合であっても、ASPサーバ10は対応表を更新するだけでよく、ユーザ管理テーブル132のユーザIDを更新しなくてよい。
「クーポンID」は、クーポン管理テーブル131に書き込まれるクーポンIDと同じである。「制限枚数(個人)」は、ASPサーバ10により提供される電子クーポンの個々のユーザ(つまり、一の端末装置20)に対する制限数(以下、「個人の制限枚数」という。)である。ASPサーバ10では、利用を許可する電子クーポンの枚数が、一のユーザにつき個人の制限枚数を超えないように管理される。すなわち、個人の制限枚数は、個人の利用枚数の上限ということができる。
「セット未確定枚数」は、端末装置20に提供される電子クーポンであり、ICチップ25の後述するメモリ領域251への書込処理(「セット」ともいう。)の成功が未確定の電子クーポンの数(未確定数)である。言い換えれば、セット未確定枚数は、電子クーポンの書込処理が終了していないか、又は電子クーポンの書込処理が成功又は失敗したがこの結果がASPサーバ10に通知されていない(つまり、ASPサーバ10で書込処理の結果が把握されていない)電子クーポンの枚数である。「セット済未利用枚数」は、端末装置20に提供される電子クーポンであり、書込処理の成功が確定した未利用の電子クーポンの数(未利用数)である。言い換えれば、セット済未利用枚数は、電子クーポンがメモリ領域251に記憶されていると、ASPサーバ10が把握した電子クーポンの枚数である。よって、このセット済未利用枚数の電子クーポンは、端末装置20が利用可能な電子クーポンともいえる。
「利用枚数(個人)」は、一のユーザにより既に利用された電子クーポンの利用数(以下、「個人の利用枚数」という。)である。「残枚数(個人)」は、個々のユーザに対する電子クーポンの残数(以下、「個人の残枚数」という。)である。ASPサーバ10では、提供する電子クーポンの枚数が、一のユーザにつき個人の残枚数を超えないように管理される。
図4に示す例では、ユーザID「UID001」のユーザに対応する情報を代表して示しているが、電子クーポンサービスの提供を受けることができるユーザ毎に同様の情報が書き込まれている。例えば、図4の第1行に対応するレコードは、ユーザID「UID001」のユーザにおける、クーポンID「CID001」の電子クーポンAの個人の制限枚数が「10」であり、セット未確定枚数、セット済未利用枚数、及び個人の利用枚数がそれぞれ「0」であり、個人の残枚数が「10」であることを意味する。図4の第2行に対応するレコードも、第1行と同様に解釈してよい。
図5は、トランザクション管理テーブル133のデータ構造を示す図である。
図5に示すように、トランザクション管理テーブル133は、「処理ID」と、「ステータス」と、「書込完了日時」とで示される各情報が対応付けられ、ユーザ毎に書込処理結果を管理するデータテーブルである。「処理ID」は、電子クーポンの書込処理を識別する識別情報である。「ステータス」は、電子クーポンの書込処理の結果を示す情報であり、成功、失敗又は未確定のいずれかを示す。書込処理が成功した場合はステータスが「成功」となり、書込処理が失敗した場合はステータスが「失敗」となり、書込処理の結果が未確定の場合はステータスが「未確定」となる。
なお、端末装置20で電子クーポンの書込処理が成功した場合、その電子クーポンはICチップ25に記憶されているが、電子クーポンの書込処理が失敗した場合、その電子クーポンはICチップ25には記憶されていない。電子クーポンの書込処理が失敗した場合、この書込処理前にICチップ25に電子クーポンが記憶されていればこの電子クーポンがそのまま記憶された状態となる。
「書込完了日時」は、電子クーポンの書込処理が完了した日時を示す情報である。書込完了日時は、書込処理の結果が成功した場合に限って規定される情報である。図5に示すトランザクション管理テーブル133の例では、いずれの情報も書き込まれておらず、各フィールドがブランクである。
なお、通信システム1において実行される電子クーポンの提供に係る処理は、書込処理を含むトランザクション処理ということもでき、ASPサーバ10と端末装置20とで管理される電子クーポンに関する情報に齟齬が生じないように実行される。
図6は、保留リストテーブル134のデータ構造を示す図である。
図6に示すように、保留リストテーブル134は、「クーポンID」と、「利用日時」と、「利用枚数」とで示される各情報が対応付けられたデータテーブルである。「処理ID」は、トランザクション管理テーブル133に書き込まれる処理IDと同じである。「利用日時」は、電子クーポンが利用された日時を示す情報である。「利用枚数」は、電子クーポンの個人の利用枚数である。ここでの利用枚数は、同一の電子クーポンが1回の利用において何枚利用されたかを示す。保留リストテーブル134の一つのレコードに書き込まれるクーポンID、利用日時及び利用枚数の組み合わせは、ASPサーバ10が店舗端末40から取得した利用履歴と同じである。このように、保留リストテーブル134は、端末装置20による1回の電子クーポンの利用により生成される利用履歴が一つのレコードで書き込まれたデータテーブルである。
なお、図6の保留リストテーブル134の例では、いずれの情報も書き込まれておらず、各フィールドがブランクである。
図7は、端末装置20のハードウェア構成を示すブロック図である。図7に示すように、端末装置20は、制御部21と、音声入出力部22と、無線通信部23と、UI(User Interface)部24と、ICチップ25と、記憶部26とを備える。
制御部21は、CPU、ROM及びRAMを有するマイクロプロセッサを備える。CPUは、ROMや記憶部26に記憶されたプログラムをRAMに読み出して実行することにより、端末装置20の各部を制御する。音声入出力部22は、マイクロホンやスピーカを有し、端末装置20において音声の入出力に関わる機能を実現する。無線通信部23は、無線通信回路やアンテナを備え、ネットワークNWに接続するためのインタフェースである。UI部24は、例えばタッチパネルを備え、ユーザからの操作を受け付けるとともに、画像により情報を報知する。
ICチップ25は、プロセッサやアンテナ、データの読み書きに用いられるメモリ領域251を有している、近接型の非接触通信を行うためのICチップである。ICチップ25のプロセッサは、アンテナにより受信した信号、又は制御部21からの信号に応じてメモリ領域251にアクセスし、データの読み出し又はデータの書き込みを行う。メモリ領域251は、複数のサービス提供者のいずれか1のサービス提供者の電子クーポンが書き込まれるメモリ領域であり、言い換えれば、複数のサービス提供者で共有されるメモリ領域である。すなわち、或るサービス提供者の電子クーポン(第2電子クーポン)がメモリ領域251に記憶されている場合、他のサービス提供者の電子クーポン(第1電子クーポン)は、上書きによる書込処理で新たにメモリ領域251に記憶させられる。よって、元々メモリ領域251に記憶されていた電子クーポンは書込処理によって削除させられる。一方で、同一のサービス提供者の複数の電子クーポンについては、同時にメモリ領域251に記憶されることが許可される。ただし、この場合であっても、メモリ領域251に記憶された電子クーポンに上書きして、同一のサービス提供者の電子クーポンが書き込まれる。また、ICチップ25は、端末装置20に割り当てられたユーザIDをメモリ領域251以外の所定のメモリ領域に記憶する。ここでは、端末装置20のユーザのユーザIDを「UID001」とする。ユーザIDは、電子クーポンの書込処理によって削除されない領域に記憶されている。
ところで、端末装置20は、書込処理によってメモリ領域251の電子クーポンが削除された場合であっても、ASPサーバ10に問い合わせることによって、いつでもその削除前の状態に戻して、電子クーポンをメモリ領域251に書き込むことができる。ASPサーバ10は、ユーザ管理テーブル132によって端末装置20毎に電子クーポンの提供及び利用に関する情報を管理しているからである。言い換えれば、ASPサーバ10は、メモリ領域251から電子クーポンが削除された場合に、新たな電子クーポンの書込処理によって削除されたのか、又は利用により削除されたのかを、ユーザ管理テーブル132を参照して判定することができる。
また、メモリ領域251に電子クーポンを上書きにより電子クーポンの書込処理が実行される構成は、サービス提供者にとって好ましい事情もある。例えば、複数のサービス提供者の電子クーポンが端末装置20に混在して記憶されてしまうことがないから、ユーザにとっては、電子クーポンを利用したり破棄したりする際の操作負担が軽減される。また、サービス提供者にとっても、複数のサービス提供者の電子クーポンが入り混じって表示されることがないため、他のサービス提供者とのサービスの差別化などの理由等で好ましい。
記憶部26は、例えばEEPROMを備え、制御部21が実行するプログラムのほか、クーポン管理アプリケーション261を記憶する。制御部21は、クーポン管理アプリケーション261を実行することにより、アプリケーション管理サーバ50と通信して電子クーポンの書込処理を実行する。端末装置20においては、いずれのサービス提供者の電子クーポンの提供を受ける場合にも、クーポン管理アプリケーション261が実行される。
次に、ASPサーバ10の制御部11の機能的構成を説明する。以下、電子クーポンの提供に関する機能と、電子クーポンの利用に関する機能とに分けて説明する。
図8は、ASPサーバ10の電子クーポンの提供に関する機能の機能的構成を示す機能ブロック図である。図8に示すように、ASPサーバ10の制御部11は、プログラムを実行することにより、第1更新部111と、書込指示部112と、第2更新部113とに相当する機能を実現する。
第1更新部111は、端末装置20に第1電子クーポンを新たに提供する場合、提供しようとする第1電子クーポンの枚数を、クーポン管理テーブル131の全体の残枚数から減じる。より詳細には、第1更新部111は、提供しようとする第1電子クーポンの枚数がクーポン管理テーブル131における第1電子クーポンのセット済未利用枚数よりも多い場合には、全体の残枚数から提供しようとする第1電子クーポンの枚数を減じるが、セット済未利用枚数の方が多い場合には、提供しようとする第1電子クーポンの枚数を全体の残枚数から減じない。そして、第1更新部111は、提供しようとする第1電子クーポンの枚数(全体の残枚数から提供しようとする枚数を減じた場合は、その枚数)を、第1電子クーポンのセット未確定枚数に設定するよう、ユーザ管理テーブル132を更新する。ここにおいて、第1更新部111は、第1電子クーポンを取得するためのクーポン取得要求を通信部12により端末装置20から取得したことを契機に、第1電子クーポンを新たに提供する処理を開始する。第1更新部111が全体の残枚数から減じた枚数をセット未確定枚数に設定する処理は、全体の残枚数から減じた枚数を、ゼロであるセット未確定枚数に加算する処理に等しい。
書込指示部112は、第1更新部111によりクーポン管理テーブル131及びユーザ管理テーブル132が更新された後、セット未確定枚数の第1電子クーポンをメモリ領域251に書き込む書込処理を実行するよう、通信部12により端末装置20に指示する。この指示を行う際、書込指示部112は、指示した書込処理の処理IDと、ステータス(ここでは、ブランクとする。)と、書込完了日時(ここでは、ブランクとする。)とを対応付けて、トランザクション管理テーブル133に書き込む。
処理結果取得部114は、書込指示部112の指示に応じてメモリ領域251に第1電子クーポンを書き込む書込処理が終了した旨の通知を端末装置20から受け付けた後、通信部12によりアプリケーション管理サーバ50に問い合わせて、この書込処理の結果を取得する。
第2更新部113は、通信部12により端末装置20と通信して、記憶部13の各データテーブルを更新する。その際、第2更新部113は、処理結果取得部114が取得した書込処理の結果により書込処理の成功が確定したか否かを判断する。第2更新部113により実現される機能は、具体的には以下のとおりである。
第1に、第2更新部113は、書込指示部112の指示に従った第1電子クーポンの書込処理の成功が確定した後、第1電子クーポンのセット未確定枚数をセット済未利用枚数に設定して、セット未確定枚数をクリアする(つまり、ゼロにする)。ここにおいて、第2更新部113は、例えば、第1電子クーポンのセット済未利用枚数が「3」である場合に、「2」である第1電子クーポンのセット未確定枚数をセット済未利用枚数に設定するときには、設定後のセット済未利用枚数を「2」とする。
第2に、第2更新部113は、メモリ領域251に記憶されていた第2電子クーポンに第1電子クーポンを上書きする書込処理が端末装置20で成功した場合、第2電子クーポンのセット済未利用枚数を第2電子クーポンの全体の残枚数に加算し、そのセット済未利用枚数をクリアする。その際、第2更新部113は、利用履歴が保留リストテーブル134に書き込まれている第2電子クーポンについては、セット済未利用枚数から利用履歴に含まれる利用枚数を減じた枚数を、全体の残枚数に加算することがある(つまり、全体の残枚数に差し戻す)。また、第2更新部113は、利用履歴が保留リストテーブル134に書き込まれている、第2電子クーポン以外の電子クーポン(第3電子クーポン)についても、セット済未利用枚数から利用履歴に含まれる利用枚数を減じた枚数を全体の残枚数に加算する。
一方、第2更新部113は、書込指示部112の指示に従った電子クーポンの書込処理の失敗が確定した場合、その電子クーポンのセット未確定枚数がセット済未利用枚数よりも多い場合には、セット未確定枚数とセット済未利用枚数との差分を、全体の残枚数に加算する(つまり、差し戻す)。第2更新部113は、セット未確定枚数がセット済未利用枚数以下である場合には、全体の残枚数への差し戻しを行わない。
第3に、第2更新部113は、第1電子クーポンの書込処理の結果が確定した場合、その結果をトランザクション管理テーブル133に書き込む。ここにおいて、第2更新部113は、成功で確定した書込処理については、ステータスを「成功」に書き換えるとともに、その書込完了日時を書き込む。
ASPサーバ10の電子クーポンの提供に関する機能の説明は以上である。
図9は、ASPサーバ10の電子クーポンの利用に関する機能の機能的構成を示す機能ブロック図である。図9に示すように、ASPサーバ10の制御部11は、プログラムを実行することにより、利用履歴取得部115と、第3更新部116とに相当する機能を実現する。
利用履歴取得部115は、ICチップ25のメモリ領域251に記憶された第1電子クーポンを端末装置20が利用した場合、通信部12により店舗管理サーバ30と通信して、その第1電子クーポンの利用実績を取得する。
第3更新部116は、利用履歴取得部115が取得した第1電子クーポンの利用履歴により、記憶部13に記憶された各データテーブルのうち、電子クーポンを利用した端末装置20に対応する情報を更新する。
第1に、第3更新部116は、トランザクション管理テーブル133を参照して、結果が未確定である書込処理が存在せず、利用履歴取得部115が取得した利用履歴に含まれる利用日時が最新の書込完了日時よりも後である場合、セット済未利用枚数から利用履歴に含まれる利用枚数を減じる。一方、第3更新部116は、利用日時が最新の書込完了日時よりも前である場合、セット済未利用枚数から利用枚数を減じない。
第2に、第3更新部116は、トランザクション管理テーブル133を参照して、利用履歴取得部115が取得した利用履歴に含まれる利用日時が最新の書込完了日時よりも後である場合に、結果が未確定である書込処理が存在するときには、利用履歴に含まれる利用枚数の更新を保留して、その利用履歴を保留リストテーブル134に書き込む。一方、第3更新部116は、利用日時が最新の書込完了日時よりも前である場合には、セット済未利用枚数から利用枚数を減じない。
第3に、第3更新部116は、トランザクション管理テーブル133及び保留リストテーブル134を参照し、書込処理の結果がすべて確定した後、保留リストテーブル134に書き込まれた利用履歴に含まれる利用日時が最新の書込完了日時よりも後である場合には、セット済未利用枚数からこの利用履歴に含まれる利用枚数を減じる。一方、第3更新部116は、利用日時が最新の書込完了日時よりも前である場合には、セット済未利用枚数から利用枚数を減じない。
ASPサーバ10の機能的構成の説明は以上である。次に、通信システム1の動作を説明する。
図10は、通信システム1の全体的な処理の流れを示すシーケンスチャートである。
端末装置20が電子クーポンを取得しようとする際には、ASPサーバ10にアクセスしてブラウザを用いてその取得に必要な処理を行う。ここでは、端末装置20は、取得しようとする電子クーポンを示すクーポンIDと電子クーポンの取得枚数とを含むクーポン取得要求を、ASPサーバ10宛てに送信する(ステップSa1)。図11は、端末装置20が電子クーポンを取得しようとするときにUI部24に表示される画面例である。ユーザはUI部24を操作して、電子クーポンの取得枚数をプルダウンメニューPa1,Pa2を用いて選択し、「クーポンを取得」と付されたソフトボタンBaを選択する。
次に、ASPサーバ10は、端末装置20からクーポン取得要求を受信すると、セット開始処理を実行する(ステップSa2)。セット開始処理は、ASPサーバ10が端末装置20に電子クーポンの書込処理を指示するまでの処理である。次に、ASPサーバ10は、アプリケーション管理サーバ50に対して、電子クーポンの書込処理に関する処理依頼を行って、問合せIDの生成を要求する(ステップSa3)。アプリケーション管理サーバ50は、ステップSa2の処理依頼に応じて生成した問合せIDを、ASPサーバ10宛てに送信する(ステップSa4)。ここにおいて、処理依頼は、ICチップ25のメモリ領域251に書き込まれることとなる電子クーポンに関する情報(以下、「クーポン情報」という。)を含む。より具体的には、処理依頼は、クーポン取得要求と同じ電子クーポンIDと電子クーポンの取得枚数とを特定可能な情報を含む。問合せIDは、処理依頼を識別する識別情報である。
次に、ASPサーバ10は、セット開始処理に応じた書込処理を指示するための書込指示を端末装置20宛てに送信する(ステップSa5)。ここにおいて、ASPサーバ10は、アプリケーション管理サーバ50から受信した問合せIDを含めた書込指示を送信する。
端末装置20は、ASPサーバ10から書込指示を受信すると、クーポン管理アプリケーション261を実行し、アプリケーション管理サーバ50宛てに書込指示に含まれていた問合せIDを送信する(ステップSa6)。アプリケーション管理サーバ50は、端末装置20から受信した問合せIDに対応する処理依頼に従い、書込処理に用いられるクーポン情報を端末装置20宛てに送信する(ステップSa7)。端末装置20は、アプリケーション管理サーバ50から受信したクーポン情報に基づいて、電子クーポンの書込処理を実行する(ステップSa8)。ここにおいて、端末装置20は、メモリ領域251に既に電子クーポンが記憶されている場合であっても、この電子クーポンへの上書きによる書込処理により、メモリ領域251に新たな電子クーポンを記憶させることとなる。
次に、端末装置20は、書込処理の結果を示す結果通知を、アプリケーション管理サーバ50宛てに送信する(ステップSa9)。ここにおいて、端末装置20は、書込処理の結果が成功又は失敗のいずれであるかを示す情報と、この書込処理の書込完了日とを含む結果通知を送信する。次に、端末装置20は、メモリ領域251に電子クーポンを書き込む書込処理が終了した旨を示す終了通知を、ASPサーバ10宛てに送信する(ステップSa10)。
ASPサーバ10は、端末装置20から送信された終了通知を受け付けた後、アプリケーション管理サーバ50に問い合わせて、終了通知の送信元の端末装置20における書込処理の結果の通知を要求する(ステップSa11)。アプリケーション管理サーバ50は、ASPサーバ10からの問い合わせに応じて、ASPサーバ10宛てに書込処理の結果(つまり、結果通知)を送信する(ステップSa12)。アプリケーション管理サーバ50が通知する書込処理の結果は、成功、失敗又は不明のいずれかである。ASPサーバ10は、成功又は失敗という書込処理の結果を受け付けた場合には、書込処理の結果を確定させることができるが、不明という結果を受け付けた場合には、書込処理の結果を未確定のままとする。ASPサーバ10は、ステップSa12で送信されて受け付けた結果通知に従って、トランザクション管理テーブル133のステータスのフィールドに書込処理の結果を書き込む。
ASPサーバ10は、端末装置20から結果通知を受け付けると、セット確定処理を実行する(ステップSa13)。セット確定処理は、端末装置20における電子クーポンの書込処理の結果に応じて、ASPサーバ10が各データテーブルを更新するための処理である。
上述したように、端末装置20は、電子クーポンを利用すると直ちに(つまり、リアルタイムで)、書込結果をアプリケーション管理サーバ50宛てに送信するとともに、終了通知をASPサーバ10宛てに送信する。すなわち、本来は、端末装置20の電子クーポンの書込処理が終了すると、直ちに、ASPサーバ10はセット確定処理を開始する。しかしながら、端末装置20が書込処理を行った後、端末装置20が通信可能エリア外に移動するなどして、アプリケーション管理サーバ50に結果通知を送信できなかったり、終了通知をASPサーバ10に送信できなかったりした場合には、セット確定処理の開始が遅延する。例えば、ASPサーバ10は、終了通知を受信しなかった場合には、端末装置20において書込処理が終了したことを知り得ないので、書込処理中である場合の動作をするからである。この場合、ASPサーバ10が書込処理の結果を取得する時期が遅延するので、それに伴って、セット確定処理の開始も遅延する。
なお、端末装置20が終了通知や結果通知を送信できない原因は、端末装置20が通信可能エリア外に居ることに限らない。例えば、端末装置20において、クーポン管理アプリケーション261の実行が強制的に終了させられたこと(クーポン管理アプリケーション261の実行が終了させられたことや電源オフ等)や、端末装置20のバッテリ切れがある。
端末装置20は、クーポン管理アプリケーション261を実行した状態にある場合には、結果通知及び終了通知の送信が完了するまで、結果通知及び終了通知の送信を繰り返し試みる(つまり、リトライする)。一方、ブラウザやクーポン管理アプリケーション261が強制終了させられたり、端末装置20が電源オフされたりした場合には、端末装置20が通信可能な状態になっても、結果通知及び終了通知を送信しないことがある。よって、ASPサーバ10は、クーポン情報を送信してから、一定時間終了通知を受信しない場合には、ステップSa11の処理において、自発的にアプリケーション管理サーバ50に書込処理の結果の問合せを行う。結果通知についても、端末装置20からアプリケーション管理サーバ50に送信されない。よって、アプリケーション管理サーバ50は、クーポン情報を送信してから、一定時間経過しても結果通知を受け付けなかった場合には、書込処理の結果を不明、又は失敗と自発的に判断する。
ASPサーバ10が端末装置20に電子クーポンを提供しようと際の処理の流れは以上である。以降の処理は、端末装置20が電子クーポンを利用するときの通信システム1の処理の流れを示す。
端末装置20がメモリ領域251に記憶された電子クーポンを利用しようとするときには、端末装置20を携帯したユーザは店舗端末40が設置された店舗に趣いて、リーダ/ライタ41にこの端末装置20をかざす。店舗端末40のリーダ/ライタ41は、ICチップ25に記憶された電子クーポンを読み取って、ICチップ25に対するデータの読み書きを行う。
なお、店舗端末40は、ICチップ25に記憶された電子クーポンが利用枚数以上残っているか否かを判断して、決済に反映させる等の処理を実行する。ここでの店舗端末40の動作は、本発明で特別な構成を有していなくてよい。
店舗管理サーバ30は、店舗端末40によるメモリ領域251に対するデータの読み書きの結果や決済等の情報に基づいて、端末装置20により利用された電子クーポンの利用履歴を生成し、ASPサーバ10宛てに利用履歴を送信する(ステップSa14)。ここにおいて、店舗管理サーバ30は、電子クーポンが利用されると直ちに(リアルタイムで)、利用履歴を送信する。
ASPサーバ10は、店舗管理サーバ30から通信により利用履歴を取得すると、その利用履歴に応じて利用時処理を実行する(ステップSa15)。利用時処理は、端末装置20における電子クーポンの利用に応じて、ASPサーバ10が各データテーブルを更新するための処理である。
以降においても、電子クーポンの取得に関する処理や電子クーポンに利用に関する処理が上記同様の手順により実行される。また、通信システム1においては、必ずしも図10に示す流れで処理が実行されるわけではない。例えば、ASPサーバ10がセット開始処理を実行して書込指示を送信した直後に利用履歴を取得した場合には、利用時処理を実行する。また、ASPサーバ10は、利用時処理の直後に書込処理の結果通知を受け付けた場合には、セット確定処理を実行する。
ASPサーバ10の動作について具体例を用いて詳細に説明する。ここでは、以下の(事象1)から(事象12)で構成されるストーリに従って、ASPサーバ10の動作を説明する。以下の「−」(ハイフン)の左側の時刻は、各事象の発生時刻(ASPサーバ10の処理であれば、その開始時刻)であり、「−」の右側は事象の内容を示す。
(事象1)2011/6/29 10:04−電子クーポンAを5枚提供するためのセット開始処理
(事象2)2011/6/29 10:05−電子クーポンAのセット確定処理
(事象3)2011/6/29 11:00−電子クーポンAを3枚利用(1回目)
(事象4)2011/6/29 12:00−電子クーポンAを1枚利用(2回目)
(事象5)2011/6/29 15:00−電子クーポンBを10枚提供するためのセット開始処理
(事象6)2011/6/29 16:00−電子クーポンAの利用履歴を取得(1回目)
(事象7)2011/6/29 17:00−電子クーポンBを5枚利用(1回目)
(事象8)2011/6/29 18:00−電子クーポンBの利用履歴を取得(1回目)
(事象9)2011/6/29 19:00−電子クーポンBのセット確定処理
(事象10)2011/6/29 20:00−電子クーポンBを1枚利用(2回目)
(事象11)2011/6/29 21:00−電子クーポンBの利用履歴を取得(2回目)
(事象12)2011/6/29 22:00−電子クーポンAの利用履歴を取得(2回目)
(事象1)2011/6/29 10:04−電子クーポンAを5枚提供するためのセット開始処理
まず(事象1)について説明する。
図12は、セット開始処理の流れを示すフローチャートである。図13は、各データテーブルの更新の様子を説明する図である。このセット開始処理前においては、記憶部13に記憶されている各データテーブルは、図3から図6に示されるデータ構造であるとする。なお、図13等のデータテーブルの更新の様子を説明する図では、更新により変化したフィールドを太枠で囲んで表すとともに、変化した電子クーポンの枚数を「○」の中に付した数値で表す。
ASPサーバ10は、ステップSa1の処理で送信されたクーポン取得要求を受信したことを契機に、セット開始処理を開始する。このクーポン取得要求は、電子クーポンAのクーポンID「CID001」と、取得枚数「5」とを含む。
まず、ASPサーバ10は、トランザクション管理テーブル133を参照して、ステータスが「未確定」の書込処理があるか否かを判断する(ステップSa21)。ここにおいて、ASPサーバ10は、書込処理の結果が成功又は失敗のいずれにも確定していない書込処理の存在の有無を判断する。図5に示されるとおり、ステータスが「未確定」の書込処理はないので、ASPサーバ10はステップSa21の処理で「NO」と判断し、ステップSa22の処理に進む。
次に、ASPサーバ10は、電子クーポンAの全体の残枚数、及び個人の残枚数が、それぞれクーポン取得要求に含まれる取得枚数以上であるか否かを判断する(ステップSa22)。ASPサーバ10は、クーポン管理テーブル131に書き込まれた全体の残枚数、及びユーザ管理テーブル132に書き込まれた個人の残枚数のそれぞれと、取得枚数とを比較して、クーポン取得要求に応じて電子クーポンAを提供できるか否かを判断する。
本実施形態において、全体の残枚数は、下記式(1)の関係を満たす。
全体の残枚数=全体の制限枚数−Σ{個人の利用枚数+MAX(セット済未利用枚数,セット未確定枚数)−保留リストテーブル134の利用枚数の合計} ・・・(1)
ただし、「Σ」は、全端末装置20(全ユーザ)の総和であることを意味する符号である。MAX(A,B)は、AとBのうち大きい方の値を採ることを意味する。
本実施形態において、個人の残枚数は、下記式(2)の関係を満たす。
個人の残枚数=個人の制限枚数−個人の利用枚数 ・・・(2)
端末装置20が設定可能な取得枚数の最大数は、下記式(3)の関係を満たす。
取得枚数の最大数=MIN{個人の残枚数,全体の残枚数+MAX(セット済未利用枚数,セット未確定枚数)} ・・・(3)
ただし、MIN(A,B)は、AとBのうち小さい方の値を採ることを意味する。
図3及び図4に示されるとおり、電子クーポンAの全体の残枚数は「1000」であり、個人の残枚数は「10」であるから、それぞれ取得枚数の「5」を上回っている。よって、ASPサーバ10は、ステップSa22の処理で「YES」と判断して、ステップSa23の処理に進む。
次に、ASPサーバ10は、これから端末装置20に指示する書込処理のステータスを「未確定」に設定して、トランザクション管理テーブル133を更新する(ステップSa23)。図13(a)に示すように、ASPサーバ10は、この書込処理に処理ID「TsA」を割り当てて、ステータス「未確定」と対応付けて、トランザクション管理テーブル133に新たに書き込む。このとき、書込完了日時のフィールドはブランクである。
次に、ASPサーバ10は、電子クーポンAの取得枚数をセット未確定枚数に設定するよう、クーポン管理テーブル131及びユーザ管理テーブル132を更新する(ステップSa24)。図13(b)に示すように、ASPサーバ10は、クーポンID「CID001」の電子クーポンAについて、全体の残枚数である「1000」から取得枚数である「5」を減じて、全体の残枚数を「995」とするよう、クーポン管理テーブル131を更新する。また、ASPサーバ10は、電子クーポンAについて、全体の残枚数から減じた取得枚数である「5」をセット未確定枚数に設定するよう、ユーザ管理テーブル132を更新する。
ASPサーバ10がステップSa24の処理でセット未確定枚数に設定した取得枚数分の電子クーポンは、未だICチップ25への書込処理が行われていない電子クーポンであり、書込処理の結果が確定していない電子クーポンである。しかしながら、全体の残枚数から減じられた電子クーポンであるから、この取得枚数分の電子クーポンが他のユーザの端末装置20に取得されることはない。
なお、ASPサーバ10は、ステップSa21の処理でステータスが「未確定」の書込処理があると判断した場合には(ステップSa21;YES)、セット開始処理を終了する。本実施形態では、電子クーポンの枚数管理の説明を簡単にするために、ステータスが未確定の書込処理がある端末装置20に対しては、ASPサーバ10が新たなセット開始処理を行わないようにする。また、ASPサーバ10は、ステップSa22の処理において、全体の残枚数、又は個人の残枚数が取得枚数未満であると判断した場合には(ステップSa22;NO)、セット開始処理を終了する。ASPサーバ10は、全体の残枚数及び個人の残枚数のいずれも超えない取得枚数で電子クーポンを提供するから、過剰に電子クーポンを提供することのないよう、ここでセット開始処理を終了する。
(事象2)2011/6/29 10:05−電子クーポンAのセット確定処理
次に(事象2)について説明する。
図14及び図15は、セット確定処理の流れを示すフローチャートである。図16は、各データテーブルの更新の様子を示す図である。
ここでのセット確定処理の開始前は、保留リストテーブル134以外のデータテーブルのデータ構造は、図13に示されるとおりである。また、このセット確定処理に先立って、ステップSa12の処理に応じてASPサーバ10が受け付けた結果通知により、書込完了日時「2011/6/29 10:05」に、(事象1)のセット開始処理に応じて指示された書込処理が完了したものとする。ここでは、ASPサーバ10は、成功で確定した書込処理を識別する処理ID「TsA」に、ステータス「成功」と、書込完了日時「2011/6/29 10:05」とを対応付けて、トランザクション管理テーブル133に書き込む(図16(a)参照)。
セット確定処理において、ASPサーバ10は、まず、セット確定処理の開始の契機となった書込処理が成功したものであるか否かを判断する(ステップSa1301)。ここにおいて、ASPサーバ10は、書込処理が成功で確定したものと判断すると(ステップSa1301;YES)、ステップSa1302の処理に進む。次に、ASPサーバ10は、ユーザID「UID001」に対応付けられたセット済未利用枚数を全てクリアするよう、ユーザ管理テーブル132を更新する(ステップSa1302)。端末装置20では上書きにより電子クーポンの書込処理が行われるから、ASPサーバ10はメモリ領域251に記憶されていた電子クーポンのセット済未利用枚数をクリアして、その電子クーポンの全体の残枚数に加算する(つまり、差し戻す)。ここでは、差し戻す対象となる電子クーポンがないので、ユーザ管理テーブル132に特に変化はない。
次に、ASPサーバ10は、電子クーポンAのセット未確定枚数をセット済未利用枚数に設定するとともに、そのセット未確定枚数をクリアするよう、ユーザ管理テーブル132を更新する(ステップSa1303)。図16(b)に示すように、ASPサーバ10は、「5」であるセット未確定枚数をセット済未利用枚数に設定して「5」にするとともに、セット未確定枚数をクリアして「5」から「0」にする。これにより、ASPサーバ10は、メモリ領域251に書き込まれた電子クーポンAの枚数と、ユーザ管理テーブル132における電子クーポンAのセット済未利用枚数とを一致(同期)させたことになる。ASPサーバ10は、セット開始処理のステップSa24の処理で、提供しようとする枚数の電子クーポンAが予め(つまり、予約的に)全体の残枚数から減じていたから、ここでは全体の残枚数を変化させることはない。
このように書込処理の成功が確定した電子クーポンAは、セット開始処理の段階で他のユーザにより取得されないようになっていたため、セット開始処理が実行されたときから、セット確定処理においてセット済未利用枚数に加算されるまでの期間に、他のユーザによりこの電子クーポンAが取得されることはない。
次に、ASPサーバ10は、保留リストテーブル134に利用履歴が書き込まれているか否かを判断する(ステップSa1304)。図6に示されるとおり、ここでは、ASPサーバ10は保留リストテーブル134に利用履歴が書き込まれていないと判断し(ステップSa1304;NO)、セット確定処理を終了する。
なお、ステップSa1301の処理でASPサーバ10が書込処理に失敗したと判断した場合や、保留リストテーブル134に利用履歴が書き込まれている場合の動作については、後で説明することとなる。
(事象3)2011/6/29 11:00−電子クーポンAを3枚利用(1回目)
(事象2)のセット確定処理後、端末装置20により、「2011/6/29 11:00」において電子クーポンAが「3」枚利用されたとする。この利用により、メモリ領域251が記憶する電子クーポンAの残りの枚数は、「5」枚から「2」枚に減じられる。この利用を契機に、本来は、ASPサーバ10が店舗管理サーバ30から利用履歴を直ちに取得するはずである。ただし、ここでは、店舗端末40や店舗管理サーバ30の故障やネットワークNWにおける通信障害等の何らかの原因により、店舗管理サーバ30がASPサーバ10宛てに利用履歴を送信しなかった場合を想定する。この場合、ユーザ管理テーブル132においては、クーポンAのセット済未利用枚数は「5」のままであるから、ASPサーバ10と端末装置20とにおいて、メモリ領域251に記憶されていると把握している電子クーポンAに「3」枚の差異が存在する。本来は、ユーザ管理テーブル132においてセット済未利用枚数は「2」となるべきである。しかしながら、利用履歴によるユーザ管理テーブル132の更新がASPサーバ10で行われていないので、セット済未利用枚数は「5」のままである。
(事象4)2011/6/29 12:00−電子クーポンAを1枚利用(2回目)
(事象3)の後、端末装置20により、「2011/6/29 12:00」において電子クーポンAが「1」枚利用されたとする。この利用により、メモリ領域251が記憶する電子クーポンAの残りの枚数は、「2」枚から「1」枚に減じられる。ここでも、店舗管理サーバ30がASPサーバ10宛てに利用履歴を送信しなかった場合を想定する。この場合、ユーザ管理テーブル132においては、クーポンAのセット済未利用枚数は「5」のままであるから、ASPサーバ10と端末装置20とにおいて、メモリ領域251に記憶されていると把握している電子クーポンAに「4」枚の差異が存在する。本来は、ユーザ管理テーブル132においてセット済未利用枚数は「1」となるべきである。しかしながら、利用履歴によるユーザ管理テーブル132の更新がASPサーバ10で行われていないので、セット済未利用枚数は未だ「5」のままである。
(事象5)2011/6/29 15:00−電子クーポンBを10枚提供するためのセット開始処理
次に(事象5)を説明する。
電子クーポンBを10枚提供するためのセット開始処理においても、その処理の流れは、上述した(事象1)で説明した内容と基本的に同じである。よって、ここでのセット開始処理については、図12を参照しつつ適宜省略しながら処理の流れを説明する。図17は、各データテーブルの更新の様子を示す図である。ASPサーバ10は、ステップSa1の処理で送信されたクーポン取得要求を受信したことを契機に、セット開始処理を開始する。このクーポン取得要求は、電子クーポンBのクーポンIDとして「CID002」と、取得枚数として「10」とを含む。
ASPサーバ10は、クーポン取得要求を受信すると、トランザクション管理テーブル133を参照して、ステータスが未確定の書込処理があるか否かを判断する(ステップSa21)。図16(a)に示されるとおり、ここではステータス「未確定」の書込処理がない。よって、ASPサーバ10は、ステップSa21の処理で「NO」と判断して、ステップSa22の処理に進む。
次に、ASPサーバ10は、電子クーポンBの全体の残枚数、及び個人の残枚数がそれぞれ、取得枚数以上であるか否かを判断する(ステップSa22)。図13(b)に示されるとおり、全体の残枚数が「5000」であり、個人の残枚数が「25」であるのに対し、取得枚数は「10」である。よって、ASPサーバ10は、ステップSa22の処理で「YES」と判断して、ステップSa23の処理に進む。
次に、ASPサーバ10は、これから指示する書込処理のステータスを「未確定」に設定して、トランザクション管理テーブル133を更新する(ステップSa23)。ここにおいて、ASPサーバ10は、図17(a)に示すように、処理ID「TsB」を割り当てて、ステータス「未確定」と対応付けて、トランザクション管理テーブル133に新たに書き込む。
次に、ASPサーバ10は、電子クーポンBの取得枚数をセット未確定枚数に設定するよう、クーポン管理テーブル131及びユーザ管理テーブル132を更新する(ステップSa24)。図17(b)に示すように、ASPサーバ10は、クーポンIDが「CID002」である電子クーポンBについて、全体の残枚数を「5000」から取得枚数の「10」だけ減じて、「4990」とする。また、ASPサーバ10は、全体の残枚数から減じた取得枚数である「10」をセット未確定枚数に設定して、セット未確定枚数を「10」にする。
ここでのセット開始処理は以上である。
(事象6)2011/6/29 16:00−電子クーポンAの利用履歴を取得(1回目)
次に(事象6)を説明する。
図18は、利用時処理の流れを示すフローチャートである。図19は、各データテーブルの更新の様子を示す図である。
ASPサーバ10は、「2011/6/29 16:00」に、(事象3)で利用された電子クーポンAの利用履歴を店舗管理サーバ30から取得したことを契機に、利用時処理を実行する。利用時処理が本来よりも遅れて開始される例としては、この時刻に店舗管理サーバ30が復旧したり、ネットワークNWの障害が解消したりしたこと等が考えられる。ここにおいて、ASPサーバ10は、クーポンID「CID001」、利用日時「2011/6/29 11:00」、及び利用枚数「3」を含む利用履歴を取得する。
まず、ASPサーバ10は、トランザクション管理テーブル133を参照して、ステータスが「未確定」の書込処理があるか否かを判断する(ステップSa151)。図17(a)に示すように、ここでは、処理ID「TsB」の書込処理の結果(ステータス)が未確定である。よって、ASPサーバ10は、ステップSa151の処理で「YES」と判断し、ステップSa152の処理に進む。
次に、ASPサーバ10は、店舗管理サーバ30から取得した利用履歴に含まれる利用日時と、トランザクション管理テーブル133における最新の書込完了日時とを比較し、利用日時が最新の書込完了日時よりも後であるか否かを判断する(ステップSa152)。図17(a)に示すように、ここでの最新の書込完了日時は「2011/6/29 10:05」である。よって、ASPサーバ10は、ステップSa152の処理で「YES」と判断し、ステップSa153の処理に進む。そして、ASPサーバ10は、利用履歴によるセット済未利用枚数の更新を保留して(つまり、更新しないで)、この利用履歴を保留リストテーブル134に書き込む(ステップSa153)。
ステップSa3の処理では、ASPサーバ10は、ステータスが未確定の書込処理が存在し、書込処理の結果の確定の遅延と、利用履歴の取得の遅延という、双方の遅延を原因として電子クーポンAに関する情報を誤って管理をしないよう、利用履歴に基づく処理を一旦保留している。具体的には、ASPサーバ10は、利用履歴を遅延して取得した場合にステータスが「未確定」の書込処理が残っているときには、その書込処理の結果が確定するまでは、メモリ領域251において電子クーポンAに関する情報が書き換わった時刻が不明である。よって、ASPサーバ10にしてみれば、取得した利用履歴が、その書込処理によって書き込まれた電子クーポンAから利用されたものなのか、それ以前に記憶されていた電子クーポンAの利用履歴が遅れて送信されたのかを、この時点で正確に判断することはできない。この理由により、ASPサーバ10は、この判断を正確にできるようになるまで利用履歴に基づく処理を保留するわけである。ステップSa153の処理後の保留リストテーブル134は、図19(a)に示されるとおりである。
次に、ASPサーバ10は、個人の残枚数からステップSa153の処理で保留させた利用履歴の利用枚数を減じるとともに、利用履歴の利用枚数を個人の利用枚数に加算する(ステップSa154)。図19(b)に示すように、ここでは、ASPサーバ10は、個人の利用枚数に「3」を加算して「0」から「3」にするとともに、個人の残枚数「10」から「3」を減じて「7」にするよう、ユーザ管理テーブル132を更新する。
以上のASPサーバ10の処理により、(事象3)における利用履歴の取得の遅延と、電子クーポンBの書込処理の結果の確定の遅延とを原因とした電子クーポンBの他のユーザによる重複取得は回避される。
なお、ステップSa151の処理で、ASPサーバ10がステータスが未確定の書込処理がないと判断した場合の動作については、後で説明することとなる。
(事象7)2011/6/29 17:00−電子クーポンBを5枚利用(1回目)
(事象6)の利用時処理の実行後、端末装置20により、「2011/6/29 17:00」において電子クーポンBが「5」枚利用されたとする。この利用により、メモリ領域251が記憶する電子クーポンBの残り枚数は、「10」から「5」に減じられる。ここでも、店舗管理サーバ30がASPサーバ10宛てに利用履歴を送信しなかった場合を想定する。この場合、ユーザ管理テーブル132においては、クーポンBのセット済未利用枚数が「0」のままであるから、ASPサーバ10と端末装置20とにおいて、メモリ領域251に記憶されていると把握している電子クーポンBに「5」枚の差異が存在する。本来は、ユーザ管理テーブル132においてセット済未利用枚数は「5」となるべきである。しかしながら、利用履歴によるユーザ管理テーブル132の更新がASPサーバ10で行われていないので、セット済未利用枚数は「0」のままである。
(事象8)2011/6/29 18:00−電子クーポンBの利用履歴を取得(1回目)
次に(事象8)を説明する。ここでの利用時処理の流れは、上述した(事象6)で説明した内容と基本的に同じであるから、図18を参照しつつ適宜簡略化して説明する。図20は、各データテーブルの更新の様子を示す図である。ここでは、ASPサーバ10が、「2011/6/29 18:00」に、(事象7)で利用された電子クーポンBの利用履歴を基に利用時処理を実行する。ここにおいて、ASPサーバ10は、クーポンID「CID002」、利用日時「2011/6/29 17:00」及び利用枚数「5」という利用履歴を取得することとなる。
まず、ASPサーバ10は、ステータスが未確定の書込処理があるか否かを判断する(ステップSa151)。ここでは、図17(a)に示すように、処理ID「TsB」の書込処理のステータスが「未確定」である。よって、ASPサーバ10は、ステップSa151の処理で「YES」と判断して、ステップSa152の処理に進む。次に、ASPサーバ10は、トランザクション管理テーブル133を参照して、店舗管理サーバ30から取得した利用履歴に含まれる利用日時が最新の書込完了日時よりも後であるか否かを判断する(ステップSa152)。ここでは、ASPサーバ10は、最新の書込完了日時が「2011/6/29 10:05」であるから、ステップSa152の処理で「YES」と判断し、利用履歴を保留リストテーブル134に書き込む(ステップSa153)。ステップSa153の処理後の保留リストテーブル134は、図20(a)に示されるとおりである。
次に、ASPサーバ10は、個人の残枚数から利用履歴の利用枚数を減じ、更に、利用履歴の利用枚数を個人の利用枚数に加算する(ステップSa154)。図20(b)に示すように、ASPサーバ10は、個人の残枚数「25」から「5」を減じて「20」にするとともに、個人の利用枚数に「5」を加算して「0」から「5」にする。
以上のASPサーバ10の処理により、電子クーポンBの書込処理の結果の確定の遅延を原因とした、電子クーポンBの重複取得が回避される。
ここでの利用時処理は以上である。
(事象9)2011/6/29 19:00−電子クーポンBのセット確定処理
次に(事象9)を説明する。セット確定処理の手順については図14を参照して説明する。図21は、各データテーブルの更新の様子を示す図である。
以下に説明するセット確定処理の開始時はテーブルのデータ構造は、図20に示されるものである。このセット確定処理に先立って、ステップSa12の処理に応じてASPサーバ10が受け付けた結果通知により、書込完了日時「2011/6/29 15:01」に書込処理が完了したとする。この場合、ASPサーバ10は、成功が確定した書込処理を識別する処理ID「TsB」に、ステータス「成功」と、書込完了日時「2011/6/29 15:01」とを対応付けて、トランザクション管理テーブル133に書き込む(図21(a)参照)。
まず、ASPサーバ10は、セット確定処理の開始の契機となった書込処理が成功したものであるか否かを判断する(ステップSa1301)。ASPサーバ10は、書込処理が成功で確定したと判断すると(ステップSa1301;YES)、ステップSa1302の処理に進む。次に、ASPサーバ10は、ユーザID「UID001」に対応付けられた各電子クーポンのセット済未利用枚数を全てクリアして、それぞれ全体の残枚数に加算することによりセット済未利用枚数を差し戻す(ステップSa1302)。ここにおいて、ASPサーバ10は、クーポンID「CID001」の電子クーポンAのセット済未利用枚数である「5」を全体の残枚数に差し戻して、全体の残枚数を「1000」とする。一方、クーポンID「CID002」の電子クーポンBのセット済未利用枚数は「0」であるから、全体の残枚数はここでは「4990」のままである。
次に、ASPサーバ10は、電子クーポンBのセット未確定枚数をセット済未利用枚数に設定するとともに、そのセット未確定枚数をクリアするよう、ユーザ管理テーブル132を更新する(ステップSa1303)。図21(b)に示すように、ここでは、ASPサーバ10は、クーポンID「CID002」の電子クーポンBについて、セット未確定枚数である「10」をセット済未利用枚数に設定して「10」にするとともに、このセット未確定枚数をクリアして「10」から「0」にする。
次に、ASPサーバ10は、保留リストテーブル134に利用履歴が書き込まれているか否かを判断する(ステップSa1304)。図20(a)に示されるとおり、ASPサーバ10は保留リストテーブル134に利用履歴が書き込まれていると判断し(ステップSa1304;YES)、ステップSa1305の処理に進む。
次に、ASPサーバ10は、保留リストテーブル134から利用履歴を1件抽出する(ステップSa1305)。ここでは、ASPサーバ10は、利用日時が最も後である利用履歴を抽出するが、いずれを抽出しても構わない。次に、ASPサーバ10は、抽出した利用履歴の利用日時が最新の書込完了日時よりも後であるか否かを判断する(ステップSa1306)。ここにおいて、クーポンID「CID002」、利用日時「2011/6/29 17:00」及び利用枚数「5」という利用履歴に対し、最新の書込完了日時が「2011/6/29 15:01」である。よって、ASPサーバ10は利用日時の方が後と判断し(ステップSa1306;YES)、抽出した利用履歴の利用枚数をセット済未利用枚数から減じる(ステップSa1307)。図21(c)に示すように、ここでは、ASPサーバ10は、セット済未利用枚数「10」から利用枚数「5」を減じて、セット済未利用枚数を「5」に設定する。そして、ASPサーバ10は、ステップSa1305の処理で抽出した利用履歴を、保留リストテーブル134から削除する(ステップSa1308)。
次に、ASPサーバ10は、保留リストテーブル134に利用履歴が残っているか否かを判断する(ステップSa1309)。ここで、ASPサーバ10は、クーポンID「CID001」の利用履歴が残っているので、ステップSa1309の処理で「YES」と判断し、ステップSa1305の処理に戻る。次に、ASPサーバ10は、保留リストテーブル134から利用履歴を1件抽出する(ステップSa1305)。ASPサーバ10は、抽出した利用履歴の利用日時が最新の書込完了日時よりも後であるか否かを判断する(ステップSa1306)。ここにおいて、クーポンID「CID001」、利用日時「2011/6/29 11:00」及び利用枚数「3」という利用履歴に対し、最新の書込完了日時は「2011/6/29 15:01」である。ASPサーバ10は、利用日時の方が前と判断した場合(ステップSa1306;NO)、この利用履歴利用枚数を全体の残枚数から減じてから削除する(ステップSa1308)。ここでは、ASPサーバ10は、電子クーポンAについて、保留リストテーブル134に含まれる利用枚数である「3」を、電子クーポンAの全体の残枚数である「1000」から減じて「997」としてから、保留リストテーブル134から抽出した利用履歴を削除する(ステップSa1308)。
このステップSa1308の処理で、ASPサーバ10が保留リストテーブル134に含まれる利用枚数を全体の残枚数から減じた理由を説明する。保留リストテーブル134に利用履歴が書き込まれていたということは、実際にはこの利用履歴から特定される利用枚数分の電子クーポンは既に利用されたものの、ステップSa1306の処理で「NO」と判断された場合には、この利用枚数が未だセット済未利用枚数からは減じられていないことになる。よって、セット済未利用枚数がそのまま全体の残枚数に差し戻されてしまうと、この利用枚数分が過剰に差し戻されて、この利用枚数分の電子クーポンが他のユーザにより重複取得されるおそれがある。この理由から、ASPサーバ10は、保留リストテーブル134の利用履歴に含まれる利用枚数である「3」を全体の残枚数である「1000」から減じて、「997」としている。図21(d)に示すように、この減算により、ASPサーバ10は、結果的に、電子クーポンAのセット済未利用枚数であった「5」から、保留リストテーブル134の利用履歴に含まれる利用枚数である「2」を減じた枚数分である「2」だけ、電子クーポンAの全体の残枚数に差し戻したことになる。
ASPサーバ10は、保留リストテーブル134に利用履歴が残っていないと判断すると(ステップSa1309;NO)、利用時処理を終了する。
以上の処理により、(事象3)の利用後のセット済未利用枚数が、ASPサーバ10において正しく反映されたことになる。
(事象10)2011/6/29 20:00−電子クーポンBを1枚利用(2回目)
(事象9)のセット確定処理の後、端末装置20により、「2011/6/29 20:00」において電子クーポンBが「1」枚利用されたとする。この利用により、メモリ領域251が記憶する電子クーポンBの残り枚数は、「5」から「4」に減じられる。この時点では、ユーザ管理テーブル132においては、クーポンBのセット済未利用枚数は「5」のままであるから、ASPサーバ10と端末装置20とにおいて、メモリ領域251に記憶されていると把握している電子クーポンBに「1」枚の差異が存在する。
(事象11)2011/6/29 21:00−電子クーポンBの利用履歴を取得(2回目)
次に(事象11)を説明する。ここでは、ASPサーバ10が、「2011/6/29 21:00」に、(事象10)の電子クーポンの利用履歴を取得した場合の利用時処理を、図18を参照しつつ説明する。図22は、各データテーブルの更新の様子を示す図である。ここにおいて、ASPサーバ10は、クーポンID「CID002」、利用日時「2011/6/29 20:00」及び利用枚数「1」という利用履歴を取得することとなる。
まず、ASPサーバ10は、トランザクション管理テーブル133を参照して、ステータスが「未確定」の書込処理があるか否かを判断する(ステップSa151)。図21(a)に示すように、ASPサーバ10は、ステータスが未確定の書込処理がないと判断して(ステップSa151;NO)、ステップSa155の処理に進む。
そして、ASPサーバ10は、店舗管理サーバ30から取得した利用履歴に含まれる利用日時が最新の書込完了日時よりも後であるか否かを判断する(ステップSa155)。図21(a)に示すように、ここでは、最新の書込完了日時が「201/6/29 15:01」である。よって、ASPサーバ10は、ステップSa155の処理で「YES」と判断し、個人の残枚数及びセット済未利用枚数のそれぞれから、利用履歴に含まれる利用枚数を減じる(ステップSa156)。図22に示すように、ここでは、ASPサーバ10は、クーポンID「CID002」の電子クーポンBについて、個人の残枚数を「20」から「1」だけ減らして「19」とし、セット済未利用枚数を「5」から「1」だけ減らして「4」とする。そして、ASPサーバ10は、個人の利用枚数である「5」に利用枚数である「1」を加算し、個人の利用枚数を「6」とする(ステップSa157)。
以上の処理により、(事象11)の電子クーポンBの利用を原因とした、電子クーポンBの重複取得が回避される。
(事象12)2011/6/29 22:00−電子クーポンAの利用履歴を取得(2回目)
次に(事象12)を説明する。ここでは、ASPサーバ10が、「2011/6/29 22:00」に、(事象4)での電子クーポンAの利用履歴を店舗管理サーバ30から取得した際の利用時処理を説明する。ASPサーバ10は、(事象4)の実行時に取得すべきであった利用履歴を取得して、利用時処理を実行する。ASPサーバ10は、クーポンID「CID001」、利用日時「2011/6/29 12:00」及び利用枚数「1」という利用履歴を取得することとなる。
利用時処理については図18を参照しつつ説明する。図23は、各データテーブルの更新の様子を示す図である。ASPサーバ10は、ステータスが「未確定」の書込処理があるか否かを判断する(ステップSa151)。ここにおいて、ASPサーバ10は、図21(a)に示すように、ステータスが未確定の書込処理がないと判断すると(ステップSa151;NO)、店舗管理サーバ30から取得した利用履歴に含まれる利用日時が最新の書込完了日時よりも後であるか否かを判断する(ステップSa155)。図21(a)に示すとおり、トランザクション管理テーブル133を参照して、最新の書込完了日時が「201/6/29 15:01」であるから、ASPサーバ10はステップSa155の処理で「NO」と判断する。そして、ASPサーバ10は、個人の利用枚数に利用履歴における利用枚数を加算する(ステップSa157)。図23(a)に示すように、ここにおいて、ASPサーバ10は、クーポンID「CID001」の電子クーポンAについて、個人の利用枚数を「3」から「4」にするよう「1」だけ加算し、個人の残枚数「7」から「1」だけ減らした「6」とし、全体の残枚数「997」から「1」だけ減らして「996」とする。
この処理によって、(事象9)において実際には利用されていたにも関わらず、全体の残枚数に過剰に差し戻されていた「1」枚分の電子クーポンAが、全体の残枚数から減じらされて全体の残枚数の誤りがここで解消される。
なお、上述したセット確定処理において、ASPサーバ10がステップSa1301の処理で書込処理に失敗したと判定した場合も(図14のステップSa1301で「NO」)、基本的には成功した場合と同じように動作する。具体的には以下のとおりである。
ASPサーバ10は、保留リストテーブル134に利用履歴が書き込まれているか否かを判断する(ステップSa1310)。ここにおいて、ASPサーバ10は、保留リストテーブル134に利用履歴が書き込まれていると判断すると(ステップSa1310;YES)、保留リストテーブル134から利用履歴を1件抽出する(ステップSa1311)。次に、ASPサーバ10は、抽出した利用履歴の利用日時が前回の書込処理であって最新の書込処理の書込完了日時よりも後か否かを判断する(ステップSa1312)。ASPサーバ10は、利用日時の方が後と判断すると(ステップSa1312;YES)、抽出した利用履歴の利用枚数をセット済未利用枚数から減じる(ステップSa1313)。そして、ASPサーバ10は、抽出した利用履歴を保留リストテーブル134から削除し(ステップSa1314)、保留リストテーブル134に利用履歴が残っているか否かを判断する(ステップSa1315)。ASPサーバ10は、利用履歴が残っていると判断すると(ステップSa1315;YES)、ステップSa1311の処理に戻る。一方、ASPサーバ10は、保留リストテーブル134に利用履歴が残っていないと判断すると、セット未確定枚数をクリアして(ステップSa1316)、セット確定処理を終了する。ステップSa1316の処理において、セット未確定枚数がセット済未利用枚数より多い場合には、ASPサーバ10は、セット未確定枚数とセット済未利用枚数との差分を全体の残枚数に加算する。
ところで、ASPサーバ10は、ステップSa1312の処理で抽出した利用履歴の利用日時が前回の書込処理であって最新の書込完了日時よりも前と判断すると(ステップSa1312;NO)、抽出した利用履歴を保留リストテーブル134から削除する(ステップSa1314)。また、ASPサーバ10は、ステップSa1310の処理で保留リストテーブル134に利用履歴が書き込まれていないと判断すると(ステップSa1310;NO)、ステップSa1316の処理を実行してからセット確定処理を終了する。
以上のように、ASPサーバ10は、書込処理の結果が失敗の場合であっても、ステップSa1316の処理で、セット未確定枚数を全体の残枚数に加算してこのセット未確定枚数をクリアする処理を実行する点を除き、書込処理に成功した場合と同じように動作すればよい。
以上が、上記ストーリにおいてASPサーバ10が実行する処理の説明である。
以上説明した実施形態によれば、電子クーポンの管理に関して以下のような作用効果を奏する。
第1に、ASPサーバ10におけるクーポン提供時の処理を原因として、電子クーポンが他のユーザにより重複取得されないようにすることができる。セット開始処理において、ASPサーバ10は、電子クーポンを端末装置20に新たに提供する場合、全体の残枚数から減じた枚数をセット未確定枚数に設定してから、このセット未確定枚数の電子クーポンについての書込処理を端末装置20に指示する。そして、ASPサーバ10は、端末装置20により実行された書込処理の成功が確定した後、セット未確定枚数をセット済未利用枚数に設定する。これにより、書込処理の成功後に、全体の残枚数から減じた取得枚数をセット済未利用枚数に直接設定した場合に生じうる、電子クーポンの重複取得を回避できる。更に、ASPサーバ10は、書込処理がメモリ領域251の電子クーポンに新しい電子クーポンを上書きする処理であった場合には、セット未確定枚数がセット済未利用枚数より多いときに、セット未確定枚数とセット済未利用枚数との差分を全体の残枚数に加算する(差し戻す)。これにより、書込処理前に全体の残枚数から減じた取得枚数をセット済未利用枚数に直接設定したした場合に生じうる、電子クーポンの重複取得を回避できる。具体的には、ASPサーバ10が上書きによる書込処理を行って既に記憶されていた電子クーポンが削除されようとした場合に、この書込処理の失敗を原因として、メモリ領域251にこの電子クーポンが残ってしまったときであっても、この電子クーポンが重複取得されるのを防ぐことができる。
第2に、ASPサーバ10における電子クーポンの利用時の処理を原因として電子クーポンが他のユーザにより重複取得されないようにすることができる。ASPサーバ10は、書込処理の成功が確定した場合にはその書込完了日時を記憶する。そして、ASPサーバ10は、端末装置20が電子クーポンを利用して利用履歴を取得すると、利用履歴に含まれる利用日時と最新の書込完了日時とを比較する。そして、ASPサーバ10は、利用日時が最新の書込完了日時よりも後である場合、セット済未利用枚数から利用枚数を減じる一方、利用日時が最新の書込完了日時よりも前である場合、セット済未利用枚数から利用枚数を減じない。このように、ASPサーバ10は、過去にメモリ領域251に記憶されていた電子クーポンに対応したセット済未利用枚数からは、利用履歴による利用枚数が減じない。これにより、(事象9)でも説明したように、ASPサーバ10が電子クーポンを差し戻す際に、実際には利用されていた電子クーポンに相当し利用履歴に含まれている利用枚数分を減じておけば、この利用枚数分の電子クーポンがセット確定処理によって差し戻されて他のユーザに重複取得されてしまうのを防ぐことができる。
第3に、ASPサーバ10は、第2の場合において、利用日時が最新の書込完了日時よりも後である場合に、結果が未確定である書込処理が存在するときには、セット済未利用枚数の更新を保留して利用履歴を記憶させる。そして、ASPサーバ10は、結果が未確定であった書込処理の結果が確定した後、記憶しておいた利用履歴に含まれる利用日時が最新の書込完了日時よりも後である場合、セット済未利用枚数から利用枚数を減じる一方、利用日時が最新の書込完了日時よりも前である場合、セット済未利用枚数から利用枚数を減じない。これにより、結果通知の遅延により、ASPサーバ10が書込処理の結果を確定させるのが遅れたとしても、書込処理の結果が確定してから利用履歴に基づく処理を行うので、セット確定処理によって電子クーポンが過剰に差し戻されて、この差し戻された電子クーポンが他のユーザに重複取得されるのを防ぐことができる。
更には、通信システム1において、ASPサーバ10とアプリケーション管理サーバ50とは独立したサーバ装置で実現されていて、クーポン管理アプリケーション261はASPサーバ10がないと動作しないようになっている。これは、端末装置20において、クーポン管理アプリケーション261が不正に利用されることを防ぐ目的としていることにもよる。具体的には、ASPサーバ10がアプリケーション管理サーバ50に対し署名通信で処理依頼を行った場合にしか、端末装置20ではICチップ25に電子クーポンが書き込まれないようになっているから、クーポン管理アプリケーション261の不正利用を防ぐことができる。
2.第1実施形態の変形例
本発明は、上述した実施形態と異なる形態で実施することが可能である。本発明は、例えば、以下のような形態で実施することも可能である。また、以下に示す変形例は、各々を適宜に組み合わせてもよい。
[変形例1]
上述した実施形態の通信システム1では、電子クーポンの提供又は利用可能な最小単位を「枚」とし、提供又は利用される電子クーポンの数(単位数)を「枚数」とした電子クーポンを扱っていた。これに対し、電子クーポンの提供又は利用可能な最小単位となる数(すう)はこれに限らず、例えば、電子クーポンの提供又は利用可能な最小単位を「円」や「ドル」等の貨幣の単位としてもよい。この場合であっても、上述した実施形態の電子クーポンの「枚数」を、「円」や「ドル」等の貨幣の単位に置き換えればよいだけである。また、電子クーポンの提供又は利用可能な最小単位となる数は、「ポイント」(点)や「回数」(利用回数)等であってもよい。
[変形例2]
上述した実施形態において、ASPサーバ10は、電子クーポンの提供時に関するセット開始処理及びセット確定処理と、電子クーポンの利用時に関する利用時処理との双方を実行していたが、それぞれ別のサーバ装置(ASPサーバ)が実行してもよい。この場合、セット開始処理及びセット確定処理を実行する側のASPサーバは、図9に示す機能を実現する必要がない。また、通信システム1において、書込処理の結果通知が遅延しない環境(又は、遅延がほとんどない環境)にある場合には、ASPサーバ10が保留リストテーブル134に基づく処理を実行しないように、通信システム1を構成することも考えられる。この場合、上述した実施形態における全体の残枚数は、下記式(4)に置き換えられる。個人の残枚数については変化はない。
全体の残枚数=全体の制限枚数−Σ{個人の利用枚数+MAX(セット済未利用枚数,セット未確定枚数)} ・・・(4)
また、全体の残枚数は上述した式(1)又は式(4)の関係を満たし、個人の残枚数は上述した式(2)の関係を満たすものである。たとえ、ASPサーバ10が各式の左辺に相当する全体の残枚数及び個人の残枚数そのものを記憶していなくとも、例えば右辺に相当するデータを記憶していれば、実質的に全体の残枚数や個人の残枚数を記憶していることに等しい。
[変形例3]
上述した実施形態では、ASPサーバ10は、電子クーポンの利用があると直ちに、店舗管理サーバ30から利用履歴を取得していた。これに対し、ASPサーバ10は、予め決められた期間毎、又は予め決められた取得時期が到来したことを契機に、店舗管理サーバ30から利用履歴を取得してもよい。この場合、ASPサーバ10が利用履歴を取得する日時が電子クーポンの利用日時から或る程度遅延するが、ASPサーバ10が上述した利用時処理を実行することにより、利用履歴の取得の遅延による重複取得は避けられる。
[変形例4]
上述した実施形態において、クーポン管理テーブル131及びユーザ管理テーブル132に相当するデータテーブルがサービス提供者ごとに独立していてよい。その理由について説明する。
あるサービス提供者Aの電子クーポンaが端末装置20のICチップ25に書き込まれていて、別のサービス提供者Bの電子クーポンbがICチップ25に、クーポンaへの上書きにより書込処理が行われると、ICチップ25ではサービス提供者Aの電子クーポンaが削除させられる。しかしながら、ASPサーバでは、この書込処理に応じてサービス提供者Aの電子クーポンaのセット済未利用枚数を全体の残枚数に加算してセット済未利用枚数をクリアする、という電子クーポンの差し戻しを行うことができない。これにより、ASPサーバでは、ICチップ25から削除させられた電子クーポンがセット済未利用枚数として残留したままとなる。しかしながら、次にこの端末装置20がサービス提供者Aの電子クーポンの書込処理を実行する際には、ASPサーバで残留していた電子クーポンaのセット済未利用枚数が全体の残枚数に加算されてセット済未利用枚数がクリアされるから、特に問題は生じない。この場合、ASPサーバにおいては電子クーポンaのセット済未利用枚数がクリアされるまでは、この電子クーポンaがICチップ25に記憶されていないにも関わらず、セット済未利用枚数として残留するので、誰にも取得することのできない電子クーポンとなる。
以上のような理由により、サービス提供者毎にASPサーバを分けた構成としても共通のデータテーブルを参照する必要がない。また、サービス提供者Bの電子クーポンがICチップ25に書き込まれたことにより、サービス提供者Aの電子クーポンが差し戻されるという、サービス提供者をまたがって連携される事象の発生を回避することできる。異なるサービス提供者(企業等)が同一のシステム(仕組み)を共用していることを一般ユーザに隠すことができる点で、ユーザの混乱回避や企業のブランディングの観点からも好ましい。
[変形例5]
上述した実施形態を以下のように変形することも可能である。
本変形例の前提として、ここでは、以下の(前提1)及び(前提2)を採用する。
(前提1)ユーザ管理テーブル132において「セット未確定枚数」に相当する情報が書き込まれないようにするとともに、ASPサーバ10はセット未確定枚数に関わる処理を実行しない。
(前提2)クーポン管理テーブル131においては、「残枚数(全体)」に代えて「配布枚数(全体)」に相当する情報が書き込まれるようにする。配布枚数(全体)は、端末装置20の全体に対して配布(つまり、提供)された電子クーポンの配布数(以下、「全体の配布枚数」ということがある。)であり、下記式(5)の関係を満たす。
残枚数(全体)=制限枚数(全体)−配布枚数(全体) ・・・(5)
次に、本変形例のASPサーバ10の機能的構成を上述した実施形態との相違点を中心に説明する。
第1更新部111は、第1電子クーポンを取得するためのクーポン取得要求を通信部12による端末装置20との通信により取得したことを契機に、第1電子クーポンを端末装置20に新たに提供するための処理を開始する。第1に、第1更新部111は、クーポン取得要求で指定された第1電子クーポンの取得枚数を、クーポン管理テーブル131の全体の配布枚数に加算する。ただし、第1更新部111は、書込処理前においてユーザ管理テーブル132に書き込まれている第1電子クーポンのセット済未利用枚数を超える枚数のみを、全体の配布枚数に加算する。すなわち、第1更新部111は、第1電子クーポンがメモリ領域251に既に記憶されているときには、同じ第1電子クーポンについて上書きによる書込処理を実行させることになるから、取得枚数から書込処理前のセット済未利用枚数を減じた枚数を、全体の配布枚数に追加して加算することとなる。
第2に、第1更新部111は、クーポン取得要求で指定された第1電子クーポンの取得枚数を第1電子クーポンのセット済未利用枚数に加算する。ここにおいて、第1更新部111は、書込処理前においてユーザ管理テーブル132に書き込まれているセット済未利用枚数を超える枚数のみを、セット済未利用枚数に加算する。
第1更新部111の説明は以上である。
第2更新部113は、書込指示部112による書込指示が行われた後、処理結果取得部114が取得した書込処理の結果に応じて、以下の処理を実行する。第2更新部113は、書込処理の結果が成功で確定した場合、他の電子クーポン(第2電子クーポン)のセット済未利用枚数をそれぞれ全体の配布枚数から減じるとともに、セット済未利用枚数をクリアする。一方、第2更新部113は、書込処理の結果が失敗で確定した場合、第1更新部111で全体の配布枚数に加算された枚数を、第1更新部111による更新後の全体の配布枚数から減じるとともに、第1更新部111でセット済未利用枚数に加算された枚数を、第1更新部111による更新後のセット済未利用枚数から減じる。
本変形例の通信システム1の構成であっても、上述した実施形態の説明を、式(5)の関係に基づいて、「全体の残枚数」を「制限枚数(全体)−配布枚数(全体)」として読み替えれば、上述した実施形態と同等の作用効果を享受することができる。
また、本変形例は、(前提2)を採用しない構成に変形することも可能である。この場合、本変形例の“全体の配布枚数に加算/減算”という説明を、“全体の残枚数に減算/加算”と読み換えればよい。
以上のように、本変形例と変形例2の説明を合わせれば、ASPサーバ10が“全体の残枚数”という情報そのものを記憶していなくても、“全体の残枚数”を間接的に導くことのできる情報を記憶する構成を有していれば本発明の範囲に含まれるとともに、上述した実施形態と同等の作用効果を享受することができる。このことは、個人の残枚数についても同じように説明することができる。
[変形例6]
上述した実施形態において、ASPサーバ10は、電子クーポンの利用枚数を把握するために店舗端末40から利用履歴を取得するが、利用履歴を取得するまでは、端末装置20とASPサーバ10とにおいて個人の残枚数に不整合が生じ、電子クーポンが重複取得されてしまうおそれがある。そこで、通信システム1においては、セット開始処理を開始したときから予め決められた期間においては、ASPサーバ10が利用履歴を取得するまでその端末装置20に別の電子クーポンを取得させないようにしてもよい。すなわち、ASPサーバ10はセット開始処理を実行しないようにすればよい。この構成によれば、ASPサーバ10は、別の電子クーポンを取得させないようにしている期間の間に利用履歴を取得できれば、この問題による電子クーポンの重複取得を回避できる。
[変形例7]
上述した実施形態において、ASPサーバ10が電子クーポンの利用枚数を把握するために店舗端末40から利用履歴を取得するが、店舗管理サーバ30による利用履歴の送信が遅延する場合、ASPサーバ10が利用履歴を取得するまでに別の電子クーポンの書込処理が行われると、全体の残枚数に不整合が生じ、電子クーポンが重複取得されてしまうおそれがある。つまり、電子クーポン利用後、利用履歴が送信されるまでに端末装置20が別の電子クーポンを取得した場合、すでにメモリ領域251から削除されている利用済みの電子クーポンが、メモリ領域251に残っているとASPサーバ10が誤認するため、利用済みの電子クーポンの分まで全体の残枚数に戻されてしまう。しかし、実際は、電子クーポンはメモリ領域251に残ったままなので、これが重複取得されてしまうおそれがある。そこで、ASPサーバ10は、セット確定処理の際にクリアされるセット済未利用枚数については、全体の残枚数への差し戻しを予め決められた期間だけ遅らせるようにしてもよい。このようにすれば、全体の残枚数への差し戻しを待機している期間にASPサーバ10が利用履歴を取得できれば、この問題による重複取得を回避できる。
[変形例8]
上述した実施形態の通信システム1では、店舗管理サーバ30と店舗端末40とが別々の装置であったが、これらを一体化した装置が用いられてもよい。この一体化した装置として、例えば、リーダ/ライタ機能を有しているパーソナルコンピュータやスマートフォン、POS(Point of sale)端末等がある。
また、ASPサーバ10が、利用履歴を店舗管理サーバ30ではなく端末装置20から取得する構成を採ってもよい。
また、上述した実施形態では、ASPサーバ10は、トランザクション管理テーブル133を参照して、ステータスが「未確定」の書込処理があると判断した場合は、セット開始処理を終了していた。しかしながら、本発明はこのような前提を必須とするものではなく、電子クーポンの枚数管理に支障がなければ、ステータスが「未確定」の書込処理がある場合に、セット開始処理を継続させることも可能である。
また、ASPサーバ10の制御部11が実現する各機能は、複数のプログラムの組み合わせによって実現され、又は、複数のハードウェア資源の協働によって実現されうる。
また、本発明は、ASPサーバ10が実行するプログラムやクーポン管理方法として把握することも可能である。
3.第2実施形態
以下、図面を参照しつつ本発明の第2実施形態を説明する。
本実施形態に係る通信システムの全体構成は、第1実施形態のそれと同じである。よって、通信システムの全体構成についての説明は省略する。
本実施形態に係るASPサーバのハードウェア構成は、第1実施形態のそれと同じである。よって、ASPサーバのハードウェア構成についての説明は省略する。ただし、本実施形態に係るASPサーバ10の記憶部13は、図24に示されるように、クーポン管理テーブル131、ユーザ管理テーブル132、トランザクション管理テーブル133及び保留リストテーブル134に代えて、クーポン情報テーブル135、ユーザ管理テーブル136及び保有状況管理テーブル137を記憶する。
図25は、クーポン情報テーブル135の構成を示す図である。図25に示すように、クーポン情報テーブル135は、「クーポンID」と、「クーポン名」と、「1ユーザあたりの提供制限枚数」と、「利用可能期間(開始日時)」と、「利用可能期間(終了日時)」とで示される各情報を対応付けたデータテーブルである。
「クーポンID」は、ASPサーバ10により提供される電子クーポンを識別する識別子である。クーポンIDは、電子クーポンの種類毎に異なる。「1ユーザあたりの提供制限枚数」は、提供可能な数がユーザ毎に制限された電子クーポンである場合に、1のユーザに提供することができる電子クーポンの上限となる枚数である。言い換えれば、1ユーザあたりの提供制限枚数は、1のユーザの端末装置20で取得可能な電子クーポンの上限となる枚数である。「利用可能期間(開始日時)」は、電子クーポンの利用が可能な期間の開始時期を示す日時である。「利用可能期間(終了日時)」は、電子クーポンの利用が可能な期間の終了時期を示す日時である。
以上の構成のクーポン情報テーブル135では、各電子クーポンに対応して、1ユーザあたりの提供制限枚数及び利用可能期間が設定されている。ただし、すべての電子クーポンに1ユーザあたりの提供制限枚数及び利用可能期間が設定されているとは限らず、どちらか一方が設定されていない電子クーポンもあれば、それら両方が設定されていない電子クーポンもある。
図25に示すクーポン情報テーブル135には、クーポンID「CID001」〜「CID003」の電子クーポンに関する情報が示されている。クーポンID「CID001」は、1ユーザあたりの提供制限枚数が「5」である電子クーポンを示し、利用可能期間(開始日時)が「2012/02/01 09:00」で、利用可能期間(終了日時)が「2012/02/29 23:59」である。クーポンID「CID002」は、1ユーザあたりの提供制限枚数が設定されていない電子クーポンを示す。つまり、ユーザは、クーポンID「CID002」の電子クーポンを無制限に取得可能である。クーポンID「CID002」の電子クーポンは、利用可能期間(開始日時)が「2012/02/01 09:00」で、利用可能期間(終了日時)が「2012/02/29 23:59」である。クーポンID「CID003」は、1ユーザあたりの提供制限枚数が「10」である電子クーポンを示し、利用可能期間が設定されていない。利用可能期間が設定されていない電子クーポンは、時期に関係なくいつでも利用可能な電子クーポンである。
本実施形態では、クーポンID「CID001」〜「CID003」の電子クーポンは、同一のサービス提供者により提供される電子クーポンであるとする。ただし、クーポン情報テーブル135には、複数のサービス提供者により提供される電子クーポンに関する情報が格納されていてよい。
図26は、ユーザ管理テーブル136の構成を示す図である。
図26に示すように、ユーザ管理テーブル136は、「端末ID」と、「ユーザID」と、「有効期限」とで示される各情報を対応付けたデータテーブルである。「端末ID」は、端末装置20を識別する端末装置20固有の識別子であり、端末装置20のICチップに記憶されている端末IDに対応している。ユーザIDは、端末装置20のユーザを識別するユーザ固有の識別子である。ユーザ管理テーブル136において、1の端末IDにはユーザIDが1つだけ対応付けられている。本実施形態のユーザIDは、ASPサーバ10への会員登録によって、ASPサーバ10により端末装置20のユーザに割り当てられる識別子である。有効期限は、ユーザ管理テーブル136における端末IDとユーザIDとの対応付けが有効である期限である。詳しくは後述するが、有効期限が経過した後の端末IDとユーザIDとの対応付けは無効となる。無効となった対応付けについては、制御部11によりユーザIDが別のユーザIDに変更される場合がある。
以上の構成のユーザ管理テーブル136は、例えば、ASPサーバ10が端末装置20に電子クーポンを提供する場合に、その提供の可否を判定するために参照される。
図26に示すユーザ管理テーブル136では、端末ID「abcde00001」とユーザID「UID0001」とが対応付けられ、この対応付けの有効期限は「2012/02/29 23:59」である。このような対応付けがユーザ管理テーブル136に格納されているということは、端末ID「abcde00001」が示す端末装置20のユーザには、既にユーザID「UID0001」が割り当てられ、且つ、ASPサーバ10がこの端末装置20に電子クーポンを提供したことがあることを意味する。また、図26に示す例では、端末ID「abcde00002」とユーザID「UID0002」とが対応付けられ、この対応付けの有効期限は「2012/02/29 23:59」である。
図27は、保有状況管理テーブル137の構成を示す図である。
図27に示すように、保有状況管理テーブル137は、「ユーザID」と、「クーポンID」と、「取得済み未利用枚数」と、「利用枚数」と、「残枚数」とで示される各情報を対応付けたデータテーブルである。「ユーザID」及び「クーポンID」は既に説明したとおりの情報である。「取得済み未利用枚数」は、端末装置20に提供されてICチップに書き込まれた電子クーポンのうち、未だ利用されていない電子クーポンの枚数である。言い換えれば、取得済み未利用枚数は、端末装置20が取得済みで利用可能な電子クーポンの枚数である。「利用枚数」は、端末装置20に提供されてICチップに書き込まれた電子クーポンのうち、既に利用された電子クーポンの枚数である。「残枚数」は、端末装置20に提供可能な電子クーポンの残りの枚数である。この残枚数は、1ユーザあたりの提供制限枚数から利用枚数を減じた枚数に一致する。1ユーザあたりの提供制限枚数が設定されていない電子クーポンの場合、「残枚数」のフィールドには「なし」という情報が格納される。
以上の構成の保有状況管理テーブル137は、端末装置20のユーザ毎の電子クーポンの保有状況を格納したデータテーブルである。
本実施形態に係る端末装置のハードウェア構成は、第1実施形態のそれと同じである。よって、端末装置のハードウェア構成についての説明は省略する。
なお、ICチップ25は、プロセッサやアンテナ、データの読み書きに用いられるメモリ領域251を有し、近接型の非接触通信を行うためのICチップである。ICチップ25のプロセッサは、アンテナにより受信した信号、又は制御部21からの指示に応じてメモリ領域251にアクセスしてデータの読み書きを行う。また、ICチップ25は、端末装置20の端末IDをメモリ領域251に記憶する。
ところで、メモリ領域251は、複数のサービス提供者のうちのいずれか1のサービス提供者の電子クーポンが書き込まれる仕様となっている。言い換えれば、メモリ領域251は、複数のサービス提供者で共有されるメモリ領域である。よって、或るサービス提供者の電子クーポンがメモリ領域251に記憶されている場合、他のサービス提供者の電子クーポンは、上書きによる書込処理でメモリ領域251に記憶させられる。つまり、元々メモリ領域251に記憶されていた電子クーポンは書込処理によって削除させられる。この場合であっても、端末装置20は、上書きによる書込処理によってメモリ領域251の電子クーポンを削除したときには、ASPサーバ10に問い合わせることによって、いつでもその削除前の状態に戻して、取得済みの電子クーポンをメモリ領域251に書き込むことができる。具体的には、ASPサーバ10は、保有状況管理テーブル137において電子クーポンの保有状況を管理しているので、保有状況管理テーブル137に格納された情報に従って電子クーポンの書込処理を端末装置20に行わせる。一方で、同一のサービス提供者の複数の電子クーポンについては、同時にメモリ領域251に記憶されることがある。例えば、クーポンID「CID001」〜「CID003」の電子クーポンが同時期にメモリ領域251に記憶されていることがある。
なお、電子クーポンをメモリ領域251に書き込む書込処理によって、メモリ領域251に記憶された端末IDが消失することはない。
次に、ASPサーバ10の制御部11の機能的構成を説明する。
図28は、ASPサーバ10の制御部11の電子クーポンの管理に関する機能の機能的構成を示す機能ブロック図である。図28に示すように、ASPサーバ10の制御部11は、プログラムを実行することにより、読出指示部117と、取得部118と、提供部119と、書込部120とに相当する機能を実現する。
読出指示部117は、提供可能な数がユーザ毎に制限された電子クーポン(つまり、クーポン情報テーブル135で1ユーザあたりの提供制限枚数が設定された電子クーポン)を提供する場合には、端末装置20が有するICチップ25のメモリ領域251からの端末IDの読み出しを指示する。一方、読出指示部117は、提供可能な数がユーザ毎に制限されていない電子クーポン(つまり、クーポン情報テーブル135で1ユーザあたりの提供制限枚数が設定されていない電子クーポン)を提供する場合には、メモリ領域251からの端末IDの読み出しを指示しない。
取得部118は、電子クーポンを端末装置20に新たに提供する場合、端末装置20の端末IDと端末装置20のユーザのユーザIDとを取得する。取得部118は、読出指示部117により端末IDの読み出しが指示された場合には、その指示に従ってメモリ領域251から読み出された端末IDを取得する。
提供部119は、クーポン情報テーブル135、ユーザ管理テーブル136及び保有状況管理テーブル137を参照し、取得部118が取得した端末IDとユーザIDとに基づいて電子クーポンを新たに提供すると判定した場合には、1ユーザあたりの提供制限枚数の範囲内でこの端末IDが示す端末装置20に電子クーポンを提供するための処理を実行する。具体的には、提供部119は、ユーザ管理テーブル136において、取得部118が取得した端末IDに取得部118が取得したユーザIDと異なるユーザIDが対応付けられていない場合には、電子クーポンを提供すると判定する。また、提供部119は、ユーザ管理テーブル136において、取得部118が取得した端末IDに取得部118が取得したユーザIDと異なるユーザIDが対応付けられている場合に予め決められた条件を満たすときには、電子クーポンを提供すると判定する。ここでいう条件は、ユーザ管理テーブル136において設定された有効期限が経過し、端末IDとユーザIDとの対応付けが無効になっていることである。また、提供部119は、1ユーザあたりの提供制限枚数が設定されていない電子クーポンを提供するための処理も実行する。
なお、提供部119が実行する電子クーポンを提供するための処理は、端末装置20に電子クーポンの書込処理を実行させるための処理である。
書込部120は、記憶部13に記憶されたユーザ管理テーブル136及び保有状況管理テーブル133にデータを書き込む処理を司る。書込部120は、例えば、提供部119により電子クーポンを提供するための処理が実行される場合、ユーザ管理テーブル136において、取得部118が取得した端末IDに取得部118が取得したユーザIDを対応付ける。また、書込部120は、提供部119により実行された電子クーポンを提供するための処理や店舗管理サーバ30から受信した電子クーポンの利用履歴に応じて、保有状況管理テーブル133を更新する。
ASPサーバ10の機能的構成の説明は以上である。次に、通信システム1の動作を説明する。
図29は、通信システム1の全体的な処理の流れを示すシーケンスチャートである。
本実施形態において、端末装置20がASPサーバ10から電子クーポンを取得するためには、事前に、ASPサーバ10に対して会員登録を行う必要がある。具体的には、端末装置20は、webブラウザを実行して会員登録を行うための所定のwebページを表示させ、ユーザの操作に応じて、ユーザID発行要求と、ユーザIDを用いたユーザ認証に用いられるパスワードとを、ASPサーバ10宛てに送信する(ステップSb1)。ASPサーバ10は、端末装置20からユーザID発行要求及びパスワードを受信すると、その端末装置20のユーザに割り当てるユーザIDを1つだけ発行し、発行したユーザIDと受信したパスワードとを対応付けて会員情報として、この会員情報を記憶部13に記憶させておく(ステップSb2)。ASPサーバ10は、ステップSb2の処理で発行したユーザIDを端末装置20に通知する(ステップSb3)。ここにおいて端末装置20は、ASPサーバ10から通知されたユーザIDを、いわゆるクッキー(webブラウザを通じて訪問者のコンピュータに一時的にデータを書き込んで保存させる仕組み)を利用して、記憶部26に記憶させておく。ただし、端末装置20は第三者によるクッキーの情報の偽装によるなりすましの可能性を抑えるため、ユーザIDをそのまま記憶させるのではなく、そのハッシュ値(暗号値)を記憶させておいてもよい。また、本実施形態のASPサーバ10は、端末装置20のユーザに1つだけユーザIDを割り当てるべく、クッキーを利用して記憶部26にユーザIDが記憶されている場合には、会員登録を拒否する。
以上が、端末装置20が事前に行う会員登録の説明である。次に、端末装置20がASPサーバ10から電子クーポンを取得しようとする場合の動作について説明する。
端末装置20のユーザは、電子クーポンをダウンロードしようとするときには、端末装置20を操作してwebブラウザを実行させ、電子クーポンを取得するための所定のwebページを表示させる操作を行う。端末装置20は、このユーザの操作に応じて、ページアクセス要求をASPサーバ10宛てに送信する(ステップSb4)。ASPサーバ10は、ページアクセス要求を受信すると、ユーザ認証を行うべく、ユーザID及びパスワードの送信を端末装置20に要求する(ステップSb5)。端末装置20は、ASPサーバ10からユーザID及びパスワードの送信が要求されると、ユーザID及びパスワードの入力画面を表示して、ユーザにそれらの入力を促す。ここにおいて、ユーザは、ステップSb3の処理で通知されたユーザIDとパスワードとを入力する。ただし、端末装置20は、ユーザIDについては、クッキーを利用して記憶しておいたユーザIDを自動入力しておく。ただし、クッキーの情報が削除されていたり、クッキーの情報の送信拒否が端末装置20に予め設定されていたりした場合には、端末装置20のユーザはユーザIDを手動入力する。端末装置20は、ユーザID及びパスワードが入力されてユーザにより送信を指示する操作が行われると、ユーザID及びパスワードをASPサーバ10宛てに送信する(ステップSb6)。
ASPサーバ10は、ステップSb6の処理で送信されたユーザID及びパスワードを受信すると、ユーザ認証を行う(ステップSb7)。ここにおいて、ASPサーバ10は、受信したユーザID及びパスワードと記憶部13に記憶された会員情報とを照合し、ユーザID及びパスワードがともに一致する会員情報があった場合には、ユーザ認証に成功したと判定する。一方、ASPサーバ10は、受信したユーザID及びパスワードがともに一致する会員情報がなかった場合には、ユーザ認証に失敗したと判定する。ASPサーバ10は、ユーザ認証に失敗したと判定した場合には、図29に示す残りの処理を実行せず、ユーザ認証に失敗した旨を端末装置20に通知する。
なお、クッキーを利用して端末装置20の記憶部26にユーザIDが記憶されている場合、端末装置20はステップSb4の処理でページアクセス要求とともにユーザIDを送信してもよい。この場合、ASPサーバ10は、ページアクセス要求とともに受信したユーザIDに基づいて、ステップSb7の処理に相当するユーザ認証に成功したと判定してもよい。このような自動認証が行われた場合、前述のステップSb5及びSb6の処理が省略されることとなり、端末装置20のユーザにとってはユーザID及びパスワードの入力画面による入力操作の手間がなくなる。また、ASPサーバ10は、第三者によるクッキーの情報の偽装によるなりすましの可能性を抑えるため、ユーザIDを発行したときから又は前回のユーザ認証に成功したときから所定期間が経過するまでは、自動認証を行い、それ以降においては、ユーザID及びパスワードの入力画面による入力操作を端末装置20のユーザに行わせてもよい。
ステップSb7の処理でユーザ認証に成功した場合、ASPサーバ10は、ユーザ認証に成功した旨を端末装置20に通知する(ステップSb8)。そして、端末装置20は所定のwebページ(図30に示すクーポン取得画面)をブラウザ上で表示させて、ユーザの操作に応じて、クーポン取得要求をASPサーバ10宛てに送信する(ステップSb9)。
図30は、クーポン取得画面を説明する図である。
ユーザはUI部24を見ながら操作して、取得しようとする電子クーポンの種類と取得枚数とをプルダウンメニューPb1,Pb2及びPb3を用いて選択し、その選択後、「クーポンを取得」と付されたソフトボタンBbを選択する。例えば、ユーザはクーポン名「からあげ半額」という電子クーポンを取得しようとする場合、プルダウンメニューPb1を操作して、取得枚数を「1」以上に設定する。ユーザは他の電子クーポンを取得しようとする場合にも同様に操作すればよい。
なお、図30に示すクーポン取得画面のクーポン名は、クーポン情報テーブル135に格納されたクーポン名に対応する。また、クーポン取得画面において設定可能な電子クーポンの取得枚数の上限は、保有状況管理テーブル133に格納されている同電子クーポンの残枚数以下となる。
端末装置20は、図30に示すクーポン取得画面のソフトボタンBbが選択されると、取得しようとする電子クーポンとその取得枚数とを特定可能な情報(例えば、クーポンIDと取得枚数とのデータセット)を含むクーポン取得要求を、ASPサーバ10宛てに送信する。
ASPサーバ10は、端末装置20からクーポン取得要求を受信すると、端末ID要否判定処理を実行する(ステップSb10)。
図31は、端末ID要否判定処理の手順を示すフローチャートである。
まず、ASPサーバ10は、1ユーザあたりの提供制限枚数が設定された電子クーポンの取得要求を受信したか否かを判定する(ステップSb101)。ASPサーバ10は、1ユーザあたりの提供制限枚数が設定された電子クーポンを含むクーポン取得要求を受信した場合(ステップSb101;YES)、端末ID通知処理を実行すると判定する(ステップSb102)。例えば、ASPサーバ10は、クーポンID「CID001」や「CID003」の電子クーポンを含むクーポン取得要求を受信した場合には、端末ID通知処理を実行すると判定する。
一方、ASPサーバ10は、1ユーザあたりの提供制限枚数が設定されている電子クーポンを含まないクーポン取得要求を受信した場合(ステップSb101;NO)、端末ID通知処理を実行しないと判定する(ステップSb103)。例えば、ASPサーバ10は、クーポンID「CID002」の電子クーポンのみの取得要求を受信した場合には、端末ID通知処理を実行すると判定する。
以上のように、ASPサーバ10は、クーポン情報テーブル135において1ユーザあたりの提供制限枚数が設定されているか否かに応じて、端末装置20の端末IDの要否を判定する。
ASPサーバ10は、端末ID要否判定処理を終了すると(図29のステップSb10)、端末ID通知処理を実行すると判定していた場合には、端末ID通知処理を実行する(ステップSb11)。すなわち、ASPサーバ10は、電子クーポンに1ユーザあたりの提供制限枚数が設定されている場合には、端末ID通知処理を実行する。一方、ASPサーバ10は、電子クーポンに対して1ユーザあたりの提供制限枚数が設定されておらず、端末ID通知処理を実行しないと判定していた場合には、ステップSb11の処理をスキップし、端末ID通知処理を実行しない。
図32は、端末ID通知処理の手順を示すフローチャートである。
まず、ASPサーバ10は、アプリケーション管理サーバ50に対して、端末IDの通知に関する処理依頼を行って、問合せIDの生成を要求する(ステップSb111)。アプリケーション管理サーバ50は、ステップSb111の処理で送信された処理依頼に応じて問合せIDを生成し、生成した問合せIDをASPサーバ10宛てに送信する(ステップSb112)。問い合せIDは、処理依頼を識別する識別子である。
ASPサーバ10は、アプリケーション管理サーバ50から問合せIDを受信すると、クーポン管理アプリケーション261の実行指示を端末装置20宛てに送信する(ステップSb113)。ここにおいて、ASPサーバ10は、アプリケーション管理サーバ50から受信した問合せIDを含む実行指示を送信する。
端末装置20は、ASPサーバ10から実行指示を受信すると、記憶部26に記憶されたクーポン管理アプリケーション261を読み出して実行する。そして、端末装置20は、クーポン管理アプリケーション261に従って、ASPサーバ10から受信した実行指示に含まれていた問合せIDを、アプリケーション管理サーバ50宛てに送信する(ステップSb114)。アプリケーション管理サーバ50は、端末装置20から受信した問合せIDに対応する処理依頼に従って、問合せIDの送信元である端末装置20宛てに端末IDの読取指示を送信する(ステップSb115)。
端末装置20は、アプリケーション管理サーバ50から受信した読取指示に従ってICチップ25に読取処理を行わせる(ステップSb116)。ステップSb116の処理では、制御部21はアプリケーション管理サーバ50からの読取指示に従って、ICチップ25のプロセッサに端末IDの読み出しを指示する。この指示に従って、ICチップ25のプロセッサは、メモリ領域251にアクセスして端末IDを読み出し、読み出した端末IDを制御部21に供給する。
端末装置20は、ICチップ25から制御部21に供給された端末IDをアプリケーション管理サーバ50宛てに送信する(ステップSb117)。次に、端末装置20は、端末IDの読取処理が終了した旨を示す終了通知を、ASPサーバ10宛てに送信する(ステップSb118)。
なお、端末装置20は、ステップSb113の処理に応じてクーポン管理アプリケーション261を実行してから、ステップSb117の処理までをクーポン管理アプリケーション261に従って実行する。
ASPサーバ10は、端末装置20から送信された終了通知を受信すると、アプリケーション管理サーバ50に問合せIDを送信して、終了通知の送信元の端末装置20の端末IDを問い合わせる(ステップSb119)。アプリケーション管理サーバ50は、ASPサーバ10からの問い合わせに応じて、ASPサーバ10宛てに端末IDを送信する(ステップSb120)。ASPサーバ10は、ステップSb120の処理でアプリケーション管理サーバ50から送信された端末IDを取得する。
なお、ステップSb120の処理において、アプリケーション管理サーバ50は端末IDをそのまま送信するのではなく、端末IDを一意に特定可能な別の情報に変換して送信してもよい。この構成によれば、例えば通信システム1に複数のASPサーバが含まれる場合にASPサーバ毎に端末IDの変換規則を異ならせておけば、第1のASPサーバがユーザAの端末IDを把握したとしても、それは第2のASPサーバにとってのユーザBの端末IDとは一致しない。これにより、例えば、第1のASPサーバ及び第2のASPサーバが共通のアプリケーション管理サーバ50と通信して端末IDを取得する構成であっても、第1のASPサーバが第2のASPサーバが提供するサービスに対して端末IDを偽装するといった不正の発生を防止することが可能となる。
以上のように、ASPサーバ10は、端末IDを端末装置20から取得する場合には、端末装置20にクーポン管理アプリケーション261を実行させるとともに、アプリケーション管理サーバ50経由で端末IDのメモリ領域251からの読み出しを指示する。ASPサーバ10と端末装置20との間の情報のやり取りをアプリケーション管理サーバ50が仲介するようにしている理由は、端末IDの改ざんなど不正に情報が書き換えられるのを防ぎ、端末IDを用いた情報管理のセキュリティ上の問題の発生を防止するためである。
ASPサーバ10は、ステップSb11の処理の端末ID通知処理を終了すると、クーポン提供判定処理を実行する(ステップSb12)。クーポン提供判定処理は、端末装置20に電子クーポンを提供するか否かを判定する処理である。ただし、本実施形態では、ASPサーバ10は、1ユーザあたりの提供制限枚数が設定された電子クーポンを提供する場合には、クーポン提供判定処理を実行するが、1ユーザあたりの提供制限枚数が設定されていない電子クーポンを提供する場合には、クーポン提供判定処理を実行しない。
図33は、クーポン提供判定処理の手順を示すフローチャートである。
まず、ASPサーバ10は、ユーザ管理テーブル136において、ステップSb11の端末ID通知処理で取得した端末IDに何らかのユーザIDが対応付けられているか否かを判定する(ステップSb121)。ASPサーバ10は、端末ID通知処理によって取得した端末IDに、いずれのユーザIDも対応付けられていない(例えば、端末IDがユーザ管理テーブル136に格納されていない)と判定した場合には(ステップSb121;NO)、ステップSb122の処理に進む。そして、ASPサーバ10は、端末ID通知処理で取得した端末IDに、ステップSb7のユーザ認証で用いたユーザIDを対応付けるよう、ユーザ管理テーブル136に端末IDとユーザIDとを書き込む(ステップSb122)。例えば、ユーザが会員登録を行ってから初めて電子クーポンをダウンロードしようとした場合には、端末ID通知処理で取得した端末IDとユーザ認証で用いたユーザIDとの対応付けはユーザ管理テーブル136に格納されていない。
次に、ASPサーバ10は、保有状況管理テーブル137に基づいて、端末装置20に電子クーポンを提供可能か否かを判定する(ステップSb123)。ここでは、ASPサーバ10は、1ユーザあたりの提供制限枚数を超えない範囲内で電子クーポンを提供できるか否かを判定する。例えば、ASPサーバ10は、クーポン取得要求で指定された電子クーポンの取得枚数がその電子クーポンの残枚数以下である場合には、電子クーポンを提供可能と判定することとなる。
ASPサーバ10は、電子クーポンを提供可能と判定した場合には(ステップSb123;YES)、ステップSb122の処理でユーザ管理テーブル136に書き込んだ端末IDとユーザIDとの対応付けの有効期限を設定する(ステップSb124)。ここでは、ASPサーバ10は、クーポン情報テーブル135を参照し、提供しようとする電子クーポンに利用可能期間が設定されている場合には、利用可能期間の終了日時を有効期限として設定する。また、ASPサーバ10は、電子クーポンの利用可能期間が設定されていない場合には、現在日時から予め決められた期間後(ここでは、30日後)を有効期限として設定する。また、ASPサーバ10は、同一サービス提供者の複数種類の電子クーポンを端末装置20に提供する場合に、各電子クーポンに利用可能期間が設定されているときには、終了時期が最も後である電子クーポンの利用可能期間の終了時期を有効期限として設定するとよい。また、ASPサーバ10は、同一サービス提供者の複数種類の電子クーポンを端末装置20に提供する場合に、利用可能期間が設定されている電子クーポンと設定されていない電子クーポンが混在するときには、有効期限が最も後となる電子クーポンに基づいて有効期限を設定するとよい。
ASPサーバ10は、端末IDとユーザIDとの対応付けの有効期限を設定すると、クーポン提供判定処理を終了する。なお、ASPサーバ10は、ステップSb123の処理で電子クーポンを提供可能でないと判定した場合には(ステップSb123;NO)、エラー通知を行って(ステップSb127)、クーポン提供判定処理を終了する。
ところで、ASPサーバ10が、ステップSb11の端末ID通知処理で端末ID「abcde00001」を取得していたとする。この場合、ユーザ管理テーブル136において、端末ID「abcde00001」がユーザID「UID0001」に対応付けられているから(図26参照)、ASPサーバ10はステップSb121の処理で「YES」と判定する。
ステップSb121の処理で「YES」と判定した場合、ASPサーバ10は、ユーザ管理テーブル136において、端末ID通知処理で取得した端末IDを含む対応付けの有効期限前か否かを判定する(ステップSb125)。ここで、現在日時が「2012/2/16/12:00」である場合、ASPサーバ10は有効期限前であると判定し(ステップSb125;YES)、ステップSb126の処理に進む。次に、ASPサーバ10は、ユーザ管理テーブル136において端末ID通知処理で取得した端末IDに対応付けられたユーザIDと、ステップSb7のユーザ認証に用いたユーザIDとが一致するか否かを判定する(ステップSb126)。ASPサーバ10は両ユーザIDが一致しないと判定した場合(ステップSb126;NO)、エラー通知を行って(ステップSb127)、クーポン提供判定処理を終了する。
ユーザ管理テーブル136において端末ID通知処理で取得した端末IDに対応付けられたユーザIDと、ユーザ認証に用いたユーザIDとが一致しないということは、1の端末装置20のユーザに複数のユーザIDが割り当てられていることを意味する。よってこの場合に、ASPサーバ10が端末装置20に電子クーポンを提供してしまうと、各ユーザIDを用いて電子クーポンが端末装置20に取得されてしまい、その取得枚数が1ユーザあたりの提供制限枚数を超える可能性が生じる。そこで、ASPサーバ10は、ユーザ管理テーブル136において、端末ID通知処理で取得した端末IDにユーザ認証に用いたユーザIDと異なるユーザIDが対応付けられている場合には、エラー通知を行うことによって、1ユーザあたりの提供制限枚数を超えて電子クーポンを提供しないようにする。これにより、1の端末装置20により、1のユーザあたりの提供制限枚数を超えて電子クーポンが利用されることを防止できる。
なお、1の端末装置20のユーザに複数のユーザIDが割り当てられる場合として、例えば、会員登録の記憶部26に記憶されたクッキーの情報が削除された場合がある。以上のASPサーバ10の動作によれば、ユーザがクッキーの情報を削除し別のユーザになりすまして複数回会員登録を行った場合であっても、1ユーザあたりの提供制限枚数を超えて電子クーポンが不正に取得され利用されるのを防止することができる。
ステップSb126の処理で、ASPサーバ10が、ユーザ管理テーブル136において、端末ID通知処理で取得した端末IDに対応付けられたユーザIDとステップSb7のユーザ認証に用いたユーザIDとが一致すると判定した場合(ステップSb126;YES)、ASPサーバ10はステップSb123の処理に進む。この場合、ASPサーバ10が、前回の電子クーポン提供時と同じ端末IDとユーザIDとの組み合わせを取得したことになるから、ユーザにより電子クーポンが不正取得されようとしているわけではないと推測することができる。そこで、ASPサーバ10は既に説明した手順でステップSb123及びSb124の処理を実行し、1ユーザあたりの提供制限枚数の範囲内で電子クーポンを提供可能とすると判定することとなる。
また、ステップSb121の処理で「YES」と判定した後、ASPサーバ10がステップSb125の処理で対応付けが有効期限前でない、つまり有効期限を経過したと判定した場合(ステップSb125;NO)、ステップSb122の処理に進む。この場合、ASPサーバ10は、ユーザ管理テーブル136における端末ID通知処理で取得した端末IDを含む対応付けが無効であるから、この端末IDにユーザ認証に用いたユーザIDを対応付ける。
例えば、ASPサーバ10が1ユーザあたりの提供制限枚数が設定されたクーポンID「CID001」の電子クーポンを提供しようとする場合において、現在日時が有効期限「2012/02/29 23:59」よりも後である場合を考える。ここで、ステップSb11の処理で取得した端末IDが「abcde00001」で、且つ、ユーザ認証に用いたユーザIDがユーザID「UID0003」であるときには、ASPサーバ10は図34に示すようにユーザ管理テーブル136を更新する。具体的には、ASPサーバ10は、ステップSb122の処理で、端末ID「abcde00001」に対応付けられたユーザIDを「UID0001」から「UID0003」に変更する。そして、ASPサーバ10はステップSb123の処理で「YES」と判定すると、ステップSb124の処理で有効期限を利用可能期間の終了日時に設定する。(ここでは、有効期限「2012/02/29 23:59」のままである。)
また、ASPサーバ10が、利用可能期間が設定されていないクーポンID「CID003」の電子クーポンを提供しようとする場合において、現在日時が有効期限「2012/02/29 23:59」よりも後であり、且つ、端末IDが「abcde00001」でユーザ認証に用いたユーザIDがユーザID「UID0003」であるときには、ASPサーバ10は図35に示すようにユーザ管理テーブル136を更新する。具体的には、ASPサーバ10は、端末ID「abcde00001」に対応付けられたユーザIDを「UID0001」から「UID0003」に変更する。そして、ASPサーバ10はステップSb123の処理で「YES」と判定すると、ステップSb124の処理で有効期限を現在日時から予め決められた期間後(例えば、30日後)に設定する。(ここでは、有効期限「2012/04/03 19:04」とする。)
以上のように、ASPサーバ10は、端末ID通知処理で取得した端末IDを含む対応付けの有効期限が経過した後である場合には、この対応付けに含まれるユーザIDの変更を許可しているが、その理由は以下のとおりである。
或るユーザが所有していた端末装置20が別のユーザに譲渡された場合において、それら両ユーザが会員登録を行ったときには、端末装置20のユーザが電子クーポンを不正取得しようとするユーザではなくても、結果として、複数のユーザIDが1の端末装置20のユーザに割り当てられることになる。また、端末装置20の機種変更を行ったユーザが既に割り当てられたユーザを記録していなかった場合や、端末装置20のユーザがユーザIDやパスワードを忘れてしまった場合に、やむを得ず複数回会員登録を行ったときにも、複数のユーザIDが1の端末装置20のユーザに割り当てられることになる。このような場合にも、ASPサーバ10が、ユーザ管理テーブル136における端末IDとユーザIDとの対応付けと、端末装置20から取得した端末IDとユーザIDの組み合わせとが異なるという理由で、永続的に電子クーポンの提供を不許可としてしまうと、不正取得を目的としないユーザの電子クーポンの取得及び利用が妨げられてしまう。そこで、本実施形態のASPサーバ10は、ユーザ管理テーブル136における端末IDとユーザIDとの対応付けに有効期限を設定しておき、その有効期限が経過した後においては、ユーザ管理テーブル136の対応付けの変更を許可する。
前述したように、電子クーポンに利用可能期間が設定されている場合、ASPサーバ10は利用可能期間の終了日時を対応付けの有効期限としている。これにより、ASPサーバ10は、或る電子クーポンの利用可能期間後においては、ユーザ管理テーブル136における端末IDとユーザIDとの対応付けを無効にするから、それ以降においては、この対応付けに一致しない端末IDとユーザIDとを取得した場合であっても、電子クーポンを提供可能とする。この場合において仮に悪意のあるユーザが複数のユーザIDを用いてその電子クーポンを不正取得しようとした場合であっても、利用可能期間後にしかこの電子クーポンを取得できないので、1ユーザあたりの提供制限枚数を超えて電子クーポンが取得されても、その電子クーポンが実際に利用されることはない。すなわち、仮に電子クーポンが不正取得されても、それによる実害をサービス提供者が被ることはない。
また、電子クーポンに利用可能期間が設定されていない場合、ASPサーバ10は電子クーポンを提供する処理を実行してから予め決められた期間が経過したことを条件として、対応付けを無効にする。これにより、ASPサーバ10は、悪意のあるユーザが複数のユーザIDを用いて不正取得しようとした場合であっても、上記期間後にしか対応付けを更新しないので、短期間に大量の電子クーポンが不正取得されることはない。ただし、上記期間が長すぎると、正当なユーザの電子クーポンの取得及び利用が妨げられるし、逆に上記期間が短すぎると、悪意のあるユーザが複数のユーザIDを用いて電子クーポンを大量に不正取得する可能性が高まるので、両方の事情に照らして適切な期間に設定されているとよい。
以上のように、電子クーポンの不正取得の防止と、悪意のないユーザが複数ユーザIDを取得した場合でも電子クーポンの取得及び利用が妨げられないようにすることとの両立を目的として、ASPサーバ10は、ユーザIDと端末IDとの対応付けに有効期限を持たせ、有効期限を過ぎれば対応付けを無効にしている。
以上がクーポン提供判定処理の説明である。
ステップSb123の処理で「YES」と判定しステップSb124の処理で有効期限を設定した場合には、ASPサーバ10は、クーポン提供判定処理の後に、電子クーポンを提供するための処理として電子クーポンの書込処理を端末装置20に行わせる(ステップSb13)。ここにおいても、ASPサーバ10はアプリケーション管理サーバ50を介して端末装置20に書込処理を行わせる。
図36は、電子クーポンの書込処理の手順を示すシーケンスチャートである。
ASPサーバ10は、アプリケーション管理サーバ50に対して、電子クーポンの書込処理に関する処理依頼を行って、問合せIDの生成を要求する(ステップSb131)。アプリケーション管理サーバ50は、処理依頼に応じて生成した問合せIDを、ASPサーバ10宛てに送信する(ステップSb132)。ここにおいて、処理依頼は、ICチップ25のメモリ領域251に書き込まれることとなる電子クーポンの情報を含む。この情報は、電子クーポンのクーポンIDと電子クーポンの取得枚数とを特定可能な情報を含む。
次に、ASPサーバ10は、書込処理の実行を指示するための書込指示を端末装置20宛てに送信する(ステップSb133)。ここにおいて、ASPサーバ10は、アプリケーション管理サーバ50から受信した問合せIDを含めた書込指示を送信する。端末装置20は、ASPサーバ10から書込指示を受信すると、クーポン管理アプリケーション261を実行し、アプリケーション管理サーバ50宛てに書込指示に含まれていた問合せIDを送信する(ステップSb134)。アプリケーション管理サーバ50は、端末装置20から受信した問合せIDに対応する処理依頼に従い、電子クーポンの書き込みに必要な(以下、「書込情報」という。)を端末装置20宛てに送信する(ステップSb135)。端末装置20は、アプリケーション管理サーバ50から受信した書込情報に基づいて、電子クーポンの書込処理を実行する(ステップSb136)。
次に、端末装置20は、書込処理の結果を示す結果通知を、アプリケーション管理サーバ50宛てに送信する(ステップSb137)。次に、端末装置20は、メモリ領域251に電子クーポンを書き込む書込処理が終了した旨を示す終了通知を、ASPサーバ10宛てに送信する(ステップSb138)。
なお、端末装置20は、ステップSb133の処理に応じてクーポン管理アプリケーション261を実行してから、ステップSb137の処理までをクーポン管理アプリケーション261に従って実行する。
ASPサーバ10は、端末装置20から送信された終了通知を受け付けた後、アプリケーション管理サーバ50に問合せIDを送信して、終了通知の送信元の端末装置20における書込処理の結果を問い合わせる(ステップSb139)。アプリケーション管理サーバ50は、ASPサーバ10からの問い合わせに応じて、ASPサーバ10宛てに書込処理の結果(つまり、結果通知)を送信する(ステップSb140)。
ASPサーバ10が端末装置20に書込処理を行わせる場合に、アプリケーション管理サーバ50経由で処理を行う理由は、電子クーポンに関する情報の改ざんなど不正に情報が書き換えられるのを防ぐためである。
ASPサーバ10は、1ユーザあたりの提供制限枚数が設定されていない電子クーポンを提供する場合には、ステップSb10の端末ID要否判定処理の後、ステップSb11,Sb12の処理をスキップして、図36の手順で端末装置20に書込処理を行わせる。
ASPサーバ10は、ステップSb140の結果通知に応じて書込処理が成功したと判定すると、実行された書込処理に応じて保有状況管理テーブル137を更新する(図29のステップSb14)。ここでは、ASPサーバ10は、新たに提供した電子クーポンの数を取得済み未利用枚数に加算する。
以上説明した実施形態によれば、ASPサーバ10は、ユーザ管理テーブル136にユーザIDと端末IDとを対応付けて格納した後、対応付けの有効期限を経過するとこの対応付けを無効にする。これにより、端末装置20のユーザに複数のユーザIDが割り当てられた場合であっても、電子クーポンが制限枚数を超えて利用される可能性を抑えることができる。また、ASPサーバ10でこの対応付けを無効にする構成は、ASPサーバ10が有効期限の経過後か否かを判定することで実現される。よって、このような仕組みを実現するために大規模なシステムの改修を行わなくてもよいし、ユーザの申し出により対応付けを無効にする手続きを人為的に行う場合の手間も生じない。
また、本実施形態では、ASPサーバ10は、1ユーザあたりの提供制限枚数が設定された電子クーポンを提供する場合には、端末IDの読み取りを指示し、1ユーザあたりの提供制限枚数が設定されていない電子クーポンを提供する場合には、端末IDの読み取りを指示しない。これにより、ASPサーバ10が1ユーザあたりの提供制限枚数が設定されていない電子クーポンを提供する場合には、電子クーポンの管理において不要である端末ID通知処理(つまり、図31に示す処理)を省略できるので、いつでも端末IDの読取処理を行う場合に比べて、ユーザが電子クーポンの取得を要求したときから、端末装置20に電子クーポンを提供するまでの時間を短くすることができる。
更には、通信システム1において、ASPサーバ10とアプリケーション管理サーバ50とは独立したサーバ装置で実現されていて、クーポン管理アプリケーション261はASPサーバ10がないと動作しないようになっている。これは、端末装置20において、クーポン管理アプリケーション261が不正に利用されることを防ぐ目的としていることにもよる。具体的には、ASPサーバ10がアプリケーション管理サーバ50に対し署名通信で処理依頼を行った場合にしか、端末装置20ではICチップ25から端末IDを読み出したり、ICチップ25に電子クーポンを書き込んだりしないから、クーポン管理アプリケーション261の不正利用を防ぐことができる。
4.第2実施形態の変形例
本発明は、上述した実施形態と異なる形態で実施することが可能である。本発明は、例えば、以下のような形態で実施することも可能である。また、以下に示す変形例は、各々を適宜に組み合わせてもよい。
(変形例1)
ASPサーバ10は、端末装置20から取得したユーザIDと異なるユーザIDが端末IDに対応付けてユーザ管理テーブル136に記憶されている場合、有効期限前であれば、電子クーポンを提供しなかった。これに代えて、ASPサーバ10は、ユーザ管理テーブル136において、端末装置20から取得したユーザIDと異なるユーザIDが端末IDに対応付けている場合にも、電子クーポンを提供してもよい。この場合、ASPサーバ10は、ステップSb126の処理の後のステップSb127の処理では、エラー通知を行うとともに、ユーザの指示に応じて、ユーザ管理テーブル136で端末IDに対応付けられているユーザIDのユーザに対して、電子クーポンを提供するための処理を実行すればよい。この場合にも、ASPサーバ10は、ステップSb14で電子クーポンを提供する処理に応じて保有状況管理テーブル137を更新するが、ユーザ管理テーブル136における端末IDとユーザIDとの対応付けを変更しないようにする。
この構成であれば、ユーザ管理テーブル136における対応付けに含まれるユーザIDと異なるユーザIDであっても、ASPサーバ10は電子クーポンを提供できるので、ユーザは電子クーポンを取得しやすくなるとともに、上述した実施形態と同様、1ユーザあたりの提供制限枚数の範囲内で電子クーポンを提供することが可能である。
(変形例2)
上述した実施形態において、ASPサーバ10は、会員登録したユーザに対して電子クーポンを提供していたが、会員登録しないユーザに電子クーポンを提供するものであってもよい。この場合も、ASPサーバ10は、電子クーポンを新たに提供する場合には端末IDとユーザIDとを取得して、上記実施形態と同等の手順で処理を実行すればよい。ASPサーバ10が会員登録に関する処理を行わないで、端末装置20のユーザにユーザIDを割り当てる構成として、例えば、以下の構成例1及び構成例2がある。
まず、構成例1を説明する。
構成例1では、通信システム1においてステップSb1〜Sb3の処理を省略し、端末装置20はステップSb4の処理において、ユーザIDを含まないページアクセス要求をASPサーバ10宛てに送信する。ASPサーバ10は、ページアクセス要求を受信すると、上記ステップSb5及びSb6に相当する処理を行わず、ステップSb7のユーザ認証に代えてユーザIDを新たに発行して取得する処理を行う。そして、ASPサーバ10は、発行したユーザIDをユーザ管理テーブル136に書き込む。そして、ASPサーバ10は、ステップSb8の処理に代えて、端末装置20のクッキーを用いてユーザIDを記憶させるための処理を行う。ステップSb9以降の処理は、上述した実施形態と同じでよい。
次に、構成例2を説明する。
構成例2でも、通信システム1においてステップSb1〜Sb3を省略し、端末装置20はステップSb4の処理において、ユーザIDを含まないページアクセス要求をASPサーバ10宛てに送信する。ASPサーバ10は、ページアクセス要求を受信すると、ステップSb5〜Sb8に相当する処理を実行しないで、図30に示すクーポン取得画面を端末装置20に表示させる。端末装置20は、クーポン取得画面を表示した後、ステップSb9に相当する処理を実行して、クーポン取得要求をASPサーバ10宛てに送信する。
なお、ここにおいては、ASPサーバ10は、保有状況管理テーブル137に基づいて各ユーザ向けのクーポン取得画面を表示させることができないので、例えば設定可能な取得枚数の上限を1ユーザあたりの提供制限枚数とするなど、複数ユーザで共通のクーポン取得画面を表示させる。
次に、ASPサーバ10は、ステップSb10の処理で、無条件に端末ID通知処理の実行が必要と判断する。そして、ASPサーバ10は、ステップSb11の端末ID通知処理により端末IDを取得すると、ユーザ管理テーブル136を参照して、取得した端末IDに対応付けられたユーザIDの有無を確認する。ASPサーバ10は、端末IDに対応付けられたユーザIDがない場合には、構成例1と同様にして、ユーザIDを新たに発行して取得する処理を行う。そして、ASPサーバ10は、発行したユーザIDを、端末ID通知処理により取得した端末IDとを対応付けてユーザ管理テーブル136に書き込む。また、ASPサーバ10は、クッキーを用いて端末装置20にユーザIDを記憶させるための処理を行う。そして、ASPサーバ10は、ステップSb12のクーポン提供判定処理を行うこととなる。
一方、ASPサーバ10は、ユーザ管理テーブル136において、取得した端末IDに対応付けられたユーザIDがある場合には、上記変形例1と同様に、ASPサーバ10は、ユーザ管理テーブル136を参照して、端末ID通知処理で取得した端末IDに対応付けられているユーザIDを取得し、取得したユーザIDが示すユーザに対して電子クーポンを提供するための処理を実行する。すなわち、ASPサーバ10は、ステップSb14の処理で電子クーポンを提供する処理に応じて保有状況管理テーブル137を更新するが、ユーザ管理テーブル136における端末IDとユーザIDとの対応付けを変更しない。
(変形例3)
上述した実施形態において、ASPサーバ10は、利用可能期間が設定された電子クーポンについてはその終了時期を有効期限にしていたが、利用可能期間が設定されていない電子クーポン同様、電子クーポンを提供する処理を行ってから予め決められた期間が経過したときを有効期限にしてもよい。このようにすれば、端末装置20のユーザは、利用可能期間が設定された電子クーポンについて、その利用可能期間内に電子クーポンを取得することが可能となる。
また、ASPサーバ10が端末IDとユーザIDとの対応付けを無効にする条件は前掲の条件に限らず、永続的にこの対応付けが有効であることを回避できる条件であれば、他の条件を適用することもできる。
(変形例4)
上述した実施形態において、ASPサーバ10は、1ユーザあたりの提供制限枚数が設定されている電子クーポンを提供する場合には、端末装置20に端末IDの読み取りを指示し、1ユーザあたりの提供制限枚数が設定されていない電子クーポンを提供する場合には、端末装置20に端末IDの読み取りを指示しなかったが、いずれの電子クーポンを提供する場合にも読み取りを指示してもよい。
また、端末IDは、ICチップ25に記憶される端末IDなくてもよく、例えば端末装置20を個体識別できる偽装困難な他の情報であってもよい。例えば、本発明の端末IDは、通信事業者で把握される契約情報に含まれる電話番号等の情報であってもよい。また、ユーザIDは、ASPサーバ10によって割り当てられるものでなくてもよい。
(変形例5)
また、ASPサーバ10が提供する電子クーポンはICチップ25での書込処理によりメモリ領域251に記憶され、リーダ/ライタに読み取られて利用されるものでなくてもよい。例えば、端末装置20が提供された電子クーポンを意味する画像をUI部24に表示させ、店舗の従業員がPOS(Point of sale)端末を操作して電子クーポンを利用させてもよい。この場合、ASPサーバ10は、電子クーポンを意味する画像を表示させるための情報を端末装置20に送信する処理を、電子クーポンを提供する処理として実行することになる。
(変形例6)
上述した実施形態の通信システム1では、電子クーポンの提供又は利用可能な最小単位を「枚」とし、提供又は利用される電子クーポンの数(単位数)を「枚数」とした電子クーポンを扱っていた。これに対し、電子クーポンの提供又は利用可能な最小単位となる数(すう)はこれに限らず、例えば、電子クーポンの提供又は利用可能な最小単位を「円」や「ドル」等の貨幣の単位としてもよい。この場合であっても、上述した実施形態の電子クーポンの「枚数」を、「円」や「ドル」等の貨幣の単位に置き換えればよいだけである。また、電子クーポンの提供又は利用可能な最小単位となる数は、「ポイント」(点)や「回数」(利用回数)等であってもよい。
また、ASPサーバ10は、提供される電子クーポンが1種類である場合において、1ユーザあたりの提供制限枚数が1枚であるときのように、電子クーポンを提供済みか否かのみによって各ユーザの電子クーポンの保有状況を管理できるのであれば、保有状況管理テーブル137に相当するデータを記憶しない構成であってもよい。このように本発明は、保有状況管理テーブル137に相当するデータを記憶することを必須とするものではない。
(変形例7)
上述した実施形態においてASPサーバ10が実行していたユーザ認証に関する処理ステップSb4〜Sb7の処理を、以下の処理に置き換えてもよい。この変形例では、ASPサーバ10とは別途設けられた外部サーバ(以下、「認証サーバ」という。)が、端末装置20から取得したユーザIDを用いてユーザ認証を行う。認証サーバは、ユーザ認証に成功すると、認証サーバは、ユーザ認証に成功した後に、ASPサーバ10にワンタイムパスワードの発行を依頼する。このとき、認証サーバは、ワンタイムパスワードの発行依頼とともに、ユーザ認証に用いたユーザIDをASPサーバ10に送信するものとする。ASPサーバ10は、ワンタイムパスワードの発行依頼を受け付けると、その依頼元である認証サーバの正当性を、送信元IPアドレスや電子署名等により確認する。ASPサーバ10は、依頼元が正当であると判断した場合は、ワンタイムパスワードを発行し、発行したワンタイムパスワードと、発行依頼とともに受信したユーザIDとを対応付けて記憶部13に記憶させる。そして、ASPサーバ10は、発行したワンタイムパスワードを認証サーバに通知する。そして、認証サーバは、ユーザ認証の成功後に端末装置20に表示させるwebページに、ASPサーバ10が提供するwebページのハイパーリンクを設定して表示させる。このとき認証サーバは、ASPサーバ10から通知されたワンタイムパスワードをハイパーリンクに埋め込んでおくことにより、このワンタイムパスワードを端末装置20に提供する。
なお、ASPサーバ10は、発行したワンタイムパスワードに有効期限を設けておき、有効期限の経過後にはこのワンタイムパスワードを無効にする。
次に、端末装置20においてユーザにより上記ハイパーリンクを選択する操作が行われると、端末装置20はハイパーリンクに対応したwebページを表示させるためのページアクセス要求をASPサーバ10宛てに送信する(ステップSb4の処理に相当)。前述したように、ハイパーリンクにはワンタイムパスワードが埋め込まれているから、端末装置20は、ワンタイムパスワードをページアクセス要求に含めて送信したことになる。ASPサーバ10は、ページアクセス要求を受信すると、ページアクセス要求に含まれるワンタイムパスワードが記憶部13に記憶され、かつ、このワンタイムパスワードが有効期限前であるか否かにより、ステップSb7に相当するユーザ認証を行う。ASPサーバ10は、ワンタイムパスワードが記憶部13に記憶され、かつ、このワンタイムパスワードが有効期限前であると判定すると、記憶部13においてこのワンタイムパスワードに対応付けられたユーザIDでユーザ認証に成功したものとし、以降、上述した実施形態と同様の手順でステップSb8以降の処理を行う。
なお、ASPサーバ10は、認証に成功したワンタイムパスワードについてはこれを無効にする。
この変形例によれば、認証サーバとASPサーバ10とでやり取りされるワンタイムパスワードでユーザ認証が行われるので、上述した実施形態に比べて、第三者により不正な方法でユーザ認証が行われる可能性を抑えることができる。また、認証サーバにてユーザIDに基づくユーザ認証が行われていれば、端末装置20がページアクセス要求を送信した後にASPサーバ10はユーザIDに基づくユーザ認証を行う必要がない。これにより端末装置20のユーザにしてみれば、端末装置20でASPサーバ10が提供するwebページが表示された後に、ユーザIDやパスワードを入力する操作を行う必要がなく、電子クーポンの取得時における操作負担が減る。
(変形例8)
また、本発明は、1ユーザあたりの提供制限枚数が設定されている電子クーポン(第1電子クーポン)を提供する場合には、端末装置20に端末IDの読み取りを指示し、1ユーザあたりの提供制限枚数が設定されていない電子クーポン(第2電子クーポン)を提供する場合には、端末装置20に端末IDの読み取りを指示しない構成としても特定可能である。よって、この発明では、ユーザ管理テーブル136におけるユーザID及び端末IDの無効にする仕組みを有していなくてもよい。この発明であっても、1ユーザあたりの提供制限枚数が設定されていない電子クーポンを提供する場合には、電子クーポンの管理において不要である端末ID通知処理(つまり、図31に示す処理)を省略できるので、いつでも端末IDの読取処理を行う場合に比べて、端末装置20に電子クーポンを提供するまでの時間を短くすることができる。
この発明のクーポン管理装置は、提供可能な数がユーザ毎に制限された第1電子クーポンを提供した端末装置を識別する端末IDを記憶する記憶部と、前記第1電子クーポンを提供する場合には、前記端末装置が有するメモリ領域に記憶された前記端末IDの読み出しを指示し、提供可能な数がユーザ毎に制限されていない第2電子クーポンを当該端末装置に提供する場合には、前記端末IDの読み出しを指示しない読出指示部と、前記読出指示部により前記端末IDの読み出しが指示された場合に、当該指示に従って前記メモリ領域から読み出された前記端末IDを取得する取得部と、前記記憶部を参照して前記取得部が取得した端末IDに基づいて前記電子クーポンを提供すると判定した場合に、前記提供可能な数を超えない範囲内で当該端末IDが示す端末装置に前記第1電子クーポンを提供するための処理を実行する一方、前記読出指示部により前記端末IDの読み出しが指示されなかった場合に、前記第2電子クーポンを前記端末装置に提供するための処理を実行する提供部とを備えることを特徴とする。
(変形例9)
上述した実施形態の通信システム1では、店舗管理サーバ30と店舗端末40とが別々の装置であったが、これらを一体化した装置が用いられてもよい。この一体化した装置として、例えば、リーダ/ライタ機能を有しているパーソナルコンピュータやスマートフォン、POS端末等がある。
また、ASPサーバ10の制御部11が実現する各機能は、複数のプログラムの組み合わせによって実現され、又は、複数のハードウェア資源の協働によって実現されうる。
また、本発明は、ASPサーバ10が実行するプログラムやクーポン管理方法として把握することも可能である。
(変形例10)
上記の実施形態では、ユーザ管理テーブル132において設定される端末IDとユーザIDとの対応付けに有効期限が設定され、その有効期限が経過すると、当該対応付けは無効になる。そして、当該対応付けの変更(具体的には、ユーザIDの変更)が許可される(図33のステップSb122参照)。よって、端末装置20のユーザが自身のユーザIDやパスワードを失念してしまい別のユーザIDを取得した場合であっても、元のユーザIDと端末IDとの対応付けの有効期限が経過すれば、新たなユーザIDを用いて電子クーポンの提供を受けることができる。また、すでに別のユーザIDと対応付けられている端末装置20の譲渡を受け、当該端末に機種変更する場合であっても、当該ユーザIDと端末IDとの対応付けの有効期限が経過すれば、譲渡を受けたユーザは、自己のユーザIDを用いて電子クーポンの提供を受けることができる。
しかし、上記の実施形態の場合、新たに変更されたユーザIDと、当該ユーザIDと従来対応付けられていた端末IDとの対応付けは、削除されずに残ってしまう。例えば、図26に示される例において、端末ID「abcde00002」に対して、新たにユーザID「UID0001」が対応付けられることになった場合、当該ユーザID「UID0001」と、従来当該ユーザIDと対応づけられていた端末ID「abcde00001」との対応付けは、削除されずに残ってしまう。よって、本例においては、端末ID「abcde00001」によって識別される端末装置20を新たに取得したユーザは、当該端末IDとユーザID「UID0001」との対応付けの有効期限が経過するまでは、クーポンの提供を受けられなくなってしまう。
そこで、上記の実施形態において、ユーザIDの変更を行う場合に、変更後のユーザIDと、当該ユーザIDと従来対応づけられていた端末IDとの対応付けを削除するようにしてもよい。より具体的には、上記の実施形態の図33のステップSb122の直前又は直後において、図29のステップSb7のユーザ認証に用いたユーザIDと、同図のステップSb11の端末ID通知処理で取得した端末IDと異なるIDとがユーザ管理テーブル132において対応づけられているときに、当該ユーザIDと当該異なる端末IDとの対応付けを削除するようにしてもよい。このような構成によれば、上記の例において端末ID「abcde00001」によって識別される端末装置20を新たに取得したユーザは、当該端末IDとユーザID「UID0001」との対応付けの有効期限が経過するのを待たずとも、クーポンの提供を受けることができる。
(変形例11)
上記の第2実施形態は、上記の第1実施形態と組み合わせてもよい。具体的には、第1実施形態の図10のステップSa1の処理の前に、第2実施形態の図29のステップSb1〜Sb8の処理を実行してもよい。
また、第1実施形態の図10のステップSa1の処理の後であって、ステップSa2の処理の前に、第2実施形態の図29のステップSb10〜Sb12の処理を実行してもよい。この場合、第1実施形態に係るクーポン管理テーブル131において、「クーポンID」ごとに、第2実施形態に係るクーポン情報テーブル135と同様に、「1ユーザあたりの提供制限枚数」を対応付けるようにしてもよい。また、第1実施形態に係るASPサーバ10の記憶部13に、第2実施形態に係るユーザ管理テーブル136を記憶するようにしてもよい。また、第1実施形態に係るクーポン管理テーブル131において、「クーポンID」ごとに、第2実施形態に係るクーポン情報テーブル135と同様に、「利用可能期間(開始日時)」と「利用可能期間(終了日時)」とを対応付けるようにしてもよい。また、ステップSb12の処理を実行する際に、ASPサーバ10は、第2実施形態に係る保有状況管理テーブル137に代えて、第1実施形態に係るユーザ管理テーブル132を参照するようにしてもよい。
1…通信システム、10…ASPサーバ、11…制御部、111…第1更新部、112…書込指示部、113…第2更新部、114…処理結果取得部、115…利用履歴取得部、116…第3更新部、117…読出指示部、118…取得部、119…提供部、120…書込部、12…通信部、13…記憶部、131…クーポン管理テーブル、132…ユーザ管理テーブル、133…トランザクション管理テーブル、134…保留リストテーブル、135…クーポン情報テーブル、136…ユーザ管理テーブル、137…保有状況管理テーブル、20…端末装置、21…制御部、22…音声入出力部、23…無線通信部、24…UI部、25…ICチップ、251…メモリ領域、26…記憶部、261…クーポン管理アプリケーション、30…店舗管理サーバ、40…店舗端末、41…リーダ/ライタ、50…アプリケーション管理サーバ。
本発明のサーバ装置において、前記第2更新部は、前記書込指示部の指示に応じた前記書込処理により他の電子クーポンに前記電子クーポンが上書きされた場合、当該他の電子クーポンの未利用数を当該他の電子クーポンの残数に加算して、当該未利用数をクリアするよう、前記第1記憶部を更新することが好ましい。
本発明のサーバ装置において、前記第1更新部は、前記電子クーポンの残数から減じた数を、前記書込処理の成功が未確定の電子クーポンの数である未確定数に設定して、前記第1記憶部に記憶させ、前記第2更新部は、前記書込処理の成功が確定した後、前記減じられた数である前記電子クーポンの未確定数を、前記電子クーポンの未利用数に設定し、当該未確定数をクリアすることが好ましい。
本発明のサーバ装置において、前記第2更新部は、前記第1の端末装置が前記指示に応じた前記書込処理に失敗した場合、前記未確定数を前記電子クーポンの残数に加算し、当該未確定数をクリアすることが好ましい。
本発明のサーバ装置において、前記第1記憶部は、前記第1の端末装置に対して新たに提供可能な電子クーポンの残数を記憶し、前記第1の端末装置が利用した前記電子クーポンの利用数を含む利用履歴を取得する利用履歴取得部と、前記利用履歴取得部が取得した利用履歴に基づいて、前記利用した電子クーポンの前記未利用数、及び前記第1の端末装置に対する残数のそれぞれから、前記利用数を減じるよう、前記第1記憶部を更新する第3更新部とを備えることが好ましい。
本発明のサーバ装置において、前記メモリ領域に前記電子クーポンを書き込む前記書込処理が終了した旨の通知を受け付けた後、前記第1の端末装置から前記書込処理の結果を取得する管理サーバに問い合わせて当該結果を取得する処理結果取得部を備え、前記第2更新部は、前記処理結果取得部により取得された前記結果に応じて、前記書込処理の成功が確定したか否かを判断することが好ましい。

Claims (22)

  1. 端末装置に提供されて当該端末装置において利用される各電子クーポンについて、前記端末装置に提供された電子クーポンの未利用数と、前記端末装置に対して新たに提供可能な電子クーポンの残数を記憶する第1記憶部と、
    前記電子クーポンが提供された端末装置を識別する端末IDに、当該端末装置のユーザを識別する1のユーザIDを対応付けて記憶する第2記憶部と、
    前記電子クーポンを第1の端末装置に新たに提供する場合に、当該第1の端末装置の端末IDと当該第1の端末装置のユーザのユーザIDとを取得する取得部と、
    前記電子クーポンの残数から、前記第1の端末装置に提供される前記電子クーポンの数を減じるよう、前記第1記憶部を更新する第1更新部と、
    前記第1更新部により減じられた数の電子クーポンについて前記第1の端末装置が有するメモリ領域への書込処理を実行するよう、前記第1の端末装置に指示する書込指示部と、
    前記書込指示部により前記書込処理の実行が指示される場合、前記第2記憶部において前記取得した端末IDに前記取得したユーザIDを対応付ける書込部と、
    前記書込指示部の指示に応じた前記書込処理の成功が確定した後、前記減じられた数を前記電子クーポンの未利用数に設定するよう、前記第1記憶部を更新する第2更新部と
    を備えることを特徴とするサーバ装置。
  2. 前記第2更新部は、前記書込指示部の指示に応じた前記書込処理により他の電子クーポンに前記電子クーポンが上書きされた場合、当該他の電子クーポンの未利用数を当該他の電子クーポンの残数に加算して、当該未利用数をクリアするよう、前記第1記憶部を更新する
    ことを特徴とする請求項1に記載のサーバ装置。
  3. 前記第1更新部は、
    前記第1電子クーポンの残数から減じた数を、前記書込処理の成功が未確定の電子クーポンの数である未確定数に設定して、前記第1記憶部に記憶させ、
    前記第2更新部は、
    前記書込処理の成功が確定した後、前記減じられた数である前記電子クーポンの未確定数を、前記電子クーポンの未利用数に設定し、当該未確定数をクリアする
    ことを特徴とする請求項1又は2に記載のサーバ装置。
  4. 前記第2更新部は、
    前記第1の端末装置が前記指示に応じた前記書込処理に失敗した場合、前記未確定数を前記電子クーポンの残数に加算し、当該未確定数をクリアする
    ことを特徴とする請求項3に記載のサーバ装置。
  5. 前記第1記憶部は、一の端末装置に対して新たに提供可能な電子クーポンの残数を記憶し、
    前記第1の端末装置が利用した前記電子クーポンの利用数を含む利用履歴を取得する利用履歴取得部と、
    前記利用履歴取得部が取得した利用履歴に基づいて、前記利用した電子クーポンの前記未利用数、及び前記一の端末装置に対する残数のそれぞれから、前記利用数を減じるよう、前記第1記憶部を更新する第3更新部と
    を備えることを特徴とする請求項1から4のいずれか1項に記載のサーバ装置。
  6. 前記メモリ領域に前記電子クーポンを書き込む前記書込処理が終了した旨の通知を受け付けた後、前記第1の端末装置から前記書込処理の結果を取得する管理サーバに問い合わせて当該結果を取得する処理結果取得部を備え、
    前記第2更新部は、
    前記処理結果取得部により取得された前記結果に応じて、前記書込処理の成功が確定したか否かを判断する
    ことを特徴とする請求項1から5のいずれか1項に記載のサーバ装置。
  7. 前記書込指示部は、前記第2記憶部において、前記取得部が取得した端末IDに前記取得部が取得したユーザIDと異なるユーザIDが対応付けられていない場合、又は、前記取得した端末IDに前記取得したユーザIDと異なるユーザIDが対応付けられている場合に予め決められた条件を満たすときには、前記指示を行う
    -ことを特徴とする請求項1から6のいずれか1項に記載のサーバ装置。
  8. 前記書込指示部は、
    前記第2記憶部において、前記取得した端末IDに前記取得したユーザIDと異なるユーザIDが対応付けられている場合に、前記条件を満たさないときには、前記指示を行わない
    ことを特徴とする請求項7に記載のサーバ装置。
  9. 前記書込指示部は、
    前記第2記憶部において、前記取得した端末IDに前記取得したユーザIDと異なるユーザIDが対応付けられている場合には、前記指示を行い、
    前記書込部は、
    前記条件を満たさないときに前記書込指示部により前記指示が行われた場合には、前記第2記憶部において前記取得した端末IDに対応付けられたユーザIDを変更しない
    ことを特徴とする請求項7に記載のサーバ装置。
  10. 前記取得部は、
    前記第1の端末装置から前記端末IDを取得したが前記ユーザIDを取得しなかった場合に、前記第2記憶部において当該端末IDにいずれかのユーザIDが対応付けられているときには当該ユーザIDを取得し、前記第2記憶部において当該端末IDがいずれのユーザIDとも対応付けられていないときには新たにユーザIDを発行して取得し、
    前記書込部は、
    前記書込指示部により前記指示が行われた場合に、前記取得部が前記第2記憶部からユーザIDを取得していたときには、前記取得した端末IDに対応付けられたユーザIDを変更せず、新たにユーザIDを発行して取得していたときには、当該ユーザIDを前記取得した端末IDに対応付けて前記第2記憶部に書き込む
    ことを特徴とする請求項7から9のいずれか1項に記載のサーバ装置。
  11. 前記書込指示部は、
    前記指示を行ってから予め決められた期間が経過したことを前記条件とする
    ことを特徴とする請求項7から10のいずれか1項に記載のサーバ装置。
  12. 前記書込指示部は、
    前記電子クーポンの利用可能期間が経過したことを前記条件とする
    ことを特徴とする請求項7から11のいずれか1項に記載のサーバ装置。
  13. 前記書込指示部は、
    複数種類の電子クーポンについて、前記第1の端末装置が有するメモリ領域への書込処理を実行するよう、前記第1の端末装置に指示した場合、終了時期が最も後である電子クーポンの利用可能期間が経過したことを前記条件とする
    ことを特徴とする請求項12に記載のサーバ装置。
  14. 前記端末IDは、当該端末IDが示す端末装置が有するメモリ領域に記憶され、
    提供可能な数がユーザ毎に制限された電子クーポンを提供する場合には、前記メモリ領域からの前記端末IDの読み出しを指示し、提供可能な数がユーザ毎に制限されていない電子クーポンを当該第1の端末装置に提供する場合には、前記端末IDの読み出しを指示しない読出指示部を備え、
    前記取得部は、
    前記読出指示部により前記端末IDの読み出しが指示された場合に、当該指示に従って前記メモリ領域から読み出された前記端末IDを取得し、
    前記書込指示部は、
    前記読出指示部により前記端末IDの読み出しが指示されなかった場合に、前記提供可能な数がユーザ毎に制限されていない電子クーポンを前記第1の端末装置が有するメモリ領域への書込処理を実行するよう、前記第1の端末装置に指示する
    ことを特徴とする請求項7から13のいずれか1項に記載のサーバ装置。
  15. 前記第2記憶部において、前記取得した端末IDに前記取得したユーザIDと異なるユーザIDが対応付けられており、かつ、前記条件を満たす場合に、前記第2記憶部において、前記取得したユーザIDと、前記取得した端末IDと異なる端末IDとが対応付けられているときに、当該取得したユーザIDと当該異なる端末IDとの対応付けを削除する削除部をさらに備えることを特徴とする請求項7から14のいずれか1項に記載のサーバ装置。
  16. 端末装置に提供されて当該端末装置において利用される各電子クーポンについて、前記端末装置に提供された電子クーポンの未利用数と、前記端末装置に対して新たに提供可能な電子クーポンの残数を記憶する第1記憶部と、
    前記電子クーポンが提供された端末装置を識別する端末IDに、当該端末装置のユーザを識別する1のユーザIDを対応付けて記憶する第2記憶部と
    を備えるサーバ装置のクーポン管理方法であって、
    前記電子クーポンを第1の端末装置に新たに提供する場合に、当該第1の端末装置の端末IDと当該第1の端末装置のユーザのユーザIDとを取得する取得ステップと、
    前記電子クーポンの残数から、前記第1の端末装置に提供される前記電子クーポンの数を減じるよう、前記第1記憶部を更新する第1更新ステップと、
    前記第1更新ステップにおいて減じられた数の電子クーポンについて前記第1の端末装置が有するメモリ領域への書込処理を実行するよう、前記第1の端末装置に指示する書込指示ステップと、
    前記書込指示ステップにおいて前記書込処理の実行が指示される場合、前記第2記憶部において前記取得した端末IDに前記取得したユーザIDを対応付ける書込ステップと、
    前記書込指示ステップにおける指示に応じた前記書込処理の成功が確定した後、前記減じられた数を前記電子クーポンの未利用数に設定するよう、前記第1記憶部を更新する第2更新ステップと
    を有することを特徴とするクーポン管理方法。
  17. 前記第1記憶部は、端末装置が有するメモリ領域への書込処理の成功が確定した電子クーポンの未利用数を、端末装置に提供された電子クーポンの未利用数として記憶し、
    前記第2更新ステップは、前記書込指示部の指示に応じた前記書込処理により他の電子クーポンに前記電子クーポンが上書きされた場合、当該他の電子クーポンの未利用数を当該他の電子クーポンの残数に加算して、当該未利用数をクリアするよう、前記第1記憶部を更新する
    ことを特徴とする請求項16に記載のクーポン管理方法。
  18. 前記書込指示ステップは、前記第2記憶部において、前記取得ステップで取得した端末IDに前記取得ステップで取得したユーザIDと異なるユーザIDが対応付けられていない場合、又は、前記取得した端末IDに前記取得したユーザIDと異なるユーザIDが対応付けられている場合に予め決められた条件を満たすときには、前記指示を行うことを特徴とする請求項16又は17に記載のクーポン管理方法。
  19. サーバ装置と端末装置とを備える通信システムであって、
    前記サーバ装置は、
    端末装置に提供されて当該端末装置において利用される各電子クーポンについて、前記端末装置に提供された電子クーポンの未利用数と、前記端末装置に対して新たに提供可能な電子クーポンの残数を記憶する第1記憶部と、
    前記電子クーポンが提供された端末装置を識別する端末IDに、当該端末装置のユーザを識別する1のユーザIDを対応付けて記憶する第2記憶部と、
    前記電子クーポンを第1の端末装置に新たに提供する場合に、当該第1の端末装置の端末IDと当該第1の端末装置のユーザのユーザIDとを取得する取得部と、
    前記電子クーポンの残数から、前記第1の端末装置に提供される前記電子クーポンの数を減じるよう、前記第1記憶部を更新する第1更新部と、
    前記第1更新部により減じられた数の電子クーポンについて前記第1の端末装置が有するメモリ領域への書込処理を実行するよう、前記第1の端末装置に指示する書込指示部と、
    前記書込指示部により前記書込処理の実行が指示される場合、前記第2記憶部において前記取得した端末IDに前記取得したユーザIDを対応付ける書込部と、
    前記書込指示部の指示に応じた前記書込処理の成功が確定した後、前記減じられた数を前記電子クーポンの未利用数に設定するよう、前記第1記憶部を更新する第2更新部と
    を備え、
    前記端末装置は、
    前記書込指示部の指示に従った前記書込処理により前記未利用数の電子クーポンを前記メモリ領域に書き込み、当該書込処理を終了したことを前記サーバ装置に通知する
    ことを特徴とする通信システム。
  20. 前記第1記憶部は、端末装置が有するメモリ領域への書込処理の成功が確定した電子クーポンの未利用数を、端末装置に提供された電子クーポンの未利用数として記憶し、
    前記第2更新部は、前記書込指示部の指示に応じた前記書込処理により他の電子クーポンに前記電子クーポンが上書きされた場合、当該他の電子クーポンの未利用数を当該他の電子クーポンの残数に加算して、当該未利用数をクリアするよう、前記第1記憶部を更新することを特徴とする請求項19に記載の通信システム。
  21. 端末装置に提供されて当該端末装置において利用される各電子クーポンについて、前記端末装置に提供された電子クーポンの未利用数と、前記端末装置に対して新たに提供可能な電子クーポンの残数を記憶する第1記憶部と、
    前記電子クーポンが提供された端末装置を識別する端末IDに、当該端末装置のユーザを識別する1のユーザIDを対応付けて記憶する第2記憶部と
    を備えるコンピュータに、
    前記電子クーポンを第1の端末装置に新たに提供する場合に、当該第1の端末装置の端末IDと当該第1の端末装置のユーザのユーザIDとを取得する取得ステップと、
    前記電子クーポンの残数から、前記第1の端末装置に提供される前記電子クーポンの数を減じるよう、前記第1記憶部を更新する第1更新ステップと、
    前記第1更新ステップにおいて減じられた数の電子クーポンについて前記第1の端末装置が有するメモリ領域への書込処理を実行するよう、前記第1の端末装置に指示する書込指示ステップと、
    前記書込指示ステップにおいて前記書込処理の実行が指示される場合、前記第2記憶部において前記取得した端末IDに前記取得したユーザIDを対応付ける書込ステップと、
    前記書込指示ステップにおける指示に応じた前記書込処理の成功が確定した後、前記減じられた数を前記電子クーポンの未利用数に設定するよう、前記第1記憶部を更新する第2更新ステップと
    を実行させるためのプログラム。
  22. 前記書込指示ステップは、前記第2記憶部において、前記取得ステップで取得した端末IDに前記取得ステップで取得したユーザIDと異なるユーザIDが対応付けられていない場合、又は、前記取得した端末IDに前記取得したユーザIDと異なるユーザIDが対応付けられている場合に予め決められた条件を満たすときには、前記指示を行うことを特徴とする請求項21に記載のプログラム。
JP2013536308A 2011-09-30 2012-09-25 サーバ装置、クーポン管理方法、通信システム及びプログラム Expired - Fee Related JP5661191B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013536308A JP5661191B2 (ja) 2011-09-30 2012-09-25 サーバ装置、クーポン管理方法、通信システム及びプログラム

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2011218630 2011-09-30
JP2011218630 2011-09-30
JP2012054658 2012-03-12
JP2012054658 2012-03-12
JP2013536308A JP5661191B2 (ja) 2011-09-30 2012-09-25 サーバ装置、クーポン管理方法、通信システム及びプログラム
PCT/JP2012/074597 WO2013047535A1 (ja) 2011-09-30 2012-09-25 サーバ装置、クーポン管理方法、通信システム及びプログラム

Publications (2)

Publication Number Publication Date
JP5661191B2 JP5661191B2 (ja) 2015-01-28
JPWO2013047535A1 true JPWO2013047535A1 (ja) 2015-03-26

Family

ID=47995567

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013536308A Expired - Fee Related JP5661191B2 (ja) 2011-09-30 2012-09-25 サーバ装置、クーポン管理方法、通信システム及びプログラム

Country Status (2)

Country Link
JP (1) JP5661191B2 (ja)
WO (1) WO2013047535A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7254995B1 (ja) 2022-05-12 2023-04-10 Kddi株式会社 データ処理装置、データ処理システム、データ処理方法及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4738110B2 (ja) * 2005-09-08 2011-08-03 東芝テック株式会社 販売促進システム、販売促進方法および販売促進プログラム
JP5050581B2 (ja) * 2007-03-12 2012-10-17 大日本印刷株式会社 非接触icチップに記憶された電子クーポンを利用する方法、サーバおよびコンピュータプログラム
JP2009169766A (ja) * 2008-01-17 2009-07-30 Fuji Electric Holdings Co Ltd 電子クーポンシステム、そのサーバ、クーポン発行端末、クーポン利用・回収端末、プログラム

Also Published As

Publication number Publication date
JP5661191B2 (ja) 2015-01-28
WO2013047535A1 (ja) 2013-04-04

Similar Documents

Publication Publication Date Title
US10789578B2 (en) Network system, and server apparatus, server apparatus control method, and computer readable storage medium for use in same
JP5664378B2 (ja) 仮想ポイントカードシステム、仮想ポイントカードの管理方法、ポイントカード管理端末、携帯端末、ポイントカード管理プログラム、及びポイントカード利用プログラム
JP6655147B2 (ja) 決済システム
JP6849444B2 (ja) 認証装置、認証システム、認証方法及びプログラム
JP2019067432A (ja) 認証支援装置、認証支援方法、およびプログラム
JP5714712B2 (ja) サーバ装置、クーポン管理方法及び通信システム
JP2011209861A (ja) 取引方法及び取引システム
US9331964B2 (en) System, method, and apparatus for using a virtual bucket to transfer electronic data
WO2014155664A1 (ja) Id管理装置、id管理方法、およびid管理プログラム
JP5731883B2 (ja) 端末設置システム及び端末設置方法
KR101672324B1 (ko) 사용자의 간편한 복합 결제를 지원하는 모바일 결제 서비스 제공 시스템 및 방법
JP2021082359A (ja) 認証装置、認証システム、認証方法及びプログラム
JP2016181171A (ja) 情報処理装置、システム、方法およびプログラム
JPWO2015198874A1 (ja) 薬歴情報管理装置および方法、登録端末装置および方法、並びにプログラム
JP5661191B2 (ja) サーバ装置、クーポン管理方法、通信システム及びプログラム
JP6781483B2 (ja) 料金決済システム
JP2021077336A (ja) 顧客情報管理サーバ及び顧客情報の管理方法
JP2006209183A (ja) 名刺情報管理サーバと名刺情報管理端末と名刺情報管理プログラムと記録媒体と名刺情報管理方法
JP4800126B2 (ja) 属性情報検証方法、失効情報生成装置、サービス提供元装置、及び属性情報検証システム
JP5941865B2 (ja) サーバ装置、電子クーポン管理方法、通信システム及びプログラム
JP7484594B2 (ja) 顧客情報管理サーバ、顧客情報管理方法、及びプログラム
KR101705404B1 (ko) 카드 접촉을 통한 카드 사용 등록 시스템 및 이의 실행 방법
JP7402294B1 (ja) 情報処理システム、情報処理方法、及び情報処理プログラム
JP5686865B2 (ja) サーバ、サービス情報送信方法、及びプログラム
JP2022089435A (ja) 通信制御装置、通信制御システム、通信制御方法、及び、通信制御プログラム

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141111

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141202

R150 Certificate of patent or registration of utility model

Ref document number: 5661191

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees