以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。即ち、本発明は、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、以下の図面の記載において、同一または類似の部分には同一または類似の符号を付して表している。図面は模式的なものであり、必ずしも実際の寸法や比率等とは一致しない。図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることがある。
[実施形態]
以下、本発明の実施形態におけるプログラム及び情報処理装置等を、図面を用いて説明する。
<情報処理システムの概要>
図1は、実施形態における情報処理システム1の一例を示す概念図である。図1に示す例では、情報処理システム1は、例えば各ユーザの情報処理装置10A、10B、10Cと、例えば第1のアプリケーションの運営会社により提供されるサーバ(サーバ装置)20Aと、第2のアプリケーションの運営会社によるサーバ20Bと、がネットワークNを介して接続される。このネットワークNに、図示しない課金サーバ等が接続されてもよい。以下、アプリケーションは、単にアプリとも称する。
各情報処理装置は、個別に区別して説明する場合には符号10A、10B、10Cを用い、個別に区別する必要がなく、まとめて説明する場合には符号10を用いる。また、情報処理装置10は、例えば携帯端末や、タブレット端末、PDA(Personal Digital Assistant)、パーソナルコンピュータ、ゲーム機などである。各サーバは、個別に区別して説明する場合には符号20A、20Bを用い、個別に区別する必要がなく、まとめて説明する場合には符号20を用いる。
例えば、情報処理装置10は、ネットワークNを介してサーバ20にオンライン接続し、ウェブブラウザ上で動作可能なアプリケーションを実行する。第1のアプリケーションは、その実行中に、少なくとも第1のアプリケーションのサービスの実行が一時的に不可能になり、再実行可能になるまでの制約(例えば、時間的制約、人数的制約など)が発生するとする。例えば、第1のアプリケーションをゲームアプリとすると、クエストを実行するために必要な体力パラメータが所定値まで回復するまでの時間が、時間的制約となりうる。また、第1のアプリケーションを電車等の乗換案内アプリとすると、現在時刻から次の乗換までの時刻が、時間的制約となりうる。また、第1のアプリケーションを、所定人数が集まって初めて実行可能になるゲームであるとすると、所定人数集まるまでが、人数的制約となりうる。
情報処理装置10は、実行中の第1のアプリケーションに時間的制約が発生した場合、他のアプリケーションの実行を促し、時間的制約の解除に関する所定条件が満たされた場合には、第1のアプリケーションに実行を戻すようにする。
サーバ20は、各アプリケーションの実行を情報処理装置10と連携して行う。例えば、アプリケーションがゲームアプリの場合、サーバ20は、複数のユーザがネットワークNを介して、基本を無料でプレイするゲーム、所謂F2P(フリートゥプレイ)のオンラインゲームなどを制御する。サーバ20は、情報処理装置10から入力された操作指示を受け付け、ゲームの進行を制御し、ゲームを実行するのに必要なデータを管理、配信する。また、サーバ20は、ゲーム以外のアプリケーションを実行制御してもよく、ユーザ所望の情報を提供したり、チケットの販売を行ったり、各種アプリケーションの実行を制御する。
図示しない課金サーバは、情報処理装置10またはサーバ20からの課金要求に応じて、アプリケーション内での課金処理を行うサーバである。
ネットワークNは、インターネット等であり、無線LANのアクセスポイントや携帯電話の基地局などを含む。
以上の情報処理システム1において、情報処理装置10は、第1のアプリケーションを実行中に、時間的制約が発生する場合、この時間をユーザに対して有効に使ってもらうため、第2のアプリケーションの実行を促す。このとき、情報処理装置10は、第2のアプリケーションの実行を促すだけではなく、第2のアプリケーションに実行が切り替えられた場合に、元々ユーザが実行していた第1のアプリケーションに実行を戻すように制御する。これにより、時間的制約を有するアプリケーションに対し、時間的制約を他のアプリケーションの実行により解消しつつ、適切なタイミングで元のアプリケーションの実行に戻すための仕組みを提供することができる。
<ハードウェア構成>
次に、情報処理装置10のハードウェア構成について説明する。図2は、図1に示す情報処理装置10のハードウェア構成の一実施形態を示すブロック図である。
図2に示す情報処理装置10は、移動体通信用アンテナ112、移動体通信部114、無線LAN通信用アンテナ116、無線LAN通信部118、記憶部120、主制御部150を少なくとも有し、さらに、カメラ130や音声出力端子142を含む外部インタフェース140などを有する。
タッチパネル102は、表示装置および入力装置の両方の機能を備え、表示機能を担うディスプレイ(表示画面)102Aと、入力機能を担うタッチセンサ102Bとで構成される。ディスプレイ102Aは、例えば、液晶ディスプレイや有機EL(Electro Luminescence)ディスプレイなどの一般的な表示デバイスにより構成される。タッチセンサ102Bは、ディスプレイ102Aその上面に配置された接触操作を検知するための素子およびその上に積層された透明な操作面を備えて構成される。タッチセンサ102Bの接触検知方式としては、静電容量式、抵抗膜式(感圧式)、電磁誘導式など既知の方式のうちの任意の方式を採用することができる。
タッチパネル102は、主制御部150による記憶部120に記憶されているプログラム122の実行により生成されるゲーム画像を表示する。入力装置としてのタッチパネル102は、操作面に対して接触する接触物(ユーザの指やタッチペンなどを含む。以下、「指」である場合を代表例として説明する)の動作を検知することで、操作入力を受け付け、その接触位置の情報を主制御部150に与える。指の動作は、接触点の位置または領域を示す座標情報として検知され、座標情報は、例えば、タッチパネル102の短辺方向および長辺方向の二軸上の座標値として表される。
情報処理装置10は、移動体通信用アンテナ112や無線LAN通信用アンテナ116を通じてネットワーク(インターネット)Nに接続され、サーバ20との間でデータ通信をすることが可能である。
サーバ20は、情報処理装置10において実行されたアプリケーション等の実行データを、ネットワークNを介して収集し、当該実行データに基づきアプリケーションの進行を制御する等、当該システムのハブとなるサーバとして機能する。
また、実施形態では、情報処理装置10がネットワークNおよびサーバ20と接続された場合に、当該情報処理装置10に対して種々のアプリケーションをオンラインで提供することができるオンラインシステムを構築している。
実施形態に係るプログラム122は、情報処理装置10にインストールされたものであってもよいし、オンライン上でサーバ(サーバ20に限らない)からアプリケーションの機能が提供されるものであってもよい。
次に、サーバ20のハードウェア構成について説明する。図3は、実施形態におけるサーバ20のハードウェア構成の一例を示す図である。図3に示すように、サーバ20は、制御部202と、通信インタフェース206と、記憶部208と、表示部214と、入力部216と、を有し、各部はバスライン218を介して接続される。
制御部202は、CPU(Central Processing Unit)、ROM(Read On Memory)、RAM(Random Access Memory)204等を含む。制御部202は、記憶部208に記憶される制御プログラム210等を実行することにより、一般的な情報処理装置としての機能に加え、例えばオンラインのアプリケーションに関する処理を実現するように構成される。
また、RAM204は、各種情報を一時的に保持したり、CPUが各種処理を実行する際のワークエリアとして使用されたりする。
通信インタフェース206は、ネットワークNを介した課金サーバ30や情報処理装置10との通信を制御する。
記憶部208は、例えばHDD等からなり、一般的な情報処理装置としての機能を実現するためのアプリケーション及びデータ(図示省略)を記憶することに加え、制御プログラム210を記憶する。また、記憶部208は、情報記憶部212を有している。
制御プログラム210は、所定の処理を行うためのプログラムであり、情報処理装置10から操作指示を受け、この操作指示にアプリケーションの進行を制御するプログラムである。制御プログラム210は、コンピュータに読み取り可能な記録媒体に保存され、この記録媒体から読み出されて、記憶部208に記憶されてもよい。
情報記憶部212は、例えばアプリケーションに用いる必要なデータや、ユーザに関するデータなどを記憶する。
表示部214は、管理者に情報を表示する。入力部216は、管理者からの入力を受け付けたり、管理者からの指示を受け付けたりする。また、サーバ20は、表示部214と入力部216とを必ずしも設ける必要はなく、表示部214及び入力部216は、外部からサーバ20に接続されるようにしてもよい。
<アプリ間連携の概要>
ここで、実施形態において対象となるアプリ間連携の概要について図4を用いて説明する。図4は、情報処理装置10に表示される画面の遷移例を示す図である。図4を用いて説明する例は、第1のアプリケーションにおいて所定のイベント(又は所定のサービス)が実行される際に、そのイベントが実行条件を満たさないため、ユーザが所定のイベントを実行することができない場合の例である。
図4(A)は、第1のアプリケーションの実行画面D102の一例を示す図である。図4(A)に示す例では、第1のアプリケーションにおける所定のイベントを実行するためのUI部品(例えばボタン)B102、B104、B106が実行画面D102に表示される。ここで、ユーザは、イベントAのUI部品B102を押した(タップ又はクリック)したとすると、図4(B)に示す画面が表示される。
図4(B)は、イベントAの実行可否を表示する実行画面D112の一例を示す図である。図4(B)に示す画面には、ポップアップ画面P112が表示される。ポップアップ画面P112には、例えばイベントAが実行できないことが通知され、また、他のアプリケーション(アプリBともいう。)を実行するためのUI部品B112、他のアプリケーションをダウンロードするためのUI部品B114や、その他のUI部品B116等が表示される。
ここで、ユーザは、イベントAを実行することができずに時間的制約を受けるので、この時間を有効に過ごすべく、他のアプリケーションを実行するためのUI部品B112を押したとすると、図4(C)に示す画面が表示される。
図4(C)は、第2のアプリケーションの実行画面D122の一例を示す図である。図4(C)に示す画面には、例えば、アプリBがゲームアプリである場合、ゲーム画面が表示され、アプリBが動画視聴アプリである場合、動画の視聴画面が表示される。図4(C)に示す画面の表示後、第1のアプリケーションへ切り替えるための所定条件が満たされると、図4(D)に示す画面が表示される。
図4(D)は、イベントAが実行可能になったことを示す実行画面D132の一例を示す図である。図4(D)に示す画面には、ポップアップ画面P132が表示される。ポップアップ画面P132には、例えばイベントAが実行可能になったことが通知され、また、第1のアプリケーションのイベントAを実行するためのUI部品B132が表示される。ここで、ユーザは、UI部品B132をタップすることで、第1のアプリケーションの実行画面に戻ることができる。
このシステムによれば、第1のアプリケーションの実行中に、時間的制約が発生した場合、第2のアプリケーションの実行を促し、この時間をユーザに対して有効に使ってもらうことができる。また、情報処理装置10は、第2のアプリケーションが実行された場合に、元々ユーザが実行していた第1のアプリケーションに戻すように制御することができ、第1のアプリケーションの運営者は、安心して他のアプリケーションへの切り替えをユーザに提供することができる。
以降、上述した機能等を含むゲームを実行するための情報処理装置10及びサーバ20の機能構成について説明する。
<機能構成>
図5は、実施形態における情報処理装置10の機能構成の一例を示すブロック図である。図5に示す情報処理装置10は、例えば、第1送信部302と、第1受信部304と、第1制御部310と、第1記憶部330とを含む。
第1送信部302は、例えば主制御部150、移動体通信部114、無線LAN通信部118、プログラム122等により実現されうる。第1送信部302は、プレイヤにより入力された操作内容に基づくコマンドなどをサーバ20に送信する。このコマンドには、必要に応じて、アプリケーションにおける処理(イベントやサービス)の可否を問い合わせするための問い合わせコマンドや、条件を取得するための取得コマンドなどが含まれる。
第1受信部304は、例えば主制御部150、移動体通信部114、無線LAN通信部118、プログラム122等により実現されうる。第1受信部304は、サーバ20から、アプリケーションの実行に関する情報などを受信する。アプリケーションの実行に関する情報は、必要に応じて、アプリケーション内の処理の可否判定結果に関する情報や、アプリケーションの実行画面を表す画面情報などを含む。
第1制御部310は、例えば主制御部150、プログラム122等により実現されうる。第1制御部310は、情報処理装置10全体の処理を制御し、例えば、実行される1又は複数のアプリケーションを制御する。また、第1制御部310は、第1アプリ部312と、第2アプリ部314と、切替制御部316とを含む。
第1アプリ部312は、例えば主制御部150と、第1のアプリケーションを実行させるための第1のプログラム等により実現されうる。第1アプリ部312は、第1のプログラムが実行されることにより第1のアプリケーションの様々な機能をユーザに提供する。第1のアプリケーションは、例えば、ゲームアプリや、電車等の乗換検索アプリや、チケット販売アプリや、オークションアプリなどである。また、第1アプリ部312は、サーバ20Aと連携して第1のアプリケーションのサービスを提供してもよい。
第2アプリ部314は、例えば主制御部150と、第2のアプリケーションを実行させるための第2のプログラム等により実現されうる。第2アプリ部314は、第2のプログラムが実行されることにより第2のアプリケーションの様々な機能をユーザに提供する。第2のアプリケーションは、例えば、ゲームアプリや、動画視聴アプリ、漫画閲覧アプリ、読書アプリ、ウェブページ閲覧アプリなどであり、ユーザが所定時間楽しむことができるアプリケーションである。また、第2アプリ部314は、サーバ20Bと連携して第2のアプリケーションのサービスを提供してもよい。
切替制御部316は、複数のアプリケーションを切り替えるための制御を行う。例えば、切替制御部316は、第1アプリ部312や第2アプリ部314から切替要求を受けると、実行中のアプリケーションを他のアプリケーションに切り替える。具体的には、切替制御部316は、アプリケーションの実行権を管理し、この実行権をアプリケーションに渡すことで、ユーザ操作に基づき実行されるアプリケーションを切り替える。
また、アプリケーションの切り替えについて、URLスキームという技術が用いられる。URLスキームとは、インターネット上のコンテンツの所在や属性を表す文字列のことで、URLと類似するものである。例えば、URLスキームは、アプリを表す「XXX.YY.〜」などの特定情報であり、URLスキームに続けてコロン(「:」)記号を挟んで命令やデータ等を記述することができる。このURLスキームを用いることで、Webブラウザからアプリを起動したり、アプリから別のアプリを起動したりすることができるようになる。
例えば、UI部品(ボタン等)に、第2のアプリケーションのURLスキームが対応付けられ、このUI部品が押下されると、切替制御部316は、URLスキームに基づいて第2のアプリケーションを特定することができ、第1のアプリケーションの実行状態から第2のアプリケーションを容易に起動することができる。
また、URLスキームでは、データの受け渡しも可能であるため、第1のアプリケーションの情報を第2のアプリケーションに渡すことも可能である。これにより、後述する時間的制約の解除に関する所定条件に用いられる情報を第2のアプリケーションに受け渡し、第2のアプリケーションにおいて、第1のアプリケーションの情報を反映させることができるようになる。
第1記憶部330は、例えば、記憶部120等により実現されうる。第1記憶部330は、第1及び第2のプログラムや、第1及び第2のアプリケーションに関する情報を記憶する。例えば、第1記憶部330は、時間的制約に関する情報や、この時間的制約の解除に関する所定条件の情報を記憶する。次に、第1アプリ部312、第2アプリ部314、及び切替制御部316の機能について詳細に説明する。
≪第1アプリ部≫
図6は、実施形態における第1アプリ部312の機能の一例を示すブロック図である。図6に示す第1アプリ部312は、第1操作受付部3122、第1コマンド発行部3124、第1実行制御部3126、制約判定部3128、第1表示制御部3130、及び第1切替要求部3132を含む。
第1操作受付部3122は、タッチパネル102から入力されるユーザの操作を、第1のアプリケーション実行中に受け付ける。例えば、第1操作受付部3122は、第1のアプリケーションにおける所定のサービスを実行するための操作を受け付けたり、他のアプリケーションの実行に関するユーザ操作を受け付けたりする。受け付けられた操作内容は、第1コマンド発行部3124に出力される。
第1コマンド発行部3124は、第1操作受付部3122が受け付けた操作内容に応じたコマンドを発行し、発行したコマンドを、第1送信部302を介してサーバ20などに送信する。例えば、第1コマンド発行部3124は、問い合わせコマンドなどを発行する。
第1実行制御部3126、ユーザ操作等に基づき、第1のアプリケーションにおける所定のサービスの実行を制御する。所定のサービスは、各アプリが提供する機能やイベント等であり、このサービスに関して時間的制約が発生するものである。例えば、第1のアプリケーションがゲームアプリの場合、所定のサービスは、クエスト等であり、第1のアプリケーションが検索アプリの場合、所定のサービスは、検索結果を表示する機能等である。
ここで、時間的制約とは、所定のサービスを実行するために所定時間待たなければいけないことや、ユーザの次の行動時間までに所定時間待たなければいけないことなど、ユーザに対して待ち時間を発生させることである。
制約判定部3128は、第1のアプリケーションにおける所定のサービスに応じて、この所定のサービスに関する時間的制約があるか否かの判定を制御する。例えば、制約判定部3128は、時間的制約の可否をサーバ20に問い合わせてもよいし、自身で時間的制約の可否を判定してもよい。本実施形態では、制約判定部3128は、時間的制約の可否をサーバ20に問い合わせる例を主に説明する。この場合、制約判定部3128は、サーバ20から問い合わせ結果を取得する。
制約判定部3128は、問い合わせの結果が、時間的制約有りの場合、その旨を通知するための画面を表示するよう第1表示制御部3130に要求する。また、制約判定部3128は、問い合わせ結果が、時間的制約無しの場合、第1のアプリケーションの実行が続行されるようにする。
第1表示制御部3130は、実行中のサービスに時間的制約があると判定された場合(制約判定部3128から表示要求を受けた場合)、第1のアプリケーションとは異なる第2のアプリケーションの実行を可能にする第1のUI部品を含む第1の画面を表示するよう制御する。例えば、第1表示制御部3130は、ゲームアプリの実行中に、体力パラメータが足りずにクエストが実行できない場合、体力パラメータが回復するまで、他のゲームアプリ等を実行するためのボタンを含む画面を表示するよう制御する。
第1切替要求部3132は、実行中の第1のアプリケーションからの切替対象を示す第2のアプリケーションを特定する特定情報と、第2のアプリケーションの実行から第1のアプリケーションの実行への切り替えに用いられる時間的制約に関する条件情報とを用いて、第1のアプリケーションの実行から第2のアプリケーションの実行への切り替えを要求する。例えば、第1切替要求部3132は、第1のUI部品が操作されると、この第1のUI部品に対応付けられたURLスキームを用いて、実行中の第1のアプリケーションから、URLスキームで特定される第2のアプリケーションに切り替わるよう切替制御部316に要求する。このとき、URLスキームにおいて、上述した条件情報が追加されていてもよい。
≪第2アプリ部≫
図7は、実施形態における第2アプリ部314の機能の一例を示すブロック図である。図7に示す第2アプリ部314は、第2操作受付部3142、第2コマンド発行部3144、第2実行制御部3146、条件判定部3148、第2表示制御部3150、第2切替要求部3152、及び変更部3154を含む。
第2操作受付部3142は、タッチパネル102から入力されるユーザの操作を、第2のアプリケーション実行中に受け付ける。例えば、第2操作受付部3142は、第2のアプリケーションにおける処理を実行するための操作を受け付けたり、他のアプリケーションの実行に関するユーザ操作を受け付けたりする。受け付けられた操作内容は、第2コマンド発行部3144に出力される。
第2コマンド発行部3144は、第2操作受付部3142が受け付けた操作内容に応じたコマンドを発行し、発行したコマンドを、各第1送信部302を介してサーバ20などに送信する。例えば、第2コマンド発行部3144は、問い合わせコマンドなどを発行する。
第2実行制御部3146は、ユーザ操作等に基づき、第2のアプリケーションにおける所定のサービスの実行を制御する。所定のサービスは、第2のアプリケーションがゲームアプリの場合、クエスト等であり、第2のアプリケーションが動画視聴アプリの場合、動画再生機能等である。
条件判定部3148は、第2のアプリケーションにおける所定のサービスの実行中に、時間的制約の解除に関する所定条件が満たされるか否かの判定を制御する。例えば、条件判定部3148は、第1のアプリケーションにおける所定のイベントが実行可能になるための所定時間が経過したか否かを判定する。なお、この所定時間は、URLスキームを用いて、第1のアプリケーションから切替制御部316を介して、所定時間を示す情報(条件情報)が通知されてもよい。また、所定時間を示す情報は、第2アプリ部314内に予め設定されていてもよい。
また、条件判定部3148は、所定条件の成立の可否を、連携するサーバ20に問い合わせ、判定結果を受信するようにしてもよい。本実施形態に示す例では、条件判定部3148が、所定条件の成立の可否を判定するとする。
条件判定部3148は、所定条件が満たされると判定した場合、その旨を通知するための画面を表示するよう第2表示制御部3150に要求する。また、条件判定部3148は、所定条件が満たされないと判定した場合、第2のアプリケーションの実行が続行されるようにする。
第2表示制御部3150は、所定条件が満たされると判定された場合(条件判定部3148から表示要求を受けた場合)、第2のアプリケーションの実行から、第1のアプリケーションの実行への切り替えを可能にする第2のUI部品を含む第2の画面を表示するよう制御する。
第2切替要求部3152は、上述した所定条件が満たされる場合、第1のアプリケーションを特定する特定情報を用いて、第2のアプリケーションの実行から第1のアプリケーションの実行への切り替えを切替制御部316に要求する。
変更部3154は、上述した所定条件に基づいて、第2のアプリケーションの実行内容を変更する。例えば、変更部3154は、所定条件が、所定時間経過することであり、第2のアプリケーションがゲームアプリである場合、所定時間の長さに応じて、その時間でクリア可能になるようにゲームの内容を変更してもよい。
また、変更部3154は、所定条件が、所定時間経過することであり、第2のアプリケーションが動画視聴アプリである場合、所定時間の長さに応じて、その時間で視聴完了できるように動画の種類を変更してもよい。これにより、所定条件に応じた適切な第2のアプリケーションの処理をユーザに提供することができる。
また、第2のアプリケーションは、第1のUI部品の操作に基づき実行される場合と、第1のUI部品の操作以外のユーザ操作に基づき実行される場合とで、動作内容が異なってもよい。例えば、第2実行制御部3146は、何を契機にして第2のアプリケーションが実行されるかによって、実行内容を変更してもよい。
具体的には、第2実行制御部3146は、第2のアプリケーションを実行する通常のボタン等で第2のアプリケーションを実行する場合よりも、第1のUI部品等で第2のアプリケーションを実行する場合の方が、実行内容をより簡易にしてもよい。これにより、第2のアプリケーションがアプリ間連携で実行される場合と、アプリ間連携以外の、例えば通常どおり実行される場合とで、ユーザに対してその違いを認識させることができる。
また、第2実行制御部3146は、第2のアプリケーションがゲームアプリである場合、ユーザが無料会員のときに、アプリ間連携でゲームアプリが実行される場合にだけ、有料会員と同じ権限でゲームをプレイさせてもよい。これにより、アプリ間連携で第2のアプリケーションが実行される場合にだけ、ユーザに特別な処理権限を与えることができる。
≪切替制御部≫
図8は、実施形態における切替制御部316の機能の一例を示すブロック図である。図8に示す切替制御部316は、第1切替制御部3162、及び第2切替制御部3164を含む。
第1切替制御部3162は、第1切替要求部3132からの切り替え要求に基づき、実行中のアプリケーションを、第1のアプリケーションから第2のアプリケーションに切り替えるよう制御する。例えば、第1切替制御部3162は、第2のアプリケーションを起動させて、第1のアプリケーションから第2のアプリケーションに切り替えることが可能である。
第2切替制御部3164は、第2切替要求部3152からの切り替え要求に基づき、実行中のアプリケーションを、第2のアプリケーションから第1のアプリケーションに切り替えるよう制御する。例えば、第2切替制御部3164は、バックエンドで実行中の第1のアプリケーションに実行権を渡すことで、第2のアプリケーションから第1のアプリケーションに切り替えることが可能である。
以上の処理によれば、時間的制約を有するアプリケーションに対し、時間的制約を他のアプリケーションの実行により解消しつつ、適切なタイミングで元のアプリケーションの実行に戻すような仕組みを提供することができる。
また、第2表示制御部3150は、上述した所定条件が成立した場合、第2のアプリケーションの実行画面から、第1のアプリケーションの実行画面への切り替えを可能にする第2のUI部品を含む第2の画面を表示するよう制御する。例えば、第2表示制御部3150は、所定条件が成立した(例えば所定時間が経過した)後に、第1のアプリケーションに戻ることができるボタンを含むポップアップ画面が表示されるよう制御する。この場合、第1のアプリケーションに戻る制御が行われる際にも、上述したURLスキームが用いられればよい。
第2のUI部品が画面に含まれる場合、第2切替要求部3152は、ユーザによる第2のUI部品の操作に応じて、アプリケーションの切り替えが行われるよう要求する。例えば、第2切替制御部3164は、ユーザによりボタンがタップされたときに、第2のアプリケーションから第1のアプリケーションに実行画面が切り替わるようにする。これにより、所定条件に関する所定時間として、第1のアプリケーションが実行可能になる最短の時間が設定されれば、一旦他のアプリケーションに切り替わったとしても、第1のアプリケーション側に最短の時間で再び切り替えることができるようになる。
また、第2表示制御部3150は、上述した所定条件が成立した場合、第1のアプリケーションが実行可能であることを報知する報知画面を表示するよう制御する。例えば、第2表示制御部3150は、所定条件が成立することとして、所定時間が経過した後に、第1のアプリケーションが実行可能になったことを通知する画面が表示されるよう制御する。
第1のアプリケーションが実行可能になったことを示す報知画面が表示される場合、第2切替要求部3152は、報知画面の表示後に、所定のタイミングや所定の操作に応じて、第2のアプリケーションから第1のアプリケーションに実行画面が切り替わるように要求する。これにより、第2のアプリケーションを実行中のユーザに対し、このユーザが元々実行していた第1のアプリケーションが実行可能になったことを報知することができ、第1のアプリケーションに戻る契機をユーザに与えることができる。
また、上述した時間的制約は、第1のアプリケーションが有する複数のサービスから、操作者により選択された第1のアプリケーションにおける所定のサービスの実行を可能にするために所定時間を要することであってもよい。また、上述した所定条件は、この所定のサービスの実行に関するパラメータであって、経時変化するパラメータが所定時間に対応する所定値になることであってもよい。
例えば、時間的制約について、ゲームアプリにおける体力パラメータが、所定のサービス(例えばクエスト)を実行するために必要な値に満たない場合、体力パラメータが回復するまでに、ユーザは所定時間待たなければならない。この体力パラメータが回復するまでの所定時間が、時間的制約の一例となりうる。
また、例えば、時間的制約の解除に関する所定条件として、体力パラメータが、所定のサービスを実行可能な所定値にまで回復することである。また、所定値は、所定のサービスが実行可能になるまでの所定時間が経過する場合に達する体力パラメータの値である。これにより、一般的なゲームで用いられる体力パラメータ等に基づく時間的制約に対し、本システムを適用することができる。
また、上述した時間的制約は、第1のアプリケーションに関するユーザの予定行動時刻と、現在時刻との差が、設定された時間以上であることであってもよい。例えば、時間的制約について、第1のアプリケーションとしての電車等の乗換検索アプリにおいて、現在時刻から次の乗換時刻までに、設定された時間以上あることが、時間的制約の一例となりうる。設定された時間は例えば5分である。これにより、次の乗換時刻までユーザに空き時間が発生した場合に、第2のアプリケーションの実行を促すことができる。なお、設定された時間は、第2のアプリケーションの内容により変更されてもよい。
また、第1のアプリケーションとしてのチケット販売アプリにおいて、現在時刻からチケット販売開始時刻までに、設定された時間以上あることが、時間的制約の一例となりうる。これにより、チケット販売時刻までユーザに空き時間が発生した場合に、第2のアプリケーションの実行を促すことができる。
図9は、実施形態におけるサーバ20の機能構成の一例を示すブロック図である。図9に示すサーバ20は、第2送信部402と、第2受信部404と、第2制御部410と、第2記憶部430とを含む。サーバ20は、制御プログラム210を実行することで、第2制御部410などの機能を実現することができる。
また、サーバ20は、第1のアプリケーション、第2のアプリケーションそれぞれに対応して別で設けられてもよいし、両アプリケーションに対して共通で設けられてもよい。以下、サーバ20Aを第1のアプリケーションのサーバ、サーバ20Bを第2のアプリケーションのサーバとして説明し、機能構成については、第1のアプリケーションのサーバとしての機能を説明する。
第2送信部402は、例えば通信インタフェース206や制御部202等により実現されうる。第2送信部402は、第2制御部410からの指示により、第1のアプリケーションの実行に関する情報を情報処理装置10に送信する。
第2受信部404は、例えば通信インタフェース206や制御部202等により実現されうる。第2受信部404は、各情報処理装置10から、操作内容を示すコマンドなどを受信する。例えば、第2受信部404は、ユーザが操作する情報処理装置10から、第1のアプリケーションにおける所定のサービスの実行可否を問い合わせる要求(問い合わせコマンド)などを受信する。
第2制御部410は、例えば制御部202や記憶部208等により実現されうる。第2制御部410は、受信されたコマンドに基づいてアプリケーションの実行を制御する。例えば、第2制御部410は、ユーザ操作に基づき実行される第1のアプリケーションの実行を制御する。
第2記憶部430は、例えば記憶部208等により実現されうる。第2記憶部430は、第1のアプリケーションに関する情報を記憶する。例えば、第1のアプリケーションに関する情報には、この第1のアプリケーションを実行するユーザの情報や、上述した時間的制約及び/又は所定条件に関する情報や、第1のアプリケーションの実行画面を構成するための画面情報などを含む。
次に、第2制御部410の詳細について説明する。第2制御部410は、実行部412と、判定部414と、取得部416とを含む。
実行部412は、情報処理装置10と連携しながら、第1のアプリケーションを実行する。例えば、実行部412は、情報処理装置10と連携しながら、F2Pのオンラインゲーム等を実行したり、電車等の乗換検索アプリ等を実行したりする。
判定部414は、情報処理装置10からの問い合わせコマンドを取得すると、時間的制約が発生しているか否かを判定する。例えば、判定部414は、第1のアプリケーションがゲームアプリの場合、体力パラメータが所定のクエストを実行できない値であれば、時間的制約があると判定し、所定のクエストが実行できる値であれば、時間的制約はないと判定する。
また、判定部414は、第1のアプリケーションが時刻に関する検索アプリの場合、現在時刻から検索結果の所定の時刻まで、所定時間以上あれば、時間的制約があると判定し、所定時間未満であれば、時間的制約は無いと判定する。判定部414は、情報処理装置10の第1判定制御部318に対し、判定結果を送信する。所定時間は、例えば5分とする。
取得部416は、情報処理装置10から所定条件の取得要求がある場合に、第2記憶部430から所定条件を取得し、所定条件を情報処理装置10に送信する。なお、所定条件の取得要求は、必ずしも行われるものではない。
<実行アプリの時系列の関係>
図10は、実行されるアプリケーションの時系列の関係を示す図である。図10に示す例では、第1のアプリケーションをアプリA、第2のアプリケーションをアプリBとして説明する。
ユーザは、アプリAを実行していたときに、時刻T1において、アプリAでの処理に時間的制約が発生したとする。例えば、ユーザは、所定のクエストを実行しようとしたが、体力パラメータが、所定のクエストを実行するための必要量分に満たなかったとする。この判定は、制約判定部3128と判定部414とにより行われる。このとき、第1表示制御部3130によりポップアップ画面にアプリBへの実行を可能にするボタンが表示され、ユーザにアプリBの実行を促すようにする。
時刻T2において、表示されたポップアップ画面に含まれるボタンが、ユーザにより押されると、切替制御部316は、実行中のアプリがアプリAからアプリBに切り替えるよう制御する。このとき、上述したようにURLスキームが用いられることで、アプリAからアプリBを直接起動し、アプリAからアプリBに実行権を渡すことができる。
時刻T3において、時間的制約の解除に関する所定条件が満たされたとする。この判定は、条件判定部3148により行われる。このとき、第2表示制御部3150によりポップアップ画面にアプリAに実行を戻ることを可能にするボタンが表示され、ユーザにアプリAに戻ることを促すようにする。
時刻T4において、例えばポップアップ画面に含まれる戻るボタンが、ユーザにより押されると、切替制御部316は、アプリBからアプリAに切り替えるよう制御する。このときも、上述したようにURLスキームが用いられることで、アプリBからアプリAに実行権を渡すことができる。
<具体例>
次に、情報処理装置10において表示される画面遷移の具体例を用いて、実施形態におけるアプリ間連携について説明する。
≪第1具体例≫
第1具体例は、第1のアプリケーションがゲームアプリであり、第2のアプリケーションが動画視聴アプリの場合の例を示す。
図11は、第1具体例における情報処理装置10に表示される画面の遷移例を示す図である。図11(A)は、ゲームアプリの実行画面D202の一例を示す図である。図11(A)に示す例では、ゲームアプリにおけるクエストを実行するためのボタンB202、B204、B206が実行画面D202に表示される。ここで、ユーザは、クエストAのボタンB202を押した(タップ又はクリック)したとすると、図11(B)に示す画面が表示される。
図11(B)は、クエストAの実行可否を表示する実行画面D212の一例を示す図である。図11(B)に示す画面には、ポップアップ画面P212が表示される。ポップアップ画面P212には、例えばクエストAが実行できないことが通知され、また、動画視聴アプリを実行するためのボタンB212、他のアプリケーションをダウンロードするためのボタンB214や、その他のボタンB216、体力パラメータPWが実行画面D212に表示される。
ここで、ユーザは、体力パラメータPWが足りないことにより、クエストAを実行することができずに時間的制約を受けるので、この時間を有効に過ごすべく、動画視聴アプリを実行するためのボタンB212を押したとすると、図11(C)に示す画面が表示される。
図11(C)は、動画視聴アプリの実行画面D222の一例を示す図である。図11(C)に示す画面には、例えば、動画表示領域AR10が含まれる。図11(C)に示す画面の表示後、第1のアプリケーションに切り替えるための所定条件が満たされると、図11(D)に示す画面が表示される。
図11(D)は、クエストAが実行可能になったことを示す実行画面D232の一例を示す図である。図11(D)に示す画面には、ポップアップ画面P232が表示される。ポップアップ画面P232には、例えばクエストAが実行可能になったことが通知され、また、ゲームアプリのイベントAを実行するためのボタンB232が表示される。ここで、ユーザは、ボタンB232をタップすることで、ゲームアプリの実行画面に戻ることができる。
この第1具体例によれば、ゲームアプリの実行中に、クエストを実行することができずに時間的制約が発生した場合、動画視聴アプリの実行を促し、この時間をユーザに対して有効に使ってもらうことができる。また、情報処理装置10は、動画視聴アプリが実行された場合に、元々ユーザが実行していたゲームアプリに戻すように制御することができ、ゲームアプリの運営者は、安心して他のアプリケーションへの切り替えをユーザに提供することができる。
≪第2具体例≫
第2具体例は、第1のアプリケーションが電車等の乗換検索アプリであり、第2のアプリケーションがゲームアプリの場合の例を示す。
図12は、第2具体例における情報処理装置10に表示される画面の遷移例を示す図である。図12(A)は、乗換検索アプリの実行画面D302の一例を示す図である。図12(A)に示す例では、乗換検索アプリにおける検索結果が表示される。ここで、現在時刻は、13時32分である。図12(A)の表示後に、図12(B)に示す画面が表示される。
図12(B)は、ユーザの次の行動までに時間的制約があることを表示する実行画面D312の一例を示す図である。図12(B)に示す画面には、ポップアップ画面P312が表示される。ポップアップ画面P312には、例えば次の乗換までに時間があることが通知され、また、ゲームアプリを実行するためのボタンB312、他のアプリケーションをダウンロードするためのボタンB314や、その他のボタンB316が実行画面D312に表示される。
ここで、ユーザは、次の乗換までに時間があり、この画面を表示し続ける必要がないため、乗換までの時間を有効に過ごすべく、ゲームアプリを実行するためのボタンB312を押したとすると、図12(C)に示す画面が表示される。
図12(C)は、ゲームアプリの実行画面D322の一例を示す図である。図12(C)に示す画面には、例えば、ゲーム画面の表示領域AR20が含まれる。図12(C)に示す画面の表示後、第1のアプリケーションに切り替えるための所定条件が満たされると、図12(D)に示す画面が表示される。
図12(D)は、乗換時刻が近づいていることを示す実行画面D332の一例を示す図である。図12(D)に示す画面には、ポップアップ画面P332が表示される。ポップアップ画面P332には、例えば乗換時刻が近づいていることが通知され、また、乗換検索アプリを実行するためのボタンB332が表示される。ここで、ユーザは、ボタンB332をタップすることで、乗換検索アプリの実行画面に戻ることができる。
この第2具体例によれば、乗換検索アプリの実行中に、次の乗換時刻までに時間的制約が発生した場合、ゲームアプリの実行を促し、次の乗換までの時間をユーザに対して有効に使ってもらうことができる。また、情報処理装置10は、ゲームアプリが実行された場合に、元々ユーザが実行していた乗換検索アプリに戻すように制御することができ、乗換検索アプリの運営者は、安心して他のアプリケーションへの切り替えをユーザに提供することができる。
≪第3具体例≫
第3具体例は、第1のアプリケーションがチケット販売アプリであり、第2のアプリケーションがゲームアプリの場合の例を示す。
図13は、第3具体例における情報処理装置10に表示される画面の遷移例を示す図である。図13(A)は、チケット販売アプリの実行画面D402の一例を示す図である。図13(A)に示す例では、チケット販売アプリにおける検索結果が表示される。ここで、現在時刻は、9時40分である。図13(A)の表示後に、図13(B)に示す画面が表示される。
図13(B)は、ユーザの次の行動までに時間的制約があることを表示する実行画面D412の一例を示す図である。図13(B)に示す画面には、ポップアップ画面P412が表示される。ポップアップ画面P412には、例えばチケット販売までに時間があることが通知され、また、ゲームアプリを実行するためのボタンB412、他のアプリケーションをダウンロードするためのボタンB414や、その他のボタンB416が実行画面D412に表示される。
ここで、ユーザは、チケット販売までに時間があり、この画面を表示し続ける必要がないため、チケット販売までの時間を有効に過ごすべく、ゲームアプリを実行するためのボタンB412を押したとすると、図13(C)に示す画面が表示される。
図13(C)は、ゲームアプリの実行画面D422の一例を示す図である。図13(C)に示す画面には、例えば、ゲーム画面の表示領域AR20が含まれる。図13(C)に示す画面の表示後、第1のアプリケーションに切り替えるための所定条件が満たされると、図13(D)に示す画面が表示される。
図13(D)は、チケット販売時刻が近づいていることを示す実行画面D432の一例を示す図である。図13(D)に示す画面には、ポップアップ画面P432が表示される。ポップアップ画面P432には、例えばチケット販売時刻が近づいていることが通知され、また、チケット販売アプリを実行するためのボタンB432が表示される。ここで、ユーザは、ボタンB432をタップすることで、チケット販売アプリの実行画面に戻ることができる。
この第3具体例によれば、チケット販売アプリの実行中に、チケット販売までに時間的制約が発生した場合、ゲームアプリの実行を促し、チケット販売までの時間をユーザに対して有効に使ってもらうことができる。また、情報処理装置10は、ゲームアプリが実行された場合に、元々ユーザが実行していたチケット販売アプリに戻すように制御することができ、チケット販売アプリの運営者は、安心して他のアプリケーションへの切り替えをユーザに提供することができる。
以上、3つの具体例を説明したが、第1のアプリケーションと第2のアプリケーションの組み合わせは上記例に限られない。例えば、第1のアプリケーションとして、レストラン予約アプリなどが適用でき、第2のアプリケーションとして、漫画閲覧アプリや、読書アプリ、ゲームの攻略サイト閲覧アプリなどが適用可能である。
<動作>
次に、実施形態における情報処理システム1の動作について説明する。図14は、実施形態におけるアプリ間連携の第1処理の一例を示すシーケンス図である。図14に示す例では、第1のアプリケーションをアプリA、第2のアプリケーションをアプリBとし、アプリAに対応するサーバをサーバA、アプリBに対するサーバをサーバBとする。第1処理では、アプリはサーバ間で連携して制御されるものとして説明する。また、アプリA及びアプリBは、情報処理装置10Aにより実行されるとし、サーバAは、サーバ20A、サーバBは、サーバ20Bであるとする。
図14に示すステップS102で、アプリAは、自アプリAの実行中に、時間的制約が有るか否かをサーバAに問い合わせる。このとき、アプリAは、時間的制約の判定に用いるデータをサーバAに送信してもよい。
ステップS104で、サーバAは、時間的制約の有無を判定する。このとき、サーバAは、時間的制約の判定に用いるデータを用いて、アプリAにおいて時間的制約が発生しているか否かを判定する。例えば、アプリAがゲームアプリの場合、体力パラメータが一定値以上であるか否かを判定する。
ステップS106で、サーバAは、アプリAに対し、時間的制約の判定結果を返す。
ステップS108で、アプリAは、判定結果を画面に表示するよう制御する。このとき、判定結果が時間的制約有の場合、アプリBへの切り替えを示すボタン等が画面に表示される。ユーザがこのボタンを押したり又は所定時間が経過したりすると、処理はステップS110に進む。
ステップS110で、アプリAは、切替制御部316に対し、ユーザ操作に基づいて又は所定時間経過後に、URLスキーマ等を用いてアプリBの起動を要求する。
ステップS112で、切替制御部316は、切替要求に基づき、例えばURLスキーマで特定されるアプリBを起動し、実行中のアプリケーションをアプリAからアプリBに切り替えるよう制御する。
ステップS114で、アプリBは、起動されると、サーバBにアプリBの実行リクエストを行う。このとき、必要に応じて、時間的制約の解除に関する所定条件の条件情報がアプリBに出力されてもよい。
ステップS116で、サーバBは、実行リクエストに対する応答をアプリBに行う。これにより、アプリBは、サーバBと連携してデータ通信が行われ、アプリBの処理が制御されるようになる。
ステップS118で、アプリBは、アプリの実行画面を表示するよう制御する。
ステップS120で、アプリBは、所定条件が満たされるか否かを判定する。所定条件は、ステップS112の起動要求時に取得されてもよい。ここで、所定条件が満たされた場合に、処理はステップS124に進む。
ステップS124で、アプリBは、アプリBからアプリAに切り替えることに関する画面を表示するよう制御する。
ステップS126で、アプリBは、切替制御部316に対し、ユーザ操作に基づいて又は所定時間経過後に、URLスキーマ等を用いてアプリAに切り替えるよう要求する。
ステップS128で、切替制御部316は、表示画面に表示されるアプリケーションの実行権を、アプリBからアプリAに渡す。
ステップS130で、アプリAは、実行権が渡されると、再びサーバAに実行リクエストを行う。
ステップS132で、サーバAは、実行リクエストに対する応答をアプリAに行う。これにより、アプリAは、サーバAと再び連携してデータ通信が行われ、アプリAの処理が制御されるようになる。
ステップS134で、アプリAは、アプリの実行画面を表示するよう制御する。以上の第1処理によれば、サーバ間連携を行い、かつ時間的制約が発生するアプリケーションに対し、時間的制約を他のアプリケーションの実行により解消しつつ、適切なタイミングで元のアプリケーションの実行に戻すための仕組みを提供することができる。
次に、上述した処理の主体等を変えても本システムを適用することができることについて説明する。図15は、実施形態におけるアプリ間連携の第2処理の一例を示すシーケンス図である。図15に示す例では、図14に示す例と同様、第1のアプリケーションをアプリA、第2のアプリケーションをアプリBとする。また、図15に示す例では、図14に示す例とは異なり、それぞれのアプリは、情報処理装置10A内で完結して処理するものとし、時間的制約が有るか否かの判定は、アプリAにおいて処理される。
図15に示すステップS202で、アプリAは、アプリAの実行中に、アプリAに関する時間的制約が発生したか否かを判定する。時間的制約が発生していれば、処理はステップS204に進む。
ステップS204で、アプリAは、判定結果を画面に表示するよう制御する。このとき、判定結果が時間的制約有りの場合、アプリBへの切り替えを示すボタン等が画面に表示される。ユーザがこのボタンを押したり又は所定時間が経過したりすると、処理はステップS206に進む。
ステップS206で、アプリAは、切替制御部316に対し、ユーザ操作に基づいて又は所定時間経過後に、アプリBの起動を要求する。
ステップS208で、切替制御部316は、切替要求に基づき、例えば予め設定されたアプリBを起動し、実行中のアプリケーションをアプリAからアプリBに切り替えるよう制御する。
ステップS210で、アプリBは、アプリの実行画面を表示するよう制御する。
ステップS212で、アプリBは、所定条件が満たされるか否かを判定する。所定条件は、ステップS208の起動要求時に取得されてもよい。ここで、所定条件が満たされた場合に、処理はステップS214に進む。
ステップS214で、アプリBは、アプリBからアプリAに切り替えることに関する画面を表示するよう制御する。
ステップS216で、アプリBは、切替制御部316に対し、ユーザ操作に基づいて又は所定時間経過後に、アプリAに切り替えるよう要求する。
ステップS218で、切替制御部316は、表示画面に表示されるアプリケーションに対する実行権を、アプリBからアプリAに渡す。
ステップS220で、アプリAは、アプリの実行画面を表示するよう制御する。以上の第2処理によれば、装置内で完結して処理を行い、かつ時間的制約が発生するアプリケーションに対し、時間的制約を他のアプリケーションの実行により解消しつつ、適切なタイミングで元のアプリケーションの実行に戻すための仕組みを提供することができる。また、第2処理によれば、サーバとの連携が不要であり簡易なシステムであるため、実装が容易である。
図16は、実施形態におけるアプリ間連携の第3処理の一例を示すシーケンス図である。図16に示す例では、図14に示す例と同様、第1のアプリケーションをアプリA、第2のアプリケーションをアプリBとし、アプリはサーバと連携して制御されるものであるとする。図16に示す例では、図14及び図15に示す例と異なり、アプリBは、共通サーバと連携して制御されるものとする。また、アプリA及びアプリBは、情報処理装置10Aにより実行されるとし、サーバAは、サーバ20A、共通サーバは、サーバ20Bであるとする。共通サーバは、時間的制約の判定条件や、所定条件を記憶する。
図16に示すステップS302で、アプリAは、自アプリAの実行中に、時間的制約の判定条件をサーバAに要求する。
ステップS304で、サーバAは、共通サーバに、時間的制約の判定条件を要求する。
ステップS306で、共通サーバは、サーバAに対し、判定条件を応答結果として返す。
ステップS308で、サーバAは、アプリAに対し、共通サーバから取得した判定条件を応答結果として返す。
ステップS310で、アプリAは、取得した時間的制約の判定条件に基づき、時間的制約の有無を判定する。このとき、判定結果が時間的制約有りの場合、アプリBへの切り替えを示すボタン等が画面に表示される。ユーザがこのボタンを押したり又は所定時間が経過したりすると、処理はステップS312に進む。
ステップS312で、アプリAは、切替制御部316に対し、ユーザ操作に基づいて又は所定時間経過後に、URLスキーマ等を用いてアプリBの起動を要求する。
ステップS314で、切替制御部316は、切替要求に基づき、例えばURLスキーマで特定されるアプリBを起動し、実行中のアプリケーションをアプリAからアプリBに切り替えるよう制御する。
ステップS316で、アプリBは、起動されると、アプリの実行画面を表示するよう制御する。
ステップS318で、アプリBは、共通サーバに対し、所定条件の情報を取得するよう要求する。
ステップS320で、共通サーバは、アプリBに対し、所定条件の情報を応答結果として返す。
ステップS322で、アプリBは、取得した情報に基づく所定条件が満たされるか否かを判定する。ここで、所定条件が満たされた場合に、処理はステップS324に進む。
ステップS324で、アプリBは、アプリBからアプリAに切り替えることに関する画面を表示するよう制御する。
ステップS326で、アプリBは、切替制御部316に対し、ユーザ操作に基づいて又は所定時間経過後に、URLスキーマ等を用いてアプリAに切り替えるよう要求する。
ステップS328で、切替制御部316は、表示画面に表示されるアプリケーションの実行権を、アプリBからアプリAに渡す。
ステップS330で、アプリAは、実行権が渡されると、再びサーバAに実行リクエストを行う。
ステップS332で、サーバAは、実行リクエストに対する応答をアプリAに行う。これにより、アプリAは、サーバAと再び連携してデータ通信が行われ、アプリAの処理が制御されるようになる。
ステップS334で、アプリAは、アプリの実行画面を表示するよう制御する。以上の第3処理によれば、共通サーバと連携を行い、かつ時間的制約が発生するアプリケーションに対し、時間的制約を他のアプリケーションの実行により解消しつつ、適切なタイミングで元のアプリケーションの実行に戻すための仕組みを提供することができる。また、第3処理によれば、時間的制約の判定条件や所定条件が、共通サーバで管理することができるため、汎用性を向上させることができる。
なお、図14〜16で説明した処理のフローに含まれる各処理ステップは、処理内容に矛盾が生じない範囲で、任意に順番を変更して又は並列に実行することができるとともに、各処理ステップ間に他のステップを追加してもよい。また、便宜上1ステップとして記載されているステップは、複数ステップに分けて実行することができる一方、便宜上複数ステップに分けて記載されているものは、1ステップとして把握することができる。
[変形例]
上記実施形態における変形例として、例えば時間的制約の解除に関する所定条件として、第1のアプリケーションに関する条件と、第2のアプリケーションに関する条件とがあってもよい。第1のアプリケーションに関する条件とは、所定時間経過することであったり、第2のアプリケーションに関する条件とは、漫画閲覧アプリや読書アプリなどの場合は何冊読まれたかであり、最後まで閲覧されたことであったりする。
また、所定条件が、第2のアプリケーションに関する条件の場合、所定条件が満たされても、第1のアプリケーションが必ずしも実行できない場合もありうる。この場合、特別に第1のアプリケーションを実行可能としたり、所定のアイテム等を付与したりしてもよい。
例えば、第1のアプリケーションがゲームアプリで、第2のアプリケーションが漫画閲覧アプリであり、時間的制約が、体力パラメータが所定値まで回復することであり、所定条件が、漫画1冊を読むことであるとする。以上の条件のもとでは、ユーザは、ゲームアプリから漫画閲覧アプリに移動した後、漫画1冊を読み終えたが、読むスピードが速すぎたため、体力パラメータが回復していない場合がありうる。このとき、第1実行部316は、体力パラメータが回復していないが、回復したものとみなして、ゲームアプリにおけるクエストの実行を可能にする。これにより、所定条件を満たした後のユーザに、第1のアプリケーションが実行できないなどの不都合な状態を避けることができる。
上述した各種の処理は、情報処理装置側で行われてもよいし、サーバ側で行われてもよいし、実装内容によって適宜変更されてもよい。例えば、制約判定部3128において、時間的制約が有るか否かが判定されてもよい。
第2のアプリケーションの実行中に、バックエンドで第1のアプリケーションの実行が可能な場合、第1のアプリケーションにおいて時間的制約の判定が行われてもよい。第1のアプリケーションにおいて時間的制約が解除されたと判定された場合、第2のアプリケーションの実行中に、ポップアップ画面などで、第1のアプリケーションが実行可能になったことが通知されてもよい。
また、第1のアプリケーションから第2のアプリケーションに切り替える際、第2のアプリケーションを起動するとして説明したが、既に第2のアプリケーションが起動された状態で、実行権を渡すだけでアプリケーションの切り替えが行われるようにしてもよい。
また、第1のアプリケーションが、所定人数の参加が必要なゲームである場合、所定人数が集まるまでゲームが実行できないという人数的制約が発生する。このとき、上述したように、第2のアプリケーションに切り替える制御がなされてもよい。バックエンドで実行中の第1のアプリケーションにおいて、所定人数が集まったことが検知されると、その旨を示す情報が、第2のアプリケーションに通知される。第2のアプリケーションは、この情報を取得すると、アプリケーションの実行権が、第1のアプリケーションに戻るように制御を行う。上記のような形態においても、本発明を適用することができ、同様の効果を得ることができる。
以上、実施形態について詳述したが、上記実施形態に限定されるものではなく、特許請求の範囲に記載された範囲内において、上記実施形態以外にも種々の変形及び変更が可能である。