以下、図面を参照して種々の実施形態について詳細に説明する。なお、各図面において同一または相当の部分に対しては同一の符号を付すこととする。
本実施形態に係る処理システムは、端末及びサーバ間で通信を行うシステムである。当該処理システムでは、例えば、端末にインストールされたソフトウェア(アプリケーション)が起動され、ユーザに対してサービスが提供される。
ユーザとは、処理システムの利用者である。ユーザは端末の所有者であってもよいし、端末の所有者とは異なる者であってもよい。以下では、ユーザとは、端末の操作者、すなわち端末を操作して所定の操作コマンドを端末に対して指定する者である、として説明する。アプリケーションとは、オペレーティングシステム上にインストールされるソフトウェアである。このアプリケーションが端末で実行されることで、ユーザは処理システムから提供されるサービスを受けることができる。直接的または間接的にユーザに何らかの満足を与えることができるのであれば、サービスの種類は何ら限定されない。例えば、サービスはゲームであってもよいし学習または業務の補助であってもよいし、情報の提供であってもよい。以下では、一例として、処理システムがゲームをユーザへ提供する場合を説明する。
図1は、実施形態に係る処理システム1の構成を示す概略図である。図1に示すように、処理システム1は、例えば、複数の端末10A、及び、サーバ30を備える。複数の端末10Aは、端末10A1〜端末10Anを含む(nは1より大きい自然数である)。端末10A1〜端末10Anは、アプリケーションを実行しサーバ30との間で命令またはデータを送受信するコンピュータである。端末10Aの例として携帯電話機、据置型または携帯型の通信機能付ゲーム機、据置型または携帯型のパーソナルコンピュータが挙げられるが、端末10Aはこれらに限定されない。端末10A1〜端末10Anは、ネットワークNを介してサーバ30と通信可能に構成されている。ネットワークNは、例えばインターネットまたは専用回線等である。サーバ30は、端末10A1〜端末10Anとの間で命令またはデータを送受信することで、サービスの提供に必要な機能を端末10Aに提供するコンピュータである。端末10A1〜端末10Anは、ほぼ同様に構成されるため、以下では、端末10A1を代表して説明する。なお、図1の処理システム1は一例であり、一台の端末10A1及びサーバ30からなる処理システム1であってもよい。
図2は、図1に示す端末10A1及びサーバ30のハードウェア構成を説明するブロック図である。図2に示すように、端末10A1及びサーバ30は、CPU(Central Processing Unit)101、ROM(Read Only Memory)またはRAM(Random Access Memory)等の主記憶部102、ハードディスク等の補助記憶部103、通信を制御するネットワークカード等の通信制御部104、カメラまたはタッチパネル等の入力部105及びディスプレイ等の出力部106等を含む通常のコンピュータとして構成される。後述する端末10A1及びサーバ30の各機能は、例えば、CPU101の制御により、主記憶部102等のハードウェア上に所定のソフトウェアを読み込ませ、入力部105及び出力部106を動作させ、主記憶部102または補助記憶部103に記憶されたデータの読み出しまたは書き込みを行い、通信制御部104により通信する等、の各ハードウェアの動作の組み合わせによって実現される。
図3は、処理システム1の機能構成を示すブロック図である。図3に示すように端末10A1は、例えば、入出力部11、ゲーム管理部12、操作コマンドテーブル13、処理IDテーブル14、処理実行部15、端末側送受信部16、データ記憶部17、及び実行状況テーブル18を備える。
以下では、ゲームとして、モンスターが描かれた仮想的なカードを用いてコンピュータまたは他のユーザと対戦(バトル)を行うゲームを一例として説明する。このゲームでは、ユーザが抽選等によりカードを取得する。取得したカードのモンスターにはレベルが付与されており、得られた「経験値」に応じてモンスターのレベルが上昇し、レベルに応じてモンスターの強さに関連したパラメータが上昇する。カード同士が「合成」された場合には、異なるモンスターのカードとなったり、合成前のモンスターへ「経験値」が付与されたりする。このように、ユーザは、モンスターを「経験値」に応じて成長させて、コンピュータまたは他のユーザと対戦(バトル)を行う。また、ユーザのレベルも存在し、ユーザのレベルに応じてゲームの進行や所有可能なカード枚数等が変更される。当該ゲームを実行するアプリケーションは、例えば、通信を介して端末10A1にダウンロードされて、インストールされる。なお、モンスターまたはユーザのレベルとは、ゲーム内におけるモンスターまたはユーザの強さの段階を示す数値である。
入出力部11は、入力操作受付部11a及び表示部11bを備える。入出力部11は、CPU101が主記憶部102内のプログラムを実行し、該プログラムに従って入力部105及び出力部106の少なくとも一方を制御することで実現される。入力操作受付部11aは、CPU101が入力部105を制御することで実現され、表示部11bは、CPU101が出力部106を制御することで実現される。端末10A1がタッチパネルを備えるならば、そのタッチパネルが入力操作受付部11a及び表示部11bとして機能する。端末10A1がキーボード、マウス、及びモニタを備えるならば、キーボード及びマウスが入力操作受付部11aとして機能し、モニタが表示部11bとして機能する。入力操作受付部11aは、ユーザ操作を受け付ける入力装置である。ユーザ操作とは、端末10A1に何らかの処理を実行させるために、ユーザが端末10A1の入力インタフェースを操る操作をいう。ユーザ操作の例として、ソフトキーまたはハードキーを押下する操作やスライド操作などが挙げられるが、ユーザ操作の種類は何ら限定されない。入力操作受付部11aは、例えば、ゲームの進行に関するユーザ操作を受け付ける。入力操作受付部11aは、ユーザ操作を受け付けた旨の情報をゲーム管理部12へ出力する。当該ユーザ操作を受け付けた旨の情報には、例えば、ユーザにより操作されたソフトキーやハードキーを示す情報が含まれる。ユーザ操作の種類は様々であるから、ユーザ操作を受け付けた旨の情報が示す内容についても様々な態様が考えられる。表示部11bは、処理実行部15の出力結果に基づいて、ゲームの内容等を表示する。
ゲーム管理部12は、処理実行部15(より詳細には、後述する処理部15a)に実行させる所定の処理の管理を行うことにより、ゲームの進行を管理する。ゲーム管理部12は、CPU101が主記憶部102内のプログラムを実行し、該プログラムに従って主記憶部102又は補助記憶部103からのデータの読み出しを制御することで実現される。所定の処理とは、処理システム1によって提供されるサービスに係る、端末10A1側のアプリケーション内で実行される処理である。具体的には、所定の処理とは、任意のデータ入力、演算、及びデータ出力等である。処理の手順は、例えば端末10A1にインストールされたアプリケーションのプログラムで予め定められる。ゲーム管理部12は、例えば、処理実行部15に処理の実行を命令する。
ゲーム管理部12は、例えば、入力操作受付部11aから取得した、ユーザ操作を受け付けた旨の情報、及び、操作コマンドテーブル13の情報に基づいて、処理実行部15において実行するゲームの処理を特定する。操作コマンドテーブル13は、主記憶部102又は補助記憶部103により実現される。ゲーム管理部12は、まず、ユーザ操作を受け付けた旨の情報及びゲームの進行状況から、操作コマンドIDを特定する。操作コマンドIDとは、ユーザが端末10A1に対して行った操作の内容を一意に特定する情報である。ゲームの進行状況を考慮して操作コマンドIDが特定されるため、ユーザにより操作されたソフトキーやハードキーを示す情報が同じあっても、ゲームの進行状況によって、特定される操作コマンドIDは異なる。続いて、ゲーム管理部12は、操作コマンドテーブル13を参照し、操作コマンドIDに対応した処理(処理実行部15において実行するゲームの処理)を特定する。
図4は、操作コマンドテーブル13の一例である。図4に示すように、操作コマンドテーブル13では、操作の内容を特定する「操作コマンドID」に、「処理ID」及び「処理内容」が関連付けられている。なお、以下の説明においては、関連付けられているとは、一対一または多対一(一対多)で対応付けられていることをいう。また、関連とは、第1のデータと第2のデータとの関係が1レコード内で直接に特定できる場合と、第1のデータを含む第1のレコードと第2のデータを含む第2のレコードとの関係が何らかのデータ項目を介して間接的に特定できる場合との双方を意味し得る。「処理ID」とは、処理実行部15の処理を一意に特定する情報である。「処理内容」とは、処理IDで特定される処理の具体的な内容である。
また、ゲーム管理部12は、処理IDテーブル14を参照し、操作コマンドテーブル13に基づいて特定した処理(処理ID)に係る情報を取得する。処理IDテーブル14は、主記憶部102又は補助記憶部103により実現される。処理に係る情報とは、利用パラメータ及び結果パラメータが含まれた情報である。利用パラメータとは、処理の実行に必要な情報である。結果パラメータとは、処理の実行後に出力される情報である。図5は、処理IDテーブル14の一例である。図5に示すように、処理IDテーブル14では、処理を識別する「処理ID」に、「処理内容」、「利用パラメータ」及び「結果パラメータ」が関連付けられている。「処理ID」及び「処理内容」は、上述した操作コマンドテーブル13における「処理ID」及び「処理内容」と同じ内容を示すものである。「結果パラメータ」には、処理後に出力されるだけでデータ記憶部17に格納された情報(データ)を更新しないものと、処理後に出力されるとともにデータ記憶部17に格納された情報(データ)を更新するものとがある。
例えば、「処理ID」が0055の場合を説明する。この場合、合成ベースカード選択画面へ移動する処理が「処理内容」として、ベースカードのカードシリアルが「結果パラメータ」として、それぞれ処理ID:0055に関連付けられている。カードシリアルとは、カードを一意に特定する識別子である。同じカード種別であっても、異なるカードであれば異なるカードシリアルが付される。合成ベースカード選択画面へ移動する処理では、結果パラメータとして、合成後のモンスターの基本となるベースカードを特定するカードシリアルが出力される。
同様に、「処理ID」が0056の場合を説明する。この場合、合成素材カード選択画面へ移動する処理が「処理内容」として、素材カードのカードシリアルが「結果パラメータ」として、それぞれ処理ID:0056に関連付けられている。すなわち、合成素材カード選択画面へ移動する処理では、結果パラメータとして、ベースカードのモンスターを成長させるための素材カードを特定するカードシリアルが出力される。
同様に、「処理ID」が0057の場合を説明する。この場合、合成実行処理が「処理内容」として、ベースカード及び素材カードのカードシリアルが「利用パラメータ」として、合成後のベースカードを特定するカードシリアル及び合成後のベースカードのカードレベルが「結果パラメータ」として、それぞれ処理ID:0057に関連付けられている。すなわち、合成実行処理では、ベースカード及び素材カードのカードシリアルを利用パラメータとして処理が行われ、結果パラメータとして、合成後のベースカードを特定するカードシリアル、及び、合成後のベースカードのカードレベルが出力される。ここで、カードレベルとは、カードのモンスターの強さを示す数値である。
このように、ゲーム管理部12は、操作コマンドテーブル13を参照することにより処理実行部15において実行させる処理に係る処理IDを特定する。また、ゲーム管理部12は、処理IDテーブル14を参照することにより処理実行部15において実行させる処理の利用パラメータ及び結果パラメータを特定する。ゲーム管理部12は、特定した処理ID、並びに、当該処理IDに係る利用パラメータ及び結果パラメータを、処理実行部15へ出力することにより、処理実行部15に対して処理の実行を命令する。
処理実行部15は、処理部15a及び記録実行部15bを備えている。
処理部15aは、端末10A1において、ゲーム管理部12から命令された処理を行う。処理部15aは、CPU101が主記憶部102内のプログラムを実行し、該プログラムに従って主記憶部102又は補助記憶部103へのデータの書き込みを制御することで実現される。具体的には、処理部15aは、ゲーム管理部12により出力された、処理ID、及び、当該処理IDに係る利用パラメータに基づき、処理を行う。すなわち、処理部15aは、処理IDより、実行する処理を特定する。そして、処理部15aは、処理に用いる利用パラメータのデータをデータ記憶部17へ問い合わせ、データ記憶部17から取得した利用パラメータのデータに基づき処理を実行する。処理部15aは、処理の実行結果をデータ記憶部17及び表示部11bへ出力する。
例えば、ゲーム管理部12により出力された決定結果に含まれる処理IDが「0057」である場合には、処理部15aは、実行する処理を合成実行処理であると特定する(図5参照)。処理部15aは、決定結果に含まれた利用パラメータのデータである、ベースカードのカードシリアルと、素材カードのカードシリアルとをデータ記憶部17へ問い合わせる。処理部15aは、データ記憶部17から取得したベースカード及び素材カードのパラメータを用いて、合成実行処理を行う。そして、処理部15aは、実行結果として、結果パラメータのデータであるベースカードのカードシリアル及びカードレベルを、データ記憶部17及び表示部11bへ出力する。
データ記憶部17は、ゲームの進行に必要な基本となるデータ及びユーザ固有の情報を格納している。データ記憶部17は、主記憶部102又は補助記憶部103により実現される。ゲームの基本となるデータとは、ゲーム画面に関する情報、カードに関するデフォルトの情報(成長前のモンスターに関する情報及びモンスターの画像等)、またはゲーム音楽等である。また、ユーザ固有の情報とは、ユーザのレベル、ユーザの所有カードの情報(所有カードの種類またはレベル等)またはユーザの成績等である。データ記憶部17は、ユーザの所有カードの情報を示す所有カードデータテーブルを格納している。図6は、所有カードデータテーブルの一例である。図6に示すように、所有カードデータテーブルでは、ユーザが所有するカードの種別を特定する「カードID」に、「カードシリアル」、「カードレベル」が関連付けられている。カードシリアルとは、カードを一意に特定するための番号である。カードシリアルは唯一無二の番号であるため、同一のカード種別(同一のカードID)であっても、異なるカードであれば異なるカードシリアルが付される。例えば、ユーザUaが仮想的に所有するモンスターMaのカードとユーザUbが仮想的に所有するモンスターMaのカードとでは、カードIDは同じであるが、カードシリアルは互いに異なる。
例えば、処理部15aにより合成実行処理(処理ID:0057)が行われる場合には、処理部15aは、データ記憶部17の所有カードデータテーブルを参照し、ベースカード及び素材カードのカードシリアルに対応したカードのパラメータを取得する。カードのパラメータとは、合成処理後の結果パラメータであるカードレベルを決定するためのパラメータである。また、処理部15aが合成実行処理の結果をデータ記憶部17に格納することにより、データ記憶部17の所有カードデータテーブルが更新される。具体的には、合成実行処理が行われた場合には、所有カードデータテーブルのカードレベルが更新される。
また、処理部15aは、処理を実行する際、処理に関する処理情報を記録するか否かを、端末側送受信部16を介してサーバ30へ問い合わせる。当該問い合わせには、例えば、端末10A1に係るユーザを特定するユーザID、及び、処理を特定する処理IDが含まれている。記録とは、何らかのデータまたは情報を端末10A1内の任意の記憶装置に恒久的にまたは一時的に書き込むことをいい、ここでは、実行状況テーブル18に書き込むことをいう。処理情報とは、処理部15aにより実行される処理に関する情報であり、例えば、処理に係る入力、演算、または出力に関する情報、及び、処理に応じた端末10A1の情報である。この処理情報は、端末10A1内での処理に関するログであるということができる。処理情報は、実行状況テーブル18に書き込まれた後に、端末10A1の実行状況として端末10A1の外部(例えばサーバ30)へ送信される。
処理に係る入力に関する情報とは、例えば、処理に際して処理部15aに入力されたデータ、及び該データの入力元等である。処理部15aに入力されたデータとは、例えば処理IDである。該データの入力元の例としてはゲーム管理部12およびサーバ30が挙げられる。また、処理に係る入力に関する情報とは、例えば、入力されるデータ(例えば処理ID)を決定したユーザ操作(ユーザによる端末10A1に対する操作)に関する情報であり、ユーザ操作に関する情報とは、例えば、ユーザ操作の内容を特定する操作コマンドIDである。処理に係る演算に関する情報とは、例えば、処理部15aが実行した演算の種類、該演算の実行状況、及び該演算の実行結果等である。処理に係る出力に関する情報とは、例えば、処理部15aに出力されたデータ、及び該データの出力先等である。処理部15aに出力されたデータとは、例えば結果パラメータのデータである。該データの出力先の例としてはデータ記憶部17、表示部11b、およびサーバ30が挙げられる。
処理に応じた端末10A1の情報とは、例えば、端末10A1のハードウェアリソース及びソフトウェアリソースの少なくともいずれか一方の使用状況に関する情報である。使用状況とは、端末10A1内でリソースが使用されている状態または使用された結果である。ハードウェアリソースとは、例えば、端末10A1の利用可能なメモリ容量、利用可能なハードディスク容量、または、利用可能なCPUの割り当て時間等である。端末10A1のハードウェアリソースの使用状況に関する情報とは、例えば、端末10A1のメモリ(例えばデータ記憶部17)上のデータを示す情報である。メモリ上のデータとは、メモリ上の物理的なアドレスを指定して取得されるデータであり、例えばメモリダンプにより取得されるデータである。また、端末10A1のソフトウェアリソースとは、端末10A1で実行されるソフトウェアリソースである。具体的に、ソフトウェアリソースとは、端末10A1で実行可能なアプリケーションまたはプログラムであり、オペレーティングシステム(OS:Operating System)が含まれていてもよい。端末10A1のソフトウェアリソースの使用状況に関する情報とは、例えば、処理時に利用しているOSの機能、及び、起動しているアプリケーションの情報(アプリケーションのバージョン等)である。
処理部15aは、処理情報を記録するか否かを示す記録要否情報を、端末側送受信部16を介してサーバ30より受け付ける。記録要否情報とは、処理部15aが実行する所定の処理について、処理情報を記録するか否かを示した情報である。記録要否情報が処理情報を記録することを示すものである場合には、記録要否情報には、記録する処理情報の内容(記録内容)が含まれている。記録内容とは、記録する具体的な項目を示すものである。具体的な項目は、例えば、「操作コマンドID」、「処理ID」、「メモリデータ」等である。記録内容が操作コマンドIDであるとは、例えば、処理の決定に係るユーザ操作の操作コマンドIDが記録されることを示している。また、記録内容が処理IDであるとは、例えば、実行される処理に係る処理IDが記録されることを示す。また、記録内容がメモリデータであるとは、例えば、処理実行時における端末10A1のメモリのダンプデータが記録されることを示している。記録要否情報には、処理情報を記録する対象期間を示した情報が含まれていてもよい。
処理部15aは、記録要否情報に基づいて、ゲーム管理部12から出力された処理IDに係る処理の処理情報を記録するか否かを判断する。処理部15aは、処理情報を記録しないと判断した場合には、処理情報の記録を記録実行部15bに指示することなく、処理IDに係る処理の実行を行う。一方、処理部15aは、処理情報を記録すると決定した場合には、記録実行部15bに記録命令を行った後に、処理IDに係る処理の実行を行う。当該記録命令には、上述した記録要否情報が含まれている。
記録実行部15bは、サーバ30から提供される記録要否情報に基づいて、処理情報を実行状況テーブル18に記録する。記録実行部15bは、CPU101が主記憶部102内のプログラムを実行し、該プログラムに従って、主記憶部102又は補助記憶部103からのデータの読み出し及び主記憶部102又は補助記憶部103へのデータの書き込みを制御することで実現される。実行状況テーブル18は、主記憶部102又は補助記憶部103により実現される。例えば、記録要否情報の記録内容に「処理ID」が含まれている場合には、記録実行部15bは、処理部15aにより実行されている処理の処理IDを取得する。記録実行部15bは、記録内容に処理IDが含まれている場合には、処理IDに加えて、当該処理の結果パラメータを取得してもよい。なお、記録実行部15bは、取得した結果パラメータをデータ記憶部17へ出力してもよい。また、記録実行部15bは、記録内容に「操作コマンドID」が含まれている場合には、処理の決定に係るユーザ操作の操作コマンドIDを取得する。また、記録実行部15bは、記録内容に「メモリデータ」が含まれている場合には、処理実行前及び処理実行後の少なくとも一方における端末10A1のメモリのダンプデータを取得する。記録実行部15bは、記録要否情報に基づいて取得した各種処理情報を、実行状況テーブル18に記録する。記録実行部15bは、実行状況テーブル18に処理情報を記録する際に、処理情報を記録する日時と、ユーザを特定するユーザIDとを共に記録する。
また、記録実行部15bは、実行状況テーブル18に記録して蓄積した処理情報(実行状況)を、所定のタイミングで読出し、端末側送受信部16を介して、サーバ30へ送信する送信部としても機能する。所定のタイミングとは、予め定められた一定間隔のタイミング(例えば、実行状況の記録から所定期間経過後、等)であってもよいし、記録要否情報に含まれた処理情報を記録する対象期間に応じたタイミングであってもよい。対象期間に応じたタイミングとは、例えば、対象期間が終了するタイミングである。
実行状況テーブル18は、記録実行部15bから出力された処理情報を記憶する。図7は、実行状況テーブルの一例である。図7に示すように、実行状況テーブル18では、処理情報を記録する対象のユーザを特定するユーザIDに、処理情報が記録された日時、及び、各種処理情報が関連付けられている。図7では、各種処理情報として、操作コマンドID、処理ID、及びメモリデータが例示されている。例えば図7の実行状況テーブル18における最上段のデータは、ユーザID:2510のユーザによって行われた、2014年2月7日15時18分の実行状況が記録されたものであり、処理情報として、操作コマンドID:06、及び処理ID:0057(合成実行)が記録されている。
端末側送受信部16は、サーバ30と通信する。端末側送受信部16は、CPU101が主記憶部102内のプログラムを実行し、該プログラムに従って通信制御部104を制御することで実現される。サーバ30への送信時には、端末側送受信部16は入力されたデータに送信先情報(通信の宛先、すなわちサーバ30を示す情報)を付加してそのデータを送信する。サーバ30からの受信時には、端末側送受信部19は、送られてきたデータの宛先が端末10A1である場合にそのデータを受信する。端末10A1とサーバ30との間の通信は暗号化されてもよく、この場合には、端末側送受信部19はデータを暗号化してから送信処理を実行し、データ受信にはそのデータを復号してから関連する機能要素にそのデータを出力する。
例えば、端末側送受信部16は、処理部15aより出力された処理情報を記録するか否かの問い合わせをサーバ30へ送信し、サーバ30より送信された記録要否情報を受信する。また、端末側送受信部16は、記録実行部15bより入力された処理情報(実行状況)を、サーバ30へ送信する。
サーバ30は、記録管理部31、記録要否テーブル32、ユーザDB(ユーザデータベース)34、サーバ側送受信部35、及び実行状況DB36を備えている。
記録管理部31は、記録要否情報を生成するとともに、端末10A1からの問い合わせに応じて、記録要否情報を端末10A1に提供する。記録管理部31は、テーブル生成部31a、判定部31b、及び記録要否決定部31cを備えている。
テーブル生成部(生成部)31aは、所定の条件に基づいて記録要否情報を生成し記録要否テーブル32を更新する機能を有している。テーブル生成部31aは、CPU101が主記憶部102内のプログラムを実行し、該プログラムに従って主記憶部102又は補助記憶部103へのデータの書き込みを制御することで実現される。所定の条件とは、所望の記録要否情報を生成するための条件であり、本実施形態ではサーバ30のオペレータの入力操作によって入力される条件データ33で示される。テーブル生成部31aは、サーバ30のオペレータの入力操作によって入力された条件データ33に基づき、記録要否情報を生成する。テーブル生成部31aは、テーブル生成部31aに入力された条件データ33から直接、記録要否情報を生成(以下、「直接生成」)する場合と、判定部31bに入力された条件データ33に応じた判定部31bの判定結果から記録要否情報を生成(以下、「判定生成」)する場合とがある。
条件データ33とは、記録要否情報を生成する条件を示したデータである。直接生成の場合には、条件データ33に示される情報がそのまま記録要否情報として設定される。例えば、直接生成の条件データ33は、処理情報の記録の対象となるユーザID(対象ユーザID)を含み、さらに、処理情報の記録の対象となる操作コマンドID及び処理IDの少なくとも一方を記録内容として含んでもよい。また、直接生成の条件データ33は、記録を行う対象期間を含んでもよい。直接生成の条件データ33が入力された場合には、テーブル生成部31aはその条件データ33に示されたユーザID毎に記録要否情報を生成(設定)する。この生成処理において、テーブル生成部31aは、ユーザIDに関連付けて、操作コマンドID毎(ユーザ操作毎)に記録要否情報を生成(設定)してもよい。
また、判定生成の場合には、条件データ33に示される情報は、判定部31bによる記録要否情報の生成に係る判定に用いられる情報である。記録要否情報の生成に係る判定とは、記録要否情報を生成すべきユーザ及び処理を抽出する処理である。判定生成の条件データ33は、例えば、不正を行った可能性のあるユーザ及び処理を特定可能な情報とされる。具体的には、判定生成の条件データ33として、例えば、「同一カードシリアルのカードレベルが、1時間で30レベル以上上がっているユーザ」や、「入手困難な特定のアイテムを100個以上持っているユーザ」等、通常の処理では達成し難い状態を達成しているユーザを特定する条件が設定される。また、判定生成の条件データ33には、判定が可能な情報に加えて、直接生成と同様、記録内容及び記録を行う対象期間が含まれていてもよい。例えば、「同一カードシリアルのカードレベルが、1時間で30レベル以上上がっているユーザ」が判定生成の条件データ33とされる場合には、不正を行ってカードレベルを上げている可能性のあるユーザが特定されると考えられるところ、条件データ33として、カードレベルアップに係る処理の処理IDを記録内容とすることで、所望のユーザの所望の処理についての記録要否情報を生成することができる。
判定部31bは、判定生成の条件データ33に基づき、記録要否情報の生成に係る判定結果をテーブル生成部31aへ出力する。判定部31bは、CPU101が主記憶部102内のプログラムを実行し、該プログラムに従って主記憶部102又は補助記憶部103からのデータの読み出しを制御することで実現される。例えば、判定部31bは、ユーザDB34を参照することにより、条件データ33に示される条件と合致するユーザを抽出して、判定結果として出力する。ユーザDB34とは、各ユーザ固有の情報である、ユーザのレベル、ユーザの所有カードの情報(所有カードの種類またはレベル等)またはユーザの成績等を一元的に管理するデータベースである。ユーザDB34は、主記憶部102又は補助記憶部103により実現される。例えば、「同一カードシリアルのカードレベルが、1時間で30レベル以上上がっているユーザ」とする条件データ33が判定部31bに入力された場合には、判定部31bは、ユーザDB34を参照し、「同一カードシリアルのカードレベルが、1時間で30レベル以上上がっているユーザ」を抽出して、該ユーザのユーザIDをテーブル生成部31aに出力する。なお、条件データ33に、記録内容として、カードレベルアップに係る処理の処理ID、例えば、結果パラメータがカードレベルである合成実行処理の処理ID(0058)が含まれている場合には、判定部31bは、当該処理ID:0058についてもテーブル生成部31aへ出力する。
判定部31bは、記録要否情報の生成に係る判定において、条件データ33に示される条件と合致したユーザを抽出する際に、条件を満たす度合いに応じて、抽出するユーザに判定レベル設定を行ってもよい。例えば、「同一カードシリアルのカードレベルが、1時間で30レベル以上上がっているユーザ」とする条件データ33に対して、カードレベルが1時間で100レベル上がっているユーザUxと30レベル上がっているユーザUyとが抽出された場合には、レベルの上昇幅が閾値「30」を大幅に超えるユーザUxの方が、条件を満たす度合いがより大きいといえる。この場合には、判定部31bは100レベル上がっているユーザの判定レベルを、30レベル上がっているユーザの判定レベルよりも高くする。判定部31bは、テーブル生成部31aへ判定結果を出力する際に、併せて判定レベルを出力する。テーブル生成部31aは、例えば、判定レベルが高いユーザほど、記録内容の種類が多くなり、また、記録実行部15bからサーバ30への処理情報(実行状況)の送信頻度が高くなるように、記録要否情報の生成を行ってもよい。
テーブル生成部31aは、直接生成における条件データ、または、間接生成における判定結果から記録要否情報を生成し、記録要否テーブル32を更新する。図8は記録要否テーブル32の一例である。記録要否テーブル32で記憶されている各情報が、記録要否情報である。図8に示すように、記録要否テーブル32では、対象ユーザIDに、対象期間、及び記録内容が関連付けられている。記録要否テーブル32は、主記憶部102又は補助記憶部103により実現される。記録内容に操作コマンドID及び処理IDが含まれている場合には、対象ユーザIDに、対象操作コマンドID及び対象処理IDが関連付けられている。例えば図8の記録要否テーブル32における最上段のデータは、ユーザID:2510のユーザによって、2014年2月5日の00時00分〜2014年2月7日の00時00分に行われる、処理について、操作コマンドID:01、処理ID:0001(マイページへ移動)を記録することが示されている。記録要否テーブル32は、条件データ33が入力されたタイミングで随時更新されるものであってもよいし、予め定められた所定の間隔で更新されるものであってもよい。
記録要否決定部31cは、端末10A1(より詳細には、処理部15a)からの、処理情報を記録するか否かの問い合わせに応じて、記録要否を決定する。記録要否決定部31cは、CPU101が主記憶部102内のプログラムを実行し、該プログラムに従って主記憶部102又は補助記憶部103からのデータの読み出しを制御することで実現される。記録要否決定部31cは、例えば、記録要否テーブル32を参照し、問い合わせに含まれたユーザID及び処理IDに対応した記録要否情報が記録要否テーブル32に存在するか否かを判断する。記録要否決定部31cは、記録要否情報が存在する場合には処理情報を記録すると決定し、当該ユーザID及び処理IDに対応した記録内容を含む記録要否情報を端末10A1へ送信する。一方、記録要否情報が存在しない場合には、記録要否決定部31cは、処理情報を記録しないと決定し、処理情報を記録しない旨を示す記録要否情報を端末10A1へ送信する。
サーバ側送受信部35は、端末10A1と通信する。サーバ側送受信部35は、CPU101が主記憶部102内のプログラムを実行し、該プログラムに従って通信制御部104を制御することで実現される。端末10A1への送信時には、サーバ側送受信部35は入力されたデータに送信先情報(通信の宛先、すなわち端末10A1を示す情報)を付加してそのデータを送信する。端末10A1からの受信時には、サーバ側送受信部35は、送られてきたデータの宛先がサーバ30である場合にそのデータを受信する。端末10A1とサーバ30との間の通信が暗号化される場合には、サーバ側送受信部35は端末側送受信部16と同様の暗号化処理および復号処理を実行する。
例えば、サーバ側送受信部35は処理情報を記録するか否かの問い合わせを受信して記録管理部31へ出力する。また、サーバ側送受信部35は記録要否決定部31cから入力された問い合わせに応じた記録要否情報を端末10A1に送信する。また、サーバ側送受信部35は処理情報(実行状況)を受信して実行状況DB36へ格納する。
実行状況DB36は、端末10A1を含む複数の端末10A(図1参照)の処理情報(実行状況)を記憶するデータベースである。実行状況DB36は、主記憶部102又は補助記憶部103により実現される。図9は、実行状況DB36に格納された複数ユーザの実行状況テーブルの一例である。図9に示すように、実行状況DB36には、ユーザIDが異なる複数ユーザの実行状況テーブルが格納されている。各ユーザの実行状況テーブルのデータ項目は、図7に示した実行状況テーブル18と同様である。サーバ側送受信部35は、処理システム1の複数の端末10Aから処理情報(実行状況)を受信して、実行状況DB36を更新する。
次に、処理システム1の動作について説明する。図10は、処理システム1による記録要否テーブル32の更新処理を説明するフローチャートである。図10に示す処理は、サーバ30によって実行される。
オペレータが条件データ33を入力すると(S10;YES)、条件データ33が判定生成の条件データ33であるか否か、すなわち、判定部31bに入力されたか否かが判定される(S12)。条件データ33が、判定生成の条件データ33でない、すなわち、テーブル生成部31aに入力された直接生成の条件データ33であると判定された場合には(S12;NO)、テーブル生成部31aが当該条件データ33から記録要否情報を生成する(S14)。一方、条件データ33が判定生成の条件データ33であると判定された場合には(S12;YES)、判定部31bが当該条件データ33に基づき記録要否情報を生成すべきユーザ及び処理を抽出して判定結果として出力し(S16)、テーブル生成部31aが判定部31bの判定結果に基づき記録要否情報を生成する(S18)。S14またはS18において生成された記録要否情報に基づき、テーブル生成部31aが、記録要否テーブル32を更新する(S20)。
以上の処理により、記録要否テーブル32が更新される。なお、図10の処理は定期的またはサーバ30のオペレータの指示により繰り返し実行され得る。
次に、図11を用いて、処理システム1による実行状況の記録処理を説明する。図11は、処理システム1による実行状況の記録処理を説明するフローチャートである。図11に示す処理は、端末10A1及びサーバ30によって実行される。処理システム1は、例えば端末10A1がユーザ操作を受け付ける度に、図11に示す処理を実行する。
まず、端末10A1にて、ゲーム管理部12が処理命令を処理実行部15へ出力する(S30)。具体的には、ゲーム管理部12は、ユーザ操作から特定した処理ID、並びに、当該処理IDに係る利用パラメータ及び結果パラメータを処理実行部15の処理部15aへ出力する。
続いて、処理部15aが、処理に関する処理情報を記録するか否かを、端末側送受信部16を介してサーバ30へ問い合わせる(S32)。当該問い合わせには、例えば、端末10A1に係るユーザを特定するユーザID、及び、処理を特定する処理IDが含まれている。
続いて、サーバ30のサーバ側送受信部35が、処理情報を記録するか否かの問い合わせを受け付け(S34)、記録管理部31へ出力する。続いて、記録管理部31の記録要否決定部31cが、処理情報を記録するか否かの問い合わせに応じて記録要否を決定する(S36)。記録要否決定部31cは、記録要否テーブル32を参照し、問い合わせに含まれたユーザID及び処理IDに対応した記録要否情報が記録要否テーブル32に存在するか否かを判断することにより記録要否を決定し、端末10A1へ送信するための記録要否情報を生成する。そして、記録要否決定部31cはその記録要否情報をサーバ側送受信部35を介して端末10A1へ送信する。
続いて、端末10A1の端末側送受信部16が、記録要否情報を受け付け(S38)、処理部15aへ出力する。処理部15aは、記録要否情報に基づいてゲーム管理部12から出力された処理IDに係る処理の処理情報を記録するか否かを判断する(S40)。処理情報を記録しないと判断した場合には(S40;NO)、処理部15aは処理情報の記録に関する処理を行わず、処理IDに係る処理の実行を行う(S42)。
一方、処理情報を記録すると判断した場合には(S40;YES)、処理部15aは、記録実行部15bに記録命令を行った後に、処理IDに係る処理の実行を行う。当該記録命令には記録要否情報が含まれている。そして、記録実行部15bが記録要否情報に基づいて各種処理情報を取得し、取得した各種処理情報を実行状況テーブル18に記録する(S44)。
例えば、ユーザID「2510」のユーザに係る端末10A1のゲーム管理部12が、図4における処理ID「0001」に関する情報を処理部15aに出力した場合には、処理部15aの問い合わせに対して、記録要否決定部31cが図8に示す記録要否テーブル32を参照して処理情報を記録しないと決定する。この場合には、処理部15aは処理情報の記録に関する処理を行わず、処理ID「0001」に係る処理の実行のみを行う。一方、ユーザID「2510」のユーザに係る端末10A1のゲーム管理部12が、図4における処理ID「0054」に関する情報を処理部15aに出力した場合には、処理部15aの問い合わせに対して、記録要否決定部31cが図8に示す記録要否テーブル32を参照して処理情報を記録すると決定する。この場合には、処理部15aは記録実行部15bに記録命令を行った後に、処理ID「0054」に係る処理の実行を行う。記録実行部15bは記録要否情報に基づいて処理ID「0054」に係る処理の各種処理情報(実行状況)を取得し、取得した各種処理情報(実行状況)を実行状況テーブル18に記録する。
次に、図12を用いて、処理システム1によるサーバ30への実行状況の送信処理を説明する。図12は、処理システム1によるサーバ30への実行状況の送信処理を説明するフローチャートである。図12に示す処理は、端末10A1及びサーバ30によって実行される。
まず、端末10A1の記録実行部15bにて、実行状況テーブル18に実行状況を記録してから所定期間が経過しているか否かが判定される(S50)。所定期間が経過していない場合には(S50;NO)、一定期間後に再度S50の処理が実行される。一方、所定期間が経過している場合には(S50;YES)、記録実行部15bは、実行状況テーブル18に記録した処理情報(実行状況)を読出し、端末側送受信部16を介して、処理情報(実行状況)をサーバ30へ送信する(S52)。
続いて、サーバ30のサーバ側送受信部35が、実行状況を受け付け(S54)、該実行状況を実行状況DB36へ格納することにより実行状況DB36を更新する(S56)。以上の処理により、サーバ30の実行状況DB36が更新される。
次に、コンピュータを端末10A1またはサーバ30として機能させるための端末処理プログラム及びサーバ処理プログラムを説明する。
端末処理プログラムは、メインモジュール、入力モジュール及び演算処理モジュールを備えている。メインモジュールは、端末処理を統括的に制御する部分である。入力モジュールは、ユーザからの入力を受け付けるようにコンピュータを動作させる。演算処理モジュールは、処理実行モジュール及びゲーム管理モジュールを備えている。メインモジュール、入力モジュール及び演算処理モジュールを実行させることにより実現される機能は、上述した端末10A1の入出力部11、ゲーム管理部12、処理実行部15(処理部15a、記録実行部15b)、及び端末側送受信部16の機能とそれぞれ同様である。
サーバ処理プログラムは、メインモジュール、入力モジュール及び演算処理モジュールを備えている。メインモジュールは、サーバ処理を統括的に制御する部分である。入力モジュールは、ユーザからの入力を受け付けるようにコンピュータを動作させる。演算処理モジュールは、記録管理モジュールを備えている。メインモジュール、入力モジュール及び演算処理モジュールを実行させることにより実現される機能は、上述したサーバ30の記録管理部31(テーブル生成部31a、判定部31b、及び記録要否決定部31c)、及びサーバ側送受信部35の機能とそれぞれ同様である。
端末処理プログラム及びサーバ処理プログラムは、例えば、ROMまたは半導体メモリ等の非一時的な記録媒体によって提供される。また、端末処理プログラム及びサーバ処理プログラムは、データ信号としてネットワークを介して提供されてもよい。
図13を用いて、上記の処理システム1の作用効果を説明する。図13は、処理システム1の作用効果を説明する概要図である。例えば、ブラウザを利用しないアプリタイプのゲーム等では、端末側での処理が増えるため、データの改ざん等の不正が行われやすい。このような不正行為を突き止めるために、端末の処理情報をリアルタイムに記録することが考えられる。しかし、端末の処理を全て記録した場合には、端末における処理負荷、及び、端末・サーバ間での通信負荷が大きくなってしまう。
この点、本実施形態に係る処理システム1では、端末10A1で処理が実行される際に、端末10A1からサーバ30に対して記録要否の問い合わせが行われる。そして、サーバ30から端末10A1に対して記録要否情報が送信され、端末10A1は当該記録要否情報に基づき、処理情報を記録する。このことで、例えば、サーバ30側で、特定のユーザの特定の処理に係る情報のみを記録するように記録要否情報を生成しておくことで、全ての処理を記録する場合と比較して、端末における処理負荷、及び、端末・サーバ間での通信負荷を低減することができる。図13では、端末10A1の処理A〜処理Cのうち、処理Cのみが、記録しない情報であるとして記録要否情報が生成されている例を示している。このように、複数の処理のうち、必要な一部の処理のみを記録することで、端末における処理負荷、及び、端末・サーバ間での通信負荷を低減することができる。
以上、実施形態について説明したが本発明は上記実施形態に限定されるものではない。例えば、記録実行部15bが実行状況テーブル18に記録した実行状況をサーバ30へ送信するとして説明したが、これに限定されず、例えば、実行状況が処理システム1とは別のサーバへ送信されるものであってもよい。また、サーバ30の記録要否テーブル32はテーブル生成部31aによって更新されるとして説明したが、記録要否テーブルは更新されるものでなくてもよい。
また、端末10A1及びサーバ30における各機能要素の配置は上述した実施形態に限定されない。例えば、記録管理部31及び記録要否テーブル32はサーバが備えるとして説明したが、端末10A1がこれらの機能要素を備えてもよい。この場合には、サーバ30において入力された条件データが端末10A1に送信され、端末10A1の記録管理部31が記録要否テーブル32を更新し、処理実行部15がその記録要否テーブル32を参照して処理情報を記録するか否かを決定する。
以上、説明したように、本発明の一側面に係る処理システム(例えば、処理システム1)は、端末(例えば端末10A1)及びサーバ(例えばサーバ30)間で通信を行う処理システムであって、前記端末において処理を実行する処理部(例えば処理部15a)と、前記サーバから提供される、前記処理部の処理に関する処理情報を記録するか否かを示す記録要否情報に基づいて、前記処理情報を前記端末内に記録する記録実行部(例えば記録実行部15b)と、を備える。
不正と思われる処理の情報を取得する方法として、例えば最終の処理結果のみから事後的に不正と思われる処理の情報を取得する方法がある。しかし、このような方法では、不正行為の詳細を突き止めるのに十分な情報を取得できない場合がある。この点、本発明の一側面に係る処理システムでは、予め設定された記憶要否情報に基づき処理情報を記録するため、処理の経過に係るユーザ操作等の内容についても取得することができ、不正と思われる処理の詳細な情報を取得することができる。また、不正と思われる処理の詳細な情報を取得すべく端末の全操作ログを記録することも考えられるが、この場合には処理システムに掛かる負担が大きくなってしまう。この点、本発明の一側面に係る処理システムでは、例えば、記録要否情報で記録することとされている特定のユーザの特定の処理に係る情報のみを記録することができるため、処理システムに掛かる負荷を低減することができる。以上より、本発明の一側面に係る処理システムによれば、処理システムの負荷を抑えつつ、不正と思われる処理の詳細な情報を取得することができる。
一実施形態では、前記記録実行部が記録した前記処理情報を前記サーバへ送信する送信部(例えば記録実行部15b)をさらに備えてもよい。記録した処理情報がサーバに送信されることで、端末の不正な処理に係る情報を、サーバ側で収集することができる。
一実施形態では、前記処理情報が、ユーザによる前記端末に対する操作に関する情報を含んでもよい。ユーザによる端末に対する操作が記録されることにより、端末の不正な処理に係るユーザ操作を特定することが可能となる。
一実施形態では、前記処理情報が、前記端末のハードウェアリソース及びソフトウェアリソースの少なくともいずれか一方の使用状況を含んでもよい。端末のハードウェアリソース及びソフトウェアリソースの少なくともいずれか一方の使用状況が記録されることにより、端末の不正な処理に係る端末状況を取得することができる。
一実施形態では、前記処理情報が、前記端末のメモリ上のデータを含んでもよい。メモリ上のデータが記録されることにより、端末の不正な処理に係るメモリ状態を取得することができる。
一実施形態では、前記記録要否情報がユーザによる前記端末に対する操作毎に設定されていてもよい。ユーザによる端末に対する操作毎に記録要否情報が設定されていることにより、必要な操作コマンドに係る情報のみを記録することができる。
一実施形態では、前記記録要否情報がユーザ毎に設定されていてもよい。ユーザ毎に記録要否情報が設定されていることにより、必要なユーザに係る情報のみを記録することができる。
一実施形態では、所定の条件に基づいて前記記録要否情報を生成する生成部(例えばテーブル生成部31a)を更に備え、前記生成部により生成された記録要否情報が前記サーバから提供されてもよい。所定の条件を、所望の処理情報を記録可能な記録要否情報を生成する条件とし、生成部が当該所定の条件に基づき記録要否情報を生成することで、記録したい処理情報を確実に記録することができる。
本発明の他の側面に係るサーバ(例えばサーバ30)は、端末(例えば端末10A1)と通信を行うサーバであって、前記端末の処理に関する処理情報を記録するか否かを示す記録要否情報を、前記端末での前記処理情報の記録のために生成する生成部(例えばテーブル生成部31a)を備える。
本発明の他の側面に係るサーバによれば、例えば、生成部が、特定のユーザの特定の処理に係る情報のみを記録するとする記録要否情報を生成することにより、特定のユーザの特定の処理に係る情報のみを記録させることができる。このため、端末が全操作ログを記録する場合と比較して、サーバ及び端末に掛かる負荷を低減することができる。また、記録要否情報を生成することにより、不正と思われる処理に係る詳細な情報を取得させることができる。
本発明のさらに他の側面に係るサーバ処理プログラムは、端末(例えば端末10A1)と通信を行うサーバ(例えばサーバ30)を動作させるサーバ処理プログラムであって、前記端末の処理に関する処理情報を記録するか否かを示す記録要否情報を、前記端末での前記処理情報の記録のために生成する生成部として前記サーバを機能させる。
本発明のさらに他の側面に係るサーバ処理プログラムによれば、例えば、生成部が、特定のユーザの特定の処理に係る情報のみを記録するとする記録要否情報を生成することにより、特定のユーザの特定の処理に係る情報のみを記録させることができる。このため、端末が全操作ログを記録する場合と比較して、サーバ及び端末に掛かる負荷を低減することができる。また、記録要否情報を生成することにより、不正と思われる処理に係る詳細な情報を取得させることができる。
本発明のさらに他の側面に係る端末(例えば端末10A1)は、サーバ(例えばサーバ30)と通信を行う端末であって、処理を実行する処理部(例えば処理部15a)と、前記サーバから提供される、前記処理部の処理に関する処理情報を記録するか否かを示す記録要否情報に基づいて、前記処理情報を前記端末内に記録する記録実行部(例えば記録実行部15b)と、を備える。
本発明のさらに他の側面に係る端末によれば、記録要否情報に基づき処理情報が記録されるため、例えば、記録要否情報で記録することとされている特定のユーザの特定の処理に係る情報のみを記録することができる。このため、例えば端末の全操作ログを記録する場合と比較して、端末及びサーバに掛かる負荷を低減することができる。また、処理結果から事後的に不正と思われる処理を推測するのではなく、予め設定された記録要否情報に基づき処理情報を記録するため、より詳細に、不正と思われる処理に係る情報を取得することができる。
本発明のさらに他の側面に係る端末処理プログラムは、サーバ(例えばサーバ30)と通信を行う端末(例えば端末10A1)を動作させる端末処理プログラムであって、処理を実行する処理部(例えば処理部15a)、及び、前記サーバから提供される、前記処理部の処理に関する処理情報を記録するか否かを示す記録要否情報に基づいて、前記処理情報を前記端末内に記録する記録実行部(例えば記録実行部15b)、として前記端末を機能させる。
本発明のさらに他の側面に係る端末処理プログラムによれば、記録要否情報に基づき処理情報が記録されるため、例えば、記録要否情報で記録することとされている特定のユーザの特定の処理に係る情報のみを記録することができる。このため、例えば端末の全操作ログを記録する場合と比較して、端末及びサーバに掛かる負荷を低減することができる。また、処理結果から事後的に不正と思われる処理を推測するのではなく、予め設定された記録要否情報に基づき処理情報を記録するため、より詳細に、不正と思われる処理に係る情報を取得することができる。