(58)【調査した分野】(Int.Cl.,DB名)
第1アプリケーションを提供する第1アプリケーション装置及び第2アプリケーションを提供する第2アプリケーション装置を含む複数のアプリケーション装置と通信可能であり、前記第1アプリケーションを利用する複数の利用者のそれぞれを一意に識別する第1識別情報及び前記第2アプリケーションを利用する複数の利用者のそれぞれを一意に識別する第2識別情報を発行して管理する管理装置であって、
前記第1アプリケーション装置に対して利用者の第1識別情報に関連付けられた識別子を発行する発行部と、
前記第1アプリケーション及び前記第2アプリケーションを利用可能な端末装置において、前記第1アプリケーションから前記第2アプリケーションに引き渡された前記識別子を受領する受領部と、
前記発行部で発行した識別子と前記受領部で受領した識別子とが合致する前記第1識別情報と前記第2識別情報とを関連付けて管理する管理部と、
を備え、
前記複数のアプリケーション装置のそれぞれが提供するアプリケーションは、当該アプリケーション内での他の利用者と特定の関係が形成されるものであり、
前記管理部は、複数のアプリケーションのそれぞれの利用者の前記特定の関係を示す関係情報を、前記複数のアプリケーション装置のそれぞれから取得して管理する、
ことを特徴とする管理装置。
前記第1アプリケーションを利用する端末装置または前記第1アプリケーション装置のいずれかから前記第2識別情報に対応付けられた関係情報の取得要求を受け付ける受付部と、
前記取得要求をした前記端末装置または前記第1アプリケーション装置に前記第2識別情報に対応付けられた関係情報を通知する通知部と、
を備えることを特徴とする請求項1に記載の管理装置。
前記通知部で通知した関係情報の中から招待利用者が選択した被招待利用者に対する前記第1アプリケーションへの招待要求を受け付けて招待要求を蓄積する蓄積部を備えた請求項2に記載の管理装置。
前記通知部は、前記端末装置から招待要求の照会があると、当該端末装置の利用者が被招待利用者となっている招待要求が前記蓄積部に蓄積されている場合、前記招待利用者が前記第1アプリケーションへ招待することを示す招待情報を当該端末装置に通知する、
ことを特徴とする請求項3に記載の管理装置。
前記通知部は、当該通知部で通知した前記関係情報の中から招待利用者が選択した被招待利用者に対する招待要求があると、前記被招待利用者の前記第2アプリケーション装置へ前記招待利用者が前記第1アプリケーションに招待することを示す招待情報を通知することを特徴とする請求項2に記載の管理装置。
第1アプリケーションを提供する第1アプリケーション装置及び第2アプリケーションを提供する第2アプリケーション装置を含む複数のアプリケーション装置と通信可能であり、前記第1アプリケーションを利用する複数の利用者のそれぞれを一意に識別する第1識別情報及び前記第2アプリケーションを利用する複数の利用者のそれぞれを一意に識別する第2識別情報を発行して管理する管理装置の制御方法であって、
前記複数のアプリケーション装置のそれぞれが提供するアプリケーションは、当該アプリケーション内での他の利用者と特定の関係が形成されるものであり、
前記第1アプリケーション装置に対して、利用者の第1識別情報に関連付けられた識別子を発行し、
前記第1アプリケーションから前記第2アプリケーションに引き渡された前記識別子を、前記第2アプリケーション装置から受領し、
前記発行した識別子と前記受領した識別子とが合致する前記第1識別情報と前記第2識別情報とを関連付けて管理するとともに、複数のアプリケーションのそれぞれの利用者の前記特定の関係を示す関係情報を、前記複数のアプリケーション装置のそれぞれから取得して管理する、
ことを特徴とする管理装置の制御方法。
第1アプリケーションを提供する第1アプリケーション装置及び第2アプリケーションを提供する第2アプリケーション装置を含む複数のアプリケーション装置と通信可能であり、前記第1アプリケーションを利用する複数の利用者のそれぞれを一意に識別する第1識別情報及び前記第2アプリケーションを利用する複数の利用者のそれぞれを一意に識別する第2識別情報を発行して管理する管理装置のコンピュータに用いられるプログラムであって、
前記管理装置のコンピュータを、
前記第1アプリケーション装置に対して、利用者の第1識別情報に関連付けられた識別子を発行する発行部と、
前記第1アプリケーションから前記第2アプリケーションに引き渡された前記識別子を、前記第2アプリケーション装置から受領する受領部と、
前記発行部で発行した識別子と前記受領部で受領した識別子とが合致する前記第1識別情報と前記第2識別情報とを関連付けて管理する管理部と、
として機能させ、
前記複数のアプリケーション装置のそれぞれが提供するアプリケーションは、当該アプリケーション内での他の利用者と特定の関係が形成されるものであり、
前記管理部は、複数のアプリケーションのそれぞれの利用者の前記特定の関係を示す関係情報を、前記複数のアプリケーション装置のそれぞれから取得して管理する、
ことを特徴とするプログラム。
【発明を実施するための形態】
【0015】
以下、実施形態として、本発明に係る管理サーバを用いたアプリケーションシステムについて、図面を参照しつつ説明する。
<1.アプリケーションシステムの構成>
図1は、本発明の実施形態に係るアプリケーションシステム100のブロック図である。このアプリケーションシステム100は、インターネットなどの通信網NET、利用者の端末装置2、管理サーバ3、アプリケーションサーバ4A、4B、4C…を備える。アプリケーションサーバ4A、4B、4C…は、独立して利用者のアカウントを管理し、それぞれのアプリケーションでの独自サービスを利用者に提供する。この例のアプリケーションサーバ4A、4B、4C…は、独自サービスとしてゲームA、ゲームB、ゲームC…を提供する。ゲームA、ゲームB、ゲームC…は、ブラウザによって提供されるブラウザゲームであってもよいが、この例では、ゲームA、ゲームB、ゲームC…のプログラムを利用者の端末装置2にダウンロードし、端末装置2にプログラムがインストールされてプログラムが実行されるものとする。この場合、アプリケーションサーバ4A、4B、4C…は、ゲームA、ゲームB、ゲームC…の利用者のゲームデータを管理したり、得点ランキングなどを利用者に提供したりする。
【0016】
また、アプリケーションサーバ4A、4B、4C…は、ゲームA、ゲームB、ゲームC…など各種のアプリケーション(例えば、写真や動画の共有)を提供するものであるが、アプリケーションが提供する独自サービスに利用者同士のコミュニケーションを図る機能を加えてもよい。そのようなコミュニケーション機能を用いて、例えば、各アプリケーションの利用者は、同じゲーム(アプリケーション)の利用者と仲間関係を構築し、仲間同士で挨拶やコメントなどのコミュニケーションを行うことによってゲーム上で交換価値があるポイントを獲得できる。また、ゲーム上での対戦では、仲間の応援が得られるなど、仲間の数が多いほどゲームが有利に進行する。仲間関係は、例えば利用者が仲間申請を行い、これを申請先の利用者が承認することによって構築される。
【0017】
また、管理サーバ3はアプリケーションサーバ4A、4B、4C…と通信可能である。さらに、利用者の端末装置2は、通信網NETを介した通信が可能であり、例えば、パーソナルコンピュータや携帯電話機などが該当する。
【0018】
SNSに依存しない複数のゲームに関係する相互サービスを利用者に提供するためには、互いのゲームのアカウントを関連付ける必要がある。アカウントの関連付けができると、相互サービスとして、例えば、あるゲームをプレイしている利用者が当該ゲームに、他のゲームで仲間となっている他の利用者を招待できるようになる。つまり、ゲームAの利用者がゲームBを利用している場合、当該利用者は、ゲームBにおいて仲間関係にある利用者をゲームAに招待することができるようになる。
ところで、このようなSNSに依存しないゲームにおいては、利用者が利用しているゲームに対して他の利用者を招待する場合、ソーシャルメディアやメールなどを利用する方法が行われていた。この方法では招待したい相手がソーシャルメディアを利用しているか不明であるし、メールアドレスを知らない場合もある。そもそも、ゲームで仲間関係にある利用者は、必ずしも現実社会で友だち関係にあるとも限らない。また、ゲーム内で知られている利用者名(ニックネーム)と、現実社会で利用されているソーシャルメディアやメールでの利用者名(アカウント)とが一致していないため、ソーシャルメディアで招待したい相手を特定することが難しい。したがって、上記の方法では、ゲームで仲間関係にある利用者を招待することができない場合があった。そこで、SNSに依存しない複数のゲームのアカウントを関連付けることで、あるゲームをプレイしている利用者が当該ゲームに、他のゲームで仲間となっている他の利用者を招待できるようになる。
【0019】
招待を行う場合には、第1に、招待する利用者(招待利用者)のゲームA(アプリケーションAの一例)のアカウントとゲームB(アプリケーションBの一例)のアカウントとを関連付ける必要がある。第2に、招待利用者とゲームBにおいて仲間関係にある利用者を特定する必要がある。このような処理は、異なるゲームに跨る処理であるため、アプリケーションサーバ4A及びアプリケーションサーバ4Bが単独で実行することはできない。
管理サーバ3は、招待利用者のゲームAのアカウントとゲームBのアカウントとを関連付ける関連付処理と、招待される利用者(被招待利用者)の候補を招待利用者に提示する招待処理とを実行する。
【0020】
<1−1:関連付処理の概要>
図2Aを参照して、関連付処理の概要を説明する。アプリケーションサーバ4A及び4Bは利用者がアカウントを登録する際に、ローカル識別情報(以下、LocalIDと称する)を生成する。このLocalIDは、各アプリケーションサーバ4A及び4Bのそれぞれにおいて、利用者を一意に識別する識別情報である。したがって、同一利用者であってもLocalIDは異なり互換性がない。
アプリケーションサーバ4A及び4BはLocalIDの生成後の任意のタイミングで、管理サーバ3に対してフレンドネットワーク識別情報(以下、FNWIDと称する)の発行を要求する。FNWIDは、アプリケーションシステム100全体で利用者を識別するための識別情報であって、管理サーバ3が一元的に管理する。但し、管理サーバ3は、アプリケーションサーバ4A及び4BからのFNWID発行要求に応じてFNWIDを発行するので、ゲームAの利用者とゲームBの利用者とが同一であっても異なるFNWIDを発行する。
アプリケーションサーバ4AはゲームAを利用する複数の利用者のそれぞれを一意に識別するLocalIDをFNWID(第1識別情報の一例)と対応づけて管理し、アプリケーションサーバ4BはゲームBを利用する複数の利用者のそれぞれを一意に識別するLocalIDをFNWID(第2識別情報の一例)と対応づけて管理する。
【0021】
この例では、ゲームAをプレイする利用者に対するFNWIDの発行であって、アプリケーションサーバ4AからのFNWID発行要求に基づいて発行されるFNWIDをFNWIDaとする。またFNWIDaに対応するLocalIDをLocalIDaとする。また、ゲームAをプレイする同一の利用者に対するFNWIDの発行であって、ゲームBに対応したアプリケーションサーバ4BからのFNWID発行要求に基づいて発行されるFNWIDをFNWIDbとする。またFNWIDbに対応するLocalIDをLocalIDbとする。また、ゲームAに対応する種別情報をAppIDaとし、ゲームBに対応する種別情報をAppIDbとする。FNWIDaは、管理サーバ3、アプリケーションサーバ4A及び端末装置2に保存される。同様に、FNWIDbは、管理サーバ3、アプリケーションサーバ4B及び端末装置2に保存される。また、LocalIDaはアプリケーションサーバ4Aに、LocalIDbはアプリケーションサーバ4Bに保存される。但し、FNWIDaとFNWIDbとが発行された状態では、両者が同一の利用者に対して発行された識別情報であることは、管理サーバ3において把握できていない。
【0022】
ここで、FNWIDaにFNWIDbを関連付ける関連付処理において、管理サーバ3はFNWIDaに対応づけたトークンTx(識別子)を発行し、アプリケーションサーバ4Aに送信する(S1)。アプリケーションサーバ4Aは受信したトークンTxをFNWIDaに対応する端末装置2のゲームAに送信する(S2)。なお、管理サーバ3からアプリケーションサーバ4AにトークンTxを送信する(S1)タイミングと、アプリケーションサーバ4Aから端末装置2にトークンTxを送信する(S2)タイミングとは連動していなくてもよい。例えば、端末装置2から要求に応じてアプリケーションサーバ4AからトークンTxを端末装置2に送信するようにしてもよい。
次に、端末装置2では、FNWIDaに対応するゲームAからFNWIDbに対応するゲームBにトークンTxが引き渡される(S3)。引き渡されたトークンTxとFNWIDbは、ゲームBからアプリケーションサーバ4Bに送信される(S4)。アプリケーションサーバ4Bは、FNWIDbとトークンTxを管理サーバ3に送信する(S5)。ここで、ゲームAからゲームBにトークンTxを引き渡す処理において(S3)、端末装置2の記憶装置23(
図8参照)の所定の領域(アプリケーション共有エリア)を介在するようにしてもよい。
【0023】
このように、管理サーバ3においてFNWIDaと対応づけて発行したトークンTxは、アプリケーションサーバ4A→端末装置2のゲームA→端末装置2のゲームB→アプリケーションサーバ4B→管理サーバ3といった経路で転送され、FNWIDbと対応づけて受信される。管理サーバ3では、既に発行したトークンを検索し、受信したトークンと一致するトークンがある場合には、受信したトークンに対応づけられたFNWIDと発行したトークンに対応づけられたFNWIDとを紐付けする。この例では、受信したトークンはTxであり、これに対応づけられたFNWIDはFNWIDbである。そして、受信したトークンTxと一致するトークンはFNWIDaと対応づけられている。したがって、管理サーバ3は、FNWIDaとFNWIDbとを紐付けることができる。例えば、FNWIDaとFNWIDbとに共通の参照識別情報(以下、RefIDと称する)を発行する。ここで、FNWIDa及びFNWIDbに共通のRefIDをRefIDxとすれば、
図2Aに示すようにFNWIDa及びFNWIDbにRefIDxを対応づけて記憶するようにしてFNWIDaとFNWIDbとを紐付ける。
【0024】
上述した関連付処理に関し、
図1に示す管理サーバ3は、ゲームA(第1アプリケーションの一例)を提供するアプリケーションサーバ4A(第1アプリケーション装置の一例)及びゲームB(第2アプリケーションの一例)を提供するアプリケーションサーバ4B(第2アプリケーション装置の一例)を含む複数のアプリケーションサーバと通信可能であり、ゲームAを利用する複数の利用者のそれぞれを一意に識別するFNWIDa(第1識別情報)及びゲームBを利用する複数の利用者のそれぞれを一意に識別するFNWIDb(第2識別情報)を発行して管理する。
さらに、管理サーバ3は、アプリケーションサーバ4Aに対して利用者のFNWIDaに関連付けられたトークン(識別子の一例)を発行する発行部11と、ゲームA及びゲームBを利用可能な端末装置2において、ゲームAからゲームBに引き渡されたトークンを、アプリケーションサーバ4Bから受領する受領部12と、発行部11で発行したトークンと受領部12で受領したトークンとが合致するFNWIDaとFNWIDbとを関連付けて管理する管理部13とを備える。なお、この管理サーバ3が招待処理を実行する場合は、ここでの利用者はゲームAに招待を行う招待利用者となる。
【0025】
ここで、ゲームはアプリケーションの一例である。また、受領部12は、ゲームAからゲームBに引き渡されたトークンを受領するが、その経路は問わない。例えば、トークンを端末装置2から直接的に受領してもよいし、アプリケーションサーバ4B(第2アプリケーション装置)を介して間接的に受領してもよい。また、トークンをゲームAからゲームBに引き渡す契機として利用者の操作に基づいたり、ゲームAの自動的な処理に基づいたり、ゲームAによって起動される端末装置で動作するプログラム処理に基づくものでもよい。また、トークンは、発行部で発行したものと受領部で受領したものとの一致が確認できる情報であれば、その生成方法や情報の中身は問わず、例えば、一意な英数字を組み合わせた文字列である。
【0026】
一方、端末装置2は、利用可能なゲーム(アプリケーションの一例)ごとにFNWID(識別情報の一例)を記憶する記憶部205を備える。さらに端末装置2は、利用中のゲームAのFNWIDaに対応づけられており管理サーバ3で発行されたトークンを取得する取得部207を備える。さらに端末装置2は、取得部207で取得したトークンとゲームBのFNWIDbとの組を所定の経路で管理サーバ3に通知する識別子通知部208を備える。例えば、端末装置2の記憶部205は、ゲームAのFNWIDaとゲームBのFNWIDbを記憶している。端末装置2において、ゲームAの利用中にゲームBが選択されると、取得部207は、利用中のゲームAについて招待利用者を識別するFNWIDaに対応づけられており管理サーバ3の発行部11で発行されたトークンを取得する。そして、識別子通知部208は、取得部207で取得したトークンとゲームBのFNWIDbとの組を所定の経路で管理サーバ3に通知する。
【0027】
これにより、管理サーバ3に対して利用者が管理するアカウントを新たに設けなくても、管理サーバ3は、所定の経路でトークンを一巡させることによって、独立して運用されるアプリケーションサーバ4Aのアカウントとアプリケーションサーバ4Bのアカウントとを紐付けて管理することができる。つまり、利用者は、管理サーバ3の存在を意識する必要がない。このように同一の利用者の異なるゲームのアカウントを紐付けることで、複数のゲームに関係する相互サービスを利用者に提供することが可能になる。例えば、相互サービスとして、一方のゲーム画面に他方のゲームにおける仲間リストを表示することが可能になる。仲間リストを表示することが可能になれば、他のゲームの仲間を、現在利用しているゲームに招待するような相互サービスが可能になる。上述したように関連付処理は、利用者の端末装置2において他のゲームが選択された場合に実行される。仮に、全ての利用者について他のゲームの選択とは無関係に、関連付処理を随時実行するとすれば、管理サーバ3の処理負荷が増大するが、本実施形態のように他のゲームが選択されるような所定の処理が発生したタイミングで関連付処理を実行すれば効率良く紐付けができるようになり、管理サーバ3の処理負荷を軽減することができる。なお、関連付処理の実行の契機を、他のゲームの選択後でなく、他のゲームの選択前としてもよい。つまり、当該利用者から複数のFNWIDを関連付けるための関連付処理の要求があったときに、同処理を実行するようにしてもよい。このように所定の処理が発生したタイミングで関連付処理が行われるようにすれば、同一利用者が複数のFNWIDを有している場合に全てのFNWIDの組について関連付処理を行う場合と比較して、管理サーバ3の処理負荷を軽減することができる。
【0028】
そして、管理サーバ3の招待情報管理部16は、複数のゲームのそれぞれの利用者の特定の関係を示す仲間リスト(関係情報の一例)を、複数のアプリケーションサーバ4のそれぞれから取得して管理する。これにより、複数のアプリケーションサーバ4のそれぞれで管理している仲間リストを管理サーバ3で一元管理することができる。
ここで、複数のアプリケーションサーバ4(アプリケーション装置の一例)のそれぞれが提供するゲーム(アプリケーションの一例)は、当該ゲーム内での他の利用者と特定の関係が形成されるものである。この特定の関係には、例えば、アプリケーションがゲームである場合、ある利用者がゲームを進める際に協力し合える仲間関係が含まれる。ゲームに協力するとは、仲間と一緒になってゲームを進めたり、仲間のゲーム能力値などのゲームデータを利用可能にすることであったりする。また、特定の関係には、仲間関係になることを拒否したブロック関係、あるいは、ある利用者が他の利用者をライバルとして認識し、他の利用者の受諾を必要としないライバル関係が含まれてもよい。また、アプリケーションがチャットのようなコミニケーションアプリでは、チャット相手が特定の関係に相当する。
【0029】
また、管理サーバ3は、ゲームA(第1アプリケーションの一例)を利用する利用者の端末装置2からFNWIDb(第2識別情報の一例)に対応付けられた仲間関係を示す仲間リスト(関係情報の一例)の仲間リスト要求(取得要求の一例)を受け付ける受付部14と、仲間リスト要求を送信した当該端末装置2またはアプリケーションサーバ4A(第1アプリケーション装置の一例)にFNWIDbに対応付けられた仲間リストを通知する通知部15とを備える。ここで、通知部15がアプリケーションサーバ4Aに対して仲間リストを通知する場合には、アプリケーションサーバ4Aから利用者の端末装置2に対して仲間リストが通知される。換言すれば、通知部15は、FNWIDbに対応付けられた仲間リストを直接的または間接的に端末装置2に通知する。
これにより、ゲームAとゲームBを利用する利用者の端末装置2は、ゲームAにおいてゲームBでの仲間リストを取得できる。つまり、あるゲームにおいて他のゲームの仲間リストを取得することが可能になる。例えば、アカウントに互換性がないゲーム間であっても、あるゲームからの操作に基づいて、他のゲームで仲間関係にある利用者に対して情報通知を行うことが可能となる。情報通知の対象となる情報として、メッセージ情報や、後述する招待情報が例示できる。この管理サーバ3が招待処理を実行する場合は、ゲームAを利用する招待利用者の端末装置2は、招待を受けるゲームBにおいて仲間リストを取得できる。取得された仲間リストの利用者は、ゲームAに招待される被招待利用者の候補となる。
【0030】
さらに、管理サーバ3は、通知部15で通知した仲間リストの中から招待利用者が選択した被招待利用者に対するゲームAの招待要求を受け付けた招待要求を蓄積して管理する招待情報管理部16(蓄積部の一例)を備える。これにより、誰が誰をどのゲーム(アプリケーションの一例)に招待したかを管理サーバ3で一元的に管理することが可能となる。
【0031】
次に、
図2Bに招待要求の照会についての処理の概要を示す。被招待利用者の端末装置2において照会部201は、アプリケーションシステム100で提供される複数のアプリケーションであるゲームA、ゲームB、ゲームC…のうち当該端末装置2で利用中のゲームから、管理サーバ3の招待情報管理部16にゲームへの招待の有無に関する照会をする。
例えば、アプリケーションシステム100が、ゲームA、ゲームB、ゲームC、及びゲームDを提供し、被招待利用者の端末装置2においてゲームBが利用可能であるならば、ゲームBから招待の有無を照会する。具体的には、招待問い合わせ要求を管理サーバ3に送信することで招待要求の照会を行い、照会部201は当該端末装置2の利用者が被招待利用者となっている招待の有無を招待情報管理部16に照会する。なお、照会は、当該端末装置2におけるゲームBの起動を契機に実行することが好ましいが、起動時に照会することが必須ではなく、ゲームBの利用中であればいつでもよい。例えば、管理サーバ3に対して、何らかの情報を送信する際に、送信すべき情報に照会要求を含ませてもよいし、ゲームBの利用中になんらかのイベント(例えば、利用者からの操作指示)が発生した際に送信してもよい。
【0032】
さらに、管理サーバ3の通知部15は、端末装置2の利用者から招待要求の照会があると、当該端末装置2の利用者が被招待利用者となっている招待要求が招待情報管理部16(蓄積部の一例)に蓄積されている場合、招待利用者が被招待利用者をゲームAへ招待することを示す招待情報を端末装置2に通知する。これにより、アカウントに互換性がないゲーム間であっても、あるゲームで仲間関係にある利用者を他のゲームに招待することができる。
【0033】
一方、端末装置2は、被招待利用者の端末装置2で利用しているゲームB(第2アプリケーションの一例)から招待情報を管理する招待情報管理部16に対して、ゲームA(第1アプリケーションの一例)への招待を示す招待情報の有無を照会する照会部201と、照会に対応する招待情報を受領する招待情報受領部202と、表示部203と、招待情報に基づいて招待の内容を表示部203に表示させる表示制御部204とを備える。これにより、アプリケーションサーバ4A、4B、4C…において招待があったことを端末装置2に知らせるといった招待に関する処理を実行しなくても、端末装置2では、あるゲームでの仲間となっている利用者から当該利用者がプレイしている他のゲームへの招待を知ることができる。
ここで、招待情報管理部16は、アプリケーションシステム100の内部であれば、どこに設けられてもよく、例えば、管理サーバ3やアプリケーションサーバ4A、4B、4C…のそれぞれに設けられてもよい。
【0034】
なお、ゲーム(アプリケーション)の状態の一例として、非動作状態(Not running)と、何らかの処理を実行している通常動作状態(Active)と、何らかの処理を実行しているが画面に非表示とするバックグラウンド状態(BackGround)と、いずれの処理も実行せずに中断しているサスペンド状態(Suspended)がある。ここで、「ゲームの起動」とは、非動作状態(Not running)、サスペンド状態(Suspended)、またはサスペンド状態(Suspended)から通常動作状態(Active)に移行することをいう。また、「ゲームの終了」とは、通常動作状態(Active)から、非動作状態(Not running)、サスペンド状態(Suspended)、またはサスペンド状態(Suspended)に移行することをいう。また、複数のゲーム(アプリケーション)が同時に通常動作状態に成り得る場合には、「ゲームの起動」とは、例えば、ゲームが画面の最前面に表示されるなどして、利用者に対して操作可能な状態に移行することをいう。また、ゲーム(アプリケーション)での、LocalIDの生成は、ゲームを初めて起動したときやチュートリアルが終了した任意のタイミングで行われる。
また、ゲーム(アプリケーション)のインストールとは、端末装置2に導入されていないゲームのプログラムを新規に導入することだけでなく、アプリケーションシステム100に対応するようにゲームのプログラムをアップデート(更新)することを含む。すなわち、端末装置2に搭載しているゲームに対して、アプリケーションシステム100に対応するための更新プログラムをダウンロードして更新することを含む。
【0035】
<1−2:管理サーバ3の構成>
図3に管理サーバ3の構成を示す。この図に示すように、管理サーバ3は、装置全体を制御するCPU(Central Processing Unit)30、CPU30の作業領域として機能するRAM(Random Access Memory)31、ブートプログラムなどを記憶したROM(Read Only Memory)32、各種のプログラムやデータを記憶するハードディスク33、キーボードやマウスなどを含む入力部34、画像を表示するディスプレイ35、通信網NETを介して外部の装置と通信を行う通信インターフェース36、及びコンパクトディスクなどの情報記録媒体を読み取る読取装置37を備える。ハードディスク33には、利用者情報テーブルTBL11、ID管理テーブルTBL12、仲間関係テーブルTBL13、及びインバイトテーブルTBL14などが記憶されている。また、CPU30が各種のプログラムを実行することによって、CPU30は、発行部11、受領部12、管理部13、受付部14、通知部15および招待情報管理部16として機能する。すなわち、各種のプログラムは、CPU30(コンピュータ)を有する管理サーバ3を制御する。
【0036】
図4に利用者情報テーブルTBL11のデータ構造を示す。利用者情報テーブルTBL11には複数のレコードが記録されている。1つのレコードは、レコードを一意に識別するレコード識別情報ID、アプリケーションの種別を示す種別情報AppID(以下、AppIDと称する)、利用者のニックネーム、FNWID、トークン、及びトークンを発行した日を示すトークン発行日とを含む。例えば、ID=1のレコードは、FNWIDが「XCV56714」であり、これに対応づけられてトークン「56844SAS」が「2012/3/28」に発行されている。トークン発行日は、発行したトークンに有効期限を設ける場合に用いることができる。つまり、
図1に示すように各アプリケーションサーバ4A、4B、4C…は、上述したデータ構造からなる利用者情報テーブルTBL11A、TBL11B、TBL11C…を備える。
【0037】
図5に、ID管理テーブルTBL12のデータ構造を示す。ID管理テーブルTBL12には複数のレコードが記録されている。1つのレコードは、レコードを一意に識別するレコード識別情報ID、RefID、及びFNWIDを含む。FNWIDは、各アプリケーションサーバ4A、4B、4C、…においてアカウントが登録される際に発行される。これに対して、RefIDは、関連付処理において、あるゲームのアカウントと他のゲームのアカウントとが同一の利用者に属することが判明された場合に発行される。この例では、ID=1及びID=2のレコードは、フレンドネットワーク識別情報FNWIDが「XCV56714」と「REK35460」であり相違するが、RefIDはともに「00000011」である。したがって、「XCV56714」と「REK35460」とは、同一の利用者に属するフレンドネットワーク識別情報FNWIDである。
【0038】
図6に仲間関係テーブルTBL13のデータ構造を示す。仲間関係テーブルTBL13には複数のレコードが記録されている。1つのレコードは、レコード識別情報ID、AppID、関係の種別を示すグループ情報Group、仲間申請元の利用者のLocalIDである仲間申請元ローカル識別情報LocalID_From(以下、LocalID_Fromと称する)、仲間申請先の利用者のLocalIDである仲間申請先ローカル識別情報LocalID_To(以下、LocalID_Toと称する)、仲間申請元の利用者のFNWIDである仲間申請元フレンドネットワーク識別情報FNWID_From(以下、FNWID_Fromと称する)、仲間申請先のFNWIDである仲間申請先フレンドネットワーク識別情報FNWID_To(以下、FNWID_Toと称する)、及び仲間申請の状態を示す状態情報Statが対応づけられて記憶される。
【0039】
仲間関係を記憶する場合に、仲間申請元と仲間申請先を分けて記憶したのは、記憶容量を削減する利点がある。仮に、あるLocalIDと当該利用者と仲間関係にある全ての利用者のLocalIDとを対応づけて記憶したとすると、2倍の記憶容量が必要となる。例えば、利用者Aが仲間申請元であり利用者Bが仲間申請先であるとする。利用者ごとに仲間関係にある利用者のLocalIDを記憶する場合には、利用者Aについて利用者Bが仲間関係にあることを記憶し、さらに、利用者Bについて利用者Aが仲間関係にあることを記憶する必要がある。これに対して、本実施形態では、仲間申請先のLocalIDと仲間申請元のLocalIDとを対応づけて1つのレコードに記憶するので記憶容量を半分にすることができる。また、状態情報Statを更新する場合でも半分の処理となる。
【0040】
ある利用者と他の利用者の関係には、仲間関係、ライバル関係、及びブロック関係がある。仲間関係は、ある利用者から仲間申請があったことが他の利用者に伝えられ、他の利用者が承諾したことによって成立する。ライバル関係は、ある利用者がライバル視する他の利用者を仲間申請することによって成立し、他の利用者の承諾を必要としない関係である。例えば、同じゲームをプレイしており、気になる他の利用者をライバルとして登録する場合に用いられる。ブロック関係は、ライバル関係と同様にブロックしたい他の利用者をブロック申請することによって成立し、他の利用者の承諾を必要としない関係である。拒否しているにも拘わらず仲間申請が度々あったり、掲示板での発言などから迷惑していたりする他の利用者を登録する場合に用いられる。
【0041】
グループ情報Groupは、レコードが仲間関係を示す場合に「Friends」、レコードがライバル関係を示す場合に「Rival」、レコードがブロック関係を示す場合に「Block」を記録する。また、状態情報Statは、仲間申請中で「0」、承認で「1」、拒否で「2」を記録する。なお、ライバル関係とブロック関係は、仲間申請又はブロック申請のみで成立するため、状態情報Statは記録する必要がない。このため、「Null」に設定している。なお、ライバル関係及びブロック関係では状態情報Statを一律「0」としてもよい。
【0042】
例えば、ID=1のレコードは、AppIDが「00000001」のゲームにおいて、LocalIDが「00000011」の利用者からLocalIDが「00003120」の利用者に対して仲間申請して承認されたことを示している。LocalIDが「00000011」の利用者が仲間申請を行ったタイミングでID=1のレコードが生成され、状態情報Statが仲間申請中「0」にセットされる。この後、LocalIDが「00003120」の利用者が仲間申請を受領し、承認又は拒否したタイミングで、状態情報Statが承認「1」又は拒否「2」に更新される。
【0043】
仲間関係テーブルTBL13を参照して、AppIDを特定のゲームに限定すれば、そのゲームにおける利用者の仲間関係を把握することができる。状態情報Statから、既に仲間関係にある相手や、仲間申請中の仲間を把握することができる。また、特定の利用者のFNWIDとFNWID_Fromとが一致するレコードから抽出したFNWID_Toは特定の利用者が仲間申請をしたことがある相手を示し、特定の利用者のFNWIDとFNWID_Toとが一致するレコードから抽出したFNWID_Fromは、特定の利用者が仲間申請をされたことがある相手を示す。
また、仲間関係が構築された後で仲間関係が解除された場合には、そのレコードを削除する。なお、レコードを削除せずに、レコードの有効又は無効を示す項目を新たに追加し、仲間関係が解除されたレコードを無効とするようにしてもよい。仲間関係を解除した相手と仲間関係を再び構築する場合には新たなレコードを作成すればよい。
【0044】
また、
図1に示すように各アプリケーションサーバ4A、4B、4C…は、仲間関係テーブルTBL13A、TBL13B、TBL13C…を備えている。各仲間関係テーブルTBL13A、TBL13B、TBL13C…は、ゲームごとに仲間関係を記憶しており、そのレコードは、レコード識別情報ID、グループ情報Group、LocalID_From、LocalID_To、FNWID_From、FNWID_To、及び仲間申請の状態を示す状態情報Statを対応づけて記憶している。そして、各アプリケーションサーバ4A、4B、4C…において、仲間関係に変更があり、各仲間関係テーブルTBL13A、TBL13B、TBL13C…の記憶内容が変更されると、アプリケーションサーバ4A、4B、4C…から変更通知が管理サーバ3に送信され、仲間関係の変更が仲間関係テーブルTBL13に反映され、記憶内容が同期されるようになっている。
【0045】
図7にインバイトテーブルTBL14のデータ構造を示す。インバイトテーブルTBL14には複数のレコードが記録されている。1つのレコードは、レコード識別情報ID、招待ゲームの種別情報InviteAppID(以下、InviteAppIDと称する)、招待利用者に対応するフレンドネットワーク識別情報InviteFNWID_From(以下、InviteFNWID_Fromと称する)、被招待利用者に対応するフレンドネットワーク識別情報InviteFNWID_To(以下、InviteFNWID_Toと称する)、被招待ゲームにおける招待利用者のニックネームを含む。インバイトテーブルTBL14を参照することによって、ある利用者が被招待者として招待を受けているゲームがあることを知ることができる。
【0046】
<1−3:端末装置2の構成>
図8に端末装置2の構成を示す。端末装置2は、利用者に互いに異なるゲーム等のアプリケーションを提供する複数のアプリケーションサーバ4(アプリケーション装置の一例)のそれぞれに対して利用者を一意に識別する識別情報(FNWID)を発行して管理し、同一の利用者について複数のアプリケーションサーバ4のそれぞれに対応する識別情報を紐付けて管理する管理サーバ3(管理装置の一例)と共に、アプリケーションシステム100を構成する。なお、アプリケーションシステム100を構成する装置、例えば管理サーバ3に、ゲームB(第2アプリケーションの一例)において招待利用者と特定の関係がある被招待利用者に対して招待利用者が利用しているゲームA(第1アプリケーションの一例)に招待する招待情報を管理する招待情報管理部16を有する。
端末装置2は、装置全体を制御するCPU20、CPU20の作業領域として機能するRAM21、ブートプログラムなどを記憶したROM22、各種のプログラムやデータを記憶する記憶装置23、テンキーやタッチキーなどを含む入力部24、画像を表示するディスプレイ25、及び通信網NETを介して外部の装置と通信を行う通信インターフェース26を備える。記憶装置23には、ゲームなどの各種のアプリケーション、当該端末装置2で利用可能な各アプリケーションに対応するFNWID、及び装置全体を制御する制御プログラムが記憶される。
記憶装置23は
図1に示す記憶部205に相当し、ディスプレイ25は表示部203に相当する。また、CPU20が制御プログラムを実行することによって、CPU20は、照会部201、招待情報受領部202、、表示制御部204、選択部206、取得部207、識別子通知部208、及び招待要求送信部209として機能する。すなわち、制御プログラムは、CPU20(コンピュータ)とディスプレイ25を有する端末装置を制御する。
【0047】
また、端末装置2にインストールされたアプリケーションがアプリケーションシステム100に対応している場合には、このアプリケーションのプログラムに、SDK(Software Development Kit)のプログラムを組み込むようにしてもよい。このSDKは、例えば、端末装置2にインストールされたアプリケーションと管理サーバ3とを仲介するためのAPI(Application Programming Interface)の集合体で構成されており、SDKが組み込まれたアプリケーションを端末装置2で実行することにより、端末装置2を、被招待利用者の端末装置2で利用しているゲームB(第2アプリケーションの一例)から管理サーバ3の招待情報管理部16に対して、ゲームA(第1アプリケーションの一例)への招待を示す招待情報の有無を照会する照会部201と、照会に対応する招待情報を受領する招待情報受領部202と、招待情報に基づいて招待の内容を表示部203に表示させる表示制御部204としての機能させることが可能となる。つまりSDKを、CPU20(コンピュータ)とディスプレイ25(表示部の一例)を有する端末装置にインストールされるゲームAやゲームBの制御プログラムに組み込まれるプログラムとして捉えることができる。
また、端末装置2は、照会部201、招待情報受領部202、及び表示制御部204とを含んで構成されると捉えることができる。なお、招待情報管理部16は管理サーバ3に設けられており、照会部201は、管理サーバ3の招待情報管理部16に招待情報の有無を照会する。
これにより、アカウントに互換性がないゲーム間で、招待しようとする利用者がプレイしているゲーム(例えばゲームA)に、他のゲーム(例えばゲームB)での仲間を招待できるようにして、招待される利用者が招待ゲームへの招待を知ることができる。換言すれば、あるゲーム(例えばゲームB)での仲間となっている利用者から当該利用者がプレイしている他のゲーム(例えばゲームA)への招待を知ることができる。
【0048】
さらに、SDKが組み込まれたアプリケーションが、端末装置2において実行されたときに、当該端末装置2を、招待利用者の端末装置2で利用しているゲームAにおいて、ゲームBを選択可能な選択部206と、ゲームAに対応する招待利用者を識別する識別情報に対応づけられており管理サーバ3(管理装置の一例)で発行されたトークン(識別子の一例)を取得する取得部207と、取得部207で取得したトークンと選択部206で選択されたゲームBに対応する招待利用者の識別情報との組を所定の経路で管理サーバ3に通知する識別子通知部208として、機能させることが可能なように構成してもよい。また、端末装置2は、選択部206、取得部207、及び識別子通知部208をさらに含んで構成されると捉えることができる。これにより、管理サーバ3で同一の端末装置2で動作する異なるゲームのアカウントを紐付けることが可能になる。
【0049】
端末装置2にインストールされているアプリケーションがアプリケーションシステム100に対応していないバージョンである場合、SDKが組み込まれたバージョンのアプリケーションがダウンロード可能であれば、端末装置2にインストールされているアプリケーションのプログラムのバージョンを更新することにより、アプリケーションシステム100に対応可能になる。つまり、アプリケーションサーバ4A、4B、4C…側のアプリケーションプログラムは、SDKを組み込み可能なように構成されている。
ここで、SDKの提供者は、例えば、管理サーバ3を管理する事業者である。この場合、アプリケーションサーバ4A、4B、4C…のサービス提供者は、管理サーバ3を管理する事業者によって提供されたSDKのプログラムをゲームA、ゲームB、ゲームC…のアプリケーションプログラムに組み込んで、利用者の端末装置2に提供する。
【0050】
<2.アプリケーションシステムの動作>
アプリケーションシステム100の動作を、1)FNWIDの取得処理、2)仲間関係の同期処理、3)招待処理に分けて説明する。
【0051】
<2−1:FNWIDの取得処理>
図9にFNWIDの取得処理の内容を示す。この例では、利用者がアプリケーションサーバ4AからゲームAのプログラムを取得し、これに伴ってFNWIDaが取得されるものとする。
まず、利用者が端末装置2を操作して、ゲームAのダウンロードサイトにアクセスしてゲームAのダウンロードを選択すると、端末装置2は、アプリケーションサーバ4Aに対してダウンロード要求を送信する。アプリケーションサーバ4Aは、ダウンロード要求を受信すると、ゲームAのプログラムを含むダウンロード応答を端末装置2に送信する。なお、ダウンロードサイトは第3者が運営するサーバであってもよい。
【0052】
次に、利用者がゲームAを起動すると、端末装置2のゲームAが管理する記憶領域を参照して登録情報が記憶されているか否かに基づいて初回起動かを判断する。登録情報が記憶されておらず初回起動であると判断した場合には、利用者にニックネームを入力させる画面を端末装置2に表示させる。利用者が端末装置2を操作してニックネームを入力すると、端末装置2はニックネームを含む登録要求をアプリケーションサーバ4Aに送信する。登録要求をアプリケーションサーバ4Aが受信すると、アプリケーションサーバ4Aは、ローカル識別情報LocalIDaを生成し、ニックネーム及びローカル識別情報LocalIDaを利用者情報テーブルTBL11Aに記憶して、アカウントの登録を実行する。
【0053】
次に、生成されたローカル識別情報LocalIDa又はローカル識別情報LocalIDaに対応付けられた識別情報を端末装置2に通知する。端末装置2は、アプリケーションサーバ4Aから通知されたローカル識別情報LocalIDa又はローカル識別情報LocalIDaに対応付けられた識別情報を受信し、ゲームAが管理する記憶領域に登録情報としてニックネームと関連付けて記憶する。この後にアプリケーションサーバ4Aと通信を行う場合には、端末装置2に登録情報として記憶されたローカル識別情報LocalIDa又はローカル識別情報LocalIDaに対応付けられた識別情報を含めることで、アプリケーションサーバ4Aは利用者を特定することが可能となる。端末装置2に通知する識別情報として、ローカル識別情報LocalIDaの替わりにローカル識別情報LocalIDaに対応付けられた識別情報を利用する場合には、当該識別情報をローカル識別情報LocalIDaに関連付けて利用者情報テーブルTBL11Aに記憶するようにする。
【0054】
この後、アプリケーションサーバ4AはFNWID発行要求を管理サーバ3に送信する。FNWID発行要求を受信した管理サーバ3は、利用者を一意に特定するFNWIDaを発行し、発行したFNWIDaを含むFNWID発行応答をアプリケーションサーバ4Aに返信する。FNWID発行応答をアプリケーションサーバ4Aが受信すると、ローカル識別情報LocalIDaに関連付けてFNWIDaを利用者情報テーブルTBL11Aに記憶する。
【0055】
次に、アプリケーションサーバ4Aは、ニックネーム及びFNWIDaを含むニックネーム通知を管理サーバ3に送信する。管理サーバ3はニックネーム通知を受信すると、ニックネームをFNWIDaに関連付けて記憶する。また、アプリケーションサーバ4Aは、FNWIDaを端末装置2に送信する。端末装置2はFNWIDaを受信すると、ゲームAが管理する記憶領域に記憶された登録情報にFNWIDaを追加して記憶する。
【0056】
上記の例では、利用者のアカウントとしてのローカル識別情報LocalIDaをアプリケーションサーバ4Aが生成するようにしたが、利用者にユニークな英数字を入力させるようにしたりメールアドレスをアカウントとして用いたりするようにしてもよい。
このようにして、利用者が端末装置2にゲームAのプログラムをダウンロードし、これを利用者が起動すると、ゲームAの起動を契機として、FNWIDaが管理サーバ3において発行され、発行されたFNWIDaが、管理サーバ3、アプリケーションサーバ4A及び端末装置2において保存される。この場合、端末装置2の利用者は、アプリケーションサーバ4Aに対してアカウントを設定するだけで、管理サーバ3に対して利用者が管理する管理アカウントを新たに設ける必要はない。
【0057】
<2−2:仲間関係の同期処理>
次に、
図10に仲間関係の同期処理の内容を示す。アプリケーションサーバ4Aにおいて、仲間関係に変更があり、仲間関係テーブルTBL13Aの記憶内容が変更されると、アプリケーションサーバ4Aは変更通知を管理サーバ3に送信する。変更通知には仲間関係テーブルTBL13Aの変更内容が含まれている。例えば、アプリケーションサーバ4Aは、変更のあったレコードを変更通知に含ませて送信してもよい。管理サーバ3は、変更通知を受信すると、仲間関係の変更内容を仲間関係テーブルTBL13に反映させ、記憶内容を更新する。
このように、各アプリケーションサーバ4A、4B、4C…で管理する仲間関係は、管理サーバ3において一元的に把握される。
【0058】
<2−3:招待処理>
図11に招待処理の内容を示す。この例では、ゲームAとゲームBの両方をプレイしている招待利用者が、ゲームBで仲間となっている他の利用者を被招待利用者としてゲームAに招待するものとする。招待利用者のゲームAに関するFNWIDをFNWIDaとし、ゲームBに関するFNWIDをFNWIDbとする。さらに、招待利用者の端末装置の符号を「2a」とし、被招待利用者の端末装置の符号を「2b」とする。
【0059】
まず、招待利用者が端末装置2aを操作して、ゲームAを起動し、他のゲームでの仲間をゲームAに招待するための招待ページを選択すると、端末装置2aはトークン要求をアプリケーションサーバ4Aに送信する。トークン要求を受信したアプリケーションサーバ4Aは、端末装置2aの招待利用者に対応するFNWIDaを取得する。例えば、トークン要求にFNWIDaが含まれる場合には、トークン要求に含まれるFNWIDaを取得すればよい。あるいは、トークン要求にローカル識別情報LocalIDa又はニックネームが含まれるのであれば、アプリケーションサーバ4Aは利用者情報テーブルTBL11Aを参照して、ローカル識別情報LocalIDa又はニックネームに対応するFNWIDaを取得すればよい。
【0060】
次に、アプリケーションサーバ4Aは、取得したFNWIDaを含むトークン発行要求を管理サーバ3に送信する。トークン発行要求を受信した管理サーバ3は、トークンを発行し、発行したトークンをトークン発行要求に含まれるFNWIDaと対応づけて、利用者情報テーブルTBL11に記憶する。例えば、FNWIDaが「XCV56714」であり、トークンが「56844SAS」であるとすれば、
図4に示すように「XCV56714」と対応づけられて「56844SAS」が利用者情報テーブルTBL11に記憶される。
【0061】
この後、管理サーバ3は、発行したトークンを含むトークン発行応答をアプリケーションサーバ4Aに送信する。トーク発行応答を受信したアプリケーションサーバ4Aは、トークンを含むトークン応答を端末装置2aに送信する。なお、アプリケーションサーバ4Aは、管理サーバ3から、アプリケーションシステム100に参加している他のアプリケーションサーバ4B、4C…が提供するゲームB、ゲームC…の内容を示すアプリケーション情報を予め取得している。そして、アプリケーションサーバ4Aは、取得したアプリケーション情報を端末装置2aに送信する。
【0062】
端末装置2aは、アプリケーション情報を受信すると、ディスプレイ25にアプリケーション情報に基づいて1又は複数のゲームを利用者が選択可能なような招待ページを表示する。ここで、招待利用者が招待の対象となる被招待ゲーム(本実施例では、ゲームB)を選択すると、被招待ゲームが起動する。
なお、当該端末装置2aにおいて選択された被招待ゲームがインストールされていなかったり、アンインストールされたりして起動不能の場合には、ディスプレイ25に処理できない旨が表示される。被招待ゲームであるゲームBが起動して、ゲームAからトークンがゲームBに引き渡されると、ゲームBのFNWIDであるFNWIDbと引き渡されたトークンをアプリケーションサーバ4Bに通知する。なお、端末装置2aにインストールされているゲームを特定して、当該ゲームだけが選択可能なような招待ページをディスプレイ25に表示するようにしてもよい。
【0063】
アプリケーションサーバ4Bは、FNWIDb及びトークンを受信すると、これを管理サーバ3に通知する。FNWIDb及びトークンを受信した管理サーバ3は、受領したトークンと発行したトークンが一致するかを判定する。例えば、利用者情報テーブルTBL11を検索し、受領したトークンと一致する発行したトークンが有るか否かを判定する。なお、この判定において、トークンの発行日時を参照し、有効期限が過ぎたトークンについては、無効としてもよい。
【0064】
この例では、受領したトークンと発行したトークンが一致するものとする。この場合、管理サーバ3は、FNWIDaとFNWIDbとを紐付ける。例えば、ID管理テーブルTBL12に、FNWIDaとFNWIDbとに同一のRefIDを記憶する。例えば、FNWIDaが「XCV56714」であり、FNWIDbが「REK35460」である場合には、
図5に示すように「00000011」が同一のRefIDとして、ID管理テーブルTBL12に記憶される。
【0065】
この後、端末装置2aのゲームAから仲間リスト要求が管理サーバ3に送信される。仲間リスト要求には、招待ゲームがゲームAであることを示す種別情報AppIDと招待利用者のFNWIDaとが含まれている。仲間リスト要求を管理サーバ3が受信すると、管理サーバ3は、ゲームBで招待利用者と仲間関係にある利用者を被招待利用者の候補として抽出する。
【0066】
具体的には、管理サーバ3のCPU30は、ID管理テーブルTBL12を参照し、招待利用者のFNWIDaに対応するRefIDを取得し、さらに、同じRefIDと対応するゲームBにおける招待利用者のFNWIDbを抽出する。例えば、
図5に示す例において、FNWIDaが「XCV56714」である場合、「XCV56714」と対応づけられているRefIDは「00000011」であるので、CPU30は、FNWIDaに対応するRefIDとして「00000011」を取得する。さらに、CPU30は、RefIDが「00000011」となっている他のFNWIDを抽出する。この例では、「REK35460」(上述したFNWIDb)が抽出される。抽出されたFNWIDbは、招待利用者がプレイしている他のゲームのFNWIDである。抽出されたFNWIDbは、利用者情報テーブルTBL11における、対応するAppIDを参照すれば、ゲームBのFNWIDであることが特定できる。即ち、上述した関連付処理を実行することによって、招待利用者が招待しようとしているゲームAとは別のゲーム(ゲームB)におけるFNWID(この例では、FNWIDb=REK35460)を特定することが可能となる。
【0067】
次に、CPU30は、仲間関係テーブルTBL13を参照して、招待利用者が招待しようとするゲームA以外のゲーム(この例ではゲームB)の仲間を特定する。より具体的には、招待したい仲間がいるゲームBを示すAppIDを有し、且つ、招待利用者のFNWIDbとFNWID_Fromとが一致するレコードからFNWID_Toを抽出して得られたFNWIDと、ゲームBを示すAppIDを有し、且つ、FNWIDbとFNWID_Toとが一致するレコードからFNWID_Fromを抽出して得られたFNWIDを合わせたものが、被招待ゲーム(ゲームB)での仲間を示す。よって、抽出されたFNWIDはゲームBに対応する仲間のFNWIDbである。
なお、この場合において、抽出した各FNWIDと同じレコードにおける状態情報Statを参照して、状態が仲間申請中「0」及び拒否「2」になっているFNWIDを抽出結果から除外する。ただし、仲間申請中「0」は仲間になる可能性があるため、抽出結果から除外しないようにしてもよい。
【0068】
次に、CPU30は、抽出したFNWIDb(以下、「第1のFNWID」と称する)の中から、ゲームAに対応したFNWID(以下、「第2のFNWID」と称する)が紐づけられていないものを、「候補の被招待利用者」のFNWIDとして特定する。被招待ゲームにおける仲間が招待ゲーム(ゲームA)をすでに利用していることが明らかな場合には、その仲間を候補の被招待利用者から除外するためである。
具体的には、CPU30は、第1に、ID管理テーブルTBL12を参照して、抽出した第1のFNWIDそれぞれについて、対応するRefIDを特定する(第1の処理)。この第1の処理において、ID管理テーブルTBL12を参照しても第1のFNWIDを有するレコードが存在しない場合がある。この場合には、CPU30は対応するRefIDを特定できないので、後述の第2及び第3の処理に進むことなく、当該第1のFNWIDを候補の被招待利用者のFNWIDとする。
【0069】
第2に、CPU30は、このRefIDに基づいて、第2のFNWIDを特定する(第2の処理)。つまり、同一のRefIDを有する第2のFNWIDを特定する。第3に、CPU30は、利用者情報テーブルTBL11を参照し、第2のFNWIDがゲームAに対応したFNWIDか否かを判定する(第3の処理)。つまり、第2のFNWIDを有するレコードにおいて、対応するAppIDがゲームAを示すものか否かを判定する。この判定の結果、第2のFNWIDがゲームAに対応したFNWIDでない場合、すなわち、ゲームA以外のゲームに対応するFNWIDである場合、この第2のFNWIDに対応する第1のFNWIDを、候補の被招待利用者のFNWIDとする。一方、上記判定の結果、第2のFNWIDがゲームAに対応したFNWIDである場合には、候補の被招待利用者から除外する。
次に、CPU30は、利用者情報テーブルTBL11を参照して、候補の被招待利用者のFNWIDと、当該候補の被招待利用者のFNWIDに対応する招待したいゲーム(ゲームB)におけるニックネームと、AppID(ゲームBを示すAppIDb)の組を含む仲間リストを生成する。管理サーバ3は端末装置2aに対して仲間リストを含む仲間リスト応答を送信する。
【0070】
端末装置2aが、仲間要求リストを受信すると、端末装置2aのディスプレイ25に仲間(候補の被招待利用者)のニックネームがゲーム名ごとに表示される。なお、本実施例では、ゲームBが被招待ゲームであるため、招待利用者について、ゲームAにおけるFNWIDaとトークンTxにより関連付けられたFNWIDは、ゲームBにおけるFNWIDbのみである。このため、ディスプレイ25に表示される仲間のニックネームは、ゲームBについてのみとなる。複数の他のゲームを被招待ゲームとする場合には、複数のゲームの各々における仲間を含む仲間リストが生成され、仲間のニックネームがゲーム名ごとに表示されることになる。この場合には、上記関連付処理において、ゲームAに対応するFNWIDaと、複数の他のゲームのFNWIDとが関連付けられることになる。
そして、招待利用者が端末装置2aを操作して招待する仲間を選択すると、端末装置2aは招待情報を含む招待要求を管理サーバ3に送信する(招待要求送信部209)。この招待情報には、招待ゲームAにおける招待利用者のFNWIDaと、招待したい仲間がプレイしている被招待ゲームBにおける被招待利用者のFNWIDbと、招待ゲームAのAppIDとが含まれている。この際、複数の仲間を選択することも可能である。
【0071】
次に、管理サーバ3が招待要求を受信すると招待情報を含むレコードをインバイトテーブルTBL14に記憶する。上述したように、インバイトテーブルTBL14における各レコードは、InviteAppID、InviteFNWID_From、InviteFNWID_To、被招待ゲームにおける招待利用者のニックネームを含む。この例では、被招待利用者のFNWIDがFNWIDbであり、被招待利用者はゲームBにおいて招待利用者と仲間関係にあるものとする。よって、インバイトテーブルTBL14における各レコードにおいては、InviteAppIDがゲームAのAppIDaとなり、InviteFNWID_Fromが招待利用者のFNWIDaとなり、InviteFNWID_Toが被招待利用者のFNWIDbとなる。CPU30は、招待利用者と被招待利用者とが仲間関係にあるゲームBにおける招待利用者のニックネームを取得する。具体的には、第1に、CPU30は、招待要求に含まれる招待利用者のFNWIDaを特定する。第2に、CPU30は、ID管理テーブルTBL12を参照して、招待利用者のFNWIDaに対応するRefIDを取得する。第3に、CPU30は、ID管理テーブルTBL12を参照して、取得したRefIDと対応づけて記憶されている、招待利用者のFNWID(FNWIDb)を抽出する。第4に、CPU30は、利用者情報テーブルTBL11を参照して、抽出した、招待利用者のFNWID(FNWIDb)に対応づけられているレコードを特定し、当該レコードに含まれる招待利用者のニックネームを取得する。
【0072】
この後、CPU30は、招待ゲームAのAppIDa、招待利用者のゲームAのFNWIDa、被招待利用者の被招待ゲームBのFNWIDb、招待利用者の被招待ゲームBにおけるニックネーム、をインバイトテーブルTBL14に記憶する。インバイトテーブルTBL14は、招待情報を蓄積する招待情報管理部16(
図1参照)として機能する。
【0073】
この後、被招待利用者が端末装置2bを操作してゲームBを起動すると、端末装置2bの照会部201はゲームBの利用中に問い合わせ要求を管理サーバ3に送信する。招待問い合わせ要求には、ゲームBにおける被招待利用者のFNWIDbが含まれている。なお、アプリケーションシステム100に属するゲームA、ゲームB、ゲームC…のいずれかを起動しても、起動したゲームの実行中に、招待問い合わせ要求が管理サーバ3に送信される。
【0074】
次に、管理サーバ3は、招待問い合わせ要求を受信すると、招待情報の検索を実行する。具体的には、CPU30は、インバイトテーブルTBL14を参照して、FNWIDbがInviteFNWID_Toとして記録されているレコードを特定し、当該レコードにおいて、招待利用者のゲームBのニックネームと招待ゲームAを指定するAppIDaを特定する。なお、AppIDaには、招待ゲームAをダウンロード可能なサイトのアドレスを示すリンク情報が含まれてもよい。これにより、CPU30は招待情報管理部16として機能する。この後、CPU30は、通信インターフェース36を介して、特定した招待情報であるニックネーム及びAppIDaを含む招待問い合わせ応答を端末装置2bに送信する。この場合、CPU30は通知部15として機能する。
【0075】
次に、招待問い合わせ応答を受信した端末装置2bは、招待利用者のニックネーム、招待を受けるゲーム名、及びリンク情報をディスプレイ25に表示する。具体的には、端末装置2bの招待情報受領部202(CPU20)が、招待情報を含む招待問い合わせ応答を受領し、表示制御部204(CPU20)が、ディスプレイ25に招待の内容を表示させる。
これによって、被招待利用者は、ゲームBにおいて仲間関係にある招待利用者から、ゲームAに招待があったことを知ることができる。
【0076】
上述したように、端末装置2を、選択部206で選択したゲームBにおいて、利用者(招待利用者)と特定の関係がある利用者(被招待利用者の候補)のうち招待される利用者(被招待利用者)に対する招待要求を管理サーバ3に通知する招待要求送信部209として、機能させることが可能なように構成してもよい。この招待要求は、管理サーバ3で管理する招待情報の基となる。また、端末装置2は、招待要求送信部209をさらに含んで構成されると捉えることができる。
このように、ゲームAからの操作に基づきゲームBを起動し、起動されたゲームBから招待要求を管理サーバ3に通知したから、ゲームAをプレイしている利用者が、ゲームBで仲間となっている他の利用者をゲームAに招待することが可能となる。つまり、アカウントに互換性がないゲーム間であっても、あるゲームからの操作に基づいて、他のゲームで仲間関係にある利用者に対して招待することが可能となる。ここで、ゲームAからの操作に基づいて起動されるゲームBは、利用者がゲームBをプレイするときに起動されるゲームBとは動作が異なる。つまり、ゲームAからの操作に基づく場合、招待処理を行うための起動となる。
【0077】
<3.変形例>
本発明は、上述した実施形態に限定されるものではなく、以下に述べる各種の変形が可能である。また、各変形例及び実施形態は、適宜、組み合わせてもよいことは勿論である。
(1)上述した実施形態では、各アプリケーションサーバ4A、4B、4C…が、最初からアプリケーションシステム100に組み込まれていることを前提としたが、本発明はこれに限定されるものではなく、あるアプリケーションサーバを既に運用しているアプリケーションシステム100に組み込んでもよい。
【0078】
例えば、アプリケーションサーバ4Aが単独で運用されており、当該アプリケーションサーバ4Aをアプリケーションシステム100に新たに適用する場合を想定する。この場合は、端末装置2においてゲームAのプログラムのアップデートを実行する必要がある。アプリケーションサーバ4Aが単独で運用されている場合には、ゲームAはアプリケーションサーバ4Aとの間で動作すればよいので、トークンを他のゲームのプログラムに引き渡す機能や、招待処理の機能が無いからである。
【0079】
図12に変形例に係るFNWIDの取得処理の内容を示す。この例では、アプリケーションサーバ4Aが新たにアプリケーションシステム100に組み込まれたものとする。
【0080】
まず、利用者が端末装置2aを操作して、ゲームAのダウンロードサイトにアクセスすると、更新プログラムのアップデートを促す画面がディスプレイ25に表示される。利用者が端末装置2aを操作して、アップデートを選択すると、端末装置2はアップデート要求をアプリケーションサーバ4Aに送信する。アップデート要求を受信したアプリケーションサーバ4Aは、更新プログラムを含むアップデート応答を端末装置2aに返信する。
【0081】
次に、アップデート応答を端末装置2aが受信すると、ゲームAの更新プログラムが端末装置2aにインストールされる。更新プログラムのインストールにおいては、従前のゲームAで用いたニックネーム及びLocalIDは登録情報の一部として引き継がれる。
【0082】
ゲームAを起動すると、ゲームAの利用中に端末装置2aのゲームAが管理する記憶領域を参照してFNWIDが記憶されているか否かに基づいて初回起動かを判断する。FNWIDが記憶されておらず初回起動であると判断した場合には、端末装置2aは初回起動であること示す初回起動通知をアプリケーションサーバ4Aに送信する。
初回起動通知を受信したアプリケーションサーバ4Aは、FNWID発行要求を管理サーバ3に送信する。FNWID発行要求を受信した管理サーバ3は、FNWIDaを発行し、発行したFNWIDaを含むFNWID発行応答をアプリケーションサーバ4Aに返信する。FNWID発行応答をアプリケーションサーバ4Aが受信すると、アプリケーションサーバ4Aは、FNWIDaを、ニックネーム、及びローカル識別情報LocalIDaに対応づけて利用者情報テーブルTBL11Aに記憶する。また、アプリケーションサーバ4Aは、FNWIDaを端末装置2aに通知する。端末装置2aはFNWIDaをゲームAと関連付けて記憶する。
【0083】
次に、アプリケーションサーバ4Aは、ニックネーム及びFNWIDaを含むニックネーム通知を管理サーバ3に送信する。管理サーバ3はニックネーム通知を受信すると、これらを利用者情報テーブルTBL11に記憶する。
【0084】
このようにして、利用者が端末装置2aにゲームAの更新プログラムがダウンロードされ、これを利用者が起動すると、FNWIDaが管理サーバ3において発行され、発行されたFNWIDaが、管理サーバ3、アプリケーションサーバ4A及び端末装置2aにおいて保存される。この場合、端末装置2aの利用者は、管理サーバ3に対して利用者が管理する管理アカウントを新たに設ける必要はない。
【0085】
この変形例では、ゲームAを初回起動した利用者に対して、FNWIDを逐次発行した。このため、更新プログラムを端末装置2にダウンロードしてもゲームAをまだ利用していない利用者に関しては管理サーバ3で、当該利用者のFNWIDを管理しなくてもよいといった利点がある。
【0086】
さらに、ある利用者が更新プログラムをアップデートした後に起動すると、当該利用者と仲間関係にある利用者についても、アプリケーションサーバ4Aと管理サーバ3との間で一括してFNWIDを発行する処理を進めるようにしてもよい。但し、仲間関係にある利用者のうち既にFNWIDが発行されている利用者については、新たに、FNWIDを発行しない。この場合には、仲間関係にある利用者が更新プログラムをアップデートしてこれを起動すると、アプリケーションサーバ4AからFNWIDを当該仲間関係にある利用者の端末装置2に通知するようにしてもよい。
【0087】
(2)上述した実施形態及び変形例では、アプリケーションの一例としてゲームを取り上げて説明したが本発明はこれに限定されるものではなく、どのようなアプリケーションであってもよい。例えば、チャットアプリや写真・動画共有アプリであってもよい。アプリケーション内での他の利用者と特定の関係とは、ゲームであれば「仲間」や「ライバル」などであり、チャットアプリであれば「チャット仲間」であり、写真・動画共有アプリであれば写真や動画を共有可能な「仲間」である。すなわち、特定の関係が形成されている同士と形成されていない同士とで、アプリケーションで提供されるサービスや機能の全部または一部に対して差異が設けられているものであれば、どのようなアプリケーションにも適用可能である。
【0088】
(3)上述した実施形態及び変形例では、ある利用者と他の利用者とがアプリケーションを実行する際に助け合う仲間関係を一例として説明したが、本発明はこれに限定されるものではなく、あるアプリケーション内での他の利用者と特定の関係が形成されるものであればよい。また、仲間関係は、ある利用者が他の利用者に仲間関係になることを申し入れ、他の利用者がこれを受諾した場合に成立させてもよい。特定の関係には、仲間関係の他に、仲間関係になることを拒否したブロック関係、あるいは、ある利用者が他の利用者をライバルとして認識し、他の利用者の受諾を必要としないライバル関係が含まれてもよい。
【0089】
(4)上述した実施形態及び変形例では、ゲームAを利用する端末装置2は、ゲームBのFNWIDに対応づけられた仲間関係を示す仲間リストを要求する仲間リスト要求を管理サーバ3に送信し、管理サーバ3は仲間リスト要求を受け付ける受付部14と仲間リストを端末装置2に送信する通知部15とを備えたが、本発明はこれに限定されるものではなく、受付部14は、ゲームAを提供するアプリケーションサーバ4Aから仲間リスト要求を受け付け、通知部15はアプリケーションサーバ4Aに仲間リストを通知してもよい。この場合には、端末装置2と管理サーバ3との間にアプリケーションサーバ4Aが介在することになる。即ち、端末装置2は、アプリケーションサーバ4Aに対して仲間リスト要求を送信し、仲間リスト要求を受信したアプリケーションサーバ4Aは、仲間リスト要求を管理サーバ3に送信する。仲間リスト要求を受信した管理サーバ3は仲間リストをアプリケーションサーバ4Aに送信し、仲間リストを受信したアプリケーションサーバ4Aは、仲間リストを端末装置2に送信する。
【0090】
(5)上述した実施形態及び変形例では、管理サーバ3が端末装置2から招待要求を受信すると、招待情報管理部16で招待要求を蓄積したが、本発明はこれに限定されるものではなく、管理サーバ3が招待情報管理部16を備えないものであってもよい。この場合、管理サーバ3が端末装置2からゲームBを利用している被招待利用者をゲームAに招待する招待要求を受信すると、通知部15は、被招待利用者のアプリケーションサーバ4BへゲームAに招待することを示す招待情報を通知すればよい。アプリケーションサーバ4Bは、インバイトテーブルTBL14を備えて招待情報を蓄積する(招待情報管理部16)。被招待利用者が端末装置2でゲームBを起動した後、端末装置2の照会部201は起動したゲームBに対応するアプリケーションサーバ4Bに招待要求の照会を実行する。アプリケーションサーバ4Bは、インバイトテーブルTBL14に被招待利用者の招待情報が蓄積されているかを検索し、招待情報を被招待利用者の端末装置2に送信すればよい。つまり、招待情報管理部16は、複数のアプリケーションサーバ4のそれぞれに設けられており、照会部201は、端末装置で起動されたアプリケーションに対応するアプリケーションサーバ4の招待情報管理部16に招待情報の有無を照会する。
このように、管理サーバ3の通知部15は、当該通知部で通知した仲間リスト(関係情報の一例)の中から招待利用者が選択した被招待利用者に対する招待要求があると、被招待利用者のアプリケーションサーバ4B(第2アプリケーション装置の一例)へ招待利用者がゲームA(第1アプリケーションの一例)に招待することを示す招待情報を通知する。このように招待要求の蓄積には様々な代替実施形態を採用し得る。
【0091】
(6)上述した実施形態及び変形例では、ゲームAからゲームBに引き渡されたトークンは、FNWIDbとともに、端末装置2から送信され、アプリケーションサーバ4Bを介して管理サーバ3の受領部12で受領したが、本発明はこれに限定されるものではなく、どのような経路で管理サーバ3が取得するかは問わない。例えば、端末装置2から管理サーバ3に直接送信し、これを受領部12で受領してもよい。つまり、管理サーバ3においてFNWIDaと対応づけて発行したトークンTxは、端末装置2のゲームA→端末装置2のゲームB→管理サーバ3といった経路で送信されてもよい。
上述した実施形態及び変形例では、端末装置2における招待利用者の操作に基づいて、ゲームAからゲームBにトークンが引き渡されたが、本発明はこれに限定されるものではなく、招待利用者の操作によらず、ゲームAの自動的な処理に基づいて、トークンがゲームAからゲームBに引き渡されてもよい。あるいは、ゲームAによって起動される端末装置2で動作するプログラム処理に基づくものでもよい。