JPWO2005076125A1 - プログラム実行装置、プログラム実行方法、及びプログラム - Google Patents

プログラム実行装置、プログラム実行方法、及びプログラム Download PDF

Info

Publication number
JPWO2005076125A1
JPWO2005076125A1 JP2005517770A JP2005517770A JPWO2005076125A1 JP WO2005076125 A1 JPWO2005076125 A1 JP WO2005076125A1 JP 2005517770 A JP2005517770 A JP 2005517770A JP 2005517770 A JP2005517770 A JP 2005517770A JP WO2005076125 A1 JPWO2005076125 A1 JP WO2005076125A1
Authority
JP
Japan
Prior art keywords
application
store
program
unit
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2005517770A
Other languages
English (en)
Inventor
幸 堀井
幸 堀井
隆一 塩見
隆一 塩見
川上 義雄
義雄 川上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2005076125A1 publication Critical patent/JPWO2005076125A1/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/62Uninstallation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

ユーザが安心して利用可能なプログラム実行装置を提供する。 ダウンロードされたアプリケーションプログラム(アプリケーション)を保存するための領域を有する2次記憶部(510)と、複数のアプリケーションのそれぞれに割り当てられた優先度に基づいて、その各アプリケーションを2次記憶部(510)に保存しておくことが可能か否かを判別するストアアプリ決定部(2602)と、ストアアプリ決定部(2602)で保存不可能と判別されたアプリケーションの取り扱いについてのメッセージをユーザに通知する通知部(2605)と、ストアアプリ決定部(2602)で保存可能と判別されたダウンロード対象のアプリケーションを2次記憶部(510)に保存するストア部(2603)と、2次記憶部(510)に保存されたアプリケーションを実行するCPU(514)とを備える。

Description

本発明は、プログラムをダウンロードして実行するプログラム実行装置に関する。特に、ダウンロードしたアプリケーションプログラムの保存領域の容量に制限のあるデジタル放送受信機における、アプリケーションプログラムの保存領域管理技術に関する。
従来の、ダウンロードしたアプリケーションプログラム(以下、単にアプリケーションという)の保存領域の容量に制限のあるデジタル放送受信機における、アプリケーションの保存領域を管理する技術は、OCAP仕様(OCAP 1.0 Profile OC−SP−OCAP1.0−IF−I09−031121)に記載されている。OCAP仕様に準拠したデジタル放送受信機において、デジタル放送受信機は、アプリケーションの保存要求及び実行要求等を受信すると、その要求に従い、アプリケーションを保存して実行する。ここで、アプリケーションの保存要求はフラッシュROM等の2次記憶メモリーへの保存要求であるが、以降、アプリケーションを保存するための領域をストア領域、アプリケーションをストア領域へ保存することをストア、アプリケーションをストア領域へ保存するための優先度をストア優先度と呼ぶ。ここで、ストア優先度の定義はOCAP仕様において、storage priorityとして記述されている。
複数のアプリケーションのストア要求を受け、ストア領域が不足する場合、デジタル放送受信機は、個々のアプリケーションが持つストア優先度を比較し、ストア優先度の高いアプリケーションを優先的にストアする。ここで、いくつかのアプリケーションが既にストアされている場合には、ストア優先度の低いものから順に、ストア領域から削除される。但し、実行中のアプリケーションの動作を妨げてはならない。
ストア優先度が同じ場合、何れをストアするかは実装状況に依存する。このように、アプリケーションをストア領域から削除又はストアすることにより、常に、ストア要求を受けたアプリケーションの中からストア優先度の高いアプリケーションを優先的にストアすることが出来る。
本発明と同様に、アプリケーションのストア領域が不足する際にユーザへ通知を行う提案としては、特許文献1(特開平6−324812号公報「画像データの外部記憶書込方法」)に記載がある。
特許文献1では、ファイルの追加書き込み要求時に、保存領域の残り容量がファイルの容量以下であることを示す比較結果が得られた際に、ファイルの書き込みを拒否し、保存可能な残容量をユーザに通知する手段を提供する。
図1は、特許文献1に記載される画像データの外部記憶書込方法を示すフローチャートである。
外部記憶を分割した各区画の物理的な空き容量を求めて積算し(S5000)、1画像のデータ最大容量に区画の総数が乗ぜられた値を積算値から減じて外部記憶の残り容量を決定し(S5002)、追加書き込みが指示された画像データの容量が既知であればその値をファイル容量として決定し、また未知であれば画像の最大容量をファイル容量として決定する(S5003)。そのファイル容量と外部記憶の残り容量とを比較し(S5004)、残り容量がファイル容量未満であることを示す比較結果が得られたときに、画像データの書き込みを拒否し(S5006)、残り容量がファイル容量以上であることを示す比較結果が得られたときに、物理的な空き容量がファイル容量以上の区画を検索し(S5008)、検索結果で示される区画へ画像データを追加モードで書き込む(S5010)。
このように、特許文献1の技術により、ユーザは新規のアプリケーションがストア不可能であることを知ることができる。
また、本発明と同様に、アプリケーションのインストール作業時にユーザとインタラクションを行う提案としては、特許文献2(特開平10−21058号公報「アプリケーションモジュールのバージョン管理方法およびバージョン管理装置」)がある。
図2は、特許文献2に記載されるバージョン管理方法によるアプリケーションモジュールのバージョンアップの処理を示すフローチャートである。
特許文献2に記載されるバージョン管理方法では、既にインストールされている各モジュールのバージョン情報を保存するバージョン情報保存段階(S5103)と、これからインストールしようとする各モジュールのバージョンとバージョン情報保存段階に保存された既にインストールされている当該モジュールのバージョン情報を比較するバージョン比較段階(S5105)と、バージョン比較段階による比較結果に従ってインストール作業をする者にメッセージを発するメッセージ段階と、バージョン比較段階による比較結果に従ってモジュールの追加、削除及び変更のいずれかによるモジュールの書換えを行うか否かを各モジュールごとに行うモジュール書換段階(S5108)と、バージョン比較段階の結果及びメッセージ段階のいずれか一方または両方をユーザインターフェースに出力する出力段階とを含むことを特徴とするバージョン管理方法を提案している。さらに、インストール作業をする者が出力段階による出力結果を元にして各モジュールの追加、削除、変更及び無変更のいずれかひとつを選択する段階である選択段階をバージョン管理方法に追加したものも提案している。
このように、特許文献2では、同一アプリケーションのインストール時に、バージョン情報比較に基づき、アプリケーションを更新する。この際、ユーザにバージョン情報比較結果に従って、ユーザにメッセージを表示する手段、さらに、ユーザにアプリケーションの追加,削除、変更、無変更を選択させる手段を提供している。この技術により、ユーザは、新規にアプリケーションがインストールされることを知ることができる。また、古いバージョンに戻るインストールの場合には、そのインストール作業を制御することができる。
特開平6−324812号公報 特開平10−21058号公報
しかしながら、OCAP仕様に記載されるデジタル放送受信機(プログラム実行装置)においては、アプリケーションのストア要求時に、ストア領域が不足する場合、アプリケーションのストア優先度の比較結果に基づき、アプリケーションをストア領域から削除/ストアするが、これらアプリケーションのストア作業は自動的に行われるため、ユーザはアプリケーションのストア作業結果、例えば、どのアプリケーションがストア領域から削除又はストアされたかを知ることが出来ない。
そのため、ユーザは、アプリケーションのストア作業結果、例えば、アプリケーションがストア領域から削除されたことに起因するアプリケーションの挙動変化、例えば、アプリケーションの起動が遅くなる等を知ることが出来ず、ストレージから削除されたアプリケーションを起動する際に、そのアプリケーションの起動が遅いためにユーザを不安にさせる懸念があった。
特許文献1においては、既にストアされているアプリケーションを削除する手段を持たず、従って、アプリケーションがストレージから削除されたことをユーザに通知する手段を提供しない。また、特許文献1の技術ではストア優先度を利用していない。
また、特許文献2においては、同一のアプリケーションの機能置換えを扱っており、あるアプリケーションをインストールする際に、インストール先の容量不足が原因となり、その他のアプリケーションを削除することはない。従って、特許文献2は、新規にアプリケーションのストア要求を受けた際に、ストア優先度の比較に基づいて既にストアされているアプリケーションをストア領域から削除する手段、及び、既にストアされているアプリケーションがストアから削除されることをユーザに通知する手段を提供しない。
そこで、本発明は、かかる問題に鑑みてなされたものであって、ユーザが安心して利用可能なプログラム実行装置を提供することを目的とする。
上記目的を達成するために、本発明に係るプログラム実行装置は、プログラムをダウンロードして実行するプログラム実行装置であって、ダウンロードされたプログラムを保存するための領域を有する記憶手段と、ダウンロード対象のプログラムを含む複数のプログラムのそれぞれに割り当てられた優先度に基づいて、前記各プログラムを前記記憶手段に保存しておくことが可能か否かを判別する保存判別手段と、前記保存判別手段で保存不可能と判別されたプログラムの取り扱いについてのメッセージをユーザに通知する通知手段と、前記保存判別手段で保存可能と判別されたダウンロード対象のプログラムを前記記憶手段に保存する保存処理手段と、前記記憶手段に保存されたプログラムを実行する実行手段とを備えることを特徴とする。例えば、前記プログラム実行装置は、さらに、前記保存判別手段で保存不可能と判別された前記記憶手段に保存されているプログラムを削除する削除手段を備え、前記通知手段は、前記プログラムの削除についてのメッセージをユーザに通知し、前記保存処理手段は、前記プログラムが削除された記憶手段に対して、前記保存判別手段で保存可能と判別されたダウンロード対象のプログラムを保存する。また、前記削除手段は、前記通知手段によるユーザへの通知が行われたことを検知した後に、前記記憶手段に保存されているプログラムを削除する。
具体的に、記憶手段に既にプログラムが保存されている状況で、新規のプログラムをダウンロードしようとするときに、それらのプログラムを共に記憶手段に保存しておくことができない場合がある。このような場合、本発明に係るプログラム実行装置では、その新規のプログラムの優先度と、記憶手段にあるプログラムの優先度とが比較されて、記憶手段にあるプログラムの優先度の方が低いときには、そのプログラムが記憶手段から削除されるとともに、そのプログラムの削除についてのメッセージがユーザに通知されるため、プログラム実行装置の挙動がその削除に伴って変化しても、ユーザはその原因をメッセージによって知っているため、安心してプログラム実行装置を利用することができる。
また、前記通知手段は、前記記憶手段に保存されているプログラムが削除されることの確認をユーザに求める内容のメッセージを通知し、前記プログラム実行装置は、さらに、前記メッセージに対するユーザの確認結果を取得する確認取得手段を備え、前記削除手段は、前記確認取得手段によって確認結果が取得されたことを検知すると、前記記憶手段に保存されているプログラムを削除することを特徴としても良い。
これにより、ユーザによるメッセージの確認が得られた後にプログラムの削除が行われるため、ユーザがメッセージを確認することなくプログラムが削除されてしまうのを防いで、メッセージを確実にユーザに伝えることができる。
また、前記通知手段は、前記記憶手段に保存されているプログラムを削除しても良いか否かを問い合わせる内容のメッセージを通知し、前記プログラム実行装置は、さらに、前記メッセージに対するユーザの応答結果を取得する応答取得手段を備え、前記削除手段は、前記応答取得手段によって取得された応答結果が削除の許可を示すことを検知すると、前記記憶手段に保存されているプログラムを削除することを特徴としても良い。
これにより、ユーザによる削除の許可が得られた後にプログラムの削除が行われるため、ユーザが許可することなくプログラムが削除されてしまうのを防いで、ユーザによる使い勝手を向上することができる。
ここで、前記プログラム実行装置は、さらに、前記応答取得手段によって取得された応答結果が削除の拒否を示すことを検知すると、前記保存判別手段で保存不可能と判別された前記記憶手段に保存されているプログラムの優先度を高める優先度変更手段を備え、前記保存判別手段は、前記優先度変更手段で変更された優先度に基づいて、再び、前記各プログラムを前記記憶手段に保存しておくことが可能か否かを判別することを特徴としても良い。
これにより、ユーザがプログラムの削除を拒否したときには、そのプログラムの優先度が高く設定され、その優先度を用いて再び複数のプログラムの中から保存不可能なプログラムが選ばれるため、ユーザにとって不要なプログラムを削除することができ、ユーザによる使い勝手をさらに向上することができる。
また、前記保存判別手段は、さらに、保存不可能と判別された複数のプログラムが前記記憶手段に保存されているか否かを判別し、前記通知手段は、前記保存判別手段で保存されていると判別された複数のプログラムのうちの何れを削除するかの選択を促す内容のメッセージを通知し、前記プログラム実行装置は、さらに、前記メッセージに対するユーザの選択結果を取得する選択結果取得手段を備え、前記削除手段は、前記選択結果取得手段によって取得された選択結果の示すプログラムを削除することを特徴としても良い。
例えば、記憶手段の容量が少ないために2つのプログラムを共に記憶手段に保存しておくことはできないが、そのうち何れか1つだけは記憶手段に保存しておくことができるという状況において、その2つのプログラムの優先度が共に等しい場合には、保存判別手段は、それら2つのプログラムの優劣をつけることができず、それぞれ保存不可能と判別してしまう。このような場合においても、本発明では、上述のように、その2つのプログラムの何れを削除するかをユーザに選択させるため、ユーザにとって不要なプログラムのみを削除することができ、ユーザによる使い勝手をさらに向上することができる。
また、前記プログラム実行装置は、さらに、前記保存判別手段で保存不可能と判別されたプログラムが前記実行手段によって実行されているか否かを判別する実行判別手段を備え、前記通知手段は、前記実行判別手段で実行中と判別されたプログラムの削除についてのメッセージをユーザに通知することを特徴としても良い。例えば、前記削除手段は、前記実行判別手段で実行中と判別されたプログラムの実行を終了させて削除する。
これにより、実行中のプログラムを保存しておくことが不可能と判別されたときには、ユーザへの通知とともに、そのプログラムの実行が強制的に終了されてそのプログラムが削除されるため、ダウンロード対象のプログラムのための保存容量を記憶手段に早期に設定することができる。
ここで、前記通知手段は、前記実行判別手段で実行中と判別されたプログラムを削除しても良いか否かをユーザに問い合わせる内容のメッセージを通知し、前記プログラム実行装置は、さらに、前記メッセージに対するユーザの応答結果を取得する応答取得手段を備え、前記削除手段は、前記応答取得手段によって取得された応答結果が削除の許可を示すことを検知すると、前記実行中のプログラムを終了させて削除することを特徴としても良い。
これにより、ユーザは削除するか否かを選択することができ、ユーザによる使い勝手をさらに向上することができる。
また、前記削除手段は、前記実行判別手段による判別結果に基づいて前記実行中のプログラムの終了を検知すると、前記プログラムを削除することを特徴としても良い。
これにより、実行中のプログラムを保存しておくことが不可能と判別されたときには、ユーザへの通知とともに、その実行中のプログラムが終了するまで待ってそのプログラムが削除されるため、その実行中のプログラムを安心してユーザに利用させることができる。
また、前記通知手段は、前記保存判別手段で保存不可能と判別されたダウンロード対象のプログラムの保存についてのメッセージをユーザに通知することを特徴としても良い。例えば、前記保存判別手段は、さらに、保存不可能と判別された複数のプログラムが前記記憶手段に保存されているか否かを判別し、前記通知手段は、前記保存判別手段で保存されていないと判別された複数のプログラムのうちの何れを前記記憶手段に保存するかの選択を促す内容のメッセージを通知し、前記プログラム実行装置は、さらに、前記メッセージに対するユーザの選択結果を取得する選択結果取得手段を備え、前記削除手段は、前記選択結果取得手段によって取得された選択結果の示すプログラムを前記記憶手段に保存する。
例えば、記憶手段の容量が少ないためにダウンロード対象の2つのプログラムを共に記憶手段に保存することはできないが、そのうち何れか1つだけは記憶手段に保存することができるという状況において、その2つのプログラムの優先度が共に等しい場合には、保存判別手段は、それら2つのプログラムの優劣をつけることができず、それぞれ保存不可能と判別してしまう。このような場合においても、本発明では、上述のように、その2つのプログラムの何れを保存するかをユーザに選択させるため、ユーザにとって必要なプログラムのみを保存することができ、ユーザによる使い勝手をさらに向上することができる。
なお、本発明は、このようなプログラム実行装置として実現することができるだけでなく、そのプログラム実行装置が行う動作の方法やプログラム、そのプログラムを格納する記憶媒体としても実現することができる。
本発明のプログラム実行装置は、ユーザが安心して利用することができるという作用効果を奏する。
図1は、従来例の画像データの外部記憶書込方法を示すフローチャートである。 図2は、従来例のバージョン管理方法によるアプリケーションモジュールのバージョンアップの処理を示すフローチャートである。 図3は、本発明に係る実施の形態1のケーブルシステムのブロック図である。 図4は、本発明に係るケーブルシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。 図5は、本発明に係るケーブルシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。 図6は、本発明に係るケーブルシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。 図7は、本発明に係る端末装置(プログラム実行装置)のブロック図である。 図8は、本発明に係る端末装置の外観の一例を示す図である。 図9は、本発明に係るPODの内部構成を示すブロック図である。 図10は、本発明に係るPODが保存するプログラムの一構成例を示す構成図である。 図11は、MPEG規格で定義されているパケットの構成図である。 図12は、MPEG2トランスポートストリームの一例を示す図である。 図13は、入力部をフロントパネルで構成した場合の外観の一例を示す図である。 図14は、本発明に係る端末装置が保存するプログラムの構成を示す構成図である。 図15Aは、本発明に係るディスプレイの表示の一例を示す図である。 図15Bは、本発明に係るディスプレイの表示の一例を示す図である。 図16は、本発明に係る2次記憶部510が保存する情報の一例を示す図である。 図17Aは、本発明に係る1次記憶部511が保存する情報の一例を示す図である。 図17Bは、本発明に係る1次記憶部511が保存する情報の一例を示す図である。 図17Cは、本発明に係る1次記憶部511が保存する情報の一例を示す図である。 図18は、本発明に係るMPEG2規格が規定するPATの内容を表す模式図である。 図19は、本発明に係るMPEG2規格が規定するPMTの内容を表す模式図である。 図20は、本発明に係るOCAP仕様が規定するAITの内容を表す模式図 図21は、本発明に係るDSMCC方式で送信されるファイルシステムを表す模式図である。 図22は、本発明に係るXAITの内容を表す模式図である。 図23は、本発明に係る2次記憶部が保存する情報の一例を示す図である。 図24は、本発明に係るXAIT情報に記述されるアプリケーションがアプリケーションのストア領域にストアされている状態の一例を示す図である。 図25は、実施の形態1において、AMが、XAIT情報を受け取った時点から、VMへのアプリケーション起動指示を行うまでの動作の一例を示すフローチャートである。 図26は、実施の形態1において、XAIT情報に従いストア領域にストアされたアプリケーションの状態の一例を示す図である。 図27は、実施の形態1において、XAIT情報に従いストア領域にストアされたアプリケーションの状態の一例を示す図である。 図28は、実施の形態1におけるAMの構成を示す構成図である。 図29は、実施の形態1において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図30は、実施の形態1において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図31は、実施の形態1における削除通知の表示位置を説明するための説明図である。 図32は、実施の形態1において、AMがアプリケーションをストアする動作の一例をまとめたフローチャートである。 図33は、ディスプレイに表示される削除通知を示す図である。 図34Aは、実施の形態1において、XAIT情報取得前におけるストア領域にストアされたアプリケーションの状態の一例を示す図である。 図34Bは、実施の形態1において、XAIT情報取得後におけるストア領域にストアされたアプリケーションの状態の一例を示す図である。 図35Aは、実施の形態1において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図35Bは、実施の形態1において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図36は、ストアするアプリケーションの選択を促すメッセージの一例を示す図である。 図37は、実施の形態2におけるAMの構成を示す構成図である。 図38は、実施の形態2における削除通知の一例を示す図である。 図39は、実施の形態2において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図40は、実施の形態3における削除通知の一例を示す図である。 図41は、実施の形態3において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図42は、実施の形態3において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図43は、実施の形態4において、ヘッドエンドからXAIT情報を受け取ったAMによる、XAIT情報の扱い、及び、アプリケーションのストア処理動作の一例を示すフローチャートである。 図44は、実施の形態4において、モニターアプリケーションの動作の一例を示すフローチャートである。 図45は、実施の形態5におけるAMの構成を示す構成図である。 図46は、実施の形態5において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図47は、実施の形態5において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図48は、実施の形態5における問合せダイアログの一例を示す図である。 図49は、実施の形態5における問合せダイアログの他の例を示す図である。 図50は、実施の形態5における問合せダイアログのさらに他の例を示す図である。 図51は、実施の形態6において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図52は、実施の形態6において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図53は、本実施の形態6におけるダイアログの一例を示す図である。 図54は、実施の形態7において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図55は、実施の形態7におけるメッセージの一例を示す図である。 図56は、IP経由によるJavaプログラムのダウンロードに必要なXAIT情報の一例を示す図である。
符号の説明
1200 プログラム
1201 OS
1201a カーネル
1201b ライブラリ
1202 EPG
1202a 番組表示部
1202b 再生部
1203 VM
1204 サービスマネージャ
1205 ライブラリ
1205a JMF
1205b AM
1205c Tuner
1205d CA
1205e POD Lib
2601 ストア優先度比較部
2602 ストアアプリ決定部
2603 ストア部
2604 ストア削除部
2605 通知部
2606 ストア領域残容量取得部
2607 アプリケーション容量取得部
(実施の形態1)
本発明に係るケーブルテレビシステムの実施の形態を、図面を参照しながら説明する。
図3は、ケーブルシステムを構成する装置の関係を表したブロック図である。このケーブルシステムは、ヘッドエンド101と、3個のプログラム実行装置たる端末装置A111、端末装置B112、及び端末装置C113とで構成される。本実施の形態では、1つのヘッドエンドに対して3つの端末装置が結合されているが、任意の数の端末装置をヘッドエンドに結合しても、本発明は実施可能である。
ヘッドエンド101は、複数の端末装置に対して映像や音声、データ等の放送信号を送信するとともに、端末装置からのデータ送信を受信する。これを実現するため、ヘッドエンド101と端末装置A111、端末装置B112、及び端末装置C113間の伝送に用いられる周波数帯域は、分割して用いられる。
図4は、周波数帯域の分割の一例を示す図である。周波数帯域は、Out Of Band(略称OOB)とIn−Bandの2種類に大別される。5〜130MHzがOOBに割り当てられ、主にヘッドエンド101と端末装置A111、端末装置B112、及び端末装置C113間のデータのやり取りに使用される。130MHz〜864MHzはIn−Bandに割り当てられ、主として、映像や音声を含む放送チャンネルに使用される。OOBではQPSK変調方式が、In−BandはQAM64変調方式が使用される。変調方式技術については、本発明に関与が薄い公知技術であるので、詳細な説明は省略する。
図5は、OOB周波数帯域の更に詳細な使用の一例を示す図である。70MHz〜74MHzはヘッドエンド101からのデータ送信に使用され、全ての端末装置A111、端末装置B112、及び端末装置C113が、ヘッドエンド101から同じデータを受け取ることになる。一方、10.0MHz〜10.1MHzは端末装置A111からヘッドエンド101へのデータ送信に使用され、10.1MHz〜10.2MHzは端末装置B112からヘッドエンド101へのデータ送信に使用され、10.2MHz〜10.3MHzは端末装置C113からヘッドエンド101へのデータ送信に使用される。これにより、各端末装置固有のデータを各端末装置A111、端末装置B112、及び端末装置C113からヘッドエンド101に送信することができる。
図6は、In−Bandの周波数帯に対する使用の一例を示す図である。150〜156MHzと156〜162MHzはそれぞれテレビチャンネル1とテレビチャンネル2に割り当てられ、以降、6MHz間隔でテレビチャンネルが割り当てられている。310MHz以降は、1MHz単位でラジオチャンネルに割り当てられている。これらの各チャンネルはアナログ放送として使用してもデジタル放送として使用してもよい。デジタル放送の場合は、MPEG2仕様に基づいたトラスポートパケット形式で伝送され、音声や映像に加え、各種データ放送用データも送信することができる。
ヘッドエンド101は、これらの周波数帯域に適切な放送信号を送信するため、QPSK変調部やQAM変調部等を有する。また、端末装置からのデータを受信するため、QPSK復調器を有する。また、ヘッドエンド101は、これら変調部及び復調部に関連する様々な機器を有すると考えられる。しかし、本発明は主として端末装置に関わるので、詳細な説明は省略する。
端末装置A111、端末装置B112、及び端末装置C113は、ヘッドエンド101からの放送信号を受信し再生する。また、ヘッドエンド101に対して、各端末装置固有のデータを送信する。3つの、端末装置は本実施の形態では同じ構成を取る。
図7は、端末装置(プログラム実行装置)のハードウエア構成を表すブロック図である。上述の端末装置A111、端末装置B112、及び端末装置C113のそれぞれに相当する端末装置500は、QAM復調部501、QPSK復調部502、QPSK変調部503、TSデコーダ505、オーディオデコーダ506、スピーカ507、ビデオデコーダ508、ディスプレイ509、2次記憶部510、1次記憶部511、ROM512、入力部513、及びCPU514で構成される。また端末装置500には、POD504が着脱できる。
図8は、薄型テレビとして構成された端末装置500の外観の一例を示す図である。
薄型テレビの筐体601は、POD504を除く、端末装置500の構成要素をすべて内蔵している。
ディスプレイ602は、図7におけるディスプレイ509に相当する。
フロントパネル部603は複数のボタンで構成され、図7の入力部513に相当する。
信号入力端子604は、ヘッドエンド101との信号の送受信を行うためにケーブル線と接続する。また、信号入力端子604は、図7のQAM復調部501、QPSK復調部502、QPSK変調部503と接続されている。
PODカード605は、図7のPOD504に相当する。POD504は、図8のPODカード605のように、端末装置500とは独立した形態を取り、端末装置500に着脱可能となっている。POD504の詳細は後述する。
挿入スロット606にはPODカード605が挿入される。
図7に示すように、QAM復調部501は、CPU514から指定された周波数を含むチューニング情報で、ヘッドエンド101でQAM変調され送信されてきた信号を復調し、POD504に引き渡す。
QPSK復調部502は、CPU514から指定された周波数を含むチューニング情報で、ヘッドエンド101でQPSK変調され送信されてきた信号を復調し、POD504に引き渡す。
QPSK変調部503は、CPU514から指定された周波数を含む変調情報で、POD504から渡された信号をQPSK変調し、ヘッドエンド101に送信する。
POD504は、図8のように端末装置本体500から着脱可能な形態をしている。端末本体500とPOD504の接続インターフェースは、OpenCable(R)HOST−POD Interface Specification(OC−SP−HOSTPOD−IF−I12−030210)及び、この仕様書から参照されている仕様書で定義されている。ここでは、詳細は省略し、本発明に関する部分のみを解説する。
図9は、POD504の内部構成を表すブロック図である。POD504は、第1デスクランブラ部701、第2デスクランブラ部702、スクランブラ部703、第1記憶部704、第2記憶部705、及びCPU706で構成される。
第1デスクランブラ部701は、CPU706からの指示により、端末装置500のQAM復調部501から暗号化された信号を受け取り、復号を行う。そして、復号された信号を端末装置500のTSデコーダ505に送る。デコードに必要な鍵などの情報はCPU706から適宜与えられる。具体的には、ヘッドエンド101はいくつかの有料チャンネルを放送している。ユーザが、この有料チャンネルを購買すると、第1デスクランブラ部701は、CPU706から鍵等の必要な情報を受け取りデスクランブルすることで、ユーザは有料チャンネルを閲覧することができる。鍵などの必要な情報が与えられない場合は、第1デスクランブラ部701は、デスクランブルを行わず、受け取った信号をそのまま、TSデコーダ505に送る。
第2デスクランブラ部702は、CPU706からの指示により、端末装置500のQPSK復調部502から暗号化された信号を受け取り、復号を行う。そして、復号されたデータをCPU706に引き渡す。
スクランブラ部703は、CPU706からの指示により、CPU706から受け取ったデータを暗号化し、端末装置500のQPSK変調部503に送る。
第1記憶部704は、具体的にはRAM等の一次記憶メモリーで構成され、CPU706が処理を行う際、一時的にデータを保存するために使用される。
第2記憶部705は、具体的にはフラッシュROM等の2次記憶メモリーで構成され、CPU706が実行するプログラムを格納し、また、電源OFFになっても消去されては困るデータの保存に使用される。
CPU706は、第2記憶部705が記憶するプログラムを実行する。プログラムは複数のサブプログラムで構成される。
図10は、第2記憶部705が記憶するプログラムの一例を示す図である。図10では、プログラム800は、メインプログラム801、初期化サブプログラム802、ネットワークサブプログラム803、再生サブプログラム804、及びPPVサブプログラム805等の複数のサブプログラムで構成されている。
ここでPPVとはPay Per Viewの略であり、映画など特定の番組を有料で視聴できるようにするサービスである。ユーザが暗証番号を入力すると、購入したことがヘッドエンド101に通知され、スクランブルが解除され、視聴することが出来る。この視聴により、ユーザは後日、購入代金を支払う。
メインプログラム801は、CPU706が電源投入時に最初に起動するサブプログラムであり、他のサブプログラムの制御を行う。
初期化サブプログラム802は、電源投入時にメインプログラム801によって起動され、端末装置500との情報交換等を行い、初期化処理を行う。初期化処理の詳細は、OpenCable(R)HOST−POD Interface Specification(OC−SP−HOSTPOD−IF−I12−030210)及び、この仕様書から参照されている仕様書で定義されている。また、仕様書に定義されていない初期化処理も行う。ここでは、その一部を紹介する。電源が投入されると、初期化サブプログラム802は、第2記憶部705が記憶する第1の周波数を端末装置500のCPU514を通して、QPSK復調部502に通知する。QPSK復調部502は、与えられた第1の周波数でチューニングを行い、信号を第2デスクランブラ部702に送る。また、初期化サブプログラム802は、第2記憶部705が記憶する第1の鍵等の復号情報を第2デスクランブラ部702に与える。その結果、第2デスクランブラ部702は、デスクランブルを行い、初期化サブプログラム802を実行するCPU706に引き渡す。よって、初期化サブプログラム802は情報を受け取ることができる。本実施の形態では、初期化
サブプログラム802はネットワークサブプログラム803を通して情報を受け取ることとする。詳細は後述する。
また、初期化サブプログラム802は、第2記憶部705が記憶する第2の周波数を端末装置500のCPU514を通して、QPSK変調部503に通知する。初期化サブプログラム802は第2記憶部705が記憶する暗号化情報をスクランブラ部703に与える。初期化サブプログラム802が送信したい情報を、ネットワークサブプログラム803を介して、スクランブラ部703に与えると、スクランブラ部703は、与えられた暗号化情報を用いて、データを暗号化し、端末装置500のQPSK変調部503に与える。QPSK変調部503は、与えられた暗号化された情報を変調し、ヘッドエンド101に送信する。
この結果、初期化サブプログラム802は、端末装置500、第2デスクランブラ部702、スクランブラ部703、及びネットワークサブプログラム803を通して、ヘッドエンド101と双方向通信を行うことができる。
ネットワークサブプログラム803は、メインプログラム801、初期化サブプログラム802等の複数のサブプログラムから使用される、ヘッドエンド101との双方向通信を行うためのサブプログラムである。具体的には、ネットワークサブプログラム803を使用する他のサブプログラムに対して、TCP/IPによって、ヘッドエンド101と双方向通信を行っているように振舞う。TCP/IPは、複数の装置間で情報交換を行うためのプロトコルを規定した公知の技術であり、詳細な説明は省略する。ネットワークサブプログラム803は、電源投入時に初期化サブプログラム802に起動されると、予め第2記憶部705が記憶しているPOD504を識別する識別子であるMACアドレス(Media Access Controlアドレスの略)を、端末装置500を通してヘッドエンド101に通知し、IPアドレスの取得を要求する。ヘッドエンド101は、端末装置500を介してPOD504にIPアドレスを通知し、ネットワークサブプログラム803は、IPアドレスを第1記憶部704に記憶する。以降、ヘッドエンド101とPOD504は、このIPアドレスを、POD504の識別子として使用し、通信を行う。
再生サブプログラム804は、第2記憶部705が記憶する第2の鍵等の復号情報や、端末装置500から与えられる第3の鍵等の復号情報を第1デスクランブラ部701に与えて、デスクランブルを可能にする。また、ネットワークサブプログラム803を通して、第1デスクランブラ部701に入力されている信号が、PPVチャンネルであることの情報を受け取る。PPVチャンネルと知ったときは、PPVサブプログラム805を起動する。
PPVサブプログラム805は、起動されると、端末装置500に番組の購入を促すメッセージを表示し、ユーザの入力を受け取る。具体的には、端末装置500のCPU514に画面に表示したい情報を送ると、端末装置500のCPU514上で動作するプログラムが、端末装置500のディスプレイ509上にメッセージを表示する。ユーザは、端末装置500の入力部513を通して暗証番号を入力すると、端末装置500のCPU514が、それを受け取り、POD504のCPU706上で動作するPPVサブプログラム805に通知する。PPVサブプログラム805は、受け取った暗証番号をネットワークサブプログラム803を通してヘッドエンド101に送信する。ヘッドエンド101は、暗証番号が正しければ、復号に必要な第4の鍵などの復号化情報をネットワークサブプログラム803を介して、PPVサブプログラム805に通知する。PPVサブプログラム805は受け取った第4の鍵などの復号化情報を第1デスクランブラ部701に与え、第1デスクランブラ部701は、入力されている信号をデスクランブルする。
図7に示すように、TSデコーダ505は、POD504から受け取った信号のフィルタリングを実施し、必要なデータをオーディオデコーダ506及びビデオデコーダ508、CPU514に引き渡す。ここで、POD504から来る信号はMPEG2トランスポートストリームである。MPEG2トランスポートストリームの詳細はMPEG規格書ISO/IEC13818−1に記載されており、本実施の形態では詳細は省略する。MPEG2トランスポートストリームは、複数の固定長パケットで構成され、各パケットには、パケットIDが振られている。
図11は、パケットの構成図である。パケット900は、固定長の188バイトで構成される。先頭4バイトがヘッダー901で、パケットの識別情報を格納しており、残り184バイトがペイロード902で、送信したい情報を含んでいる。ヘッダー901は構成903のように構成されている。先頭から12ビット目〜24ビット目までの13ビットにパケットIDが含まれている。
図12は、送られてくる複数のパケットの列を表現した模式図である。パケット1001は、ヘッダーにパケットID「1」を持ち、ペイロードには映像Aの1番目の情報が入っている。パケット1002は、ヘッダーにパケットID「2」を持ち、ペイロードには音声Aの1番目の情報が入っている。パケット1003は、ヘッダーにパケットID「3」を持ち、ペイロードには音声Bの1番目の情報が入っている。
パケット1004は、ヘッダーにパケットID「1」を持ち、ペイロードには映像Aの2番目の情報が入っており、これはパケット1001の続きになっている。同様にパケット1005、1026、1027も他のパケットの後続データを格納している。このように、同じパケットIDを持つ、パケットのペイロードの内容を連結すると、連続した映像や音声を再現することができる。
図12に示すように、CPU514がパケットID「1」と出力先としての「ビデオデコーダ508」をTSデコーダ505に指示すると、TSデコーダ505はPOD504から受け取ったMPEG2トランスポートストリームからパケットID「1」のパケットを抽出し、ビデオデコーダ508に引き渡す。図12においては、映像データのみをビデオデコーダ508に引き渡すことになる。同時に、CPU514がパケットID「2」と「オーディオデコーダ506」をTSデコーダ505に指示すると、TSデコーダ505はPOD504から受け取ったMPEG2トランスポートストリームからパケットID「2」のパケットを抽出し、オーディオデコーダ506に引き渡す。図12においては、音声データのみをオーディオデコーダ506に引き渡すことになる。
このパケットIDに応じて必要なパケットだけを取り出す処理が、TSデコーダ505が行うフィルタリングである。TSデコーダ505はCPU514から指示された複数のフィルタリングを同時に実行することができる。
図7に示すように、オーディオデコーダ506は、TSデコーダ505から与えられたMPEG2トランスポートストリームのパケットに埋め込まれたオーディオデータを連結し、デジタル−アナログ変換を行いスピーカ507に出力する。
スピーカ507は、オーディオデコーダ506から与えられた信号を音声出力する。
ビデオデコーダ508は、TSデコーダ505から与えられたMPEG2トランスポートストリームのパケットに埋め込まれたビデオデータを連結し、デジタル−アナログ変換を行いディスプレイ509に出力する。
ディスプレイ509は、具体的にはブラウン管や液晶等で構成され、ビデオデコーダ508から与えられたビデオ信号を出力したり、CPU514から指示されたメッセージを表示したりする。
2次記憶部510は、具体的には、フラッシュメモリーやハードディスク等で構成され、CPU514から指示されたデータやプログラムを保存したり削除したりする。また、保存されているデータやプログラムはCPU514に参照される。保存されているデータやプログラムは、端末装置500の電源が切断された状態でも保存しつづける。
1次記憶部511は、具体的には、RAM等で構成され、CPU514から指示されたデータやプログラムを一次的に保存したり削除したりする。また、保存されているデータやプログラムはCPU514に参照される。保存されているデータやプログラムは、端末装置500の電源が切断された際に、抹消される。
ROM512は、書き換え不可能なメモリーデバイスであり、具体的にはROMやCD−ROM、DVDなどで構成される。ROM512は、CPU514が実行するプログラムが格納されている。
入力部513は、具体的には、フロントパネルやリモコンで構成され、ユーザからの入力を受け付ける。
図13は、フロントパネルで入力部513を構成した場合の一例を示す図である。フロントパネル1100は、図8のフロントパネル部603に相当する。フロントパネル1100は7つのボタン、すなわち上カーソルボタン1101、下カーソルボタン1102、左カーソルボタン1103、右カーソルボタン1104、OKボタン1105、取消ボタン1106、及びEPGボタン1107を備えている。ユーザがボタンを押下すると、押下されたボタンの識別子が、CPU514に通知される。
CPU514は、ROM512が記憶するプログラムを実行する。実行するプログラムの指示に従い、QAM復調部501、QPSK復調部502、QPSK変調部503、POD504、TSデコーダ505、ディスプレイ509、2次記憶部510、1次記憶部511、及びROM512を制御する。
図14は、ROM512に記憶され、CPU514に実行されるプログラムの一例を示す構成図。
プログラム1200は、複数のサブプログラムで構成され、具体的にはOS1201、EPG1202、Java(登録商標)VM1203(以後VM1203と称す)、サービスマネージャ1204、Javaライブラリ1205(以後ライブラリ1205と称す)で構成される。
OS1201は、端末装置500の電源が投入されると、CPU514が起動するサブプログラムである。OS1201は、オペレーティングシステムの略であり、Linux(登録商標)等が一例である。OS1201は、他のサブプログラムを平行して実行するカーネル1201a及びライブラリ1201bで構成される公知の技術の総称であり、詳細な説明は省略する。本実施の形態においては、OS1201のカーネル1201aは、EPG1202とVM1203をサブプログラムとして実行する。また、ライブラリ1201bは、これらサブプログラムに対して、端末装置500が保持する構成要素を制御するための複数の機能を提供する。
機能の一例として、チューニング機能を紹介する。チューニング機能は、他のサブプログラムから周波数を含むチューニング情報を受け取り、それをQAM復調部501に引き渡す。QAM復調部501は与えられたチューニング情報に基づき復調処理を行い、復調したデータをPOD504に引き渡すことができる。この結果、他のサブプログラムはライブラリ1201bを通してQAM復調器を制御することができる。
EPG1202は、ユーザに番組一覧を表示し、ユーザからの入力を受け付ける番組表示部1202aと、チャンネル選局を行う再生部1202bで構成される。ここで、EPGはElectric Program Guideの略である。EPG1202は、端末装置500の電源が投入されると、カーネル1201aによって起動される、起動されたEPG1202の内部では、番組表示部1202aが端末装置500の入力部513を通して、ユーザからの入力を待つ。ここで、入力部513が図13で示されるフロントパネルで構成されている場合、ユーザが、入力部513のEPGボタン1107を押下すると、EPGボタンの識別子がCPU514に通知される。CPU514上で動作するサブプログラムであるEPG1202の番組表示部1202aは、この識別子を受け取り、番組情報をディスプレイ509に表示する。
図15A及び図15Bは、ディスプレイ509に表示された番組表の一例を示す図である。図15Aに示すように、ディスプレイ509には、格子状に番組情報が表示されている。列1301には、時刻情報が表示されている。列1302には、チャンネル名「チャンネル1」と、列1301の時刻に対応する時間帯に放映される番組が表示されている。「チャンネル1」では、9:00〜10:30に番組「ニュース9」が放映され、10:30〜12:00は「映画AAA」が放映されることを表す。列1303も列1302同様、チャンネル名「チャンネル2」と、列1301の時刻に対応する時間帯に放映される番組が表示されている。9:00〜11:00に番組「映画BBB」が放映され、11:00〜12:00は「ニュース11」が放映される。カーソル1330は、フロントパネル1100の左カーソルボタン1103と右カーソルボタン1104を押下すると移動する。図15Aの状態で、右カーソルボタン1104を押下すると、カーソルボタン1330は右に移動し、図15Bのようになる。また、図15Bの状態で、左カーソル1103を押下すると、カーソル1330は左に移動し、図15Aのようになる。
図15Aの状態で、フロントパネル1100のOKボタン1105が押下されると、番組表示部1202aは、「チャンネル1」の識別子を再生部1202bに通知する。図15Bの状態で、フロントパネル1100のOKボタン1105が押下されると、番組表示部1202aは、「チャンネル2」の識別子を再生部1202bに通知する。
また、番組表示部1202aは、表示する番組情報を、POD504を通してヘッドエンド101から定期的に、1次記憶部511に記憶しておく。一般的に、ヘッドエンドからの番組情報の取得は時間が掛かる。入力部513のEPGボタン1107が押下された時、1次記憶部511に予め保存された番組情報を表示することで、素早く番組表を表示することができる。
再生部1202bは、受け取ったチャンネルの識別子を用いて、チャンネルを再生する。チャンネルの識別子とチャンネルの関係は、チャンネル情報として、2次記憶部510に予め格納されている。
図16は、2次記憶部510に格納されているチャンネル情報の一例を示す図である。チャンネル情報は表形式で格納されている。列1401は、チャンネルの識別子である。列1402は、チャンネル名である。列1403はチューニング情報である。ここで、チューニング情報は周波数や転送レート、符号化率などを含み、QAM復調部501に与える値である。列1404はプログラムナンバーである。プログラムナンバーとは、MPEG2規格で規定されているPMTを識別するための番号である。PMTに関しては、後述する。行1411〜1414の各行は、各チャンネルの識別子、チャンネル名、チューニング情報の組となる。行1411は、識別子としての「1」、チャンネル名としての「チャンネル1」、チューニング情報としての周波数「150MHz」、及びプログラムナンバーとしての「101」を含む組となっている。再生部1202bは、チャンネルの再生を行うため、受け取ったチャンネルの識別子をそのままサービスマネージャに引き渡す。また、再生部1202bは、再生中に、ユーザがフロントパネル1100の上カーソルボタン1101と下カーソルボタン1102を押下すると、入力部513からCPU514を通して、押下された通知を受け取り、再生しているチャンネルを変更する。まず、再生部1202bは、1次記憶部511に現在再生中のチャンネルの識別子を記憶する。
図17A、図17B、及び図17Cは、1次記憶部511に保存しているチャンネルの識別子の例を示す図である。図17Aでは識別子「3」が記憶されており、図16に示すように、チャンネル名「TV 3」のチャンネルが再生中であることを示す。図17Aの状態で、ユーザが上カーソルボタン1101を押下すると再生部1202bは、図16のチャンネル情報を参照し、表中の前のチャンネルであるチャンネル名「チャンネル2」のチャンネルに再生を切り変えるため、サービスマネージャにチャンネル名「チャンネル2」の識別子「2」を引き渡す。同時に、再生部1202bは、1次記憶部511に記憶されているチャンネル識別子を「2」に書き換える。図17Bは、チャンネル識別子が書き換えられた状態を表す。また、図17Aの状態で、ユーザが下カーソルボタン1102を押下すると再生部1202bは、図16のチャンネル情報を参照し、表中の次のチャンネルであるチャンネル名「TV Japan」のチャンネルに再生を切り変えるため、サービスマネージャにチャンネル名「TV Japan」の識別子「4」を引き渡す。同時に、再生部1202bは、1次記憶部511に記憶されているチャンネル識別子を「4」に書き換える。図17Bは、チャンネル識別子が書き換えられた状態を表す。
VM1203は、Java(登録商標)言語で記述されたプログラムを逐次解析し実行するJavaバーチャルマシンである。Java言語で記述されたプログラムはバイトコードと呼ばれる、ハードウエアに依存しない中間コードにコンパイルされる。Javaバーチャルマシンは、このバイトコードを実行するインタープリタである。また、一部のJavaバーチャルマシンは、バイトコードをCPU514が理解可能な実行形式に翻訳してから、CPU514に引渡し、実行することも行う。VM1203は、カーネル1201aに、実行するJavaプログラムを指定され起動される。本実施の形態では、カーネル1201aは、実行するJavaプログラムとしてサービスマネージャ1204を指定する。Java言語の詳細は、書籍「Java(R)Language Specification(ISBN 0−201−63451−1)」等の多くの書籍で解説されている。ここでは、その詳細を省略する。また、Javaバーチャルマシン自体の詳細な動作などは、「Java(R)Virtual Machine Specification(ISBN 0−201−63451−X)」等の多くの書籍で解説されている。ここでは、その詳細を省略する。
サービスマネージャ1204は、Java言語で書かれたJavaプログラムであり、VM1203によって逐次実行される。サービスマネージャ1204は、JNI(Java(R)Native Interface)を通して、Java言語で記述されていない他のサブプログラムを呼び出したり、または、呼び出されたりすることが可能である。JNIに関しても、書籍「Java(R)Native Interface」等の多くの書籍で解説されている。ここでは、その詳細を省略する。
サービスマネージャ1204は、JNIを通して、再生部1202bよりチャンネルの識別子を受け取る。
サービスマネージャ1204は、最初にライブラリ1205の中にあるTuner1205cに、チャンネルの識別子を引渡し、チューニングを依頼する。Tuner1205cは、2次記憶部510が記憶するチャンネル情報を参照し、チューニング情報を獲得する。今、サービスマネージャ1204がチャンネルの識別子「2」をTuner1205cに引き渡すと、Tuner1205cは、図16の行1412を参照して、対応するチューニング情報「156MHz,」を獲得する。Tuner1205cは、OS1201のライブラリ1201bを通して、QAM復調部501にチューニング情報を引き渡す。QAM復調部501は与えられたチューニング情報に従ってヘッドエンド101から送信されてきた信号を復調し、POD504に引き渡す。
次にサービスマネージャ1204は、ライブラリ1205の中にあるCA1205dにデスクランブルを依頼する。CA1205dは、OS1201のライブラリ1201bを通して復号に必要な情報をPOD504に与える。POD504は、与えられた情報を元に、QAM復調部501から与えられた信号を復号しTSデコーダ505に引き渡す。
次にサービスマネージャ1204は、ライブラリ1205の中にあるJMF1205aにチャンネルの識別子を与え、映像や音声の再生を依頼する。
まず、最初にJMF1205aは、再生すべき映像と音声を特定するためのパケットIDをPAT及びPMTから取得する。PATやPMTはMPEG2規格で規定されている、MPEG2トランスポートストリーム内の番組構成を表現するテーブルであり、MPEG2トランスポートストリームに含まれるパケットのペイロードに埋め込まれて、音声や映像と共に送信されるものである。詳細は規格書を参照されたい。ここでは、概略のみ説明する。PATは、Program Association Tableの略で、パケットID「0」のパケットに格納され送信されている。JMF1205aは、PATを取得するため、OS1201のライブラリ1201bを通して、TSデコーダ505にパケットID「0」とCPU514を指定する。TSデコーダ505がパケットID「0」でフィルタリングを行い、CPU514に引き渡すことでJMF1205aは、PATのパケットを収集する。
図18は、収集したPATの情報の一例を模式的に表した図である。列1601は、プログラムナンバーである。列1602は、パケットIDである。列1602のパケットIDはPMTを取得するために用いられる。行1611〜1613のそれぞれは、チャンネルのプログラムナンバーと対応するパケットIDの組である。ここでは、3つのチャンネルが定義されている。行1611ではプログラムナンバー「101」とパケットID「501」の組が定義されている。今、JMF1205aに与えられたチャンネルの識別子が「2」とすると、JMF1205aは、図16の行1412を参照して、対応するプログラムナンバー「102」を獲得し、次に、図18のPATの行1612を参照し、プログラムナンバー「102」に対応するパケットID「502」を獲得する。PMTは、Program Map Tableの略で、PATで規定されたパケットIDのパケットに格納され送信されている。JMF1205aは、PMTを取得するため、OS1201のライブラリ1201bを通して、TSデコーダ505にパケットIDとCPU514を指定する。ここで、指定するパケットIDは「502」とする。TSデコーダ505がパケットID「502」でフィルタリングを行い、CPU514に引き渡すことでJMF1205aは、PMTのパケットを収集する。
図19は、収集したPMTの情報の一例を模式的に表した図である。列1701は、ストリーム種別であり、列1702は、パケットIDである。列1702で指定されるパケットIDのパケットには、ストリーム種別で指定された情報がペイロードに格納され送信されている。列1703は補足情報である。行1711〜1714はエレメンタリ−ストリームと呼ばれる、パケットIDと送信している情報の種別の組である。行1711は、ストリーム種別「音声」とパケットID「5011」の組であり、パケットID「5011」のペイロードには音声が格納されていることを表す。JMF1205aは、PMTから再生する映像と音声のパケットIDを獲得する。図19に示すように、JMF1205aは、行1711から音声のパケットID「5011」を、行1712から映像のパケットID「5012」を獲得する。
次に、JMF1205aは、OS1201のライブラリ1201bを通して、獲得した音声のパケットIDと出力先としてのオーディオデコーダ506の組、及び映像のパケットIDと出力先としてのビデオデコーダ508の組を、TSデコーダ505に与える。TSデコーダ505は与えられたパケットIDと出力先に基づいて、フィルタリングを行う。ここではパケットID「5011」のパケットをオーディオデコーダ506に、パケットID「5012」のパケットをビデオデコーダ508に引き渡す。オーディオデコーダ506は、与えられたパケットのデジタル−アナログ変換を行いスピーカ507を通して音声を再生する。ビデオデコーダ508は、与えられたパケットのデジタル−アナログ変換を行いディスプレイ509に映像を表示する。
最後にサービスマネージャ1204は、ライブラリ1205の中にあるAM1205bにチャンネルの識別子を与え、データ放送再生を依頼する。ここで、データ放送再生とは、MPEG2トランスポートストリームに含まれるJavaプログラムを抽出し、VM1203に実行させることである。MPEG2トランスポートストリームにJavaプログラムを埋め込む方法は、MPEG規格書ISO/IEC13818−6に記述されたDSMCCという方式を用いる。ここではDSMCCの詳細な説明は省略する。DSMCC方式は、MPEG2トランスポートストリームのパケットの中に、コンピュータで使用されているディレクトリやファイルで構成されるファイルシステムをエンコードする方法を規定している。また、実行するJavaプログラムの情報はAITと呼ばれる形式で、MPEG2トランスポートストリームのパケットの中に埋め込まれ送信されている。AITは、OCAP仕様(正式には、OCAP 1.0 Profile OC−SP−OCAP1.0−IF−I09−031121)に定義されている、Application Information Tableの略である。
AM1205bは、まず、AITを獲得するため、JMF1205a同様PAT及びPMTを取得し、AITが格納されているパケットのパケットIDを獲得する。今、与えられたチャンネルの識別子が「2」で、図18のPAT、図19のPMTが送信されていると、JMF1205aと同様の手順で、図19のPMTを獲得する。AM1205bは、PMTからストリーム種別が「データ」で補足情報として「AIT」を持つエレメンタリ−ストリームからパケットIDを抽出する。図19に示すように、行1713のエレメンタリ−ストリームが該当し、パケットID「5013」を獲得する。
AM1205bは、OS1201のライブラリ1201bを通してTSデコーダ505にAITのパケットIDと出力先CPU514を与える。TSデコーダ505は、与えられたパケットIDでフィルタリングを行い、CPU514に引き渡す。この結果、AM1205bは、AITのパケットを収集することができる。
図20は、収集したAITの情報の一例を模式的に表した図である。列1801はJavaプログラムの識別子である。列1802はJavaプログラムの制御情報である。制御情報には「autostart」「present」「kill」などがあり、「autostart」は即時に端末装置500がこのプログラムを自動的に実行することを意味し、「present」は自動実行しないことを意味し、「kill」はプログラムを停止することを意味する。列1803は、DSMCC方式でJavaプログラムを含んでいるパケットIDを抽出するためのDSMCC識別子である。列1804はJavaプログラムのプログラム名である。行1811と1812はそれぞれ、Javaプログラムの情報の組である。行1811で定義されるJavaプログラムの情報は、識別子「301」、制御情報「autostart」、DSMCC識別子「1」、及びプログラム名「a/TopXlet」の組である。行1812で定義されるJavaプログラムの情報は、識別子「302」、制御情報「present」、DSMCC識別子「1」、及びプログラム名「b/GameXlet」の組である。ここで2つのJavaプログラムは同じDSMCC識別子を持つが、これは1つのDSMCC方式でエンコードされたファイルシステム内に2つのJavaプログラムが含まれていることを表す。ここでは、Javaプログラムに対して4つの情報しか規定しないが、実際にはより多くの情報が定義される。詳細はOCAP仕様(OCAP 1.0 Profile OC−SP−OCAP1.0−IF−I09−031121)を参照されたい。
AM1205bは、AITの中から「autostart」のJavaプログラムを見つけ出し、対応するDSMCC識別子及びJavaプログラム名を抽出する。図20に示すように、AM1205bは行1811のJavaプログラムを抽出し、DSMCC識別子「1」及びJava(R)プログラム名「a/TopXlet」を獲得する。
次にAM1205bは、AITから取得したDSMCC識別子を用いて、JavaプログラムをDSMCC方式で格納しているパケットのパケットIDをPMTから獲得する。具体的には、PMTの中でストリーム種別が「データ」で、補足情報のDSMCC識別子が合致するエレメンタリ−ストリームのパケットIDを取得する。
今、DSMCC識別子が「1」であり、PMTが図19とすると、行1714のエレメンタリ−ストリームが合致し、パケットID「5014」を取り出す。
AM1205bは、OS1201のライブラリ1201bを通してTSデコーダ505にDSMCC方式でデータが埋めこめられたパケットのパケットIDと出力先としてのCPU514を指定する。ここでは、パケットID「5014」を与える。TSデコーダ505、与えられたパケットIDでフィルタリングを行い、CPU514に引き渡す。この結果、AM1205bは、必要なパケットを収集することができる。AM1205bは、収集したパケットから、DSMCC方式に従ってファイルシステムを復元し、1次記憶部511に保存する。MPEG2トランスポートストリーム中のパケットからファイルシステム等のデータを取り出し1次記憶部511等の記憶手段に保存することを以降、ダウンロードと呼ぶ。
図21は、ダウンロードしたファイルシステムの一例を示す図である。図中、丸はディレクトリを四角はファイルを表し、このファイルシステムは、ルートディレクトリ1901、ディレクトリ「a」1902、ディレクトリ「b」1903、ファイル「TopXlet.class」1904、及びファイル「GameXlet.Class」1905を含む。
次にAM1205bは、1次記憶部511にダウンロードしたファイルシステム中から実行するJavaプログラムをVM1203に引き渡す。今、実行するJavaプログラム名が「a/TopXlet」とすると、Javaプログラム名の最後に「.class」を付加したファイル「a/TopXlet.class」が実行すべきファイルとなる。「/」はディレクトリやファイル名の区切りであり、図21に示すように、ファイル1904が実行すべきJavaプログラムである。次にAM1205bは、ファイル1904をVM1203に引き渡す。
VM1203は、引き渡されたJavaプログラムを実行する。
サービスマネージャ1204は、他のチャンネルの識別子を受け取ると、ライブラリ1205に含まれる各ライブラリを通して再生している映像、音声及びJavaプログラムの実行を、同じくライブラリ1205に含まれる各ライブラリを通して停止し、新たに受け取ったチャンネルの識別子に基づいて、映像や音声の再生及びJavaプログラムの実行を行う。
ライブラリ1205は、ROM512に格納されている複数のJavaライブラリの集合である。本実施の形態では、ライブラリ1205は、JMF1205a、AM1205b、Tuner1205c、CA1205d、及びPOD Lib1205e等を含んでいる。
次に、Javaプログラムのダウンロード、保存、及び実行機能について説明する。
サービスマネージャ1204は、ライブラリ1205に含まれるPOD Lib1205eを通してヘッドエンド101との通信によりヘッドエンド101からの情報を受取ることができる。この通信は、POD Lib1205eがOS1201のライブラリ1201b及びPOD504を介してQPSK復調部502を使用することで実現される。
サービスマネージャ1204は、この通信を用いてヘッドエンド101から、端末装置500が2次記憶部510に保存すべきJavaプログラムの情報を受け取る。この情報をXAIT情報と呼ぶ。XAIT情報は、ヘッドエンド101とPOD504間で、任意の形式で送信される。どのような送信形式を採用しても、XAIT情報に必要とする情報が含まれていれば、本発明は実施可能である。
図22は、ヘッドエンド101から取得したXAIT情報の一例を模式的に表した図である。列2001はJavaプログラムの識別子である。列2002はJavaプログラムの制御情報である。制御情報には「autostart」「present」などがあり、「autostart」は端末装置500が電源投入時にこのプログラムを自動的に実行することを意味し、「present」は自動実行しないことを意味する。列2003は、DSMCC方式でJavaプログラムを含んでいるパケットIDを抽出するためのDSMCC識別子である。列2004はJavaプログラムのプログラム名である。列2005は、Javaプログラムの優先度である。優先度は、実行可能なJavaプログラムに制限がある場合に、実行するJavaプログラムを決めるための優先度である。列2006は、Javaプログラムのストア優先度である。ストア優先度はXAIT情報に記述される個々のJavaプログラムに指定される値であり、Javaプログラム及びJavaプログラムの実行に必要なデータを保存する際に、2次記憶部510へ保存するJavaプログラム及びJavaプログラムの実行に必要なデータを決めるための優先度である。列2007は、Javaプログラムのアプリケーション名である。アプリケーション名は、ユーザがJavaプログラムを識別するための名前である。行2011と2012はそれぞれ、Javaプログラムの情報の組である。行2011で定義されるJavaプログラムの情報は、識別子「701」、制御情報「autostart」、DSMCC識別子「1」、プログラム名「a/APP1Xlet」、優先度「200」、ストア優先度「100」、及びアプリケーション名「APP1」の組である。ここでは、Javaプログラムに対して7つの情報しか規定しないが、より多くの情報が定義されていても本発明は実施可能である。
なお、列2007のアプリケーション名は、例えば、ユーザに対してXAIT情報に記述された各Javaプログラムを識別させるために用いられる名前であるが、ユーザに提示してユーザがJavaプログラムを識別するのに十分な情報があれば、アプリケーション名はなくても本発明は実施可能である。
次にサービスマネージャ1204は、ライブラリ1205の中にあるAM1205bにXAIT情報を受け渡し、XAIT情報に記述されるJavaプログラムのMPEG2トランスポートストリームからの抽出、ダウンロード、及び実行を依頼する。
AM1205bは、XAIT情報を受け取ると、AIT情報からJavaプログラムをダウンロードした手順と同じ手順で、MPEG2トランスポートストリームからファイルシステムを1次記憶部511に保存する。その後、1次記憶部511に保存したファイルシステムを2次記憶部510に複写する。なお、1次記憶部511を介さず、直接2次記憶部510にダウンロードすることも実施可能である。
次に、AM1205bは、XAIT情報に、ダウンロードしたファイルシステムの格納位置を対応つけて2次記憶部510に保存する。
図23は、2次記憶部510にXAIT情報とダウンロードしたファイルシステムが対応つけられて保存されている一例を表す図である。図23の中で、図22と同じ番号の要素は図22と同じなので、説明は省略する。列2101は各Javaプログラムごとに対応するダウンロードしたファイルシステムの保存位置を格納する。図中、保存位置は矢印で示している。ダウンロードしたファイルシステム2110は、内部にトップディレクトリ2111、ディレクトリ「a」2112、ディレクトリ「b」2113、ファイル「APP1Xlet.class」2114、及びファイル「APP2Xlet.class」2115を保持する。
ここで、XAIT情報は、Javaプログラムを保存してから保存されているが、Javaプログラムを保存する前に保存されることも実施可能である。なお、XAIT情報は、2次記憶510に保存されているが、1次記憶部511に保存されることも実施可能である。1次記憶部511に保存される場合、電源OFF時に、保存されたXAIT情報は全て消える。
ここで、ファイルシステムは、具体的には、XAIT情報に記述される複数のJavaプログラム及びJavaプログラムの実行に必要なデータから形成される。以降、XAIT情報に記述される個々のJavaプログラム及びJavaプログラムの実行に必要なデータを、アプリケーションと呼ぶ。さらに、アプリケーションを2次記憶部510にダウンロードすることを以降、ストアと呼ぶ。またさらに、2次記憶部510にあって、アプリケーションをストアするための領域をストア領域と呼ぶ。また、VM1203がアプリケーションを構成するJavaプログラムを実行することをアプリケーションの実行と呼ぶ。
図24は、XAIT情報に記述されるアプリケーションがアプリケーションのストア領域2201にストアされている状態を示す図である。図24の中で、アプリケーションのストア領域2201は、アプリケーション名「APP1」をもつアプリケーション2211、および、アプリケーション名「APP2」を持つアプリケーション2212を格納する。
ここで、アプリケーションのストア領域2201の容量は一般的に有限である。アプリケーションのストア領域2201の容量はあらかじめ固定されているものであっても、可変であってもよい。なお、アプリケーションを2次記憶部のストア領域2201にストアしているが、アプリケーションを、1次記憶部に保存することでも実施可能である。また、1次記憶部に保存する場合、電源OFF時に、保存されたアプリケーションは全て消える。
次にAM1205bは、1次記憶部511または2次記憶部510に保存されたXAIT情報を参照して、1次記憶部511にダウンロードしたアプリケーション、または2次記憶部510のストア領域2201にストアしたアプリケーションの中から「autostart」と指定されたアプリケーションのJavaプログラムをVM1203に引き渡す。図23に示すように、行2011で定義されるアプリケーション「APP1」のJavaプログラム「a/APP1Xlet」がVM1203に引渡される。実行するアプリケーションのJavaプログラム名が「a/APP1Xlet」とすると、Javaプログラム名の最後に「.class」を付加したファイル「a/APP1Xlet.class」が実行すべきファイルとなる。VM1203は、引渡されたアプリケーションのJavaプログラムを実行する。以降、AM1205bからのVM1203へのアプリケーションの引渡しを、VM1203へのアプリケーション起動指示と呼ぶ。
AM1205bがXAIT情報を受け取った時点から、VM1203へのアプリケーション起動指示を行う時点までの処理において、一般的に、最も時間のかかる処理は、MPEG2トランスポートストリームからファイルシステムを取り出し1次記憶部へファイルシステムを保存する処理、または、MPEG2トランスポートストリームからファイルシステムを取り出して1次記憶部511を介さず直接2次記憶部510のストア領域2201へファイルシステムをストアする処理である。ここで、AM1205bがXAIT情報を受け取った時点において、XAIT情報に記述されたアプリケーションのうち、既にストアされているアプリケーションが存在する場合、AM1205bは既にストアされているアプリケーションのファイルシステムについては、MPEG2トランスポートストリームから1次記憶部511への保存処理及び1次記憶部511から2次記憶部510中のストア領域2201へのストア処理、またはMPEG2トランスポートストリームから1次記憶部511を介さず直接2次記憶部510中のストア領域2201へのストア処理を省略することができる。従って、アプリケーションを前もってストア領域2201にストアしておくことで、AM1250bがXAIT情報を受け取った時点から、VM1203へのアプリケーション起動指示を行うまでの時間を短縮することができる。
図25は、AM1250bが、XAIT情報を受け取った時点から、VM1203へのアプリケーション起動指示を行うまでの動作の一例を示すフローチャートである。図25に示すように、AM1205bがXAIT情報を受け取ると(S2301)、XAIT情報に記述のアプリケーションをまだ選ばれていないものから順に1つずつ選ぶ(S2302)。ここで、AM1205bは、選んだアプリケーションがストアされているか否かを判断し(S2303)、選んだアプリケーションがストアされていない場合(S2303のNO)、AM1205bは、アプリケーションをMPEG2トランスポートストリームからストア領域2201にストアする(S2304)。次に、AM1205bは、選んだアプリケーションの制御情報が「autostart」か否かを判断し(S2305)、選んだアプリケーションの制御情報が「autostart」の場合、AM1205bはVM1203へのアプリケーション起動指示を行う(S2306)。そして、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2307)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合(S2307のNO)、AM1205bは次のアプリケーションを選択してXAIT情報の受け取りからアプリケーション起動指示までの処理を進め、既にXAIT情報記述の全てのアプリケーションを選択している場合には(S2307のYES)、XAIT情報の受け取りからアプリケーション起動指示までの処理を終了する。
図25に示すAM1205bの動作の一例においても明らかなように、AM1205bがXAIT情報を受け取った時点において、XAITに記述のアプリケーションがストアされているか否かを判断し(S2303)、既にXAITに記述のアプリケーションがストアされている場合、AM1205bは、アプリケーションをMPEG2トランスポートストリームからストア領域2201にストアする処理(S2304)を省略することができる。その結果、AM1205bがXAIT情報を受け取った時点(S2301)から、VM1203へのアプリケーション起動指示を行う(S2306)までの時間は短縮される。
さらに、ここで、XAIT情報に記述されたアプリケーションを1つ選ぶ処理(S2302)において、例えば、ストアされかつ「autostart」のアプリケーションから順に選ぶことにより、特にストアされた個々のアプリケーションの起動指示までの時間を短縮することができる。
なお、個々のアプリケーションの起動指示までの時間を短縮する方法は図25に示した方法に限らない。なお、図25において、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする処理は、アプリケーション1つごとに行っているが、XAITに記述されるアプリケーション全てについて同時に処理を行うなど他の方法をとってもよい。
このように、アプリケーションをストアすることによるメリットは、次回のXAIT受け取り時において、DSMCCからアプリケーションをダウンロードまたはストアする必要がないため、AM1205bがXAIT情報を受け取った時点から、VM1203へのアプリケーション起動指示を行う時点までの処理が速くなることである。
一方、アプリケーションがストアされていない場合、次回のXAIT受け取り時に、AM1205bは、そのアプリケーションのファイルシステムをMPEG2トランスポートストリームから1次記憶511にダウンロードまたは2次記憶510のストア領域2201にストアする必要があるため、アプリケーションが既にストアされている時と比べて、AM1205bがXAIT情報を受け取った時点から、VM1203へのアプリケーション起動指示を行う時点までの処理が遅くなる。
なお、ここでは、AM1205bはアプリケーションのDSMCCから1次記憶部へのダウンロードまたはDSMCCからストア領域へのストア完了後に、VM1203bへアプリケーションの起動指示を出すものとして説明しているが、AM1205bがXAIT情報の受け取り後、アプリケーションのDSMCCから1次記憶へのダウンロードまたはDSMCCからストア領域へのストアをする前に、VM1203へアプリケーションの起動指示を出してもよい。ここでの起動指示は、AM1205bがVM1203に実行すべきアプリケーションのプログラム名を引渡すことにより実現するものとする。この場合、VM1203が、AM1205bからのアプリケーション起動指示後に、DSMCCまたは1次記憶部511またはストア領域からアプリケーションを読み込み実行することになる。一般的に、DSMCCからファイルシステムを読み込む処理は、既に1次記憶部またはストア領域から読み込む処理よりも遅い。従って、アプリケーションを前もってストア領域2201にストアしておくことで、AM1250bがXAIT情報を受け取った時点から、VM1203がアプリケーションの実行を開始するまでの時間を短縮することができる。
図26及び図27に示すように、XAIT情報が更新されると、それにともないストア領域2201にストアされるアプリケーションが更新される。
図26は、1つのアプリケーション2011のストアを指定する更新前のXAIT情報に従いストア領域2201にストアされたアプリケーションの状態を示す図である。ここで、更新前のXAIT情報には1つのアプリケーション2011のストアが指定されると、状態2211に示すようにアプリケーション2011はストアされる。
図27は、2つのアプリケーション2011とアプリケーション2012のストアを指定する更新後のXAIT情報に従いストア領域2201にストアされたアプリケーションの状態を示す図である。更新後のXAIT情報には2つのアプリケーション2011とアプリケーション2012のストアが指定されると、状態2211に示すようにアプリケーション2011はストアされ、状態2212に示すようにアプリケーション2012もストアされる。
次に、本発明の主要機能である、XAIT情報を受け取ったAM1205bによる、XAIT情報に記述されたアプリケーションのストア機能について説明する。
図28は、AM1205bの構成のうち、ストア処理に関連する構成要素のみを示す図である。他の構成要素は本発明とは直接関係ないので省略する。AM1205bは、ストア優先度比較部2601、ストアアプリ決定部2602、アプリケーションのストア部2603、アプリケーションのストア削除部2604、通知部2605、ストア領域残容量取得部2606、及びアプリケーション容量取得部2607を備える。
ストア優先度比較部2601は、ストアアプリ決定部2602から取得要求を受けると、XAIT情報から個々のアプリケーションのストア優先度2006取得し、個々のアプリケーションに指定されたストア優先度2006を比較する。ここで、既にストアされているアプリケーションがXAIT情報に記述されていない場合、ストア優先度比較部2601は、そのアプリケーションのストア優先度は最低値であるとみなす。そして、その比較結果をストアアプリ決定部2602に返す。ここで、比較結果の返し方は、XAIT情報に記述された全てのアプリケーションを優先度の高い順にならべ代えた配列として返す等により実施可能であるが、ストアアプリ決定部2602がXAIT情報に記述された全てのアプリケーションについて、そのストア優先度の高低を知るために必要な情報を提供するものであれば形式は問わない。
ストア領域残容量取得部2606は、ストアアプリ決定部2602からの取得要求を受けると、ストア領域2201がアプリケーションをストアできる残りの容量を取得し、その取得結果をストアアプリ決定部2602に返す。ここで、取得結果の返し方は、数値情報として返す等により実現可能であるが、ストアアプリ決定部2602が、ストア領域2201がアプリケーションをストアできる残りの容量を知るために必要な情報を提供するものであれば形式は問わない。
アプリケーション容量取得部2607は、ストアアプリ決定部2602からの取得要求を受けると、XAIT情報に記述された各アプリケーション及び既にストア領域にストアされている各アプリケーションのストアに必要な容量を取得し、その取得結果をストアアプリ決定部2602に返す。ここで、取得結果の返し方は、各アプリケーション毎に数値を対応付けて返す等により実施可能であるが、ストアアプリ決定部2602が各アプリケーションについて、そのストアに必要な容量を知るために必要な情報を提供するものであれば形式は問わない。
ストアアプリ決定部2602は、ストア領域2201にストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセット、を決定する。ここで、ストアアプリ決定部2602は、ストア優先度比較部2601にストア優先度比較結果の取得を要求し、ストア領域残容量取得部2606にストア領域2201の残容量の取得を要求し、アプリケーション容量取得部2607に各アプリケーションのストアに必要な容量の取得を要求する。そして、これらの取得した情報に基づいて、ストア領域2201にストアされている全てのアプリケーションの容量がストア領域2201の総容量を越えない範囲において、可能な限り多くのアプリケーションを、ストア優先度の高いアプリケーションから優先的にストア領域2201にストアされることが満たされるよう、ストア優先度の高いアプリケーションを優先的にストアすることを決定する。さらに、ストアアプリ決定部2602は、既にストアされているアプリケーションであっても、ストア優先度の低いアプリケーションから順に、ストア領域2201から削除することを決定する。そして、ストアアプリ決定部2602は、ストア領域2201にストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセット、を決定後に、通知部2605への通知指示と、ストア部2603へのアプリケーションのストア指示と、ストア削除部2604へのアプリケーション削除指示を行う。ここで、通知部2605への通知指示と、アプリケーションのストア削除部2604へのアプリケーションの削除指示は、既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合のみにおいて行うが、この場合、通知部2605への通知指示を、アプリケーションのストア削除部2604へのアプリケーションの削除指示より前に行うことにより、ユーザへのアプリケーション削除通知を、ストア領域からアプリケーションが削除される前に行うことができる。
ストア部2603は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストアする。
ストア削除部2604は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストア領域2201から削除する。
通知部2605は、ストアアプリ決定部2602の決定結果に従い、ユーザにアプリケーションが削除されることを通知する。ここで、通知部2605によるユーザへのアプリケーション削除通知は、通知部2605が端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、削除通知をディスプレイ509に表示することにより実現される。ここで、ダイアログは、例えば一定時間経過後にディスプレイ509から消すものとする。
図29及び図30は、本実施の形態におけるXAIT情報を受け取ったAM1205bによる、アプリケーションのストア処理動作の一例を示すフローチャートである。特に、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足する場合における、AM1205bによる、MPEG2トランスポートストリームからストア領域2201へのアプリケーションのストア処理動作の一例を示すフローチャートである。
図29及び図30に示すように、AM1205bがXAIT情報を受け取ると(S2701)、XAIT情報に記述されたアプリケーションから、ストア優先度の高いものから順にまだ選ばれていないアプリケーションを1つ選択する。但しここで、受け取ったXAIT情報に従ったストア処理において、ストア削除部2604がストア領域2201から既に削除したアプリケーションを除くアプリケーションを1つ選択する(S2702)。そして、AM1205bは、選択したアプリケーションがストアされているか否かを判断する(S2703)。
選択したアプリケーションがストアされている場合(S2703のYES)、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)する。ここで、未だXAIT情報に記述の全てのアプリケーションを選択していない場合(S2707のNO)、AM1205bは次のアプリケーションを選択しストア処理を進める。既にXAIT情報に記述の全てのアプリケーションを選択している場合には(S2707のYES)、AM1205bは、ストア処理を終了する。
一方、選択したアプリケーションがストアされていない場合(S2703のNO)、ストアアプリ決定部2602は、ストア領域残容量取得部2606からストア領域の残容量を取得し、アプリケーション容量取得部2607からアプリケーション容量を取得する(S2704)。そして、ストア領域残容量取得部2606から取得したストア領域の残容量とアプリケーション容量取得部2607から取得したアプリケーション容量に基づき、ストアアプリ決定部2602は、ストア領域の残容量が選択したアプリケーションの容量より大きいか否かを判断する(S2705)。
ストア領域の残容量が選択したアプリケーションの容量より大きいと判断した場合(S2705のYES)、ストア部2603は選択したアプリケーションをストアする(S2706)。そして、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、ストアアプリ決定部2602がストア領域の残容量が選択したアプリケーションの容量より小さいと判断した場合(S2705のNO)、AM1205bは、既にストアされているアプリケーションがあるか否かを判断する(S2801)。
既にストアされているアプリケーションがある場合には(S2801のYES)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストアする際に、既にストアされているアプリケーションがある為にストア領域2201の容量が不足する場合には、ストアアプリ決定部2602は、ストア優先度比較部2601から個々のアプリケーションに指定されたストア優先度2006の比較結果を取得する(S2802)。その比較結果に基づいて、ストアアプリ決定部2602は、ストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットを決定する(S2803)。ここで、ストアアプリ決定部2602は、既にストアされているアプリケーションの中で、選択したアプリケーションのストア優先度よりもストア優先度の低いアプリケーションがある場合には、ストア領域の残容量が選択したアプリケーションの容量以上になるように、ストアアプリ決定部2602は、その既にストアされているアプリケーションをストア領域から削除することを決定し、選択したアプリケーションをストアすることを決定する。但し、それらの既にストアされているアプリケーションをストア領域から削除してもストア領域の残容量が選択したアプリケーションの容量以上にならない場合には、それらの既にストアされているアプリケーションはストア領域から削除せず、選択したアプリケーションをストアしないことを決定する。一方、既にストアされているアプリケーションの中で、選択したアプリケーションのストア優先度よりもストア優先度の低いアプリケーションがない場合には、ストアアプリ決定部2602は、既にストアされているアプリケーションのいずれもストア領域から削除せず、選択したアプリケーションをストアしないことを決定する。続いて、ストアアプリ決定部2602は、既にストアされていたアプリケーションをストア領域2201から削除すると決定したか削除しないことを決定したかを判定する(S2804)。
ストアアプリ決定部2602が既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合(S2804のYES)、ストアアプリ決定部2602は、通知部2605に削除通知を指示し、ストア削除部2604に、アプリケーションをストア領域2201から削除することを指示し、ストア部2603に、アプリケーションのストアを指示する。そして、通知部2605は、ストアアプリ決定部2602の決定結果に従い、ユーザにアプリケーションが削除されることを通知する(S2805)。ストア削除部2604は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストア領域2201から削除し(S2806)、ストア部2603は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストアする(S2706)。ここで、ストア削除部2604は、通知部2605によるユーザへの通知が行われたことを検知した後に、アプリケーションをストア領域2201から削除しても良い。そして、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報記述の全てのアプリケーションを選択していない場合、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、ストアアプリ決定部2602が既にストアされていたアプリケーションをストア領域2201から削除しないことを決定した場合(S2804のNO)、選択されたアプリケーションをストアするストア領域を確保することができないので、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断する(S2707)。そしてAM1205bは、上述と同様に、未だXAIT情報記述の全てのアプリケーションを選択していない場合には、次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、既にストアされているアプリケーションがあるか否かの判断(S2801)において、既にストアされているアプリケーションがない場合には(S2801のNO)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足するが、既にストアされているアプリケーションがない場合には、選択されたアプリケーションをストアするストア領域を確保することができないので、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断する(S2707)。そしてAM1205bは、上述と同様に、未だXAIT情報記述の全てのアプリケーションを選択していない場合には、次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
なお、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足するが、既にストアされているアプリケーションがない場合には、選択されたアプリケーションをストアするストア領域を確保することができないので、AM1205bは選択したアプリケーションをストアせずにストア処理を終了してもよい。
ここで、本実施の形態において、既にストアされているアプリケーションがXAIT情報に記述されていない場合、ストア優先度比較部2601は、そのアプリケーションのストア優先度は最低値であるとみなすとしているが、このような場合、ストアアプリ決定部2602は、そのアプリケーションのストア領域2201からの削除を無条件に決定する等の方法を取ってもよい。
なお、ここで、通知部2605によるユーザへのアプリケーション削除通知は、通知部2605が端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、削除通知をディスプレイ509に表示することにより実現している。しかし、通知部2605によるユーザへの削除通知は、ユーザがアプリケーションの削除を検知できる方法であれば、その他の方法であっても実施可能である。
図31は、削除通知の表示位置を説明するための説明図である。
例えば、通知部2605によるユーザへの削除通知は、リモコンの液晶画面に削除通知を表示させる、或いは、図31に示すように、端末装置本体の7セグLED3102に削除通知を表示させる、或いは、端末装置本体のランプ3101を点灯させるなどにより実施可能である。図31において、図8と同じ要素には図8と同じ符号を付し説明を省略する。
また、ここで、アプリケーションのストア完了時に、通知部2605は、ユーザにアプリケーションがストアされたことを通知してもよい。
また、ここで、ストアアプリ決定部2602は、必ずしも、ストア優先度の低いアプリケーションから順に、ストア領域2201から削除することを決定しない。例えば、OCAP仕様(OCAP 1.0 Profile OC−SP−OCAP1.0−IF−I09−031121)に記述のケーブルテレビシステムにおいては、既にストアされているアプリケーションが実行されている場合、そのアプリケーションをストレージから削除することによってアプリケーションの実行を妨げてはならないため、ストアアプリ決定部2602は、既にストア領域にストアされているアプリケーションの中で最もストア優先度の低いアプリケーションであっても、そのアプリケーションが実行中の場合には、そのアプリケーションをストア領域から削除する決定をしない。
図32は、AM1205bがアプリケーションをストアする動作の一例をまとめたフローチャートである。その動作は特に、ストア領域2201にアプリケーション2011が既にストアされている状態で、AM1205bが、図22に示すように、アプリケーション2011とアプリケーション2012とを記述したXAIT情報を取得し、ストア領域2201の容量が不足する場合の動作である。ここで、XAIT情報に記述されたアプリケーション2011のストア優先度は100であり、アプリケーション2012のストア優先度は200であるとする。またここで、ストア領域2201の容量はアプリケーション2011の容量とアプリケーション2012の容量の総和に満たないものとする。また、OCAP仕様においては、ストア処理により実行中のアプリケーションの実行を妨げてはならないので、ここでは、アプリケーション2011は起動されていないものとする。
AM1205bは、XAIT情報を取得すると(S2901)、XAIT情報に記述されるアプリケーションの中から最も高いストア優先度200をもつアプリケーション2012を選択する(S2902)。既にアプリケーション2011がストアされているため、ストア領域2201の残容量がアプリケーション2012のストアに必要な容量に満たないため、ストア優先度比較部2601は、既にストアされているアプリケーション2011と、アプリケーション2012のストア優先度を比較する(S2903)。ストアアプリ決定部2602は、優先度の低いアプリケーション2011をストア領域2201から削除することを決定する(S2904)。ストアアプリ決定部2602は、既にストアされていたアプリケーション2011をストア領域2201から削除すると決定したため、通知部2605に通知を指示し、ストア削除部2604にアプリケーション2011の削除を指示し、ストア部2603に、アプリケーション2012のストアを指示する。そして、通知部2605は、ユーザにアプリケーション2011が削除されることを通知する(S2905)。ここで、通知部2605によるユーザへのアプリケーション削除通知は、通知部2605が端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、図33に示すような削除通知をディスプレイ509に表示することにより実現される。
図33は、ディスプレイ509に表示される削除通知を示す図である。
ダイアログボックス3001はメッセージ3002の表示要素をもつ。なお、メッセージ3002の文字列は、ユーザにアプリケーションの削除を通知する為に必要な情報を提供できる方法であれば、図33中の文字列に限定されず他の文字列であってもよく、また、メッセージ3002の形式は文字列に限定されず他の形式であってもよい。また更に、ダイアログボックス3001の表示要素は、図33の表示要素に限定されず、ユーザにアプリケーション2011の削除を通知できるものであれば、他の表示要素であってもよい。続いて、ストア削除部2604は、アプリケーション2011をストア領域2201から削除する(S2906)。そして、ストア部2603は、アプリケーション2012をストアする(S2907)。
図34Aは、XAIT情報取得前におけるストア領域2201にストアされたアプリケーションの状態を示す図である。ここで状態2211はアプリケーション2011がストアされた状態を示す。
図34Bは、XAIT情報取得後におけるストア領域2201にストアされたアプリケーションの状態を示す図である。ここで状態2212はアプリケーション2012がストアされた状態を示す。
なお、本実施の形態において、ストアアプリ決定部2602によるストアするアプリケーションの決定は、図29に示すように、ストア優先度比較部の比較結果に基づき、ストア優先度の高いアプリケーションから順に選択し、ストア処理を行う方法により実現している(S2702)。しかし、ストアアプリ決定部2602は、XAIT情報に記述されるアプリケーション全てについて同時に、ストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットを決定するなどの方法をとっても良い。例えば、ストアアプリ決定部2602は、受け取ったXAIT情報を参照して、XAIT情報に記述されている全てのアプリケーションについて、ストア領域2201にストアされる全てのアプリケーションの容量がストア領域2201の総容量を越えない範囲において、ストア優先度の高いアプリケーションから順にストアすることを決定し、このとき既にストアされているがストアすることを決定されなかったアプリケーションをストア領域2201から削除することを決定するなどの方法をとっても良い。
また、なお、AM1205bがストア領域残容量取得部2606、及び、アプリケーション容量取得部2607を持たない場合や、AM1205bがアプリケーション容量取得部2607を持っているがアプリケーション容量取得部2607がアプリケーションの容量を取得できない場合においても、本発明は実施可能である。例えば、AM1205bはストア領域残容量取得部2606、及び、アプリケーション容量取得部2607を持たない場合、ストアアプリ決定部2602は、ストア優先度比較部2601の比較結果に従い、ストア優先度の高いアプリケーションから順にストアを決定し、ストア部2603がストアに失敗した場合には、ストア優先度の低いアプリケーションから順に、ストア領域2201から削除することを決定する等の方法をとってもよい。
図35A及び図35Bは、ストア領域残容量取得部2606及びアプリケーション容量取得部2607をもたないAM1205bによる、XAIT情報を受け取り時の、アプリケーションのストア処理動作の一例を示すフローチャートである。特に、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足する場合における、ストア領域残容量取得部2606及びアプリケーション容量取得部2607をもたないAM1205bによる、MPEG2トランスポートストリームからストア領域2201へのアプリケーションのストア処理動作の一例を示すフローチャートである。
図35Aに示すように、AM1205bがXAIT情報を受け取ると(S3301)、ストアアプリ決定部2602は、ストア優先度比較部2601からXAIT情報に記述されたアプリケーションのストア優先度を取得する(S3302)。そして、ストアアプリ決定部2602は、XAIT情報に記述されたアプリケーションからストア優先度の高いものから順にまだ選ばれていないアプリケーション1つをストア候補として選択する(S3303)。そして、ストアアプリ決定部2602は、ストア候補として選択したアプリケーションがストアされているか否かを判断する(S3304)。
ストア候補として選択したアプリケーションがストアされている場合(S3304のYES)、ストアアプリ決定部2602は、XAIT情報に記述のアプリケーションを全てストア候補として選択したか否かを判断する(S3307)。ここで、未だXAIT情報記述の全てのアプリケーションをストア候補として選択していない場合(S3307のNO)、ストアアプリ決定部2602は次のアプリケーションをストア候補として選択しストア処理を進め、既にXAIT情報記述の全てのアプリケーションをストア候補として選択している場合(S3307のYES)にはストア処理を終了する。
一方、ストア候補として選択したアプリケーションがストアされていない場合(S3304のNO)、ストア部2603はストア候補のアプリケーションをストアする(S3305)。そして、AM1205bは、ストア候補のアプリケーションをストアできたか否かを判断する(S3306)。
ストア候補のアプリケーションをストアできた場合(S3306のYES)、ストアアプリ決定部2602は、XAIT情報記述のアプリケーションを全てストア候補として選択したか否かを判断する(S3307)。上述と同様、未だXAIT情報記述の全てのアプリケーションをストア候補として選択していない場合(S3307のNO)、ストアアプリ決定部2602は次のアプリケーションをストア候補として選択しストア処理を進め、既にXAIT情報記述の全てのアプリケーションをストア候補として選択している場合(S3307のYES)にはストア処理を終了する。
一方、ストア候補のアプリケーションをストアできなかった場合(S3306のNO)、図35Bに示すように、ストアアプリ決定部2602は、既にストアされているアプリケーションがあるか否かを判断する(S3308)。
既にストアされているアプリケーションがある場合には(S3308のYES)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストアする際に、既にストアされているアプリケーションがある為にストア領域2201の容量が不足する場合には、ストアアプリ決定部2602は、既にストアされたアプリケーションからストア優先度の低いものから順に1つを削除候補として選択する(S3309)。そして、ストアアプリ決定部2602は、ストア優先度比較部2601からの取得結果に基づいて、削除候補として選択したアプリケーションのストア優先度がストア候補として選択したアプリケーションのストア優先度よりも低いか否かを判定する(S3310)。
削除候補として選択したアプリケーションのストア優先度がストア候補として選択したアプリケーションのストア優先度よりも低い場合(S3310YES)、ストアアプリ決定部2602は、削除候補のアプリケーションをストア領域から削除することを決定する(S3311)。そして、ストアアプリ決定部2602は、通知部2605に削除候補として選択したアプリケーションの削除通知を指示し、ストア削除部2604に、削除候補として選択したアプリケーションをストア領域2201から削除するように指示し、ストア部2603に、ストア候補として選択したアプリケーションのストアを指示する。そして、通知部2605は、ストアアプリ決定部2602の決定結果に従い、ユーザにアプリケーションが削除されることを通知し(S3312)、ストア削除部2604は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストア領域2201から削除する(S3313)。図35Aに示すように、ストア部2603は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストアする(S3305)。そして、ストア候補として選択したアプリケーションをストアできた場合には(S3306のYES)、ストアアプリ決定部2602は、上述と同様、XAIT情報に記述のアプリケーションを全てストア候補として選択したか否かを判断する(S3307)。未だXAIT情報記述の全てのアプリケーションをストア候補として選択していない場合には(S3307のNO)、ストアアプリ決定部2602は次のアプリケーションをストア候補として選択しストア処理を進め、既にXAIT情報記述の全てのアプリケーションをストア候補として選択している場合(S3307のYES)にはストア処理を終了する。一方、ストア候補として選択したアプリケーションをストアできなかった場合にはストアアプリ決定部2602は次のアプリケーションを削除候補として選択しストア処理を進める。
一方、削除候補として選択したアプリケーションのストア優先度がストア候補として選択したアプリケーションのストア優先度よりも高い場合(S3310のNO)、ストア候補として選択されたアプリケーションをストアするストア領域を確保することができない。そのため、ストアアプリ決定部2602は、図35Aに示すように、XAIT情報記述のアプリケーションを全てストア候補として選択したか否かを判断し(S3307)、未だXAIT情報記述の全てのアプリケーションをストア候補として選択していない場合には(S3307のNO)、ストアアプリ決定部2602は次のアプリケーションをストア候補として選択しストア処理を進め、既にXAIT情報記述の全てのアプリケーションをストア候補として選択している場合(S3307のYES)にはストア処理を終了する。
一方、既にストアされているアプリケーションがあるか否かの判断(S3308)において、既にストアされているアプリケーションがない場合には(S3308のNO)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足するが、既にストアされているアプリケーションがない場合には、ストア候補として選択されたアプリケーションをストアするストア領域を確保することができない。そこで、図35Aに示すように、ストアアプリ決定部2602は、XAIT情報に記述のアプリケーションを全て選択したか否かを判断する(S3307)。その結果、未だXAIT情報記述の全てのアプリケーションをストア候補として選択していない場合には(S3307のNO)、ストアアプリ決定部2602は次のアプリケーションをストア候補として選択しストア処理を進め、既にXAIT情報記述の全てのアプリケーションをストア候補として選択している場合(S3307のYES)にはストア処理を終了する。
また、本実施の形態において、複数のアプリケーションのストア優先度が同じ場合には、AM1205bは、ユーザへの問合せなど、その他の判断材料により、ストア領域2201から削除するアプリケーションのセットを決定してもよい。
また、本実施の形態において、AM1205bによるXAIT情報の受け取りは、端末装置500の電源投入時または、XAIT情報が更新された時に行う。つまり、本実施の形態において、AM1205bによるXAIT情報の受け取りは、端末装置500の電源投入時におけるAM1205bによるXAIT情報の受け取りと、端末装置500が起動後にXAIT情報が更新された時における、AM1205bによるXAIT情報の受け取りを対象としている。しかし、XAIT情報の更新は、ヘッドエンド101から送信されるXAIT情報そのものの更新だけでなく、AM1205bやアプリケーションによるXAIT情報の更新等、他の方法であっても本発明は実施可能である。
ここで、このような、アプリケーションによるXAIT情報の更新は、AM1205bが特別な権限をもつアプリケーションに対して、XAIT情報の更新を行うためのAPIを用意することにより実現する。XAIT情報の更新を行うためのAPIには、特別な権限をもつアプリケーションが新規に作成したXAIT情報を登録可能とするものや、既にAM1205bが1次記憶または2次記憶に保存しているXAIT情報を修正可能とするもの等がある。
図36は、ストアするアプリケーションの選択をユーザへ促すメッセージの一例を示す図である。XAIT情報の更新を行うためのAPIを提供された特別な権限を持つアプリケーションが、端末装置500のCPU514に表示したい情報を送ることにより、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが上記メッセージをディスプレイ509に表示する。ダイアログボックス3430内の列3401は各アプリケーションのアプリケーション名である。行3411と行3412と行3413は、アプリケーションの情報の一覧である。ユーザが、行3411が示すアプリケーションを選択すると、特別な権限を持つアプリケーションは、XAIT情報の更新を行うためのAPIを用いて、AM1205bに対し、行3411が示すアプリケーションをストアさせるようにXAIT情報の更新を指示する。ここで、行3411が示すアプリケーションの選択は、例えば、図36に示すように、フォーカス3420が行3411の示すアプリケーションのアプリケーション名「誕生日アプリ」上にあるときに、ユーザがリモコンに割り当てられたOKキーを押下することにより実現される。
特別な権限をもつアプリケーションがXAIT情報の更新を行うためのAPIを呼び出すと、AM1205bは特別な権限をもつアプリケーションからの指示に従いXAIT情報を生成または修正し1次記憶または2次記憶に保存する。このようなXAIT情報の更新を行うためのAPIは公知の技術にて実現されている。例えば、XAIT情報を登録するAPIは、OCAP仕様(OCAP 1.0 Profile OC−SP−OCAP1.0−IF−I09−031121)のAnnexG OCAP 1.0 Application APIにおいて、org.ocap.application.AppManagerProxyクラスのregisterUnboundAppメソッドとして定義されている。特別な権限をもつアプリケーションがXAIT情報を登録するAPIを用いて、新規のXAIT情報を登録(特別な権限をもつアプリケーションが新規に作成したXAIT情報の登録)を行った際には、AM1205bは、その特別な権限をもつアプリケーションにより登録されたXAIT情報を、XAIT情報の更新として受け取る。
このように、実施の形態1では、ストア優先度を用いることにより、常に、ストア優先度の高いアプリケーションを優先的にストアすることが出来る。さらに、アプリケーションがストア領域2201から削除される場合には、ユーザにアプリケーションが削除されることをユーザに通知することにより、ユーザは、既にストアされていたアプリケーションの削除に起因する、XAIT情報の取得からアプリケーション起動までの時間が遅くなる等のアプリケーションの挙動変化を前もって知ることができる。その結果、ユーザは安心して端末装置500を利用することができる。
(実施の形態2)
実施の形態1では、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合、通知部2605は、ユーザにアプリケーションが削除されることを通知する。しかし、ユーザによる削除通知の確認の有無を判断せずに、アプリケーションのストア削除部2604は、アプリケーションをストア領域2201から削除してしまう。例えば、ユーザが、アプリケーションの削除通知に気づかなくても、アプリケーションがストア領域2201から削除される可能性がある。
そこで、本実施の形態においては、さらに、図37に示すように、AM1205bはユーザからの応答を受け付ける応答受付部3501を備える。
図37は、本実施の形態におけるAM1205bの構成を示す構成図である。
本実施の形態において、通知部2605は、ストアアプリ決定部2602の指示に従い、ユーザにアプリケーションが削除されることを通知する。ここで、通知部2605によるユーザへのアプリケーション削除通知は、通知部2605が端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、図38に示すような削除通知をディスプレイ509に表示することにより実現される。
図38は、本実施の形態におけるディスプレイ509に表示される削除通知の一例を示す図である。
ダイアログボックス3001は、メッセージ3002及びOKボタン3701の表示要素をもつ。なお、ユーザにアプリケーションの削除を通知する為に必要な情報を提供できる方法であれば、図38中の文字列に限定されず他の文字列であってもよく、また、メッセージ3002の形式は文字列に限定されず他の形式であってもよい。また、OKボタン3701の文字列は、図38中の文字列に限定されず他の文字列であってもよい。また更に、ダイアログボックス3001の表示要素は、図38の表示要素に限定されず、ユーザにアプリケーション2011の削除を通知し、ユーザが削除通知の確認を選択したことをCPU514が認識できるものであれば、他の表示要素であってもよい。
応答受付部3501は、CPU514から、ユーザの上記OKボタン3701の選択等による削除通知の確認時におけるユーザからの選択情報を受付け、CPU514から選択情報を受付けた時に、ストアアプリ決定部2602に通知確認情報を通知する。
さらに、本実施の形態において、ストアアプリ決定部2602は、実施の形態1と同様の方法により、ストア領域2201にストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットを決定し、既にストアされていたアプリケーションをストア領域2201からの削除すると決定した場合には、通知部2605への通知指示と、ストア部2603へのアプリケーションのストア指示と、ストア削除部2604へのアプリケーション削除指示を行う。但し、本実施の形態において、ストアアプリ決定部2602は、応答受付部3501からの通知確認情報の通知を受けて初めて、ストア削除部2604へアプリケーションの削除指示を行い、ストア部2603へアプリケーションのストア指示を行う。これにより、アプリケーションのストア削除部2604がアプリケーションをストア領域2201から削除する前に、通知部2605によりユーザにアプリケーションの削除通知がされることを実現する。
図39は、本実施の形態における、XAIT情報を受け取ったAM1205bによる、アプリケーションのストア処理の特徴的な動作の一例を示すフローチャートである。この図39は、図29に示すステップS2705からの処理を示すものであって、特に、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足する場合における、AM1205bによるストア処理動作の一例を示す。
図39において、図30と同じステップには、図30と同じ番号を付した。
図29に示すように、AM1205bがXAIT情報を受け取ると(S2701)、XAIT情報に記述されたアプリケーションからストア優先度の高いものから順にまだ選ばれていないアプリケーションを1つ選択する。但しここで、受け取ったXAIT情報に従ったストア処理において、ストア削除部2604がストア領域2201から既に削除したアプリケーションを除くアプリケーションを1つ選択する(S2702)。そして、AM1205bは、選択したアプリケーションがストアされているか否かを判断する(S2703)。
選択したアプリケーションがストアされている場合(S2703のYES)、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)する。ここで、未だXAIT情報に記述の全てのアプリケーションを選択していない場合(S2707のNO)、AM1205bは次のアプリケーションを選択しストア処理を進める。既にXAIT情報に記述の全てのアプリケーションを選択している場合には(S2707のYES)、AM1205bは、ストア処理を終了する。
一方、選択したアプリケーションがストアされていない場合(S2703のNO)、ストアアプリ決定部2602は、ストア領域残容量取得部2606からストア領域の残容量を取得し、アプリケーション容量取得部2607からアプリケーション容量を取得する(S2704)。そして、ストア領域残容量取得部2606から取得したストア領域の残容量とアプリケーション容量取得部2607から取得したアプリケーション容量に基づき、ストアアプリ決定部2602は、ストア領域の残容量が選択したアプリケーションの容量より大きいか否かを判断する(S2705)。
ストア領域の残容量が選択したアプリケーションの容量より大きいと判断した場合(S2705のYES)、ストア部2603は選択したアプリケーションをストアする(S2706)。そして、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、ストアアプリ決定部2602がストア領域の残容量が選択したアプリケーションの容量より小さいと判断した場合(S2705のYES)、図39に示すように、AM1205bは、既にストアされているアプリケーションがあるか否かを判断する(S2801)。
既にストアされているアプリケーションがある場合には(S2801のYES)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストアする際に、既にストアされているアプリケーションがある為にストア領域2201の容量が不足する場合には、ストアアプリ決定部2602は、ストア優先度比較部2601から個々のアプリケーションに指定されたストア優先度2006の比較結果を取得する(S2802)。その比較結果に基づいて、ストアアプリ決定部2602は、ストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットを決定する(S2803)。ここで、ストアアプリ決定部2602は、既にストアされているアプリケーションの中で、選択したアプリケーションのストア優先度よりもストア優先度の低いアプリケーションがある場合には、ストア領域の残容量が選択したアプリケーションの容量以上になるように、それらの既にストアされているアプリケーションを、ストア領域から削除することを決定し、選択したアプリケーションをストアすることを決定する。但し、それらの既にストアされているアプリケーションをストア領域から削除してもストア領域の残容量が選択したアプリケーションの容量以上にならない場合には、ストアアプリ決定部2602は、それらの既にストアされているアプリケーションはストア領域から削除せず、選択したアプリケーションをストアしないことを決定する。続いて、ストアアプリ決定部2602は、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定したか削除しないことを決定したかを判定する(S2804)。
ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合(S2804のYES)、ストアアプリ決定部2602は、通知部2605に削除通知を指示する。そして、通知部2605は、ストアアプリ決定部2602の決定結果に従い、ユーザにアプリケーションが削除されることを通知する(S3601)。ここで、通知部2605によるユーザへのアプリケーション削除通知は、通知部2605が端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、図38に示すような削除通知をディスプレイ509に表示することにより実現される。ダイアログボックス3001は、メッセージ3002及びOKボタン3701の表示要素をもつ。ユーザがOKボタン3701をリモコン操作等により選択すると、CPU514はAM1205bの応答受付部3501にユーザからの選択情報を送る。応答受付部3501はユーザからの選択情報を受けると、ストアアプリ決定部2602に通知確認情報を通知する(S3602)。ストアアプリ決定部2602は、応答受付部3501から通知確認情報の通知を受けると、ストア削除部2604に、アプリケーションをストア領域2201から削除するように指示し、ストア部2603に、アプリケーションのストアを指示する。即ち、応答受付部3501は、ユーザの選択情報を受けると、その選択情報をストアアプリ決定部2602を介してストア削除部2604及びストア部2603に通知する。そして、ストア削除部2604は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストア領域2201から削除し(S2806)、ストア部2603は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストアする(S2706)。そして、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断する(S2707)。そして、AM1205bは、上述と同様、未だXAIT情報に記述の全てのアプリケーションを選択していない場合、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除しないことを決定した場合(S2804のNO)、選択されたアプリケーションをストアするストア領域を確保することができない。そこで、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、既にストアされているアプリケーションがない場合には(S2801のNO)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足するが、既にストアされているアプリケーションがない場合には、選択されたアプリケーションをストアするストア領域を確保することができない。そこで、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
なお、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足するが、既にストアされているアプリケーションがない場合には、選択されたアプリケーションをストアするストア領域を確保することができないので、AM1205bは選択したアプリケーションをストアせずにストア処理を終了してもよい。
ここで、既にストアされているアプリケーションがXAIT情報に記述されていない場合、ストア優先度比較部2601は、そのアプリケーションのストア優先度は最低値であるとみなすとした。このような場合、ストアアプリ決定部2602は、そのアプリケーションのストア領域2201からの削除を無条件に決定する等の方法を取ってもよい。
なお、応答受付部3501にタイムアウト時間をユーザが設定可能とし、応答受付部3501がそのタイムアウト時間の間にユーザからの応答がなかった場合には、ストア削除部2604は、ユーザによりアプリケーション削除通知が確認されてOKボタン3701が選択されものとみなし、ストア領域2201からアプリケーションを削除するなどとしても良い。
このように、実施の形態2により、アプリケーションがストア領域2201から削除される場合には、ユーザにアプリケーションが削除されることを通知し、ユーザの確認が得られた後に、アプリケーションをストア領域2201から削除することにより、ユーザは、既にストアされていたアプリケーションの削除に起因する、XAIT情報の取得からアプリケーション起動までの時間が遅くなる等のアプリケーションの挙動変化を、より確実に、前もって知ることができる。
(実施の形態3)
実施の形態2では、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合、通知部2605は、ユーザにアプリケーションが削除されることを通知し、応答受付部3501がユーザの通知確認情報を受ける。その後に、ストア削除部2604は、ストアアプリ決定部2602の決定に従い、アプリケーションをストア領域2201から削除する。しかし、このような実施の形態2では、ユーザは、アプリケーションのストア領域2201からの削除を拒絶することができない。例えば、ユーザが、あるアプリケーションをストア領域2201から削除したくない場合でも、ストア領域2201から削除されてしまう可能性がある。
そこで、本実施の形態においては、さらに、AM1205bのストアアプリ決定部2602は、ユーザからの応答受付部3501が受付けたユーザからの応答情報に従い、その決定結果を変更できる。
本実施の形態において、通知部2605は、ストアアプリ決定部2602が既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合において、ストア削除部2604がアプリケーションをストア領域2201から削除する前に、ユーザにアプリケーションを削除してもよいか確認する。ここで、通知部2605によるユーザへのアプリケーション削除通知は、通知部2605が端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、図40に示すような削除通知をディスプレイ509に表示することにより実現される。
図40は、本実施の形態におけるディスプレイ509が表示する削除通知の一例を示す図である。
ダイアログボックス3001は、メッセージ4001とYesボタン4002とNoボタン4003の表示要素をもつ。なお、メッセージ4001の文字列は、ユーザにアプリケーションの削除を通知する為に必要な情報を提供できる方法であれば、図40中の文字列に限定されず他の文字列であってもよく、また、メッセージ4001の形式は文字列に限定されず他の形式であってもよい。また、Yesボタン4002及びNoボタン4003の文字列は、図40中の文字列に限定されず他の文字列であってもよい。また更に、ダイアログボックス3001の表示要素は、図40の表示要素に限定されず、ユーザにアプリケーションの削除を通知し、ユーザが削除通知の許可または拒否を選択したことをCPU514が認識できるものであれば、他の表示要素であってもよい。
また、本実施の形態において、応答受付部3501は、CPU514から、ユーザが上記Yesボタン4002または上記Noボタン4003の選択によりアプリケーションの削除を許可または拒否した時におけるユーザからの選択情報を受付ける。そして、応答受付部3501は、CPUから選択情報を受付けた時に、その選択情報が、アプリケーションの削除の許可を示すものか、アプリケーションの削除の拒否を示すものかを判定する。アプリケーションの削除の許可を示す場合には、応答受付部3501は、ストアアプリ決定部2602に通知確認情報を通知し、アプリケーションの削除の拒否を示す場合には、ストアアプリ決定部2602に通知拒否情報を通知する。
さらに、本実施の形態において、ストアアプリ決定部2602は、実施の形態1と同様の方法により、ストア領域2201にストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットを決定する。そして、既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合には、ストアアプリ決定部2602は、通知部2605への通知指示と、ストア部2603へのアプリケーションのストア指示と、ストア削除部2604へのアプリケーション削除指示を行う。但し、本実施の形態において、ユーザがアプリケーション削除を許可した場合には、ストアアプリ決定部2602は、応答受付部3501から通知確認情報の通知を受けて初めて、ストア部2603へアプリケーションの削除指示を行い、ストア削除部2604へアプリケーションの削除指示を行う。一方、ユーザがアプリケーションの削除を許可しない場合には、ストアアプリ決定部2602は、応答受付部3501から通知拒否情報の通知を受けると、ストア領域2201から削除するアプリケーションと、ストアするアプリケーションとのセットの決定を変更する。
ここで、決定の変更は例えば、ストアアプリ決定部2602は、ストア優先度の次に低いアプリケーションをストア領域2201から削除することを決定する等の方法により実現される。なお、ユーザがストア領域からの削除を拒否したアプリケーションを削除しないことが実現できれば、他の方法であってもよい。
そして、この決定の変更後に初めて、その変更した決定結果に従わせるように、ストアアプリ決定部2602は、ストア部2603へアプリケーションのストア指示を行い、アプリケーションのストア削除部2604へアプリケーションの削除指示を行う。
図41及び図42は、本実施の形態における、XAIT情報を受け取ったAM1205bによる、アプリケーションのストア処理の特徴的な動作の一例を示すフローチャートである。これらの図41及び図42は、図29に示すステップS2705からの処理を示すものであって、特に、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足する場合における、AM1205bによるストア処理動作の一例を示す。
図41において、図30と同じステップには、図30と同じ番号を付した。
図29に示すように、AM1205bがXAIT情報を受け取ると(S2701)、XAIT情報に記述されたアプリケーションからストア優先度の高いものから順にまだ選ばれていないアプリケーションを1つ選択する。但しここで、受け取ったXAIT情報に従ったストア処理において、ストア削除部2604がストア領域2201から既に削除したアプリケーションを除くアプリケーションを1つ選択する(S2702)。そして、AM1205bは、選択したアプリケーションがストアされているか否かを判断する(S2703)。
選択したアプリケーションがストアされている場合(S2703のYES)、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断(S2707)する。ここで、未だXAIT情報に記述の全てのアプリケーションを選択していない場合(S2707のNO)、AM1205bは次のアプリケーションを選択しストア処理を進める。既にXAIT情報に記述の全てのアプリケーションを選択している場合には(S2707のYES)、AM1205bは、ストア処理を終了する。
一方、選択したアプリケーションがストアされていない場合(S2703のNO)、ストアアプリ決定部2602は、ストア領域残容量取得部2606からストア領域の残容量を取得し、アプリケーション容量取得部2607からアプリケーション容量を取得する(S2704)。そして、ストア領域残容量取得部2606から取得したストア領域の残容量とアプリケーション容量取得部2607から取得したアプリケーション容量に基づき、ストアアプリ決定部2602は、ストア領域の残容量が選択したアプリケーションの容量より大きいか否かを判断する(S2705)。
ストア領域の残容量が選択したアプリケーションの容量より大きいと判断した場合(S2705のYES)、ストア部2603は選択したアプリケーションをストアする(S2706)。そして、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、ストアアプリ決定部2602がストア領域の残容量が選択したアプリケーションの容量より小さいと判断した場合(S2705のYES)、図41に示すように、AM1205bは、既にストアされているアプリケーションがあるか否かを判断する(S2801)。
既にストアされているアプリケーションがある場合には(S2801のYES)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストアする際に、既にストアされているアプリケーションがある為にストア領域2201の容量が不足する場合には、ストアアプリ決定部2602は、ストア優先度比較部2601から個々のアプリケーションに指定されたストア優先度2006の比較結果を取得する(S2802)。その比較結果に基づいて、ストアアプリ決定部2602は、ストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットを決定する(S2803)。ここで、ストアアプリ決定部2602は、既にストアされているアプリケーションの中で、選択したアプリケーションのストア優先度よりもストア優先度の低いアプリケーションがある場合には、ストア領域の残容量が選択したアプリケーションの容量以上になるように、それらの既にストアされているアプリケーションを、ストア領域から削除することを決定し、選択したアプリケーションをストアすることを決定する。但し、それらの既にストアされているアプリケーションをストア領域から削除してもストア領域の残容量が選択したアプリケーションの容量以上にならない場合には、ストアアプリ決定部2602は、それらの既にストアされているアプリケーションはストア領域から削除せず、選択したアプリケーションをストアしないことを決定する。続いて、ストアアプリ決定部2602は、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定したか削除しないことを決定したかを判定する(S2804)。
ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合(S2804のYES)、ストアアプリ決定部2602は、通知部2605に削除通知を指示する。そして、通知部2605は、ユーザにアプリケーションを削除してもよいか確認する(S3801)。ここで、通知部2605によるユーザへのアプリケーション削除通知は、通知部2605が端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、図40に示すような削除通知をディスプレイ509に表示することにより実現される。ダイアログボックス3001は、メッセージ4001とYesボタン4002とNoボタン4003の表示要素をもつ。
ユーザがYesボタン4002またはNoボタン4003をリモコン操作等により選択すると、CPU514はAM1205bの応答受付部3501にユーザからの選択情報を送る。
応答受付部3501は、CPU514からユーザの選択情報を受け取ると、ユーザの選択情報が、アプリケーションの削除の許可を示すものか、アプリケーションの削除の拒否を示すものかを判定する(S3802)。
ユーザの選択情報が、アプリケーションの削除の許可を示す場合、応答受付部3501は、ストアアプリ決定部2602に通知確認情報を通知する(S3803)。ストアアプリ決定部2602は、応答受付部3501から通知確認情報の通知を受けると、ストア削除部2604に、アプリケーションをストア領域2201から削除するように指示し、ストア部2603に、アプリケーションのストアを指示する。そして、ストア削除部2604は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストア領域2201から削除し(S2806)、ストア部2603は、図29に示すように、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストアする(S2706)。そして、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合(S2707のNO)、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報記述の全てのアプリケーションを選択している場合(S2707のYES)にはストア処理を終了する。
一方、ユーザの選択情報が、アプリケーションの削除の拒否を示す場合(S3802のNO)、図42に示すように、応答受付部3501は、ストアアプリ決定部2602に通知拒否情報を通知する(S3901)。ストアアプリ決定部2602は、応答受付部3501から通知拒否情報の通知を受けると、ストア領域2201から削除するアプリケーションと、ストアするアプリケーションとのセットの決定を変更する(S3902)。ここでは、ストアアプリ決定部2602は、ストア優先度の次に低いアプリケーションをストア領域2201から削除することを決定する。但し、削除するアプリケーションのストア優先度は、ストアするアプリケーションのストア優先度よりも低くなるように決定する。ストアするアプリケーションのストア優先度よりも低いストア優先度をもつアプリケーションがストア領域2201に存在しない場合には、アプリケーションをストア領域2201から削除しないと決定する。
続いて、ストアアプリ決定部2602は、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定したか否かを判定する(S3903)。ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201からの削除すると決定した場合には(S3903のYES)、ストアアプリ決定部2602は、再度、通知部2605に削除通知を指示する。そして、再度、通知部2605は、ユーザにアプリケーションを削除してもよいか確認して(S3801)、ストア処理を継続する。一方、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除しないことを決定した場合(S3903のNO)、選択されたアプリケーションをストアするストア領域を確保することができない。そこで、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合には(S2707のNO)、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報記述の全てのアプリケーションを選択している場合(S2707のYES)にはストア処理を終了する。
一方、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除しないことを決定した場合には(S2804のNO)、選択されたアプリケーションをストアするストア領域を確保することができない。そこで、AM1205bは、上述と同様、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合には、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、既にストアされているアプリケーションがない場合には(S2801のNO)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足するが、既にストアされているアプリケーションがない場合には、選択されたアプリケーションをストアするストア領域を確保することができない。そこで、AM1205bは、上述と同様、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合には、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
なお、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足するが、既にストアされているアプリケーションがない場合には、選択されたアプリケーションをストアするストア領域を確保することができない。そこで、AM1205bは選択したアプリケーションをストアせずにストア処理を終了してもよい。
ここで、既にストアされているアプリケーションがXAIT情報に記述されていない場合、ストア優先度比較部2601は、そのアプリケーションのストア優先度は最低値であるとみなすとした。このような場合、ストアアプリ決定部2602は、そのアプリケーションのストア領域2201からの削除を無条件に決定する等の方法を取ってもよい。
また、ここでは、応答受付部3501がユーザの通知拒否情報を受けると、ストアアプリ決定部2602は、ストア領域2201から削除するアプリケーションと、ストアするアプリケーションとのセットの決定を変更することにより、ユーザが削除を拒否したアプリケーションがストア領域2201から削除されないことを実現している。しかし、AM1205bがXAIT情報を更新して、アプリケーションのストア優先度を変更することにより、ユーザが削除を拒否したアプリケーションがストア領域2201から削除されないことを実現してもよい。例えば、ユーザが削除を拒否したアプリケーションのストア優先度を最大値に再設定するなどの方法をとってもよい。
このように実施の形態3では、ユーザは、アプリケーションをストア領域2201から削除するとの確認を受けた際に、そのアプリケーションがストア領域2201からの削除されること拒否することができる。そして、ユーザが削除を拒否したアプリケーションはストア領域2201から削除しないことが実現できる。
(実施の形態4)
本実施の形態では、更に、AM1205bがヘッドエンド101から送信されるXAIT情報の受け取り時に、そのXAIT情報の保存、及び、アプリケーションのストア処理やアプリケーション起動指示などのXAIT情報の記述に従う処理を行う前に、そのXAIT情報を受け取って良いか否か、つまり、そのXAIT情報の記述に従う処理を行って良いか否かの決定権を与えるAPIを、特別な権限をもつアプリケーションに提供する。更に、本実施の形態では、XAIT情報に記述のストア優先度を変更するAPIを、特別な権限をもつアプリケーションに提供する。
ここで、ヘッドエンド101から送信されるXAIT情報の受け取り時に、そのXAIT情報を受け取って良いか否かの決定権を与えるAPIは公知の技術にて実現されている。ヘッドエンド101から送信されるXAIT情報の受け取り時に、そのXAIT情報を受け取って良いか否かの決定権を、特別な権限をもつアプリケーションに対して与えるAPIは、OCAP仕様(OCAP 1.0 Profile OC−SP−OCAP1.0−IF−I09−031121)のAnnexG OCAP 1.0 Application APIにおいて、org.ocap.application.AppManagerProxyクラスのsetAppSignalHandlerメソッドとして定義されている。
以降、実施の形態1に記述したXAIT情報を更新するAPIや、XAIT情報に記述のストア優先度を変更するAPI、ヘッドエンド101から送信されるXAIT情報の受け取り時に、そのXAIT情報を受け取って良いか否かの決定権を与えるAPIなどの、各APIを区別するときには、それぞれを更新API、変更API、及び決定APIという。そして、これらの各APIを提供される特別な権限をもつアプリケーションを、モニターアプリケーションと呼ぶ。
本実施の形態において、XAIT情報に記述のストア優先度を変更するAPIは、ヘッドエンド101から送信されるXAIT情報に記述のアプリケーションのストア優先度をモニターアプリケーションが変更できるようにするためのAPIである。
本実施の形態において、AM1205bは、モニターアプリケーションから、決定APIを利用してXAIT情報を受け取って良いか否かの決定権を与えるよう依頼を受けていた場合、AM1205bは、ヘッドエンド101から送信されるXAIT情報の受け取り時に、モニターアプリケーションへ、そのXAIT情報を受け取って良いか否かの決定を委ねる。
モニターアプリケーションは、そのXAIT情報の受け取りを許可した場合には、ヘッドエンド101から送信された上記XAIT情報を受け取り、または、変更APIを用いる場合には、その変更されたXAIT情報を受け取る。そして、AM1205bは、実施の形態1または2いずれかに記述の方法により、そのXAIT情報を受け取り、XAIT情報記述のアプリケーションのストア処理を行う。なおここで、モニターアプリケーションの判断のみに任せず、より厳重にストア優先度の重なりに対処するために実施の形態3に記述の処理を行っても良い。一方、モニターアプリケーションは、そのXAIT情報の受け取りを拒否した場合には、ヘッドエンド101から送信された上記XAIT情報を無視する。
また、AM1205bは、モニターアプリケーションからXAIT情報を受け取って良いか否かの決定権を与えるよう依頼を受けてない場合には、実施の形態1または2いずれかに記述の方法により、XAIT情報を受け取り、XAIT情報に記述のアプリケーションのストア処理を行う。なお、モニターアプリケーションの判断のみに任せず、より厳重にストア優先度の重なりに対処するために実施の形態3に記述の処理を行っても良い。
また、XAIT情報の受け取りが、更新APIの利用によりモニターアプリケーションが行うXAIT情報の更新や、変更APIの利用によりモニターアプリケーションが行うXAIT情報の変更、に起因する場合は、AM1205bは、モニターアプリケーションへ、そのXAIT情報を受け取って良いか否かの決定を委ねず、実施の形態1または2いずれかに記述の方法により、XAIT情報を受け取り、XAIT情報記述のアプリケーションのストア処理を行う。
なお、モニターアプリケーションの判断のみに任せず、より厳重にストア優先度の重なりに対処するために実施の形態3に記述の処理を行っても良い。
本実施の形態において、モニターアプリケーションは、決定APIを用いてヘッドエンド101から送信されるXAIT情報を受け取るときには、AM1205bに対して、モニターアプリケーション自身へそのXAIT情報を受け取って良いか否かの決定を委ねるよう依頼する。
モニターアプリケーションは、AM1205bからXAIT情報を受け取って良いか否かの決定を委ねられると、実施の形態1〜2においてAM1205bが行ったのと同様の動作を行う。即ち、モニターアプリケーションは、そのXAIT情報に記述されたアプリケーション及び既にストアされているアプリケーションのうち、ストア優先度の高いアプリケーションを優先的にストアすることを決定し、ストア優先度の低いアプリケーションから順に、ストア領域2201から削除することを決定する。ここで、モニターアプリケーションは、ストア優先度を比較する手段、ストア領域の残容量を取得する手段、既にストアされているアプリケーション及びXAIT情報に記述されているアプリケーションの容量を取得する手段をもつ。
そして、既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合には、モニターアプリケーションは、ユーザにアプリケーション削除通知を表示する。ここで、モニターアプリケーションによるユーザへのアプリケーション削除通知は、実施の形態3における通知部2605によるユーザへのアプリケーション削除通知と同様の方法により実現される。モニターアプリケーションが端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、図40に示すような削除通知をディスプレイ509に表示することにより実現される。ダイアログボックス3001は、メッセージ4001と、Yesボタン4002と、Noボタン4003の表示要素をもつ。なお、メッセージ4001の文字列は、ユーザにアプリケーションの削除を通知する為に必要な情報を提供できる方法であれば、図40中の文字列に限定されず他の文字列であってもよく、また、メッセージ4001の形式は文字列に限定されず他の形式であってもよい。また、Yesボタン4002及びNoボタン4003の文字列は、図40中の文字列に限定されず他の文字列であってもよい。また更に、ダイアログボックス3001の表示要素は、図40の表示要素に限定されず、ユーザにアプリケーションの削除を通知し、ユーザが削除通知を許可または拒否を選択したことをCPU514が認識できるものであれば、他の表示要素であってもよい。
モニターアプリケーションは、CPU514から、ユーザが上記Yesボタン4002または上記Noボタン4003の選択によりアプリケーションの削除を許可または拒否した時におけるユーザからの選択情報を受付ける。そして、モニターアプリケーションは、CPUから選択情報を受付けた時に、その選択情報が、アプリケーションの削除の許可を示すものか、アプリケーションの削除の拒否を示すものかを判定する。そして、選択情報が、アプリケーションの削除の許可を示す場合には、AM1205bに対し、XAIT情報の受け取りを許可する。一方、選択情報がアプリケーションの削除の拒否を示す場合には、モニターアプリケーションが、変更APIを用いて、ユーザが削除を拒否したアプリケーションのストア優先度を最大値に変更すること等により、ユーザが削除を拒否したアプリケーションがストア領域2201から削除されないことを実現する。なお、AM1205bに対し、XAIT情報の受け取りを拒否することにより、ユーザが削除を拒否したアプリケーションがストア領域2201から削除されないことを実現してもよい。
図43は、本実施の形態における、ヘッドエンド1205bからXAIT情報を受け取ったAM1205bによるXAIT情報の扱いの動作を示すフローチャートである。
図43に示すように、AM1205bは、ヘッドエンド101からXAIT情報を受け取ると(S4101)、モニターアプリケーションから、XAIT情報を受け取って良いか否かの決定APIを用いた決定権を与えるよう依頼を受けているか否かを判断する(S4102)。モニターアプリケーションから、XAIT情報を受け取って良いか否かの決定権を与えるよう依頼を受けていた場合、モニターアプリケーションへ、そのXAIT情報を受け取って良いか否かの決定を委ねる(S4103)。
図44は、本実施の形態における、モニターアプリケーションの動作の一例を示すフローチャートである。特に、この動作の一例においては、モニターアプリケーションはAM1205bに対し、XAIT情報を受け取って良いか否かの決定APIを用いることによる決定権を与えるよう依頼しているものとする。
この図44に示すように、AM1205bからXAIT情報を受け取って良いか否かの決定を委ねられたモニターアプリケーションは(S4201)、そのXAIT情報に記述されたアプリケーション及び既にストアされているアプリケーションのうち、ストア領域2201にストアするアプリケーションのセットと、ストア領域2201から削除するアプリケーションのセットとを決定する(S4202)。ここで、モニターアプリケーションによるストア領域2201にストアするアプリケーションのセットとストア領域2201から削除するアプリケーションのセットとの決定は、例えば、ストア優先度の高いアプリケーションを優先的にストアすることを決定し、ストア優先度の低いアプリケーションから順に、ストア領域2201から削除することを決定する等により実現される。なお、モニターアプリケーションは、その他の方法によりこれらアプリケーションのセットを決定してもよい。続いて、モニターアプリケーションは、モニターアプリケーションが既にストアされていたアプリケーションをストア領域2201から削除すると決定したか否かを判定する(S4203)。モニターアプリケーションが既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合(S4203のYES)、モニターアプリケーションは、ユーザにアプリケーション削除通知を表示する(S4204)。そして、モニターアプリケーションは、ユーザがアプリケーションの削除を許可したか否かを判定し(S4205)、ユーザがアプリケーションの削除を許可した場合(S4205のYES)、モニターアプリケーションはAM1205bに、ヘッドエンド101から送信されたXAIT情報の受け取りを許可する(S4207)。一方、ユーザがアプリケーションのストア領域からの削除を拒否した場合には(S4205のNO)、モニターアプリケーションは、例えば、変更APIを用いて、ユーザが削除を拒否したアプリケーションのストア優先度を最大値に再設定する。これにより、モニターアプリケーションは、ユーザが削除を拒否したアプリケーションがストア領域2201から削除されないようXAIT情報中のストア優先度を変更し(S4206)、AM1205bに、その変更したXAIT情報の受け取りを許可する(S4207)。
続いて、AM1205bは、図43に示すように、モニターアプリケーションがそのXAIT情報の受け取りを許可したか否かを判定する(S4104)。AM1205bは、モニターアプリケーションがそのXAIT情報の受け取りを拒否した場合には(S4104のNO)、AM1205bは、ストア処理を終了する。一方、AM1205bは、モニターアプリケーションがそのXAIT情報の受け取りを許可した場合には(S4104のYES)、図29に示すように、ヘッドエンド101から送信された上記XAIT情報を受け取り、または、モニターアプリケーションが変更APIを用いていた場合には、その変更されたXAIT情報を受け取る(S2701)。そして、AM1205bは、そのXAIT情報に記述されたアプリケーションからストア優先度の高いものから順にまだ選ばれていないアプリケーションを1つ選択する。但しここで、受け取ったXAIT情報に従ったストア処理において、ストア削除部2604が既にストア領域2201から削除したアプリケーションを除くアプリケーションを1つ選択する(S2702)。そして、AM1205bは、選択したアプリケーションがストアされているか否かを判断する(S2703)。
選択したアプリケーションがストアされている場合(S2703のYES)、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合、AM1205bは次のアプリケーションを選択してストア処理を進め、既にXAIT情報記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、選択したアプリケーションがストアされていない場合(S2703のNO)、ストアアプリ決定部2602は、ストア領域残容量取得部2606からストア領域の残容量を取得し、アプリケーション容量取得部2607からアプリケーション容量を取得する(S2704)。そして、ストア領域残容量取得部2606から取得したストア領域の残容量とアプリケーション容量取得部2607から取得したアプリケーション容量に基づき、ストアアプリ決定部2602は、ストア領域の残容量が選択したアプリケーションの容量より大きいか否かを判断する(S2705)。
ストア領域の残容量が選択したアプリケーションの容量より大きいと判断した場合(S2705のYES)、ストア部2603は選択したアプリケーションをストアする(S2706)。そして、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、ストアアプリ決定部2602がストア領域の残容量が選択したアプリケーションの容量より小さいと判断した場合(S2705のNO)、AM1205bは、図30に示すように、既にストアされているアプリケーションがあるか否かを判断する(S2801)。
既にストアされているアプリケーションがある場合には(S2801のYES)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストアする際に、既にストアされているアプリケーションがある為にストア領域2201の容量が不足する場合には、ストアアプリ決定部2602は、ストア優先度比較部2601から個々のアプリケーションに指定されたストア優先度2006の比較結果を取得する(S2802)。そしてストアアプリ決定部2602は、その比較結果に基づいて、ストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットを決定する(S2803)。ここで、ストアアプリ決定部2602は、既にストアされているアプリケーションの中で、選択したアプリケーションのストア優先度よりもストア優先度の低いアプリケーションがある場合には、ストア領域の残容量が選択したアプリケーションの容量以上になるように、それらの既にストアされているアプリケーションをストア領域から削除することを決定し、選択したアプリケーションをストアすることを決定する。但し、それらの既にストアされているアプリケーションをストア領域から削除してもストア領域の残容量が選択したアプリケーションの容量以上にならない場合には、それらの既にストアされているアプリケーションはストア領域から削除せず、選択したアプリケーションをストアしないことを決定する。続いて、ストアアプリ決定部2602は、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定したか削除しないことを決定したかを判定する(S2804)。
ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合(S2804のYES)、ストアアプリ決定部2602は、通知部2605に削除通知を指示し、ストア削除部2604に、アプリケーションのストア領域2201からの削除を指示し、ストア部2603に、アプリケーションのストアを指示する。そして、通知部2605は、ストアアプリ決定部2602の決定結果に従い、ユーザにアプリケーションが削除されることを通知する(S2805)。そして、ストア削除部2604は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストア領域2201から削除し(S2806)、ストア部2603は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストアする(S2706)。そして、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合には、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除しないことを決定した場合(S2804のNO)、選択されたアプリケーションをストアするストア領域を確保することができない。そこで、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合には、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、既にストアされているアプリケーションがない場合には(S2801のNO)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足するが、既にストアされているアプリケーションがない場合には、選択されたアプリケーションをストアするストア領域を確保することができない。そこで、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合には、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
なお、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足するが、既にストアされているアプリケーションがない場合には、選択されたアプリケーションをストアするストア領域を確保することができない。そのため、AM1205bは選択したアプリケーションをストアせずにストア処理を終了してもよい。
ここで、既にストアされているアプリケーションがXAIT情報に記述されていない場合、ストア優先度比較部2601は、そのアプリケーションのストア優先度は最低値であるとみなすとした。しかし、ストアアプリ決定部2602は、そのアプリケーションのストア領域2201からの削除を無条件に決定する等の方法を取ってもよい。
このように、実施の形態4では、モニターアプリケーションがユーザへ削除通知及び、ストア優先度の変更を行うことにより、実施の形態3と同様の効果を得ることができる。即ち、ユーザは、アプリケーションをストア領域2201から削除するとの確認を受けた際に、そのアプリケーションがストア領域2201から削除されることを拒否でき、ユーザが削除を拒否したアプリケーションはストア領域2201から削除されない。
(実施の形態5)
実施の形態1〜3において、AM1205bはストアアプリ決定部2602により、ストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットを決定する際、ストア優先度比較部2601の比較結果に基づき、ストア優先度の高いアプリケーションを優先的にストアすることと、ストア優先度の低いアプリケーションから順に、ストア領域2201から削除することを決定している。しかし、複数のアプリケーションのストア優先度が同じ場合には、いずれのアプリケーションをストア領域2201から削除し、いずれのアプリケーションをストアするのかを決定できない可能性がある。
そのため、本実施の形態においては、さらに、図45に示すように、AM1205bは、ストアアプリ決定部2602が、ストアまたは削除するアプリケーションのセットを決定できない場合に、ユーザに問合せるための問合せ部4301を備える。
図45は、本実施の形態におけるAM1205bの構成を示す構成図である。
問合せ部4301は、ストアアプリ決定部2602より問合せ指示を受けると、いずれのアプリケーションを、ストア領域2201から削除またはストアするのかをユーザに問合せる。ここで、問合せ部4301によるユーザへの問合せは、問合せ部4301が端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、問合せダイアログをディスプレイ509に表示することにより実現される。
そして、問合せ部4301は、CPU514から、ユーザによる削除またはストアするアプリケーションの選択時におけるユーザからの選択情報を受付け、CPU514から選択情報を受付けた時に、その選択情報に基づいて、ストアアプリ決定部2602にアプリケーション選択結果を通知する。
またさらに、本実施の形態において、ストアアプリ決定部2602は、実施の形態1〜3と同様の方法により、ストア領域2201にストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットの決定を試みる。ここでストアまたはストア領域2201から削除するアプリケーションのセット、を決定した場合には実施の形態1〜3と同様のストア処理を継続する。但し、本実施の形態において、ストアアプリ決定部2602は、ストア優先度の等しいアプリケーションが複数存在するために、ストア領域2201から削除またはストアするアプリケーションを決定できない場には、問合せ部4301に問合せ指示を行う。そして、問合せ部4301からアプリケーション選択結果の通知を受けると、そのアプリケーション選択結果に従い、ストア領域2201から削除またはストアするアプリケーションを決定する。そして、この決定後に、実施の形態1〜3いずれかと同様の方法で、通知部2605への通知指示、ストア部2603へのアプリケーションの削除指示を行い、ストア部2604へアプリケーションのストア指示を行う。
図46及び図47は、本実施の形態における、XAIT情報を受け取ったAM1205bによる、アプリケーションのストア処理の特徴的な動作の一例を示すフローチャートである。これらの図46及び図47は、図29に示すステップS2705からの処理を示すものであって、特に、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足する場合における、AM1205bによるストア処理動作の一例を示す。
図46において、図30と同じステップには、図30と同じ番号を付した。
図29に示すように、AM1205bがXAIT情報を受け取ると(S2701)、XAIT情報に記述されたアプリケーションからストア優先度の高いものから順にまだ選ばれていないアプリケーションを1つ選択する。但しここで、受け取ったXAIT情報に従ったストア処理において、ストア削除部2604がストア領域2201から既に削除したアプリケーションを除くアプリケーションを1つ選択する(S2702)。そして、AM1205bは、選択したアプリケーションがストアされているか否かを判断する(S2703)。
選択したアプリケーションがストアされている場合(S2703のYES)、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断する(S2707)。ここで、未だXAIT情報に記述の全てのアプリケーションを選択していない場合(S2707のNO)、AM1205bは次のアプリケーションを選択しストア処理を進める。既にXAIT情報に記述の全てのアプリケーションを選択している場合には(S2707のYES)、AM1205bは、ストア処理を終了する。
一方、選択したアプリケーションがストアされていない場合(S2703のNO)、ストアアプリ決定部2602は、ストア領域残容量取得部2606からストア領域の残容量を取得し、アプリケーション容量取得部2607からアプリケーション容量を取得する(S2704)。そして、ストア領域残容量取得部2606から取得したストア領域の残容量とアプリケーション容量取得部2607から取得したアプリケーション容量に基づき、ストアアプリ決定部2602は、ストア領域の残容量が選択したアプリケーションの容量より大きいか否かを判断する(S2705)。
ストア領域の残容量が選択したアプリケーションの容量より大きいと判断した場合(S2705のYES)、ストア部2603は選択したアプリケーションをストアする(S2706)。そして、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、ストアアプリ決定部2602がストア領域の残容量が選択したアプリケーションの容量より小さいと判断した場合(S2705のYES)、図46に示すように、AM1205bは、既にストアされているアプリケーションがあるか否かを判断する(S2801)。
既にストアされているアプリケーションがある場合には(S2801のYES)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストアする際に、既にストアされているアプリケーションがある為にストア領域2201の容量が不足する場合には、ストアアプリ決定部2602は、ストア優先度比較部2601から個々のアプリケーションに指定されたストア優先度2006の比較結果を取得する(S2802)。その比較結果に基づいて、ストアアプリ決定部2602は、ストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットを決定する(S2803)。ここで、ストアアプリ決定部2602は、既にストアされているアプリケーションの中で、選択したアプリケーションのストア優先度よりもストア優先度の低いアプリケーションがある場合には、ストア領域の残容量が選択したアプリケーションの容量以上になるように、それらの既にストアされているアプリケーションを、ストア領域から削除することを決定し、選択したアプリケーションをストアすることを決定する。但し、それらの既にストアされているアプリケーションをストア領域から削除してもストア領域の残容量が選択したアプリケーションの容量以上にならない場合には、ストアアプリ決定部2602は、それらの既にストアされているアプリケーションはストア領域から削除せず、選択したアプリケーションをストアしないことを決定する。
続いて、ストアアプリ決定部2602は、ストア領域2201から削除またはストアするアプリケーションを決定できたか否かを判断する(S4401)。ここで、ストア優先度の等しいアプリケーションが複数存在するために、ストア領域2201から削除またはストアするアプリケーションを決定できない場合(S4401)、図47に示すように、問合せ部4301は、いずれのアプリケーションを、ストア領域2201から削除またはストアするのかをユーザに問合せる(S4501)。ここで、問合せ部4301によるユーザへの問合せは、問合せ部が端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、図48〜図50に示すような問合せダイアログをディスプレイ509に表示することにより実現される。
図48〜図50は、本実施の形態におけるディスプレイ509が表示する問合せダイアログの例を示す図である。
ダイアログボックス3001は、メッセージ4603と、アプリケーション選択ボタン4601、4602との表示要素をもつ。図48は、既にストアされている2つのアプリケーションのストア優先度が同じであるために、ストアアプリ決定部2602が、ストア領域2201から削除するアプリケーションのセットを決定できない場合において、いずれのアプリケーションをストア領域2201から削除すべきかをユーザに問合せるディスプレイ表示の一例である。即ち、ストアアプリ決定部2602は、このとき、ストア優先度の等しい2つのアプリケーションを共にストアしておくことができないと判別している。図49は、未だストアされていない2つのアプリケーションのストア優先度が同じであるために、ストアアプリ決定部2602が、ストア領域2201にストアするアプリケーションを決定できない場合において、いずれのアプリケーションをストア領域2201にストアすべきかをユーザに問合せるディスプレイ表示の一例である。即ち、ストアアプリ決定部2602は、このとき、ストア優先度の等しい2つのアプリケーションを共にストアすることができないと判別している。図50は、既にストアされているアプリケーションと、未だストアされていないアプリケーションのストア優先度が同じであるために、ストアアプリ決定部2602が、ストア領域2201から削除またはストアするアプリケーションを決定できない場合において、いずれのアプリケーションをストア領域2201にストアすべきかをユーザに問合せるディスプレイ表示の一例である。ここで図48〜図50において、メッセージ4603とアプリケーション選択ボタン4601、4602に描かれた「APP3」、「APP4」は、それぞれ2つのアプリケーションのアプリケーション名である。なお、アプリケーション名を用いなくても、ユーザがアプリケーションを選択する為に必要な情報を提供できる方法であれば実施可能である。
なお、図48〜図50において、メッセージ4603の文字列は、ユーザがアプリケーションを選択する為に必要な情報を提供できる方法であれば、図48〜図50中の文字列に限定されず他の文字列であってもよく、また、メッセージ4603の形式は文字列に限定されず他の形式であってもよい。また、アプリケーション選択ボタン4601及4602の文字列は、図48〜図50中の文字列に限定されず他の文字列であってもよい。また更に、ダイアログボックス3001の表示要素は、図48〜図50中の表示要素に限定されず、リストボックスを使用する等、ユーザがアプリケーションを選択する為に必要な情報を提供でき、ユーザがアプリケーションを選択したことをCPU514が認識できる方法であれば、他の表示要素であってもよい。
続いて、ユーザがアプリケーション選択ボタン4601または4602を選択すると、CPU514はAM1205bの問合せ部4301にユーザからの選択情報を送る。問合せ部4301は選択情報を受ける(S4502)と、その選択情報に基づいて、ストアアプリ決定部2602にアプリケーション選択結果を通知する。ここで、問合せ部4301によるアプリケーション選択結果の通知は、例えば、ダイアログ表示が図48の例の場合、CPU514から受付けた選択情報がボタン4601の選択を示す場合には、問合せ部4301は、アプリケーション名「APP3」をもつアプリケーションの削除をユーザが選択したという結果をストアアプリ決定部2602にアプリケーション選択結果として通知することにより実現される。
そして、ストアアプリ決定部2602は、問合せ部4301からアプリケーション選択結果の通知を受けると、問合せ部4301から取得したアプリケーション選択結果に従い、ストア領域2201から削除またはストアするアプリケーションを決定する(S4503)。
次に、ストアアプリ決定部2602は、図46に示すように、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定したか削除しないことを決定したかを判定する(S2804)。
ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合、ストアアプリ決定部2602は、通知部2605に削除通知を指示する。そして、通知部2605は、ストアアプリ決定部2602の決定結果に従い、ユーザにアプリケーションが削除されることを通知する(S2805)。また、ストア削除部2604は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストア領域2201から削除し(S2806)、ストア部2603は、図29に示すように、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストアする(S2706)。
なお、上述の図46に示すステップS2804以降の処理を、図39に示すステップS2804からの処理としても良い。即ち、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合、ストアアプリ決定部2602は、通知部2605に削除通知を指示する。そして、通知部2605は、ストアアプリ決定部2602の決定結果に従い、ユーザにアプリケーションが削除されることを通知する(S3601)。ここで、通知部2605によるユーザへのアプリケーション削除通知は、通知部2605が端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、図38に示すような削除通知をディスプレイ509に表示することにより実現される。ダイアログボックス3001は、メッセージ3002及びOKボタン3701の表示要素をもつ。ユーザがOKボタン3701をリモコン操作等により選択すると、CPU514はAM1205bの応答受付部3501にユーザの通知確認情報を送る。応答受付部3501はユーザの通知確認情報を受けると(S3602)、ストアアプリ決定部2602に通知確認情報を通知する。ストアアプリ決定部2602は、応答受付部3501からアプリケーション削除通知確認情報の通知を受けると、ストア削除部2604に、アプリケーションのストア領域2201からの削除を指示し、ストア部2603に、アプリケーションのストアを指示する。そして、ストア削除部2604は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストア領域2201から削除し(S2806)、ストア部2603は、図29に示すように、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストアする(S2706)。そして、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合には、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、図46に示すように、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除しないことを決定した場合(S2804のNO)、選択されたアプリケーションをストアするストア領域を確保することができない。そこで、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、図46に示すように、既にストアされているアプリケーションがない場合には(S2801のNO)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足するが、既にストアされているアプリケーションがない場合には、選択されたアプリケーションをストアするストア領域を確保することができない。そこで、AM1205bは、XAIT情報記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合には、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
なお、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足するが、既にストアされているアプリケーションがない場合には、選択されたアプリケーションをストアするストア領域を確保することができないので、AM1205bは選択したアプリケーションをストアせずにストア処理を終了してもよい。
ここで、既にストアされているアプリケーションがXAIT情報に記述されていない場合、ストア優先度比較部2601は、そのアプリケーションのストア優先度は最低値であるとみなすとしたが、このような場合、ストアアプリ決定部2602は、そのアプリケーションのストア領域2201からの削除を無条件に決定する等の方法を取ってもよい。
なお、本実施の形態においては、2つのアプリケーションのストア優先度が同じであるために、ストアアプリ決定部2602が、ストア領域2201から削除またはストアするアプリケーションを決定できない場合を扱ったが、3つ以上のアプリケーションのストア優先度が同じであるために、ストアアプリ決定部2602が、ストア領域2201から削除またはストアするアプリケーションを決定できない場合においても本発明は実施可能である。例えば、既にストアされている3つのアプリケーションのストア優先度が同じであるために、ストアアプリ決定部2602が、ストア領域2201から削除するアプリケーションのセット、を決定できない場合には、問合せ部4301によるユーザへの問合せは、ダイアログ表示プログラムが、3つのアプリケーションからいずれか1つまたは2つのアプリケーションをストア領域2201から削除すべきかをユーザに選択させるダイアログを表示すること等により実現される。
また更に、ストアアプリ決定部2602が、一回の問合せ部4301への問合せ指示に起因する問合せ部4301からのアプリケーション選択結果の通知により、ストア領域2201から削除またはストアするアプリケーションを決定できない場合がある。例えば、3つ以上のアプリケーションのストア優先度が同じであり、かつ、1つのアプリケーションをストア領域2201から削除するだけでは、選択された新規のアプリケーションをストアするのに可能なストア領域を確保できない場合がある。このような場合、ストアアプリ決定部2602は1回目の問合せ部4301からのアプリケーション選択結果の通知の後、続けて、問合せ部4301に問合せ指示を行ってもよい。このとき例えば、1回目の問合せ部4301によるユーザへの問合せは、ダイアログ表示プログラムが、3つのアプリケーションからいずれのアプリケーションをストア領域2201から削除すべきかをユーザに選択させるダイアログを表示すること等により実現され、2回目の問合せ部4301によるユーザへの問合せは、2つのアプリケーションからさらにいずれのアプリケーションをストア領域2201から削除すべきかをユーザに選択させるダイアログを表示すること等により実現される。
このように、実施の形態5により、XAIT情報に記述される複数のアプリケーションのストア優先度が同じ場合においても、ユーザへの問合せにより、いずれのアプリケーションをストア領域2201から削除し、いずれのアプリケーションをストアするのかを決定することができる。さらに、ユーザに選択権を与えることにより、よりユーザが望むアプリケーションのストアを実現することができる。
(実施の形態6)
本実施の形態のAM1205bは、削除対象のアプリケーションが起動中であるときに、そのアプリケーションの取り扱いについてのメッセージを通知する。即ち、OCAP仕様(OCAP 1.0 Profile OC−SP−OCAP1.0−IF−I09−031121)では、ストア優先度の高いアプリケーションを優先的にストアするとともに、起動中のアプリケーションの動作を妨げてはならないことが規定されているため、本実施の形態は、そのような規定を確実に守りつつ、削除対象のアプリケーションの取り扱いについてのメッセージを通知するものである。
図51及び図52は、本実施の形態における、XAIT情報を受け取ったAM1205bによる、アプリケーションのストア処理の特徴的な動作の一例を示すフローチャートである。これらの図51及び図52は、図29に示すステップS2705からの処理を示すものである。また、これらの図51及び図52は、特に、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足する場合であって、かつストア領域にストアされた削除されるべきアプリケーションが起動中である場合における、AM1205bによる、アプリケーションのストア処理動作の一例を示す。
図51において、図30と同じステップには、図30と同じ番号を付した。
ストアアプリ決定部2602が、ストア領域の残容量が選択したアプリケーションの容量より小さいと判断した場合(図29のS2705)、図51に示すように、AM1205bは、既にストアされているアプリケーションがあるか否かを判断する(S2801)。
既にストアされているアプリケーションがある場合には(S2801のYES)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストアする際に、既にストアされているアプリケーションがある為にストア領域2201の容量が不足する場合には、ストアアプリ決定部2602は、ストア優先度比較部2601から個々のアプリケーションに指定されたストア優先度2006の比較結果を取得する(S2802)。その比較結果に基づいて、ストアアプリ決定部2602は、ストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットを決定する(S2803)。ここで、ストアアプリ決定部2602は、既にストアされているアプリケーションの中で、選択したアプリケーションのストア優先度よりもストア優先度の低いアプリケーションがある場合には、ストア領域の残容量が選択したアプリケーションの容量以上になるように、それらの既にストアされているアプリケーションを、ストア領域から削除することを決定し、選択したアプリケーションをストアすることを決定する。但し、それらの既にストアされているアプリケーションをストア領域から削除してもストア領域の残容量が選択したアプリケーションの容量よりも小さい場合には、ストアアプリ決定部2602は、それらの既にストアされているアプリケーションはストア領域から削除せず、選択したアプリケーションをストアしないことを決定する。
続いて、ストアアプリ決定部2602は、ストア領域2201から削除またはストアするアプリケーションを決定できたか否かを判断する(S4401)。ここで、ストア優先度の等しいアプリケーションが複数存在するために、ストア領域2201から削除またはストアするアプリケーションを決定できない場合(S4401のNO)、AM1205bは前述した図47の処理に従う。
次に、ストアアプリ決定部2602は、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定したか削除しないことを決定したかを判定する(S2804)。
ステップS2804において、削除しないと決定した場合には(S2804のNO)、AM1205bは図29のステップS2707からの処理を実行する。
ステップS2804において、削除すると決定した場合には(S2804のYES)、ストアアプリ決定部2602は、削除すべきアプリケーションが起動中であるかどうかを調べる(S5204)。ここで、削除すべきアプリケーションが起動中でない場合(S5204のNO)、AM1205bは図46で説明したステップS2805からの処理と同様の処理を実行する。一方、削除すべきアプリケーションが起動中である場合(S5204のYES)、通知部2605は、起動中のアプリケーションを終了し、削除すれば優先度の高いアプリケーションがストアできるので、削除すべきアプリケーションを終了して削除するかどうかをユーザに問合せるよう問合せ部4301へ依頼する(S5205)。
問合せ部4301は、図52に示すように、起動中のアプリケーションを、ストア領域2201から削除かどうかをユーザに問合せる(S5301)。ここで、問合せ部4301によるユーザへの問合せは、問合せ部が端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、図53に示すような問合せダイアログをディスプレイ509に表示することにより実現される。
図53は、本実施の形態におけるディスプレイ509が表示する問合せダイアログの一例を示す図である。ダイアログボックス3001は、メッセージ5403と、アプリケーション選択ボタン5401、5402との表示要素をもつ。具体的に、図53は、起動中のアプリケーションを終了し、削除すれば優先度の高いアプリケーションがストアできるので、削除すべきアプリケーションを終了して削除するかどうかをユーザに問合せるディスプレイ表示の一例を示す。
なお、図53において、メッセージ5403の文字列は、ユーザが起動中のアプリケーションを削除する為に必要な情報を提供できる方法であれば、文字列の表現は限定されず他の文字列であってもよく、また、メッセージ5403の形式は文字列に限定されず他の形式であってもよい。また、アプリケーション選択ボタン5401及び5402の文字列は、図53中の文字列に限定されず他の同じ意味を持つ文字列であってもよい。また更に、ダイアログボックス3001の表示要素は、図53中の表示要素に限定されず、リストボックスを使用する等、ユーザがアプリケーションを選択する為に必要な情報を提供でき、ユーザがアプリケーションを選択したことをCPU514が認識できる方法であれば、他の表示要素であってもよい。
続いて、ユーザがアプリケーション選択ボタン5401または5402を選択すると、CPU514はAM1205bの問合せ部4301にユーザからの入力情報を送る。問合せ部4301は入力情報を受ける(S5302)と、その入力情報に基づいて、ストアアプリ決定部2602に入力結果を通知する。ここで、問合せ部4301による入力結果の通知は、例えば、ダイアログ表示が図53の例の場合、CPU514から受付けた入力情報がボタン5401の選択を示す場合には、問合せ部は、アプリケーション名「APP3」をもつアプリケーションをストアするために、既にストアされた起動中の「APP2」を終了させた後に削除することをユーザが選択したという結果を、ストアアプリ決定部2602に通知することにより実現される。
そして、ストアアプリ決定部2602は、問合せ部4301から入力結果の通知を受けると、問合せ部4301から取得した入力結果に従い、ストア領域2201から削除するかどうかを決定する(S5303)。その後、ストアアプリ決定部2602は、図51のステップS2806からの処理を実行する。
このように本実施の形態では、削除すべきアプリケーションが起動中であっても、ユーザの意図に沿って、そのアプリケーションを自動的に終了させて削除した後に、優先度の高いアプリケーションがストアされることになる。
(実施の形態7)
本実施の形態は、実施の形態6と同様、OCAP仕様における規定、即ちストア優先度の高いアプリケーションを優先的にストアするとともに、起動中のアプリケーションの動作を妨げてはならないという規定を確実に守りつつ、削除対象のアプリケーションの取り扱いについてのメッセージを通知するものである。ここで、本実施の形態のAM1205bは、削除対象のアプリケーションが起動中であるときに、そのアプリケーションの取り扱いについてのメッセージを通知するが、そのメッセージの内容は実施の形態6の内容とは異なる。また、本実施の形態のAM1205bの動作も、実施の形態6の動作と異なる。以下、本実施の形態のAM1205bの動作について詳細に説明する。
図54は、本実施の形態における、XAIT情報を受け取ったAM1205bによる、アプリケーションのストア処理の特徴的な動作の一例を示すフローチャートである。この図54は、図29に示すステップS2705からの処理を示すものである。また、この図54は、特に、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足する場合であって、かつストア領域にストアされた削除されるべきアプリケーションが起動中である場合における、AM1205bによる、アプリケーションのストア処理動作の一例を示す。
図54において、図30及び図51と同じステップには、図30、図51と同じ番号を付した。
ストアアプリ決定部2602が、ストア領域の残容量が選択したアプリケーションの容量より小さいと判断した場合(図29のS2705)、図54に示すように、AM1205bは、既にストアされているアプリケーションがあるか否かを判断する(S2801)。
既にストアされているアプリケーションがある場合には(S2801のYES)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストアする際に、既にストアされているアプリケーションがある為にストア領域2201の容量が不足する場合には、ストアアプリ決定部2602は、ストア優先度比較部2601から個々のアプリケーションに指定されたストア優先度2006の比較結果を取得する(S2802)。その比較結果に基づいて、ストアアプリ決定部2602は、ストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットを決定する(S2803)。ここで、ストアアプリ決定部2602は、既にストアされているアプリケーションの中で、選択したアプリケーションのストア優先度よりもストア優先度の低いアプリケーションがある場合には、ストア領域の残容量が選択したアプリケーションの容量以上になるように、それらの既にストアされているアプリケーションを、ストア領域から削除することを決定し、選択したアプリケーションをストアすることを決定する。但し、それらの既にストアされているアプリケーションをストア領域から削除してもストア領域の残容量が選択したアプリケーションの容量よりも小さい場合には、ストアアプリ決定部2602は、それらの既にストアされているアプリケーションはストア領域から削除せず、選択したアプリケーションをストアしないことを決定する。
続いて、ストアアプリ決定部2602は、ストア領域2201から削除またはストアするアプリケーションを決定できたか否かを判断する(S4401)。ここで、ストア優先度の等しいアプリケーションが複数存在するために、ストア領域2201から削除またはストアするアプリケーションを決定できない場合(S4401のNO)、AM1205bは前述した図47の処理に従う。
次に、ストアアプリ決定部2602は、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定したか削除しないことを決定したかを判定する(S2804)。
ステップS2804において、削除しないと決定した場合には(S2804のNO)、AM1205bは図29のステップS2707からの処理を実行する。
ステップS2804において、削除すると決定した場合には(S2804のYES)、ストアアプリ決定部2602は、削除すべきアプリケーションが起動中であるかどうかを調べる(S5204)。ここで、削除すべきアプリケーションが起動中でない場合(S5204のNO)、AM1205bは図46で説明したステップS2805からの処理と同様の処理を実行する。一方、削除すべきアプリケーションが起動中である場合(S5204のYES)、通知部2605は、起動中のアプリケーションが終了した後、新しいアプリケーションをストアする旨のメッセージをユーザに通知する(S5206)。
図55は、本実施の形態におけるディスプレイ509が表示するメッセージの一例を示す図である。このメッセージ5603には、起動中のアプリケーションが終了した後、新しいアプリケーションをストアする旨が記載されている。
なお、図55において、メッセージ5603の文字列は、起動中のアプリケーションが終了した後、新しいアプリケーションをストアする旨を提供できる方法であれば、文字列の表現は限定されず他の文字列であってもよい。
次に、ステップS5206の後、AM1205bは削除の対象である起動中のアプリケーションが終了したかどうかを一定時間毎に判断する(S5207)。対象となるアプリケーションが終了していなければ一定時間後に再度ステップS5207の処理を実行する。
ステップS5207において起動中のアプリケーションが終了したと判断した場合(ステップS5207)、AM1205bは、ステップS2806からの処理を実行する。
このように本実施の形態では、削除すべきアプリケーションが起動中であってもユーザに状況を通知した上で、ユーザがアプリケーションを終了した際に、削除すべきアプリケーションを削除し、優先度の高いアプリケーションがストアされることになる。
なお、上述の説明では、ステップS5207において起動中のアプリケーションが終了したと判断された場合に、AM1205bがステップS2806からの処理を実行したが、図54のステップS2801からの処理を実行しても良い。
以上、本発明に係るプログラム実行装置について、実施の形態1〜7を用いて説明したが、本発明は、これらに限定されるものではない。
例えば、実施の形態1〜7では、Java(登録商標)プログラムはJavaで記述された部分と、CPUが直接実行できるバイナリ形式の部分との混合でもよいし、CPUが直接実行できるバイナリ形式のみで構成されていても良い。
また、実施の形態1〜7では、ROM512が保存する内容を2次記憶部510が保存することで、ROM512を削除しても良い。また、2次記憶部510は、複数のサブ2次記憶部で構成し、個々のサブ2次記憶部が異なる情報を保存しても良い。例えば、1つのサブ2次記憶部はチューニング情報のみを保存し、別のサブ2次記憶部は、OS1201のライブラリ1201bを保存し、更に別のサブ2次記憶部は、ダウンロードしたJavaプログラムを保存するなど、詳細に分割することが可能である。
また、実施の形態1〜7においては、登録されたJavaプログラムを2次記憶部510に保存していたが、1次記憶部511に保存しても良い。1次記憶部511に保存する場合、電源OFF時に、保存された情報は全て消える。
また、本発明は、パーソナルコンピュータや携帯電話などの情報機器であれば、適応可能である。
また、POD504は着脱可能な形態としているが、着脱不可能な状態で内蔵されていても良い。なお、内蔵した場合、POD504のCPU706を取り外し、CPU514がCPU706の動作も行っても良い。
また、POD Lib1205eに登録されるJavaプログラムは、ダウンロードされたJavaプログラムだけでなく、予め内蔵されているJavaプログラムでも良い。また、SD(Secure Digital)(登録商標)メモリーカードなどの着脱可能な記憶媒体が着脱されるスロット部を取り付け、その記憶媒体からJavaプログラムを取り込んでも良い。
また、実施の形態1〜7において、Javaプログラムのダウンロードは、DSMCC方式としたが、DSMCC方式に限定されず、他のダウンロード方式であっても良い。例えば、ネットワークに接続するネットワーク部を取り付け、インターネットからJavaプログラムを取り出すといった、IP経由によるJavaプログラムのダウンロード等が可能である。IP経由によるJavaプログラムのダウンロードの場合、AITやXAIT情報におけるDSMCC識別子は不要であり、代わりにJavaプログラムを取得するためのIPアドレスを指定する必要がある。
図56は、IP経由によるJavaプログラムのダウンロードに必要なXAIT情報の一例を示す図である。プロトコル4901はJavaプログラムを取得するために用いられる。IPアドレス4902はJavaプログラムを取得するために用いられる。行4911で定義されるJavaプログラムは、識別子「701」、制御情報「autostart」、プロトコル「http」、IPアドレス「123.456.0.1」、プログラム名「a/APP1Xlet」、優先度「200」、ストア優先度「100」、アプリケーション名「APP1」の組である。AM1205bは図51に示されるXAIT情報を取得すると、XAIT情報から取得したIPアドレスを用いてJavaプログラムのファイルシステムを取得し1次記憶511または2次記憶510に保存する。
本発明のプログラム実行装置は、ユーザが安心して利用することができるという効果を奏し、例えばデジタルテレビやパーソナルコンピュータ、携帯電話機などのソフトウェアによって制御される情報機器などに適用することができ、その動作方法は、アプリケーションのストア管理技術として有用である。
本発明は、プログラムをダウンロードして実行するプログラム実行装置に関する。特に、ダウンロードしたアプリケーションプログラムの保存領域の容量に制限のあるデジタル放送受信機における、アプリケーションプログラムの保存領域管理技術に関する。
従来の、ダウンロードしたアプリケーションプログラム(以下、単にアプリケーションという)の保存領域の容量に制限のあるデジタル放送受信機における、アプリケーションの保存領域を管理する技術は、OCAP仕様(OCAP 1.0 Profile OC−SP−OCAP1.0−IF−I09−031121)に記載されている。OCAP仕様に準拠したデジタル放送受信機において、デジタル放送受信機は、アプリケーションの保存要求及び実行要求等を受信すると、その要求に従い、アプリケーションを保存して実行する。ここで、アプリケーションの保存要求はフラッシュROM等の2次記憶メモリーへの保存要求であるが、以降、アプリケーションを保存するための領域をストア領域、アプリケーションをストア領域へ保存することをストア、アプリケーションをストア領域へ保存するための優先度をストア優先度と呼ぶ。ここで、ストア優先度の定義はOCAP仕様において、storage priorityとして記述されている。
複数のアプリケーションのストア要求を受け、ストア領域が不足する場合、デジタル放送受信機は、個々のアプリケーションが持つストア優先度を比較し、ストア優先度の高いアプリケーションを優先的にストアする。ここで、いくつかのアプリケーションが既にストアされている場合には、ストア優先度の低いものから順に、ストア領域から削除される。但し、実行中のアプリケーションの動作を妨げてはならない。
ストア優先度が同じ場合、何れをストアするかは実装状況に依存する。このように、アプリケーションをストア領域から削除又はストアすることにより、常に、ストア要求を受けたアプリケーションの中からストア優先度の高いアプリケーションを優先的にストアすることが出来る。
本発明と同様に、アプリケーションのストア領域が不足する際にユーザへ通知を行う提案としては、特許文献1(特開平6−324812号公報「画像データの外部記憶書込方法」)に記載がある。
特許文献1では、ファイルの追加書き込み要求時に、保存領域の残り容量がファイルの容量以下であることを示す比較結果が得られた際に、ファイルの書き込みを拒否し、保存可能な残容量をユーザに通知する手段を提供する。
図1は、特許文献1に記載される画像データの外部記憶書込方法を示すフローチャートである。
外部記憶を分割した各区画の物理的な空き容量を求めて積算し(S5000)、1画像のデータ最大容量に区画の総数が乗ぜられた値を積算値から減じて外部記憶の残り容量を決定し(S5002)、追加書き込みが指示された画像データの容量が既知であればその値をファイル容量として決定し、また未知であれば画像の最大容量をファイル容量として決定する(S5003)。そのファイル容量と外部記憶の残り容量とを比較し(S5004)、残り容量がファイル容量未満であることを示す比較結果が得られたときに、画像データの書き込みを拒否し(S5006)、残り容量がファイル容量以上であることを示す比較結果が得られたときに、物理的な空き容量がファイル容量以上の区画を検索し(S5008)、検索結果で示される区画へ画像データを追加モードで書き込む(S5010)。
このように、特許文献1の技術により、ユーザは新規のアプリケーションがストア不可能であることを知ることができる。
また、本発明と同様に、アプリケーションのインストール作業時にユーザとインタラクションを行う提案としては、特許文献2(特開平10−21058号公報「アプリケーションモジュールのバージョン管理方法およびバージョン管理装置」)がある。
図2は、特許文献2に記載されるバージョン管理方法によるアプリケーションモジュールのバージョンアップの処理を示すフローチャートである。
特許文献2に記載されるバージョン管理方法では、既にインストールされている各モジュールのバージョン情報を保存するバージョン情報保存段階(S5103)と、これからインストールしようとする各モジュールのバージョンとバージョン情報保存段階に保存された既にインストールされている当該モジュールのバージョン情報を比較するバージョン比較段階(S5105)と、バージョン比較段階による比較結果に従ってインストール作業をする者にメッセージを発するメッセージ段階と、バージョン比較段階による比較結果に従ってモジュールの追加、削除及び変更のいずれかによるモジュールの書換えを行うか否かを各モジュールごとに行うモジュール書換段階(S5108)と、バージョン比較段階の結果及びメッセージ段階のいずれか一方または両方をユーザインターフェースに出力する出力段階とを含むことを特徴とするバージョン管理方法を提案している。さらに、インストール作業をする者が出力段階による出力結果を元にして各モジュールの追加、削除、変更及び無変更のいずれかひとつを選択する段階である選択段階をバージョン管理方法に追加したものも提案している。
このように、特許文献2では、同一アプリケーションのインストール時に、バージョン情報比較に基づき、アプリケーションを更新する。この際、ユーザにバージョン情報比較結果に従って、ユーザにメッセージを表示する手段、さらに、ユーザにアプリケーションの追加,削除、変更、無変更を選択させる手段を提供している。この技術により、ユーザは、新規にアプリケーションがインストールされることを知ることができる。また、古いバージョンに戻るインストールの場合には、そのインストール作業を制御することができる。
特開平6−324812号公報 特開平10−21058号公報
しかしながら、OCAP仕様に記載されるデジタル放送受信機(プログラム実行装置)においては、アプリケーションのストア要求時に、ストア領域が不足する場合、アプリケーションのストア優先度の比較結果に基づき、アプリケーションをストア領域から削除/ストアするが、これらアプリケーションのストア作業は自動的に行われるため、ユーザはアプリケーションのストア作業結果、例えば、どのアプリケーションがストア領域から削除又はストアされたかを知ることが出来ない。
そのため、ユーザは、アプリケーションのストア作業結果、例えば、アプリケーションがストア領域から削除されたことに起因するアプリケーションの挙動変化、例えば、アプリケーションの起動が遅くなる等を知ることが出来ず、ストレージから削除されたアプリケーションを起動する際に、そのアプリケーションの起動が遅いためにユーザを不安にさせる懸念があった。
特許文献1においては、既にストアされているアプリケーションを削除する手段を持たず、従って、アプリケーションがストレージから削除されたことをユーザに通知する手段を提供しない。また、特許文献1の技術ではストア優先度を利用していない。
また、特許文献2においては、同一のアプリケーションの機能置換えを扱っており、あるアプリケーションをインストールする際に、インストール先の容量不足が原因となり、その他のアプリケーションを削除することはない。従って、特許文献2は、新規にアプリケーションのストア要求を受けた際に、ストア優先度の比較に基づいて既にストアされているアプリケーションをストア領域から削除する手段、及び、既にストアされているアプリケーションがストアから削除されることをユーザに通知する手段を提供しない。
そこで、本発明は、かかる問題に鑑みてなされたものであって、ユーザが安心して利用可能なプログラム実行装置を提供することを目的とする。
上記目的を達成するために、本発明に係るプログラム実行装置は、プログラムをダウンロードして実行するプログラム実行装置であって、ダウンロードされたプログラムを保存するための領域を有する記憶手段と、ダウンロード対象のプログラムを含む複数のプログラムのそれぞれに割り当てられた優先度に基づいて、前記各プログラムを前記記憶手段に保存しておくことが可能か否かを判別する保存判別手段と、前記保存判別手段で保存不可能と判別されたプログラムの取り扱いについてのメッセージをユーザに通知する通知手段と、前記保存判別手段で保存可能と判別されたダウンロード対象のプログラムを前記記憶手段に保存する保存処理手段と、前記記憶手段に保存されたプログラムを実行する実行手段とを備えることを特徴とする。例えば、前記プログラム実行装置は、さらに、前記保存判別手段で保存不可能と判別された前記記憶手段に保存されているプログラムを削除する削除手段を備え、前記通知手段は、前記プログラムの削除についてのメッセージをユーザに通知し、前記保存処理手段は、前記プログラムが削除された記憶手段に対して、前記保存判別手段で保存可能と判別されたダウンロード対象のプログラムを保存する。また、前記削除手段は、前記通知手段によるユーザへの通知が行われたことを検知した後に、前記記憶手段に保存されているプログラムを削除する。
具体的に、記憶手段に既にプログラムが保存されている状況で、新規のプログラムをダウンロードしようとするときに、それらのプログラムを共に記憶手段に保存しておくことができない場合がある。このような場合、本発明に係るプログラム実行装置では、その新規のプログラムの優先度と、記憶手段にあるプログラムの優先度とが比較されて、記憶手段にあるプログラムの優先度の方が低いときには、そのプログラムが記憶手段から削除されるとともに、そのプログラムの削除についてのメッセージがユーザに通知されるため、プログラム実行装置の挙動がその削除に伴って変化しても、ユーザはその原因をメッセージによって知っているため、安心してプログラム実行装置を利用することができる。
また、前記通知手段は、前記記憶手段に保存されているプログラムが削除されることの確認をユーザに求める内容のメッセージを通知し、前記プログラム実行装置は、さらに、前記メッセージに対するユーザの確認結果を取得する確認取得手段を備え、前記削除手段は、前記確認取得手段によって確認結果が取得されたことを検知すると、前記記憶手段に保存されているプログラムを削除することを特徴としても良い。
これにより、ユーザによるメッセージの確認が得られた後にプログラムの削除が行われるため、ユーザがメッセージを確認することなくプログラムが削除されてしまうのを防いで、メッセージを確実にユーザに伝えることができる。
また、前記通知手段は、前記記憶手段に保存されているプログラムを削除しても良いか否かを問い合わせる内容のメッセージを通知し、前記プログラム実行装置は、さらに、前記メッセージに対するユーザの応答結果を取得する応答取得手段を備え、前記削除手段は、前記応答取得手段によって取得された応答結果が削除の許可を示すことを検知すると、前記記憶手段に保存されているプログラムを削除することを特徴としても良い。
これにより、ユーザによる削除の許可が得られた後にプログラムの削除が行われるため、ユーザが許可することなくプログラムが削除されてしまうのを防いで、ユーザによる使い勝手を向上することができる。
ここで、前記プログラム実行装置は、さらに、前記応答取得手段によって取得された応答結果が削除の拒否を示すことを検知すると、前記保存判別手段で保存不可能と判別された前記記憶手段に保存されているプログラムの優先度を高める優先度変更手段を備え、前記保存判別手段は、前記優先度変更手段で変更された優先度に基づいて、再び、前記各プログラムを前記記憶手段に保存しておくことが可能か否かを判別することを特徴としても良い。
これにより、ユーザがプログラムの削除を拒否したときには、そのプログラムの優先度が高く設定され、その優先度を用いて再び複数のプログラムの中から保存不可能なプログラムが選ばれるため、ユーザにとって不要なプログラムを削除することができ、ユーザによる使い勝手をさらに向上することができる。
また、前記保存判別手段は、さらに、保存不可能と判別された複数のプログラムが前記記憶手段に保存されているか否かを判別し、前記通知手段は、前記保存判別手段で保存されていると判別された複数のプログラムのうちの何れを削除するかの選択を促す内容のメッセージを通知し、前記プログラム実行装置は、さらに、前記メッセージに対するユーザの選択結果を取得する選択結果取得手段を備え、前記削除手段は、前記選択結果取得手段によって取得された選択結果の示すプログラムを削除することを特徴としても良い。
例えば、記憶手段の容量が少ないために2つのプログラムを共に記憶手段に保存しておくことはできないが、そのうち何れか1つだけは記憶手段に保存しておくことができるという状況において、その2つのプログラムの優先度が共に等しい場合には、保存判別手段は、それら2つのプログラムの優劣をつけることができず、それぞれ保存不可能と判別してしまう。このような場合においても、本発明では、上述のように、その2つのプログラムの何れを削除するかをユーザに選択させるため、ユーザにとって不要なプログラムのみを削除することができ、ユーザによる使い勝手をさらに向上することができる。
また、前記プログラム実行装置は、さらに、前記保存判別手段で保存不可能と判別されたプログラムが前記実行手段によって実行されているか否かを判別する実行判別手段を備え、前記通知手段は、前記実行判別手段で実行中と判別されたプログラムの削除についてのメッセージをユーザに通知することを特徴としても良い。例えば、前記削除手段は、前記実行判別手段で実行中と判別されたプログラムの実行を終了させて削除する。
これにより、実行中のプログラムを保存しておくことが不可能と判別されたときには、ユーザへの通知とともに、そのプログラムの実行が強制的に終了されてそのプログラムが削除されるため、ダウンロード対象のプログラムのための保存容量を記憶手段に早期に設定することができる。
ここで、前記通知手段は、前記実行判別手段で実行中と判別されたプログラムを削除しても良いか否かをユーザに問い合わせる内容のメッセージを通知し、前記プログラム実行装置は、さらに、前記メッセージに対するユーザの応答結果を取得する応答取得手段を備え、前記削除手段は、前記応答取得手段によって取得された応答結果が削除の許可を示すことを検知すると、前記実行中のプログラムを終了させて削除することを特徴としても良い。
これにより、ユーザは削除するか否かを選択することができ、ユーザによる使い勝手をさらに向上することができる。
また、前記削除手段は、前記実行判別手段による判別結果に基づいて前記実行中のプログラムの終了を検知すると、前記プログラムを削除することを特徴としても良い。
これにより、実行中のプログラムを保存しておくことが不可能と判別されたときには、ユーザへの通知とともに、その実行中のプログラムが終了するまで待ってそのプログラムが削除されるため、その実行中のプログラムを安心してユーザに利用させることができる。
また、前記通知手段は、前記保存判別手段で保存不可能と判別されたダウンロード対象のプログラムの保存についてのメッセージをユーザに通知することを特徴としても良い。例えば、前記保存判別手段は、さらに、保存不可能と判別された複数のプログラムが前記記憶手段に保存されているか否かを判別し、前記通知手段は、前記保存判別手段で保存されていないと判別された複数のプログラムのうちの何れを前記記憶手段に保存するかの選択を促す内容のメッセージを通知し、前記プログラム実行装置は、さらに、前記メッセージに対するユーザの選択結果を取得する選択結果取得手段を備え、前記削除手段は、前記選択結果取得手段によって取得された選択結果の示すプログラムを前記記憶手段に保存する。
例えば、記憶手段の容量が少ないためにダウンロード対象の2つのプログラムを共に記憶手段に保存することはできないが、そのうち何れか1つだけは記憶手段に保存することができるという状況において、その2つのプログラムの優先度が共に等しい場合には、保存判別手段は、それら2つのプログラムの優劣をつけることができず、それぞれ保存不可能と判別してしまう。このような場合においても、本発明では、上述のように、その2つのプログラムの何れを保存するかをユーザに選択させるため、ユーザにとって必要なプログラムのみを保存することができ、ユーザによる使い勝手をさらに向上することができる。
なお、本発明は、このようなプログラム実行装置として実現することができるだけでなく、そのプログラム実行装置が行う動作の方法やプログラム、そのプログラムを格納する記憶媒体としても実現することができる。
本発明のプログラム実行装置は、ユーザが安心して利用することができるという作用効果を奏する。
(実施の形態1)
本発明に係るケーブルテレビシステムの実施の形態を、図面を参照しながら説明する。
図3は、ケーブルシステムを構成する装置の関係を表したブロック図である。このケーブルシステムは、ヘッドエンド101と、3個のプログラム実行装置たる端末装置A111、端末装置B112、及び端末装置C113とで構成される。本実施の形態では、1つのヘッドエンドに対して3つの端末装置が結合されているが、任意の数の端末装置をヘッドエンドに結合しても、本発明は実施可能である。
ヘッドエンド101は、複数の端末装置に対して映像や音声、データ等の放送信号を送信するとともに、端末装置からのデータ送信を受信する。これを実現するため、ヘッドエンド101と端末装置A111、端末装置B112、及び端末装置C113間の伝送に用いられる周波数帯域は、分割して用いられる。
図4は、周波数帯域の分割の一例を示す図である。周波数帯域は、Out Of Band(略称OOB)とIn−Bandの2種類に大別される。5〜130MHzがOOBに割り当てられ、主にヘッドエンド101と端末装置A111、端末装置B112、及び端末装置C113間のデータのやり取りに使用される。130MHz〜864MHzはIn−Bandに割り当てられ、主として、映像や音声を含む放送チャンネルに使用される。OOBではQPSK変調方式が、In−BandはQAM64変調方式が使用される。変調方式技術については、本発明に関与が薄い公知技術であるので、詳細な説明は省略する。
図5は、OOB周波数帯域の更に詳細な使用の一例を示す図である。70MHz〜74MHzはヘッドエンド101からのデータ送信に使用され、全ての端末装置A111、端末装置B112、及び端末装置C113が、ヘッドエンド101から同じデータを受け取ることになる。一方、10.0MHz〜10.1MHzは端末装置A111からヘッドエンド101へのデータ送信に使用され、10.1MHz〜10.2MHzは端末装置B112からヘッドエンド101へのデータ送信に使用され、10.2MHz〜10.3MHzは端末装置C113からヘッドエンド101へのデータ送信に使用される。これにより、各端末装置固有のデータを各端末装置A111、端末装置B112、及び端末装置C113からヘッドエンド101に送信することができる。
図6は、In−Bandの周波数帯に対する使用の一例を示す図である。150〜156MHzと156〜162MHzはそれぞれテレビチャンネル1とテレビチャンネル2に割り当てられ、以降、6MHz間隔でテレビチャンネルが割り当てられている。310MHz以降は、1MHz単位でラジオチャンネルに割り当てられている。これらの各チャンネルはアナログ放送として使用してもデジタル放送として使用してもよい。デジタル放送の場合は、MPEG2仕様に基づいたトラスポートパケット形式で伝送され、音声や映像に加え、各種データ放送用データも送信することができる。
ヘッドエンド101は、これらの周波数帯域に適切な放送信号を送信するため、QPSK変調部やQAM変調部等を有する。また、端末装置からのデータを受信するため、QPSK復調器を有する。また、ヘッドエンド101は、これら変調部及び復調部に関連する様々な機器を有すると考えられる。しかし、本発明は主として端末装置に関わるので、詳細な説明は省略する。
端末装置A111、端末装置B112、及び端末装置C113は、ヘッドエンド101からの放送信号を受信し再生する。また、ヘッドエンド101に対して、各端末装置固有のデータを送信する。3つの、端末装置は本実施の形態では同じ構成を取る。
図7は、端末装置(プログラム実行装置)のハードウエア構成を表すブロック図である。上述の端末装置A111、端末装置B112、及び端末装置C113のそれぞれに相当する端末装置500は、QAM復調部501、QPSK復調部502、QPSK変調部503、TSデコーダ505、オーディオデコーダ506、スピーカ507、ビデオデコーダ508、ディスプレイ509、2次記憶部510、1次記憶部511、ROM512、入力部513、及びCPU514で構成される。また端末装置500には、POD504が着脱できる。
図8は、薄型テレビとして構成された端末装置500の外観の一例を示す図である。
薄型テレビの筐体601は、POD504を除く、端末装置500の構成要素をすべて内蔵している。
ディスプレイ602は、図7におけるディスプレイ509に相当する。
フロントパネル部603は複数のボタンで構成され、図7の入力部513に相当する。
信号入力端子604は、ヘッドエンド101との信号の送受信を行うためにケーブル線と接続する。また、信号入力端子604は、図7のQAM復調部501、QPSK復調部502、QPSK変調部503と接続されている。
PODカード605は、図7のPOD504に相当する。POD504は、図8のPODカード605のように、端末装置500とは独立した形態を取り、端末装置500に着脱可能となっている。POD504の詳細は後述する。
挿入スロット606にはPODカード605が挿入される。
図7に示すように、QAM復調部501は、CPU514から指定された周波数を含むチューニング情報で、ヘッドエンド101でQAM変調され送信されてきた信号を復調し、POD504に引き渡す。
QPSK復調部502は、CPU514から指定された周波数を含むチューニング情報で、ヘッドエンド101でQPSK変調され送信されてきた信号を復調し、POD504に引き渡す。
QPSK変調部503は、CPU514から指定された周波数を含む変調情報で、POD504から渡された信号をQPSK変調し、ヘッドエンド101に送信する。
POD504は、図8のように端末装置本体500から着脱可能な形態をしている。端末本体500とPOD504の接続インターフェースは、OpenCable(R) HOST−POD Interface Specification(OC−SP−HOSTPOD−IF−I12−030210)及び、この仕様書から参照されている仕様書で定義されている。ここでは、詳細は省略し、本発明に関する部分のみを解説する。
図9は、POD504の内部構成を表すブロック図である。POD504は、第1デスクランブラ部701、第2デスクランブラ部702、スクランブラ部703、第1記憶部704、第2記憶部705、及びCPU706で構成される。
第1デスクランブラ部701は、CPU706からの指示により、端末装置500のQAM復調部501から暗号化された信号を受け取り、復号を行う。そして、復号された信号を端末装置500のTSデコーダ505に送る。デコードに必要な鍵などの情報はCPU706から適宜与えられる。具体的には、ヘッドエンド101はいくつかの有料チャンネルを放送している。ユーザが、この有料チャンネルを購買すると、第1デスクランブラ部701は、CPU706から鍵等の必要な情報を受け取りデスクランブルすることで、ユーザは有料チャンネルを閲覧することができる。鍵などの必要な情報が与えられない場合は、第1デスクランブラ部701は、デスクランブルを行わず、受け取った信号をそのまま、TSデコーダ505に送る。
第2デスクランブラ部702は、CPU706からの指示により、端末装置500のQPSK復調部502から暗号化された信号を受け取り、復号を行う。そして、復号されたデータをCPU706に引き渡す。
スクランブラ部703は、CPU706からの指示により、CPU706から受け取ったデータを暗号化し、端末装置500のQPSK変調部503に送る。
第1記憶部704は、具体的にはRAM等の一次記憶メモリーで構成され、CPU706が処理を行う際、一時的にデータを保存するために使用される。
第2記憶部705は、具体的にはフラッシュROM等の2次記憶メモリーで構成され、CPU706が実行するプログラムを格納し、また、電源OFFになっても消去されては困るデータの保存に使用される。
CPU706は、第2記憶部705が記憶するプログラムを実行する。プログラムは複数のサブプログラムで構成される。
図10は、第2記憶部705が記憶するプログラムの一例を示す図である。図10では、プログラム800は、メインプログラム801、初期化サブプログラム802、ネットワークサブプログラム803、再生サブプログラム804、及びPPVサブプログラム805等の複数のサブプログラムで構成されている。
ここでPPVとはPay Per Viewの略であり、映画など特定の番組を有料で視聴できるようにするサービスである。ユーザが暗証番号を入力すると、購入したことがヘッドエンド101に通知され、スクランブルが解除され、視聴することが出来る。この視聴により、ユーザは後日、購入代金を支払う。
メインプログラム801は、CPU706が電源投入時に最初に起動するサブプログラムであり、他のサブプログラムの制御を行う。
初期化サブプログラム802は、電源投入時にメインプログラム801によって起動され、端末装置500との情報交換等を行い、初期化処理を行う。初期化処理の詳細は、OpenCable(R) HOST−POD Interface Specification(OC−SP−HOSTPOD−IF−I12−030210)及び、この仕様書から参照されている仕様書で定義されている。また、仕様書に定義されていない初期化処理も行う。ここでは、その一部を紹介する。電源が投入されると、初期化サブプログラム802は、第2記憶部705が記憶する第1の周波数を端末装置500のCPU514を通して、QPSK復調部502に通知する。QPSK復調部502は、与えられた第1の周波数でチューニングを行い、信号を第2デスクランブラ部702に送る。また、初期化サブプログラム802は、第2記憶部705が記憶する第1の鍵等の復号情報を第2デスクランブラ部702に与える。その結果、第2デスクランブラ部702は、デスクランブルを行い、初期化サブプログラム802を実行するCPU706に引き渡す。よって、初期化サブプログラム802は情報を受け取ることができる。本実施の形態では、初期化
サブプログラム802はネットワークサブプログラム803を通して情報を受け取ることとする。詳細は後述する。
また、初期化サブプログラム802は、第2記憶部705が記憶する第2の周波数を端末装置500のCPU514を通して、QPSK変調部503に通知する。初期化サブプログラム802は第2記憶部705が記憶する暗号化情報をスクランブラ部703に与える。初期化サブプログラム802が送信したい情報を、ネットワークサブプログラム803を介して、スクランブラ部703に与えると、スクランブラ部703は、与えられた暗号化情報を用いて、データを暗号化し、端末装置500のQPSK変調部503に与える。QPSK変調部503は、与えられた暗号化された情報を変調し、ヘッドエンド101に送信する。
この結果、初期化サブプログラム802は、端末装置500、第2デスクランブラ部702、スクランブラ部703、及びネットワークサブプログラム803を通して、ヘッドエンド101と双方向通信を行うことができる。
ネットワークサブプログラム803は、メインプログラム801、初期化サブプログラム802等の複数のサブプログラムから使用される、ヘッドエンド101との双方向通信を行うためのサブプログラムである。具体的には、ネットワークサブプログラム803を使用する他のサブプログラムに対して、TCP/IPによって、ヘッドエンド101と双方向通信を行っているように振舞う。TCP/IPは、複数の装置間で情報交換を行うためのプロトコルを規定した公知の技術であり、詳細な説明は省略する。ネットワークサブプログラム803は、電源投入時に初期化サブプログラム802に起動されると、予め第2記憶部705が記憶しているPOD504を識別する識別子であるMACアドレス(Media Access Controlアドレスの略)を、端末装置500を通してヘッドエンド101に通知し、IPアドレスの取得を要求する。ヘッドエンド101は、端末装置500を介してPOD504にIPアドレスを通知し、ネットワークサブプログラム803は、IPアドレスを第1記憶部704に記憶する。以降、ヘッドエンド101とPOD504は、このIPアドレスを、POD504の識別子として使用し、通信を行う。
再生サブプログラム804は、第2記憶部705が記憶する第2の鍵等の復号情報や、端末装置500から与えられる第3の鍵等の復号情報を第1デスクランブラ部701に与えて、デスクランブルを可能にする。また、ネットワークサブプログラム803を通して、第1デスクランブラ部701に入力されている信号が、PPVチャンネルであることの情報を受け取る。PPVチャンネルと知ったときは、PPVサブプログラム805を起動する。
PPVサブプログラム805は、起動されると、端末装置500に番組の購入を促すメッセージを表示し、ユーザの入力を受け取る。具体的には、端末装置500のCPU514に画面に表示したい情報を送ると、端末装置500のCPU514上で動作するプログラムが、端末装置500のディスプレイ509上にメッセージを表示する。ユーザは、端末装置500の入力部513を通して暗証番号を入力すると、端末装置500のCPU514が、それを受け取り、POD504のCPU706上で動作するPPVサブプログラム805に通知する。PPVサブプログラム805は、受け取った暗証番号をネットワークサブプログラム803を通してヘッドエンド101に送信する。ヘッドエンド101は、暗証番号が正しければ、復号に必要な第4の鍵などの復号化情報をネットワークサブプログラム803を介して、PPVサブプログラム805に通知する。PPVサブプログラム805は受け取った第4の鍵などの復号化情報を第1デスクランブラ部701に与え、第1デスクランブラ部701は、入力されている信号をデスクランブルする。
図7に示すように、TSデコーダ505は、POD504から受け取った信号のフィルタリングを実施し、必要なデータをオーディオデコーダ506及びビデオデコーダ508、CPU514に引き渡す。ここで、POD504から来る信号はMPEG2トランスポートストリームである。MPEG2トランスポートストリームの詳細はMPEG規格書 ISO/IEC13818−1に記載されており、本実施の形態では詳細は省略する。MPEG2トランスポートストリームは、複数の固定長パケットで構成され、各パケットには、パケットIDが振られている。
図11は、パケットの構成図である。パケット900は、固定長の188バイトで構成される。先頭4バイトがヘッダー901で、パケットの識別情報を格納しており、残り184バイトがペイロード902で、送信したい情報を含んでいる。ヘッダー901は構成903のように構成されている。先頭から12ビット目〜24ビット目までの13ビットにパケットIDが含まれている。
図12は、送られてくる複数のパケットの列を表現した模式図である。パケット1001は、ヘッダーにパケットID「1」を持ち、ペイロードには映像Aの1番目の情報が入っている。パケット1002は、ヘッダーにパケットID「2」を持ち、ペイロードには音声Aの1番目の情報が入っている。パケット1003は、ヘッダーにパケットID「3」を持ち、ペイロードには音声Bの1番目の情報が入っている。
パケット1004は、ヘッダーにパケットID「1」を持ち、ペイロードには映像Aの2番目の情報が入っており、これはパケット1001の続きになっている。同様にパケット1005、1026、1027も他のパケットの後続データを格納している。このように、同じパケットIDを持つ、パケットのペイロードの内容を連結すると、連続した映像や音声を再現することができる。
図12に示すように、CPU514がパケットID「1」と出力先としての「ビデオデコーダ508」をTSデコーダ505に指示すると、TSデコーダ505はPOD504から受け取ったMPEG2トランスポートストリームからパケットID「1」のパケットを抽出し、ビデオデコーダ508に引き渡す。図12においては、映像データのみをビデオデコーダ508に引き渡すことになる。同時に、CPU514がパケットID「2」と「オーディオデコーダ506」をTSデコーダ505に指示すると、TSデコーダ505はPOD504から受け取ったMPEG2トランスポートストリームからパケットID「2」のパケットを抽出し、オーディオデコーダ506に引き渡す。図12においては、音声データのみをオーディオデコーダ506に引き渡すことになる。
このパケットIDに応じて必要なパケットだけを取り出す処理が、TSデコーダ505が行うフィルタリングである。TSデコーダ505はCPU514から指示された複数のフィルタリングを同時に実行することができる。
図7に示すように、オーディオデコーダ506は、TSデコーダ505から与えられたMPEG2トランスポートストリームのパケットに埋め込まれたオーディオデータを連結し、デジタル−アナログ変換を行いスピーカ507に出力する。
スピーカ507は、オーディオデコーダ506から与えられた信号を音声出力する。
ビデオデコーダ508は、TSデコーダ505から与えられたMPEG2トランスポートストリームのパケットに埋め込まれたビデオデータを連結し、デジタル−アナログ変換を行いディスプレイ509に出力する。
ディスプレイ509は、具体的にはブラウン管や液晶等で構成され、ビデオデコーダ508から与えられたビデオ信号を出力したり、CPU514から指示されたメッセージを表示したりする。
2次記憶部510は、具体的には、フラッシュメモリーやハードディスク等で構成され、CPU514から指示されたデータやプログラムを保存したり削除したりする。また、保存されているデータやプログラムはCPU514に参照される。保存されているデータやプログラムは、端末装置500の電源が切断された状態でも保存しつづける。
1次記憶部511は、具体的には、RAM等で構成され、CPU514から指示されたデータやプログラムを一次的に保存したり削除したりする。また、保存されているデータやプログラムはCPU514に参照される。保存されているデータやプログラムは、端末装置500の電源が切断された際に、抹消される。
ROM512は、書き換え不可能なメモリーデバイスであり、具体的にはROMやCD−ROM、DVDなどで構成される。ROM512は、CPU514が実行するプログラムが格納されている。
入力部513は、具体的には、フロントパネルやリモコンで構成され、ユーザからの入力を受け付ける。
図13は、フロントパネルで入力部513を構成した場合の一例を示す図である。フロントパネル1100は、図8のフロントパネル部603に相当する。フロントパネル1100は7つのボタン、すなわち上カーソルボタン1101、下カーソルボタン1102、左カーソルボタン1103、右カーソルボタン1104、OKボタン1105、取消ボタン1106、及びEPGボタン1107を備えている。ユーザがボタンを押下すると、押下されたボタンの識別子が、CPU514に通知される。
CPU514は、ROM512が記憶するプログラムを実行する。実行するプログラムの指示に従い、QAM復調部501、QPSK復調部502、QPSK変調部503、POD504、TSデコーダ505、ディスプレイ509、2次記憶部510、1次記憶部511、及びROM512を制御する。
図14は、ROM512に記憶され、CPU514に実行されるプログラムの一例を示す構成図。
プログラム1200は、複数のサブプログラムで構成され、具体的にはOS1201、EPG1202、Java(登録商標)VM1203(以後VM1203と称す)、サービスマネージャ1204、Javaライブラリ1205(以後ライブラリ1205と称す)で構成される。
OS1201は、端末装置500の電源が投入されると、CPU514が起動するサブプログラムである。OS1201は、オペレーティングシステムの略であり、Linux(登録商標)等が一例である。OS1201は、他のサブプログラムを平行して実行するカーネル1201a及びライブラリ1201bで構成される公知の技術の総称であり、詳細な説明は省略する。本実施の形態においては、OS1201のカーネル1201aは、EPG1202とVM1203をサブプログラムとして実行する。また、ライブラリ1201bは、これらサブプログラムに対して、端末装置500が保持する構成要素を制御するための複数の機能を提供する。
機能の一例として、チューニング機能を紹介する。チューニング機能は、他のサブプログラムから周波数を含むチューニング情報を受け取り、それをQAM復調部501に引き渡す。QAM復調部501は与えられたチューニング情報に基づき復調処理を行い、復調したデータをPOD504に引き渡すことができる。この結果、他のサブプログラムはライブラリ1201bを通してQAM復調器を制御することができる。
EPG1202は、ユーザに番組一覧を表示し、ユーザからの入力を受け付ける番組表示部1202aと、チャンネル選局を行う再生部1202bで構成される。ここで、EPGはElectric Program Guideの略である。EPG1202は、端末装置500の電源が投入されると、カーネル1201aによって起動される、起動されたEPG1202の内部では、番組表示部1202aが端末装置500の入力部513を通して、ユーザからの入力を待つ。ここで、入力部513が図13で示されるフロントパネルで構成されている場合、ユーザが、入力部513のEPGボタン1107を押下すると、EPGボタンの識別子がCPU514に通知される。CPU514上で動作するサブプログラムであるEPG1202の番組表示部1202aは、この識別子を受け取り、番組情報をディスプレイ509に表示する。
図15A及び図15Bは、ディスプレイ509に表示された番組表の一例を示す図である。図15Aに示すように、ディスプレイ509には、格子状に番組情報が表示されている。列1301には、時刻情報が表示されている。列1302には、チャンネル名「チャンネル1」と、列1301の時刻に対応する時間帯に放映される番組が表示されている。「チャンネル1」では、9:00〜10:30に番組「ニュース9」が放映され、10:30〜12:00は「映画AAA」が放映されることを表す。列1303も列1302同様、チャンネル名「チャンネル2」と、列1301の時刻に対応する時間帯に放映される番組が表示されている。9:00〜11:00に番組「映画BBB」が放映され、11:00〜12:00は「ニュース11」が放映される。カーソル1330は、フロントパネル1100の左カーソルボタン1103と右カーソルボタン1104を押下すると移動する。図15Aの状態で、右カーソルボタン1104を押下すると、カーソルボタン1330は右に移動し、図15Bのようになる。また、図15Bの状態で、左カーソル1103を押下すると、カーソル1330は左に移動し、図15Aのようになる。
図15Aの状態で、フロントパネル1100のOKボタン1105が押下されると、番組表示部1202aは、「チャンネル1」の識別子を再生部1202bに通知する。図15Bの状態で、フロントパネル1100のOKボタン1105が押下されると、番組表示部1202aは、「チャンネル2」の識別子を再生部1202bに通知する。
また、番組表示部1202aは、表示する番組情報を、POD504を通してヘッドエンド101から定期的に、1次記憶部511に記憶しておく。一般的に、ヘッドエンドからの番組情報の取得は時間が掛かる。入力部513のEPGボタン1107が押下された時、1次記憶部511に予め保存された番組情報を表示することで、素早く番組表を表示することができる。
再生部1202bは、受け取ったチャンネルの識別子を用いて、チャンネルを再生する。チャンネルの識別子とチャンネルの関係は、チャンネル情報として、2次記憶部510に予め格納されている。
図16は、2次記憶部510に格納されているチャンネル情報の一例を示す図である。チャンネル情報は表形式で格納されている。列1401は、チャンネルの識別子である。列1402は、チャンネル名である。列1403はチューニング情報である。ここで、チューニング情報は周波数や転送レート、符号化率などを含み、QAM復調部501に与える値である。列1404はプログラムナンバーである。プログラムナンバーとは、MPEG2規格で規定されているPMTを識別するための番号である。PMTに関しては、後述する。行1411〜1414の各行は、各チャンネルの識別子、チャンネル名、チューニング情報の組となる。行1411は、識別子としての「1」、チャンネル名としての「チャンネル1」、チューニング情報としての周波数「150MHz」、及びプログラムナンバーとしての「101」を含む組となっている。再生部1202bは、チャンネルの再生を行うため、受け取ったチャンネルの識別子をそのままサービスマネージャに引き渡す。また、再生部1202bは、再生中に、ユーザがフロントパネル1100の上カーソルボタン1101と下カーソルボタン1102を押下すると、入力部513からCPU514を通して、押下された通知を受け取り、再生しているチャンネルを変更する。まず、再生部1202bは、1次記憶部511に現在再生中のチャンネルの識別子を記憶する。
図17A、図17B、及び図17Cは、1次記憶部511に保存しているチャンネルの識別子の例を示す図である。図17Aでは識別子「3」が記憶されており、図16に示すように、チャンネル名「TV 3」のチャンネルが再生中であることを示す。図17Aの状態で、ユーザが上カーソルボタン1101を押下すると再生部1202bは、図16のチャンネル情報を参照し、表中の前のチャンネルであるチャンネル名「チャンネル2」のチャンネルに再生を切り変えるため、サービスマネージャにチャンネル名「チャンネル2」の識別子「2」を引き渡す。同時に、再生部1202bは、1次記憶部511に記憶されているチャンネル識別子を「2」に書き換える。図17Bは、チャンネル識別子が書き換えられた状態を表す。また、図17Aの状態で、ユーザが下カーソルボタン1102を押下すると再生部1202bは、図16のチャンネル情報を参照し、表中の次のチャンネルであるチャンネル名「TV Japan」のチャンネルに再生を切り変えるため、サービスマネージャにチャンネル名「TV Japan」の識別子「4」を引き渡す。同時に、再生部1202bは、1次記憶部511に記憶されているチャンネル識別子を「4」に書き換える。図17Bは、チャンネル識別子が書き換えられた状態を表す。
VM1203は、Java(登録商標)言語で記述されたプログラムを逐次解析し実行するJavaバーチャルマシンである。Java言語で記述されたプログラムはバイトコードと呼ばれる、ハードウエアに依存しない中間コードにコンパイルされる。Javaバーチャルマシンは、このバイトコードを実行するインタープリタである。また、一部のJavaバーチャルマシンは、バイトコードをCPU514が理解可能な実行形式に翻訳してから、CPU514に引渡し、実行することも行う。VM1203は、カーネル1201aに、実行するJavaプログラムを指定され起動される。本実施の形態では、カーネル1201aは、実行するJavaプログラムとしてサービスマネージャ1204を指定する。Java言語の詳細は、書籍「Java(R) Language Specification(ISBN 0−201−63451−1)」等の多くの書籍で解説されている。ここでは、その詳細を省略する。また、Javaバーチャルマシン自体の詳細な動作などは、「Java(R) Virtual Machine Specification(ISBN 0−201−63451―X)」等の多くの書籍で解説されている。ここでは、その詳細を省略する。
サービスマネージャ1204は、Java言語で書かれたJavaプログラムであり、VM1203によって逐次実行される。サービスマネージャ1204は、JNI(Java(R) Native Interface)を通して、Java言語で記述されていない他のサブプログラムを呼び出したり、または、呼び出されたりすることが可能である。JNIに関しても、書籍「Java(R) Native Interface」等の多くの書籍で解説されている。ここでは、その詳細を省略する。
サービスマネージャ1204は、JNIを通して、再生部1202bよりチャンネルの識別子を受け取る。
サービスマネージャ1204は、最初にライブラリ1205の中にあるTuner1205cに、チャンネルの識別子を引渡し、チューニングを依頼する。Tuner1205cは、2次記憶部510が記憶するチャンネル情報を参照し、チューニング情報を獲得する。今、サービスマネージャ1204がチャンネルの識別子「2」をTuner1205cに引き渡すと、Tuner1205cは、図16の行1412を参照して、対応するチューニング情報「156MHz,」を獲得する。Tuner1205cは、OS1201のライブラリ1201bを通して、QAM復調部501にチューニング情報を引き渡す。QAM復調部501は与えられたチューニング情報に従ってヘッドエンド101から送信されてきた信号を復調し、POD504に引き渡す。
次にサービスマネージャ1204は、ライブラリ1205の中にあるCA1205dにデスクランブルを依頼する。CA1205dは、OS1201のライブラリ1201bを通して復号に必要な情報をPOD504に与える。POD504は、与えられた情報を元に、QAM復調部501から与えられた信号を復号しTSデコーダ505に引き渡す。
次にサービスマネージャ1204は、ライブラリ1205の中にあるJMF1205aにチャンネルの識別子を与え、映像や音声の再生を依頼する。
まず、最初にJMF1205aは、再生すべき映像と音声を特定するためのパケットIDをPAT及びPMTから取得する。PATやPMTはMPEG2規格で規定されている、MPEG2トランスポートストリーム内の番組構成を表現するテーブルであり、MPEG2トランスポートストリームに含まれるパケットのペイロードに埋め込まれて、音声や映像と共に送信されるものである。詳細は規格書を参照されたい。ここでは、概略のみ説明する。PATは、Program Association Tableの略で、パケットID「0」のパケットに格納され送信されている。JMF1205aは、PATを取得するため、OS1201のライブラリ1201bを通して、TSデコーダ505にパケットID「0」とCPU514を指定する。TSデコーダ505がパケットID「0」でフィルタリングを行い、CPU514に引き渡すことでJMF1205aは、PATのパケットを収集する。
図18は、収集したPATの情報の一例を模式的に表した図である。列1601は、プログラムナンバーである。列1602は、パケットIDである。列1602のパケットIDはPMTを取得するために用いられる。行1611〜1613のそれぞれは、チャンネルのプログラムナンバーと対応するパケットIDの組である。ここでは、3つのチャンネルが定義されている。行1611ではプログラムナンバー「101」とパケットID「501」の組が定義されている。今、JMF1205aに与えられたチャンネルの識別子が「2」とすると、JMF1205aは、図16の行1412を参照して、対応するプログラムナンバー「102」を獲得し、次に、図18のPATの行1612を参照し、プログラムナンバー「102」に対応するパケットID「502」を獲得する。PMTは、Program Map Tableの略で、PATで規定されたパケットIDのパケットに格納され送信されている。JMF1205aは、PMTを取得するため、OS1201のライブラリ1201bを通して、TSデコーダ505にパケットIDとCPU514を指定する。ここで、指定するパケットIDは「502」とする。TSデコーダ505がパケットID「502」でフィルタリングを行い、CPU514に引き渡すことでJMF1205aは、PMTのパケットを収集する。
図19は、収集したPMTの情報の一例を模式的に表した図である。列1701は、ストリーム種別であり、列1702は、パケットIDである。列1702で指定されるパケットIDのパケットには、ストリーム種別で指定された情報がペイロードに格納され送信されている。列1703は補足情報である。行1711〜1714はエレメンタリ−ストリームと呼ばれる、パケットIDと送信している情報の種別の組である。行1711は、ストリーム種別「音声」とパケットID「5011」の組であり、パケットID「5011」のペイロードには音声が格納されていることを表す。JMF1205aは、PMTから再生する映像と音声のパケットIDを獲得する。図19に示すように、JMF1205aは、行1711から音声のパケットID「5011」を、行1712から映像のパケットID「5012」を獲得する。
次に、JMF1205aは、OS1201のライブラリ1201bを通して、獲得した音声のパケットIDと出力先としてのオーディオデコーダ506の組、及び映像のパケットIDと出力先としてのビデオデコーダ508の組を、TSデコーダ505に与える。TSデコーダ505は与えられたパケットIDと出力先に基づいて、フィルタリングを行う。ここではパケットID「5011」のパケットをオーディオデコーダ506に、パケットID「5012」のパケットをビデオデコーダ508に引き渡す。オーディオデコーダ506は、与えられたパケットのデジタル−アナログ変換を行いスピーカ507を通して音声を再生する。ビデオデコーダ508は、与えられたパケットのデジタル−アナログ変換を行いディスプレイ509に映像を表示する。
最後にサービスマネージャ1204は、ライブラリ1205の中にあるAM1205bにチャンネルの識別子を与え、データ放送再生を依頼する。ここで、データ放送再生とは、MPEG2トランスポートストリームに含まれるJavaプログラムを抽出し、VM1203に実行させることである。MPEG2トランスポートストリームにJavaプログラムを埋め込む方法は、MPEG規格書 ISO/IEC13818−6に記述されたDSMCCという方式を用いる。ここではDSMCCの詳細な説明は省略する。DSMCC方式は、MPEG2トランスポートストリームのパケットの中に、コンピュータで使用されているディレクトリやファイルで構成されるファイルシステムをエンコードする方法を規定している。また、実行するJavaプログラムの情報はAITと呼ばれる形式で、MPEG2トランスポートストリームのパケットの中に埋め込まれ送信されている。AITは、OCAP仕様(正式には、OCAP 1.0 Profile OC−SP−OCAP1.0−IF−I09−031121)に定義されている、Application Information Tableの略である。
AM1205bは、まず、AITを獲得するため、JMF1205a同様PAT及びPMTを取得し、AITが格納されているパケットのパケットIDを獲得する。今、与えられたチャンネルの識別子が「2」で、図18のPAT、図19のPMTが送信されていると、JMF1205aと同様の手順で、図19のPMTを獲得する。AM1205bは、PMTからストリーム種別が「データ」で補足情報として「AIT」を持つエレメンタリ−ストリームからパケットIDを抽出する。図19に示すように、行1713のエレメンタリ−ストリームが該当し、パケットID「5013」を獲得する。
AM1205bは、OS1201のライブラリ1201bを通してTSデコーダ505にAITのパケットIDと出力先CPU514を与える。TSデコーダ505は、与えられたパケットIDでフィルタリングを行い、CPU514に引き渡す。この結果、AM1205bは、AITのパケットを収集することができる。
図20は、収集したAITの情報の一例を模式的に表した図である。列1801はJavaプログラムの識別子である。列1802はJavaプログラムの制御情報である。制御情報には「autostart」「present」「kill」などがあり、「autostart」は即時に端末装置500がこのプログラムを自動的に実行することを意味し、「present」は自動実行しないことを意味し、「kill」はプログラムを停止することを意味する。列1803は、DSMCC方式でJavaプログラムを含んでいるパケットIDを抽出するためのDSMCC識別子である。列1804はJavaプログラムのプログラム名である。行1811と1812はそれぞれ、Javaプログラムの情報の組である。行1811で定義されるJavaプログラムの情報は、識別子「301」、制御情報「autostart」、DSMCC識別子「1」、及びプログラム名「a/TopXlet」の組である。行1812で定義されるJavaプログラムの情報は、識別子「302」、制御情報「present」、DSMCC識別子「1」、及びプログラム名「b/GameXlet」の組である。ここで2つのJavaプログラムは同じDSMCC識別子を持つが、これは1つのDSMCC方式でエンコードされたファイルシステム内に2つのJavaプログラムが含まれていることを表す。ここでは、Javaプログラムに対して4つの情報しか規定しないが、実際にはより多くの情報が定義される。詳細はOCAP仕様(OCAP 1.0 Profile OC−SP−OCAP1.0−IF−I09−031121)を参照されたい。
AM1205bは、AITの中から「autostart」のJavaプログラムを見つけ出し、対応するDSMCC識別子及びJavaプログラム名を抽出する。図20に示すように、AM1205bは行1811のJavaプログラムを抽出し、DSMCC識別子「1」及びJava(R)プログラム名「a/TopXlet」を獲得する。
次にAM1205bは、AITから取得したDSMCC識別子を用いて、JavaプログラムをDSMCC方式で格納しているパケットのパケットIDをPMTから獲得する。具体的には、PMTの中でストリーム種別が「データ」で、補足情報のDSMCC識別子が合致するエレメンタリ−ストリームのパケットIDを取得する。
今、DSMCC識別子が「1」であり、PMTが図19とすると、行1714のエレメンタリ−ストリームが合致し、パケットID「5014」を取り出す。
AM1205bは、OS1201のライブラリ1201bを通してTSデコーダ505にDSMCC方式でデータが埋めこめられたパケットのパケットIDと出力先としてのCPU514を指定する。ここでは、パケットID「5014」を与える。TSデコーダ505、与えられたパケットIDでフィルタリングを行い、CPU514に引き渡す。この結果、AM1205bは、必要なパケットを収集することができる。AM1205bは、収集したパケットから、DSMCC方式に従ってファイルシステムを復元し、1次記憶部511に保存する。MPEG2トランスポートストリーム中のパケットからファイルシステム等のデータを取り出し1次記憶部511等の記憶手段に保存することを以降、ダウンロードと呼ぶ。
図21は、ダウンロードしたファイルシステムの一例を示す図である。図中、丸はディレクトリを四角はファイルを表し、このファイルシステムは、ルートディレクトリ1901、ディレクトリ「a」1902、ディレクトリ「b」1903、ファイル「TopXlet.class」1904、及びファイル「GameXlet.class」1905を含む。
次にAM1205bは、1次記憶部511にダウンロードしたファイルシステム中から実行するJavaプログラムをVM1203に引き渡す。今、実行するJavaプログラム名が「a/TopXlet」とすると、Javaプログラム名の最後に「.class」を付加したファイル「a/TopXlet.class」が実行すべきファイルとなる。「/」はディレクトリやファイル名の区切りであり、図21に示すように、ファイル1904が実行すべきJavaプログラムである。次にAM1205bは、ファイル1904をVM1203に引き渡す。
VM1203は、引き渡されたJavaプログラムを実行する。
サービスマネージャ1204は、他のチャンネルの識別子を受け取ると、ライブラリ1205に含まれる各ライブラリを通して再生している映像、音声及びJavaプログラムの実行を、同じくライブラリ1205に含まれる各ライブラリを通して停止し、新たに受け取ったチャンネルの識別子に基づいて、映像や音声の再生及びJavaプログラムの実行を行う。
ライブラリ1205は、ROM512に格納されている複数のJavaライブラリの集合である。本実施の形態では、ライブラリ1205は、JMF1205a、AM1205b、Tuner1205c、CA1205d、及びPOD Lib1205e等を含んでいる。
次に、Javaプログラムのダウンロード、保存、及び実行機能について説明する。
サービスマネージャ1204は、ライブラリ1205に含まれるPOD Lib1205eを通してヘッドエンド101との通信によりヘッドエンド101からの情報を受取ることができる。この通信は、POD Lib1205eがOS1201のライブラリ1201b及びPOD504を介してQPSK復調部502を使用することで実現される。
サービスマネージャ1204は、この通信を用いてヘッドエンド101から、端末装置500が2次記憶部510に保存すべきJavaプログラムの情報を受け取る。この情報をXAIT情報と呼ぶ。XAIT情報は、ヘッドエンド101とPOD504間で、任意の形式で送信される。どのような送信形式を採用しても、XAIT情報に必要とする情報が含まれていれば、本発明は実施可能である。
図22は、ヘッドエンド101から取得したXAIT情報の一例を模式的に表した図である。列2001はJavaプログラムの識別子である。列2002はJavaプログラムの制御情報である。制御情報には「autostart」「present」などがあり、「autostart」は端末装置500が電源投入時にこのプログラムを自動的に実行することを意味し、「present」は自動実行しないことを意味する。列2003は、DSMCC方式でJavaプログラムを含んでいるパケットIDを抽出するためのDSMCC識別子である。列2004はJavaプログラムのプログラム名である。列2005は、Javaプログラムの優先度である。優先度は、実行可能なJavaプログラムに制限がある場合に、実行するJavaプログラムを決めるための優先度である。列2006は、Javaプログラムのストア優先度である。ストア優先度はXAIT情報に記述される個々のJavaプログラムに指定される値であり、Javaプログラム及びJavaプログラムの実行に必要なデータを保存する際に、2次記憶部510へ保存するJavaプログラム及びJavaプログラムの実行に必要なデータを決めるための優先度である。列2007は、Javaプログラムのアプリケーション名である。アプリケーション名は、ユーザがJavaプログラムを識別するための名前である。行2011と2012はそれぞれ、Javaプログラムの情報の組である。行2011で定義されるJavaプログラムの情報は、識別子「701」、制御情報「autostart」、DSMCC識別子「1」、プログラム名「a/APP1Xlet」、優先度「200」、ストア優先度「100」、及びアプリケーション名「APP1」の組である。ここでは、Javaプログラムに対して7つの情報しか規定しないが、より多くの情報が定義されていても本発明は実施可能である。
なお、列2007のアプリケーション名は、例えば、ユーザに対してXAIT情報に記述された各Javaプログラムを識別させるために用いられる名前であるが、ユーザに提示してユーザがJavaプログラムを識別するのに十分な情報があれば、アプリケーション名はなくても本発明は実施可能である。
次にサービスマネージャ1204は、ライブラリ1205の中にあるAM1205bにXAIT情報を受け渡し、XAIT情報に記述されるJavaプログラムのMPEG2トランスポートストリームからの抽出、ダウンロード、及び実行を依頼する。
AM1205bは、XAIT情報を受け取ると、AIT情報からJavaプログラムをダウンロードした手順と同じ手順で、MPEG2トランスポートストリームからファイルシステムを1次記憶部511に保存する。その後、1次記憶部511に保存したファイルシステムを2次記憶部510に複写する。なお、1次記憶部511を介さず、直接2次記憶部510にダウンロードすることも実施可能である。
次に、AM1205bは、XAIT情報に、ダウンロードしたファイルシステムの格納位置を対応つけて2次記憶部510に保存する。
図23は、2次記憶部510にXAIT情報とダウンロードしたファイルシステムが対応つけられて保存されている一例を表す図である。図23の中で、図22と同じ番号の要素は図22と同じなので、説明は省略する。列2101は各Javaプログラムごとに対応するダウンロードしたファイルシステムの保存位置を格納する。図中、保存位置は矢印で示している。ダウンロードしたファイルシステム2110は、内部にトップディレクトリ2111、ディレクトリ「a」2112、ディレクトリ「b」2113、ファイル「APP1Xlet.class」2114、及びファイル「APP2Xlet.class」2115を保持する。
ここで、XAIT情報は、Javaプログラムを保存してから保存されているが、Javaプログラムを保存する前に保存されることも実施可能である。なお、XAIT情報は、2次記憶510に保存されているが、1次記憶部511に保存されることも実施可能である。1次記憶部511に保存される場合、電源OFF時に、保存されたXAIT情報は全て消える。
ここで、ファイルシステムは、具体的には、XAIT情報に記述される複数のJavaプログラム及びJavaプログラムの実行に必要なデータから形成される。以降、XAIT情報に記述される個々のJavaプログラム及びJavaプログラムの実行に必要なデータを、アプリケーションと呼ぶ。さらに、アプリケーションを2次記憶部510にダウンロードすることを以降、ストアと呼ぶ。またさらに、2次記憶部510にあって、アプリケーションをストアするための領域をストア領域と呼ぶ。また、VM1203がアプリケーションを構成するJavaプログラムを実行することをアプリケーションの実行と呼ぶ。
図24は、XAIT情報に記述されるアプリケーションがアプリケーションのストア領域2201にストアされている状態を示す図である。図24の中で、アプリケーションのストア領域2201は、アプリケーション名「APP1」をもつアプリケーション2211、および、アプリケーション名「APP2」を持つアプリケーション2212を格納する。
ここで、アプリケーションのストア領域2201の容量は一般的に有限である。アプリケーションのストア領域2201の容量はあらかじめ固定されているものであっても、可変であってもよい。なお、アプリケーションを2次記憶部のストア領域2201にストアしているが、アプリケーションを、1次記憶部に保存することでも実施可能である。また、1次記憶部に保存する場合、電源OFF時に、保存されたアプリケーションは全て消える。
次にAM1205bは、1次記憶部511または2次記憶部510に保存されたXAIT情報を参照して、1次記憶部511にダウンロードしたアプリケーション、または2次記憶部510のストア領域2201にストアしたアプリケーションの中から「autostart」と指定されたアプリケーションのJavaプログラムをVM1203に引き渡す。図23に示すように、行2011で定義されるアプリケーション「APP1」のJavaプログラム「a/APP1Xlet」がVM1203に引渡される。実行するアプリケーションのJavaプログラム名が「a/APP1Xlet」とすると、Javaプログラム名の最後に「.class」を付加したファイル「a/APP1Xlet.class」が実行すべきファイルとなる。VM1203は、引渡されたアプリケーションのJavaプログラムを実行する。以降、AM1205bからのVM1203へのアプリケーションの引渡しを、VM1203へのアプリケーション起動指示と呼ぶ。
AM1205bがXAIT情報を受け取った時点から、VM1203へのアプリケーション起動指示を行う時点までの処理において、一般的に、最も時間のかかる処理は、MPEG2トランスポートストリームからファイルシステムを取り出し1次記憶部へファイルシステムを保存する処理、または、MPEG2トランスポートストリームからファイルシステムを取り出して1次記憶部511を介さず直接2次記憶部510のストア領域2201へファイルシステムをストアする処理である。ここで、AM1205bがXAIT情報を受け取った時点において、XAIT情報に記述されたアプリケーションのうち、既にストアされているアプリケーションが存在する場合、AM1205bは既にストアされているアプリケーションのファイルシステムについては、MPEG2トランスポートストリームから1次記憶部511への保存処理及び1次記憶部511から2次記憶部510中のストア領域2201へのストア処理、またはMPEG2トランスポートストリームから1次記憶部511を介さず直接2次記憶部510中のストア領域2201へのストア処理を省略することができる。従って、アプリケーションを前もってストア領域2201にストアしておくことで、AM1250bがXAIT情報を受け取った時点から、VM1203へのアプリケーション起動指示を行うまでの時間を短縮することができる。
図25は、AM1250bが、XAIT情報を受け取った時点から、VM1203へのアプリケーション起動指示を行うまでの動作の一例を示すフローチャートである。図25に示すように、AM1205bがXAIT情報を受け取ると(S2301)、XAIT情報に記述のアプリケーションをまだ選ばれていないものから順に1つずつ選ぶ(S2302)。ここで、AM1205bは、選んだアプリケーションがストアされているか否かを判断し(S2303)、選んだアプリケーションがストアされていない場合(S2303のNO)、AM1205bは、アプリケーションをMPEG2トランスポートストリームからストア領域2201にストアする(S2304)。次に、AM1205bは、選んだアプリケーションの制御情報が「autostart」か否かを判断し(S2305)、選んだアプリケーションの制御情報が「autostart」の場合、AM1205bはVM1203へのアプリケーション起動指示を行う(S2306)。そして、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2307)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合(S2307のNO)、AM1205bは次のアプリケーションを選択してXAIT情報の受け取りからアプリケーション起動指示までの処理を進め、既にXAIT情報記述の全てのアプリケーションを選択している場合には(S2307のYES)、XAIT情報の受け取りからアプリケーション起動指示までの処理を終了する。
図25に示すAM1205bの動作の一例においても明らかなように、AM1205bがXAIT情報を受け取った時点において、XAITに記述のアプリケーションがストアされているか否かを判断し(S2303)、既にXAITに記述のアプリケーションがストアされている場合、AM1205bは、アプリケーションをMPEG2トランスポートストリームからストア領域2201にストアする処理(S2304)を省略することができる。その結果、AM1205bがXAIT情報を受け取った時点(S2301)から、VM1203へのアプリケーション起動指示を行う(S2306)までの時間は短縮される。
さらに、ここで、XAIT情報に記述されたアプリケーションを1つ選ぶ処理(S2302)において、例えば、ストアされかつ「autostart」のアプリケーションから順に選ぶことにより、特にストアされた個々のアプリケーションの起動指示までの時間を短縮することができる。
なお、個々のアプリケーションの起動指示までの時間を短縮する方法は図25に示した方法に限らない。なお、図25において、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする処理は、アプリケーション1つごとに行っているが、XAITに記述されるアプリケーション全てについて同時に処理を行うなど他の方法をとってもよい。
このように、アプリケーションをストアすることによるメリットは、次回のXAIT受け取り時において、DSMCCからアプリケーションをダウンロードまたはストアする必要がないため、AM1205bがXAIT情報を受け取った時点から、VM1203へのアプリケーション起動指示を行う時点までの処理が速くなることである。
一方、アプリケーションがストアされていない場合、次回のXAIT受け取り時に、AM1205bは、そのアプリケーションのファイルシステムをMPEG2トランスポートストリームから1次記憶511にダウンロードまたは2次記憶510のストア領域2201にストアする必要があるため、アプリケーションが既にストアされている時と比べて、AM1205bがXAIT情報を受け取った時点から、VM1203へのアプリケーション起動指示を行う時点までの処理が遅くなる。
なお、ここでは、AM1205bはアプリケーションのDSMCCから1次記憶部へのダウンロードまたはDSMCCからストア領域へのストア完了後に、VM1203bへアプリケーションの起動指示を出すものとして説明しているが、AM1205bがXAIT情報の受け取り後、アプリケーションのDSMCCから1次記憶へのダウンロードまたはDSMCCからストア領域へのストアをする前に、VM1203へアプリケーションの起動指示を出してもよい。ここでの起動指示は、AM1205bがVM1203に実行すべきアプリケーションのプログラム名を引渡すことにより実現するものとする。この場合、VM1203が、AM1205bからのアプリケーション起動指示後に、DSMCCまたは1次記憶部511またはストア領域からアプリケーションを読み込み実行することになる。一般的に、DSMCCからファイルシステムを読み込む処理は、既に1次記憶部またはストア領域から読み込む処理よりも遅い。従って、アプリケーションを前もってストア領域2201にストアしておくことで、AM1250bがXAIT情報を受け取った時点から、VM1203がアプリケーションの実行を開始するまでの時間を短縮することができる。
図26及び図27に示すように、XAIT情報が更新されると、それにともないストア領域2201にストアされるアプリケーションが更新される。
図26は、1つのアプリケーション2011のストアを指定する更新前のXAIT情報に従いストア領域2201にストアされたアプリケーションの状態を示す図である。ここで、更新前のXAIT情報には1つのアプリケーション2011のストアが指定されると、状態2211に示すようにアプリケーション2011はストアされる。
図27は、2つのアプリケーション2011とアプリケーション2012のストアを指定する更新後のXAIT情報に従いストア領域2201にストアされたアプリケーションの状態を示す図である。更新後のXAIT情報には2つのアプリケーション2011とアプリケーション2012のストアが指定されると、状態2211に示すようにアプリケーション2011はストアされ、状態2212に示すようにアプリケーション2012もストアされる。
次に、本発明の主要機能である、XAIT情報を受け取ったAM1205bによる、XAIT情報に記述されたアプリケーションのストア機能について説明する。
図28は、AM1205bの構成のうち、ストア処理に関連する構成要素のみを示す図である。他の構成要素は本発明とは直接関係ないので省略する。AM1205bは、ストア優先度比較部2601、ストアアプリ決定部2602、アプリケーションのストア部2603、アプリケーションのストア削除部2604、通知部2605、ストア領域残容量取得部2606、及びアプリケーション容量取得部2607を備える。
ストア優先度比較部2601は、ストアアプリ決定部2602から取得要求を受けると、XAIT情報から個々のアプリケーションのストア優先度2006取得し、個々のアプリケーションに指定されたストア優先度2006を比較する。ここで、既にストアされているアプリケーションがXAIT情報に記述されていない場合、ストア優先度比較部2601は、そのアプリケーションのストア優先度は最低値であるとみなす。そして、その比較結果をストアアプリ決定部2602に返す。ここで、比較結果の返し方は、XAIT情報に記述された全てのアプリケーションを優先度の高い順にならべ代えた配列として返す等により実施可能であるが、ストアアプリ決定部2602がXAIT情報に記述された全てのアプリケーションについて、そのストア優先度の高低を知るために必要な情報を提供するものであれば形式は問わない。
ストア領域残容量取得部2606は、ストアアプリ決定部2602からの取得要求を受けると、ストア領域2201がアプリケーションをストアできる残りの容量を取得し、その取得結果をストアアプリ決定部2602に返す。ここで、取得結果の返し方は、数値情報として返す等により実現可能であるが、ストアアプリ決定部2602が、ストア領域2201がアプリケーションをストアできる残りの容量を知るために必要な情報を提供するものであれば形式は問わない。
アプリケーション容量取得部2607は、ストアアプリ決定部2602からの取得要求を受けると、XAIT情報に記述された各アプリケーション及び既にストア領域にストアされている各アプリケーションのストアに必要な容量を取得し、その取得結果をストアアプリ決定部2602に返す。ここで、取得結果の返し方は、各アプリケーション毎に数値を対応付けて返す等により実施可能であるが、ストアアプリ決定部2602が各アプリケーションについて、そのストアに必要な容量を知るために必要な情報を提供するものであれば形式は問わない。
ストアアプリ決定部2602は、ストア領域2201にストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセット、を決定する。ここで、ストアアプリ決定部2602は、ストア優先度比較部2601にストア優先度比較結果の取得を要求し、ストア領域残容量取得部2606にストア領域2201の残容量の取得を要求し、アプリケーション容量取得部2607に各アプリケーションのストアに必要な容量の取得を要求する。そして、これらの取得した情報に基づいて、ストア領域2201にストアされている全てのアプリケーションの容量がストア領域2201の総容量を越えない範囲において、可能な限り多くのアプリケーションを、ストア優先度の高いアプリケーションから優先的にストア領域2201にストアされることが満たされるよう、ストア優先度の高いアプリケーションを優先的にストアすることを決定する。さらに、ストアアプリ決定部2602は、既にストアされているアプリケーションであっても、ストア優先度の低いアプリケーションから順に、ストア領域2201から削除することを決定する。そして、ストアアプリ決定部2602は、ストア領域2201にストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセット、を決定後に、通知部2605への通知指示と、ストア部2603へのアプリケーションのストア指示と、ストア削除部2604へのアプリケーション削除指示を行う。ここで、通知部2605への通知指示と、アプリケーションのストア削除部2604へのアプリケーションの削除指示は、既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合のみにおいて行うが、この場合、通知部2605への通知指示を、アプリケーションのストア削除部2604へのアプリケーションの削除指示より前に行うことにより、ユーザへのアプリケーション削除通知を、ストア領域からアプリケーションが削除される前に行うことができる。
ストア部2603は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストアする。
ストア削除部2604は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストア領域2201から削除する。
通知部2605は、ストアアプリ決定部2602の決定結果に従い、ユーザにアプリケーションが削除されることを通知する。ここで、通知部2605によるユーザへのアプリケーション削除通知は、通知部2605が端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、削除通知をディスプレイ509に表示することにより実現される。ここで、ダイアログは、例えば一定時間経過後にディスプレイ509から消すものとする。
図29及び図30は、本実施の形態におけるXAIT情報を受け取ったAM1205bによる、アプリケーションのストア処理動作の一例を示すフローチャートである。特に、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足する場合における、AM1205bによる、MPEG2トランスポートストリームからストア領域2201へのアプリケーションのストア処理動作の一例を示すフローチャートである。
図29及び図30に示すように、AM1205bがXAIT情報を受け取ると(S2701)、XAIT情報に記述されたアプリケーションから、ストア優先度の高いものから順にまだ選ばれていないアプリケーションを1つ選択する。但しここで、受け取ったXAIT情報に従ったストア処理において、ストア削除部2604がストア領域2201から既に削除したアプリケーションを除くアプリケーションを1つ選択する(S2702)。そして、AM1205bは、選択したアプリケーションがストアされているか否かを判断する(S2703)。
選択したアプリケーションがストアされている場合(S2703のYES)、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)する。ここで、未だXAIT情報に記述の全てのアプリケーションを選択していない場合(S2707のNO)、AM1205bは次のアプリケーションを選択しストア処理を進める。既にXAIT情報に記述の全てのアプリケーションを選択している場合には(S2707のYES)、AM1205bは、ストア処理を終了する。
一方、選択したアプリケーションがストアされていない場合(S2703のNO)、ストアアプリ決定部2602は、ストア領域残容量取得部2606からストア領域の残容量を取得し、アプリケーション容量取得部2607からアプリケーション容量を取得する(S2704)。そして、ストア領域残容量取得部2606から取得したストア領域の残容量とアプリケーション容量取得部2607から取得したアプリケーション容量に基づき、ストアアプリ決定部2602は、ストア領域の残容量が選択したアプリケーションの容量より大きいか否かを判断する(S2705)。
ストア領域の残容量が選択したアプリケーションの容量より大きいと判断した場合(S2705のYES)、ストア部2603は選択したアプリケーションをストアする(S2706)。そして、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、ストアアプリ決定部2602がストア領域の残容量が選択したアプリケーションの容量より小さいと判断した場合(S2705のNO)、AM1205bは、既にストアされているアプリケーションがあるか否かを判断する(S2801)。
既にストアされているアプリケーションがある場合には(S2801のYES)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストアする際に、既にストアされているアプリケーションがある為にストア領域2201の容量が不足する場合には、ストアアプリ決定部2602は、ストア優先度比較部2601から個々のアプリケーションに指定されたストア優先度2006の比較結果を取得する(S2802)。その比較結果に基づいて、ストアアプリ決定部2602は、ストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットを決定する(S2803)。ここで、ストアアプリ決定部2602は、既にストアされているアプリケーションの中で、選択したアプリケーションのストア優先度よりもストア優先度の低いアプリケーションがある場合には、ストア領域の残容量が選択したアプリケーションの容量以上になるように、ストアアプリ決定部2602は、その既にストアされているアプリケーションをストア領域から削除することを決定し、選択したアプリケーションをストアすることを決定する。但し、それらの既にストアされているアプリケーションをストア領域から削除してもストア領域の残容量が選択したアプリケーションの容量以上にならない場合には、それらの既にストアされているアプリケーションはストア領域から削除せず、選択したアプリケーションをストアしないことを決定する。一方、既にストアされているアプリケーションの中で、選択したアプリケーションのストア優先度よりもストア優先度の低いアプリケーションがない場合には、ストアアプリ決定部2602は、既にストアされているアプリケーションのいずれもストア領域から削除せず、選択したアプリケーションをストアしないことを決定する。続いて、ストアアプリ決定部2602は、既にストアされていたアプリケーションをストア領域2201から削除すると決定したか削除しないことを決定したかを判定する(S2804)。
ストアアプリ決定部2602が既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合(S2804のYES)、ストアアプリ決定部2602は、通知部2605に削除通知を指示し、ストア削除部2604に、アプリケーションをストア領域2201から削除することを指示し、ストア部2603に、アプリケーションのストアを指示する。そして、通知部2605は、ストアアプリ決定部2602の決定結果に従い、ユーザにアプリケーションが削除されることを通知する(S2805)。ストア削除部2604は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストア領域2201から削除し(S2806)、ストア部2603は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストアする(S2706)。ここで、ストア削除部2604は、通知部2605によるユーザへの通知が行われたことを検知した後に、アプリケーションをストア領域2201から削除しても良い。そして、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報記述の全てのアプリケーションを選択していない場合、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、ストアアプリ決定部2602が既にストアされていたアプリケーションをストア領域2201から削除しないことを決定した場合(S2804のNO)、選択されたアプリケーションをストアするストア領域を確保することができないので、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断する(S2707)。そしてAM1205bは、上述と同様に、未だXAIT情報記述の全てのアプリケーションを選択していない場合には、次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、既にストアされているアプリケーションがあるか否かの判断(S2801)において、既にストアされているアプリケーションがない場合には(S2801のNO)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足するが、既にストアされているアプリケーションがない場合には、選択されたアプリケーションをストアするストア領域を確保することができないので、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断する(S2707)。そしてAM1205bは、上述と同様に、未だXAIT情報記述の全てのアプリケーションを選択していない場合には、次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
なお、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足するが、既にストアされているアプリケーションがない場合には、選択されたアプリケーションをストアするストア領域を確保することができないので、AM1205bは選択したアプリケーションをストアせずにストア処理を終了してもよい。
ここで、本実施の形態において、既にストアされているアプリケーションがXAIT情報に記述されていない場合、ストア優先度比較部2601は、そのアプリケーションのストア優先度は最低値であるとみなすとしているが、このような場合、ストアアプリ決定部2602は、そのアプリケーションのストア領域2201からの削除を無条件に決定する等の方法を取ってもよい。
なお、ここで、通知部2605によるユーザへのアプリケーション削除通知は、通知部2605が端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、削除通知をディスプレイ509に表示することにより実現している。しかし、通知部2605によるユーザへの削除通知は、ユーザがアプリケーションの削除を検知できる方法であれば、その他の方法であっても実施可能である。
図31は、削除通知の表示位置を説明するための説明図である。
例えば、通知部2605によるユーザへの削除通知は、リモコンの液晶画面に削除通知を表示させる、或いは、図31に示すように、端末装置本体の7セグLED3102に削除通知を表示させる、或いは、端末装置本体のランプ3101を点灯させるなどにより実施可能である。図31において、図8と同じ要素には図8と同じ符号を付し説明を省略する。
また、ここで、アプリケーションのストア完了時に、通知部2605は、ユーザにアプリケーションがストアされたことを通知してもよい。
また、ここで、ストアアプリ決定部2602は、必ずしも、ストア優先度の低いアプリケーションから順に、ストア領域2201から削除することを決定しない。例えば、OCAP仕様(OCAP 1.0 Profile OC−SP−OCAP1.0−IF−I09−031121)に記述のケーブルテレビシステムにおいては、既にストアされているアプリケーションが実行されている場合、そのアプリケーションをストレージから削除することによってアプリケーションの実行を妨げてはならないため、ストアアプリ決定部2602は、既にストア領域にストアされているアプリケーションの中で最もストア優先度の低いアプリケーションであっても、そのアプリケーションが実行中の場合には、そのアプリケーションをストア領域から削除する決定をしない。
図32は、AM1205bがアプリケーションをストアする動作の一例をまとめたフローチャートである。その動作は特に、ストア領域2201にアプリケーション2011が既にストアされている状態で、AM1205bが、図22に示すように、アプリケーション2011とアプリケーション2012とを記述したXAIT情報を取得し、ストア領域2201の容量が不足する場合の動作である。ここで、XAIT情報に記述されたアプリケーション2011のストア優先度は100であり、アプリケーション2012のストア優先度は200であるとする。またここで、ストア領域2201の容量はアプリケーション2011の容量とアプリケーション2012の容量の総和に満たないものとする。また、OCAP仕様においては、ストア処理により実行中のアプリケーションの実行を妨げてはならないので、ここでは、アプリケーション2011は起動されていないものとする。
AM1205bは、XAIT情報を取得すると(S2901)、XAIT情報に記述されるアプリケーションの中から最も高いストア優先度200をもつアプリケーション2012を選択する(S2902)。既にアプリケーション2011がストアされているため、ストア領域2201の残容量がアプリケーション2012のストアに必要な容量に満たないため、ストア優先度比較部2601は、既にストアされているアプリケーション2011と、アプリケーション2012のストア優先度を比較する(S2903)。ストアアプリ決定部2602は、優先度の低いアプリケーション2011をストア領域2201から削除することを決定する(S2904)。ストアアプリ決定部2602は、既にストアされていたアプリケーション2011をストア領域2201から削除すると決定したため、通知部2605に通知を指示し、ストア削除部2604にアプリケーション2011の削除を指示し、ストア部2603に、アプリケーション2012のストアを指示する。そして、通知部2605は、ユーザにアプリケーション2011が削除されることを通知する(S2905)。ここで、通知部2605によるユーザへのアプリケーション削除通知は、通知部2605が端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、図33に示すような削除通知をディスプレイ509に表示することにより実現される。
図33は、ディスプレイ509に表示される削除通知を示す図である。
ダイアログボックス3001はメッセージ3002の表示要素をもつ。なお、メッセージ3002の文字列は、ユーザにアプリケーションの削除を通知する為に必要な情報を提供できる方法であれば、図33中の文字列に限定されず他の文字列であってもよく、また、メッセージ3002の形式は文字列に限定されず他の形式であってもよい。また更に、ダイアログボックス3001の表示要素は、図33の表示要素に限定されず、ユーザにアプリケーション2011の削除を通知できるものであれば、他の表示要素であってもよい。続いて、ストア削除部2604は、アプリケーション2011をストア領域2201から削除する(S2906)。そして、ストア部2603は、アプリケーション2012をストアする(S2907)。
図34Aは、XAIT情報取得前におけるストア領域2201にストアされたアプリケーションの状態を示す図である。ここで状態2211はアプリケーション2011がストアされた状態を示す。
図34Bは、XAIT情報取得後におけるストア領域2201にストアされたアプリケーションの状態を示す図である。ここで状態2212はアプリケーション2012がストアされた状態を示す。
なお、本実施の形態において、ストアアプリ決定部2602によるストアするアプリケーションの決定は、図29に示すように、ストア優先度比較部の比較結果に基づき、ストア優先度の高いアプリケーションから順に選択し、ストア処理を行う方法により実現している(S2702)。しかし、ストアアプリ決定部2602は、XAIT情報に記述されるアプリケーション全てについて同時に、ストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットを決定するなどの方法をとっても良い。例えば、ストアアプリ決定部2602は、受け取ったXAIT情報を参照して、XAIT情報に記述されている全てのアプリケーションについて、ストア領域2201にストアされる全てのアプリケーションの容量がストア領域2201の総容量を越えない範囲において、ストア優先度の高いアプリケーションから順にストアすることを決定し、このとき既にストアされているがストアすることを決定されなかったアプリケーションをストア領域2201から削除することを決定するなどの方法をとっても良い。
また、なお、AM1205bがストア領域残容量取得部2606、及び、アプリケーション容量取得部2607を持たない場合や、AM1205bがアプリケーション容量取得部2607を持っているがアプリケーション容量取得部2607がアプリケーションの容量を取得できない場合においても、本発明は実施可能である。例えば、AM1205bはストア領域残容量取得部2606、及び、アプリケーション容量取得部2607を持たない場合、ストアアプリ決定部2602は、ストア優先度比較部2601の比較結果に従い、ストア優先度の高いアプリケーションから順にストアを決定し、ストア部2603がストアに失敗した場合には、ストア優先度の低いアプリケーションから順に、ストア領域2201から削除することを決定する等の方法をとってもよい。
図35A及び図35Bは、ストア領域残容量取得部2606及びアプリケーション容量取得部2607をもたないAM1205bによる、XAIT情報を受け取り時の、アプリケーションのストア処理動作の一例を示すフローチャートである。特に、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足する場合における、ストア領域残容量取得部2606及びアプリケーション容量取得部2607をもたないAM1205bによる、MPEG2トランスポートストリームからストア領域2201へのアプリケーションのストア処理動作の一例を示すフローチャートである。
図35Aに示すように、AM1205bがXAIT情報を受け取ると(S3301)、ストアアプリ決定部2602は、ストア優先度比較部2601からXAIT情報に記述されたアプリケーションのストア優先度を取得する(S3302)。そして、ストアアプリ決定部2602は、XAIT情報に記述されたアプリケーションからストア優先度の高いものから順にまだ選ばれていないアプリケーション1つをストア候補として選択する(S3303)。そして、ストアアプリ決定部2602は、ストア候補として選択したアプリケーションがストアされているか否かを判断する(S3304)。
ストア候補として選択したアプリケーションがストアされている場合(S3304のYES)、ストアアプリ決定部2602は、XAIT情報に記述のアプリケーションを全てストア候補として選択したか否かを判断する(S3307)。ここで、未だXAIT情報記述の全てのアプリケーションをストア候補として選択していない場合(S3307のNO)、ストアアプリ決定部2602は次のアプリケーションをストア候補として選択しストア処理を進め、既にXAIT情報記述の全てのアプリケーションをストア候補として選択している場合(S3307のYES)にはストア処理を終了する。
一方、ストア候補として選択したアプリケーションがストアされていない場合(S3304のNO)、ストア部2603はストア候補のアプリケーションをストアする(S3305)。そして、AM1205bは、ストア候補のアプリケーションをストアできたか否かを判断する(S3306)。
ストア候補のアプリケーションをストアできた場合(S3306のYES)、ストアアプリ決定部2602は、XAIT情報記述のアプリケーションを全てストア候補として選択したか否かを判断する(S3307)。上述と同様、未だXAIT情報記述の全てのアプリケーションをストア候補として選択していない場合(S3307のNO)、ストアアプリ決定部2602は次のアプリケーションをストア候補として選択しストア処理を進め、既にXAIT情報記述の全てのアプリケーションをストア候補として選択している場合(S3307のYES)にはストア処理を終了する。
一方、ストア候補のアプリケーションをストアできなかった場合(S3306のNO)、図35Bに示すように、ストアアプリ決定部2602は、既にストアされているアプリケーションがあるか否かを判断する(S3308)。
既にストアされているアプリケーションがある場合には(S3308のYES)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストアする際に、既にストアされているアプリケーションがある為にストア領域2201の容量が不足する場合には、ストアアプリ決定部2602は、既にストアされたアプリケーションからストア優先度の低いものから順に1つを削除候補として選択する(S3309)。そして、ストアアプリ決定部2602は、ストア優先度比較部2601からの取得結果に基づいて、削除候補として選択したアプリケーションのストア優先度がストア候補として選択したアプリケーションのストア優先度よりも低いか否かを判定する(S3310)。
削除候補として選択したアプリケーションのストア優先度がストア候補として選択したアプリケーションのストア優先度よりも低い場合(S3310YES)、ストアアプリ決定部2602は、削除候補のアプリケーションをストア領域から削除することを決定する(S3311)。そして、ストアアプリ決定部2602は、通知部2605に削除候補として選択したアプリケーションの削除通知を指示し、ストア削除部2604に、削除候補として選択したアプリケーションをストア領域2201から削除するように指示し、ストア部2603に、ストア候補として選択したアプリケーションのストアを指示する。そして、通知部2605は、ストアアプリ決定部2602の決定結果に従い、ユーザにアプリケーションが削除されることを通知し(S3312)、ストア削除部2604は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストア領域2201から削除する(S3313)。図35Aに示すように、ストア部2603は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストアする(S3305)。そして、ストア候補として選択したアプリケーションをストアできた場合には(S3306のYES)、ストアアプリ決定部2602は、上述と同様、XAIT情報に記述のアプリケーションを全てストア候補として選択したか否かを判断する(S3307)。未だXAIT情報記述の全てのアプリケーションをストア候補として選択していない場合には(S3307のNO)、ストアアプリ決定部2602は次のアプリケーションをストア候補として選択しストア処理を進め、既にXAIT情報記述の全てのアプリケーションをストア候補として選択している場合(S3307のYES)にはストア処理を終了する。一方、ストア候補として選択したアプリケーションをストアできなかった場合にはストアアプリ決定部2602は次のアプリケーションを削除候補として選択しストア処理を進める。
一方、削除候補として選択したアプリケーションのストア優先度がストア候補として選択したアプリケーションのストア優先度よりも高い場合(S3310のNO)、ストア候補として選択されたアプリケーションをストアするストア領域を確保することができない。そのため、ストアアプリ決定部2602は、図35Aに示すように、XAIT情報記述のアプリケーションを全てストア候補として選択したか否かを判断し(S3307)、未だXAIT情報記述の全てのアプリケーションをストア候補として選択していない場合には(S3307のNO)、ストアアプリ決定部2602は次のアプリケーションをストア候補として選択しストア処理を進め、既にXAIT情報記述の全てのアプリケーションをストア候補として選択している場合(S3307のYES)にはストア処理を終了する。
一方、既にストアされているアプリケーションがあるか否かの判断(S3308)において、既にストアされているアプリケーションがない場合には(S3308のNO)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足するが、既にストアされているアプリケーションがない場合には、ストア候補として選択されたアプリケーションをストアするストア領域を確保することができない。そこで、図35Aに示すように、ストアアプリ決定部2602は、XAIT情報に記述のアプリケーションを全て選択したか否かを判断する(S3307)。その結果、未だXAIT情報記述の全てのアプリケーションをストア候補として選択していない場合には(S3307のNO)、ストアアプリ決定部2602は次のアプリケーションをストア候補として選択しストア処理を進め、既にXAIT情報記述の全てのアプリケーションをストア候補として選択している場合(S3307のYES)にはストア処理を終了する。
また、本実施の形態において、複数のアプリケーションのストア優先度が同じ場合には、AM1205bは、ユーザへの問合せなど、その他の判断材料により、ストア領域2201から削除するアプリケーションのセットを決定してもよい。
また、本実施の形態において、AM1205bによるXAIT情報の受け取りは、端末装置500の電源投入時または、XAIT情報が更新された時に行う。つまり、本実施の形態において、AM1205bによるXAIT情報の受け取りは、端末装置500の電源投入時におけるAM1205bによるXAIT情報の受け取りと、端末装置500が起動後にXAIT情報が更新された時における、AM1205bによるXAIT情報の受け取りを対象としている。しかし、XAIT情報の更新は、ヘッドエンド101から送信されるXAIT情報そのものの更新だけでなく、AM1205bやアプリケーションによるXAIT情報の更新等、他の方法であっても本発明は実施可能である。
ここで、このような、アプリケーションによるXAIT情報の更新は、AM1205bが特別な権限をもつアプリケーションに対して、XAIT情報の更新を行うためのAPIを用意することにより実現する。XAIT情報の更新を行うためのAPIには、特別な権限をもつアプリケーションが新規に作成したXAIT情報を登録可能とするものや、既にAM1205bが1次記憶または2次記憶に保存しているXAIT情報を修正可能とするもの等がある。
図36は、ストアするアプリケーションの選択をユーザへ促すメッセージの一例を示す図である。XAIT情報の更新を行うためのAPIを提供された特別な権限を持つアプリケーションが、端末装置500のCPU514に表示したい情報を送ることにより、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが上記メッセージをディスプレイ509に表示する。ダイアログボックス3430内の列3401は各アプリケーションのアプリケーション名である。行3411と行3412と行3413は、アプリケーションの情報の一覧である。ユーザが、行3411が示すアプリケーションを選択すると、特別な権限を持つアプリケーションは、XAIT情報の更新を行うためのAPIを用いて、AM1205bに対し、行3411が示すアプリケーションをストアさせるようにXAIT情報の更新を指示する。ここで、行3411が示すアプリケーションの選択は、例えば、図36に示すように、フォーカス3420が行3411の示すアプリケーションのアプリケーション名「誕生日アプリ」上にあるときに、ユーザがリモコンに割り当てられたOKキーを押下することにより実現される。
特別な権限をもつアプリケーションがXAIT情報の更新を行うためのAPIを呼び出すと、AM1205bは特別な権限をもつアプリケーションからの指示に従いXAIT情報を生成または修正し1次記憶または2次記憶に保存する。このようなXAIT情報の更新を行うためのAPIは公知の技術にて実現されている。例えば、XAIT情報を登録するAPIは、OCAP仕様(OCAP 1.0 Profile OC−SP−OCAP1.0−IF−I09−031121)のAnnexG OCAP 1.0 Application APIにおいて、org.ocap.application.AppManagerProxyクラスのregisterUnboundAppメソッドとして定義されている。特別な権限をもつアプリケーションがXAIT情報を登録するAPIを用いて、新規のXAIT情報を登録(特別な権限をもつアプリケーションが新規に作成したXAIT情報の登録)を行った際には、AM1205bは、その特別な権限をもつアプリケーションにより登録されたXAIT情報を、XAIT情報の更新として受け取る。
このように、実施の形態1では、ストア優先度を用いることにより、常に、ストア優先度の高いアプリケーションを優先的にストアすることが出来る。さらに、アプリケーションがストア領域2201から削除される場合には、ユーザにアプリケーションが削除されることをユーザに通知することにより、ユーザは、既にストアされていたアプリケーションの削除に起因する、XAIT情報の取得からアプリケーション起動までの時間が遅くなる等のアプリケーションの挙動変化を前もって知ることができる。その結果、ユーザは安心して端末装置500を利用することができる。
(実施の形態2)
実施の形態1では、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合、通知部2605は、ユーザにアプリケーションが削除されることを通知する。しかし、ユーザによる削除通知の確認の有無を判断せずに、アプリケーションのストア削除部2604は、アプリケーションをストア領域2201から削除してしまう。例えば、ユーザが、アプリケーションの削除通知に気づかなくても、アプリケーションがストア領域2201から削除される可能性がある。
そこで、本実施の形態においては、さらに、図37に示すように、AM1205bはユーザからの応答を受け付ける応答受付部3501を備える。
図37は、本実施の形態におけるAM1205bの構成を示す構成図である。
本実施の形態において、通知部2605は、ストアアプリ決定部2602の指示に従い、ユーザにアプリケーションが削除されることを通知する。ここで、通知部2605によるユーザへのアプリケーション削除通知は、通知部2605が端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、図38に示すような削除通知をディスプレイ509に表示することにより実現される。
図38は、本実施の形態におけるディスプレイ509に表示される削除通知の一例を示す図である。
ダイアログボックス3001は、メッセージ3002及びOKボタン3701の表示要素をもつ。なお、ユーザにアプリケーションの削除を通知する為に必要な情報を提供できる方法であれば、図38中の文字列に限定されず他の文字列であってもよく、また、メッセージ3002の形式は文字列に限定されず他の形式であってもよい。また、OKボタン3701の文字列は、図38中の文字列に限定されず他の文字列であってもよい。また更に、ダイアログボックス3001の表示要素は、図38の表示要素に限定されず、ユーザにアプリケーション2011の削除を通知し、ユーザが削除通知の確認を選択したことをCPU514が認識できるものであれば、他の表示要素であってもよい。
応答受付部3501は、CPU514から、ユーザの上記OKボタン3701の選択等による削除通知の確認時におけるユーザからの選択情報を受付け、CPU514から選択情報を受付けた時に、ストアアプリ決定部2602に通知確認情報を通知する。
さらに、本実施の形態において、ストアアプリ決定部2602は、実施の形態1と同様の方法により、ストア領域2201にストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットを決定し、既にストアされていたアプリケーションをストア領域2201からの削除すると決定した場合には、通知部2605への通知指示と、ストア部2603へのアプリケーションのストア指示と、ストア削除部2604へのアプリケーション削除指示を行う。但し、本実施の形態において、ストアアプリ決定部2602は、応答受付部3501からの通知確認情報の通知を受けて初めて、ストア削除部2604へアプリケーションの削除指示を行い、ストア部2603へアプリケーションのストア指示を行う。これにより、アプリケーションのストア削除部2604がアプリケーションをストア領域2201から削除する前に、通知部2605によりユーザにアプリケーションの削除通知がされることを実現する。
図39は、本実施の形態における、XAIT情報を受け取ったAM1205bによる、アプリケーションのストア処理の特徴的な動作の一例を示すフローチャートである。この図39は、図29に示すステップS2705からの処理を示すものであって、特に、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足する場合における、AM1205bによるストア処理動作の一例を示す。
図39において、図30と同じステップには、図30と同じ番号を付した。
図29に示すように、AM1205bがXAIT情報を受け取ると(S2701)、XAIT情報に記述されたアプリケーションからストア優先度の高いものから順にまだ選ばれていないアプリケーションを1つ選択する。但しここで、受け取ったXAIT情報に従ったストア処理において、ストア削除部2604がストア領域2201から既に削除したアプリケーションを除くアプリケーションを1つ選択する(S2702)。そして、AM1205bは、選択したアプリケーションがストアされているか否かを判断する(S2703)。
選択したアプリケーションがストアされている場合(S2703のYES)、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)する。ここで、未だXAIT情報に記述の全てのアプリケーションを選択していない場合(S2707のNO)、AM1205bは次のアプリケーションを選択しストア処理を進める。既にXAIT情報に記述の全てのアプリケーションを選択している場合には(S2707のYES)、AM1205bは、ストア処理を終了する。
一方、選択したアプリケーションがストアされていない場合(S2703のNO)、ストアアプリ決定部2602は、ストア領域残容量取得部2606からストア領域の残容量を取得し、アプリケーション容量取得部2607からアプリケーション容量を取得する(S2704)。そして、ストア領域残容量取得部2606から取得したストア領域の残容量とアプリケーション容量取得部2607から取得したアプリケーション容量に基づき、ストアアプリ決定部2602は、ストア領域の残容量が選択したアプリケーションの容量より大きいか否かを判断する(S2705)。
ストア領域の残容量が選択したアプリケーションの容量より大きいと判断した場合(S2705のYES)、ストア部2603は選択したアプリケーションをストアする(S2706)。そして、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、ストアアプリ決定部2602がストア領域の残容量が選択したアプリケーションの容量より小さいと判断した場合(S2705のYES)、図39に示すように、AM1205bは、既にストアされているアプリケーションがあるか否かを判断する(S2801)。
既にストアされているアプリケーションがある場合には(S2801のYES)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストアする際に、既にストアされているアプリケーションがある為にストア領域2201の容量が不足する場合には、ストアアプリ決定部2602は、ストア優先度比較部2601から個々のアプリケーションに指定されたストア優先度2006の比較結果を取得する(S2802)。その比較結果に基づいて、ストアアプリ決定部2602は、ストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットを決定する(S2803)。ここで、ストアアプリ決定部2602は、既にストアされているアプリケーションの中で、選択したアプリケーションのストア優先度よりもストア優先度の低いアプリケーションがある場合には、ストア領域の残容量が選択したアプリケーションの容量以上になるように、それらの既にストアされているアプリケーションを、ストア領域から削除することを決定し、選択したアプリケーションをストアすることを決定する。但し、それらの既にストアされているアプリケーションをストア領域から削除してもストア領域の残容量が選択したアプリケーションの容量以上にならない場合には、ストアアプリ決定部2602は、それらの既にストアされているアプリケーションはストア領域から削除せず、選択したアプリケーションをストアしないことを決定する。続いて、ストアアプリ決定部2602は、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定したか削除しないことを決定したかを判定する(S2804)。
ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合(S2804のYES)、ストアアプリ決定部2602は、通知部2605に削除通知を指示する。そして、通知部2605は、ストアアプリ決定部2602の決定結果に従い、ユーザにアプリケーションが削除されることを通知する(S3601)。ここで、通知部2605によるユーザへのアプリケーション削除通知は、通知部2605が端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、図38に示すような削除通知をディスプレイ509に表示することにより実現される。ダイアログボックス3001は、メッセージ3002及びOKボタン3701の表示要素をもつ。ユーザがOKボタン3701をリモコン操作等により選択すると、CPU514はAM1205bの応答受付部3501にユーザからの選択情報を送る。応答受付部3501はユーザからの選択情報を受けると、ストアアプリ決定部2602に通知確認情報を通知する(S3602)。ストアアプリ決定部2602は、応答受付部3501から通知確認情報の通知を受けると、ストア削除部2604に、アプリケーションをストア領域2201から削除するように指示し、ストア部2603に、アプリケーションのストアを指示する。即ち、応答受付部3501は、ユーザの選択情報を受けると、その選択情報をストアアプリ決定部2602を介してストア削除部2604及びストア部2603に通知する。そして、ストア削除部2604は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストア領域2201から削除し(S2806)、ストア部2603は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストアする(S2706)。そして、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断する(S2707)。そして、AM1205bは、上述と同様、未だXAIT情報に記述の全てのアプリケーションを選択していない場合、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除しないことを決定した場合(S2804のNO)、選択されたアプリケーションをストアするストア領域を確保することができない。そこで、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、既にストアされているアプリケーションがない場合には(S2801のNO)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足するが、既にストアされているアプリケーションがない場合には、選択されたアプリケーションをストアするストア領域を確保することができない。そこで、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
なお、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足するが、既にストアされているアプリケーションがない場合には、選択されたアプリケーションをストアするストア領域を確保することができないので、AM1205bは選択したアプリケーションをストアせずにストア処理を終了してもよい。
ここで、既にストアされているアプリケーションがXAIT情報に記述されていない場合、ストア優先度比較部2601は、そのアプリケーションのストア優先度は最低値であるとみなすとした。このような場合、ストアアプリ決定部2602は、そのアプリケーションのストア領域2201からの削除を無条件に決定する等の方法を取ってもよい。
なお、応答受付部3501にタイムアウト時間をユーザが設定可能とし、応答受付部3501がそのタイムアウト時間の間にユーザからの応答がなかった場合には、ストア削除部2604は、ユーザによりアプリケーション削除通知が確認されてOKボタン3701が選択されものとみなし、ストア領域2201からアプリケーションを削除するなどとしても良い。
このように、実施の形態2により、アプリケーションがストア領域2201から削除される場合には、ユーザにアプリケーションが削除されることを通知し、ユーザの確認が得られた後に、アプリケーションをストア領域2201から削除することにより、ユーザは、既にストアされていたアプリケーションの削除に起因する、XAIT情報の取得からアプリケーション起動までの時間が遅くなる等のアプリケーションの挙動変化を、より確実に、前もって知ることができる。
(実施の形態3)
実施の形態2では、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合、通知部2605は、ユーザにアプリケーションが削除されることを通知し、応答受付部3501がユーザの通知確認情報を受ける。その後に、ストア削除部2604は、ストアアプリ決定部2602の決定に従い、アプリケーションをストア領域2201から削除する。しかし、このような実施の形態2では、ユーザは、アプリケーションのストア領域2201からの削除を拒絶することができない。例えば、ユーザが、あるアプリケーションをストア領域2201から削除したくない場合でも、ストア領域2201から削除されてしまう可能性がある。
そこで、本実施の形態においては、さらに、AM1205bのストアアプリ決定部2602は、ユーザからの応答受付部3501が受付けたユーザからの応答情報に従い、その決定結果を変更できる。
本実施の形態において、通知部2605は、ストアアプリ決定部2602が既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合において、ストア削除部2604がアプリケーションをストア領域2201から削除する前に、ユーザにアプリケーションを削除してもよいか確認する。ここで、通知部2605によるユーザへのアプリケーション削除通知は、通知部2605が端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、図40に示すような削除通知をディスプレイ509に表示することにより実現される。
図40は、本実施の形態におけるディスプレイ509が表示する削除通知の一例を示す図である。
ダイアログボックス3001は、メッセージ4001とYesボタン4002とNoボタン4003の表示要素をもつ。なお、メッセージ4001の文字列は、ユーザにアプリケーションの削除を通知する為に必要な情報を提供できる方法であれば、図40中の文字列に限定されず他の文字列であってもよく、また、メッセージ4001の形式は文字列に限定されず他の形式であってもよい。また、Yesボタン4002及びNoボタン4003の文字列は、図40中の文字列に限定されず他の文字列であってもよい。また更に、ダイアログボックス3001の表示要素は、図40の表示要素に限定されず、ユーザにアプリケーションの削除を通知し、ユーザが削除通知の許可または拒否を選択したことをCPU514が認識できるものであれば、他の表示要素であってもよい。
また、本実施の形態において、応答受付部3501は、CPU514から、ユーザが上記Yesボタン4002または上記Noボタン4003の選択によりアプリケーションの削除を許可または拒否した時におけるユーザからの選択情報を受付ける。そして、応答受付部3501は、CPUから選択情報を受付けた時に、その選択情報が、アプリケーションの削除の許可を示すものか、アプリケーションの削除の拒否を示すものかを判定する。アプリケーションの削除の許可を示す場合には、応答受付部3501は、ストアアプリ決定部2602に通知確認情報を通知し、アプリケーションの削除の拒否を示す場合には、ストアアプリ決定部2602に通知拒否情報を通知する。
さらに、本実施の形態において、ストアアプリ決定部2602は、実施の形態1と同様の方法により、ストア領域2201にストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットを決定する。そして、既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合には、ストアアプリ決定部2602は、通知部2605への通知指示と、ストア部2603へのアプリケーションのストア指示と、ストア削除部2604へのアプリケーション削除指示を行う。但し、本実施の形態において、ユーザがアプリケーション削除を許可した場合には、ストアアプリ決定部2602は、応答受付部3501から通知確認情報の通知を受けて初めて、ストア部2603へアプリケーションの削除指示を行い、ストア削除部2604へアプリケーションの削除指示を行う。一方、ユーザがアプリケーションの削除を許可しない場合には、ストアアプリ決定部2602は、応答受付部3501から通知拒否情報の通知を受けると、ストア領域2201から削除するアプリケーションと、ストアするアプリケーションとのセットの決定を変更する。
ここで、決定の変更は例えば、ストアアプリ決定部2602は、ストア優先度の次に低いアプリケーションをストア領域2201から削除することを決定する等の方法により実現される。なお、ユーザがストア領域からの削除を拒否したアプリケーションを削除しないことが実現できれば、他の方法であってもよい。
そして、この決定の変更後に初めて、その変更した決定結果に従わせるように、ストアアプリ決定部2602は、ストア部2603へアプリケーションのストア指示を行い、アプリケーションのストア削除部2604へアプリケーションの削除指示を行う。
図41及び図42は、本実施の形態における、XAIT情報を受け取ったAM1205bによる、アプリケーションのストア処理の特徴的な動作の一例を示すフローチャートである。これらの図41及び図42は、図29に示すステップS2705からの処理を示すものであって、特に、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足する場合における、AM1205bによるストア処理動作の一例を示す。
図41において、図30と同じステップには、図30と同じ番号を付した。
図29に示すように、AM1205bがXAIT情報を受け取ると(S2701)、XAIT情報に記述されたアプリケーションからストア優先度の高いものから順にまだ選ばれていないアプリケーションを1つ選択する。但しここで、受け取ったXAIT情報に従ったストア処理において、ストア削除部2604がストア領域2201から既に削除したアプリケーションを除くアプリケーションを1つ選択する(S2702)。そして、AM1205bは、選択したアプリケーションがストアされているか否かを判断する(S2703)。
選択したアプリケーションがストアされている場合(S2703のYES)、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断(S2707)する。ここで、未だXAIT情報に記述の全てのアプリケーションを選択していない場合(S2707のNO)、AM1205bは次のアプリケーションを選択しストア処理を進める。既にXAIT情報に記述の全てのアプリケーションを選択している場合には(S2707のYES)、AM1205bは、ストア処理を終了する。
一方、選択したアプリケーションがストアされていない場合(S2703のNO)、ストアアプリ決定部2602は、ストア領域残容量取得部2606からストア領域の残容量を取得し、アプリケーション容量取得部2607からアプリケーション容量を取得する(S2704)。そして、ストア領域残容量取得部2606から取得したストア領域の残容量とアプリケーション容量取得部2607から取得したアプリケーション容量に基づき、ストアアプリ決定部2602は、ストア領域の残容量が選択したアプリケーションの容量より大きいか否かを判断する(S2705)。
ストア領域の残容量が選択したアプリケーションの容量より大きいと判断した場合(S2705のYES)、ストア部2603は選択したアプリケーションをストアする(S2706)。そして、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、ストアアプリ決定部2602がストア領域の残容量が選択したアプリケーションの容量より小さいと判断した場合(S2705のYES)、図41に示すように、AM1205bは、既にストアされているアプリケーションがあるか否かを判断する(S2801)。
既にストアされているアプリケーションがある場合には(S2801のYES)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストアする際に、既にストアされているアプリケーションがある為にストア領域2201の容量が不足する場合には、ストアアプリ決定部2602は、ストア優先度比較部2601から個々のアプリケーションに指定されたストア優先度2006の比較結果を取得する(S2802)。その比較結果に基づいて、ストアアプリ決定部2602は、ストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットを決定する(S2803)。ここで、ストアアプリ決定部2602は、既にストアされているアプリケーションの中で、選択したアプリケーションのストア優先度よりもストア優先度の低いアプリケーションがある場合には、ストア領域の残容量が選択したアプリケーションの容量以上になるように、それらの既にストアされているアプリケーションを、ストア領域から削除することを決定し、選択したアプリケーションをストアすることを決定する。但し、それらの既にストアされているアプリケーションをストア領域から削除してもストア領域の残容量が選択したアプリケーションの容量以上にならない場合には、ストアアプリ決定部2602は、それらの既にストアされているアプリケーションはストア領域から削除せず、選択したアプリケーションをストアしないことを決定する。続いて、ストアアプリ決定部2602は、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定したか削除しないことを決定したかを判定する(S2804)。
ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合(S2804のYES)、ストアアプリ決定部2602は、通知部2605に削除通知を指示する。そして、通知部2605は、ユーザにアプリケーションを削除してもよいか確認する(S3801)。ここで、通知部2605によるユーザへのアプリケーション削除通知は、通知部2605が端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、図40に示すような削除通知をディスプレイ509に表示することにより実現される。ダイアログボックス3001は、メッセージ4001とYesボタン4002とNoボタン4003の表示要素をもつ。
ユーザがYesボタン4002またはNoボタン4003をリモコン操作等により選択すると、CPU514はAM1205bの応答受付部3501にユーザからの選択情報を送る。
応答受付部3501は、CPU514からユーザの選択情報を受け取ると、ユーザの選択情報が、アプリケーションの削除の許可を示すものか、アプリケーションの削除の拒否を示すものかを判定する(S3802)。
ユーザの選択情報が、アプリケーションの削除の許可を示す場合、応答受付部3501は、ストアアプリ決定部2602に通知確認情報を通知する(S3803)。ストアアプリ決定部2602は、応答受付部3501から通知確認情報の通知を受けると、ストア削除部2604に、アプリケーションをストア領域2201から削除するように指示し、ストア部2603に、アプリケーションのストアを指示する。そして、ストア削除部2604は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストア領域2201から削除し(S2806)、ストア部2603は、図29に示すように、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストアする(S2706)。そして、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合(S2707のNO)、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報記述の全てのアプリケーションを選択している場合(S2707のYES)にはストア処理を終了する。
一方、ユーザの選択情報が、アプリケーションの削除の拒否を示す場合(S3802のNO)、図42に示すように、応答受付部3501は、ストアアプリ決定部2602に通知拒否情報を通知する(S3901)。ストアアプリ決定部2602は、応答受付部3501から通知拒否情報の通知を受けると、ストア領域2201から削除するアプリケーションと、ストアするアプリケーションとのセットの決定を変更する(S3902)。ここでは、ストアアプリ決定部2602は、ストア優先度の次に低いアプリケーションをストア領域2201から削除することを決定する。但し、削除するアプリケーションのストア優先度は、ストアするアプリケーションのストア優先度よりも低くなるように決定する。ストアするアプリケーションのストア優先度よりも低いストア優先度をもつアプリケーションがストア領域2201に存在しない場合には、アプリケーションをストア領域2201から削除しないと決定する。
続いて、ストアアプリ決定部2602は、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定したか否かを判定する(S3903)。ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201からの削除すると決定した場合には(S3903のYES)、ストアアプリ決定部2602は、再度、通知部2605に削除通知を指示する。そして、再度、通知部2605は、ユーザにアプリケーションを削除してもよいか確認して(S3801)、ストア処理を継続する。一方、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除しないことを決定した場合(S3903のNO)、選択されたアプリケーションをストアするストア領域を確保することができない。そこで、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合には(S2707のNO)、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報記述の全てのアプリケーションを選択している場合(S2707のYES)にはストア処理を終了する。
一方、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除しないことを決定した場合には(S2804のNO)、選択されたアプリケーションをストアするストア領域を確保することができない。そこで、AM1205bは、上述と同様、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合には、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、既にストアされているアプリケーションがない場合には(S2801のNO)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足するが、既にストアされているアプリケーションがない場合には、選択されたアプリケーションをストアするストア領域を確保することができない。そこで、AM1205bは、上述と同様、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合には、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
なお、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足するが、既にストアされているアプリケーションがない場合には、選択されたアプリケーションをストアするストア領域を確保することができない。そこで、AM1205bは選択したアプリケーションをストアせずにストア処理を終了してもよい。
ここで、既にストアされているアプリケーションがXAIT情報に記述されていない場合、ストア優先度比較部2601は、そのアプリケーションのストア優先度は最低値であるとみなすとした。このような場合、ストアアプリ決定部2602は、そのアプリケーションのストア領域2201からの削除を無条件に決定する等の方法を取ってもよい。
また、ここでは、応答受付部3501がユーザの通知拒否情報を受けると、ストアアプリ決定部2602は、ストア領域2201から削除するアプリケーションと、ストアするアプリケーションとのセットの決定を変更することにより、ユーザが削除を拒否したアプリケーションがストア領域2201から削除されないことを実現している。しかし、AM1205bがXAIT情報を更新して、アプリケーションのストア優先度を変更することにより、ユーザが削除を拒否したアプリケーションがストア領域2201から削除されないことを実現してもよい。例えば、ユーザが削除を拒否したアプリケーションのストア優先度を最大値に再設定するなどの方法をとってもよい。
このように実施の形態3では、ユーザは、アプリケーションをストア領域2201から削除するとの確認を受けた際に、そのアプリケーションがストア領域2201からの削除されること拒否することができる。そして、ユーザが削除を拒否したアプリケーションはストア領域2201から削除しないことが実現できる。
(実施の形態4)
本実施の形態では、更に、AM1205bがヘッドエンド101から送信されるXAIT情報の受け取り時に、そのXAIT情報の保存、及び、アプリケーションのストア処理やアプリケーション起動指示などのXAIT情報の記述に従う処理を行う前に、そのXAIT情報を受け取って良いか否か、つまり、そのXAIT情報の記述に従う処理を行って良いか否かの決定権を与えるAPIを、特別な権限をもつアプリケーションに提供する。更に、本実施の形態では、XAIT情報に記述のストア優先度を変更するAPIを、特別な権限をもつアプリケーションに提供する。
ここで、ヘッドエンド101から送信されるXAIT情報の受け取り時に、そのXAIT情報を受け取って良いか否かの決定権を与えるAPIは公知の技術にて実現されている。ヘッドエンド101から送信されるXAIT情報の受け取り時に、そのXAIT情報を受け取って良いか否かの決定権を、特別な権限をもつアプリケーションに対して与えるAPIは、OCAP仕様(OCAP 1.0 Profile OC−SP−OCAP1.0−IF−I09−031121)のAnnexG OCAP 1.0 Application APIにおいて、org.ocap.application.AppManagerProxyクラスのsetAppSignalHandlerメソッドとして定義されている。
以降、実施の形態1に記述したXAIT情報を更新するAPIや、XAIT情報に記述のストア優先度を変更するAPI、ヘッドエンド101から送信されるXAIT情報の受け取り時に、そのXAIT情報を受け取って良いか否かの決定権を与えるAPIなどの、各APIを区別するときには、それぞれを更新API、変更API、及び決定APIという。そして、これらの各APIを提供される特別な権限をもつアプリケーションを、モニターアプリケーションと呼ぶ。
本実施の形態において、XAIT情報に記述のストア優先度を変更するAPIは、ヘッドエンド101から送信されるXAIT情報に記述のアプリケーションのストア優先度をモニターアプリケーションが変更できるようにするためのAPIである。
本実施の形態において、AM1205bは、モニターアプリケーションから、決定APIを利用してXAIT情報を受け取って良いか否かの決定権を与えるよう依頼を受けていた場合、AM1205bは、ヘッドエンド101から送信されるXAIT情報の受け取り時に、モニターアプリケーションへ、そのXAIT情報を受け取って良いか否かの決定を委ねる。
モニターアプリケーションは、そのXAIT情報の受け取りを許可した場合には、ヘッドエンド101から送信された上記XAIT情報を受け取り、または、変更APIを用いる場合には、その変更されたXAIT情報を受け取る。そして、AM1205bは、実施の形態1または2いずれかに記述の方法により、そのXAIT情報を受け取り、XAIT情報記述のアプリケーションのストア処理を行う。なおここで、モニターアプリケーションの判断のみに任せず、より厳重にストア優先度の重なりに対処するために実施の形態3に記述の処理を行っても良い。一方、モニターアプリケーションは、そのXAIT情報の受け取りを拒否した場合には、ヘッドエンド101から送信された上記XAIT情報を無視する。
また、AM1205bは、モニターアプリケーションからXAIT情報を受け取って良いか否かの決定権を与えるよう依頼を受けてない場合には、実施の形態1または2いずれかに記述の方法により、XAIT情報を受け取り、XAIT情報に記述のアプリケーションのストア処理を行う。なお、モニターアプリケーションの判断のみに任せず、より厳重にストア優先度の重なりに対処するために実施の形態3に記述の処理を行っても良い。
また、XAIT情報の受け取りが、更新APIの利用によりモニターアプリケーションが行うXAIT情報の更新や、変更APIの利用によりモニターアプリケーションが行うXAIT情報の変更、に起因する場合は、AM1205bは、モニターアプリケーションへ、そのXAIT情報を受け取って良いか否かの決定を委ねず、実施の形態1または2いずれかに記述の方法により、XAIT情報を受け取り、XAIT情報記述のアプリケーションのストア処理を行う。
なお、モニターアプリケーションの判断のみに任せず、より厳重にストア優先度の重なりに対処するために実施の形態3に記述の処理を行っても良い。
本実施の形態において、モニターアプリケーションは、決定APIを用いてヘッドエンド101から送信されるXAIT情報を受け取るときには、AM1205bに対して、モニターアプリケーション自身へそのXAIT情報を受け取って良いか否かの決定を委ねるよう依頼する。
モニターアプリケーションは、AM1205bからXAIT情報を受け取って良いか否かの決定を委ねられると、実施の形態1〜2においてAM1205bが行ったのと同様の動作を行う。即ち、モニターアプリケーションは、そのXAIT情報に記述されたアプリケーション及び既にストアされているアプリケーションのうち、ストア優先度の高いアプリケーションを優先的にストアすることを決定し、ストア優先度の低いアプリケーションから順に、ストア領域2201から削除することを決定する。ここで、モニターアプリケーションは、ストア優先度を比較する手段、ストア領域の残容量を取得する手段、既にストアされているアプリケーション及びXAIT情報に記述されているアプリケーションの容量を取得する手段をもつ。
そして、既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合には、モニターアプリケーションは、ユーザにアプリケーション削除通知を表示する。ここで、モニターアプリケーションによるユーザへのアプリケーション削除通知は、実施の形態3における通知部2605によるユーザへのアプリケーション削除通知と同様の方法により実現される。モニターアプリケーションが端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、図40に示すような削除通知をディスプレイ509に表示することにより実現される。ダイアログボックス3001は、メッセージ4001と、Yesボタン4002と、Noボタン4003の表示要素をもつ。なお、メッセージ4001の文字列は、ユーザにアプリケーションの削除を通知する為に必要な情報を提供できる方法であれば、図40中の文字列に限定されず他の文字列であってもよく、また、メッセージ4001の形式は文字列に限定されず他の形式であってもよい。また、Yesボタン4002及びNoボタン4003の文字列は、図40中の文字列に限定されず他の文字列であってもよい。また更に、ダイアログボックス3001の表示要素は、図40の表示要素に限定されず、ユーザにアプリケーションの削除を通知し、ユーザが削除通知を許可または拒否を選択したことをCPU514が認識できるものであれば、他の表示要素であってもよい。
モニターアプリケーションは、CPU514から、ユーザが上記Yesボタン4002または上記Noボタン4003の選択によりアプリケーションの削除を許可または拒否した時におけるユーザからの選択情報を受付ける。そして、モニターアプリケーションは、CPUから選択情報を受付けた時に、その選択情報が、アプリケーションの削除の許可を示すものか、アプリケーションの削除の拒否を示すものかを判定する。そして、選択情報が、アプリケーションの削除の許可を示す場合には、AM1205bに対し、XAIT情報の受け取りを許可する。一方、選択情報がアプリケーションの削除の拒否を示す場合には、モニターアプリケーションが、変更APIを用いて、ユーザが削除を拒否したアプリケーションのストア優先度を最大値に変更すること等により、ユーザが削除を拒否したアプリケーションがストア領域2201から削除されないことを実現する。なお、AM1205bに対し、XAIT情報の受け取りを拒否することにより、ユーザが削除を拒否したアプリケーションがストア領域2201から削除されないことを実現してもよい。
図43は、本実施の形態における、ヘッドエンド1205bからXAIT情報を受け取ったAM1205bによるXAIT情報の扱いの動作を示すフローチャートである。
図43に示すように、AM1205bは、ヘッドエンド101からXAIT情報を受け取ると(S4101)、モニターアプリケーションから、XAIT情報を受け取って良いか否かの決定APIを用いた決定権を与えるよう依頼を受けているか否かを判断する(S4102)。モニターアプリケーションから、XAIT情報を受け取って良いか否かの決定権を与えるよう依頼を受けていた場合、モニターアプリケーションへ、そのXAIT情報を受け取って良いか否かの決定を委ねる(S4103)。
図44は、本実施の形態における、モニターアプリケーションの動作の一例を示すフローチャートである。特に、この動作の一例においては、モニターアプリケーションはAM1205bに対し、XAIT情報を受け取って良いか否かの決定APIを用いることによる決定権を与えるよう依頼しているものとする。
この図44に示すように、AM1205bからXAIT情報を受け取って良いか否かの決定を委ねられたモニターアプリケーションは(S4201)、そのXAIT情報に記述されたアプリケーション及び既にストアされているアプリケーションのうち、ストア領域2201にストアするアプリケーションのセットと、ストア領域2201から削除するアプリケーションのセットとを決定する(S4202)。ここで、モニターアプリケーションによるストア領域2201にストアするアプリケーションのセットとストア領域2201から削除するアプリケーションのセットとの決定は、例えば、ストア優先度の高いアプリケーションを優先的にストアすることを決定し、ストア優先度の低いアプリケーションから順に、ストア領域2201から削除することを決定する等により実現される。なお、モニターアプリケーションは、その他の方法によりこれらアプリケーションのセットを決定してもよい。続いて、モニターアプリケーションは、モニターアプリケーションが既にストアされていたアプリケーションをストア領域2201から削除すると決定したか否かを判定する(S4203)。モニターアプリケーションが既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合(S4203のYES)、モニターアプリケーションは、ユーザにアプリケーション削除通知を表示する(S4204)。そして、モニターアプリケーションは、ユーザがアプリケーションの削除を許可したか否かを判定し(S4205)、ユーザがアプリケーションの削除を許可した場合(S4205のYES)、モニターアプリケーションはAM1205bに、ヘッドエンド101から送信されたXAIT情報の受け取りを許可する(S4207)。一方、ユーザがアプリケーションのストア領域からの削除を拒否した場合には(S4205のNO)、モニターアプリケーションは、例えば、変更APIを用いて、ユーザが削除を拒否したアプリケーションのストア優先度を最大値に再設定する。これにより、モニターアプリケーションは、ユーザが削除を拒否したアプリケーションがストア領域2201から削除されないようXAIT情報中のストア優先度を変更し(S4206)、AM1205bに、その変更したXAIT情報の受け取りを許可する(S4207)。
続いて、AM1205bは、図43に示すように、モニターアプリケーションがそのXAIT情報の受け取りを許可したか否かを判定する(S4104)。AM1205bは、モニターアプリケーションがそのXAIT情報の受け取りを拒否した場合には(S4104のNO)、AM1205bは、ストア処理を終了する。一方、AM1205bは、モニターアプリケーションがそのXAIT情報の受け取りを許可した場合には(S4104のYES)、図29に示すように、ヘッドエンド101から送信された上記XAIT情報を受け取り、または、モニターアプリケーションが変更APIを用いていた場合には、その変更されたXAIT情報を受け取る(S2701)。そして、AM1205bは、そのXAIT情報に記述されたアプリケーションからストア優先度の高いものから順にまだ選ばれていないアプリケーションを1つ選択する。但しここで、受け取ったXAIT情報に従ったストア処理において、ストア削除部2604が既にストア領域2201から削除したアプリケーションを除くアプリケーションを1つ選択する(S2702)。そして、AM1205bは、選択したアプリケーションがストアされているか否かを判断する(S2703)。
選択したアプリケーションがストアされている場合(S2703のYES)、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合、AM1205bは次のアプリケーションを選択してストア処理を進め、既にXAIT情報記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、選択したアプリケーションがストアされていない場合(S2703のNO)、ストアアプリ決定部2602は、ストア領域残容量取得部2606からストア領域の残容量を取得し、アプリケーション容量取得部2607からアプリケーション容量を取得する(S2704)。そして、ストア領域残容量取得部2606から取得したストア領域の残容量とアプリケーション容量取得部2607から取得したアプリケーション容量に基づき、ストアアプリ決定部2602は、ストア領域の残容量が選択したアプリケーションの容量より大きいか否かを判断する(S2705)。
ストア領域の残容量が選択したアプリケーションの容量より大きいと判断した場合(S2705のYES)、ストア部2603は選択したアプリケーションをストアする(S2706)。そして、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、ストアアプリ決定部2602がストア領域の残容量が選択したアプリケーションの容量より小さいと判断した場合(S2705のNO)、AM1205bは、図30に示すように、既にストアされているアプリケーションがあるか否かを判断する(S2801)。
既にストアされているアプリケーションがある場合には(S2801のYES)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストアする際に、既にストアされているアプリケーションがある為にストア領域2201の容量が不足する場合には、ストアアプリ決定部2602は、ストア優先度比較部2601から個々のアプリケーションに指定されたストア優先度2006の比較結果を取得する(S2802)。そしてストアアプリ決定部2602は、その比較結果に基づいて、ストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットを決定する(S2803)。ここで、ストアアプリ決定部2602は、既にストアされているアプリケーションの中で、選択したアプリケーションのストア優先度よりもストア優先度の低いアプリケーションがある場合には、ストア領域の残容量が選択したアプリケーションの容量以上になるように、それらの既にストアされているアプリケーションをストア領域から削除することを決定し、選択したアプリケーションをストアすることを決定する。但し、それらの既にストアされているアプリケーションをストア領域から削除してもストア領域の残容量が選択したアプリケーションの容量以上にならない場合には、それらの既にストアされているアプリケーションはストア領域から削除せず、選択したアプリケーションをストアしないことを決定する。続いて、ストアアプリ決定部2602は、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定したか削除しないことを決定したかを判定する(S2804)。
ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合(S2804のYES)、ストアアプリ決定部2602は、通知部2605に削除通知を指示し、ストア削除部2604に、アプリケーションのストア領域2201からの削除を指示し、ストア部2603に、アプリケーションのストアを指示する。そして、通知部2605は、ストアアプリ決定部2602の決定結果に従い、ユーザにアプリケーションが削除されることを通知する(S2805)。そして、ストア削除部2604は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストア領域2201から削除し(S2806)、ストア部2603は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストアする(S2706)。そして、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合には、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除しないことを決定した場合(S2804のNO)、選択されたアプリケーションをストアするストア領域を確保することができない。そこで、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合には、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、既にストアされているアプリケーションがない場合には(S2801のNO)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足するが、既にストアされているアプリケーションがない場合には、選択されたアプリケーションをストアするストア領域を確保することができない。そこで、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合には、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
なお、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足するが、既にストアされているアプリケーションがない場合には、選択されたアプリケーションをストアするストア領域を確保することができない。そのため、AM1205bは選択したアプリケーションをストアせずにストア処理を終了してもよい。
ここで、既にストアされているアプリケーションがXAIT情報に記述されていない場合、ストア優先度比較部2601は、そのアプリケーションのストア優先度は最低値であるとみなすとした。しかし、ストアアプリ決定部2602は、そのアプリケーションのストア領域2201からの削除を無条件に決定する等の方法を取ってもよい。
このように、実施の形態4では、モニターアプリケーションがユーザへ削除通知及び、ストア優先度の変更を行うことにより、実施の形態3と同様の効果を得ることができる。即ち、ユーザは、アプリケーションをストア領域2201から削除するとの確認を受けた際に、そのアプリケーションがストア領域2201から削除されることを拒否でき、ユーザが削除を拒否したアプリケーションはストア領域2201から削除されない。
(実施の形態5)
実施の形態1〜3において、AM1205bはストアアプリ決定部2602により、ストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットを決定する際、ストア優先度比較部2601の比較結果に基づき、ストア優先度の高いアプリケーションを優先的にストアすることと、ストア優先度の低いアプリケーションから順に、ストア領域2201から削除することを決定している。しかし、複数のアプリケーションのストア優先度が同じ場合には、いずれのアプリケーションをストア領域2201から削除し、いずれのアプリケーションをストアするのかを決定できない可能性がある。
そのため、本実施の形態においては、さらに、図45に示すように、AM1205bは、ストアアプリ決定部2602が、ストアまたは削除するアプリケーションのセットを決定できない場合に、ユーザに問合せるための問合せ部4301を備える。
図45は、本実施の形態におけるAM1205bの構成を示す構成図である。
問合せ部4301は、ストアアプリ決定部2602より問合せ指示を受けると、いずれのアプリケーションを、ストア領域2201から削除またはストアするのかをユーザに問合せる。ここで、問合せ部4301によるユーザへの問合せは、問合せ部4301が端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、問合せダイアログをディスプレイ509に表示することにより実現される。
そして、問合せ部4301は、CPU514から、ユーザによる削除またはストアするアプリケーションの選択時におけるユーザからの選択情報を受付け、CPU514から選択情報を受付けた時に、その選択情報に基づいて、ストアアプリ決定部2602にアプリケーション選択結果を通知する。
またさらに、本実施の形態において、ストアアプリ決定部2602は、実施の形態1〜3と同様の方法により、ストア領域2201にストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットの決定を試みる。ここでストアまたはストア領域2201から削除するアプリケーションのセット、を決定した場合には実施の形態1〜3と同様のストア処理を継続する。但し、本実施の形態において、ストアアプリ決定部2602は、ストア優先度の等しいアプリケーションが複数存在するために、ストア領域2201から削除またはストアするアプリケーションを決定できない場には、問合せ部4301に問合せ指示を行う。そして、問合せ部4301からアプリケーション選択結果の通知を受けると、そのアプリケーション選択結果に従い、ストア領域2201から削除またはストアするアプリケーションを決定する。そして、この決定後に、実施の形態1〜3いずれかと同様の方法で、通知部2605への通知指示、ストア部2603へのアプリケーションの削除指示を行い、ストア部2604へアプリケーションのストア指示を行う。
図46及び図47は、本実施の形態における、XAIT情報を受け取ったAM1205bによる、アプリケーションのストア処理の特徴的な動作の一例を示すフローチャートである。これらの図46及び図47は、図29に示すステップS2705からの処理を示すものであって、特に、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足する場合における、AM1205bによるストア処理動作の一例を示す。
図46において、図30と同じステップには、図30と同じ番号を付した。
図29に示すように、AM1205bがXAIT情報を受け取ると(S2701)、XAIT情報に記述されたアプリケーションからストア優先度の高いものから順にまだ選ばれていないアプリケーションを1つ選択する。但しここで、受け取ったXAIT情報に従ったストア処理において、ストア削除部2604がストア領域2201から既に削除したアプリケーションを除くアプリケーションを1つ選択する(S2702)。そして、AM1205bは、選択したアプリケーションがストアされているか否かを判断する(S2703)。
選択したアプリケーションがストアされている場合(S2703のYES)、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断する(S2707)。ここで、未だXAIT情報に記述の全てのアプリケーションを選択していない場合(S2707のNO)、AM1205bは次のアプリケーションを選択しストア処理を進める。既にXAIT情報に記述の全てのアプリケーションを選択している場合には(S2707のYES)、AM1205bは、ストア処理を終了する。
一方、選択したアプリケーションがストアされていない場合(S2703のNO)、ストアアプリ決定部2602は、ストア領域残容量取得部2606からストア領域の残容量を取得し、アプリケーション容量取得部2607からアプリケーション容量を取得する(S2704)。そして、ストア領域残容量取得部2606から取得したストア領域の残容量とアプリケーション容量取得部2607から取得したアプリケーション容量に基づき、ストアアプリ決定部2602は、ストア領域の残容量が選択したアプリケーションの容量より大きいか否かを判断する(S2705)。
ストア領域の残容量が選択したアプリケーションの容量より大きいと判断した場合(S2705のYES)、ストア部2603は選択したアプリケーションをストアする(S2706)。そして、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、ストアアプリ決定部2602がストア領域の残容量が選択したアプリケーションの容量より小さいと判断した場合(S2705のYES)、図46に示すように、AM1205bは、既にストアされているアプリケーションがあるか否かを判断する(S2801)。
既にストアされているアプリケーションがある場合には(S2801のYES)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストアする際に、既にストアされているアプリケーションがある為にストア領域2201の容量が不足する場合には、ストアアプリ決定部2602は、ストア優先度比較部2601から個々のアプリケーションに指定されたストア優先度2006の比較結果を取得する(S2802)。その比較結果に基づいて、ストアアプリ決定部2602は、ストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットを決定する(S2803)。ここで、ストアアプリ決定部2602は、既にストアされているアプリケーションの中で、選択したアプリケーションのストア優先度よりもストア優先度の低いアプリケーションがある場合には、ストア領域の残容量が選択したアプリケーションの容量以上になるように、それらの既にストアされているアプリケーションを、ストア領域から削除することを決定し、選択したアプリケーションをストアすることを決定する。但し、それらの既にストアされているアプリケーションをストア領域から削除してもストア領域の残容量が選択したアプリケーションの容量以上にならない場合には、ストアアプリ決定部2602は、それらの既にストアされているアプリケーションはストア領域から削除せず、選択したアプリケーションをストアしないことを決定する。
続いて、ストアアプリ決定部2602は、ストア領域2201から削除またはストアするアプリケーションを決定できたか否かを判断する(S4401)。ここで、ストア優先度の等しいアプリケーションが複数存在するために、ストア領域2201から削除またはストアするアプリケーションを決定できない場合(S4401)、図47に示すように、問合せ部4301は、いずれのアプリケーションを、ストア領域2201から削除またはストアするのかをユーザに問合せる(S4501)。ここで、問合せ部4301によるユーザへの問合せは、問合せ部が端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、図48〜図50に示すような問合せダイアログをディスプレイ509に表示することにより実現される。
図48〜図50は、本実施の形態におけるディスプレイ509が表示する問合せダイアログの例を示す図である。
ダイアログボックス3001は、メッセージ4603と、アプリケーション選択ボタン4601、4602との表示要素をもつ。図48は、既にストアされている2つのアプリケーションのストア優先度が同じであるために、ストアアプリ決定部2602が、ストア領域2201から削除するアプリケーションのセットを決定できない場合において、いずれのアプリケーションをストア領域2201から削除すべきかをユーザに問合せるディスプレイ表示の一例である。即ち、ストアアプリ決定部2602は、このとき、ストア優先度の等しい2つのアプリケーションを共にストアしておくことができないと判別している。図49は、未だストアされていない2つのアプリケーションのストア優先度が同じであるために、ストアアプリ決定部2602が、ストア領域2201にストアするアプリケーションを決定できない場合において、いずれのアプリケーションをストア領域2201にストアすべきかをユーザに問合せるディスプレイ表示の一例である。即ち、ストアアプリ決定部2602は、このとき、ストア優先度の等しい2つのアプリケーションを共にストアすることができないと判別している。図50は、既にストアされているアプリケーションと、未だストアされていないアプリケーションのストア優先度が同じであるために、ストアアプリ決定部2602が、ストア領域2201から削除またはストアするアプリケーションを決定できない場合において、いずれのアプリケーションをストア領域2201にストアすべきかをユーザに問合せるディスプレイ表示の一例である。ここで図48〜図50において、メッセージ4603とアプリケーション選択ボタン4601、4602に描かれた「APP3」、「APP4」は、それぞれ2つのアプリケーションのアプリケーション名である。なお、アプリケーション名を用いなくても、ユーザがアプリケーションを選択する為に必要な情報を提供できる方法であれば実施可能である。
なお、図48〜図50において、メッセージ4603の文字列は、ユーザがアプリケーションを選択する為に必要な情報を提供できる方法であれば、図48〜図50中の文字列に限定されず他の文字列であってもよく、また、メッセージ4603の形式は文字列に限定されず他の形式であってもよい。また、アプリケーション選択ボタン4601及4602の文字列は、図48〜図50中の文字列に限定されず他の文字列であってもよい。また更に、ダイアログボックス3001の表示要素は、図48〜図50中の表示要素に限定されず、リストボックスを使用する等、ユーザがアプリケーションを選択する為に必要な情報を提供でき、ユーザがアプリケーションを選択したことをCPU514が認識できる方法であれば、他の表示要素であってもよい。
続いて、ユーザがアプリケーション選択ボタン4601または4602を選択すると、CPU514はAM1205bの問合せ部4301にユーザからの選択情報を送る。問合せ部4301は選択情報を受ける(S4502)と、その選択情報に基づいて、ストアアプリ決定部2602にアプリケーション選択結果を通知する。ここで、問合せ部4301によるアプリケーション選択結果の通知は、例えば、ダイアログ表示が図48の例の場合、CPU514から受付けた選択情報がボタン4601の選択を示す場合には、問合せ部4301は、アプリケーション名「APP3」をもつアプリケーションの削除をユーザが選択したという結果をストアアプリ決定部2602にアプリケーション選択結果として通知することにより実現される。
そして、ストアアプリ決定部2602は、問合せ部4301からアプリケーション選択結果の通知を受けると、問合せ部4301から取得したアプリケーション選択結果に従い、ストア領域2201から削除またはストアするアプリケーションを決定する(S4503)。
次に、ストアアプリ決定部2602は、図46に示すように、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定したか削除しないことを決定したかを判定する(S2804)。
ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合、ストアアプリ決定部2602は、通知部2605に削除通知を指示する。そして、通知部2605は、ストアアプリ決定部2602の決定結果に従い、ユーザにアプリケーションが削除されることを通知する(S2805)。また、ストア削除部2604は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストア領域2201から削除し(S2806)、ストア部2603は、図29に示すように、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストアする(S2706)。
なお、上述の図46に示すステップS2804以降の処理を、図39に示すステップS2804からの処理としても良い。即ち、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定した場合、ストアアプリ決定部2602は、通知部2605に削除通知を指示する。そして、通知部2605は、ストアアプリ決定部2602の決定結果に従い、ユーザにアプリケーションが削除されることを通知する(S3601)。ここで、通知部2605によるユーザへのアプリケーション削除通知は、通知部2605が端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、図38に示すような削除通知をディスプレイ509に表示することにより実現される。ダイアログボックス3001は、メッセージ3002及びOKボタン3701の表示要素をもつ。ユーザがOKボタン3701をリモコン操作等により選択すると、CPU514はAM1205bの応答受付部3501にユーザの通知確認情報を送る。応答受付部3501はユーザの通知確認情報を受けると(S3602)、ストアアプリ決定部2602に通知確認情報を通知する。ストアアプリ決定部2602は、応答受付部3501からアプリケーション削除通知確認情報の通知を受けると、ストア削除部2604に、アプリケーションのストア領域2201からの削除を指示し、ストア部2603に、アプリケーションのストアを指示する。そして、ストア削除部2604は、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストア領域2201から削除し(S2806)、ストア部2603は、図29に示すように、ストアアプリ決定部2602の決定結果に従い、アプリケーションをストアする(S2706)。そして、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合には、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、図46に示すように、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除しないことを決定した場合(S2804のNO)、選択されたアプリケーションをストアするストア領域を確保することができない。そこで、AM1205bは、XAIT情報に記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
一方、図46に示すように、既にストアされているアプリケーションがない場合には(S2801のNO)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足するが、既にストアされているアプリケーションがない場合には、選択されたアプリケーションをストアするストア領域を確保することができない。そこで、AM1205bは、XAIT情報記述のアプリケーションを全て選択したか否かを判断し(S2707)、未だXAIT情報に記述の全てのアプリケーションを選択していない場合には、AM1205bは次のアプリケーションを選択しストア処理を進め、既にXAIT情報に記述の全てのアプリケーションを選択している場合にはストア処理を終了する。
なお、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足するが、既にストアされているアプリケーションがない場合には、選択されたアプリケーションをストアするストア領域を確保することができないので、AM1205bは選択したアプリケーションをストアせずにストア処理を終了してもよい。
ここで、既にストアされているアプリケーションがXAIT情報に記述されていない場合、ストア優先度比較部2601は、そのアプリケーションのストア優先度は最低値であるとみなすとしたが、このような場合、ストアアプリ決定部2602は、そのアプリケーションのストア領域2201からの削除を無条件に決定する等の方法を取ってもよい。
なお、本実施の形態においては、2つのアプリケーションのストア優先度が同じであるために、ストアアプリ決定部2602が、ストア領域2201から削除またはストアするアプリケーションを決定できない場合を扱ったが、3つ以上のアプリケーションのストア優先度が同じであるために、ストアアプリ決定部2602が、ストア領域2201から削除またはストアするアプリケーションを決定できない場合においても本発明は実施可能である。例えば、既にストアされている3つのアプリケーションのストア優先度が同じであるために、ストアアプリ決定部2602が、ストア領域2201から削除するアプリケーションのセット、を決定できない場合には、問合せ部4301によるユーザへの問合せは、ダイアログ表示プログラムが、3つのアプリケーションからいずれか1つまたは2つのアプリケーションをストア領域2201から削除すべきかをユーザに選択させるダイアログを表示すること等により実現される。
また更に、ストアアプリ決定部2602が、一回の問合せ部4301への問合せ指示に起因する問合せ部4301からのアプリケーション選択結果の通知により、ストア領域2201から削除またはストアするアプリケーションを決定できない場合がある。例えば、3つ以上のアプリケーションのストア優先度が同じであり、かつ、1つのアプリケーションをストア領域2201から削除するだけでは、選択された新規のアプリケーションをストアするのに可能なストア領域を確保できない場合がある。このような場合、ストアアプリ決定部2602は1回目の問合せ部4301からのアプリケーション選択結果の通知の後、続けて、問合せ部4301に問合せ指示を行ってもよい。このとき例えば、1回目の問合せ部4301によるユーザへの問合せは、ダイアログ表示プログラムが、3つのアプリケーションからいずれのアプリケーションをストア領域2201から削除すべきかをユーザに選択させるダイアログを表示すること等により実現され、2回目の問合せ部4301によるユーザへの問合せは、2つのアプリケーションからさらにいずれのアプリケーションをストア領域2201から削除すべきかをユーザに選択させるダイアログを表示すること等により実現される。
このように、実施の形態5により、XAIT情報に記述される複数のアプリケーションのストア優先度が同じ場合においても、ユーザへの問合せにより、いずれのアプリケーションをストア領域2201から削除し、いずれのアプリケーションをストアするのかを決定することができる。さらに、ユーザに選択権を与えることにより、よりユーザが望むアプリケーションのストアを実現することができる。
(実施の形態6)
本実施の形態のAM1205bは、削除対象のアプリケーションが起動中であるときに、そのアプリケーションの取り扱いについてのメッセージを通知する。即ち、OCAP仕様(OCAP 1.0 Profile OC−SP−OCAP1.0−IF−I09−031121)では、ストア優先度の高いアプリケーションを優先的にストアするとともに、起動中のアプリケーションの動作を妨げてはならないことが規定されているため、本実施の形態は、そのような規定を確実に守りつつ、削除対象のアプリケーションの取り扱いについてのメッセージを通知するものである。
図51及び図52は、本実施の形態における、XAIT情報を受け取ったAM1205bによる、アプリケーションのストア処理の特徴的な動作の一例を示すフローチャートである。これらの図51及び図52は、図29に示すステップS2705からの処理を示すものである。また、これらの図51及び図52は、特に、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足する場合であって、かつストア領域にストアされた削除されるべきアプリケーションが起動中である場合における、AM1205bによる、アプリケーションのストア処理動作の一例を示す。
図51において、図30と同じステップには、図30と同じ番号を付した。
ストアアプリ決定部2602が、ストア領域の残容量が選択したアプリケーションの容量より小さいと判断した場合(図29のS2705)、図51に示すように、AM1205bは、既にストアされているアプリケーションがあるか否かを判断する(S2801)。
既にストアされているアプリケーションがある場合には(S2801のYES)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストアする際に、既にストアされているアプリケーションがある為にストア領域2201の容量が不足する場合には、ストアアプリ決定部2602は、ストア優先度比較部2601から個々のアプリケーションに指定されたストア優先度2006の比較結果を取得する(S2802)。その比較結果に基づいて、ストアアプリ決定部2602は、ストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットを決定する(S2803)。ここで、ストアアプリ決定部2602は、既にストアされているアプリケーションの中で、選択したアプリケーションのストア優先度よりもストア優先度の低いアプリケーションがある場合には、ストア領域の残容量が選択したアプリケーションの容量以上になるように、それらの既にストアされているアプリケーションを、ストア領域から削除することを決定し、選択したアプリケーションをストアすることを決定する。但し、それらの既にストアされているアプリケーションをストア領域から削除してもストア領域の残容量が選択したアプリケーションの容量よりも小さい場合には、ストアアプリ決定部2602は、それらの既にストアされているアプリケーションはストア領域から削除せず、選択したアプリケーションをストアしないことを決定する。
続いて、ストアアプリ決定部2602は、ストア領域2201から削除またはストアするアプリケーションを決定できたか否かを判断する(S4401)。ここで、ストア優先度の等しいアプリケーションが複数存在するために、ストア領域2201から削除またはストアするアプリケーションを決定できない場合(S4401のNO)、AM1205bは前述した図47の処理に従う。
次に、ストアアプリ決定部2602は、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定したか削除しないことを決定したかを判定する(S2804)。
ステップS2804において、削除しないと決定した場合には(S2804のNO)、AM1205bは図29のステップS2707からの処理を実行する。
ステップS2804において、削除すると決定した場合には(S2804のYES)、ストアアプリ決定部2602は、削除すべきアプリケーションが起動中であるかどうかを調べる(S5204)。ここで、削除すべきアプリケーションが起動中でない場合(S5204のNO)、AM1205bは図46で説明したステップS2805からの処理と同様の処理を実行する。一方、削除すべきアプリケーションが起動中である場合(S5204のYES)、通知部2605は、起動中のアプリケーションを終了し、削除すれば優先度の高いアプリケーションがストアできるので、削除すべきアプリケーションを終了して削除するかどうかをユーザに問合せるよう問合せ部4301へ依頼する(S5205)。
問合せ部4301は、図52に示すように、起動中のアプリケーションを、ストア領域2201から削除かどうかをユーザに問合せる(S5301)。ここで、問合せ部4301によるユーザへの問合せは、問合せ部が端末装置500のCPU514に画面に表示したい削除通知情報を送り、OS1201のライブラリ1201bに含まれるダイアログ表示プログラムが、図53に示すような問合せダイアログをディスプレイ509に表示することにより実現される。
図53は、本実施の形態におけるディスプレイ509が表示する問合せダイアログの一例を示す図である。ダイアログボックス3001は、メッセージ5403と、アプリケーション選択ボタン5401、5402との表示要素をもつ。具体的に、図53は、起動中のアプリケーションを終了し、削除すれば優先度の高いアプリケーションがストアできるので、削除すべきアプリケーションを終了して削除するかどうかをユーザに問合せるディスプレイ表示の一例を示す。
なお、図53において、メッセージ5403の文字列は、ユーザが起動中のアプリケーションを削除する為に必要な情報を提供できる方法であれば、文字列の表現は限定されず他の文字列であってもよく、また、メッセージ5403の形式は文字列に限定されず他の形式であってもよい。また、アプリケーション選択ボタン5401及び5402の文字列は、図53中の文字列に限定されず他の同じ意味を持つ文字列であってもよい。また更に、ダイアログボックス3001の表示要素は、図53中の表示要素に限定されず、リストボックスを使用する等、ユーザがアプリケーションを選択する為に必要な情報を提供でき、ユーザがアプリケーションを選択したことをCPU514が認識できる方法であれば、他の表示要素であってもよい。
続いて、ユーザがアプリケーション選択ボタン5401または5402を選択すると、CPU514はAM1205bの問合せ部4301にユーザからの入力情報を送る。問合せ部4301は入力情報を受ける(S5302)と、その入力情報に基づいて、ストアアプリ決定部2602に入力結果を通知する。ここで、問合せ部4301による入力結果の通知は、例えば、ダイアログ表示が図53の例の場合、CPU514から受付けた入力情報がボタン5401の選択を示す場合には、問合せ部は、アプリケーション名「APP3」をもつアプリケーションをストアするために、既にストアされた起動中の「APP2」を終了させた後に削除することをユーザが選択したという結果を、ストアアプリ決定部2602に通知することにより実現される。
そして、ストアアプリ決定部2602は、問合せ部4301から入力結果の通知を受けると、問合せ部4301から取得した入力結果に従い、ストア領域2201から削除するかどうかを決定する(S5303)。その後、ストアアプリ決定部2602は、図51のステップS2806からの処理を実行する。
このように本実施の形態では、削除すべきアプリケーションが起動中であっても、ユーザの意図に沿って、そのアプリケーションを自動的に終了させて削除した後に、優先度の高いアプリケーションがストアされることになる。
(実施の形態7)
本実施の形態は、実施の形態6と同様、OCAP仕様における規定、即ちストア優先度の高いアプリケーションを優先的にストアするとともに、起動中のアプリケーションの動作を妨げてはならないという規定を確実に守りつつ、削除対象のアプリケーションの取り扱いについてのメッセージを通知するものである。ここで、本実施の形態のAM1205bは、削除対象のアプリケーションが起動中であるときに、そのアプリケーションの取り扱いについてのメッセージを通知するが、そのメッセージの内容は実施の形態6の内容とは異なる。また、本実施の形態のAM1205bの動作も、実施の形態6の動作と異なる。以下、本実施の形態のAM1205bの動作について詳細に説明する。
図54は、本実施の形態における、XAIT情報を受け取ったAM1205bによる、アプリケーションのストア処理の特徴的な動作の一例を示すフローチャートである。この図54は、図29に示すステップS2705からの処理を示すものである。また、この図54は、特に、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストア領域2201にストアする際に、ストア領域2201の容量が不足する場合であって、かつストア領域にストアされた削除されるべきアプリケーションが起動中である場合における、AM1205bによる、アプリケーションのストア処理動作の一例を示す。
図54において、図30及び図51と同じステップには、図30、図51と同じ番号を付した。
ストアアプリ決定部2602が、ストア領域の残容量が選択したアプリケーションの容量より小さいと判断した場合(図29のS2705)、図54に示すように、AM1205bは、既にストアされているアプリケーションがあるか否かを判断する(S2801)。
既にストアされているアプリケーションがある場合には(S2801のYES)、つまり、XAIT情報に記述されるアプリケーションをMEPG2トランスポートストリームからストアする際に、既にストアされているアプリケーションがある為にストア領域2201の容量が不足する場合には、ストアアプリ決定部2602は、ストア優先度比較部2601から個々のアプリケーションに指定されたストア優先度2006の比較結果を取得する(S2802)。その比較結果に基づいて、ストアアプリ決定部2602は、ストアするアプリケーションと、ストア領域2201から削除するアプリケーションとのセットを決定する(S2803)。ここで、ストアアプリ決定部2602は、既にストアされているアプリケーションの中で、選択したアプリケーションのストア優先度よりもストア優先度の低いアプリケーションがある場合には、ストア領域の残容量が選択したアプリケーションの容量以上になるように、それらの既にストアされているアプリケーションを、ストア領域から削除することを決定し、選択したアプリケーションをストアすることを決定する。但し、それらの既にストアされているアプリケーションをストア領域から削除してもストア領域の残容量が選択したアプリケーションの容量よりも小さい場合には、ストアアプリ決定部2602は、それらの既にストアされているアプリケーションはストア領域から削除せず、選択したアプリケーションをストアしないことを決定する。
続いて、ストアアプリ決定部2602は、ストア領域2201から削除またはストアするアプリケーションを決定できたか否かを判断する(S4401)。ここで、ストア優先度の等しいアプリケーションが複数存在するために、ストア領域2201から削除またはストアするアプリケーションを決定できない場合(S4401のNO)、AM1205bは前述した図47の処理に従う。
次に、ストアアプリ決定部2602は、ストアアプリ決定部2602が、既にストアされていたアプリケーションをストア領域2201から削除すると決定したか削除しないことを決定したかを判定する(S2804)。
ステップS2804において、削除しないと決定した場合には(S2804のNO)、AM1205bは図29のステップS2707からの処理を実行する。
ステップS2804において、削除すると決定した場合には(S2804のYES)、ストアアプリ決定部2602は、削除すべきアプリケーションが起動中であるかどうかを調べる(S5204)。ここで、削除すべきアプリケーションが起動中でない場合(S5204のNO)、AM1205bは図46で説明したステップS2805からの処理と同様の処理を実行する。一方、削除すべきアプリケーションが起動中である場合(S5204のYES)、通知部2605は、起動中のアプリケーションが終了した後、新しいアプリケーションをストアする旨のメッセージをユーザに通知する(S5206)。
図55は、本実施の形態におけるディスプレイ509が表示するメッセージの一例を示す図である。このメッセージ5603には、起動中のアプリケーションが終了した後、新しいアプリケーションをストアする旨が記載されている。
なお、図55において、メッセージ5603の文字列は、起動中のアプリケーションが終了した後、新しいアプリケーションをストアする旨を提供できる方法であれば、文字列の表現は限定されず他の文字列であってもよい。
次に、ステップS5206の後、AM1205bは削除の対象である起動中のアプリケーションが終了したかどうかを一定時間毎に判断する(S5207)。対象となるアプリケーションが終了していなければ一定時間後に再度ステップS5207の処理を実行する。
ステップS5207において起動中のアプリケーションが終了したと判断した場合(ステップS5207)、AM1205bは、ステップS2806からの処理を実行する。
このように本実施の形態では、削除すべきアプリケーションが起動中であってもユーザに状況を通知した上で、ユーザがアプリケーションを終了した際に、削除すべきアプリケーションを削除し、優先度の高いアプリケーションがストアされることになる。
なお、上述の説明では、ステップS5207において起動中のアプリケーションが終了したと判断された場合に、AM1205bがステップS2806からの処理を実行したが、図54のステップS2801からの処理を実行しても良い。
以上、本発明に係るプログラム実行装置について、実施の形態1〜7を用いて説明したが、本発明は、これらに限定されるものではない。
例えば、実施の形態1〜7では、Java(登録商標)プログラムはJavaで記述された部分と、CPUが直接実行できるバイナリ形式の部分との混合でもよいし、CPUが直接実行できるバイナリ形式のみで構成されていても良い。
また、実施の形態1〜7では、ROM512が保存する内容を2次記憶部510が保存することで、ROM512を削除しても良い。また、2次記憶部510は、複数のサブ2次記憶部で構成し、個々のサブ2次記憶部が異なる情報を保存しても良い。例えば、1つのサブ2次記憶部はチューニング情報のみを保存し、別のサブ2次記憶部は、OS1201のライブラリ1201bを保存し、更に別のサブ2次記憶部は、ダウンロードしたJavaプログラムを保存するなど、詳細に分割することが可能である。
また、実施の形態1〜7においては、登録されたJavaプログラムを2次記憶部510に保存していたが、1次記憶部511に保存しても良い。1次記憶部511に保存する場合、電源OFF時に、保存された情報は全て消える。
また、本発明は、パーソナルコンピュータや携帯電話などの情報機器であれば、適応可能である。
また、POD504は着脱可能な形態としているが、着脱不可能な状態で内蔵されていても良い。なお、内蔵した場合、POD504のCPU706を取り外し、CPU514がCPU706の動作も行っても良い。
また、POD Lib1205eに登録されるJavaプログラムは、ダウンロードされたJavaプログラムだけでなく、予め内蔵されているJavaプログラムでも良い。また、SD(Secure Digital)(登録商標)メモリーカードなどの着脱可能な記憶媒体が着脱されるスロット部を取り付け、その記憶媒体からJavaプログラムを取り込んでも良い。
また、実施の形態1〜7において、Javaプログラムのダウンロードは、DSMCC方式としたが、DSMCC方式に限定されず、他のダウンロード方式であっても良い。例えば、ネットワークに接続するネットワーク部を取り付け、インターネットからJavaプログラムを取り出すといった、IP経由によるJavaプログラムのダウンロード等が可能である。IP経由によるJavaプログラムのダウンロードの場合、AITやXAIT情報におけるDSMCC識別子は不要であり、代わりにJavaプログラムを取得するためのIPアドレスを指定する必要がある。
図56は、IP経由によるJavaプログラムのダウンロードに必要なXAIT情報の一例を示す図である。プロトコル4901はJavaプログラムを取得するために用いられる。IPアドレス4902はJavaプログラムを取得するために用いられる。行4911で定義されるJavaプログラムは、識別子「701」、制御情報「autostart」、プロトコル「http」、IPアドレス「123.456.0.1」、プログラム名「a/APP1Xlet」、優先度「200」、ストア優先度「100」、アプリケーション名「APP1」の組である。AM1205bは図51に示されるXAIT情報を取得すると、XAIT情報から取得したIPアドレスを用いてJavaプログラムのファイルシステムを取得し1次記憶511または2次記憶510に保存する。
本発明のプログラム実行装置は、ユーザが安心して利用することができるという効果を奏し、例えばデジタルテレビやパーソナルコンピュータ、携帯電話機などのソフトウェアによって制御される情報機器などに適用することができ、その動作方法は、アプリケーションのストア管理技術として有用である。
図1は、従来例の画像データの外部記憶書込方法を示すフローチャートである。 図2は、従来例のバージョン管理方法によるアプリケーションモジュールのバージョンアップの処理を示すフローチャートである。 図3は、本発明に係る実施の形態1のケーブルシステムのブロック図である。 図4は、本発明に係るケーブルシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。 図5は、本発明に係るケーブルシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。 図6は、本発明に係るケーブルシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。 図7は、本発明に係る端末装置(プログラム実行装置)のブロック図である。 図8は、本発明に係る端末装置の外観の一例を示す図である。 図9は、本発明に係るPODの内部構成を示すブロック図である。 図10は、本発明に係るPODが保存するプログラムの一構成例を示す構成図である。 図11は、MPEG規格で定義されているパケットの構成図である。 図12は、MPEG2トランスポートストリームの一例を示す図である。 図13は、入力部をフロントパネルで構成した場合の外観の一例を示す図である。 図14は、本発明に係る端末装置が保存するプログラムの構成を示す構成図である。 図15Aは、本発明に係るディスプレイの表示の一例を示す図である。 図15Bは、本発明に係るディスプレイの表示の一例を示す図である。 図16は、本発明に係る2次記憶部510が保存する情報の一例を示す図である。 図17Aは、本発明に係る1次記憶部511が保存する情報の一例を示す図である。 図17Bは、本発明に係る1次記憶部511が保存する情報の一例を示す図である。 図17Cは、本発明に係る1次記憶部511が保存する情報の一例を示す図である。 図18は、本発明に係るMPEG2規格が規定するPATの内容を表す模式図である。 図19は、本発明に係るMPEG2規格が規定するPMTの内容を表す模式図である。 図20は、本発明に係るOCAP仕様が規定するAITの内容を表す模式図 図21は、本発明に係るDSMCC方式で送信されるファイルシステムを表す模式図である。 図22は、本発明に係るXAITの内容を表す模式図である。 図23は、本発明に係る2次記憶部が保存する情報の一例を示す図である。 図24は、本発明に係るXAIT情報に記述されるアプリケーションがアプリケーションのストア領域にストアされている状態の一例を示す図である。 図25は、実施の形態1において、AMが、XAIT情報を受け取った時点から、VMへのアプリケーション起動指示を行うまでの動作の一例を示すフローチャートである。 図26は、実施の形態1において、XAIT情報に従いストア領域にストアされたアプリケーションの状態の一例を示す図である。 図27は、実施の形態1において、XAIT情報に従いストア領域にストアされたアプリケーションの状態の一例を示す図である。 図28は、実施の形態1におけるAMの構成を示す構成図である。 図29は、実施の形態1において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図30は、実施の形態1において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図31は、実施の形態1における削除通知の表示位置を説明するための説明図である。 図32は、実施の形態1において、AMがアプリケーションをストアする動作の一例をまとめたフローチャートである。 図33は、ディスプレイに表示される削除通知を示す図である。 図34Aは、実施の形態1において、XAIT情報取得前におけるストア領域にストアされたアプリケーションの状態の一例を示す図である。 図34Bは、実施の形態1において、XAIT情報取得後におけるストア領域にストアされたアプリケーションの状態の一例を示す図である。 図35Aは、実施の形態1において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図35Bは、実施の形態1において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図36は、ストアするアプリケーションの選択を促すメッセージの一例を示す図である。 図37は、実施の形態2におけるAMの構成を示す構成図である。 図38は、実施の形態2における削除通知の一例を示す図である。 図39は、実施の形態2において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図40は、実施の形態3における削除通知の一例を示す図である。 図41は、実施の形態3において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図42は、実施の形態3において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図43は、実施の形態4において、ヘッドエンドからXAIT情報を受け取ったAMによる、XAIT情報の扱い、及び、アプリケーションのストア処理動作の一例を示すフローチャートである。 図44は、実施の形態4において、モニターアプリケーションの動作の一例を示すフローチャートである。 図45は、実施の形態5におけるAMの構成を示す構成図である。 図46は、実施の形態5において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図47は、実施の形態5において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図48は、実施の形態5における問合せダイアログの一例を示す図である。 図49は、実施の形態5における問合せダイアログの他の例を示す図である。 図50は、実施の形態5における問合せダイアログのさらに他の例を示す図である。 図51は、実施の形態6において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図52は、実施の形態6において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図53は、本実施の形態6におけるダイアログの一例を示す図である。 図54は、実施の形態7において、XAIT情報を受け取ったAMによる、アプリケーションのストア処理動作の一例を示すフローチャートである。 図55は、実施の形態7におけるメッセージの一例を示す図である。 図56は、IP経由によるJavaプログラムのダウンロードに必要なXAIT情報の一例を示す図である。
符号の説明
1200 プログラム
1201 OS
1201a カーネル
1201b ライブラリ
1202 EPG
1202a 番組表示部
1202b 再生部
1203 VM
1204 サービスマネージャ
1205 ライブラリ
1205a JMF
1205b AM
1205c Tuner
1205d CA
1205e POD Lib
2601 ストア優先度比較部
2602 ストアアプリ決定部
2603 ストア部
2604 ストア削除部
2605 通知部
2606 ストア領域残容量取得部
2607 アプリケーション容量取得部
上記目的を達成するために、本発明に係るプログラム実行装置は、プログラムをダウンロードして実行するプログラム実行装置であって、ダウンロードされたプログラムを保存するための領域を有する記憶手段と、複数のプログラムのそれぞれの保存に要する保存容量及び前記記憶手段の空き容量を取得する容量取得手段と、ダウンロード対象のプログラムを含む複数のプログラムのそれぞれに割り当てられた優先度と前記容量取得手段で取得された保存容量及び空き容量とに基づいて、保存対象の1又は複数のプログラムの全ての保存容量が前記記憶手段の容量を超えない範囲で、優先度の高いプログラムが優先的に前記記憶手段に保存されるように、前記ダウンロード対象のプログラムを含む複数のプログラムのそれぞれを前記記憶手段に保存しておくことが可能か否かを判別する保存判別手段と、前記保存判別手段で保存不可能と判別されたプログラムの取り扱いについてのメッセージをユーザに通知する通知手段と、前記保存判別手段で保存可能と判別されたダウンロード対象のプログラムを前記記憶手段に保存する保存処理手段と、前記記憶手段に保存されたプログラムを実行する実行手段と、前記保存判別手段で保存不可能と判別された前記記憶手段に保存されているプログラムを削除する削除手段と、前記通知手段によるメッセージに対するユーザの応答結果を取得する応答取得手段と、前記保存判別手段で保存不可能と判別された前記記憶手段に保存されているプログラムの優先度を高める優先度変更手段を備え、前記通知手段は、前記保存判別手段で保存不可能と判別された前記記憶手段に保存されているプログラムを削除しても良いか否かを問い合わせる内容の前記メッセージを通知し、前記削除手段は、前記応答取得手段によって取得された応答結果が削除の許可を示すことを検知すると、前記検知の後に、前記記憶手段に保存されているプログラムを削除し、前記保存処理手段は、前記プログラムが削除された記憶手段に対して、前記保存判別手段で保存可能と判別されたダウンロード対象のプログラムを保存し、前記保存判別手段は、前記応答取得手段によって取得された応答結果が削除の拒否を示すことを検知すると、前記保存不可能と判別されたプログラムの優先度を前記優先度変更手段に変更させ、変更された優先度に基づいて、再び、前記ダウンロード対象のプログラムを含む複数のプログラムのそれぞれを前記記憶手段に保存しておくことが可能か否かを判別することを特徴とする。
本発明に係るプログラム実行装置では、例えば記憶手段に既にプログラムが保存されている状況で、新規のプログラムをダウンロードしようとするときに、それらのプログラムを共に記憶手段に保存しておくことができない場合、その新規のプログラムの優先度と、記憶手段にあるプログラムの優先度とが比較されて、記憶手段にあるプログラムの優先度の方が低いときには、そのプログラムが記憶手段から削除されるとともに、そのプログラムの削除についてのメッセージがユーザに通知されるため、プログラム実行装置の挙動がその削除に伴って変化しても、ユーザはその原因をメッセージによって知っているため、安心してプログラム実行装置を利用することができる。
更に、ユーザによる削除の許可が得られた後にプログラムの削除が行われるため、ユーザが許可することなくプログラムが削除されてしまうのを防いで、ユーザによる使い勝手を向上することができる。
更に、ユーザがプログラムの削除を拒否したときには、そのプログラムの優先度が高く設定され、その優先度を用いて再び複数のプログラムの中から保存不可能なプログラムが選ばれるため、ユーザにとって不要なプログラムを削除することができ、ユーザによる使い勝手をさらに向上することができる。
ここで、前記削除手段は、前記応答取得手段によって取得された応答結果が削除の許可を示すことを検知すると、前記検知の後に、前記実行中のプログラムを終了させて削除することを特徴としても良い。

Claims (18)

  1. プログラムをダウンロードして実行するプログラム実行装置であって、
    ダウンロードされたプログラムを保存するための領域を有する記憶手段と、
    ダウンロード対象のプログラムを含む複数のプログラムのそれぞれに割り当てられた優先度に基づいて、前記各プログラムを前記記憶手段に保存しておくことが可能か否かを判別する保存判別手段と、
    前記保存判別手段で保存不可能と判別されたプログラムの取り扱いについてのメッセージをユーザに通知する通知手段と、
    前記保存判別手段で保存可能と判別されたダウンロード対象のプログラムを前記記憶手段に保存する保存処理手段と、
    前記記憶手段に保存されたプログラムを実行する実行手段と
    を備えることを特徴とするプログラム実行装置。
  2. 前記プログラム実行装置は、さらに、
    前記複数のプログラムのそれぞれの保存に要する保存容量及び前記記憶手段の空き容量を取得する容量取得手段を備え、
    前記保存判別手段は、前記容量取得手段で取得された保存容量及び空き容量に基づいて、保存対象の1又は複数のプログラムの全ての保存容量が前記記憶手段の容量を超えない範囲で、優先度の高いプログラムを優先的に保存可能と判別する
    ことを特徴とする請求項1記載のプログラム実行装置。
  3. 前記プログラム実行装置は、さらに、
    前記保存判別手段で保存不可能と判別された前記記憶手段に保存されているプログラムを削除する削除手段を備え、
    前記通知手段は、前記プログラムの削除についてのメッセージをユーザに通知し、
    前記保存処理手段は、前記プログラムが削除された記憶手段に対して、前記保存判別手段で保存可能と判別されたダウンロード対象のプログラムを保存する
    ことを特徴とする請求項2記載のプログラム実行装置。
  4. 前記削除手段は、前記通知手段によるユーザへの通知が行われたことを検知した後に、前記記憶手段に保存されているプログラムを削除する
    ことを特徴とする請求項3記載のプログラム実行装置。
  5. 前記通知手段は、前記記憶手段に保存されているプログラムが削除されることの確認をユーザに求める内容のメッセージを通知し、
    前記プログラム実行装置は、さらに、
    前記メッセージに対するユーザの確認結果を取得する確認取得手段を備え、
    前記削除手段は、前記確認取得手段によって確認結果が取得されたことを検知すると、前記記憶手段に保存されているプログラムを削除する
    ことを特徴とする請求項4記載のプログラム実行装置。
  6. 前記通知手段は、前記記憶手段に保存されているプログラムを削除しても良いか否かを問い合わせる内容のメッセージを通知し、
    前記プログラム実行装置は、さらに、
    前記メッセージに対するユーザの応答結果を取得する応答取得手段を備え、
    前記削除手段は、前記応答取得手段によって取得された応答結果が削除の許可を示すことを検知すると、前記記憶手段に保存されているプログラムを削除する
    ことを特徴とする請求項4記載のプログラム実行装置。
  7. 前記プログラム実行装置は、さらに、
    前記応答取得手段によって取得された応答結果が削除の拒否を示すことを検知すると、前記保存判別手段で保存不可能と判別された前記記憶手段に保存されているプログラムの優先度を高める優先度変更手段を備え、
    前記保存判別手段は、前記優先度変更手段で変更された優先度に基づいて、再び、前記各プログラムを前記記憶手段に保存しておくことが可能か否かを判別することを特徴とする請求項6記載のプログラム実行装置。
  8. 前記保存判別手段は、さらに、保存不可能と判別された複数のプログラムが前記記憶手段に保存されているか否かを判別し、
    前記通知手段は、前記保存判別手段で保存されていると判別された複数のプログラムのうちの何れを削除するかの選択を促す内容のメッセージを通知し、
    前記プログラム実行装置は、さらに、
    前記メッセージに対するユーザの選択結果を取得する選択結果取得手段を備え、
    前記削除手段は、前記選択結果取得手段によって取得された選択結果の示すプログラムを削除する
    ことを特徴とする請求項4記載のプログラム実行装置。
  9. 前記通知手段は、前記記憶手段に保存されているプログラムを用いて前記メッセージをユーザに表示する
    ことを特徴とする請求項4記載のプログラム実行装置。
  10. 前記プログラム実行装置は、さらに、
    前記保存判別手段で保存不可能と判別されたプログラムが前記実行手段によって実行されているか否かを判別する実行判別手段を備え、
    前記通知手段は、前記実行判別手段で実行中と判別されたプログラムの削除についてのメッセージをユーザに通知する
    ことを特徴とする請求項3記載のプログラム実行装置。
  11. 前記削除手段は、前記実行判別手段で実行中と判別されたプログラムの実行を終了させて削除する
    ことを特徴とする請求項10記載のプログラム実行装置。
  12. 前記通知手段は、前記実行判別手段で実行中と判別されたプログラムを削除しても良いか否かをユーザに問い合わせる内容のメッセージを通知し、
    前記プログラム実行装置は、さらに、
    前記メッセージに対するユーザの応答結果を取得する応答取得手段を備え、
    前記削除手段は、前記応答取得手段によって取得された応答結果が削除の許可を示すことを検知すると、前記実行中のプログラムを終了させて削除する
    ことを特徴とする請求項11記載のプログラム実行装置。
  13. 前記削除手段は、前記実行判別手段による判別結果に基づいて前記実行中のプログラムの終了を検知すると、前記プログラムを削除する
    ことを特徴とする請求項10記載のプログラム実行装置。
  14. 前記通知手段は、前記保存判別手段で保存不可能と判別されたダウンロード対象のプログラムの保存についてのメッセージをユーザに通知する
    ことを特徴とする請求項2記載のプログラム実行装置。
  15. 前記保存判別手段は、さらに、保存不可能と判別された複数のプログラムが前記記憶手段に保存されているか否かを判別し、
    前記通知手段は、前記保存判別手段で保存されていないと判別された複数のプログラムのうちの何れを前記記憶手段に保存するかの選択を促す内容のメッセージを通知し、
    前記プログラム実行装置は、さらに、
    前記メッセージに対するユーザの選択結果を取得する選択結果取得手段を備え、
    前記削除手段は、前記選択結果取得手段によって取得された選択結果の示すプログラムを前記記憶手段に保存する
    ことを特徴とする請求項14記載のプログラム実行装置。
  16. 前記保存判別手段は、互いに種類の異なる複数のプログラムのそれぞれを前記記憶手段に保存しておくことが可能か否かを判別する
    ことを特徴とする請求項2記載のプログラム実行装置。
  17. プログラムをダウンロードして実行するプログラム実行方法であって、
    ダウンロード対象のプログラムを含む複数のプログラムのそれぞれに割り当てられた優先度に基づいて、前記各プログラムを記憶手段に保存しておくことが可能か否かを判別する保存判別ステップと、
    前記保存判別ステップで保存不可能と判別されたプログラムの取り扱いについてのメッセージをユーザに通知する通知ステップと、
    前記保存判別ステップで保存可能と判別されたダウンロード対象のプログラムを前記記憶手段に保存する保存処理ステップと、
    前記記憶手段に保存されたプログラムを実行する実行ステップと
    を含むことを特徴とするプログラム実行方法。
  18. アプリケーションプログラムをダウンロードしてコンピュータに実行させるプログラムであって、
    ダウンロード対象のアプリケーションプログラムを含む複数のアプリケーションプログラムのそれぞれに割り当てられた優先度に基づいて、前記各アプリケーションプログラムを記憶手段に保存しておくことが可能か否かを判別する保存判別ステップと、
    前記保存判別ステップで保存不可能と判別されたアプリケーションプログラムの取り扱いについてのメッセージをユーザに通知する通知ステップと、
    前記保存判別ステップで保存可能と判別されたダウンロード対象のアプリケーションプログラムを前記記憶手段に保存する保存処理ステップと、
    前記記憶手段に保存されたアプリケーションプログラムを実行する実行ステップと
    を含むことを特徴とするプログラム。
JP2005517770A 2004-02-10 2005-02-07 プログラム実行装置、プログラム実行方法、及びプログラム Withdrawn JPWO2005076125A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2004033167 2004-02-10
JP2004033167 2004-02-10
PCT/JP2005/001780 WO2005076125A1 (ja) 2004-02-10 2005-02-07 プログラム実行装置、プログラム実行方法、及びプログラム

Publications (1)

Publication Number Publication Date
JPWO2005076125A1 true JPWO2005076125A1 (ja) 2009-05-07

Family

ID=34836120

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005517770A Withdrawn JPWO2005076125A1 (ja) 2004-02-10 2005-02-07 プログラム実行装置、プログラム実行方法、及びプログラム

Country Status (6)

Country Link
US (1) US20070174356A1 (ja)
JP (1) JPWO2005076125A1 (ja)
KR (1) KR20060135662A (ja)
CN (1) CN100422927C (ja)
CA (1) CA2556092A1 (ja)
WO (1) WO2005076125A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100720558B1 (ko) * 2005-08-30 2007-05-22 엘지전자 주식회사 데이터 방송의 저장 및 실행 기능을 구비한 영상기기 및 그제어방법
JP4887717B2 (ja) * 2005-10-11 2012-02-29 ソニー株式会社 放送受信装置およびそのプログラム更新方法
EP1826670A1 (en) * 2006-02-24 2007-08-29 Research In Motion Limited System and method for managing applications on a computing device having limited storage space
KR20080006864A (ko) * 2006-07-14 2008-01-17 엘지전자 주식회사 데이터 방송 어플리케이션을 제어하는 방법 및 이를수신하는 방송 수신기
US8724964B2 (en) * 2008-10-10 2014-05-13 International Business Machines Corporation Managing multiple user locks and deletion requests for a digital video recorder
US8261030B2 (en) * 2008-11-18 2012-09-04 Microsoft Corporation Using delete notifications to free related storage resources
US8255641B2 (en) * 2008-11-18 2012-08-28 Microsoft Corporation Modifying delete notifications in a storage stack
US8156300B2 (en) * 2008-11-18 2012-04-10 Microsoft Corporation Delete notifications for an entire storage volume
JP2010272058A (ja) * 2009-05-25 2010-12-02 Funai Electric Co Ltd 情報再生装置
US9132715B2 (en) * 2010-03-12 2015-09-15 GM Global Technology Operations LLC Vehicle connectivity systems, methods and applications
US20110265072A1 (en) * 2010-04-27 2011-10-27 Jack Matthew Dynamic Installation of Files for Running Programs
JP5449044B2 (ja) * 2010-06-10 2014-03-19 シャープ株式会社 サーバ装置、端末装置およびアプリケーション制御システム
JP5765558B2 (ja) 2010-08-27 2015-08-19 ソニー株式会社 受信装置、受信方法、送信装置、送信方法、プログラム、および放送システム
EP2712186A4 (en) * 2011-05-19 2014-10-08 Japan Broadcasting Corp RECEIVER
JP6018796B2 (ja) * 2011-05-19 2016-11-02 日本放送協会 受信機
JP6223740B2 (ja) * 2013-07-25 2017-11-01 京セラ株式会社 電子機器、プログラムおよび電子機器の制御方法
KR102088018B1 (ko) 2013-09-03 2020-05-27 삼성전자주식회사 전자 기기간 연동 방법 및 장치
WO2017014034A1 (ja) * 2015-07-23 2017-01-26 ソニー株式会社 受信装置、送信装置、およびデータ処理方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US193597A (en) * 1877-07-31 Improvement in means for towing ga
US200061A (en) * 1878-02-05 Improvement in pen-holders
US184372A (en) * 1876-11-14 Improvement in fluid-meters
US35671A (en) * 1862-06-24 corbett
JP2001318793A (ja) * 2000-05-08 2001-11-16 Matsushita Electric Ind Co Ltd ソフトウェアダウンロード機能付き機器、及びソフトウェアダウンロード方法
JP3819780B2 (ja) * 2001-01-25 2006-09-13 株式会社東芝 複数の無線通信システムに対応可能な無線通信装置
JP2002351680A (ja) * 2001-05-29 2002-12-06 Matsushita Electric Ind Co Ltd アプリケーション管理装置とアプリケーション管理システム
JP2003174521A (ja) * 2001-12-07 2003-06-20 Ntt Docomo Inc 通信モジュール実行制御システム及び通信モジュール実行制御方法並びにアプリケーション実行制御システム及びアプリケーション実行制御方法
JP3942941B2 (ja) * 2002-04-22 2007-07-11 三菱電機株式会社 通信装置及びプラグインモジュール制御方法及びコンピュータに実行させるためのプログラム及びコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2004023753A (ja) * 2002-06-20 2004-01-22 Denso Corp ソフトウェア無線機
US20050129042A1 (en) * 2003-12-16 2005-06-16 Nokia Corporation System and associated terminal, method and computer program product for controlling memory for storage of content

Also Published As

Publication number Publication date
CA2556092A1 (en) 2005-08-18
WO2005076125A1 (ja) 2005-08-18
CN1918544A (zh) 2007-02-21
KR20060135662A (ko) 2006-12-29
CN100422927C (zh) 2008-10-01
US20070174356A1 (en) 2007-07-26

Similar Documents

Publication Publication Date Title
JPWO2005076125A1 (ja) プログラム実行装置、プログラム実行方法、及びプログラム
KR101193347B1 (ko) 다운로드 실행 장치
JP4317565B2 (ja) プログラム実行装置
KR101059682B1 (ko) 정보 처리 장치
KR100926201B1 (ko) 프로그램 치환 방법 및 프로그램 치환 장치
JP4243571B2 (ja) 放送受信装置
WO2005060255A1 (en) Method for storing, authenticalting and executing an application program
EP1766974A1 (en) Method for authenticating and executing an application program
KR100495779B1 (ko) 전송된 데이터 스트림으로부터 데이터 섹션들을 추출 및 저장하는 방법 및 그의 장치
KR101036036B1 (ko) 프로그램 실행 장치
JP4149414B2 (ja) プログラム置き換え方法およびプログラム置き換え装置
JP2009094702A (ja) 操作履歴を記憶する情報処理装置
JP4554659B2 (ja) プログラム置き換え方法およびプログラム置き換え装置
JP4149502B2 (ja) プログラム置き換え方法およびプログラム置き換え装置
JP4728307B2 (ja) プログラム置き換え方法およびプログラム置き換え装置
MXPA06008998A (es) Dispositivo de ejecucion de programa, metodo de ejecucion de programa y programa

Legal Events

Date Code Title Description
A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20091019