(57)【特許請求の範囲】
【請求項１】
端末装置からの要求に応じて所定の処理を実行するサーバにおける重複処理の検査を行うシステムであって、
検査開始時に、前記端末装置から前記サーバに対して送信される要求を受信する受信手段と、
当該要求をコピーすることで所定数の要求とし、当該所定数の要求を前記サーバに一括して送信する送信手段と、
前記所定数の要求による前記サーバの処理結果を取得して重複処理の有無を確認する確認手段と
を備えたことを特徴とするサーバ検査システム。
【請求項２】
請求項１に記載のサーバ検査システムにおいて、
前記確認手段は、前記サーバから応答として返されるデータから前記サーバの処理結果を取得して重複処理の有無を確認する
ことを特徴とするサーバ検査システム。
【請求項３】
請求項１に記載のサーバ検査システムにおいて、
前記確認手段は、所定のアドレスのデータにアクセスすることで、前記サーバの処理結果を取得して重複処理の有無を確認する
ことを特徴とするサーバ検査システム。
【請求項４】
請求項１乃至３のいずれか一項に記載のサーバ検査システムにおいて、
前記所定数を含む検査条件の設定を受け付ける受付手段
を備えたことを特徴とするサーバ検査システム。
【請求項５】
請求項１乃至４のいずれか一項に記載のサーバ検査システムにおいて、
前記確認手段の確認結果に基づいて前記サーバの診断を行う診断手段
を備えたことを特徴とするサーバ検査システム。
【請求項６】
端末装置からの要求に応じて所定の処理を実行するサーバにおける重複処理の検査を行う装置であって、
検査開始時に、前記端末装置から前記サーバに対して送信される要求を受信する受信手段と、
当該要求をコピーすることで所定数の要求とし、当該所定数の要求を前記サーバに一括して送信する送信手段と、
前記所定数の要求による前記サーバの処理結果を取得して重複処理の有無を確認する確認手段と
を備えたことを特徴とするサーバ検査装置。
【請求項７】
端末装置からの要求に応じて所定の処理を実行するサーバにおける重複処理の検査を行う装置を構成するコンピュータを、
検査開始時に、前記端末装置から前記サーバに対して送信される要求を受信する受信手段、
当該要求をコピーすることで所定数の要求とし、当該所定数の要求を前記サーバに一括して送信する送信手段、
前記所定数の要求による前記サーバの処理結果を取得して重複処理の有無を確認する確認手段
として機能させるサーバ検査プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソーシャルゲーム等のサーバ機能の不具合を検査する技術に関する。
【背景技術】
【０００２】
インターネットを介したウェブサービス等において、端末装置（ユーザ端末）からサーバへの要求（リクエスト）が同時あるいは短時間に複数回なされることで、サーバにおける処理が重複して行われる場合がある。例えば、ソーシャルゲームにおいて、ユーザ（プレイヤ）がほぼ同時にアイテム付与要求をサーバに送ることで、ソーシャルゲーム管理サーバにおいてアイテム付与の処理が二重に行われ、本来なら１つしか与えられないはずのアイテムが２つユーザに付与される場合がある。
【０００３】
図１はソーシャルゲームにおけるアイテム付与処理の例を示すシーケンス図である。
【０００４】
図１において、端末装置１からソーシャルゲーム管理サーバ４に対してアイテム付与要求を送信すると（ステップＳ０１）、ソーシャルゲーム管理サーバ４はデータベース（ＤＢ）によりアイテム付与条件が満たされているか否か確認し（ステップＳ０２）、確認できた場合（ステップＳ０３）、アイテム付与処理を行ない（ステップＳ０４、Ｓ０５）、端末装置１に対してアイテム付与を行う（ステップＳ０６）。
【０００５】
これとほぼ同時に、端末装置１からソーシャルゲーム管理サーバ４に対してアイテム付与要求を送信すると（ステップＳ０７）、ソーシャルゲーム管理サーバ４はデータベースによりアイテム付与条件が満たされているか否か確認するが（ステップＳ０８）、この時点では直前に行われたアイテム付与要求に対するアイテム付与処理（ステップＳ０４、Ｓ０５）がまだ行われていないため、アイテム付与条件が満たされていると判断する（ステップＳ０９）。そのため、アイテム付与処理を行ない（ステップＳ１０、Ｓ１１）、端末装置１に対して２つめのアイテム付与を行ってしまう（ステップＳ１２）。
【０００６】
このような不都合は、ゲーム事業者にとって不利益となるとともに、ゲーム内におけるアイテムの需要と供給のバランスが崩れる可能性があり、好ましくない。そのため、サービスリリース前において、そのような不具合を発見し、解消する必要がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第３８９６４８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述したようなアイテムが重複して付与される現象について検査（チェック）する方法として、複数の端末装置を用意し、各々の端末装置から同時にアイテム付与要求をソーシャルゲーム管理サーバに送信し、アイテムの付与状況を確認することが考えられる。
【０００９】
しかし、このような方法では、各端末装置におけるアイテム付与要求の送信タイミングの相違や通信速度の影響等によって、アイテムの重複付与が行われ得る条件になっている可能性が低く、検査方法としての信頼性が低いという問題があった。
【００１０】
一方、特許文献１には、ウェブサイトの脆弱性を分析するための、ウェブサイトの検査装置が記載されている。
【００１１】
しかしながら、この特許文献１に記載される検査装置は、個人情報の漏洩等のセキュリティの観点からの脆弱性を検査するものであって、上述したような、端末装置からサーバへの要求が同時あるいは短時間に複数回なされることに起因してサーバにおける処理が重複して行われることの検査に適用することはできない。
【００１２】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、端末装置からサーバへの要求が同時あるいは短時間に複数回なされることに起因してサーバにおける処理が重複して行われることを有効に検査することにある。
【課題を解決するための手段】
【００１３】
上記の課題を解決するため、本発明にあっては、端末装置からの要求に応じて所定の処理を実行するサーバにおける重複処理の検査を行うシステムであって、検査開始時に、前記端末装置から前記サーバに対して送信される要求を受信する受信手段と、当該要求をコピーすることで所定数の要求とし、当該所定数の要求を前記サーバに一括して送信する送信手段と、前記所定数の要求による前記サーバの処理結果を取得して重複処理の有無を確認する確認手段とを備えるようにしている。
【発明の効果】
【００１４】
本発明にあっては、端末装置からサーバへの要求が同時あるいは短時間に複数回なされることに起因してサーバにおける処理が重複して行われることを有効に検査することができる。
【図面の簡単な説明】
【００１５】
【図１】ソーシャルゲームにおけるアイテム付与処理の例を示すシーケンス図である。
【図２】本発明の一実施形態にかかるシステムの構成例を示す図である。
【図３】スマートフォンを想定した端末装置のハードウェア構成例を示す図である。
【図４】ＰＣを想定した端末装置およびソーシャルゲーム管理サーバのハードウェア構成例を示す図である。
【図５】端末装置、ソーシャルゲーム管理サーバおよび検査装置の機能構成例を示す図である。
【図６】プレイヤ情報のデータ構造例を示す図である。
【図７】実施形態の処理例を示すシーケンス図である。
【図８】操作画面の例を示す図（その１）である。
【図９】ゲーム画面の例を示す図である。
【図１０】操作画面の例を示す図（その２）である。
【発明を実施するための形態】
【００１６】
以下、本発明の好適な実施形態につき説明する。
【００１７】
＜構成＞
図２は本発明の一実施形態にかかるシステムの構成例を示す図である。
【００１８】
図２において、システムは、検査を行うオペレータが操作するスマートフォン、携帯電話、ＰＣ（Personal Computer）等の端末装置１（１Ａ〜１Ｃ）と、移動無線基地局やＷｉ−Ｆｉステーション等のアクセスポイント２と、インターネット等のネットワーク３と、複数のプレイヤがネットワークを介してゲームプレイを行うゲームの管理（制御）を行うソーシャルゲーム管理サーバ４と、ソーシャルゲーム管理サーバ４の検査を行う検査装置５とを備えている。なお、ソーシャルゲーム管理サーバ４の本番運用後には、端末装置１は一般のプレイヤ（ユーザ）により操作されることになる。
【００１９】
また、端末装置１Ａによりソーシャルゲーム管理サーバ４によるゲームを行ない、その過程で端末装置１Ｂもしくは端末装置１Ｃにより検査装置５を操作して検査処理を行うことを想定している。この場合、端末装置１Ａはプロキシ設定のアドレスを検査装置５のアドレスとすることで、端末装置１Ａとソーシャルゲーム管理サーバ４の間で送受信するデータは検査装置５を通過する。検査装置５の物理的な配置はネットワーク上であればどこでもよく、端末装置１のいずれかに設けてもよいし、ソーシャルゲーム管理サーバ４内に設けてもよい。
【００２０】
図３はスマートフォンを想定した端末装置１Ａ、１Ｂのハードウェア構成例を示す図である。
【００２１】
図３において、端末装置１Ａ、１Ｂは、電源システム１０１と、プロセッサ１０３、メモリコントローラ１０４、周辺インタフェース１０５を含むメインシステム１０２と、記憶部１０６と、外部ポート１０７と、高周波回路１０８と、アンテナ１０９と、オーディオ回路１１０と、スピーカ１１１と、マイク１１２と、近接センサ１１３と、ＧＰＳ（Global Positioning System）回路１１４と、ディスプレイコントローラ１１６、光学センサコントローラ１１７、入力コントローラ１１８を含むＩ／Ｏ（Input/Output）サブシステム１１５と、タッチ反応型ディスプレイシステム１１９と、光学センサ１２０と、入力部１２１とを備えている。
【００２２】
図４はＰＣを想定した端末装置１Ｃおよびソーシャルゲーム管理サーバ４のハードウェア構成例を示す図である。
【００２３】
図４において、端末装置１Ｃおよびソーシャルゲーム管理サーバ４は、システムバス１００１に接続されたＣＰＵ（Central Processing Unit）１００２、ＲＯＭ（Read Only Memory）１００３、ＲＡＭ（Random Access Memory）１００４、ＮＶＲＡＭ（Non-Volatile Random Access Memory）１００５、Ｉ／Ｆ（Interface）１００６と、Ｉ／Ｆ１００６に接続された、キーボード、マウス、モニタ、ＣＤ／ＤＶＤ（Compact Disk/Digital Versatile Disk）ドライブ等のＩ／Ｏ（Input/Output Device）１００７、ＨＤＤ（Hard Disk Drive）１００８、ＮＩＣ（Network Interface Card）１００９、モニタ１０１０、キーボード１０１１、マウス１０１２等を備えている。
【００２４】
図５は端末装置１、ソーシャルゲーム管理サーバ４および検査装置５の機能構成例を示す図である。
【００２５】
図５において、端末装置１Ａは、プレイヤ操作入力部１１とゲームロジック実行部１２とサーバアクセス部１３と画面表示部１４とを備えている。
【００２６】
プレイヤ操作入力部１１は、端末装置１を操作するプレイヤ（オペレータ）からの操作を入力（受付）する機能を有している。
【００２７】
ゲームロジック実行部１２は、プレイヤ操作入力部１１により入力されたプレイヤの操作に応じ、画面遷移を行ってゲームを進行する機能を有している。ゲームロジック実行部１２は、ソーシャルゲーム管理サーバ４からＨＴＭＬ（Hyper Text Markup Language）等で記載されたページデータおよびページデータ内に含まれるスクリプト等に基づいてゲームロジックを実行する場合（ブラウザ型）と、予め端末装置１Ａにダウンロードされてインストールされたアプリケーションに基づいてゲームロジックを実行する場合（アプリ型）とがある。
【００２８】
サーバアクセス部１３は、ゲームロジック実行部１２の処理の過程でソーシャルゲーム管理サーバ４へのアクセスが必要になった場合に、ソーシャルゲーム管理サーバ４に対してリクエスト（要求）を送信し、処理結果等をレスポンス（応答）として受信する機能を有している。ここで、リクエストとしては、更新系と参照系とがある。更新系のリクエストは、プレイヤ情報等の更新を伴うものである。参照系のリクエストは、プレイヤ情報等を参照するものである。
【００２９】
画面表示部１４は、ゲームロジック実行部１２の制御のもと、ゲーム進行の画面表示を行う機能を有している。
【００３０】
ソーシャルゲーム管理サーバ４は、リクエスト処理部４１とプレイヤ情報管理部４２とプレイヤ情報データベース４３とを備えている。リクエスト処理部４１には、操作受付部４１１とゲーム進行制御部４１２とアイテム付与部４１３とが含まれている。
【００３１】
リクエスト処理部４１は、端末装置１Ａからのリクエストを受信して対応する処理を行い、リクエストの処理結果をレスポンスとして端末装置１Ａに送信する機能を有している。更新系のリクエストであればプレイヤ情報等の更新を伴う処理を行ない、処理により変更されたプレイヤ情報等を処理結果とする。参照系のリクエストであれば該当するプレイヤ情報等を参照し、取得したプレイヤ情報等の値を処理結果とする。また、レスポンスには、ブラウザ型の場合、次にプレイヤが操作対象とすることのできる画面情報が含まれる。
【００３２】
操作受付部４１１は、主にブラウザ型の場合に使用される機能部であり、端末装置１Ａから所定の操作入力を受け付ける機能を有している。アプリ型の場合は操作受付部４１１に相当する機能は端末装置１Ａのゲームロジック実行部１２が担う。
【００３３】
ゲーム進行制御部４１２は、主にブラウザ型の場合に使用される機能部であり、ゲーム進行を制御する機能を有している。アプリ型の場合はゲーム進行制御部４１２に相当する機能は端末装置１Ａのゲームロジック実行部１２が担う。
【００３４】
アイテム付与部４１３は、ゲーム進行の過程で端末装置１Ａのプレイヤがアイテムを取得可能な状態となった場合（例えば、友達プレイヤからアイテムがプレゼントされた場合等）に、端末装置１Ａからのアイテム付与のリクエストに応じて端末装置１Ａのプレイヤにアイテムを付与する機能を有している。アイテムの付与は、プレイヤ情報管理部４２によりプレイヤ情報データベース４３の該当するプレイヤ情報にアイテムの付与を記録するとともに、端末装置１Ａにアイテム付与のデータを送信することで行われる。
【００３５】
プレイヤ情報管理部４２は、ゲームに参加している全プレイヤの各種の情報（プレイヤ情報）をプレイヤ情報データベース４３に保持して管理する機能を有しており、リクエスト処理部４１からの要求に応じてプレイヤ情報の参照もしくは更新を行う。
【００３６】
検査装置５は、プロキシ部５１と検査条件設定受付部５２と検査開始受付部５３と検査開始判断部５４と検査実行部５５と検査結果出力部５６とを備えている。検査実行部５５は、プロキシ機能抑制部５５１とリクエスト待機部５５２とリクエストコピー部５５３とリクエスト一括送信部５５４とアイテム増加数確認部５５５と診断部５５６と検査結果記録部５５７とを備えている。
【００３７】
プロキシ部５１は、端末装置１Ａに対してソーシャルゲーム管理サーバ４へのアクセスについてプロキシ機能を提供する機能を有している。すなわち、端末装置１Ａからソーシャルゲーム管理サーバ４にリクエストを送信する際に、いったん検査装置５がリクエストを受信し、検査装置５からソーシャルゲーム管理サーバ４にリクエストを送信（転送）する。ソーシャルゲーム管理サーバ４からのレスポンスについても、いったん検査装置５が受信し、端末装置１Ａに送信（転送）する。
【００３８】
検査条件設定受付部５２は、検査装置５のコンソールとして機能する端末装置１Ｂ（１Ｃ）からの操作に応じ、検査条件の設定を受け付ける機能を有している。検査条件としては、リクエスト数と検査回数と検査間隔とがある。リクエスト数は、端末装置１Ａから到来したリクエストを何個のリクエストにするかという数である。例えば、リクエスト数＝１０とした場合、９個のコピーを作成して１０個のリクエストを作成する。検査回数は、リクエスト数分のリクエストを一括に送信するのを１単位として、何単位の一括送信を行うのかを示す数である。重複処理の有無はこの検査回数毎に確認する。検査間隔は、検査回数だけ一括送信を繰り返す時間間隔を示す値である。検査条件にはデフォルト値を設定しておくことで、積極的な設定が行われない場合にはデフォルト値を検査条件とすることができる。
【００３９】
検査開始受付部５３は、検査装置５のコンソールとして機能する端末装置１Ｂ（１Ｃ）からの操作に応じ、検査開始の指示を受け付ける機能を有している。
【００４０】
検査開始判断部５４は、検査開始の指示によらず、予め設定した条件に該当した場合に検査開始を自動的に判断する機能を有している。検査開始判断部５４はソーシャルゲーム管理サーバ４から端末装置１Ａに送信するデータを監視し、例えば、アイテムの付与が可能になる所定のページが出現した場合や、アイテムの付与を告げる所定のメッセージがページ内に含まれる場合や、アイテムの付与を示す所定のデータが出現した場合に検査開始と判断する。
【００４１】
検査実行部５５は、検査開始の指示を受けた後に、検査を実行する機能を有している。
【００４２】
プロキシ機能抑制部５５１は、検査開始後にプロキシ部５１によるプロキシ機能の一部を抑制し、検査完了後に抑制を解除する機能を有している。すなわち、通常のプロキシ機能では端末装置１Ａから送信されてきたリクエストを即座にソーシャルゲーム管理サーバ４に送信するが、検査開始後には、端末装置１Ａからのリクエストを受信するだけで、所定数にコピーされて一括送信するまで保持する。また、通常のプロキシ機能ではソーシャルゲーム管理サーバ４から送信されてきたレスポンスを即座に端末装置１Ａに送信するが、検査開始後には、ソーシャルゲーム管理サーバ４からのレスポンスのうち本来のリクエストに対するもの以外（コピーにより増やしたリクエストに対するレスポンス）は遮断する。
【００４３】
リクエスト待機部５５２は、検査開始後に、端末装置１Ａからのリクエストの受信待ちを行い、リクエストが到来した場合にそれを受信する機能を有している。
【００４４】
リクエストコピー部５５３は、リクエスト待機部５５２が受信した端末装置１Ａからのリクエストをコピーして、検査条件のリクエスト数および検査回数を満たすリクエストを作成する機能を有している。
【００４５】
リクエスト一括送信部５５４は、リクエストコピー部５５３により数が増やされたリクエストを検査回数の１回分ずつソーシャルゲーム管理サーバ４に向けて一括送信する機能を有している。
【００４６】
アイテム増加数確認部５５５は、検査回数の１回分ずつの複数のリクエストにより、ソーシャルゲーム管理サーバ４における当該プレイヤのアイテム数の増加数を確認し、重複処理の有無を確認する機能を有している。本来、リクエストにより１個のアイテムが付与される場合に、２個以上のアイテムが付与された場合には重複処理が行われたと判断する。本来、２個以上のアイテムが付与される場合に、それを超えるアイテムが付与された場合には重複処理が行われたと判断する。
【００４７】
アイテム数の増加数の確認手法として、具体的には、ソーシャルゲーム管理サーバ４のレスポンスとしてのページデータやその他のデータにアイテム数の情報（数値による場合だけでなく、「アイテムが付与されました」といった文言を含む。）が含まれている場合には、それらのデータから当該プレイヤのアイテム数の増加数を確認することができる。リクエストを行った前後のページデータやその他のデータの差分からアイテム数の情報を得てもよい。リクエストに対するレスポンスがエラーを示すものである場合、そのレスポンスの限りにおいては重複処理が行われなかったと判断することができる。
【００４８】
また、ソーシャルゲーム管理サーバ４のレスポンスにアイテム数の情報が含まれていない場合には、ソーシャルゲーム管理サーバ４にアクセスして当該プレイヤのアイテム数の取得を行う。例えば、当該プレイヤの所有アイテム一覧のページ等にアクセスして、アイテム数の取得を行うことができる。この場合、予め、アクセス先のアドレス等を検査装置５に設定しておく。また、検査装置５が独自にソーシャルゲーム管理サーバ４にアクセスするために、予めプレイヤＩＤやパスワード等の情報の設定を必要とする場合もある。
【００４９】
診断部５５６は、アイテム増加数確認部５５５による重複処理の確認結果および検査条件等に基づき、ソーシャルゲーム管理サーバ４の診断を行う機能を有している。診断は、予め重複処理の確認結果および検査条件等と診断結果とをテーブル等において対応付けておき、得られた重複処理の確認結果および検査条件等から診断結果を取得することにより実現することができる。
【００５０】
検査結果記録部５５７は、検査回数の１回分毎の重複処理の有無や、実際に送信されたリクエストおよびレスポンスのログや、診断部５５６による診断結果等を内部的に記録する機能を有している。
【００５１】
検査結果出力部５６は、検査装置５のコンソールとして機能する端末装置１Ｂ（１Ｃ）からの操作に応じ、検査結果を端末装置１Ｂ（１Ｃ）に送信（出力）する機能を有している。
【００５２】
端末装置１Ｂ（１Ｃ）は、ブラウザ１５の機能により実現される検査条件設定部１５１と検査開始指示部１５２と検査結果取得・表示部１５３とを備えている。
【００５３】
検査条件設定部１５１は、オペレータの操作に基づき、検査装置５に対して検査条件を設定する機能を有している。
【００５４】
検査開始指示部１５２は、オペレータの操作に基づき、検査装置５に対して検査開始を指示する機能を有している。
【００５５】
検査結果取得・表示部１５３は、オペレータの操作に基づき、検査装置５から検査結果を取得して表示する機能を有している。
【００５６】
なお、端末装置１Ｂ（１Ｃ）における主要な機能をブラウザ１５により実現する場合について説明したが、検査装置５の制御のための専用のアプリケーションとしてもよい。
【００５７】
また、ゲームを進行するために端末装置１Ａを用いる場合について説明したが、ＰＣ等の端末装置１Ｃにおいてスマートフォン等のゲーム画面をエミュレートし、端末装置１Ａを省略することもできる。
【００５８】
図６はプレイヤ情報データベース４３（図５）に保持されるプレイヤ情報のデータ構造例を示す図であり、「プレイヤＩＤ」「アイコン情報」「プレイヤ名」「レベル」「ステータス」「アイテム付与条件」「アイテム毎アイテム数」等の項目を有している。「プレイヤＩＤ」は、プレイヤを識別する情報である。「アイコン情報」は、当該プレイヤの表示用のアイコン画像を示す情報である。「プレイヤ名」は、当該プレイヤの表示名の情報である。「レベル」は、当該プレイヤのゲーム上の強さを示す情報である。「ステータス」は、当該プレイヤのゲームの進行状態を示す情報である。「アイテム付与条件」は、アイテムが付与される条件を示す情報である。例えば、友達プレイヤから所定のアイテムがプレゼントされている場合には、所定のリクエストを行うことで所定のアイテムが付与されるということを示している。「アイテム毎アイテム数」は、当該プレイヤに現時点で付与されているアイテム毎の取得数の情報である。
【００５９】
＜動作＞
図７は上記の実施形態の処理例を示すシーケンス図である。
【００６０】
図７において、オペレータの操作に基づき、端末装置１Ｃの検査条件設定部１５１は検査装置５に検査条件の設定を行う（ステップＳ１０１）。検査装置５では検査条件設定受付部５２が検査条件の設定を受け付け、正常に設定された場合にはその旨を応答する（ステップＳ１０２）。
【００６１】
図８は検査条件の設定のために端末装置１Ｃに表示される操作画面の例を示しており、リクエスト数と検査回数と検査間隔を入力もしくは選択することで、検査条件の設定が行えるようになっている。「検査開始」ボタンは、検査開始を指示する際に操作するものである。
【００６２】
なお、検査条件の設定は検査開始の指示を行う前に行えばよい。また、検査条件にはデフォルト値が設定されているため、そのままでよい場合には積極的に検査条件の設定を行う必要はない。
【００６３】
図７に戻り、プレイヤ（オペレータ）の操作に基づき、端末装置１Ａのサーバアクセス部１３はゲーム進行のためのリクエストをプロキシサーバとしての検査装置５に送信し（ステップＳ１０３）、検査装置５のプロキシ部５１は受信したリクエストをソーシャルゲーム管理サーバ４に転送する（ステップＳ１０４）。
【００６４】
ソーシャルゲーム管理サーバ４のリクエスト処理部４１は、受信したリクエストに対応する処理を行ってレスポンスを検査装置５に送信し（ステップＳ１０５）、検査装置５のプロキシ部５１は端末装置１Ａに転送する（ステップＳ１０６）。
【００６５】
これらのゲーム進行を行っている過程でソーシャルゲーム管理サーバ４からアイテム付与が可能になることを示すレスポンスが端末装置１Ａに送信されたとする（ステップＳ１０７、Ｓ１０８）。図９は「○○様から□□□□□を１個もらいました。」という、アイテムがプレゼントされたゲーム画面の例を示しており、「受け取る」ボタンを操作することでアイテムの付与が受けられる状態にあることを示している。
【００６６】
図７に戻り、オペレータがそのアイテム付与についてソーシャルゲーム管理サーバ４の検査をしたいと考えた場合、端末装置１Ｃの検査開始指示部１５２から検査装置５に対して検査開始を指示する（ステップＳ１０９）。例えば、図８に示した操作画面から「検査開始」ボタンを押すことで検査開始を指示する。
【００６７】
図７に戻り、検査装置５の検査開始受付部５３は検査開始を正常に受け付けると、その旨を応答する（ステップＳ１１０）。
【００６８】
次いで、検査装置５の検査実行部５５は、プロキシ機能抑制部５５１によりプロキシ機能の抑制を行い（ステップＳ１１１）、リクエスト待機部５５２によりリクエスト待機の状態に入る（ステップＳ１１２）。
【００６９】
その後、端末装置１Ａにおいてリクエストが発行（例えば、図９のゲーム画面の「受け取る」ボタンが押されることで、ボタンに対応するリクエストが発行）され、検査装置５のリクエスト待機部５５２が端末装置１Ａからリクエストを受信すると（ステップＳ１１３）、リクエストコピー部５５３により検査条件に従ってリクエストをコピーして必要数のリクエスト（リクエスト数分のリクエスト群を検査回数の数）を用意し（ステップＳ１１４）、リクエスト一括送信部５５４によりソーシャルゲーム管理サーバ４に向けて検査回数毎に一括送信する（ステップＳ１１５）。
【００７０】
ソーシャルゲーム管理サーバ４のリクエスト処理部４１は、受信したリクエストに対応する処理を行ってレスポンスを検査装置５に送信する（ステップＳ１１６）。このレスポンスとしては、アイテム付与を正常に行った場合のレスポンスや、アイテム付与が重複して要求されたことに対してエラーを返すものや、重複処理を行ってしまってアイテム付与を行った場合のレスポンスも含まれる。
【００７１】
次いで、検査装置５の検査実行部５５は、アイテム増加数確認部５５５により、検査回数の１回分ずつの複数のリクエストにつき、ソーシャルゲーム管理サーバ４における当該プレイヤのアイテム数の増加数を確認し、重複処理の有無を確認する（ステップＳ１１７）。
【００７２】
次いで、診断部５５６により、アイテム増加数確認部５５５による重複処理の確認結果および検査条件等に基づき、ソーシャルゲーム管理サーバ４の診断を行う（ステップＳ１１８）。
【００７３】
次いで、検査結果記録部５５７により、検査回数の１回分毎の重複処理の有無や、実際に送信されたリクエストおよびレスポンスのログや、診断部５５６による診断結果等を内部的に記録する（ステップＳ１１９）。
【００７４】
その後、検査回数分だけ同様の処理を繰り返し、端末装置１Ａに対してレスポンスを送信する（ステップＳ１２０）。端末装置１Ａからは１つのリクエストが出ただけであるため、１つのレスポンスを返す。そして、プロキシ機能抑制部５５１によりプロキシ機能の抑制を解除する（ステップＳ１２１）。
【００７５】
その後、端末装置１Ｃから検査結果の要求があると（ステップＳ１２２）、検査装置５の検査結果出力部５６は検査結果を応答し（ステップＳ１２３）、端末装置１Ｃは検査結果を表示する（ステップＳ１２４）。なお、端末装置１Ｃからの要求により検査結果を応答しているが、検査装置５からの要求を待たずに端末装置１Ｃに検査結果を送信してもよい。
【００７６】
図１０は端末装置１Ｃに表示される操作画面において、検査条件とともに検査結果と診断の内容が表示された状態を示している。この例では、３回の検査回数のうちの１回目と２回目では重複処理は発生せず、３回目で重複処理が発生していることを示している。また、検査結果の下には、リクエストおよびレスポンスの内容を示すログがスクロールして閲覧できるようになっている。
【００７７】
また、診断としては、「データベーストランザクション管理に不備があります。重要な処理を行う際にはレコードのロックを行い、他の処理が同時に行われないように排他制御をする必要があります。」が表示されている。診断結果としては、その他に、検査条件が十分でないため、再設定して検査を行うことを勧める旨等を表示することもできる。
【００７８】
＜総括＞
以上説明したように、本実施形態によれば、端末装置からサーバへの要求が同時あるいは短時間に複数回なされることに起因してサーバにおける処理が重複して行われることを有効に検査することができる。
【００７９】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【符号の説明】
【００８０】
１、１Ａ〜１Ｃ      端末装置
１１                プレイヤ操作入力部
１２                ゲームロジック実行部
１３                サーバアクセス部
１４                画面表示部
１５                ブラウザ
１５１              検査条件設定部
１５２              検査開始指示部
１５３              検査結果取得・表示部
２                  アクセスポイント
３                  ネットワーク
４                  ソーシャルゲーム管理サーバ
４１                リクエスト処理部
４１１              操作受付部
４１２              ゲーム進行制御部
４１３              アイテム付与部
４２                プレイヤ情報管理部
４３                プレイヤ情報データベース
５                  検査装置
５１                プロキシ部
５２                検査条件設定受付部
５３                検査開始受付部
５４                検査開始判断部
５５                検査実行部
５５１              プロキシ機能抑制部
５５２              リクエスト待機部
５５３              リクエストコピー部
５５４              リクエスト一括送信部
５５５              アイテム増加数確認部
５５６              診断部
５５７              検査結果記録部
５６                検査結果出力部
【要約】
【課題】端末装置からサーバへの要求が同時あるいは短時間に複数回なされることに起因してサーバにおける処理が重複して行われることを有効に検査する。
【解決手段】端末装置からの要求に応じて所定の処理を実行するサーバにおける重複処理の検査を行うシステムであって、検査開始時に、前記端末装置から前記サーバに対して送信される要求を受信する受信手段と、当該要求をコピーすることで所定数の要求とし、当該所定数の要求を前記サーバに一括して送信する送信手段と、前記所定数の要求による前記サーバの処理結果を取得して重複処理の有無を確認する確認手段とを備える。
【選択図】図５【図１】
0005411381.tif 000002
【図２】
0005411381.tif 000003
【図３】
0005411381.tif 000004
【図４】
0005411381.tif 000005
【図５】
0005411381.tif 000006
【図６】
0005411381.tif 000007
【図７】
0005411381.tif 000008
【図８】
0005411381.tif 000009
【図９】
0005411381.tif 000010
【図１０】
0005411381.tif 000011