(57)【要約】【課題】表示するコンテンツが切り替わってもメモリ使用量が必要以上に増加せず、かつ、コンテンツの表示に加えて外部機器との連携を可能とする端末装置を提供する。【解決手段】端末装置のアプリケーションは、コンテンツを画面を生成するコンテンツ表示プログラムと、外部機器との連携処理を行う外部連携プログラムと、コンテンツ表示プログラムおよび外部連携プログラムの起動を管理する起動管理プログラムと、アプリケーションの振る舞いを定義した設定ファイルと、を備える。端末装置は、タッチパネルに対する操作、または、端末装置に接続された検出機器による検出に応じて外部連携プログラムを起動することにより、外部連携レイヤにコンテンツ画面を表示するとともに、外部機器との連携処理を実行する。【選択図】図１０
2020087272.tif 000002
【特許請求の範囲】
【請求項１】
端末装置であって、
タッチパネルと、
複数のプログラムを記憶したメモリと、
前記タッチパネルに表示する画面を管理するスタックとして前記メモリの一部を使用し、設定ファイルを参照し、前記プログラムを実行することにより前記タッチパネルにコンテンツ画面を表示するプログラム実行手段と、
前記タッチパネルに対する操作、または、前記端末装置に接続された検出機器による検出に応じて、実行すべきプログラムを前記プログラム実行手段に指示する起動管理手段と、
を備え、
前記設定ファイルは、前記プログラムの識別子と、当該プログラムの実行により生成されるコンテンツ画面が表示されるレイヤとの対応を記述しており、
前記レイヤは、コンテンツ画面が切り替わる際に表示中のコンテンツ画面が前記スタックから破棄されない第１レイヤ、並びに、コンテンツ画面が切り替わる際に表示中のコンテンツ画面が前記スタックから破棄される第２レイヤおよび外部連携レイヤを含み、
前記プログラム実行手段は、コンテンツ画面が切り替わる際、コンテンツ画面が第１レイヤに表示されている場合、表示中のコンテンツ画面を前記スタックから破棄することなく、切り替え先の別のコンテンツ画面を生成するプログラムの実行指示を前記起動管理手段に要求し、コンテンツ画面が第２レイヤまたは外部連携レイヤに表示されている場合、表示中のコンテンツ画面を前記スタックから破棄するとともに、切り替え先の別のコンテンツ画面を生成するプログラムの実行指示を前記起動管理手段に要求し、
前記プログラム実行手段は、コンテンツ画面を前記外部連携レイヤに表示するプログラムを実行する場合には、更に外部機器に対する処理を実行することを特徴とする端末装置。
【請求項２】
前記プログラム実行手段は、コンテンツ画面を前記外部連携レイヤに表示するプログラムを実行する場合、前記外部機器に対する処理が終了したときに、前記外部連携レイヤに表示したコンテンツ画面を前記スタックから破棄することを特徴とする請求項１に記載の端末装置。
【請求項３】
前記プログラム実行手段は、前記外部機器に対する処理として、前記外部機器の動作を制御するためのデータを前記外部機器に送信することを特徴とする請求項１または２に記載の端末装置。
【請求項４】
前記プログラム実行手段は、前記タッチパネルに対する操作、または、前記端末装置に接続された検出機器による検出に応じて、複数の言語のコンテンツ画面を切り替えて表示することを特徴とする請求項１乃至３のいずれか一項に記載の端末装置。
【請求項５】
前記プログラム実行手段は、表示中の特定の言語のコンテンツ画面が他のコンテンツ画面に切り替わる際、切り替え先のコンテンツ画面に前記特定の言語が用意されていない場合、予め決められた言語のコンテンツ画面を表示することを特徴とする請求項４に記載の端末装置。
【請求項６】
前記レイヤは第３レイヤを含み、
前記設定ファイルは、コンテンツ画面を第３レイヤに表示するプログラムについては、当該プログラムの識別子に対応付けて、当該プログラムの起動条件および前記第３レイヤからの戻り先レイヤを指定する情報を記述しており、
前記起動管理手段は、前記起動条件が成立したときに、前記コンテンツ画面を第３レイヤに表示するプログラムの実行を前記プログラム実行手段に指示し、
前記プログラム実行手段は、前記第３レイヤに表示されたコンテンツ画面の表示を終了する操作がなされると、前記戻り先レイヤに表示されたコンテンツ画面が前記タッチパネルに表示されるように前記スタック内のコンテンツ画面を制御することを特徴とする請求項１乃至５のいずれか一項に記載の端末装置。
【請求項７】
請求項１乃至６のいずれか一項に記載の端末装置と、前記端末装置に接続された検出機器と、を備えることを特徴とする什器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タッチパネルを備えた端末装置上で起動するアプリケーションのメモリ消費量を抑える技術に関する。
【背景技術】
【０００２】
複数の画面で構成される様々なコンテンツをネットワーク上のサーバに格納し、タブレット（タブレットコンピュータ）などのタッチパネルを備えたモバイル端末上で、該サーバに格納されたコンテンツを利用するクラウドサービスが普及している。
【０００３】
クラウドサービスに用いるモバイル端末には、最後にタッチパネルに出力した画面が先頭になるように、タッチパネルに出力した画面をスタック形式で配置し、スタックの先頭になる画面をタッチパネルに表示するオペレーティングシステムが実装される。更に、モバイル端末には、このオペレーティングシステム上で動作するアプリケーションとして、サーバまたはモバイル端末に格納されているコンテンツを表示するアプリケーションが実装される。クラウドサービスのサーバには様々な分野のコンテンツを格納し、更に、このコンテンツは更新されることが多い。このため、モバイル端末に実装するアプリケーションのカスタマイズが容易に行えるように、モバイル端末に実装するアプリケーションに、汎用的に利用可能な複数のコンテンツ表示プログラムを組み込み、アプリケーションで表示するコンテンツなど、アプリケーションの実質的な振る舞いは、ＸＭＬ形式の設定ファイルで定義できるように構成する方法が提案されている（例えば、特許文献１）。
【０００４】
このように、アプリケーションで表示するコンテンツなど、アプリケーションの実質的な振る舞いを設定ファイルで定義できるようにすると、アプリケーションのメモリ使用量は設定ファイルの内容によって変わることになる。このため、アプリケーションの実質的な振る舞いを定義する設定ファイルの内容に係わらず、アプリケーションのメモリ使用量が必要以上に増えないようにする仕組みが必要になる。 
【０００５】
アプリケーション起動時におけるコンピュータのメモリ使用量を管理する発明として、特許文献２において、コンピュータに搭載されたアプリケーションに常駐型または一時型の属性情報を設定しておき、アプリケーション起動時に、この時点で動作中のアプリケーションの中から、一時型の属性情報が設定されたアプリケーションを強制終了させ、常駐型の属性情報が設定されたアプリケーションはそのまま残すようにした発明が開示されている。また、特許文献３では、アプリケーションの切り替え時に、起動対象となるアプリケーションとの関連性に基づき起動および終了させるアプリケーションを決定し、アプリケーションの起動によってメモリ容量不足が発生すると判断した場合、終了させると決定したアプリケーションを終了させることで、メモリ容量不足を解消する発明が開示されている。 
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−２１６４２７号公報
【特許文献２】特開２００３−１５８９２号公報
【特許文献３】特開２０１４−２３８６５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来技術は、アプリケーションを起動した時、起動中のアプリケーションの中から所定の条件を満たすアプリケーションを終了させることで、コンピュータのメモリ不足を解消する技術であって、複数のコンテンツ表示プログラムを組み込み、実質的な振る舞いを設定ファイルで定義できるように構成したアプリケーションのメモリ使用量を必要以上に増えないようにする技術ではない。このようなアプリケーションのメモリ使用量が必要以上に増えないように、モバイル端末のタッチパネルに表示するコンテンツが切り替わる毎に、切り替わる前にタッチパネルに表示していたコンテンツをメモリから消去することも考えられるが、表示処理に時間のかかるコンテンツが繰り返してタッチパネルに表示されるケースでは、このコンテンツを表示する毎に表示待ちが発生し操作性が悪くなるという問題がある。
【０００８】
本発明は、複数のプログラムを組み込み、実質的な振る舞いを設定ファイルで定義できるように構成した端末装置において、端末装置のタッチパネルに表示するコンテンツが切り替わってもメモリ使用量が必要以上に増加せず、かつ、コンテンツの表示に加えて外部機器との連携を可能とする端末装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の１つの観点では、端末装置は、タッチパネルと、複数のプログラムを記憶したメモリと、前記タッチパネルに表示する画面を管理するスタックとして前記メモリの一部を使用し、設定ファイルを参照し、前記プログラムを実行することにより前記タッチパネルにコンテンツ画面を表示するプログラム実行手段と、前記タッチパネルに対する操作、または、前記端末装置に接続された検出機器による検出に応じて、実行すべきプログラムを前記プログラム実行手段に指示する起動管理手段と、を備え、前記設定ファイルは、前記プログラムの識別子と、当該プログラムの実行により生成されるコンテンツ画面が表示されるレイヤとの対応を記述しており、前記レイヤは、コンテンツ画面が切り替わる際に表示中のコンテンツ画面が前記スタックから破棄されない第１レイヤ、並びに、コンテンツ画面が切り替わる際に表示中のコンテンツ画面が前記スタックから破棄される第２レイヤおよび外部連携レイヤを含み、前記プログラム実行手段は、コンテンツ画面が切り替わる際、コンテンツ画面が第１レイヤに表示されている場合、表示中のコンテンツ画面を前記スタックから破棄することなく、切り替え先の別のコンテンツ画面を生成するプログラムの実行指示を前記起動管理手段に要求し、コンテンツ画面が第２レイヤまたは外部連携レイヤに表示されている場合、表示中のコンテンツ画面を前記スタックから破棄するとともに、切り替え先の別のコンテンツ画面を生成するプログラムの実行指示を前記起動管理手段に要求し、前記プログラム実行手段は、コンテンツ画面を前記外部連携レイヤに表示するプログラムを実行する場合には、更に外部機器に対する処理を実行する。
【００１０】
上記の端末装置は、タッチパネルと、メモリと、プログラム実行手段と、起動管理手段とを備える。プログラム実行手段は、タッチパネルに表示する画面を管理するスタックとしてメモリの一部を使用し、設定ファイルを参照し、プログラムを実行することによりタッチパネルにコンテンツ画面を表示する。起動管理手段は、タッチパネルに対する操作、または、端末装置に接続された検出機器による検出に応じて、実行すべきプログラムをプログラム実行手段に指示する。設定ファイルは、プログラムの識別子と、当該プログラムの実行により生成されるコンテンツ画面が表示されるレイヤとの対応を記述しており、レイヤは、コンテンツ画面が切り替わる際に表示中のコンテンツ画面がスタックから破棄されない第１レイヤ、並びに、コンテンツ画面が切り替わる際に表示中のコンテンツ画面がスタックから破棄される第２レイヤおよび外部連携レイヤを含む。プログラム実行手段は、コンテンツ画面が切り替わる際、コンテンツ画面が第１レイヤに表示されている場合、表示中のコンテンツ画面をスタックから破棄することなく、切り替え先の別のコンテンツ画面を生成するプログラムの実行指示を起動管理手段に要求し、コンテンツ画面が第２レイヤまたは外部連携レイヤに表示されている場合、表示中のコンテンツ画面をスタックから破棄するとともに、切り替え先の別のコンテンツ画面を生成するプログラムの実行指示を起動管理手段に要求する。また、プログラム実行手段は、コンテンツ画面を外部連携レイヤに表示するプログラムを実行する場合には、更に外部機器に対する処理を実行する。これにより、メモリを効率的に使用して複数のコンテンツ画面を表示することができるとともに、外部連携プログラムの実行により外部機器との連携処理が可能となる。
【００１１】
上記の端末装置の一態様では、前記プログラム実行手段は、コンテンツ画面を前記外部連携レイヤに表示するプログラムを実行する場合、前記外部機器に対する処理が終了したときに、前記外部連携レイヤに表示したコンテンツ画面を前記スタックから破棄する。
【００１２】
上記の端末装置の他の一態様では、前記プログラム実行手段は、前記外部機器に対する処理として、前記外部機器の動作を制御するためのデータを前記外部機器に送信する。好適な例では、前記検出機器は、物理式ボタン、センサ、ＰＣ、スマホ、タブレットなどである。
【００１３】
上記の端末装置の他の一態様では、前記プログラム実行手段は、前記タッチパネルに対する操作、または、前記端末装置に接続された検出機器による検出に応じて、複数の言語のコンテンツ画面を切り替えて表示する。これにより、コンテンツを複数の言語で表示することができる。ここで、表示中の特定の言語のコンテンツ画面が他のコンテンツ画面に切り替わる際、切り替え先のコンテンツ画面に前記特定の言語が用意されていない場合、前記プログラム実行手段は、予め決められた言語のコンテンツ画面を表示する。
【００１４】
上記の端末装置の他の一態様では、前記レイヤは第３レイヤを含み、前記設定ファイルは、コンテンツ画面を第３レイヤに表示するプログラムについては、当該プログラムの識別子に対応付けて、当該プログラムの起動条件および前記第３レイヤからの戻り先レイヤを指定する情報を記述しており、前記起動管理手段は、前記起動条件が成立したときに、前記コンテンツ画面を第３レイヤに表示するプログラムの実行を前記プログラム実行手段に指示し、前記プログラム実行手段は、前記第３レイヤに表示されたコンテンツ画面の表示を終了する操作がなされると、前記戻り先レイヤに表示されたコンテンツ画面が前記タッチパネルに表示されるように前記スタック内のコンテンツ画面を制御する。
【００１５】
好適な例では、上記の端末装置と、端末装置に接続された検出機器と備える什器を構成し、店舗などに設置することができる。
【図面の簡単な説明】
【００１６】
【図１】端末装置を用いたクラウドサービスシステムを説明する図である。
【図２】端末装置のハードウェア構成を説明する図である。
【図３】端末装置に実装されるソフトウェアの構成を説明する図である。
【図４】オペレーティングシステムが画面表示を制御する様子を説明する図である。
【図５】第１〜第３レイヤ、外部連携レイヤ、および、起動管理プログラムの関係を模式的に示す。
【図６】設定ファイルの記述例を示す。
【図７】第１レイヤに属するコンテンツ表示プログラムの動作を示す。
【図８】第２レイヤに属するコンテンツ表示プログラムの動作を示す。
【図９】第３レイヤに属するコンテンツ表示プログラムの動作を示す。
【図１０】外部連携レイヤに属する外部連携プログラムの動作を示す。
【図１１】第１、第２レイヤに属するコンテンツ表示プログラムを起動させる時の起動管理プログラムの動作を示す。
【図１２】第３レイヤに属するコンテンツ表示プログラムを起動させる時の起動管理プログラムの動作を示す。
【図１３】一つ前のコンテンツ画面に戻る操作が行われた時の起動管理プログラムの動作を示す。
【図１４】外部連携レイヤに属する外部連携プログラムを起動させる時の起動管理プログラムの動作を示す。
【図１５】コンテンツ表示プログラムが表示するコンテンツとして多言語のコンテンツを用意した例を示す。
【図１６】本発明を適用した什器の例を示す。
【図１７】本発明を適用した什器の他の例を示す。
【発明を実施するための形態】
【００１７】
以下、図面を参照しながら、本発明の実施の形態について説明する。
［全体構成］
図１は、本実施形態に係る端末装置１を用いたクラウドサービスシステムを説明する図である。図１は、端末装置１に加え、業務に用いる様々なコンテンツ３０を記憶しているサーバ３を図示している。なお、図１では本実施形態に係る端末装置１を、モバイル端末であるタブレットの形態で図示しているが、端末装置１の形態はこれには限られない。
【００１８】
図１に示すサーバ３は、複数の画面により構成されるコンテンツを記憶する。図１では、業務に用いるコンテンツとして、広告動画３０ａ、電子カタログ３０ｂ、電子アンケート３０ｃに加え、電子アンケート３０ｃに回答したユーザのみが閲覧可能な特典動画３０ｄを例示している。
【００１９】
端末装置１は、コンテンツ（ここでは、サーバ３からダウンロードしたコンテンツ、または、端末装置１が格納しているコンテンツになる）のコンテンツ画面をタッチパネル１ｄに表示するアプリケーション２を実装している。端末装置１を利用するユーザは、端末装置１に表示させるコンテンツ画面を切り替えながら、商談などの業務を行うことになるが、端末装置１に表示させるコンテンツ画面が切り替わると、コンテンツ画面の生成に用いられるメモリ使用量が増え、動作が遅くなるなど、アプリケーション２の動作に不具合が発生することがある。そこで、本実施形態の端末装置１には、端末装置１に表示させるコンテンツ画面が切り替わっても、メモリ使用量が必要以上に増加しない工夫を施している。
【００２０】
［ハードウェア構成］
まず、端末装置１のハードウェア構成について説明する。図２は、端末装置１のハードウェア構成を説明する図である。図２で図示しているように、端末装置１は、ハードウェア資源として、プロセッサ（ＣＰＵ）１ａ、メインメモリとなるＲＡＭ１ｂ、電気的に書き換え可能な不揮発性メモリであるＮＶＭ（Ｎｏｎｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ）１ｃ、表示と入力の機能を兼ね備えたデバイスであるタッチパネル１ｄ、移動体通信網を利用した通信を行うための通信ユニット１ｅ、および、インタフェース（Ｉ／Ｆ）１ｆを備える。なお、図２では、本発明の説明に必要なハードウェア資源のみを図示しており、端末装置１は、実際には近距離無線用の通信回路およびオーディオ関係の回路など、図２で図示した以外のハードウェア資源を備えることになる。
【００２１】
プロセッサ１ａは、端末装置１に実装されたコンピュータプログラムを実行する処理装置である。ＲＡＭ１ｂは、プロセッサ１ａがコンピュータプログラムを実行する時に使用する記憶装置である。ＮＶＭ１ｃは、二次記憶装置となるメモリで、アプリケーション２のプログラムコードなどを記憶している。タッチパネル１ｄは、コンテンツを表示するディスプレイ（例えば、液晶ディスプレイ）と、ディスプレイに表示された画面上を指で操作するタッチデバイスが組み合わされたデバイスである。
【００２２】
通信ユニット１ｅは、アプリケーション２がサーバ３からコンテンツをダウンロードするときに用いる通信回路になる。インタフェース１ｆは、ボタン４１およびセンサ４２に接続され、ボタン４１やセンサ４２との間でデータの授受を行う。ボタン４１は、例えば物理式ボタンであり、端末装置１に実装された特定のプログラムの実行を指示する際にユーザにより操作される。また、センサ４２は、例えば人感センサ、物体センサなどの各種のセンサであり、センサが設置された環境における特定の状況を検出する。ボタン４１及びセンサ４２は本発明の検出機器の一例である。なお、ボタン４１、センサ４２の代わりに又はそれらに加えて、他のＰＣ、スマホ、タブレットなどを検出機器として使用しても良い。
【００２３】
［ソフトウェア構成］
次に、端末装置１に実装されるソフトウェアの構成について説明する。図３は、端末装置１に実装されるソフトウェアの構成を説明する図である。図３に示したように、端末装置１には、Ａｐｐｌｅ社のｉＯＳ（登録商標）やＧｏｏｇｌｅ社のＡｎｄｒｏｉｄ（登録商標）などのオペレーティングシステム１０と、このオペレーティングシステム１０上で動作するアプリケーション２が実装される。
【００２４】
図４は、オペレーティングシステム１０が画面表示を制御する様子を説明する図である。端末装置１に実装されるオペレーティングシステム１０は、タッチパネル１ｄに出力された画面を後入れ先出しの形式で管理するスタック１０ａを有し、スタック１０ａの先頭になる画面がタッチパネル１ｄに出力されるように画面表示を制御する機能を有する。また、オペレーティングシステム１０は、アプリケーション２に公開しているＡＰＩとして、画面を生成するコンポーネントプログラムを呼び出すＡＰＩおよびウィンドウ（画面全体の表示枠を意味する）を生成するＡＰＩを有している。なお、スタック１０ａはオペレーティングシステム１０が扱うデータを保管するメモリ領域の一部としてＲＡＭ１ｂやＮＶＭ１ｃに確保される。なお、以下の説明で「コンテンツ画面」というときは、タッチパネル１ｄに表示されて操作者から見えているコンテンツ画面のことを意味する他に、スタック１０ａに一時保管されたコンテンツ画面を構成するデータをも意味するものとする。
【００２５】
この機能について、図４を参照して詳細に説明する。端末装置１に実装されるオペレーティングシステム１０は、アプリケーション２が最初に生成したコンテンツ画面Ａを、画面管理に用いるスタック１０ａに最初に追加（プッシュ）し、スタック１０ａの先頭になるコンテンツ画面Ａをタッチパネル１ｄに表示する（図４（ａ））。なお、オペレーティングシステム１０は、コンテンツ画面そのものをスタック１０ａに入れるのではなく、コンテンツ画面に割り当てたメモリ領域などをスタック１０ａに入れて、タッチパネル１ｄに出力した画面を管理する。
【００２６】
コンテンツ画面Ａを生成した後、アプリケーション２がコンテンツ画面Ｂを生成すると、オペレーティングシステム１０は、アプリケーション２が生成したコンテンツ画面Ｂをスタック１０ａに追加して（ステップＳ６０）、スタック１０ａの先頭になるコンテンツ画面Ｂをタッチパネル１ｄに表示する。これにより、コンテンツ画面Ａはコンテンツ画面Ｂのバックグラウンドで待機した状態になる（図４（ｂ））。
【００２７】
コンテンツ画面Ｂを生成した後、アプリケーション２が更にコンテンツ画面Ｃを生成すると、オペレーティングシステム１０は、アプリケーション２が生成したコンテンツ画面Ｃをスタック１０ａに追加して（ステップＳ６１）、スタック１０ａの先頭になるコンテンツ画面Ｃをタッチパネル１ｄに表示する。これにより、コンテンツ画面Ａ、Ｂはコンテンツ画面Ｃのバックグラウンドで待機した状態になる（図４（ｃ））。
【００２８】
また、アプリケーション２によって、スタック１０ａの先頭になるコンテンツ画面が破棄されると、オペレーティングシステム１０は、スタック１０ａにおいて一つ前のコンテンツ画面をタッチパネル１ｄに表示する。例えば、図４（ｃ）に示すようにコンテンツ画面Ｃがタッチパネル１ｄに表示されている状態で、スタック１０ａからコンテンツ画面Ｃが破棄されると（ステップＳ６２）、スタック１０ａの状態は図４（ｂ）の状態に戻り、オペレーティングシステム１０は、コンテンツ画面Ｂをタッチパネル１ｄに表示する。同様に、図４（ｂ）に示すようにコンテンツ画面Ｂがタッチパネル１ｄに表示されている状態で、スタック１０ａからコンテンツ画面Ｂが破棄されると（ステップＳ６３）、スタック１０ａの状態は図４（ａ）の状態に戻り、オペレーティングシステム１０は、コンテンツ画面Ａをタッチパネル１ｄに表示する。
【００２９】
このように、端末装置１に実装されるオペレーティングシステム１０は、アプリケーション２がコンテンツ画面を生成する毎に、アプリケーション２が生成したコンテンツ画面をスタックするため、アプリケーション２が生成したコンテンツ画面の数が増えると、メモリ使用量も増えてしまう。そこで、本実施形態に係るアプリケーション２には、アプリケーション２が生成したコンテンツ画面の数が増えても、メモリ使用量が増えない仕組みを設けている。
【００３０】
図３に図示したように、端末装置１に実装されるアプリケーション２は、コンテンツ表示プログラム２１と、外部連携プログラム２５と、設定ファイル２３と、起動管理プログラム２０を備える。コンテンツ表示プログラム２１は、タッチパネル１ｄに表示させるコンテンツ画面をＲＡＭ１ｂまたはＮＶＭ１ｃに生成する。外部連携プログラム２５は、タッチパネル１ｄに表示させるコンテンツ画面をＲＡＭ１ｂまたはＮＶＭ１ｃに生成するとともに、外部機器との連携処理を行う。設定ファイル２３は、コンテンツ表示プログラム２１および外部連携プログラム２５が用いるコンテンツと、コンテンツ表示プログラム２１および外部連携プログラム２５が生成するコンテンツ画面が属するレイヤをプログラム毎に定義している。起動管理プログラム２０は、設定ファイル２３で設定されたコンテンツ表示プログラム２１および外部連携プログラム２５のレイヤに基づいて、コンテンツ表示プログラム２１および外部連携プログラム２５の起動を管理する。なお、以下の説明では、「生成されるコンテンツ画面が第ｎレイヤに属するコンテンツ表示プログラム」の意味で、しばしば簡略に「第ｎレイヤに属するコンテンツ表示プログラム」との表現を用いる。
【００３１】
本実施形態において、コンテンツ表示プログラム２１が生成するコンテンツ画面は、第１レイヤ、第２レイヤおよび第３レイヤの３つのうちの何れかに属する、即ち、３つのうちのいずれかに表示されるものとする。ここで、「第１レイヤ」は、表示中のそのレイヤに属するコンテンツ画面が他のコンテンツ画面に切り替わる際、表示中のコンテンツ画面がスタック１０ａから破棄されないレイヤである。「第２レイヤ」は、表示中のそのレイヤに属するコンテンツ画面が他のコンテンツ画面に切り替わる際、表示中のコンテンツ画面がスタック１０ａから破棄されるレイヤである。「第３レイヤ」は、特殊用途のコンテンツ画面（例えば、スクリーンセーバ、管理画面、操作ガイドなど）が表示されるレイヤである。以後、「コンテンツ表示プログラム２１が生成するコンテンツ画面が属するレイヤ」という意味で「コンテンツ表示プログラム２１が属するレイヤ」と簡略に表現することがある。
【００３２】
また、外部連携プログラム２５が生成するコンテンツ画面は、外部連携レイヤに属する、即ち、外部連携レイヤに表示されるものとする。「外部連携レイヤ」は、外部連携プログラムの実行により外部機器に対する連携処理を行う際に、その処理の状態などを示すコンテンツ画面を表示するレイヤである。図５は、コンテンツ表示プログラム２１および外部連携プログラム２５を呼び出し、実体化した場合の第１〜第３レイヤ、外部連携レイヤ、および、起動管理プログラムの関係を模式的に示す。
【００３３】
設定ファイル２３は、端末装置１のＮＶＭ１ｃに格納されるテキスト形式のファイルであり、設定ファイル２３の内容によってアプリケーション２の実質的な振る舞いが定義される。設定ファイル２３には、アプリケーション２に組み込むコンテンツ表示プログラム２１および外部連携プログラム２５を任意に定義できるように、アプリケーション２に組み込まれたコンテンツ表示プログラム２１および外部連携プログラム２５の識別子が記述される。更には、アプリケーション２に組み込まれたコンテンツ表示プログラム２１および外部連携プログラム２５の識別子毎に、そのコンテンツ表示プログラム２１および外部連携プログラム２５が用いるコンテンツが格納されているパスと、識別子に対応するコンテンツ表示プログラム２１および外部連携プログラム２５が属するレイヤが記述されている。なお、コンテンツ表示プログラム２１および外部連携プログラム２５が用いるコンテンツのパスを設定ファイル２３に記述するのは、設定ファイル２３によって、コンテンツ表示プログラム２１および外部連携プログラム２５が用いるコンテンツを変更できるようにするためである。また、コンテンツ表示プログラム２１および外部連携プログラム２５が属するレイヤを設定ファイル２３に記述するのは、設定ファイル２３によって、レイヤに割り当てるコンテンツ表示プログラム２１および外部連携プログラム２５を変更できるようにするためである。
【００３４】
加えて、本実施形態では、設定ファイル２３によって、最初に起動するコンテンツ表示プログラム２１（以下、「初期起動プログラム」とも呼ぶ。）の識別子が定義されている。また、設定ファイル２３によって、特殊用途のコンテンツ画面を表示する時の振る舞いを定義できるように、特殊用途のコンテンツ画面を生成するコンテンツ表示プログラム２１の起動条件（例えば、無操作時間が１０分間続いた時、特殊用途のコンテンツ画面を表示する操作がなされた時など）と、特殊用途のコンテンツ画面が終了する時の振る舞いとして、第３レイヤからの戻り先レイヤとを定義している。
【００３５】
図６は、設定ファイル２３の具体的な記述例を示す。まず、「起動管理プログラムに関する情報」としては、コンテンツ表示プログラムおよび外部連携プログラムのＩＤ（識別子）のリストと、初期起動プログラムのＩＤと、プログラム起動履歴とが記述されている。プログラム起動履歴は、起動管理プログラムにより呼び出され、起動されたプログラムを時系列で記憶した履歴情報である。なお、タッチパネル１ｄに表示されているコンテンツ画面（即ち、スタック１０ａの先頭になるコンテンツ画面）が第１レイヤに属するコンテンツ画面となった場合、プログラム起動履歴の内容はリセットされる。
【００３６】
「第１レイヤに関連する情報」としては、第１レイヤに属するコンテンツ表示プログラムのＩＤ、そのコンテンツ表示プログラムが使用するコンテンツの格納場所（パス）、および、そのコンテンツ表示プログラムが呼び出し可能な他のコンテンツ表示プログラムのＩＤのリストが記述されている。同様に、「第２レイヤに関連する情報」としては、第２レイヤに属するコンテンツ表示プログラムのＩＤ、そのコンテンツ表示プログラムが使用するコンテンツの格納場所（パス）、および、そのコンテンツ表示プログラムが呼び出し可能な他のコンテンツ表示プログラムのＩＤのリストが記述されている。
【００３７】
「第３レイヤに関連する情報」としては、第３レイヤに属するコンテンツ表示プログラムのＩＤ、そのコンテンツ表示プログラムの起動条件、そのコンテンツ表示プログラムが使用するコンテンツの格納場所（パス）、および、そのコンテンツ表示プログラムが終了したときの戻り先レイヤ（直前のレイヤ、または、第１レイヤ）が記述されている。
【００３８】
「外部連携レイヤに関する情報」としては、外部連携レイヤに属する外部連携プログラムのＩＤ、その外部連携プログラムが使用するコンテンツの格納場所（パス）、および、その外部連携プログラムが終了したときの戻り先レイヤ（直前のレイヤ、または、第１レイヤ）が記述されている。
【００３９】
アプリケーション２に組み込まれるコンテンツ表示プログラム２１は、本発明に係るプログラム実行手段として機能するアプリケーション２のコンポーネントプログラムである。コンテンツ表示プログラム２１は、それぞれ異なるコンテンツに対応する。本実施形態において、サーバ３は、広告動画３０ａ、電子カタログ３０ｂ、電子アンケート３０ｃおよび特典動画３０ｄをコンテンツとして記憶している。よって、サーバ３からダウンロードした広告動画３０ａのコンテンツ画面を生成するコンテンツ表示プログラム２１ａ、サーバ３からダウンロードした電子カタログ３０ｂのコンテンツ画面を生成するコンテンツ表示プログラム２１ｂ、サーバ３からダウンロードした電子アンケート３０ｃのコンテンツ画面を生成するコンテンツ表示プログラム２１ｃ、および、サーバ３からダウンロードした特典動画３０ｄのコンテンツ画面を生成するコンテンツ表示プログラム２１ｄをアプリケーション２に組み込んでいる。更に、本実施形態では、アプリケーション２の基本画面を表示するコンテンツ表示プログラム２１として、コンテンツ画面を縮小したサムネイルを複数表示するメニュー画面を生成するコンテンツ表示プログラム２１ｅをアプリケーション２に組み込んでいる。
【００４０】
アプリケーション２に組み込まれる外部連携プログラム２５も、本発明に係るプログラム実行手段として機能するアプリケーション２のコンポーネントプログラムである。外部連携プログラム２５は、外部機器との連携処理を実行するとともに、その処理に関連する情報をコンテンツ画面としてタッチパネル１ｄに表示する。例えば、外部連携プログラム２５は、外部機器としてのＩｏＴ機器に対してメッセージを送信し、そのＩｏＴ機器のスイッチをオン／オフする、そのＩｏＴ機器から音を出力させる、そのＩｏＴ機器に設けられたＬＥＤを光らせるなどの処理を実行するものとすることができる。そのような連携処理を行う際、外部連携プログラム２５は、端末装置１のタッチパネル１ｄにそのような連携処理の実行中であることを示すメッセージなどを含むコンテンツ画面を表示し、連携処理が終了したときにはそのコンテンツ画面を自動的に削除する。なお、外部連携プログラムが生成し表示するコンテンツ画面を透過性の画面とし、そのコンテンツ画面を表示しても、それまでに表示されていたコンテンツ画面が見えるようにしてもよい。
【００４１】
［アプリケーションの動作］
次に、アプリケーション２の動作について説明する。
（コンテンツ表示プログラムの動作）
アプリケーション２に組み込まれるコンテンツ表示プログラム２１の基本的な動作は、ウィンドウを生成するＡＰＩを利用してコンテンツ画面を表示するウィンドウを生成した後、設定ファイル２３に記述されたパスにより指定される自分自身に対応するコンテンツをこのウィンドウ内に描画することで、コンテンツ画面をＲＡＭ１ｂまたはＮＶＭ１ｃに生成する動作になる。しかし、コンテンツ画面を生成する時の具体的な振る舞いは、設定ファイル２３で自分自身に定義されているレイヤに応じて異なる。そこで、それぞれのレイヤ（第１レイヤ、第２レイヤおよび第３レイヤ）毎に、コンテンツ表示プログラム２１の動作について説明する。
【００４２】
（１）第１レイヤに属するコンテンツ表示プログラムの動作
図７は、第１レイヤに属するコンテンツ表示プログラム２１の動作を説明する図である。第１レイヤに属するコンテンツ表示プログラム２１は、アプリケーション２が起動した時に起動管理プログラム２０から呼び出されて起動する（ステップＳ１０１）。なお、第１レイヤに属するコンテンツ表示プログラム２１が生成するコンテンツ画面は、アプリケーション２のホーム画面になるため、第１レイヤに属するコンテンツ表示プログラム２１を、コンテンツ画面としてメニュー画面を生成するコンテンツ表示プログラム２１ｅにしている。
【００４３】
第１レイヤに属するコンテンツ表示プログラム２１は、起動すると、まず設定ファイル２３を参照して自分自身が描画処理するコンテンツのパスを取得する。次に、第１レイヤに属するコンテンツ表示プログラム２１は、ウィンドウを生成するＡＰＩを利用して、コンテンツ画面を表示するウィンドウを生成した後、自分自身に対応するコンテンツをこのウィンドウ内に描画することで、コンテンツ画面をＲＡＭ１ｂまたはＮＶＭ１ｃに生成する（ステップＳ１０２）。次に、オペレーティングシステム１０の機能によって、第１レイヤに属するコンテンツ表示プログラム２１が生成したコンテンツ画面が最初にスタック１０ａに追加されて、スタック１０ａの状態は図４（ａ）の状態になり、このコンテンツ画面がタッチパネル１ｄに表示される。
【００４４】
第１レイヤに属するコンテンツ表示プログラム２１が生成したコンテンツ画面がタッチパネル１ｄに表示されている状態、すなわち、このコンテンツ画面のみがスタック１０ａにある状態で、タッチパネル１ｄを利用して、コンテンツ画面を切り替える操作（ここでは、メニュー画面から他のコンテンツ画面を選択する操作になる）がなされると、第１レイヤに属するコンテンツ表示プログラム２１は、設定ファイル２３を参照して、自分自身が属するレイヤ（ここでは、第１レイヤになる）を確認し（ステップＳ１０３）、第１レイヤに応じた処理として、自分自身が生成したコンテンツ画面をスタック１０ａから破棄することなく、切り替え先となるコンテンツ画面を生成するコンテンツ表示プログラム２１の呼び出しを起動管理プログラム２０に要求する（ステップＳ１０４）。こうして、図７の手順は終了する。
【００４５】
上述した振る舞いによれば、第１レイヤに属するコンテンツ表示プログラム２１は、コンテンツの画面が切り替わる際に、自分自身が生成したコンテンツ画面をスタック１０ａから破棄しないので、第１レイヤのコンテンツ画面は、図４（ｂ）のように、切り替わったコンテンツ画面のバックグラウンドで待機している状態になる。
【００４６】
（２）第２レイヤに属するコンテンツ表示プログラムの動作
図８は、第２レイヤに属するコンテンツ表示プログラム２１の動作を説明する図である。第２レイヤに属するコンテンツ表示プログラム２１は、第１レイヤに属するコンテンツ表示プログラム２１、または、第２レイヤに属する他のコンテンツ表示プログラム２１の呼び出し要求に応じて起動管理プログラム２０から呼び出されることで起動する（ステップＳ１１１）。
【００４７】
第２レイヤに属するコンテンツ表示プログラム２１は、設定ファイル２３を利用して、自分自身が描写処理するコンテンツのパスを取得した後、ウィンドウを生成するＡＰＩを利用して、コンテンツ画面を表示するウィンドウを生成する。次に、第２レイヤに属するコンテンツ表示プログラム２１は、自分自身に対応するコンテンツをこのウィンドウ内に描画することで、コンテンツ画面をＲＡＭ１ｂまたはＮＶＭ１ｃに生成する。そして、オペレーティングシステム１０の機能によって、第２レイヤに属するコンテンツ表示プログラム２１が生成したコンテンツ画面がスタック１０ａの先頭に追加されて、スタック１０ａの状態は図４（ｂ）の状態になり、このコンテンツ画面がタッチパネル１ｄに表示される（ステップＳ１１２）。
【００４８】
第２レイヤのコンテンツ画面がタッチパネル１ｄに表示されている状態で、タッチパネル１ｄを利用して、コンテンツ画面を切り替える操作（例えば、他のコンテンツ画面を呼び出すハイパーリンクをタップする操作になる）がなされると、第２レイヤに属するコンテンツ表示プログラム２１は、設定ファイル２３を参照して、自分自身が属するレイヤ（ここでは、第２レイヤになる）を確認する（ステップＳ１１３）。次に、第２レイヤに属するコンテンツ表示プログラム２１は、第２レイヤに応じた処理として、ウィンドウを破棄するＡＰＩを利用して、自分自身が生成したコンテンツ画面をスタック１０ａから破棄してから（ステップＳ１１４）、切り替え先となるコンテンツ画面を生成するコンテンツ表示プログラム２１の呼び出しを起動管理プログラム２０に要求する（ステップＳ１１５）。こうして、図８の手順は終了する。なお、他に不都合な結果が生じなければ、ステップＳ１１５の処理をステップＳ１１４の処理より先に行ってもかまわない。あるいは、ＯＳ・ＡＰＩの仕様により、ステップＳ１１４の処理をステップＳ１１５の後にしなければならない場合もあり得る。
【００４９】
第２レイヤに属するコンテンツ表示プログラム２１が生成したコンテンツ画面がタッチパネル１ｄに表示されている状態で、第１レイヤに属するコンテンツ表示プログラム２１が呼び出された場合、第２レイヤのコンテンツ画面はスタック１０ａから破棄されるので、スタック１０ａの状態は図４（ａ）になり、第２レイヤのコンテンツ画面のバックグラウンドで待機していた第１レイヤのコンテンツ画面がタッチパネル１ｄに表示されることになる。また、第２レイヤのコンテンツ画面がタッチパネル１ｄに表示されている状態で、第２レイヤに属する他のコンテンツ表示プログラム２１が呼び出されても、呼び出し元になったコンテンツ表示プログラム２１が生成したコンテンツ画面はスタック１０ａから破棄されるので、第２レイヤに係る複数のコンテンツ画面がスタック１０ａにスタックされることはなく、ＲＡＭ１ｂまたはＮＶＭ１ｃのメモリ使用量が必要以上に増加することはなくなる。
【００５０】
（３）第３レイヤに属するコンテンツ表示プログラムの動作
図９は、第３レイヤに属するコンテンツ表示プログラム２１の動作を説明する図である。第３レイヤに属するコンテンツ表示プログラム２１は、設定ファイル２３で定義されている起動条件が成立したときに、起動管理プログラム２０から呼び出されることで起動する（ステップＳ１２１）。
【００５１】
第３レイヤに属するコンテンツ表示プログラム２１は、設定ファイル２３を利用して、自分自身が用いるコンテンツのパスを取得した後、ウィンドウを生成するＡＰＩを利用して、コンテンツ画面を表示するウィンドウを生成する。次に、第３レイヤに属するコンテンツ表示プログラム２１は、自分自身に対応するコンテンツをこのウィンドウ内に描画することで、コンテンツ画面をＲＡＭ１ｂまたはＮＶＭ１ｃに生成する。そして、オペレーティングシステム１０の機能によって、第３レイヤに属するコンテンツ表示プログラム２１が生成したコンテンツ画面がスタック１０ａの先頭に追加されて、このコンテンツ画面がタッチパネル１ｄに表示される（ステップＳ１２２）。なお、設定ファイル２３で定義された起動条件が成立したときに、第１レイヤに属するコンテンツ表示プログラム２１が生成したコンテンツ画面がタッチパネル１ｄに表示されている場合には、第１レイヤのコンテンツ画面のみが第３レイヤのコンテンツ画面（特殊用途のコンテンツ画面になる）のバックグラウンドで待機している状態になる。また、設定ファイル２３で定義された起動条件が成立したときに、第２レイヤに属するコンテンツ表示プログラム２１が生成したコンテンツ画面がタッチパネル１ｄに表示されている場合には、第１、第２レイヤのコンテンツ画面が第３レイヤのコンテンツ画面（特殊用途のコンテンツ画面になる）のバックグラウンドで待機している状態になる。
【００５２】
タッチパネル１ｄを利用したコンテンツの切り替え操作として、第３レイヤのコンテンツ画面、すなわち、特殊用途のコンテンツ画面の表示を終了させる操作がなされると、第３レイヤに属するコンテンツ表示プログラム２１は、設定ファイル２３を参照して、自分自身が属するレイヤ（ここでは、第３レイヤになる）を確認し（ステップＳ１２３）、第３レイヤに応じた処理として、まず、ウィンドウを破棄するＡＰＩを利用して、自分自身が生成したコンテンツ画面をスタック１０ａから破棄する（ステップＳ１２４）。次に、第３レイヤに属するコンテンツ表示プログラム２１は、第３レイヤに応じた処理として、設定ファイルを参照して、第３レイヤからの戻り先レイヤを取得する（ステップＳ１２５）。
【００５３】
第３レイヤに属するコンテンツ表示プログラム２１は、第３レイヤからの戻り先レイヤによって処理を分岐する（ステップＳ１２６）。第３レイヤからの戻り先レイヤが、第３レイヤに属するコンテンツ表示プログラム２１が起動する直前のレイヤの場合、第３レイヤに属するコンテンツ表示プログラム２１は、自分自身（即ち、第３レイヤに属するコンテンツ表示プログラム２１）の終了を起動管理プログラム２０に通知する（ステップＳ１２８）。そして、図９の手順は終了する。一方、第３レイヤからの戻り先レイヤが第１レイヤであり、かつ、第２レイヤのコンテンツ画面がスタック１０ａにある場合、第３レイヤに属するコンテンツ表示プログラム２１は、ウィンドウを破棄するＡＰＩを利用して第２レイヤのコンテンツ画面をスタック１０ａから破棄してから（ステップＳ１２７）、自分自身（即ち、第３レイヤに属するコンテンツ表示プログラム２１）の終了を起動管理プログラム２０に通知する（ステップＳ１２８）。そして、図９の手順は終了する。
【００５４】
第３レイヤに属するコンテンツ表示プログラム２１が起動した時に、スタック１０ａの先頭になっているコンテンツ画面のレイヤが第１レイヤの場合、第３レイヤに属するコンテンツ表示プログラム２１が起動することで、図４（ｂ）のように、第１レイヤのコンテンツ画面は第３レイヤのコンテンツ画面のバックグラウンドで待機した状態になる。このケースでは、第３レイヤからの戻り先レイヤに係わらず、第３レイヤのコンテンツ画面がスタック１０ａから破棄されることで、第１レイヤのコンテンツ画面がタッチパネル１ｄに表示される。また、第３レイヤに属するコンテンツ表示プログラム２１が起動した時に、スタック１０ａの先頭になっているコンテンツ画面のレイヤが第２レイヤの場合、第３レイヤに属するコンテンツ表示プログラム２１が起動することで、図４（ｃ）のように、第１、第２レイヤのコンテンツ画面が第３レイヤのコンテンツ画面のバックグラウンドで待機した状態になる。このケースでは、第３レイヤからの戻り先レイヤが直前の画面の場合には、第３レイヤのコンテンツ画面が破棄されることで、図４（ｂ）のように、第２レイヤのコンテンツ画面がタッチパネル１ｄに表示される。一方、第３レイヤからの戻り先レイヤが第１レイヤの場合、第３レイヤに属するコンテンツ表示プログラム２１は、第２、３レイヤのコンテンツ画面をスタック１０ａから破棄するので、図４（ａ）のように、第１レイヤのコンテンツ画面がタッチパネル１ｄに表示される。
【００５５】
（外部連携プログラムの動作）
図１０は、外部連携レイヤに属する外部連携プログラム２５の動作を説明する図である。外部連携プログラム２５は、第１レイヤまたは第２レイヤに属するコンテンツ表示プログラム２１の呼び出し要求に応じた起動管理プログラム２０から呼び出されることで起動する（ステップＳ１３１）。外部連携プログラム２５は、設定ファイル２３を利用して、自分自身が用いるコンテンツのパスを取得した後、ウィンドウを生成するＡＰＩを利用して、コンテンツ画面を表示するウィンドウを生成する。次に、外部連携プログラム２５は、自分自身に対応するコンテンツをこのウィンドウ内に描画することで、コンテンツ画面をＲＡＭ１ｂまたはＮＶＭ１ｃに生成する。そして、オペレーティングシステム１０の機能によって、外部連携プログラム２５が生成したコンテンツ画面がスタック１０ａの先頭に追加されて、このコンテンツ画面がタッチパネル１ｄに表示される（ステップＳ１３２）。
【００５６】
なお、外部連携プログラム２５が起動したときに、第１レイヤに属するコンテンツ表示プログラム２１が生成したコンテンツ画面がタッチパネル１ｄに表示されている場合には、第１レイヤのコンテンツ画面のみが外部連携レイヤのコンテンツ画面のバックグラウンドで待機している状態になる。また、外部連携プログラム２５が起動したときに、第２レイヤに属するコンテンツ表示プログラム２１が生成したコンテンツ画面がタッチパネル１ｄに表示されている場合には、第１、第２レイヤのコンテンツ画面が外部連携レイヤのコンテンツ画面のバックグラウンドで待機している状態になる。
【００５７】
次に、外部連携プログラム２５は、予め決められた外部機器との連携処理を実行する（ステップＳ１３３）。例えば、外部連携プログラム２５は、外部のＩｏＴ機器に対するメッセージ送信を行い、ＩｏＴ機器を制御する。そして、外部機器との連携処理が終了すると、外部連携プログラム２５は、設定ファイル２３を参照して、自分自身が属するレイヤ（ここでは、外部連携レイヤになる）を確認し（ステップＳ１３４）、外部連携レイヤに応じた処理として、まず、ウィンドウを破棄するＡＰＩを利用して、自分自身が生成したコンテンツ画面をスタック１０ａから破棄する（ステップＳ１３５）。次に、外部連携プログラム２５は、外部連携レイヤに応じた処理として、設定ファイルを参照して外部連携レイヤからの戻り先レイヤを取得する（ステップＳ１３６）。
【００５８】
外部連携プログラム２５は、外部連携レイヤからの戻り先レイヤによって処理を分岐する（ステップＳ１３７）。外部連携レイヤからの戻り先レイヤが、外部連携プログラム２５が起動する直前のレイヤの場合、外部連携プログラム２５は、自分自身（即ち、外部連携プログラム２５）の終了を起動管理プログラム２０に通知する（ステップＳ１３９）。そして、図１０の手順は終了する。一方、外部連携レイヤからの戻り先レイヤが第１レイヤであり、かつ、第２レイヤのコンテンツ画面がスタック１０ａにある場合、外部連携プログラム２５は、ウィンドウを破棄するＡＰＩを利用して第２レイヤのコンテンツ画面をスタック１０ａから破棄してから（ステップＳ１３８）、自分自身（即ち、外部連携プログラム２５）の終了を起動管理プログラム２０に通知する（ステップＳ１３９）。そして、図１０の手順は終了する。なお、外部連携プログラム２５が、短時間の動作を処理するプログラムである場合は、コンテンツ画面を切り替える操作を省略したほうが操作性が良いため、ステップＳ１３５で手順を終了してもよい。
【００５９】
外部連携プログラム２５が起動した時に、スタック１０ａの先頭になっているコンテンツ画面のレイヤが第１レイヤの場合、外部連携プログラム２５が起動することで、図４（ｂ）のように、第１レイヤのコンテンツ画面は外部連携レイヤのコンテンツ画面のバックグラウンドで待機した状態になる。このケースでは、外部連携レイヤからの戻り先レイヤに係わらず、外部連携レイヤのコンテンツ画面がスタック１０ａから破棄されることで、第１レイヤのコンテンツ画面がタッチパネル１ｄに表示される。また、外部連携プログラム２５が起動した時に、スタック１０ａの先頭になっているコンテンツ画面のレイヤが第２レイヤの場合、外部連携プログラム２５が起動することで、図４（ｃ）のように、第１、第２レイヤのコンテンツ画面が外部連携レイヤのコンテンツ画面のバックグラウンドで待機した状態になる。このケースでは、外部連携レイヤからの戻り先レイヤが直前のレイヤである場合には、外部連携レイヤのコンテンツ画面が破棄されることで、図４（ｂ）のように、第２レイヤのコンテンツ画面がタッチパネル１ｄに表示される。一方、外部連携レイヤからの戻り先レイヤが第１レイヤの場合、外部連携プログラム２５は、第２、３レイヤのコンテンツ画面をスタック１０ａから破棄するので、図４（ａ）のように、第１レイヤのコンテンツ画面がタッチパネル１ｄに表示される。
【００６０】
（起動管理プログラムの動作）
次に、起動管理プログラム２０の動作について説明する。端末装置１に実装された起動管理プログラム２０は、本発明に係る起動管理手段として機能するアプリケーション２のコンポーネントプログラムであり、設定ファイル２３で設定されたコンテンツ表示プログラム２１および外部連携プログラム２５のレイヤに基づいて、コンテンツ表示プログラム２１および外部連携プログラム２５の起動を管理する。なお、起動管理プログラム２０は、画面を生成するコンポーネントプログラムを呼び出すＡＰＩを利用して、コンテンツ表示プログラム２１および外部連携プログラム２５を起動させる。
【００６１】
図１１は、第１、第２レイヤに属するコンテンツ表示プログラム２１を起動させる時の起動管理プログラム２０の動作を説明する図である。起動管理プログラム２０は、アプリケーション２が起動すると、設定ファイル２３を参照し、画面を生成するコンポーネントプログラムを呼び出すＡＰＩを利用して、第１レイヤに属するコンテンツ表示プログラム２１を最初に起動させる（ステップＳ１４１）。その後に、スタック１０ａの先頭になっているコンテンツ画面を生成したコンテンツ表示プログラム２１から、他のコンテンツ表示プログラム２１の呼び出し要求を受けると（ステップＳ１４２）、起動管理プログラム２０は、設定ファイル２３を利用して、呼び出し先のコンテンツ表示プログラム２１が属するレイヤを特定し（ステップＳ１４３）、特定したレイヤによって処理を分岐させる（ステップＳ１４４）。
【００６２】
特定したレイヤが第１レイヤの場合、起動管理プログラム２０は、呼び出し先のコンテンツ表示プログラム２１（ここでは、第１レイヤに属するコンテンツ表示プログラム２１になる）を起動させることなく、図１１の手順を終了する。一方、特定したレイヤが第２レイヤの場合、起動管理プログラム２０は、画面を生成するコンポーネントプログラムを呼び出すＡＰＩを利用して、呼び出し先のコンテンツ表示プログラム２１（ここでは、第２レイヤに属するコンテンツ表示プログラム２１のいずれか）を起動させて（ステップＳ１４５）、図１１の手順を終了する。なお、ステップＳ１４２〜Ｓ１４４の処理は、アプリケーション２が終了するまで繰り返し実行されることになる。
【００６３】
図１２は、第３レイヤに属するコンテンツ表示プログラム２１を起動させる時の起動管理プログラム２０の動作を説明する図である。起動管理プログラム２０は、設定ファイル２３で定義された第３レイヤのコンテンツ表示プログラム２１の起動条件が成立すると、画面を生成するコンポーネントプログラムを呼び出すＡＰＩを利用して、第３レイヤに属するコンテンツ表示プログラム２１を起動させ、第３レイヤに属するコンテンツ表示プログラム２１が生成したコンテンツ画面をタッチパネル１ｄに表示させる処理を行う（ステップＳ１５１）。その後に、第３レイヤに属するコンテンツ表示プログラム２１から終了が通知されると（ステップＳ１５２）、この手順は終了する。
【００６４】
また、本実施形態に係るコンテンツ表示プログラム２１は、表示させるコンテンツ画面の中に一つ前のコンテンツ画面に戻る操作を行うためのユーザインターフェースを含めて表示し、このユーザインターフェースを利用して、一つ前のコンテンツ画面に戻る操作がなされたことを、起動管理プログラム２０に通知する機能を備えてもよい。
【００６５】
一つ前のコンテンツ画面をタッチパネル１ｄに表示することができるように、本実施形態に係る起動管理プログラム２０は、第２レイヤに属するコンテンツ表示プログラム２１を起動させた履歴を記述したプログラム起動履歴を設定ファイル２３内に保持している。起動管理プログラム２０は、図１１のステップＳ１４３において、呼び出し先のコンテンツ表示プログラム２１のレイヤが第２レイヤの場合、呼び出し先のコンテンツ表示プログラム２１の起動履歴（コンテンツ表示プログラム２１の識別子や復元パラメータなど）をプログラム起動履歴に追加し、呼び出し先のコンテンツ表示プログラム２１のレイヤが第１レイヤの場合、プログラム起動履歴の内容を初期化する。
【００６６】
図１３は、一つ前のコンテンツ画面に戻る操作が行われた時の起動管理プログラム２０の動作を説明する図である。起動管理プログラム２０が有するユーザインターフェースを利用して、一つ前のコンテンツ画面に戻る操作が行われると、起動管理プログラム２０は、スタック１０ａの先頭になっているコンテンツ画面が対応するレイヤを判断する（ステップＳ１６１）。起動管理プログラム２０は、このレイヤが第１レイヤの場合、この手順を終了し、このレイヤが第２レイヤの場合、スタック１０ａの先頭になるコンテンツ画面を破棄する処理を行うことで、この時点でタッチパネル１ｄに表示されている第２レイヤのコンテンツ画面をスタック１０ａから破棄する（ステップＳ１６２）。次に、起動管理プログラム２０は、プログラム起動履歴が初期状態であるか否かにより、一つ前のコンテンツ画面が対応するレイヤが第２レイヤであるか判断する（ステップＳ１６３）。起動管理プログラム２０は、このレイヤが第１レイヤの場合、この手順を終了し、このレイヤが第２レイヤの場合、すなわち、プログラム起動履歴がある場合、起動管理プログラム２０は、プログラム起動履歴に記述されている一つ前の起動履歴を利用して、一つ前に表示されていた第２レイヤのコンテンツ画面に対応するコンテンツ表示プログラム２１を起動させ、一つ前に表示されていた第２レイヤのコンテンツ画面をタッチパネル１ｄに表示して（ステップＳ１６４）、この手順を終了する。
【００６７】
図１４は、外部連携プログラム２５を起動させる時の起動管理プログラム２０の動作を説明する図である。起動管理プログラム２０は、スタック１０ａの先頭になっているコンテンツ画面を生成したコンテンツ表示プログラム２１から外部連携プログラム２５の呼び出し要求を受けると、画面を生成するコンポーネントプログラムを呼び出すＡＰＩを利用して、外部連携プログラム２５を起動させ、外部連携プログラム２５が生成したコンテンツ画面をタッチパネル１ｄに表示させる処理を行う（ステップＳ１７１）。その後、外部連携プログラム２５が外部機器との連携処理を完了し、外部連携プログラム２５から終了が通知されると（ステップＳ１７２）、この手順は終了する。
【００６８】
［変形例］
以上、本発明の好適な実施形態について説明したが、本発明は上述した実施形態に限定されない。
（変形例１）
上記の実施形態では、レイヤの種類を第１〜第３レイヤおよび外部連携レイヤとしているが、本発明の他の実施形態では、レイヤの種類を第１レイヤ、第２レイヤおよび外部連携レイヤのみとしてもよい。この実施形態では、コンテンツ表示プログラム２１が生成するコンテンツ画面は、第１レイヤ、第２レイヤ、外部連携レイヤの何れかに属する。また設定ファイル２３には、第３レイヤに関連する情報（例えば、第３レイヤに属するコンテンツ表示プログラムの識別子とその起動条件、第３レイヤからの戻り先レイヤなど）は定義されなくてよい。 
【００６９】
（変形例２：多言語の処理）
上記の実施形態では、タッチパネル１ｄに日本語のコンテンツ画面を表示しているが、多言語のコンテンツ画面を表示することとしてもよい。図１５は、コンテンツ表示プログラムが表示するコンテンツとして、多言語のコンテンツを用意した例を示す。いま、図示のように、コンテンツ表示プログラムＡが表示するコンテンツ１、２と、コンテンツ表示プログラムＢが表示するコンテンツ３が用意されているものとする。
【００７０】
（Ａ）言語をコンテンツ表示中に切り替える場合
この場合、レイヤ切り替え機能を利用し、同じレイヤ内でコンテンツの表示を切り替える。この際、切り替え処理中にはレイヤが２枚重なることとなる。例えば、日本語コンテンツから英語コンテンツへ切り替える場合、第１レイヤの日本語コンテンツの上に第１レイヤの英語コンテンツの表示を行い、英語コンテンツの表示が完了したら、第１レイヤの日本語コンテンツを破棄する。この処理の間、レイヤ切り替え機能をロックすることにより、別のコンテンツ表示プログラムが起動されないようにする。
【００７１】
（Ｂ）表示するコンテンツに、選択した言語が用意されていない場合
通常、アプリケーションとしての初期表示は日本語であるが、英語に比べてマイナーな言語については、各コンテンツにその言語が用意されているとは限らない。そこで、初期表示の日本語のみでなく、外国語としてスタンダードな英語を代わりに表示するため、「代替言語」の設定機能を組み込み、代替言語を英語に設定しておく。
【００７２】
いま、図１５の例において、コンテンツ２を中国語で表示しているときに、コンテンツ１への切り替えを行う場合を考える。コンテンツ２で中国語が選択されている場合、コンテンツ２は中国語で表示される。この状態で、表示するコンテンツがコンテンツ２からコンテンツ１に切り替えられた場合、コンテンツ１には中国語が含まれていないため、コンテンツ１を中国語で表示することはできない。そこで、代替言語として設定されている英語でコンテンツ１を表示する。これにより、切り替え先のコンテンツに中国語が含まれていない場合でも、代替言語でコンテンツを表示することができる。
【００７３】
（Ｃ）複数レイヤにわたる言語切り替え
上記の実施形態では、図４を参照して説明したように、第２レイヤのコンテンツ画面が表示されているとき、第１レイヤのコンテンツ画面はバックグラウンドで待機している。よって、ユーザが第２レイヤのコンテンツの言語を切り替えた場合、第１レイヤのコンテンツの言語も同様に切り替える必要がある。ここで、第１レイヤのコンテンツの言語を切り替えるタイミングは２通り考えられる。１つの方法では、第２レイヤのコンテンツの言語を切り替えるのと同時に第１レイヤのコンテンツの言語を切り替える。この場合、ユーザには見えないが、言語切り替え後の第１レイヤのコンテンツ画面がバックグランドで待機することになる。第２の方法では、第２レイヤが破棄されたときに第１レイヤのコンテンツの言語を切り替える。即ち、第２レイヤのコンテンツの言語を切り替える時点では未だ第１レイヤのコンテンツの言語の切り替えは行わず、第２レイヤのコンテンツ画面が破棄されて第１レイヤのコンテンツ画面が表示されるときに、第１レイヤのコンテンツの言語を切り替える。いずれの方法によっても、第２レイヤのコンテンツの言語が切り替えられると、それに伴って第１レイヤのコンテンツの言語も自動的に切り替えられるので、レイヤ毎に使用する言語が異なるというような状況を回避することができる。
【００７４】
（変形例３：什器への適用）
上記の実施形態では、本発明の端末装置１をモバイル端末として構成しているが、そのかわりに、本発明の端末装置１を店舗その他に設置される什器に適用しても良い。図１６は、本発明の端末装置１を、商業施設や店舗の店頭などに設置される什器１００に適用した例を示す。什器１００は、表示部１０１と、テーブル１０２と、センサ部１０３とを備える。什器１００のハードウェア構成は基本的に図２に示す構成と同様であり、表示部１０１は図２におけるタッチパネル１ｄにより構成され、センサ部１０３は図２におけるセンサ４２として機能する。テーブル１０２には商品８０が配置され、表示部１０１には商品の名称や説明などが表示される。また、同じ商品８０のサンプル８１がセンサ部１０３に配置される。センサ部１０３は、マイクロスイッチなどを利用した持ち上げ反応式のセンサであり、サンプル８１が持ち上げられたことを検出すると、表示部１０１にコンテンツ画面を表示するコンテンツ表示プログラムの起動要求をプロセッサ１ａに送信する。
【００７５】
具体的に、サンプル８１がセンサ部１０３上に置かれている状態では、第１レイヤに属するコンテンツ表示プログラムが起動しており、商品名を大きく表示するコンテンツ画面（以下、「通常画面」と呼ぶ。）が表示部１０１に表示される。ここで、購買者がサンプル８１を手に取ると、センサ部１０３がそれを検出して第２レイヤに属するコンテンツ表示プログラムを起動させ、その商品の使用方法や特徴などを詳しく説明するコンテンツ画面（以下、「説明画面」と呼ぶ。）を表示部１０１に表示させる。購買者がサンプル８１をセンサ部１０３に戻すと、第２レイヤに属するコンテンツ表示プログラムが終了し、説明画面が破棄されて、表示部１０１の表示は通常画面に戻る。
【００７６】
図１７は、本発明の端末装置１を、美術館やショールームなどに設置される什器２００に適用した例を示す。什器２００は、展示された絵画９０の鑑賞時の解説を行うものであり、表示部２０１と、複数のボタン２０２とを備える。ボタン２０２は、絵画９０についての解説を表示するためのボタンであり、４つのボタン２０２には異なる内容の解説が割り当てられる。あるいは、同じ内容の解説を複数の言語で用意し、各ボタン２０２に割り当てても良い。什器２００のハードウェア構成は基本的に図２に示す構成と同様であり、表示部２０１は図２におけるタッチパネル１ｄにより構成され、ボタン２０２は図２におけるボタン４１として機能する。
【００７７】
通常状態、即ち、ボタン２０２が押されていない場合、第１レイヤに属するコンテンツ表示プログラムが起動しており、メニュー画面などのコンテンツ画面が表示部２０１に表示されている。メニュー画面は、各ボタン２０２がどのような解説に対応しているかを示す情報を含んでいても良い。鑑賞者がいずれかのボタン２０２を押すと、第２レイヤに属するコンテンツ表示プログラムを起動させ、そのボタン２０２に対応する解説を表示する画面（以下、「解説画面」と呼ぶ。）が表示部２０１に表示される。解説画面を所定時間表示した時点で第２レイヤに属するコンテンツ表示プログラムが終了し、解説画面が破棄されて、表示部２０１の表示はメニュー画面に戻る。なお、解説画面の表示とともに解説音声を再生し、解説音声の再生終了時に第２レイヤに属するコンテンツ表示プログラムを終了させて表示部２０１の表示をメニュー画面に戻すようにしてもよい。
【００７８】
上記の例以外に、本発明をイベント会場などに設置される懸賞品の抽選装置やゲーム機などに適用しても良い。この場合、抽選装置やゲーム機に設けられるスイッチに対する入力に応じてコンテンツ画面が切り替えられる。また、店舗に設置され、人感センサを備える什器に本発明を適用し、什器に接近する人を人感センサにより検知して表示するコンテンツ画面を切り替えても良い。
【符号の説明】
【００７９】
１    端末装置 
２  アプリケーション
３  サーバ
１０  オペレーティングシステム 
１０ａ  スタック 
２０  起動管理プログラム 
２１  コンテンツ表示プログラム
２３  設定ファイル
２５  外部連携プログラム
【図１】
2020087272.tif 000003
【図２】
2020087272.tif 000004
【図３】
2020087272.tif 000005
【図４】
2020087272.tif 000006
【図５】
2020087272.tif 000007
【図６】
2020087272.tif 000008
【図７】
2020087272.tif 000009
【図８】
2020087272.tif 000010
【図９】
2020087272.tif 000011
【図１０】
2020087272.tif 000012
【図１１】
2020087272.tif 000013
【図１２】
2020087272.tif 000014
【図１３】
2020087272.tif 000015
【図１４】
2020087272.tif 000016
【図１５】
2020087272.tif 000017
【図１６】
2020087272.tif 000018
【図１７】
2020087272.tif 000019