情報処理システム
【課題】クライアントで実行された一つの処理結果をサーバが重複して受け入れないようにすることのできる情報処理システムを提供する。
【解決手段】サーバ2が、処理結果識別情報をクライアント3に送信するとともに、当該送信する処理結果識別情報を送信済み識別情報として記録し、クライアント3が、サーバ2から処理結果識別情報を受信して記録し、当該受信した処理結果識別情報を受信した状態で、サーバ2との通信接続の状態に関わらず所定処理を実行して実行結果を示す処理結果情報を記録し、記録された処理結果情報を処理結果識別情報とともにサーバ2に送信し、サーバ2が、受信した処理結果識別情報が送信済み識別情報として記録されている場合に受信した処理結果情報の受け入れ処理を行うとともに、当該送信済み識別情報を無効化する情報処理システムである。
【解決手段】サーバ2が、処理結果識別情報をクライアント3に送信するとともに、当該送信する処理結果識別情報を送信済み識別情報として記録し、クライアント3が、サーバ2から処理結果識別情報を受信して記録し、当該受信した処理結果識別情報を受信した状態で、サーバ2との通信接続の状態に関わらず所定処理を実行して実行結果を示す処理結果情報を記録し、記録された処理結果情報を処理結果識別情報とともにサーバ2に送信し、サーバ2が、受信した処理結果識別情報が送信済み識別情報として記録されている場合に受信した処理結果情報の受け入れ処理を行うとともに、当該送信済み識別情報を無効化する情報処理システムである。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クライアントが実行した処理の結果をサーバで管理する情報処理システム、当該情報処理システムを構成するクライアント及びサーバ、情報処理方法、プログラム、並びに情報記憶媒体に関する。
【背景技術】
【0002】
クライアントとサーバとの間で処理を分散して実行するクライアント/サーバ型の情報処理システムが知られている。このような情報処理システムの利用例としては、複数のクライアントがそれぞれ所定の処理を実行して、その処理結果をサーバに送信し、サーバが各クライアントから送信された処理結果を記録するなどして、サーバ側で処理結果の一元管理を行う例が挙げられる。
【発明の開示】
【発明が解決しようとする課題】
【0003】
上記従来例の技術においては、クライアントとサーバとがネットワークを介して通信接続された状態が常に維持されることを前提としている。しかしながら、特にクライアント側での処理が長時間にわたったり、複数回に分けて実行されたりする場合など、クライアントが実行する処理の内容によっては、通信接続が常時維持されないこともあり得る。このような場合、クライアントは、所定処理を実行して得られる処理結果を一時的に記録しておき、サーバとの間で通信接続が確立された状態になったときに、記録されている処理結果を送信することとなる。この場合において、例えば利用者の不正な操作や、クライアントとサーバとの間の通信障害などに起因して、記録された処理結果をクライアントが複数回繰り返してサーバに対して送信してしまうと、サーバがクライアントの一つの処理結果を重複して受け入れてしまうことが起こり得る。
【0004】
本発明は上記実情に鑑みてなされたものであって、その目的の一つは、クライアントが実行する処理の結果をサーバで管理する場合に、サーバが一つの処理結果を重複して受け入れないようにすることのできる情報処理システム、クライアント、サーバ、情報処理方法、プログラム並びに情報記憶媒体を提供することにある。
【課題を解決するための手段】
【0005】
上記課題を解決するための本発明に係る情報処理システムは、互いに通信接続可能なクライアントとサーバとを含む情報処理システムであって、前記サーバは、処理結果識別情報を前記クライアントに送信するとともに、当該送信する処理結果識別情報を送信済み識別情報として記録する処理結果識別情報送信手段と、前記クライアントから、前記クライアントが所定処理を実行した結果を示す処理結果情報を、処理結果識別情報とともに受信する処理結果情報受信手段と、前記クライアントから受信した処理結果識別情報が前記送信済み識別情報として記録されている場合に、当該処理結果識別情報とともに受信した前記処理結果情報の受け入れ処理を行うとともに、当該送信済み識別情報を無効化する処理結果情報受け入れ手段と、を含み、前記クライアントは、前記サーバから処理結果識別情報を受信し、当該受信した処理結果識別情報を記録する処理結果識別情報受信手段と、前記受信した処理結果識別情報を記録した状態において、前記サーバとの通信接続の状態に関わらず、前記所定処理を実行し、実行結果を示す処理結果情報を記録する処理実行手段と、前記記録された処理結果情報を、前記記録された処理結果識別情報とともに前記サーバに送信する処理結果情報送信手段と、を含むことを特徴とする。
【0006】
また、上記情報処理システムにおいて、前記処理結果識別情報送信手段は、前記処理結果情報受信手段が前記クライアントから処理結果情報を受信した場合に、前記処理結果情報受け入れ手段が当該受信した処理結果情報の受け入れ処理を行うか否かに関わらず、新たな処理結果識別情報を前記クライアントに送信し、前記処理結果識別情報受信手段は、前記新たな処理結果識別情報を受信した場合に、過去に記録した処理結果識別情報を無効化して、当該受信した新たな処理結果識別情報を記録することとしてもよい。
【0007】
さらに、上記情報処理システムにおいて、前記処理結果識別情報受信手段は、前記受信した新たな処理結果識別情報を記録するとともに、前記記録されている処理結果情報を初期化し、前記処理実行手段は、前記所定処理を実行するごとに、前記記録されている処理結果情報を、当該記録されている処理結果情報と、新たな実行結果と、に応じた情報により更新することとしてもよい。
【0008】
さらに、上記情報処理システムにおいて、前記処理結果情報受け入れ手段は、前記処理結果情報の受け入れ処理として、前記サーバに記録されている前記所定処理の処理結果に関する情報を、当該情報と、前記受信した処理結果情報と、に応じた情報により更新する処理を実行することとしてもよい。
【0009】
さらに、上記情報処理システムにおいて、前記処理結果情報は、数値情報であって、前記処理結果情報受け入れ手段は、前記処理結果情報の受け入れ処理として、前記サーバに記録されている数値情報に、前記受信した処理結果情報により示される数値を加算することにより、当該サーバに記録されている数値情報を更新する処理を実行し、前記処理結果識別情報受信手段は、前記受信した新たな処理結果識別情報を記録するとともに、前記記録されている処理結果情報を0に初期化し、前記処理実行手段は、前記所定処理を実行するごとに、前記記録されている処理結果情報により示される数値に、新たな実行結果に応じた数値を加算することにより、前記記録されている処理結果情報を更新することとしてもよい。
【0010】
また、上記情報処理システムにおいて、前記処理結果識別情報送信手段は、前記処理結果識別情報を、当該処理結果識別情報の送信対象となるユーザと関連付けて前記送信済み識別情報として記録し、前記処理結果情報受信手段は、ユーザを特定するユーザ関連情報とともに前記処理結果情報を受信し、前記処理結果情報受け入れ手段は、前記クライアントから受信した処理結果識別情報が、当該処理結果識別情報とともに受信したユーザ関連情報により特定されるユーザと関連付けて前記送信済み識別情報として記録されている場合に、当該処理結果識別情報とともに受信した前記処理結果情報の受け入れ処理を行うとともに、当該ユーザと関連付けて記録されている前記送信済み識別情報を無効化し、前記処理結果識別情報受信手段は、前記サーバから受信した処理結果識別情報を、当該処理結果識別情報の送信対象となったユーザと関連付けて記録し、前記処理実行手段は、前記処理結果情報を、前記所定処理の対象となるユーザと関連付けて記録し、前記処理結果情報送信手段は、前記記録された処理結果情報を、当該処理結果情報が関連付けられているユーザに関連付けて記録された前記処理結果識別情報、及び当該ユーザを特定するユーザ関連情報とともに、前記サーバに送信することとしてもよい。
【0011】
また、本発明に係るサーバは、クライアントと通信接続可能なサーバであって、前記クライアントによる所定処理の実行に先立って、処理結果識別情報を前記クライアントに送信するとともに、当該送信する処理結果識別情報を送信済み識別情報として記録する処理結果識別情報送信手段と、前記クライアントから、前記所定処理を実行した結果を示す処理結果情報を、処理結果識別情報とともに受信する処理結果情報受信手段と、前記クライアントから受信した処理結果識別情報が前記送信済み識別情報として記録されている場合に、当該処理結果識別情報とともに受信した前記処理結果情報の受け入れ処理を行うとともに、当該送信済み識別情報を無効化する処理結果情報受け入れ手段と、を含むことを特徴とする。
【0012】
また、本発明に係るクライアントは、サーバと通信接続可能なクライアントであって、前記サーバから処理結果識別情報を受信し、当該受信した処理結果識別情報を記録する処理結果識別情報受信手段と、前記受信した処理結果識別情報を記録した状態において、前記サーバとの通信接続の状態に関わらず、所定処理を実行し、実行結果を示す処理結果情報を記録する処理実行手段と、前記記録された処理結果情報を、前記記録された処理結果識別情報とともに前記サーバに送信する処理結果情報送信手段と、を含み、前記送信した処理結果識別情報が、前記サーバによる前記送信した処理結果情報の受け入れ処理を行うか否かの判定に用いられることを特徴とする。
【0013】
また、本発明に係る情報処理方法は、クライアントと通信接続可能なコンピュータを用いた情報処理方法であって、前記クライアントによる所定処理の実行に先立って、処理結果識別情報を前記クライアントに送信するとともに、当該送信する処理結果識別情報を送信済み識別情報として記録するステップと、前記クライアントから、前記所定処理を実行した結果を示す処理結果情報を、処理結果識別情報とともに受信するステップと、前記クライアントから受信した処理結果識別情報が前記送信済み識別情報として記録されている場合に、当該処理結果識別情報とともに受信した前記処理結果情報の受け入れ処理を行うとともに、当該送信済み識別情報を無効化するステップと、を含むことを特徴とする。
【0014】
また、本発明に係る別の情報処理方法は、サーバと通信接続可能なコンピュータを用いた情報処理方法であって、前記サーバから処理結果識別情報を受信し、当該受信した処理結果識別情報を記録するステップと、前記受信した処理結果識別情報を記録した状態において、前記サーバとの通信接続の状態に関わらず、所定処理を実行し、実行結果を示す処理結果情報を記録するステップと、前記記録された処理結果情報を、前記記録された処理結果識別情報とともに前記サーバに送信するステップと、を含み、前記送信した処理結果識別情報が、前記サーバによる前記送信した処理結果情報の受け入れ処理を行うか否かの判定に用いられることを特徴とする。
【0015】
また、本発明に係るプログラムは、サーバと通信接続可能なコンピュータを、前記サーバから処理結果識別情報を受信し、当該受信した処理結果識別情報を記録する処理結果識別情報受信手段、前記受信した処理結果識別情報を記録した状態において、前記サーバとの通信接続の状態に関わらず、所定処理を実行し、実行結果を示す処理結果情報を記録する処理実行手段、及び前記記録された処理結果情報を、前記記録された処理結果識別情報とともに前記サーバに送信する処理結果情報送信手段、として機能させ、前記送信した処理結果識別情報が、前記サーバによる前記送信した処理結果情報の受け入れ処理を行うか否かの判定に用いられることを特徴とする。このプログラムは、コンピュータ読み取り可能な情報記憶媒体に記憶されてよい。
【発明を実施するための最良の形態】
【0016】
以下、本発明の一実施形態について、図面を参照しながら説明する。
【0017】
本発明の一実施形態に係る情報処理システム1は、図1に示すように、サーバ2と、複数のクライアント3と、認証装置4と、を含んで構成されている。サーバ2と各クライアント3とは、インターネット等の通信ネットワークを介して相互に通信接続可能になっている。また、サーバ2及び各クライアント3は、いずれも認証装置4と相互に通信接続可能になっている。
【0018】
本実施形態では、情報処理システム1は、ポイント管理システムとして動作することとする。すなわち、各クライアント3は、当該情報処理システム1を利用するユーザに関連付けてポイントを発生させる処理を実行し、サーバ2は、各クライアント3から送信される情報に基づいて、各ユーザに対してポイントを付与するとともに、各ユーザに付与されたポイントを一元管理する。ここで、ポイントは、各クライアント3がユーザの指示に応じた処理を実行することで生成される数値情報であって、例えばゲームの成績を示す得点などであってもよいし、各種の処理の実行時間や処理量などに関する数値情報であってもよい。
【0019】
サーバ2は、本実施形態に係る情報処理システム1を利用する各ユーザに対して付与されるポイントを管理する情報処理装置である。サーバ2は、サーバコンピュータ等であって、図1に示すように、制御部11と、記憶部12と、通信部13と、を含んで構成されている。
【0020】
制御部11は、例えばCPU等であって、記憶部12に記憶されているプログラムに従って各種の情報処理を行う。本実施形態において制御部11が実行する処理の具体例については、後述する。
【0021】
記憶部12は、RAMやROM等のメモリ素子や、ハードディスク等を含んで構成され、制御部11によって実行されるプログラムを記憶する。また、記憶部12は、制御部11のワークメモリとしても動作する。
【0022】
通信部13は、例えばLANカード等の通信インタフェースであって、制御部11からの指示に従って、通信ネットワークを介して情報を送信する。また、通信部13は、通信ネットワークを介して到来する情報を受信して制御部11に出力する。
【0023】
各クライアント3は、本実施形態に係る情報処理システム1を利用するユーザが使用する情報処理装置である。クライアント3は、例えば家庭用ゲーム機やパーソナルコンピュータなどであって、図1に示すように、制御部21と、記憶部22と、通信部23と、を含んで構成されている。制御部21、記憶部22、及び通信部23は、それぞれ制御部11、記憶部12、及び通信部13と同様の構成であってよい。なお、各ユーザは、一人で複数のクライアント3を使用してもよい。また、一つのクライアント3を複数のユーザが共用してもよい。
【0024】
認証装置4は、例えばサーバコンピュータ等であって、クライアント3からの要求に応じて、当該クライアント3を使用するユーザを認証する認証処理を行う。また、認証装置4は、シングルサインオンなどの技術を用いて、クライアント3とサーバ2との間の通信接続の制御を行う。
【0025】
具体的に、本実施形態では、サーバ2とクライアント3とが通信接続を確立して、相互にデータ通信を行う場合には、まずクライアント3を使用するユーザが認証装置4の認証を受けることとする。この場合、クライアント3は、ユーザの指示操作に従って、パスワード等の当該ユーザを認証するための認証情報を認証装置4に送信する。認証装置4は、送信された認証情報を自身が記憶するデータベース内の情報と照合してユーザの認証を行い、認証結果とともに、認証状態識別情報(セッション識別情報)を返信する。クライアント3は、サーバ2との間で通信接続(セッション)を開始する際に、この認証状態識別情報を併せて送信することとする。
【0026】
クライアント3から認証状態識別情報を受信したサーバ2は、受信した認証状態識別情報を認証装置4に送信して問い合わせを行うことにより、クライアント3を使用中のユーザが認証装置4による認証を受けた正規のユーザであることを確認する。また、この問い合わせに対する返信として当該ユーザを識別するためのユーザ識別情報(ユーザID)を受信することとすれば、クライアント3とユーザとが一対一に対応していない場合でも、サーバ2はクライアント3から受信した情報の送信を指示しているユーザを特定できる。すなわち、クライアント3から送信される認証状態識別情報が、情報の送信を指示しているユーザを特定するためのユーザ関連情報として機能することとなる。ここで、サーバ2が認証装置4に問い合わせを行った際に、認証装置4において認証状態識別情報が既に無効となっていれば、サーバ2はクライアント3から受信した情報を受け入れずに、クライアント3からの接続が許可されない旨を返信する。なお、認証装置4は、例えばクライアント3からの明示の指示や、所定時間の経過などに応じて、保持している認証状態識別情報を無効にすることとする。こうすれば、認証装置4によって認証状態識別情報が保持されている間だけ、クライアント3はサーバ2との間で通信接続を確立して、相互にデータ通信を行うことができる。なお、以下では、認証装置4に認証状態識別情報が有効に保持されて、サーバ2とクライアント3との間の通信接続が確立された状態を、サインイン状態という。また、このとき認証装置4による認証を受けたユーザ(すなわち、サインインしたユーザ)を、認証ユーザという。
【0027】
以下、上記構成を有する情報処理システム1が実現する機能の具体例について、説明する。情報処理システム1は、機能的に、図2に示すように、処理結果識別情報送信部31と、処理結果識別情報受信部32と、処理実行部33と、処理結果情報送信部34と、処理結果情報受信部35と、処理結果受け入れ部36と、を含んで構成される。これらの機能のうち、処理結果識別情報送信部31、処理結果情報受信部35、及び処理結果受け入れ部36は、サーバ2の制御部11が記憶部12に格納されたプログラムを実行することにより、実現される。また、処理結果識別情報受信部32、処理実行部33、及び処理結果情報送信部34は、クライアント3の制御部21が記憶部22に格納されたプログラムを実行することにより、実現される。なお、これらのプログラムは、例えば光ディスク等のコンピュータ読み取り可能な各種の情報記憶媒体に格納されて提供されてもよいし、インターネット等の通信ネットワークを介して提供されてもよい。
【0028】
サーバ2の処理結果識別情報送信部31は、所定のタイミングで、処理結果識別情報Ipを発行する。そして、発行した処理結果識別情報Ipをクライアント3に対して送信するとともに、当該送信する処理結果識別情報Ipを送信済み識別情報Isとして記録する。具体例として、処理結果識別情報送信部31は、クライアント3から新たな処理結果識別情報Ipの発行要求を受信した場合、及び後述する処理結果情報受信部35が処理結果情報Dpを受信した場合に、処理結果識別情報Ipを発行する。
【0029】
処理結果識別情報Ipは、処理結果受け入れ部36による処理結果の受け入れ処理の際に、受け入れ対象となる処理結果情報Dpを識別するための情報であって、一つの処理結果情報Dpの重複した受け入れを防止するために用いられる。この処理結果識別情報Ipは、例えばランダムに生成された数値や文字列などであってよい。この場合、処理結果識別情報送信部31は、所定の乱数生成関数により、処理結果識別情報Ipを生成する。このように処理結果識別情報Ipとして乱数を用いることで、処理結果識別情報送信部31が発行する処理結果識別情報Ipを、不正な利用者に推測されにくくすることができる。なお、このとき生成する乱数の取り得る値の範囲(数値や文字列の桁数)を、ポイント管理対象となるユーザ数や接続されるクライアント3の数に応じて十分大きな範囲とすることにより、発行される処理結果識別情報Ipが重複してしまうことを防ぐことができる。あるいは、処理結果識別情報送信部31は、新たな処理結果識別情報Ipを発行する際に、既に発行されて送信済み識別情報Isとして記録されている処理結果識別情報Ipとは異なる値を持つように、新たな処理結果識別情報Ipを生成してもよい。
【0030】
処理結果識別情報送信部31がクライアント3に対して送信する処理結果識別情報Ipは、送信済み識別情報Isとして、記憶部12に記録される。ここで、処理結果識別情報送信部31による処理結果識別情報Ipの送信は、認証ユーザがサインインしてサーバ2−クライアント3間の通信接続が確立した状態で行われる。そこで、本実施形態では、処理結果識別情報送信部31は、この認証ユーザを処理結果識別情報Ipの送信対象となるユーザとして、送信済み識別情報Isを、認証ユーザのユーザIDと関連付けて記録することとする。例えば処理結果識別情報送信部31は、図3に例示するようなテーブルを記憶部12内に保持し、新たな処理結果識別情報Ipを発行した際には、当該処理結果識別情報Ipを送信済み識別情報Isとしてこのテーブルに追加する。
【0031】
なお、処理結果識別情報送信部31は、一人のユーザに関連付けて、複数の処理結果識別情報Ipを発行してもよい。具体的に、例えば前述したように一人のユーザが複数のクライアント3を使用している場合、この複数のクライアント3のそれぞれが独立に、当該ユーザが認証ユーザとしてサインインした状態で処理結果識別情報Ipの発行要求をサーバ2に対して送信することがある。この場合、送信処理結果識別情報送信部31は、これら発行要求のそれぞれに対して、互いに異なる処理結果識別情報Ipを送信し、これらの処理結果識別情報Ipを同じユーザIDと関連付けて送信済み識別情報Isとして記録する。
【0032】
クライアント3の処理結果識別情報受信部32は、所定処理(以下、ポイント発生処理Pという)の実行に先立って、サーバ2の処理結果識別情報送信部31が送信する処理結果識別情報Ipを受信する。そして、受信した処理結果識別情報Ipを記憶部22に記録する。なお、本実施形態では、処理結果識別情報受信部32は、処理結果識別情報Ipを受信した際の認証ユーザ、すなわち処理結果識別情報送信部31が処理結果識別情報Ipの送信対象としたユーザと関連付けて、受信した処理結果識別情報Ipを記録することとする。
【0033】
具体的に、例えば処理結果識別情報受信部32は、所定のタイミングにおいて、当該クライアント3を使用中のユーザに関連付けて処理結果識別情報Ipが記憶部22に記録されているか否か判定する。そして、記録されていない場合には、処理結果識別情報Ipの発行要求をサーバ2に対して送信する。処理結果識別情報受信部32は、この発行要求に応じて処理結果識別情報送信部31が送信する処理結果識別情報Ipを受信し、当該ユーザと関連付けて記憶部22に記録する。本実施形態では、処理結果識別情報受信部32は、クライアント3を使用するユーザごとに、それぞれ別個のデータファイルFを生成し、当該データファイルF内に処理結果識別情報Ipを書き込むこととする。こうすれば、クライアント3は、当該クライアント3を使用するユーザが複数いる場合に、ユーザごとに処理結果識別情報Ipを記録できる。なお、ここでは、データファイルFは、ユーザの指示に応じてクライアント3が実行する複写や削除などのデータ操作の単位となるデータの集合を示している。
【0034】
ここで、処理結果識別情報受信部32が発行要求を送信するか否か判定する所定のタイミングとしては、例えばクライアント3がユーザからの指示操作などに応じて、ポイント発生処理Pを実行しようとするタイミングが挙げられる。すなわち、処理結果識別情報受信部32は、ポイント発生処理Pが実行される場合に、当該ポイント発生処理Pの実行に先立って、処理結果識別情報Ipの発行要求を送信する。また、処理結果識別情報受信部32は、ユーザがクライアント3の使用を開始したタイミングで、当該ユーザについて発行要求を送信するか否か判定してもよい。さらに、所定時間おきに、クライアント3を使用中のユーザについて発行要求を送信するか否か判定してもよい。
【0035】
クライアント3の処理実行部33は、ポイント発生処理Pを実行して、その実行結果を示す処理結果情報Dpを記録する。本実施形態では、このポイント発生処理Pは、サーバ2による管理対象となるポイントを発生させ、処理結果情報Dpとして記録する処理であって、例えばコンピュータゲームなど、各種のアプリケーションプログラムによって実現される処理であってよい。具体例として、処理実行部33は、例えばゲーム処理を実行して、その成績などを示す数値をポイントとして発生させる。あるいは、処理実行部33は、所定のプロセスなどが終了するタイミングでポイント発生処理Pを実行し、当該プロセスなどの実行時間や実行結果に関する数値情報をポイントとして発生させてもよい。なお、処理実行部33は、当該ポイント発生処理Pの対象となるユーザ(例えば当該ポイント発生処理Pの実行を指示したユーザや、当該ポイント発生処理P実行の際にクライアント3を使用中のユーザなど)と関連付けて、発生させたポイントを示す数値情報を処理結果情報Dpとして記録する。
【0036】
ここで、処理実行部33は、クライアント3とサーバ2との間の通信接続の状態に関わらず、ポイント発生処理Pを実行してよい。すなわち、処理実行部33は、クライアント3を使用するユーザが認証装置4による認証を受けておらず、サインイン状態にない場合でも、当該ユーザを対象とするポイント発生処理Pを実行することができる。ただし、前述したように処理結果識別情報受信部32が処理結果識別情報Ipを受信し、当該ユーザに関連付けて記録した状態でポイント発生処理Pを実行する必要がある。このように、ポイント発生処理Pの実行にユーザの認証操作が不要となることで、例えばポイント発生処理Pがユーザの操作を必要としない処理の場合、ユーザの操作を受け付けずに処理実行部33は所定のタイミングでポイント発生処理Pを自動実行できる。
【0037】
本実施形態では、処理実行部33は、ポイント発生処理Pの実行によって、ポイントを示す処理結果情報Dpを、当該ポイント発生処理Pの対象となったユーザに関連付けて処理結果識別情報受信部32が処理結果識別情報Ipを格納したデータファイルF内に記録することとする。これにより、クライアント3を使用するユーザごとに、処理結果情報Dpと処理結果識別情報Ipとが互いに関連付けられて同じデータファイルF内に記録される。こうすれば、同じユーザに関連付けられた処理結果識別情報Ipと処理結果情報Dpとを一体的に取り扱うことができ、不正な意図を持ったユーザが、処理結果識別情報Ipとは別に処理結果情報Dpだけを他の記憶領域に複写しておくなどの操作を実行しにくくなる。
【0038】
なお、処理実行部33は、処理結果情報送信部34による処理結果情報Dpの送信処理を実行していない状態で、1又は複数のユーザのそれぞれを対象とするポイント発生処理Pを、複数回実行してもよい。この場合、処理実行部33は、ポイント発生処理Pを実行するごとに、記憶部22に記録されている処理結果情報Dpを、当該記録されている処理結果情報Dpと、新たに実行したポイント発生処理Pの実行結果と、に応じた情報により更新する。これにより、各ユーザに関連付けられた処理結果情報Dpは、当該ユーザについて処理結果識別情報Ipを受信した時点を基準として、後述する処理結果情報送信部34による処理結果情報Dpの送信の時点までに複数回実行されたポイント発生処理Pの実行結果を累積した情報となる。ここでは具体的に、処理実行部33は、記憶部22に記録されている処理結果情報Dpにより示されるポイントに対して、新たなポイント発生処理Pの実行結果に応じて発生したポイントを加算した値により、処理結果情報Dpを更新する。これにより、処理結果情報Dpは、複数回のポイント発生処理Pによって発生したポイントの累計値となる。
【0039】
クライアント3の処理結果情報送信部34は、クライアント3がサーバ2と通信接続された状態で、処理実行部33によって記録された処理結果情報Dpを、処理結果識別情報受信部32によって記録された処理結果識別情報Ipとともに、サーバ2に対して送信する。このとき、処理結果情報送信部34は、同じユーザに関連付けて記録されている処理結果情報Dpと処理結果識別情報Ipの組を、当該ユーザを特定するユーザ関連情報(例えば当該ユーザのサインインにより認証装置4から送信された認証状態識別情報)とともに、サーバ2に送信する。
【0040】
具体的に、処理結果情報送信部34は、所定のタイミングで、クライアント3とサーバ2との間の通信接続が確立されているか否か判定し、確立されている場合(すなわち、サインイン状態の場合)に、認証ユーザに関連付けて記録されている処理結果情報Dpと処理結果識別情報Ipの組を、サーバ2に対して送信する。なお、このとき、処理結果情報送信部34は、認証装置4より受信した認証状態識別情報も併せて送信することとする。
【0041】
サーバ2の処理結果情報受信部35は、クライアント3の処理結果情報送信部34が送信する処理結果情報Dpを、処理結果識別情報Ip及びユーザを特定するためのユーザ関連情報とともに受信する。
【0042】
サーバ2の処理結果受け入れ部36は、処理結果情報受信部35がクライアント3から処理結果情報Dpと処理結果識別情報Ipの組を受信した場合に、受信した処理結果識別情報Ipが送信済み識別情報Isとして記憶部12内に記録されているか否かの判定を行う。このとき、処理結果受け入れ部36は、単に処理結果識別情報Ipが送信済み識別情報Isとして記録されているか否かだけではなく、処理結果情報受信部35が受信したユーザ関連情報により特定されるユーザと関連付けて送信済み識別情報Isとして記録されているか否かを判定することとする。そして、判定の結果、受信した処理結果識別情報Ipが有効な送信済み識別情報Isとして記録されていると判定される場合に、処理結果情報受信部35が受信した処理結果情報Dpの受け入れ処理を行うとともに、記録されている送信済み識別情報Isを無効化する処理を行う。一方、判定の結果、受信した処理結果識別情報Ipが有効な送信済み識別情報Isとして記録されていないと判定される場合には、受信した処理結果情報Dpの受け入れ処理を行わずに、処理を終了する。
【0043】
ここで、サーバ2は、ポイント発生処理Pの処理結果に関する情報(以下、サーバ管理情報という)を記憶部12に記憶しているものとする。そして、処理結果情報Dpの受け入れ処理とは、処理結果情報Dpの示す処理結果を受け入れて、その内容を反映してサーバ管理情報を更新する処理である。具体例として、処理結果受け入れ部36は、受け入れ処理として、ユーザ関連情報により特定されるユーザに関連付けて記録されているサーバ管理情報を、当該サーバ管理情報と、新たに受信した処理結果情報Dpと、に応じた情報により更新する処理を実行する。これにより、サーバ管理情報は、ユーザごとに、複数回にわたってクライアント3から受け入れた処理結果情報Dpを累積した情報となる。この場合、クライアント3は、過去実行されたポイント発生処理Pの処理結果を継続して記憶し続ける必要はなく、サーバ2が処理結果情報Dpの受け入れ処理を前回実行した時点以降のポイント発生処理Pの処理結果を示す差分情報だけを、処理結果情報Dpの送信を次に行う時点まで記憶しておけばよいことになる。
【0044】
具体的に、本実施形態では、サーバ2は、サーバ管理情報として、記憶部12内に処理結果管理データベース(DB)を記憶している。この処理結果管理データベースには、図4に例示するように、各ユーザのユーザIDと、当該ユーザに付与されたポイントと、を関連付ける情報が格納されている。処理結果受け入れ部36は、受け入れ処理として、処理結果管理DBにおいてポイント付与対象となったユーザに関連付けて記録されているポイントに対して、受信した処理結果情報Dpにより示されるポイントを加算する処理を行う。これにより、サーバ2で管理されているポイント情報に対して、クライアント3で実行されたポイント発生処理Pの処理結果が反映され、クライアント3のポイント発生処理Pによって発生したポイントがユーザに対して付与される。
【0045】
さらに、処理結果受け入れ部36は、送信済み識別情報Isを無効化する無効化処理を行う。具体的には、記憶部12内に記録されたテーブルから、送信済み識別情報Isを削除する。あるいは処理結果受け入れ部36は、当該送信済み識別情報Isに関連付けられたフラグ情報を、受け入れ処理を実行済みであることを示す値に更新することによって、当該送信済み識別情報Isを無効化してもよい。この無効化処理によって、それ以降に無効化された送信済み識別情報Isと同じ値の処理結果識別情報Ipを再び処理結果情報受信部35が受信したとしても、処理結果受け入れ部36は、処理結果情報Dpの受け入れ処理を行わない。これにより、サーバ2は、ユーザの不正な操作などによって一つの処理結果情報Dpを重複して受け入れてしまうことを防ぐことができる。
【0046】
なお、処理結果情報Dpの受け入れ処理と、当該処理結果情報Dpとともに受信した処理結果識別情報Ipを無効化する無効化処理と、は、併せて実行される。すなわち、例えばエラーの発生等により受け入れ処理と無効化処理のいずれか一方が失敗した場合には、他方の処理も一旦実行前の状態に戻し、例えば所定時間経過後に再度両方の処理を実行することとする。こうすれば、受け入れ処理と無効化処理の不整合を防ぐことができる。
【0047】
さらに、処理結果受け入れ部36による受け入れ処理及び無効化処理が実行されると、処理結果識別情報送信部31は、無効化された処理結果識別情報Ipの代わりに新たな処理結果識別情報Ipを発行し、発行した新たな処理結果識別情報Ipを送信済み識別情報Isとして記録する。また、この新たな処理結果識別情報Ipを、受け入れ処理の完了通知とともにクライアント3に対して送信する。
【0048】
これに応じて、クライアント3の処理結果識別情報受信部32は、既に記録されている処理結果識別情報Ipを無効化して、新たに受信した処理結果識別情報Ipを記憶部22に記録する。また、併せて処理結果識別情報受信部32は、この無効化された処理結果識別情報Ipと関連付けて記録されている処理結果情報Dpを初期化する処理を行う。具体例として、処理結果識別情報受信部32は、認証ユーザに関連付けて記録されている処理結果情報Dpにより示されるポイントを0にリセットするとともに、認証ユーザに関連付けて記録されている処理結果識別情報Ipを、新たに受信した処理結果識別情報Ipで上書きする。これにより、処理結果情報Dpが複数回実行されたポイント発生処理Pの実行結果を累積して得られる差分情報である場合に、処理結果情報Dpが有効な処理結果識別情報Ipを受信した以降のポイント発生処理Pの実行結果だけを反映するように制御できる。
【0049】
以下では、本実施の形態に係る情報処理システム1において、サーバ2及びクライアント3が実行する処理の流れの具体例について、説明する。
【0050】
まず、サーバ2及びクライアント3が実行する処理の流れの概要について、図5のフロー図に基づいて説明する。なお、具体的な処理の詳細については、サーバ2及びクライアント3のそれぞれについて、後述する。
【0051】
図5の上段は、クライアント3でポイント発生処理Pを実行してポイントを発生させる際に実行される処理の流れ(以下、ポイント発生時処理フローという)の一例を示している。同図に示すように、まずクライアント3は、処理結果識別情報Ipが記憶部22内に記録されているか否か判定する(S1)。S1で処理結果識別情報Ipが記録されていないと判定された場合、処理結果識別情報Ipの発行要求が、クライアント3からサーバ2に対して送信される(S2)。S2で送信された発行要求を受けて、サーバ2は、処理結果識別情報発行処理を実行する(S3)。この処理結果識別情報発行処理は、処理結果識別情報Ipを発行してクライアント3に送信するとともに、当該発行した処理結果識別情報Ipを送信済み識別情報Isとして記憶部12に記憶する一連の処理である。クライアント3は、この処理結果識別情報発行処理によりサーバ2から送信される処理結果識別情報Ipを受信する(S4)。S1で処理結果識別情報Ipが記録されていると判定した場合、又はS4で送信された処理結果識別情報Ipを記録した場合に、クライアント3はポイント発生処理Pを実行して、処理結果情報Dpを記録する(S5)。
【0052】
次に、図5の下段は、前述したポイント発生時処理フローにより発生したポイントをサーバ2の処理結果管理データベースに反映させることにより、ユーザにポイントを付与する際に実行される処理の流れ(以下、ポイント付与時処理フローという)の一例を示している。なお、このポイント付与時処理フローは、ポイント発生時処理フローが実行されるごとに実行される必要はなく、ポイント発生時処理フローが複数回実行された後に実行されてもよい。
【0053】
図5に示すように、ポイント付与時処理フローにおいては、まずクライアント3が、付与対象となるポイントを示す処理結果情報Dpが記録されているか否か判定する(S11)。S11で送信すべき処理結果情報Dpが記録されていないと判定されれば、クライアント3は処理を終了する。一方、S11で送信すべき処理結果情報Dpが記録されていると判定された場合、当該処理結果情報Dpが、処理結果識別情報Ipとともにクライアント3からサーバ2に対して送信される(S12)。S12で送信された情報を受信したサーバ2は、受信した処理結果識別情報Ipが送信済み識別情報Isとして記録されているか否かによって、受信した処理結果識別情報Dpを受け入れ可能か否か判定する(S13)。S13で受け入れ可能と判定した場合、サーバ2は、ポイント付与処理を実行する(S14)。このポイント付与処理は、処理結果情報Dpの受け入れ処理を実行して処理結果管理データベースを更新するとともに、当該処理結果情報Dpの重複受け入れを防止するためにS13で判定の対象となった送信済み識別情報Isを無効化する一連の処理である。
【0054】
S13で処理結果識別情報Dpの受け入れが不可能と判定された場合、及び受け入れ可能と判定されてS14の処理が実行された場合のいずれの場合においても、続いてサーバ2は、処理結果識別情報発行処理を実行する(S15)。この処理結果識別情報発行処理は、前述したS3の処理と同様のものである。これにより、S14のポイント付与処理が実行されたか否かを示す受け入れ結果情報とともに、新たにS15で発行された処理結果識別情報Ipがサーバ2からクライアント3に対して送信される(S16)。S16で送信された情報を受信したクライアント3は、処理結果初期化処理を実行する(S17)。この処理結果初期化処理は、S12で送信対象となった処理結果情報Dpを初期化するとともに、S12で送信対象となった処理結果識別情報IpをS16で受信した処理結果識別情報Ipにより更新する一連の処理である。
【0055】
ここで、図5のフロー中におけるサーバ2とクライアント3との間の通信が失敗した場合に、サーバ2及びクライアント3が実行する処理の一例について、説明する。まず、S2で送信された処理結果識別情報Ipの発行要求が通信エラーによってサーバ2に到達しなかった場合、処理結果識別情報発行処理(S3)は実行されず、クライアント3はS4で処理結果識別情報Ipを受信することができない。この場合、クライアント3はポイント発生処理P(S5)を実行せずに、例えば所定時間経過後にS1に戻って再度ポイント発生時処理フローを実行し、処理結果識別情報Ipの取得を試みる。これにより、クライアント3は、処理結果識別情報Ipが記録された状態でポイント発生処理Pを実行することができる。
【0056】
また、S4で送信された処理結果識別情報Ipが通信エラーによってクライアント3に到達しなかった場合も、クライアント3から見ればS2で通信エラーが生じた場合と同様に、S2の送信処理後、S4の処理結果識別情報Ipを受信できないことになる。そのため、S2で通信エラーが生じた場合と同様に、再度ポイント発生時処理フローを実行して、処理結果識別情報Ipの取得を試みる。ただし、S4で通信エラーが生じた場合には、サーバ2は処理結果識別情報発行処理(S3)を既に実行しており、通信エラーによりクライアント3に到達しなかった処理結果識別情報Ipを送信済み識別情報Isとして記録してしまっている。この記録された送信済み識別情報Isは、S12でクライアント3から送信される対象とはなり得ないため、ポイント付与処理(S13)によって無効化されずに、有効な送信済み識別情報Isとしてサーバ2に記憶され続けることになる。そこで、サーバ2は、例えば所定時間が経過するごとに、発行されてから所定時間以上経過している送信済み識別情報Isがないかを検索して、このような送信済み識別情報Isを無効化することとしてもよい。
【0057】
また、S12で通信エラーが生じた場合、クライアント3はS16で受け入れ結果情報を受信できない。この場合、クライアント3は、処理結果初期化処理(S17)を実行せずに、例えば所定時間経過後にS11に戻って再度ポイント付与時処理フローを実行し、処理結果情報Dpの送信を試みる。なお、このようにポイント付与に成功しない間も、クライアント3は有効な処理結果識別情報Ipを記憶しているので、ポイント発生時処理フローを実行して、新たな処理結果識別情報Ipの発行を受けることなくポイント発生処理Pを実行することができる。これにより、クライアント3は、サーバ2への処理結果情報Dp送信に成功しない間に発生したポイントを処理結果情報Dpに反映させ続けて、最終的に処理結果情報Dpのサーバ2への送信が可能になった状態で、ポイント付与時処理フローを実行し、発生したポイントをサーバ2の処理結果管理データベースに反映させることができる。
【0058】
また、S16で通信エラーが生じた場合、やはりクライアント3は処理結果初期化処理(S17)を実行せずに、S12で送信対象とした処理結果識別情報Ipを記憶し続ける。ところが、この場合には、サーバ2はポイント付与処理(S14)を実行しており、S12で送信された処理結果識別情報Ipを無効化してしまっている。そのため、S16で通信エラーが発生した後にポイント発生時処理フローが実行されると、クライアント3は有効な処理結果識別情報Ipを記憶していない状態でポイント発生処理Pを実行することとなる。しかし、この場合でも、通信エラー発生から所定時間経過後に再びポイント付与時処理フローを実行することにより、クライアント3は新たに有効な処理結果識別情報Ipの発行を受けることができる。なぜなら、図5のフローに示すように、サーバ2はポイント付与処理(S14)により処理結果情報Dpの受け入れ処理が行われたか否かに関わらず、処理結果識別情報発行処理(S15)を実行して新たな処理結果識別情報Ipを発行し、クライアント3に対して送信するからである。
【0059】
なお、S12で処理結果情報Dpを送信した後、所定時間内にS16により新たな処理結果識別情報Ipを受信できない事象が発生した状態で、その後にポイント発生時処理フローを実行する場合、クライアント3は、S1の処理において、処理結果識別情報Ipが記録されているにも関わらず、処理結果識別情報Ipの発行要求をサーバ2に対して送信することとしてもよい。こうすれば、クライアント3は、新たに発生したポイントの受け入れがサーバ2側で拒絶される可能性がある状態でポイント発生処理Pを実行することを避けることができる。
【0060】
次に、図5で例示したポイント発生時処理フロー及びポイント付与時処理フローのそれぞれにおいて、クライアント3及びサーバ2のそれぞれが実行する処理の詳細について、説明する。
【0061】
まず、あるユーザ(以下、対象ユーザという)を対象としたポイント発生時処理フローにおいて、クライアント3が実行する処理の流れの例について、図6のフロー図に基づいて説明する。
【0062】
クライアント3の処理結果識別情報受信部32は、まず記憶部22内に対象ユーザに関連付けて処理結果識別情報Ipが記録されているか否かを判定する(S1)。S1で処理結果識別情報Ipが記録されていると判定された場合には、処理実行部33が、ポイント発生処理Pを実行して、実行結果を示す処理結果情報Dpを当該処理結果識別情報Ipと関連付けて記憶部22内に記録し(S5−1)、処理を終了する(正常終了)。この場合には、対象ユーザが認証ユーザとしてサインインしていない状態であっても、ポイント発生処理Pは正常に完了することとなる。
【0063】
一方、S1で処理結果識別情報Ipが記録されていないと判定された場合には、処理結果識別情報受信部32は、サインイン状態か否か(すなわち、対象ユーザが認証ユーザとしてサインインしているか否か)を判定する(S2−1)。S2−1でサインイン状態でないと判定された場合、処理結果識別情報受信部32は、処理結果識別情報Ipをサーバ2から受信することができないため、ポイント発生処理Pを実行せずに処理を終了する(異常終了)。この場合、クライアント3は、前述したS2で通信エラーが発生した場合と同様に、所定時間経過後に再度図6に示す処理を実行することになる。なお、この場合において、クライアント3の制御部21は、例えばポイント発生処理Pを実行できない旨のメッセージを表示して、サインインの実行を対象ユーザに促すなど、所定のエラー処理を実行してもよい。
【0064】
一方、S2−1でサインイン状態と判定された場合、処理結果識別情報受信部32は、サーバ2に対して処理結果識別情報Ipの発行要求を送信する(S2−2)。このとき、処理結果識別情報受信部32は、ユーザのサインインによって認証装置4から発行された認証状態識別情報とともに発行要求を送信する。そして、S2−2の発行要求に応じてサーバ2から送信される処理結果識別情報Ipを受信する(S4)。
【0065】
その後、処理実行部33がポイント発生処理Pを実行して、実行結果を示す処理結果情報Dpを、S4で受信した処理結果識別情報Ipと関連付けて、記憶部22に記録する(S5−2)。これにより、クライアント3におけるポイント発生処理Pが完了する(正常終了)。
【0066】
次に、上述した図6におけるS2−2の処理でクライアント3が送信した発行要求を受信した際に、S4でクライアント3が受信する処理結果識別情報Ipを送信するためにサーバ2が実行する処理の例について、図7のフロー図に基づいて説明する。
【0067】
まず、処理結果識別情報送信部31は、受信した発行要求に含まれる認証状態識別情報を用いて、認証装置4に対して問い合わせを行うことにより、当該認証状態識別情報が有効か否かを検証する(S2−3)。S2−3で検証に失敗した場合、サーバ2は発行要求を受け付けずに処理を終了する。この場合も、図5のフローにおけるS2で通信エラーが発生した場合と同様に、処理の再実行が行われることとなる。
【0068】
一方、S2−3で検証に成功した場合、処理結果識別情報送信部31は、処理結果識別情報発行処理を実行する(S3)。すなわち、まず新たな処理結果識別情報Ipを発行する(S3−1)。そして、発行した処理結果識別情報Ipを対象ユーザのユーザIDと関連付けて、送信済み識別情報Isとして記憶部12内に記録する(S3−2)。このとき、処理結果識別情報送信部31は、対象ユーザのユーザIDを、S2−3の検証処理において認証装置4から取得してもよい。あるいは、クライアント3が、図6のS2−2の処理において発行要求とともにユーザIDを送信することとしてもよい。続いて、処理結果識別情報送信部31は、S12で発行した処理結果識別情報Ipを、発行要求を送信したクライアント3に対して送信し(S3−3)、処理を終了する。
【0069】
なお、前述したように、クライアント3は、S1で対象ユーザに関連付けて処理結果識別情報Ipが記録されていないと判定した場合には、S2−2で新たな処理結果識別情報Ipの発行をサーバ2に対して要求する。そのため、例えば対象ユーザが既にあるクライアント3を使用して処理結果識別情報Ipの発行を受けていたとしても、初めて他のクライアント3を使用する場合には、当該他のクライアント3は新たに処理結果識別情報Ipの発行をサーバ2に要求することとなる。また、サーバ2は、ユーザごとに一つの処理結果識別情報Ipを発行するのではなく、一人のユーザが複数のクライアント3を使用する場合には、これに応じて一人のユーザに関連付けて複数の処理結果識別情報Ipを発行し、これらの処理結果識別情報Ipをそれぞれ送信済み識別情報Isとして記録する。そのため、サーバ2は、各クライアント3からの処理結果識別情報Ipの発行要求を受信した場合には、ユーザごとに既に送信済み識別情報Isを記録しているか否かを判定する必要はなく、図7に示したような同一の処理により処理結果識別情報Ipの発行を行うことができる。
【0070】
次に、ポイント発生時処理フローにおいて、クライアント3が実行する処理の流れの例について、図8のフロー図に基づいて説明する。なお、ここで説明する処理は、例えばクライアント3を使用する各ユーザについて所定時間おきに実行されてもよいし、あるいは対象ユーザについてポイント発生処理Pが完了した時点などにおいて実行されることとしてもよい。
【0071】
まず、処理結果情報送信部34は、処理実行部33によって出力される処理結果情報Dpが、記憶部22に記録されているか否か判定する(S11)。S11により処理結果情報Dpが記録されていないと判定された場合、サーバ2に送信すべき処理結果情報Dpは存在しないので、処理結果情報送信部34は処理を中止する(異常終了)。
【0072】
一方、S11により処理結果情報Dpが記録されていると判定された場合、処理結果情報送信部34は、さらに対象ユーザが認証ユーザとしてサインインしてサインイン状態になっているか否かを判定する(S12−1)。S12−1によりサインイン状態にないと判定された場合、処理結果情報Dpをサーバ2に送信することができないため、処理結果情報送信部34は処理を中止する(異常終了)。この場合、図5のフローにおけるS12で通信エラーが発生した場合と同様に、処理の再実行が行われることとなる。
【0073】
一方、S12−1により対象ユーザがサインイン状態にあると判定された場合、処理結果情報送信部34は、前述した図6のフローにおけるS5−1又はS5−2の処理により互いに関連付けて記録されている処理結果情報Dpと処理結果識別情報Ipとを、サーバ2に対して送信する(S12−2)。このとき、処理結果情報送信部34は、認証装置4より受信した認証状態識別情報を併せて送信する。
【0074】
次に、クライアント3は、S12−2で送信した情報に対するサーバ2の応答を受信する(S16−1)。この応答には、S12−2で送信した処理結果情報Dpに対する受け入れ処理が成功したか否かを示す受け入れ結果情報と、新たに発行された処理結果識別情報Ipと、が含まれている。
【0075】
続いてクライアント3の処理結果識別情報受信部32は、S16−1で受信した受け入れ結果情報が、受け入れ処理の成功を示しているか否かを判定する(S16−2)。S16−2により、サーバ2から処理結果情報Dpの受け入れ失敗の応答があったと判定された場合には、クライアント3は、所定のメッセージを出力して、対象ユーザにポイントの受け入れがされなかった旨を提示する(S16−3)。
【0076】
S16−2で受け入れ成功の応答があったと判定された場合、及び受け入れ失敗の応答に応じてS16−3でメッセージ出力がなされた場合のいずれの場合にも、続いて処理結果識別情報受信部32は、処理結果初期化処理を実行する(S17)。具体的に、処理結果識別情報受信部32は、対象ユーザに関連付けて記憶部22に記録されている処理結果識別情報Ip(すなわち、S12−2で送信対象とした処理結果識別情報Ip)をS16−1で受信した処理結果識別情報Ipにより更新する(S17−1)。さらに、対象ユーザに関連付けて記憶部22に記録されている処理結果情報Dpにより示されるポイントを、0に初期化して(S17−2)、処理を終了する(正常終了)。
【0077】
続いて、上述した図7のフローにおけるS12−2の処理でクライアント3が送信した情報を受信した際に、S16−1でクライアント3が受信する応答を送信するためにサーバ2が実行する処理の例について、図9のフロー図に基づいて説明する。
【0078】
まず、処理結果情報受信部35は、受信した情報に含まれる認証状態識別情報を用いて、認証装置4に対して問い合わせを行うことにより、当該認証状態識別情報が有効か否かを検証する(S12−3)。S12−3で検証に失敗した場合、サーバ2は処理を終了する。この場合も、図5のフローにおけるS12で通信エラーが発生した場合と同様に、処理の再実行が行われることとなる。
【0079】
一方、S12−3で検証に成功した場合、処理結果受け入れ部36は、クライアント3から受信した情報に含まれる処理結果識別情報Ipが、送信済み識別情報Isとして記憶部12内に記録されているか否か判定する(S13)。
【0080】
S13の処理により、受信した処理結果識別情報Ipが送信済み識別情報Isとして記録されていると判定された場合、処理結果受け入れ部36は、ポイント付与処理を実行する(S14)。具体的に、まず処理結果受け入れ部36は、クライアント3から当該処理結果識別情報Ipとともに受信した処理結果情報Dpの受け入れ処理を行う(S14−1)。すなわち、当該処理結果情報Dpにより示されるポイントを、認証ユーザのユーザIDと関連付けてサーバ2が記録しているポイントに対して、加算する処理を行う。続いて、処理結果受け入れ部36は、送信済み識別情報Isを無効化する無効化処理を行う(S14−2)。
【0081】
S13で処理結果識別情報Ipが送信済み識別情報Isとして記録されていないと判定された場合、及び処理結果識別情報Ipが送信済み識別情報Isとして記録されていると判定されS14の処理が実行された場合のいずれの場合においても、処理結果識別情報送信部31が、処理結果識別情報発行処理を実行する(S15)。すなわち、まず処理結果識別情報送信部31は、新たな処理結果識別情報Ipを発行する(S15−1)。そして、発行した処理結果識別情報Ipを認証ユーザのユーザIDと関連付けて、送信済み識別情報Isとして記憶部12内に記録する(S15−2)。さらに、処理結果識別情報送信部31は、S15−1で発行した処理結果識別情報Ipを、S14−1の受け入れ処理を実行したか否かを示す受け入れ結果情報とともに、処理結果情報Dpの送信を行ったクライアント3に対する応答として送信し(S15−3)、処理を終了する。
【0082】
以上説明した本実施の形態によれば、サーバ2がクライアント3に送信する処理結果識別情報Ipを送信済み識別情報Isとして記録しておき、クライアント3から処理結果情報Dpを受信した際には、当該処理結果情報Dpとともに受信した処理結果識別情報Ipが送信済み識別情報Isとして記録されている場合に当該処理結果情報Dpの受け入れ処理を行う。これにより、ユーザの不正な操作やネットワークトラブルなどによって一つの処理結果情報Dpを重複してサーバ2が受け入れないようにすることができる。
【0083】
なお、本発明の実施形態は、以上説明したものに限られない。例えば以上の説明においては、各クライアント3は所定処理として各ユーザについてポイントを発生させる処理を実行し、サーバ2は各ユーザに付与されるポイントを管理することとしたが、これに限らず、サーバ2は、クライアント3が実行する各種の処理の結果を受け入れて、管理することとしてもよい。また、本実施形態では、ユーザが認証装置4による認証を受けることによってサーバ2とクライアント3との間の接続が確立されることとしたが、サーバ2及びクライアント3は、認証装置4を介さずに直接接続を確立して互いにデータ通信を行うこととしてもよい。
【0084】
また、以上の説明において、クライアント3は、処理結果識別情報Ipと処理結果情報Dpとを関連付けて記録するデータファイルFを暗号化した状態で記憶部12に記憶することとしてもよい。また、ユーザによるデータファイルFの改ざんや複写を制限する制御を実行してもよい。これらの機能により、ユーザが、データファイルFに記憶された処理結果情報Dpを重複してサーバ2に受け入れさせる不正な操作を実行することをさらに困難にすることができる。
【図面の簡単な説明】
【0085】
【図1】本発明の実施の形態に係る情報処理システムの全体構成例を示す概要図である。
【図2】本発明の実施の形態に係る情報処理システムによって実現される機能例を示す機能ブロック図である。
【図3】サーバに記録される送信済み識別情報の一例を示す図である。
【図4】処理結果管理データベース内に格納される情報の一例を示す図である。
【図5】本発明の実施の形態に係る情報処理システムが実行する処理の流れの概要を示す図である。
【図6】ポイント発生時フローにおいてクライアントが実行する処理の流れの一例を示すフロー図である。
【図7】ポイント発生時フローにおいてサーバが実行する処理の流れの一例を示すフロー図である。
【図8】ポイント付与時フローにおいてクライアントが実行する処理の流れの一例を示すフロー図である。
【図9】ポイント付与時フローにおいてサーバが実行する処理の流れの一例を示すフロー図である。
【符号の説明】
【0086】
1 情報処理システム、2 サーバ、3 クライアント、4 認証装置、11,21 制御部、12,22 記憶部、13,23 通信部、31 処理結果識別情報送信部、32 処理結果識別情報受信部、33 処理実行部、34 処理結果情報送信部、35 処理結果情報受信部、36 処理結果受け入れ部。
【技術分野】
【0001】
本発明は、クライアントが実行した処理の結果をサーバで管理する情報処理システム、当該情報処理システムを構成するクライアント及びサーバ、情報処理方法、プログラム、並びに情報記憶媒体に関する。
【背景技術】
【0002】
クライアントとサーバとの間で処理を分散して実行するクライアント/サーバ型の情報処理システムが知られている。このような情報処理システムの利用例としては、複数のクライアントがそれぞれ所定の処理を実行して、その処理結果をサーバに送信し、サーバが各クライアントから送信された処理結果を記録するなどして、サーバ側で処理結果の一元管理を行う例が挙げられる。
【発明の開示】
【発明が解決しようとする課題】
【0003】
上記従来例の技術においては、クライアントとサーバとがネットワークを介して通信接続された状態が常に維持されることを前提としている。しかしながら、特にクライアント側での処理が長時間にわたったり、複数回に分けて実行されたりする場合など、クライアントが実行する処理の内容によっては、通信接続が常時維持されないこともあり得る。このような場合、クライアントは、所定処理を実行して得られる処理結果を一時的に記録しておき、サーバとの間で通信接続が確立された状態になったときに、記録されている処理結果を送信することとなる。この場合において、例えば利用者の不正な操作や、クライアントとサーバとの間の通信障害などに起因して、記録された処理結果をクライアントが複数回繰り返してサーバに対して送信してしまうと、サーバがクライアントの一つの処理結果を重複して受け入れてしまうことが起こり得る。
【0004】
本発明は上記実情に鑑みてなされたものであって、その目的の一つは、クライアントが実行する処理の結果をサーバで管理する場合に、サーバが一つの処理結果を重複して受け入れないようにすることのできる情報処理システム、クライアント、サーバ、情報処理方法、プログラム並びに情報記憶媒体を提供することにある。
【課題を解決するための手段】
【0005】
上記課題を解決するための本発明に係る情報処理システムは、互いに通信接続可能なクライアントとサーバとを含む情報処理システムであって、前記サーバは、処理結果識別情報を前記クライアントに送信するとともに、当該送信する処理結果識別情報を送信済み識別情報として記録する処理結果識別情報送信手段と、前記クライアントから、前記クライアントが所定処理を実行した結果を示す処理結果情報を、処理結果識別情報とともに受信する処理結果情報受信手段と、前記クライアントから受信した処理結果識別情報が前記送信済み識別情報として記録されている場合に、当該処理結果識別情報とともに受信した前記処理結果情報の受け入れ処理を行うとともに、当該送信済み識別情報を無効化する処理結果情報受け入れ手段と、を含み、前記クライアントは、前記サーバから処理結果識別情報を受信し、当該受信した処理結果識別情報を記録する処理結果識別情報受信手段と、前記受信した処理結果識別情報を記録した状態において、前記サーバとの通信接続の状態に関わらず、前記所定処理を実行し、実行結果を示す処理結果情報を記録する処理実行手段と、前記記録された処理結果情報を、前記記録された処理結果識別情報とともに前記サーバに送信する処理結果情報送信手段と、を含むことを特徴とする。
【0006】
また、上記情報処理システムにおいて、前記処理結果識別情報送信手段は、前記処理結果情報受信手段が前記クライアントから処理結果情報を受信した場合に、前記処理結果情報受け入れ手段が当該受信した処理結果情報の受け入れ処理を行うか否かに関わらず、新たな処理結果識別情報を前記クライアントに送信し、前記処理結果識別情報受信手段は、前記新たな処理結果識別情報を受信した場合に、過去に記録した処理結果識別情報を無効化して、当該受信した新たな処理結果識別情報を記録することとしてもよい。
【0007】
さらに、上記情報処理システムにおいて、前記処理結果識別情報受信手段は、前記受信した新たな処理結果識別情報を記録するとともに、前記記録されている処理結果情報を初期化し、前記処理実行手段は、前記所定処理を実行するごとに、前記記録されている処理結果情報を、当該記録されている処理結果情報と、新たな実行結果と、に応じた情報により更新することとしてもよい。
【0008】
さらに、上記情報処理システムにおいて、前記処理結果情報受け入れ手段は、前記処理結果情報の受け入れ処理として、前記サーバに記録されている前記所定処理の処理結果に関する情報を、当該情報と、前記受信した処理結果情報と、に応じた情報により更新する処理を実行することとしてもよい。
【0009】
さらに、上記情報処理システムにおいて、前記処理結果情報は、数値情報であって、前記処理結果情報受け入れ手段は、前記処理結果情報の受け入れ処理として、前記サーバに記録されている数値情報に、前記受信した処理結果情報により示される数値を加算することにより、当該サーバに記録されている数値情報を更新する処理を実行し、前記処理結果識別情報受信手段は、前記受信した新たな処理結果識別情報を記録するとともに、前記記録されている処理結果情報を0に初期化し、前記処理実行手段は、前記所定処理を実行するごとに、前記記録されている処理結果情報により示される数値に、新たな実行結果に応じた数値を加算することにより、前記記録されている処理結果情報を更新することとしてもよい。
【0010】
また、上記情報処理システムにおいて、前記処理結果識別情報送信手段は、前記処理結果識別情報を、当該処理結果識別情報の送信対象となるユーザと関連付けて前記送信済み識別情報として記録し、前記処理結果情報受信手段は、ユーザを特定するユーザ関連情報とともに前記処理結果情報を受信し、前記処理結果情報受け入れ手段は、前記クライアントから受信した処理結果識別情報が、当該処理結果識別情報とともに受信したユーザ関連情報により特定されるユーザと関連付けて前記送信済み識別情報として記録されている場合に、当該処理結果識別情報とともに受信した前記処理結果情報の受け入れ処理を行うとともに、当該ユーザと関連付けて記録されている前記送信済み識別情報を無効化し、前記処理結果識別情報受信手段は、前記サーバから受信した処理結果識別情報を、当該処理結果識別情報の送信対象となったユーザと関連付けて記録し、前記処理実行手段は、前記処理結果情報を、前記所定処理の対象となるユーザと関連付けて記録し、前記処理結果情報送信手段は、前記記録された処理結果情報を、当該処理結果情報が関連付けられているユーザに関連付けて記録された前記処理結果識別情報、及び当該ユーザを特定するユーザ関連情報とともに、前記サーバに送信することとしてもよい。
【0011】
また、本発明に係るサーバは、クライアントと通信接続可能なサーバであって、前記クライアントによる所定処理の実行に先立って、処理結果識別情報を前記クライアントに送信するとともに、当該送信する処理結果識別情報を送信済み識別情報として記録する処理結果識別情報送信手段と、前記クライアントから、前記所定処理を実行した結果を示す処理結果情報を、処理結果識別情報とともに受信する処理結果情報受信手段と、前記クライアントから受信した処理結果識別情報が前記送信済み識別情報として記録されている場合に、当該処理結果識別情報とともに受信した前記処理結果情報の受け入れ処理を行うとともに、当該送信済み識別情報を無効化する処理結果情報受け入れ手段と、を含むことを特徴とする。
【0012】
また、本発明に係るクライアントは、サーバと通信接続可能なクライアントであって、前記サーバから処理結果識別情報を受信し、当該受信した処理結果識別情報を記録する処理結果識別情報受信手段と、前記受信した処理結果識別情報を記録した状態において、前記サーバとの通信接続の状態に関わらず、所定処理を実行し、実行結果を示す処理結果情報を記録する処理実行手段と、前記記録された処理結果情報を、前記記録された処理結果識別情報とともに前記サーバに送信する処理結果情報送信手段と、を含み、前記送信した処理結果識別情報が、前記サーバによる前記送信した処理結果情報の受け入れ処理を行うか否かの判定に用いられることを特徴とする。
【0013】
また、本発明に係る情報処理方法は、クライアントと通信接続可能なコンピュータを用いた情報処理方法であって、前記クライアントによる所定処理の実行に先立って、処理結果識別情報を前記クライアントに送信するとともに、当該送信する処理結果識別情報を送信済み識別情報として記録するステップと、前記クライアントから、前記所定処理を実行した結果を示す処理結果情報を、処理結果識別情報とともに受信するステップと、前記クライアントから受信した処理結果識別情報が前記送信済み識別情報として記録されている場合に、当該処理結果識別情報とともに受信した前記処理結果情報の受け入れ処理を行うとともに、当該送信済み識別情報を無効化するステップと、を含むことを特徴とする。
【0014】
また、本発明に係る別の情報処理方法は、サーバと通信接続可能なコンピュータを用いた情報処理方法であって、前記サーバから処理結果識別情報を受信し、当該受信した処理結果識別情報を記録するステップと、前記受信した処理結果識別情報を記録した状態において、前記サーバとの通信接続の状態に関わらず、所定処理を実行し、実行結果を示す処理結果情報を記録するステップと、前記記録された処理結果情報を、前記記録された処理結果識別情報とともに前記サーバに送信するステップと、を含み、前記送信した処理結果識別情報が、前記サーバによる前記送信した処理結果情報の受け入れ処理を行うか否かの判定に用いられることを特徴とする。
【0015】
また、本発明に係るプログラムは、サーバと通信接続可能なコンピュータを、前記サーバから処理結果識別情報を受信し、当該受信した処理結果識別情報を記録する処理結果識別情報受信手段、前記受信した処理結果識別情報を記録した状態において、前記サーバとの通信接続の状態に関わらず、所定処理を実行し、実行結果を示す処理結果情報を記録する処理実行手段、及び前記記録された処理結果情報を、前記記録された処理結果識別情報とともに前記サーバに送信する処理結果情報送信手段、として機能させ、前記送信した処理結果識別情報が、前記サーバによる前記送信した処理結果情報の受け入れ処理を行うか否かの判定に用いられることを特徴とする。このプログラムは、コンピュータ読み取り可能な情報記憶媒体に記憶されてよい。
【発明を実施するための最良の形態】
【0016】
以下、本発明の一実施形態について、図面を参照しながら説明する。
【0017】
本発明の一実施形態に係る情報処理システム1は、図1に示すように、サーバ2と、複数のクライアント3と、認証装置4と、を含んで構成されている。サーバ2と各クライアント3とは、インターネット等の通信ネットワークを介して相互に通信接続可能になっている。また、サーバ2及び各クライアント3は、いずれも認証装置4と相互に通信接続可能になっている。
【0018】
本実施形態では、情報処理システム1は、ポイント管理システムとして動作することとする。すなわち、各クライアント3は、当該情報処理システム1を利用するユーザに関連付けてポイントを発生させる処理を実行し、サーバ2は、各クライアント3から送信される情報に基づいて、各ユーザに対してポイントを付与するとともに、各ユーザに付与されたポイントを一元管理する。ここで、ポイントは、各クライアント3がユーザの指示に応じた処理を実行することで生成される数値情報であって、例えばゲームの成績を示す得点などであってもよいし、各種の処理の実行時間や処理量などに関する数値情報であってもよい。
【0019】
サーバ2は、本実施形態に係る情報処理システム1を利用する各ユーザに対して付与されるポイントを管理する情報処理装置である。サーバ2は、サーバコンピュータ等であって、図1に示すように、制御部11と、記憶部12と、通信部13と、を含んで構成されている。
【0020】
制御部11は、例えばCPU等であって、記憶部12に記憶されているプログラムに従って各種の情報処理を行う。本実施形態において制御部11が実行する処理の具体例については、後述する。
【0021】
記憶部12は、RAMやROM等のメモリ素子や、ハードディスク等を含んで構成され、制御部11によって実行されるプログラムを記憶する。また、記憶部12は、制御部11のワークメモリとしても動作する。
【0022】
通信部13は、例えばLANカード等の通信インタフェースであって、制御部11からの指示に従って、通信ネットワークを介して情報を送信する。また、通信部13は、通信ネットワークを介して到来する情報を受信して制御部11に出力する。
【0023】
各クライアント3は、本実施形態に係る情報処理システム1を利用するユーザが使用する情報処理装置である。クライアント3は、例えば家庭用ゲーム機やパーソナルコンピュータなどであって、図1に示すように、制御部21と、記憶部22と、通信部23と、を含んで構成されている。制御部21、記憶部22、及び通信部23は、それぞれ制御部11、記憶部12、及び通信部13と同様の構成であってよい。なお、各ユーザは、一人で複数のクライアント3を使用してもよい。また、一つのクライアント3を複数のユーザが共用してもよい。
【0024】
認証装置4は、例えばサーバコンピュータ等であって、クライアント3からの要求に応じて、当該クライアント3を使用するユーザを認証する認証処理を行う。また、認証装置4は、シングルサインオンなどの技術を用いて、クライアント3とサーバ2との間の通信接続の制御を行う。
【0025】
具体的に、本実施形態では、サーバ2とクライアント3とが通信接続を確立して、相互にデータ通信を行う場合には、まずクライアント3を使用するユーザが認証装置4の認証を受けることとする。この場合、クライアント3は、ユーザの指示操作に従って、パスワード等の当該ユーザを認証するための認証情報を認証装置4に送信する。認証装置4は、送信された認証情報を自身が記憶するデータベース内の情報と照合してユーザの認証を行い、認証結果とともに、認証状態識別情報(セッション識別情報)を返信する。クライアント3は、サーバ2との間で通信接続(セッション)を開始する際に、この認証状態識別情報を併せて送信することとする。
【0026】
クライアント3から認証状態識別情報を受信したサーバ2は、受信した認証状態識別情報を認証装置4に送信して問い合わせを行うことにより、クライアント3を使用中のユーザが認証装置4による認証を受けた正規のユーザであることを確認する。また、この問い合わせに対する返信として当該ユーザを識別するためのユーザ識別情報(ユーザID)を受信することとすれば、クライアント3とユーザとが一対一に対応していない場合でも、サーバ2はクライアント3から受信した情報の送信を指示しているユーザを特定できる。すなわち、クライアント3から送信される認証状態識別情報が、情報の送信を指示しているユーザを特定するためのユーザ関連情報として機能することとなる。ここで、サーバ2が認証装置4に問い合わせを行った際に、認証装置4において認証状態識別情報が既に無効となっていれば、サーバ2はクライアント3から受信した情報を受け入れずに、クライアント3からの接続が許可されない旨を返信する。なお、認証装置4は、例えばクライアント3からの明示の指示や、所定時間の経過などに応じて、保持している認証状態識別情報を無効にすることとする。こうすれば、認証装置4によって認証状態識別情報が保持されている間だけ、クライアント3はサーバ2との間で通信接続を確立して、相互にデータ通信を行うことができる。なお、以下では、認証装置4に認証状態識別情報が有効に保持されて、サーバ2とクライアント3との間の通信接続が確立された状態を、サインイン状態という。また、このとき認証装置4による認証を受けたユーザ(すなわち、サインインしたユーザ)を、認証ユーザという。
【0027】
以下、上記構成を有する情報処理システム1が実現する機能の具体例について、説明する。情報処理システム1は、機能的に、図2に示すように、処理結果識別情報送信部31と、処理結果識別情報受信部32と、処理実行部33と、処理結果情報送信部34と、処理結果情報受信部35と、処理結果受け入れ部36と、を含んで構成される。これらの機能のうち、処理結果識別情報送信部31、処理結果情報受信部35、及び処理結果受け入れ部36は、サーバ2の制御部11が記憶部12に格納されたプログラムを実行することにより、実現される。また、処理結果識別情報受信部32、処理実行部33、及び処理結果情報送信部34は、クライアント3の制御部21が記憶部22に格納されたプログラムを実行することにより、実現される。なお、これらのプログラムは、例えば光ディスク等のコンピュータ読み取り可能な各種の情報記憶媒体に格納されて提供されてもよいし、インターネット等の通信ネットワークを介して提供されてもよい。
【0028】
サーバ2の処理結果識別情報送信部31は、所定のタイミングで、処理結果識別情報Ipを発行する。そして、発行した処理結果識別情報Ipをクライアント3に対して送信するとともに、当該送信する処理結果識別情報Ipを送信済み識別情報Isとして記録する。具体例として、処理結果識別情報送信部31は、クライアント3から新たな処理結果識別情報Ipの発行要求を受信した場合、及び後述する処理結果情報受信部35が処理結果情報Dpを受信した場合に、処理結果識別情報Ipを発行する。
【0029】
処理結果識別情報Ipは、処理結果受け入れ部36による処理結果の受け入れ処理の際に、受け入れ対象となる処理結果情報Dpを識別するための情報であって、一つの処理結果情報Dpの重複した受け入れを防止するために用いられる。この処理結果識別情報Ipは、例えばランダムに生成された数値や文字列などであってよい。この場合、処理結果識別情報送信部31は、所定の乱数生成関数により、処理結果識別情報Ipを生成する。このように処理結果識別情報Ipとして乱数を用いることで、処理結果識別情報送信部31が発行する処理結果識別情報Ipを、不正な利用者に推測されにくくすることができる。なお、このとき生成する乱数の取り得る値の範囲(数値や文字列の桁数)を、ポイント管理対象となるユーザ数や接続されるクライアント3の数に応じて十分大きな範囲とすることにより、発行される処理結果識別情報Ipが重複してしまうことを防ぐことができる。あるいは、処理結果識別情報送信部31は、新たな処理結果識別情報Ipを発行する際に、既に発行されて送信済み識別情報Isとして記録されている処理結果識別情報Ipとは異なる値を持つように、新たな処理結果識別情報Ipを生成してもよい。
【0030】
処理結果識別情報送信部31がクライアント3に対して送信する処理結果識別情報Ipは、送信済み識別情報Isとして、記憶部12に記録される。ここで、処理結果識別情報送信部31による処理結果識別情報Ipの送信は、認証ユーザがサインインしてサーバ2−クライアント3間の通信接続が確立した状態で行われる。そこで、本実施形態では、処理結果識別情報送信部31は、この認証ユーザを処理結果識別情報Ipの送信対象となるユーザとして、送信済み識別情報Isを、認証ユーザのユーザIDと関連付けて記録することとする。例えば処理結果識別情報送信部31は、図3に例示するようなテーブルを記憶部12内に保持し、新たな処理結果識別情報Ipを発行した際には、当該処理結果識別情報Ipを送信済み識別情報Isとしてこのテーブルに追加する。
【0031】
なお、処理結果識別情報送信部31は、一人のユーザに関連付けて、複数の処理結果識別情報Ipを発行してもよい。具体的に、例えば前述したように一人のユーザが複数のクライアント3を使用している場合、この複数のクライアント3のそれぞれが独立に、当該ユーザが認証ユーザとしてサインインした状態で処理結果識別情報Ipの発行要求をサーバ2に対して送信することがある。この場合、送信処理結果識別情報送信部31は、これら発行要求のそれぞれに対して、互いに異なる処理結果識別情報Ipを送信し、これらの処理結果識別情報Ipを同じユーザIDと関連付けて送信済み識別情報Isとして記録する。
【0032】
クライアント3の処理結果識別情報受信部32は、所定処理(以下、ポイント発生処理Pという)の実行に先立って、サーバ2の処理結果識別情報送信部31が送信する処理結果識別情報Ipを受信する。そして、受信した処理結果識別情報Ipを記憶部22に記録する。なお、本実施形態では、処理結果識別情報受信部32は、処理結果識別情報Ipを受信した際の認証ユーザ、すなわち処理結果識別情報送信部31が処理結果識別情報Ipの送信対象としたユーザと関連付けて、受信した処理結果識別情報Ipを記録することとする。
【0033】
具体的に、例えば処理結果識別情報受信部32は、所定のタイミングにおいて、当該クライアント3を使用中のユーザに関連付けて処理結果識別情報Ipが記憶部22に記録されているか否か判定する。そして、記録されていない場合には、処理結果識別情報Ipの発行要求をサーバ2に対して送信する。処理結果識別情報受信部32は、この発行要求に応じて処理結果識別情報送信部31が送信する処理結果識別情報Ipを受信し、当該ユーザと関連付けて記憶部22に記録する。本実施形態では、処理結果識別情報受信部32は、クライアント3を使用するユーザごとに、それぞれ別個のデータファイルFを生成し、当該データファイルF内に処理結果識別情報Ipを書き込むこととする。こうすれば、クライアント3は、当該クライアント3を使用するユーザが複数いる場合に、ユーザごとに処理結果識別情報Ipを記録できる。なお、ここでは、データファイルFは、ユーザの指示に応じてクライアント3が実行する複写や削除などのデータ操作の単位となるデータの集合を示している。
【0034】
ここで、処理結果識別情報受信部32が発行要求を送信するか否か判定する所定のタイミングとしては、例えばクライアント3がユーザからの指示操作などに応じて、ポイント発生処理Pを実行しようとするタイミングが挙げられる。すなわち、処理結果識別情報受信部32は、ポイント発生処理Pが実行される場合に、当該ポイント発生処理Pの実行に先立って、処理結果識別情報Ipの発行要求を送信する。また、処理結果識別情報受信部32は、ユーザがクライアント3の使用を開始したタイミングで、当該ユーザについて発行要求を送信するか否か判定してもよい。さらに、所定時間おきに、クライアント3を使用中のユーザについて発行要求を送信するか否か判定してもよい。
【0035】
クライアント3の処理実行部33は、ポイント発生処理Pを実行して、その実行結果を示す処理結果情報Dpを記録する。本実施形態では、このポイント発生処理Pは、サーバ2による管理対象となるポイントを発生させ、処理結果情報Dpとして記録する処理であって、例えばコンピュータゲームなど、各種のアプリケーションプログラムによって実現される処理であってよい。具体例として、処理実行部33は、例えばゲーム処理を実行して、その成績などを示す数値をポイントとして発生させる。あるいは、処理実行部33は、所定のプロセスなどが終了するタイミングでポイント発生処理Pを実行し、当該プロセスなどの実行時間や実行結果に関する数値情報をポイントとして発生させてもよい。なお、処理実行部33は、当該ポイント発生処理Pの対象となるユーザ(例えば当該ポイント発生処理Pの実行を指示したユーザや、当該ポイント発生処理P実行の際にクライアント3を使用中のユーザなど)と関連付けて、発生させたポイントを示す数値情報を処理結果情報Dpとして記録する。
【0036】
ここで、処理実行部33は、クライアント3とサーバ2との間の通信接続の状態に関わらず、ポイント発生処理Pを実行してよい。すなわち、処理実行部33は、クライアント3を使用するユーザが認証装置4による認証を受けておらず、サインイン状態にない場合でも、当該ユーザを対象とするポイント発生処理Pを実行することができる。ただし、前述したように処理結果識別情報受信部32が処理結果識別情報Ipを受信し、当該ユーザに関連付けて記録した状態でポイント発生処理Pを実行する必要がある。このように、ポイント発生処理Pの実行にユーザの認証操作が不要となることで、例えばポイント発生処理Pがユーザの操作を必要としない処理の場合、ユーザの操作を受け付けずに処理実行部33は所定のタイミングでポイント発生処理Pを自動実行できる。
【0037】
本実施形態では、処理実行部33は、ポイント発生処理Pの実行によって、ポイントを示す処理結果情報Dpを、当該ポイント発生処理Pの対象となったユーザに関連付けて処理結果識別情報受信部32が処理結果識別情報Ipを格納したデータファイルF内に記録することとする。これにより、クライアント3を使用するユーザごとに、処理結果情報Dpと処理結果識別情報Ipとが互いに関連付けられて同じデータファイルF内に記録される。こうすれば、同じユーザに関連付けられた処理結果識別情報Ipと処理結果情報Dpとを一体的に取り扱うことができ、不正な意図を持ったユーザが、処理結果識別情報Ipとは別に処理結果情報Dpだけを他の記憶領域に複写しておくなどの操作を実行しにくくなる。
【0038】
なお、処理実行部33は、処理結果情報送信部34による処理結果情報Dpの送信処理を実行していない状態で、1又は複数のユーザのそれぞれを対象とするポイント発生処理Pを、複数回実行してもよい。この場合、処理実行部33は、ポイント発生処理Pを実行するごとに、記憶部22に記録されている処理結果情報Dpを、当該記録されている処理結果情報Dpと、新たに実行したポイント発生処理Pの実行結果と、に応じた情報により更新する。これにより、各ユーザに関連付けられた処理結果情報Dpは、当該ユーザについて処理結果識別情報Ipを受信した時点を基準として、後述する処理結果情報送信部34による処理結果情報Dpの送信の時点までに複数回実行されたポイント発生処理Pの実行結果を累積した情報となる。ここでは具体的に、処理実行部33は、記憶部22に記録されている処理結果情報Dpにより示されるポイントに対して、新たなポイント発生処理Pの実行結果に応じて発生したポイントを加算した値により、処理結果情報Dpを更新する。これにより、処理結果情報Dpは、複数回のポイント発生処理Pによって発生したポイントの累計値となる。
【0039】
クライアント3の処理結果情報送信部34は、クライアント3がサーバ2と通信接続された状態で、処理実行部33によって記録された処理結果情報Dpを、処理結果識別情報受信部32によって記録された処理結果識別情報Ipとともに、サーバ2に対して送信する。このとき、処理結果情報送信部34は、同じユーザに関連付けて記録されている処理結果情報Dpと処理結果識別情報Ipの組を、当該ユーザを特定するユーザ関連情報(例えば当該ユーザのサインインにより認証装置4から送信された認証状態識別情報)とともに、サーバ2に送信する。
【0040】
具体的に、処理結果情報送信部34は、所定のタイミングで、クライアント3とサーバ2との間の通信接続が確立されているか否か判定し、確立されている場合(すなわち、サインイン状態の場合)に、認証ユーザに関連付けて記録されている処理結果情報Dpと処理結果識別情報Ipの組を、サーバ2に対して送信する。なお、このとき、処理結果情報送信部34は、認証装置4より受信した認証状態識別情報も併せて送信することとする。
【0041】
サーバ2の処理結果情報受信部35は、クライアント3の処理結果情報送信部34が送信する処理結果情報Dpを、処理結果識別情報Ip及びユーザを特定するためのユーザ関連情報とともに受信する。
【0042】
サーバ2の処理結果受け入れ部36は、処理結果情報受信部35がクライアント3から処理結果情報Dpと処理結果識別情報Ipの組を受信した場合に、受信した処理結果識別情報Ipが送信済み識別情報Isとして記憶部12内に記録されているか否かの判定を行う。このとき、処理結果受け入れ部36は、単に処理結果識別情報Ipが送信済み識別情報Isとして記録されているか否かだけではなく、処理結果情報受信部35が受信したユーザ関連情報により特定されるユーザと関連付けて送信済み識別情報Isとして記録されているか否かを判定することとする。そして、判定の結果、受信した処理結果識別情報Ipが有効な送信済み識別情報Isとして記録されていると判定される場合に、処理結果情報受信部35が受信した処理結果情報Dpの受け入れ処理を行うとともに、記録されている送信済み識別情報Isを無効化する処理を行う。一方、判定の結果、受信した処理結果識別情報Ipが有効な送信済み識別情報Isとして記録されていないと判定される場合には、受信した処理結果情報Dpの受け入れ処理を行わずに、処理を終了する。
【0043】
ここで、サーバ2は、ポイント発生処理Pの処理結果に関する情報(以下、サーバ管理情報という)を記憶部12に記憶しているものとする。そして、処理結果情報Dpの受け入れ処理とは、処理結果情報Dpの示す処理結果を受け入れて、その内容を反映してサーバ管理情報を更新する処理である。具体例として、処理結果受け入れ部36は、受け入れ処理として、ユーザ関連情報により特定されるユーザに関連付けて記録されているサーバ管理情報を、当該サーバ管理情報と、新たに受信した処理結果情報Dpと、に応じた情報により更新する処理を実行する。これにより、サーバ管理情報は、ユーザごとに、複数回にわたってクライアント3から受け入れた処理結果情報Dpを累積した情報となる。この場合、クライアント3は、過去実行されたポイント発生処理Pの処理結果を継続して記憶し続ける必要はなく、サーバ2が処理結果情報Dpの受け入れ処理を前回実行した時点以降のポイント発生処理Pの処理結果を示す差分情報だけを、処理結果情報Dpの送信を次に行う時点まで記憶しておけばよいことになる。
【0044】
具体的に、本実施形態では、サーバ2は、サーバ管理情報として、記憶部12内に処理結果管理データベース(DB)を記憶している。この処理結果管理データベースには、図4に例示するように、各ユーザのユーザIDと、当該ユーザに付与されたポイントと、を関連付ける情報が格納されている。処理結果受け入れ部36は、受け入れ処理として、処理結果管理DBにおいてポイント付与対象となったユーザに関連付けて記録されているポイントに対して、受信した処理結果情報Dpにより示されるポイントを加算する処理を行う。これにより、サーバ2で管理されているポイント情報に対して、クライアント3で実行されたポイント発生処理Pの処理結果が反映され、クライアント3のポイント発生処理Pによって発生したポイントがユーザに対して付与される。
【0045】
さらに、処理結果受け入れ部36は、送信済み識別情報Isを無効化する無効化処理を行う。具体的には、記憶部12内に記録されたテーブルから、送信済み識別情報Isを削除する。あるいは処理結果受け入れ部36は、当該送信済み識別情報Isに関連付けられたフラグ情報を、受け入れ処理を実行済みであることを示す値に更新することによって、当該送信済み識別情報Isを無効化してもよい。この無効化処理によって、それ以降に無効化された送信済み識別情報Isと同じ値の処理結果識別情報Ipを再び処理結果情報受信部35が受信したとしても、処理結果受け入れ部36は、処理結果情報Dpの受け入れ処理を行わない。これにより、サーバ2は、ユーザの不正な操作などによって一つの処理結果情報Dpを重複して受け入れてしまうことを防ぐことができる。
【0046】
なお、処理結果情報Dpの受け入れ処理と、当該処理結果情報Dpとともに受信した処理結果識別情報Ipを無効化する無効化処理と、は、併せて実行される。すなわち、例えばエラーの発生等により受け入れ処理と無効化処理のいずれか一方が失敗した場合には、他方の処理も一旦実行前の状態に戻し、例えば所定時間経過後に再度両方の処理を実行することとする。こうすれば、受け入れ処理と無効化処理の不整合を防ぐことができる。
【0047】
さらに、処理結果受け入れ部36による受け入れ処理及び無効化処理が実行されると、処理結果識別情報送信部31は、無効化された処理結果識別情報Ipの代わりに新たな処理結果識別情報Ipを発行し、発行した新たな処理結果識別情報Ipを送信済み識別情報Isとして記録する。また、この新たな処理結果識別情報Ipを、受け入れ処理の完了通知とともにクライアント3に対して送信する。
【0048】
これに応じて、クライアント3の処理結果識別情報受信部32は、既に記録されている処理結果識別情報Ipを無効化して、新たに受信した処理結果識別情報Ipを記憶部22に記録する。また、併せて処理結果識別情報受信部32は、この無効化された処理結果識別情報Ipと関連付けて記録されている処理結果情報Dpを初期化する処理を行う。具体例として、処理結果識別情報受信部32は、認証ユーザに関連付けて記録されている処理結果情報Dpにより示されるポイントを0にリセットするとともに、認証ユーザに関連付けて記録されている処理結果識別情報Ipを、新たに受信した処理結果識別情報Ipで上書きする。これにより、処理結果情報Dpが複数回実行されたポイント発生処理Pの実行結果を累積して得られる差分情報である場合に、処理結果情報Dpが有効な処理結果識別情報Ipを受信した以降のポイント発生処理Pの実行結果だけを反映するように制御できる。
【0049】
以下では、本実施の形態に係る情報処理システム1において、サーバ2及びクライアント3が実行する処理の流れの具体例について、説明する。
【0050】
まず、サーバ2及びクライアント3が実行する処理の流れの概要について、図5のフロー図に基づいて説明する。なお、具体的な処理の詳細については、サーバ2及びクライアント3のそれぞれについて、後述する。
【0051】
図5の上段は、クライアント3でポイント発生処理Pを実行してポイントを発生させる際に実行される処理の流れ(以下、ポイント発生時処理フローという)の一例を示している。同図に示すように、まずクライアント3は、処理結果識別情報Ipが記憶部22内に記録されているか否か判定する(S1)。S1で処理結果識別情報Ipが記録されていないと判定された場合、処理結果識別情報Ipの発行要求が、クライアント3からサーバ2に対して送信される(S2)。S2で送信された発行要求を受けて、サーバ2は、処理結果識別情報発行処理を実行する(S3)。この処理結果識別情報発行処理は、処理結果識別情報Ipを発行してクライアント3に送信するとともに、当該発行した処理結果識別情報Ipを送信済み識別情報Isとして記憶部12に記憶する一連の処理である。クライアント3は、この処理結果識別情報発行処理によりサーバ2から送信される処理結果識別情報Ipを受信する(S4)。S1で処理結果識別情報Ipが記録されていると判定した場合、又はS4で送信された処理結果識別情報Ipを記録した場合に、クライアント3はポイント発生処理Pを実行して、処理結果情報Dpを記録する(S5)。
【0052】
次に、図5の下段は、前述したポイント発生時処理フローにより発生したポイントをサーバ2の処理結果管理データベースに反映させることにより、ユーザにポイントを付与する際に実行される処理の流れ(以下、ポイント付与時処理フローという)の一例を示している。なお、このポイント付与時処理フローは、ポイント発生時処理フローが実行されるごとに実行される必要はなく、ポイント発生時処理フローが複数回実行された後に実行されてもよい。
【0053】
図5に示すように、ポイント付与時処理フローにおいては、まずクライアント3が、付与対象となるポイントを示す処理結果情報Dpが記録されているか否か判定する(S11)。S11で送信すべき処理結果情報Dpが記録されていないと判定されれば、クライアント3は処理を終了する。一方、S11で送信すべき処理結果情報Dpが記録されていると判定された場合、当該処理結果情報Dpが、処理結果識別情報Ipとともにクライアント3からサーバ2に対して送信される(S12)。S12で送信された情報を受信したサーバ2は、受信した処理結果識別情報Ipが送信済み識別情報Isとして記録されているか否かによって、受信した処理結果識別情報Dpを受け入れ可能か否か判定する(S13)。S13で受け入れ可能と判定した場合、サーバ2は、ポイント付与処理を実行する(S14)。このポイント付与処理は、処理結果情報Dpの受け入れ処理を実行して処理結果管理データベースを更新するとともに、当該処理結果情報Dpの重複受け入れを防止するためにS13で判定の対象となった送信済み識別情報Isを無効化する一連の処理である。
【0054】
S13で処理結果識別情報Dpの受け入れが不可能と判定された場合、及び受け入れ可能と判定されてS14の処理が実行された場合のいずれの場合においても、続いてサーバ2は、処理結果識別情報発行処理を実行する(S15)。この処理結果識別情報発行処理は、前述したS3の処理と同様のものである。これにより、S14のポイント付与処理が実行されたか否かを示す受け入れ結果情報とともに、新たにS15で発行された処理結果識別情報Ipがサーバ2からクライアント3に対して送信される(S16)。S16で送信された情報を受信したクライアント3は、処理結果初期化処理を実行する(S17)。この処理結果初期化処理は、S12で送信対象となった処理結果情報Dpを初期化するとともに、S12で送信対象となった処理結果識別情報IpをS16で受信した処理結果識別情報Ipにより更新する一連の処理である。
【0055】
ここで、図5のフロー中におけるサーバ2とクライアント3との間の通信が失敗した場合に、サーバ2及びクライアント3が実行する処理の一例について、説明する。まず、S2で送信された処理結果識別情報Ipの発行要求が通信エラーによってサーバ2に到達しなかった場合、処理結果識別情報発行処理(S3)は実行されず、クライアント3はS4で処理結果識別情報Ipを受信することができない。この場合、クライアント3はポイント発生処理P(S5)を実行せずに、例えば所定時間経過後にS1に戻って再度ポイント発生時処理フローを実行し、処理結果識別情報Ipの取得を試みる。これにより、クライアント3は、処理結果識別情報Ipが記録された状態でポイント発生処理Pを実行することができる。
【0056】
また、S4で送信された処理結果識別情報Ipが通信エラーによってクライアント3に到達しなかった場合も、クライアント3から見ればS2で通信エラーが生じた場合と同様に、S2の送信処理後、S4の処理結果識別情報Ipを受信できないことになる。そのため、S2で通信エラーが生じた場合と同様に、再度ポイント発生時処理フローを実行して、処理結果識別情報Ipの取得を試みる。ただし、S4で通信エラーが生じた場合には、サーバ2は処理結果識別情報発行処理(S3)を既に実行しており、通信エラーによりクライアント3に到達しなかった処理結果識別情報Ipを送信済み識別情報Isとして記録してしまっている。この記録された送信済み識別情報Isは、S12でクライアント3から送信される対象とはなり得ないため、ポイント付与処理(S13)によって無効化されずに、有効な送信済み識別情報Isとしてサーバ2に記憶され続けることになる。そこで、サーバ2は、例えば所定時間が経過するごとに、発行されてから所定時間以上経過している送信済み識別情報Isがないかを検索して、このような送信済み識別情報Isを無効化することとしてもよい。
【0057】
また、S12で通信エラーが生じた場合、クライアント3はS16で受け入れ結果情報を受信できない。この場合、クライアント3は、処理結果初期化処理(S17)を実行せずに、例えば所定時間経過後にS11に戻って再度ポイント付与時処理フローを実行し、処理結果情報Dpの送信を試みる。なお、このようにポイント付与に成功しない間も、クライアント3は有効な処理結果識別情報Ipを記憶しているので、ポイント発生時処理フローを実行して、新たな処理結果識別情報Ipの発行を受けることなくポイント発生処理Pを実行することができる。これにより、クライアント3は、サーバ2への処理結果情報Dp送信に成功しない間に発生したポイントを処理結果情報Dpに反映させ続けて、最終的に処理結果情報Dpのサーバ2への送信が可能になった状態で、ポイント付与時処理フローを実行し、発生したポイントをサーバ2の処理結果管理データベースに反映させることができる。
【0058】
また、S16で通信エラーが生じた場合、やはりクライアント3は処理結果初期化処理(S17)を実行せずに、S12で送信対象とした処理結果識別情報Ipを記憶し続ける。ところが、この場合には、サーバ2はポイント付与処理(S14)を実行しており、S12で送信された処理結果識別情報Ipを無効化してしまっている。そのため、S16で通信エラーが発生した後にポイント発生時処理フローが実行されると、クライアント3は有効な処理結果識別情報Ipを記憶していない状態でポイント発生処理Pを実行することとなる。しかし、この場合でも、通信エラー発生から所定時間経過後に再びポイント付与時処理フローを実行することにより、クライアント3は新たに有効な処理結果識別情報Ipの発行を受けることができる。なぜなら、図5のフローに示すように、サーバ2はポイント付与処理(S14)により処理結果情報Dpの受け入れ処理が行われたか否かに関わらず、処理結果識別情報発行処理(S15)を実行して新たな処理結果識別情報Ipを発行し、クライアント3に対して送信するからである。
【0059】
なお、S12で処理結果情報Dpを送信した後、所定時間内にS16により新たな処理結果識別情報Ipを受信できない事象が発生した状態で、その後にポイント発生時処理フローを実行する場合、クライアント3は、S1の処理において、処理結果識別情報Ipが記録されているにも関わらず、処理結果識別情報Ipの発行要求をサーバ2に対して送信することとしてもよい。こうすれば、クライアント3は、新たに発生したポイントの受け入れがサーバ2側で拒絶される可能性がある状態でポイント発生処理Pを実行することを避けることができる。
【0060】
次に、図5で例示したポイント発生時処理フロー及びポイント付与時処理フローのそれぞれにおいて、クライアント3及びサーバ2のそれぞれが実行する処理の詳細について、説明する。
【0061】
まず、あるユーザ(以下、対象ユーザという)を対象としたポイント発生時処理フローにおいて、クライアント3が実行する処理の流れの例について、図6のフロー図に基づいて説明する。
【0062】
クライアント3の処理結果識別情報受信部32は、まず記憶部22内に対象ユーザに関連付けて処理結果識別情報Ipが記録されているか否かを判定する(S1)。S1で処理結果識別情報Ipが記録されていると判定された場合には、処理実行部33が、ポイント発生処理Pを実行して、実行結果を示す処理結果情報Dpを当該処理結果識別情報Ipと関連付けて記憶部22内に記録し(S5−1)、処理を終了する(正常終了)。この場合には、対象ユーザが認証ユーザとしてサインインしていない状態であっても、ポイント発生処理Pは正常に完了することとなる。
【0063】
一方、S1で処理結果識別情報Ipが記録されていないと判定された場合には、処理結果識別情報受信部32は、サインイン状態か否か(すなわち、対象ユーザが認証ユーザとしてサインインしているか否か)を判定する(S2−1)。S2−1でサインイン状態でないと判定された場合、処理結果識別情報受信部32は、処理結果識別情報Ipをサーバ2から受信することができないため、ポイント発生処理Pを実行せずに処理を終了する(異常終了)。この場合、クライアント3は、前述したS2で通信エラーが発生した場合と同様に、所定時間経過後に再度図6に示す処理を実行することになる。なお、この場合において、クライアント3の制御部21は、例えばポイント発生処理Pを実行できない旨のメッセージを表示して、サインインの実行を対象ユーザに促すなど、所定のエラー処理を実行してもよい。
【0064】
一方、S2−1でサインイン状態と判定された場合、処理結果識別情報受信部32は、サーバ2に対して処理結果識別情報Ipの発行要求を送信する(S2−2)。このとき、処理結果識別情報受信部32は、ユーザのサインインによって認証装置4から発行された認証状態識別情報とともに発行要求を送信する。そして、S2−2の発行要求に応じてサーバ2から送信される処理結果識別情報Ipを受信する(S4)。
【0065】
その後、処理実行部33がポイント発生処理Pを実行して、実行結果を示す処理結果情報Dpを、S4で受信した処理結果識別情報Ipと関連付けて、記憶部22に記録する(S5−2)。これにより、クライアント3におけるポイント発生処理Pが完了する(正常終了)。
【0066】
次に、上述した図6におけるS2−2の処理でクライアント3が送信した発行要求を受信した際に、S4でクライアント3が受信する処理結果識別情報Ipを送信するためにサーバ2が実行する処理の例について、図7のフロー図に基づいて説明する。
【0067】
まず、処理結果識別情報送信部31は、受信した発行要求に含まれる認証状態識別情報を用いて、認証装置4に対して問い合わせを行うことにより、当該認証状態識別情報が有効か否かを検証する(S2−3)。S2−3で検証に失敗した場合、サーバ2は発行要求を受け付けずに処理を終了する。この場合も、図5のフローにおけるS2で通信エラーが発生した場合と同様に、処理の再実行が行われることとなる。
【0068】
一方、S2−3で検証に成功した場合、処理結果識別情報送信部31は、処理結果識別情報発行処理を実行する(S3)。すなわち、まず新たな処理結果識別情報Ipを発行する(S3−1)。そして、発行した処理結果識別情報Ipを対象ユーザのユーザIDと関連付けて、送信済み識別情報Isとして記憶部12内に記録する(S3−2)。このとき、処理結果識別情報送信部31は、対象ユーザのユーザIDを、S2−3の検証処理において認証装置4から取得してもよい。あるいは、クライアント3が、図6のS2−2の処理において発行要求とともにユーザIDを送信することとしてもよい。続いて、処理結果識別情報送信部31は、S12で発行した処理結果識別情報Ipを、発行要求を送信したクライアント3に対して送信し(S3−3)、処理を終了する。
【0069】
なお、前述したように、クライアント3は、S1で対象ユーザに関連付けて処理結果識別情報Ipが記録されていないと判定した場合には、S2−2で新たな処理結果識別情報Ipの発行をサーバ2に対して要求する。そのため、例えば対象ユーザが既にあるクライアント3を使用して処理結果識別情報Ipの発行を受けていたとしても、初めて他のクライアント3を使用する場合には、当該他のクライアント3は新たに処理結果識別情報Ipの発行をサーバ2に要求することとなる。また、サーバ2は、ユーザごとに一つの処理結果識別情報Ipを発行するのではなく、一人のユーザが複数のクライアント3を使用する場合には、これに応じて一人のユーザに関連付けて複数の処理結果識別情報Ipを発行し、これらの処理結果識別情報Ipをそれぞれ送信済み識別情報Isとして記録する。そのため、サーバ2は、各クライアント3からの処理結果識別情報Ipの発行要求を受信した場合には、ユーザごとに既に送信済み識別情報Isを記録しているか否かを判定する必要はなく、図7に示したような同一の処理により処理結果識別情報Ipの発行を行うことができる。
【0070】
次に、ポイント発生時処理フローにおいて、クライアント3が実行する処理の流れの例について、図8のフロー図に基づいて説明する。なお、ここで説明する処理は、例えばクライアント3を使用する各ユーザについて所定時間おきに実行されてもよいし、あるいは対象ユーザについてポイント発生処理Pが完了した時点などにおいて実行されることとしてもよい。
【0071】
まず、処理結果情報送信部34は、処理実行部33によって出力される処理結果情報Dpが、記憶部22に記録されているか否か判定する(S11)。S11により処理結果情報Dpが記録されていないと判定された場合、サーバ2に送信すべき処理結果情報Dpは存在しないので、処理結果情報送信部34は処理を中止する(異常終了)。
【0072】
一方、S11により処理結果情報Dpが記録されていると判定された場合、処理結果情報送信部34は、さらに対象ユーザが認証ユーザとしてサインインしてサインイン状態になっているか否かを判定する(S12−1)。S12−1によりサインイン状態にないと判定された場合、処理結果情報Dpをサーバ2に送信することができないため、処理結果情報送信部34は処理を中止する(異常終了)。この場合、図5のフローにおけるS12で通信エラーが発生した場合と同様に、処理の再実行が行われることとなる。
【0073】
一方、S12−1により対象ユーザがサインイン状態にあると判定された場合、処理結果情報送信部34は、前述した図6のフローにおけるS5−1又はS5−2の処理により互いに関連付けて記録されている処理結果情報Dpと処理結果識別情報Ipとを、サーバ2に対して送信する(S12−2)。このとき、処理結果情報送信部34は、認証装置4より受信した認証状態識別情報を併せて送信する。
【0074】
次に、クライアント3は、S12−2で送信した情報に対するサーバ2の応答を受信する(S16−1)。この応答には、S12−2で送信した処理結果情報Dpに対する受け入れ処理が成功したか否かを示す受け入れ結果情報と、新たに発行された処理結果識別情報Ipと、が含まれている。
【0075】
続いてクライアント3の処理結果識別情報受信部32は、S16−1で受信した受け入れ結果情報が、受け入れ処理の成功を示しているか否かを判定する(S16−2)。S16−2により、サーバ2から処理結果情報Dpの受け入れ失敗の応答があったと判定された場合には、クライアント3は、所定のメッセージを出力して、対象ユーザにポイントの受け入れがされなかった旨を提示する(S16−3)。
【0076】
S16−2で受け入れ成功の応答があったと判定された場合、及び受け入れ失敗の応答に応じてS16−3でメッセージ出力がなされた場合のいずれの場合にも、続いて処理結果識別情報受信部32は、処理結果初期化処理を実行する(S17)。具体的に、処理結果識別情報受信部32は、対象ユーザに関連付けて記憶部22に記録されている処理結果識別情報Ip(すなわち、S12−2で送信対象とした処理結果識別情報Ip)をS16−1で受信した処理結果識別情報Ipにより更新する(S17−1)。さらに、対象ユーザに関連付けて記憶部22に記録されている処理結果情報Dpにより示されるポイントを、0に初期化して(S17−2)、処理を終了する(正常終了)。
【0077】
続いて、上述した図7のフローにおけるS12−2の処理でクライアント3が送信した情報を受信した際に、S16−1でクライアント3が受信する応答を送信するためにサーバ2が実行する処理の例について、図9のフロー図に基づいて説明する。
【0078】
まず、処理結果情報受信部35は、受信した情報に含まれる認証状態識別情報を用いて、認証装置4に対して問い合わせを行うことにより、当該認証状態識別情報が有効か否かを検証する(S12−3)。S12−3で検証に失敗した場合、サーバ2は処理を終了する。この場合も、図5のフローにおけるS12で通信エラーが発生した場合と同様に、処理の再実行が行われることとなる。
【0079】
一方、S12−3で検証に成功した場合、処理結果受け入れ部36は、クライアント3から受信した情報に含まれる処理結果識別情報Ipが、送信済み識別情報Isとして記憶部12内に記録されているか否か判定する(S13)。
【0080】
S13の処理により、受信した処理結果識別情報Ipが送信済み識別情報Isとして記録されていると判定された場合、処理結果受け入れ部36は、ポイント付与処理を実行する(S14)。具体的に、まず処理結果受け入れ部36は、クライアント3から当該処理結果識別情報Ipとともに受信した処理結果情報Dpの受け入れ処理を行う(S14−1)。すなわち、当該処理結果情報Dpにより示されるポイントを、認証ユーザのユーザIDと関連付けてサーバ2が記録しているポイントに対して、加算する処理を行う。続いて、処理結果受け入れ部36は、送信済み識別情報Isを無効化する無効化処理を行う(S14−2)。
【0081】
S13で処理結果識別情報Ipが送信済み識別情報Isとして記録されていないと判定された場合、及び処理結果識別情報Ipが送信済み識別情報Isとして記録されていると判定されS14の処理が実行された場合のいずれの場合においても、処理結果識別情報送信部31が、処理結果識別情報発行処理を実行する(S15)。すなわち、まず処理結果識別情報送信部31は、新たな処理結果識別情報Ipを発行する(S15−1)。そして、発行した処理結果識別情報Ipを認証ユーザのユーザIDと関連付けて、送信済み識別情報Isとして記憶部12内に記録する(S15−2)。さらに、処理結果識別情報送信部31は、S15−1で発行した処理結果識別情報Ipを、S14−1の受け入れ処理を実行したか否かを示す受け入れ結果情報とともに、処理結果情報Dpの送信を行ったクライアント3に対する応答として送信し(S15−3)、処理を終了する。
【0082】
以上説明した本実施の形態によれば、サーバ2がクライアント3に送信する処理結果識別情報Ipを送信済み識別情報Isとして記録しておき、クライアント3から処理結果情報Dpを受信した際には、当該処理結果情報Dpとともに受信した処理結果識別情報Ipが送信済み識別情報Isとして記録されている場合に当該処理結果情報Dpの受け入れ処理を行う。これにより、ユーザの不正な操作やネットワークトラブルなどによって一つの処理結果情報Dpを重複してサーバ2が受け入れないようにすることができる。
【0083】
なお、本発明の実施形態は、以上説明したものに限られない。例えば以上の説明においては、各クライアント3は所定処理として各ユーザについてポイントを発生させる処理を実行し、サーバ2は各ユーザに付与されるポイントを管理することとしたが、これに限らず、サーバ2は、クライアント3が実行する各種の処理の結果を受け入れて、管理することとしてもよい。また、本実施形態では、ユーザが認証装置4による認証を受けることによってサーバ2とクライアント3との間の接続が確立されることとしたが、サーバ2及びクライアント3は、認証装置4を介さずに直接接続を確立して互いにデータ通信を行うこととしてもよい。
【0084】
また、以上の説明において、クライアント3は、処理結果識別情報Ipと処理結果情報Dpとを関連付けて記録するデータファイルFを暗号化した状態で記憶部12に記憶することとしてもよい。また、ユーザによるデータファイルFの改ざんや複写を制限する制御を実行してもよい。これらの機能により、ユーザが、データファイルFに記憶された処理結果情報Dpを重複してサーバ2に受け入れさせる不正な操作を実行することをさらに困難にすることができる。
【図面の簡単な説明】
【0085】
【図1】本発明の実施の形態に係る情報処理システムの全体構成例を示す概要図である。
【図2】本発明の実施の形態に係る情報処理システムによって実現される機能例を示す機能ブロック図である。
【図3】サーバに記録される送信済み識別情報の一例を示す図である。
【図4】処理結果管理データベース内に格納される情報の一例を示す図である。
【図5】本発明の実施の形態に係る情報処理システムが実行する処理の流れの概要を示す図である。
【図6】ポイント発生時フローにおいてクライアントが実行する処理の流れの一例を示すフロー図である。
【図7】ポイント発生時フローにおいてサーバが実行する処理の流れの一例を示すフロー図である。
【図8】ポイント付与時フローにおいてクライアントが実行する処理の流れの一例を示すフロー図である。
【図9】ポイント付与時フローにおいてサーバが実行する処理の流れの一例を示すフロー図である。
【符号の説明】
【0086】
1 情報処理システム、2 サーバ、3 クライアント、4 認証装置、11,21 制御部、12,22 記憶部、13,23 通信部、31 処理結果識別情報送信部、32 処理結果識別情報受信部、33 処理実行部、34 処理結果情報送信部、35 処理結果情報受信部、36 処理結果受け入れ部。
【特許請求の範囲】
【請求項1】
互いに通信接続可能なクライアントとサーバとを含む情報処理システムであって、
前記サーバは、
処理結果識別情報を前記クライアントに送信するとともに、当該送信する処理結果識別情報を送信済み識別情報として記録する処理結果識別情報送信手段と、
前記クライアントから、前記クライアントが所定処理を実行した結果を示す処理結果情報を、処理結果識別情報とともに受信する処理結果情報受信手段と、
前記クライアントから受信した処理結果識別情報が前記送信済み識別情報として記録されている場合に、当該処理結果識別情報とともに受信した前記処理結果情報の受け入れ処理を行うとともに、当該送信済み識別情報を無効化する処理結果情報受け入れ手段と、
を含み、
前記クライアントは、
前記サーバから処理結果識別情報を受信し、当該受信した処理結果識別情報を記録する処理結果識別情報受信手段と、
前記受信した処理結果識別情報を記録した状態において、前記サーバとの通信接続の状態に関わらず、前記所定処理を実行し、実行結果を示す処理結果情報を記録する処理実行手段と、
前記記録された処理結果情報を、前記記録された処理結果識別情報とともに前記サーバに送信する処理結果情報送信手段と、
を含むことを特徴とする情報処理システム。
【請求項2】
請求項1記載の情報処理システムにおいて、
前記処理結果識別情報送信手段は、前記処理結果情報受信手段が前記クライアントから処理結果情報を受信した場合に、前記処理結果情報受け入れ手段が当該受信した処理結果情報の受け入れ処理を行うか否かに関わらず、新たな処理結果識別情報を前記クライアントに送信し、
前記処理結果識別情報受信手段は、前記新たな処理結果識別情報を受信した場合に、過去に記録した処理結果識別情報を無効化して、当該受信した新たな処理結果識別情報を記録する
ことを特徴とする情報処理システム。
【請求項3】
請求項2記載の情報処理システムにおいて、
前記処理結果識別情報受信手段は、前記受信した新たな処理結果識別情報を記録するとともに、前記記録されている処理結果情報を初期化し、
前記処理実行手段は、前記所定処理を実行するごとに、前記記録されている処理結果情報を、当該記録されている処理結果情報と、新たな実行結果と、に応じた情報により更新する
ことを特徴とする情報処理システム。
【請求項4】
請求項3記載の情報処理システムにおいて、
前記処理結果情報受け入れ手段は、前記処理結果情報の受け入れ処理として、前記サーバに記録されている前記所定処理の処理結果に関する情報を、当該情報と、前記受信した処理結果情報と、に応じた情報により更新する処理を実行する
ことを特徴とする情報処理システム。
【請求項5】
請求項4記載の情報処理システムにおいて、
前記処理結果情報は、数値情報であって、
前記処理結果情報受け入れ手段は、前記処理結果情報の受け入れ処理として、前記サーバに記録されている数値情報に、前記受信した処理結果情報により示される数値を加算することにより、当該サーバに記録されている数値情報を更新する処理を実行し、
前記処理結果識別情報受信手段は、前記受信した新たな処理結果識別情報を記録するとともに、前記記録されている処理結果情報を0に初期化し、
前記処理実行手段は、前記所定処理を実行するごとに、前記記録されている処理結果情報により示される数値に、新たな実行結果に応じた数値を加算することにより、前記記録されている処理結果情報を更新する
ことを特徴とする情報処理システム。
【請求項6】
請求項1から5のいずれか一項記載の情報処理システムにおいて、
前記処理結果識別情報送信手段は、前記処理結果識別情報を、当該処理結果識別情報の送信対象となるユーザと関連付けて前記送信済み識別情報として記録し、
前記処理結果情報受信手段は、ユーザを特定するユーザ関連情報とともに前記処理結果情報を受信し、
前記処理結果情報受け入れ手段は、前記クライアントから受信した処理結果識別情報が、当該処理結果識別情報とともに受信したユーザ関連情報により特定されるユーザと関連付けて前記送信済み識別情報として記録されている場合に、当該処理結果識別情報とともに受信した前記処理結果情報の受け入れ処理を行うとともに、当該ユーザと関連付けて記録されている前記送信済み識別情報を無効化し、
前記処理結果識別情報受信手段は、前記サーバから受信した処理結果識別情報を、当該処理結果識別情報の送信対象となったユーザと関連付けて記録し、
前記処理実行手段は、前記処理結果情報を、前記所定処理の対象となるユーザと関連付けて記録し、
前記処理結果情報送信手段は、前記記録された処理結果情報を、当該処理結果情報が関連付けられているユーザに関連付けて記録された前記処理結果識別情報、及び当該ユーザを特定するユーザ関連情報とともに、前記サーバに送信する
ことを特徴とする情報処理システム。
【請求項7】
クライアントと通信接続可能なサーバであって、
前記クライアントによる所定処理の実行に先立って、処理結果識別情報を前記クライアントに送信するとともに、当該送信する処理結果識別情報を送信済み識別情報として記録する処理結果識別情報送信手段と、
前記クライアントから、前記所定処理を実行した結果を示す処理結果情報を、処理結果識別情報とともに受信する処理結果情報受信手段と、
前記クライアントから受信した処理結果識別情報が前記送信済み識別情報として記録されている場合に、当該処理結果識別情報とともに受信した前記処理結果情報の受け入れ処理を行うとともに、当該送信済み識別情報を無効化する処理結果情報受け入れ手段と、
を含むことを特徴とするサーバ。
【請求項8】
サーバと通信接続可能なクライアントであって、
前記サーバから処理結果識別情報を受信し、当該受信した処理結果識別情報を記録する処理結果識別情報受信手段と、
前記受信した処理結果識別情報を記録した状態において、前記サーバとの通信接続の状態に関わらず、所定処理を実行し、実行結果を示す処理結果情報を記録する処理実行手段と、
前記記録された処理結果情報を、前記記録された処理結果識別情報とともに前記サーバに送信する処理結果情報送信手段と、
を含み、
前記送信した処理結果識別情報が、前記サーバによる前記送信した処理結果情報の受け入れ処理を行うか否かの判定に用いられる
ことを特徴とするクライアント。
【請求項9】
クライアントと通信接続可能なコンピュータを用いた情報処理方法であって、
前記クライアントによる所定処理の実行に先立って、処理結果識別情報を前記クライアントに送信するとともに、当該送信する処理結果識別情報を送信済み識別情報として記録するステップと、
前記クライアントから、前記所定処理を実行した結果を示す処理結果情報を、処理結果識別情報とともに受信するステップと、
前記クライアントから受信した処理結果識別情報が前記送信済み識別情報として記録されている場合に、当該処理結果識別情報とともに受信した前記処理結果情報の受け入れ処理を行うとともに、当該送信済み識別情報を無効化するステップと、
を含むことを特徴とする情報処理方法。
【請求項10】
サーバと通信接続可能なコンピュータを用いた情報処理方法であって、
前記サーバから処理結果識別情報を受信し、当該受信した処理結果識別情報を記録するステップと、
前記受信した処理結果識別情報を記録した状態において、前記サーバとの通信接続の状態に関わらず、所定処理を実行し、実行結果を示す処理結果情報を記録するステップと、
前記記録された処理結果情報を、前記記録された処理結果識別情報とともに前記サーバに送信するステップと、
を含み、
前記送信した処理結果識別情報が、前記サーバによる前記送信した処理結果情報の受け入れ処理を行うか否かの判定に用いられる
ことを特徴とする情報処理方法。
【請求項11】
サーバと通信接続可能なコンピュータを、
前記サーバから処理結果識別情報を受信し、当該受信した処理結果識別情報を記録する処理結果識別情報受信手段、
前記受信した処理結果識別情報を記録した状態において、前記サーバとの通信接続の状態に関わらず、所定処理を実行し、実行結果を示す処理結果情報を記録する処理実行手段、及び
前記記録された処理結果情報を、前記記録された処理結果識別情報とともに前記サーバに送信する処理結果情報送信手段、
として機能させ、
前記送信した処理結果識別情報が、前記サーバによる前記送信した処理結果情報の受け入れ処理を行うか否かの判定に用いられる
ことを特徴とするプログラム。
【請求項12】
請求項11記載のプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体。
【請求項1】
互いに通信接続可能なクライアントとサーバとを含む情報処理システムであって、
前記サーバは、
処理結果識別情報を前記クライアントに送信するとともに、当該送信する処理結果識別情報を送信済み識別情報として記録する処理結果識別情報送信手段と、
前記クライアントから、前記クライアントが所定処理を実行した結果を示す処理結果情報を、処理結果識別情報とともに受信する処理結果情報受信手段と、
前記クライアントから受信した処理結果識別情報が前記送信済み識別情報として記録されている場合に、当該処理結果識別情報とともに受信した前記処理結果情報の受け入れ処理を行うとともに、当該送信済み識別情報を無効化する処理結果情報受け入れ手段と、
を含み、
前記クライアントは、
前記サーバから処理結果識別情報を受信し、当該受信した処理結果識別情報を記録する処理結果識別情報受信手段と、
前記受信した処理結果識別情報を記録した状態において、前記サーバとの通信接続の状態に関わらず、前記所定処理を実行し、実行結果を示す処理結果情報を記録する処理実行手段と、
前記記録された処理結果情報を、前記記録された処理結果識別情報とともに前記サーバに送信する処理結果情報送信手段と、
を含むことを特徴とする情報処理システム。
【請求項2】
請求項1記載の情報処理システムにおいて、
前記処理結果識別情報送信手段は、前記処理結果情報受信手段が前記クライアントから処理結果情報を受信した場合に、前記処理結果情報受け入れ手段が当該受信した処理結果情報の受け入れ処理を行うか否かに関わらず、新たな処理結果識別情報を前記クライアントに送信し、
前記処理結果識別情報受信手段は、前記新たな処理結果識別情報を受信した場合に、過去に記録した処理結果識別情報を無効化して、当該受信した新たな処理結果識別情報を記録する
ことを特徴とする情報処理システム。
【請求項3】
請求項2記載の情報処理システムにおいて、
前記処理結果識別情報受信手段は、前記受信した新たな処理結果識別情報を記録するとともに、前記記録されている処理結果情報を初期化し、
前記処理実行手段は、前記所定処理を実行するごとに、前記記録されている処理結果情報を、当該記録されている処理結果情報と、新たな実行結果と、に応じた情報により更新する
ことを特徴とする情報処理システム。
【請求項4】
請求項3記載の情報処理システムにおいて、
前記処理結果情報受け入れ手段は、前記処理結果情報の受け入れ処理として、前記サーバに記録されている前記所定処理の処理結果に関する情報を、当該情報と、前記受信した処理結果情報と、に応じた情報により更新する処理を実行する
ことを特徴とする情報処理システム。
【請求項5】
請求項4記載の情報処理システムにおいて、
前記処理結果情報は、数値情報であって、
前記処理結果情報受け入れ手段は、前記処理結果情報の受け入れ処理として、前記サーバに記録されている数値情報に、前記受信した処理結果情報により示される数値を加算することにより、当該サーバに記録されている数値情報を更新する処理を実行し、
前記処理結果識別情報受信手段は、前記受信した新たな処理結果識別情報を記録するとともに、前記記録されている処理結果情報を0に初期化し、
前記処理実行手段は、前記所定処理を実行するごとに、前記記録されている処理結果情報により示される数値に、新たな実行結果に応じた数値を加算することにより、前記記録されている処理結果情報を更新する
ことを特徴とする情報処理システム。
【請求項6】
請求項1から5のいずれか一項記載の情報処理システムにおいて、
前記処理結果識別情報送信手段は、前記処理結果識別情報を、当該処理結果識別情報の送信対象となるユーザと関連付けて前記送信済み識別情報として記録し、
前記処理結果情報受信手段は、ユーザを特定するユーザ関連情報とともに前記処理結果情報を受信し、
前記処理結果情報受け入れ手段は、前記クライアントから受信した処理結果識別情報が、当該処理結果識別情報とともに受信したユーザ関連情報により特定されるユーザと関連付けて前記送信済み識別情報として記録されている場合に、当該処理結果識別情報とともに受信した前記処理結果情報の受け入れ処理を行うとともに、当該ユーザと関連付けて記録されている前記送信済み識別情報を無効化し、
前記処理結果識別情報受信手段は、前記サーバから受信した処理結果識別情報を、当該処理結果識別情報の送信対象となったユーザと関連付けて記録し、
前記処理実行手段は、前記処理結果情報を、前記所定処理の対象となるユーザと関連付けて記録し、
前記処理結果情報送信手段は、前記記録された処理結果情報を、当該処理結果情報が関連付けられているユーザに関連付けて記録された前記処理結果識別情報、及び当該ユーザを特定するユーザ関連情報とともに、前記サーバに送信する
ことを特徴とする情報処理システム。
【請求項7】
クライアントと通信接続可能なサーバであって、
前記クライアントによる所定処理の実行に先立って、処理結果識別情報を前記クライアントに送信するとともに、当該送信する処理結果識別情報を送信済み識別情報として記録する処理結果識別情報送信手段と、
前記クライアントから、前記所定処理を実行した結果を示す処理結果情報を、処理結果識別情報とともに受信する処理結果情報受信手段と、
前記クライアントから受信した処理結果識別情報が前記送信済み識別情報として記録されている場合に、当該処理結果識別情報とともに受信した前記処理結果情報の受け入れ処理を行うとともに、当該送信済み識別情報を無効化する処理結果情報受け入れ手段と、
を含むことを特徴とするサーバ。
【請求項8】
サーバと通信接続可能なクライアントであって、
前記サーバから処理結果識別情報を受信し、当該受信した処理結果識別情報を記録する処理結果識別情報受信手段と、
前記受信した処理結果識別情報を記録した状態において、前記サーバとの通信接続の状態に関わらず、所定処理を実行し、実行結果を示す処理結果情報を記録する処理実行手段と、
前記記録された処理結果情報を、前記記録された処理結果識別情報とともに前記サーバに送信する処理結果情報送信手段と、
を含み、
前記送信した処理結果識別情報が、前記サーバによる前記送信した処理結果情報の受け入れ処理を行うか否かの判定に用いられる
ことを特徴とするクライアント。
【請求項9】
クライアントと通信接続可能なコンピュータを用いた情報処理方法であって、
前記クライアントによる所定処理の実行に先立って、処理結果識別情報を前記クライアントに送信するとともに、当該送信する処理結果識別情報を送信済み識別情報として記録するステップと、
前記クライアントから、前記所定処理を実行した結果を示す処理結果情報を、処理結果識別情報とともに受信するステップと、
前記クライアントから受信した処理結果識別情報が前記送信済み識別情報として記録されている場合に、当該処理結果識別情報とともに受信した前記処理結果情報の受け入れ処理を行うとともに、当該送信済み識別情報を無効化するステップと、
を含むことを特徴とする情報処理方法。
【請求項10】
サーバと通信接続可能なコンピュータを用いた情報処理方法であって、
前記サーバから処理結果識別情報を受信し、当該受信した処理結果識別情報を記録するステップと、
前記受信した処理結果識別情報を記録した状態において、前記サーバとの通信接続の状態に関わらず、所定処理を実行し、実行結果を示す処理結果情報を記録するステップと、
前記記録された処理結果情報を、前記記録された処理結果識別情報とともに前記サーバに送信するステップと、
を含み、
前記送信した処理結果識別情報が、前記サーバによる前記送信した処理結果情報の受け入れ処理を行うか否かの判定に用いられる
ことを特徴とする情報処理方法。
【請求項11】
サーバと通信接続可能なコンピュータを、
前記サーバから処理結果識別情報を受信し、当該受信した処理結果識別情報を記録する処理結果識別情報受信手段、
前記受信した処理結果識別情報を記録した状態において、前記サーバとの通信接続の状態に関わらず、所定処理を実行し、実行結果を示す処理結果情報を記録する処理実行手段、及び
前記記録された処理結果情報を、前記記録された処理結果識別情報とともに前記サーバに送信する処理結果情報送信手段、
として機能させ、
前記送信した処理結果識別情報が、前記サーバによる前記送信した処理結果情報の受け入れ処理を行うか否かの判定に用いられる
ことを特徴とするプログラム。
【請求項12】
請求項11記載のプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【公開番号】特開2009−252150(P2009−252150A)
【公開日】平成21年10月29日(2009.10.29)
【国際特許分類】
【出願番号】特願2008−102502(P2008−102502)
【出願日】平成20年4月10日(2008.4.10)
【出願人】(395015319)株式会社ソニー・コンピュータエンタテインメント (871)
【Fターム(参考)】
【公開日】平成21年10月29日(2009.10.29)
【国際特許分類】
【出願日】平成20年4月10日(2008.4.10)
【出願人】(395015319)株式会社ソニー・コンピュータエンタテインメント (871)
【Fターム(参考)】
[ Back to top ]