(57)【要約】【課題】ユーザ操作履歴を記録し、ダウンロードアプリに提供する情報処理端末であって、情報処理端末が登載するＡＰＩを利用して様々な動作を行う「端末外部からロードしたアプリケーション」は、自分が行ったＡＰＩ呼出ししか知見できないため、ユーザの全般的な操作履歴を取得することができない。【解決手段】情報処理端末が登載するＡＰＩの呼び出し履歴を、情報処理端末自身がデータベース化し、予め許可されたアプリケーションに対し、データベースにアクセスする手段を提供する。【選択図】図２０
2009094702.tif 000002
【特許請求の範囲】
【請求項１】
入力信号に含まれアプリケーション識別子によって特定されるアプリケーションをダウンロードして実行する情報処理装置であって、
アプリケーションがサービス識別子を引き渡すと対応するサービスを選択するサービス選択手段と、
前記サービス識別子とサービス選択時刻とアプリケーション識別子を組として保持するサービス選択履歴保持手段と、
前記サービス選択手段がサービス選択を行った時に前記サービス選択手段より通知を受け、前記サービス選択履歴保持手段に前記サービス識別子及びサービス選択時刻及び前記サービス選択を指令したアプリケーションのアプリケーション識別子をサービス選択履歴として登録するサービス選択履歴登録手段と、
前記サービス選択履歴保持手段が保持するサービス選択履歴をアプリケーションに対して提供するサービス選択履歴取得手段と、
前記サービス選択履歴取得手段を利用して前記サービス選択履歴を取得する権利を持つアプリケーションのアプリケーション識別子を記載するサービス選択履歴取得許可アプリ保持手段とを備え、
前記サービス選択履歴取得手段がアプリケーションによって利用された際、当該アプリケーションのアプリケーション識別子が前記サービス選択履歴取得許可アプリ保持手段に記載されていれば当該アプリケーションに対して前記サービス履歴を提供し、当該アプリケーションのアプリケーション識別子が前記サービス選択履歴取得許可アプリ保持手段に記載されていなければ当該アプリケーションに対してエラーを通知する
ことを特徴とする情報処理装置。
【請求項２】
前記情報処理装置は、さらに、
前記サービス選択履歴取得許可アプリ保持手段にアプリケーションを登録するサービス選択履歴取得許可アプリ登録手段と、
前記サービス選択履歴取得許可アプリ保持手段からアプリケーションを登録削除するサービス選択履歴取得許可アプリ登録削除手段とを備える
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記情報処理装置は、さらに、
前記サービス選択履歴取得手段がアプリケーション識別子を検索条件として受け取ると、当該アプリケーション識別子が特定するアプリケーションが指令したサービス選択の履歴のみを前記サービス選択履歴保持手段より検索して提供する
ことを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記情報処理装置は、さらに、
前記サービス選択履歴取得手段が開始時刻及び終了時刻を検索条件として受け取ると、前記開始時刻と終了時刻間に起こったサービス選択の履歴のみを前記サービス選択履歴保持手段より検索して提供する
ことを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記情報処理装置は、さらに、
前記サービス選択履歴取得手段がサービス識別子を検索条件として受け取ると、前記サービス識別子が特定するサービスに対して行われたサービス選択の履歴のみを前記サービス選択履歴保持手段より検索して提供する
ことを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記情報処理装置は、さらに、
前記サービス選択履歴保持手段が保持するサービス履歴の最大数を保持するサービス選択履歴最大数保持手段と、
前記サービス選択履歴最大数保持手段にサービス選択履歴最大数を設定するサービス選択履歴最大数登録手段とを備え、
前記サービス選択登録手段は、前記サービス選択履歴保持手段にサービス選択履歴を登録する際に「前記サービス選択履歴保持手段が保持する前記サービス選択履歴の数」と「前記サービス選択履歴最大数保持手段が保持する最大数」が等しい場合はサービス選択履歴を登録する前に前記サービス選択履歴保持手段が保持する前記サービス選択履歴のうち最も古いものを削除する
ことを特徴とする請求項１記載の情報処理装置。
【請求項７】
前記情報処理装置は、さらに、
前記サービス選択履歴保持手段が保持する前記サービス選択履歴を削除するサービス選択履歴削除手段を備える
ことを特徴とする請求項１記載の情報処理装置。
【請求項８】
前記情報処理装置は、さらに、
前記サービス選択履歴削除手段がアプリケーション識別子を受け取ると、当該アプリケーション識別子が特定するアプリケーションが指令したサービス選択の履歴のみを前記サービス選択履歴保持手段より検索して削除する
ことを特徴とする請求項７記載の情報処理装置。
【請求項９】
前記情報処理装置は、さらに、
前記サービス選択履歴削除手段が開始時刻及び終了時刻を受け取ると、当該開始時刻と当該終了時刻の間に行われたサービス選択の履歴のみを前記サービス選択履歴保持手段より検索して削除する
ことを特徴とする請求項７記載の情報処理装置。
【請求項１０】
前記情報処理装置は、さらに、
前記サービス選択履歴削除手段がサービス識別子を受け取ると、当該サービス識別子が特定するサービスに対するサービス選択の履歴のみを前記サービス選択履歴保持手段より検索して削除する
ことを特徴とする請求項７記載の情報処理装置。
【請求項１１】
前記情報処理装置は、さらに、
前記サービス選択手段に対して、サービス選択を行っても前記サービス履歴登録手段に対して通知を行わないように設定するサービス選択履歴取得停止手段と、
前記サービス選択手段に対して、サービス選択を行ったら前記サービス履歴登録手段に対して通知を行うように設定するサービス選択履歴取得開始手段とを備える
ことを特徴とする請求項１記載の情報処理装置。
【請求項１２】
入力信号に含まれアプリケーション識別子によって特定されるアプリケーションをダウンロードして実行する情報処理装置であって、
アプリケーションが所望の振舞いを実現するために利用する端末操作ＡＰＩと、
前記端末操作ＡＰＩの種類、命令種別、指令したアプリケーションのアプリケーション識別子、指令時刻を組として保持する操作履歴保持手段と、
アプリケーションが前記端末操作ＡＰＩを利用すると前記端末操作ＡＰＩより通知され、ＡＰＩの種類、命令種別、指令したアプリケーションのアプリケーション識別子、指令時刻を組として前記操作履歴保持手段に登録する操作履歴登録手段と、
前記操作履歴保持手段が保持する操作履歴をアプリケーションに対して提供する操作履歴取得手段と、
前記操作履歴取得手段を利用して操作履歴を取得する権利を持つアプリケーションのアプリケーション識別子を記載する操作履歴取得許可アプリ保持手段とを備え、
前記操作履歴取得手段がアプリケーションによって利用された際、当該アプリケーションのアプリケーション識別子が前記操作履歴取得許可アプリ保持手段に記載されていれば当該アプリケーションに対して操作履歴を提供し、当該アプリケーションのアプリケーション識別子が前記操作履歴取得許可アプリ保持手段に記載されていなければ当該アプリケーションに対してエラーを通知する
ことを特徴とする情報処理装置。
【請求項１３】
前記情報処理装置は、さらに、
前記操作履歴取得許可アプリ保持手段にアプリケーションを登録する操作履歴取得許可アプリ登録手段と、
前記操作履歴取得許可アプリ保持手段からアプリケーションを登録削除する操作履歴取得許可アプリ登録削除手段とを備える
ことを特徴とする請求項１２記載の情報処理装置。
【請求項１４】
前記情報処理装置は、さらに、
前記操作履歴取得手段がアプリケーション識別子を検索条件として受け取ると、当該アプリケーション識別子が特定するアプリケーションが指令した操作履歴のみを前記操作履歴保持手段より検索して提供する
ことを特徴とする請求項１２記載の情報処理装置。
【請求項１５】
前記情報処理装置は、さらに、
前記操作履歴取得手段が開始時刻及び終了時刻を検索条件として受け取ると、当該開始時刻及び当該終了時刻の間に行われた操作の履歴のみを前記操作履歴保持手段より検索して提供する
ことを特徴とする請求項１２記載の情報処理装置。
【請求項１６】
前記情報処理装置は、さらに、
前記操作履歴取得手段が端末操作ＡＰＩの種類を検索条件として受け取ると、当該端末操作ＡＰＩを通して行われた操作履歴のみを前記操作履歴保持手段より検索して提供する
ことを特徴とする請求項１２記載の情報処理装置。
【請求項１７】
前記情報処理装置は、さらに、
前記操作履歴保持手段が保持する操作履歴の最大数を保持する操作履歴最大数保持手段と、
前記操作履歴最大数保持手段に操作履歴の最大数を設定するサービス選択履歴最大数登録手段を備え、
前記操作履歴登録手段は、前記操作履歴保持手段に操作履歴を登録する前に「前記操作履歴保持手段が保持する操作履歴の数」と「前記操作履歴最大数保持手段が保持する最大数」を比較し、等しい場合は操作履歴を登録する前に前記操作履歴保持手段が保持する操作履歴のうち最も古いものを削除する
ことを特徴とする請求項１２記載の情報処理装置。
【請求項１８】
前記情報処理装置は、さらに、
前記操作履歴保持手段が保持する操作履歴を削除する操作履歴削除手段を備える
ことを特徴とする請求項１２記載の情報処理装置。
【請求項１９】
前記情報処理装置は、さらに、
前記操作履歴削除手段がアプリケーション識別子を受け取ると、当該アプリケーション識別子が特定するアプリケーションが指令した操作履歴のみを前記操作履歴保持手段より検索して削除する
ことを特徴とする請求項１８記載の情報処理装置。
【請求項２０】
前記情報処理装置は、さらに、
前記操作履歴削除手段が開始時刻及び終了時刻を受け取ると、当該開始時刻と当該終了時刻の間に行われた操作履歴のみを前記操作履歴保持手段より検索して削除する
ことを特徴とする請求項１８記載の情報処理装置。
【請求項２１】
前記情報処理装置は、さらに、
前記操作履歴削除手段が端末操作ＡＰＩの種類を受け取ると、当該端末操作ＡＰＩを通して行われた操作履歴のみを前記操作履歴保持手段より検索して削除する
ことを特徴とする請求項１８記載の情報処理装置。
【請求項２２】
前記情報処理装置は、さらに、
前記操作履歴保持手段が操作履歴を保持する期間を保持する操作履歴保持期間保持手段と、
前記操作履歴保持期間保持手段に保持期間を登録する操作履歴保持期間登録手段と、
前記操作履歴保持期間保持手段が保持期間を経過した操作履歴を前記操作履歴保持手段から削除する操作履歴保持期間経過エントリ削除手段とを備える
ことを特徴とする請求項１２記載の情報処理装置。
【請求項２３】
前記情報処理装置は、さらに、
前記端末操作ＡＰＩに対して、「端末操作を行っても前記操作履歴登録手段に対して通知を行わない」ように設定する操作履歴取得停止手段と、
前記端末操作ＡＰＩに対して、「端末操作を行ったら前記操作履歴登録手段に対して通知を行う」ように設定する捜査履歴取得開始手段とを備える
ことを特徴とする請求項１２記載の情報処理装置。
【請求項２４】
入力信号に含まれアプリケーション識別子によって特定されるアプリケーションをダウンロードして実行する情報処理装置であって、
電源のｏｎ／ｏｆｆを切り替える電源ボタンと、
電源のｏｎ／ｏｆｆが切り替え操作及びその時刻を保持する電源履歴保持手段と、
前記電源履歴保持手段が保持する電源履歴記アプリケーションに対して提供する電源履歴取得手段と、
前記電源履歴取得手段を利用して電源履歴を取得する権利を持つアプリケーションのアプリケーション識別子を記載する電源履歴取得許可アプリ保持手段とを備え、
前記電源履歴取得手段がアプリケーションによって利用された際、当該アプリケーションのアプリケーション識別子が前記電源履歴取得許可アプリ保持手段に記載されていれば当該アプリケーションに対して電源履歴を提供し、当該アプリケーションのアプリケーション識別子が前記電源履歴取得許可アプリ保持手段に記載されていなければ当該アプリケーションに対してエラーを通知する
ことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、放送波や光学メディア、ネットワークコンテンツよりプログラムを抽出、実行する情報処理端末において、実行されるプログラムが動的にユーザの嗜好を判定し、ユーザに適した動作を行う技術に関する。
【背景技術】
【０００２】
放送局から送信される放送波は、多種多様なコンテンツを含んでいる。コンテンツは、通常の番組で用いられる映像、音声の他に、データを含む場合がある。データの送信方法にはいくつかの方式があり、大別して時系列に送信する方式と、一定の間隔ごとに繰り返し送信する方式がある。前者の時系列に送信する方式では、例えば時間経過に合わせて連続するデータを順次送出していく。大量のデータを長時間かけて送信する場合に適しているが、送信タイミングで受信しなかった場合は二度と受信できないという欠点がある。
【０００３】
一方、後者の一定の間隔ごとに繰り返し送信する方式では、同じデータを一定の期間何度も繰り返し送出する。同一データを送出している期間内に、繰り返し送信されているデータのいずれかひとつを受信すればよいので、受信タイミングが限定されないというメリットがある。例えば、ＢＭＬに代表されるデータ放送や、ＤＳＭＣＣデータカルーセルによるファイル送信がこの方式である。特に放送においては、受信者がいつ選局して受信を開始するかわからない。時系列に送信する方式では、受信開始が送信時間よりも遅れてしまい、データ取得に失敗すると二度と再取得できない。よって、放送波で映像、音声とともにアプリケーションプログラム等のデータを送信したい場合には、一定の間隔ごとに繰り返し送信される方式が好適である。
【０００４】
現在、上記のような方式で、映像、音声とアプリケーションプログラムとを含む放送波を受信し、アプリケーションプログラムを映像、音声と同期して実行するための仕様が策定され、運用されている。通常の映像、音声を見るだけでなく、送信されたアプリケーションプログラムを受信して端末に取り込み、それを実行して様々な付加機能を実現することができる。このようにアプリケーションプログラムを送信して端末に取り込む方法はダウンロードとも呼ばれている。
【０００５】
例えば、ＤＶＢ−ＭＨＰ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｂｒｏａｄｃａｓｔｉｎｇ−Ｍｕｌｔｉｍｅｄｉａ  Ｈｏｍｅ  Ｐｌａｔｆｏｒｍ）ＥＴＳＩ  ＥＳ  ２０１  ８１２  Ｖ１．１．１（２００３−１２））仕様が欧州で策定され、既に仕様に準拠した運用が開始されている。また米国ではケーブル放送環境で同様の仕組みを提供するＯＣＡＰ１．０（ＯｐｅｎＣａｂｌｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｌａｔｆｏｒｍ  ＯＣ−ＳＰ−ＯＣＡＰ１．０−Ｉ１４−０５０１１９）仕様書が策定されており、２００５年に運用開始予定である。これらの仕様では、アプリケーションがＪａｖａ（登録商標）言語で記述されている。端末上にはチューニングやグラフィックス表示のための様々なＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）が用意されており、ＪａｖａアプリケーションはＡＰＩを呼び出すことでそれらの機能を制御できる。
【０００６】
また今日、ＢＤ（Ｂｌｕｒａｙ  Ｄｉｓｃ）をはじめとする、「映像音声と共にプログラムを記録する光学メディア」が存在する。この光学メディアに記録されたプログラムは、再生装置によって読み出され、映像音声と同期、あるいは非同期的に起動される。ＢＤでは、プログラムはＤＶＢ−ＭＨＰやＯＣＡＰ同様にＪａｖａ言語で記述され、端末に用意されたＡＰＩを利用して様々な機能を制御できる。
【０００７】
ＤＶＢ−ＭＨＰやＯＣＡＰに準拠するＪａｖａアプリケーションの代表例として、ＥＰＧを挙げることができる。通常の放送受信端末では、ＥＰＧは端末に予め組み込まれた機能であるが、ＤＶＢ−ＭＨＰやＯＣＡＰなどのＪａｖａアプリケーションを放送波からダウンロードして実行する放送受信端末では、放送事業者がＪａｖａアプリケーションを開発して放送することで、放送事業者が独自のＧＵＩを用いてＥＰＧを実現することが可能である。
【０００８】
現行の放送受信端末上で実行されるＥＰＧは、単にチャンネル選択機能を有するだけではなく、様々な先進的な機能を持つものがある。その例として、ユーザの嗜好を分析して、過去にユーザが好んで視聴したチャンネルを画面上部より表示する、などの手法が存在する。特許文献１では、ユーザの指示により過去のチャンネル視聴履歴を画面に表示することで、より好みのチャンネルを選択しやすい状況を実現している。
【特許文献１】特開平１０−３０４２６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
特許文献１が実現するような過去のチャンネル視聴履歴表示するためには、過去のチャンネル視聴履歴を保持するデータベースを、情報処理装置上で動作するＥＰＧアプリケーションが管理する。その場合、データベースフォーマットは単一でよく、また常にチャンネル変更はＥＰＧアプリケーションを通して行われるため、ユーザが行った全チャンネル変更を管理することは容易であった。
【００１０】
しかし、ＤＶＢ−ＭＨＰやＯＣＡＰのようなダウンロードアプリケーションを実行する環境では、様々なアプリケーションがチャンネル変更ＡＰＩを利用してチャンネル変更を行うことが可能であり、各アプリケーションは「自アプリケーションがチャンネル変更ＡＰＩを利用して行ったチャンネル変更」しか管理できず、「ユーザが行った全チャンネル変更」を管理することができない。
【００１１】
また、ユーザ視聴履歴はユーザの個人情報であり、ユーザの利便性向上を用途として参照される場合は良いが、外部に漏洩してはならない。そのため信頼できるアプリケーションのみがデータベースにアクセスできるようにすべきである。通常の放送受信端末では、組込みアプリケーションのみがデータベースを利用することで、これを実現していた。しかしダウンロードアプリケーションを実行する環境では、これを保証することが困難である。
【課題を解決するための手段】
【００１２】
以上の課題を解決するために、本発明は、入力に含まれアプリケーション識別子によって特定されるアプリケーションをダウンロードして実行する情報処理装置であって、アプリケーションがサービス識別子を引き渡すと対応するサービスを選択するサービス選択手段と、前記サービス識別子とサービス選択時刻とアプリケーション識別子を組として保持するサービス選択履歴保持手段と、前記サービス選択手段がサービス選択を行った時に前記サービス選択手段より通知を受け、前記サービス選択履歴保持手段に前記サービス識別子及びサービス選択時刻及び前記サービス選択を指令したアプリケーションのアプリケーション識別子をサービス選択履歴として登録するサービス選択履歴登録手段と、前記サービス選択履歴保持手段が保持するサービス選択履歴をアプリケーションに対して提供するサービス選択履歴取得手段と、前記サービス選択履歴取得手段を利用して前記サービス選択履歴を取得する権利を持つアプリケーションのアプリケーション識別子を記載するサービス選択履歴取得許可アプリ保持手段を備え、前記サービス選択履歴取得手段がアプリケーションによって利用された際、当該アプリケーションのアプリケーション識別子が前記サービス選択履歴取得許可アプリ保持手段に記載されていれば当該アプリケーションに対して前記サービス履歴を提供し、当該アプリケーションのアプリケーション識別子が前記サービス選択履歴取得許可アプリ保持手段に記載されていなければ当該アプリケーションに対してエラーを通知することで、アプリケーションが、サービス履歴を取得可能となる。
【００１３】
さらに、前記サービス選択履歴取得許可アプリ保持手段にアプリケーションを登録するサービス選択履歴取得許可アプリ登録手段と、前記サービス選択履歴取得許可アプリ保持手段からアプリケーションを登録削除するサービス選択履歴取得許可アプリ登録削除手段を備えることで、アプリケーションが、履歴取得可能なアプリケーションを追加・削除設定できる。
【００１４】
さらに、前記サービス選択履歴取得手段がアプリケーション識別子を検索条件として受け取ると、当該アプリケーション識別子が特定するアプリケーションが指令した前記サービス選択の履歴のみを前記サービス選択履歴保持手段より検索して提供することでアプリケーション毎の履歴が取得可能となる。
【００１５】
さらに、前記サービス選択履歴取得手段が開始時刻及び終了時刻を検索条件として受け取ると、前記開始時刻と終了時刻間に起こったサービス選択の履歴のみを前記サービス選択履歴保持手段より検索して提供することで、時間帯を区切った履歴取得が可能となる。
【００１６】
さらに、前記サービス選択履歴取得手段がサービス識別子を検索条件として受け取ると、前記サービス識別子が特定するサービスに対して行われたサービス選択の履歴のみを前記サービス選択履歴保持手段より検索して提供することで、特定サービスに対して行われたサービス選択の履歴取得が可能となる。
【００１７】
さらに、前記サービス選択履歴保持手段が保持するサービス履歴の最大数を保持するサービス選択履歴最大数保持手段と前記サービス選択履歴最大数保持手段にサービス選択履歴最大数を設定するサービス選択履歴最大数登録手段を備え、前記サービス選択登録手段は、前記サービス選択履歴保持手段にサービス選択履歴を登録する際に「前記サービス選択履歴保持手段が保持する前記サービス選択履歴の数」と「前記サービス選択履歴最大数保持手段が保持する最大数」が等しい場合はサービス選択履歴を登録する前に前記サービス選択履歴保持手段が保持する前記サービス選択履歴のうち最も古いものを削除することで、サービス履歴の最大数を管理可能となる。
【００１８】
さらに、前記サービス選択履歴保持手段が保持する前記サービス選択履歴を削除するサービス選択履歴削除手段を備えることで、サービス選択履歴を削除可能となる。
【００１９】
さらに、前記サービス選択履歴削除手段がアプリケーション識別子を受け取ると、当該アプリケーション識別子が特定するアプリケーションが指令した前記サービス選択の履歴のみを前記サービス選択履歴保持手段より検索して削除することで、特定アプリケーションが行ったサービス選択の履歴を選択的に削除可能となる。
【００２０】
さらに、前記サービス選択履歴削除手段が開始時刻及び終了時刻を受け取ると、当該開始時刻と当該終了時刻の間に行われたサービス選択の履歴のみを前記サービス選択履歴保持手段より検索して削除することで、特定時間帯に行われたサービス選択履歴を選択的に削除可能となる。
【００２１】
さらに、前記サービス選択履歴削除手段がサービス識別子を受け取ると、当該サービス識別子が特定するサービスに対するサービス選択の履歴のみを前記サービス選択履歴保持手段より検索して削除することで、特定サービスに対するサービス選択の履歴を選択的に削除可能となる。
【００２２】
さらに、前記サービス選択手段に対して、サービス選択を行っても前記サービス履歴登録手段に対して通知を行わないように設定するサービス選択履歴取得停止手段と、前記サービス選択手段に対して、サービス選択を行ったら前記サービス履歴登録手段に対して通知を行うように設定するサービス選択履歴取得開始手段を備えることで、サービス選択履歴の取得の開始・停止を制御可能となる。
【００２３】
入力信号に含まれアプリケーション識別子によって特定されるアプリケーションをダウンロードして実行する情報処理装置であって、アプリケーションが所望の振舞いを実現するために利用する端末操作ＡＰＩと、前記端末操作ＡＰＩの種類、命令種別、指令したアプリケーションのアプリケーション識別子、指令時刻を組として保持する操作履歴保持手段と、アプリケーションが前記端末操作ＡＰＩを利用すると前記端末操作ＡＰＩより通知され、ＡＰＩの種類、命令種別、指令したアプリケーションのアプリケーション識別子、指令時刻を組として前記操作履歴保持手段に登録する操作履歴登録手段と、前記操作履歴保持手段が保持する操作履歴をアプリケーションに対して提供する操作履歴取得手段と、前記操作履歴取得手段を利用して操作履歴を取得する権利を持つアプリケーションのアプリケーション識別子を記載する操作履歴取得許可アプリ保持手段を備え、前記操作履歴取得手段がアプリケーションによって利用された際、当該アプリケーションのアプリケーション識別子が前記操作履歴取得許可アプリ保持手段に記載されていれば当該アプリケーションに対して操作履歴を提供し、当該アプリケーションのアプリケーション識別子が前記操作履歴取得許可アプリ保持手段に記載されていなければ当該アプリケーションに対してエラーを通知することで、端末操作ＡＰＩ呼出しによって行われた操作履歴を取得可能となる。
【００２４】
さらに、前記操作履歴取得許可アプリ保持手段にアプリケーションを登録する操作履歴取得許可アプリ登録手段と、前記操作履歴取得許可アプリ保持手段からアプリケーションを登録削除する操作履歴取得許可アプリ登録削除手段を備えることで操作履歴を取得できるアプリケーションの登録・登録削除が可能となる。
【００２５】
さらに、前記操作履歴取得手段がアプリケーション識別子を検索条件として受け取ると、当該アプリケーション識別子が特定するアプリケーションが指令した操作履歴のみを前記操作履歴保持手段より検索して提供することで、特定のアプリケーションが行った操作の履歴を選択的に取得可能となる。
【００２６】
さらに、前記操作履歴取得手段が開始時刻及び終了時刻を検索条件として受け取ると、当該開始時刻及び当該終了時刻の間に行われた操作の履歴のみを前記操作履歴保持手段より検索して提供することで、特定の時間帯に行われた操作の履歴を選択的に取得可能となる。
【００２７】
さらに、前記操作履歴取得手段が端末操作ＡＰＩの種類を検索条件として受け取ると、当該端末操作ＡＰＩを通して行われた操作履歴のみを前記操作履歴保持手段より検索して提供することで、特定の種別の端末操作ＡＰＩに関する操作履歴を選択的に取得可能となる。
【００２８】
さらに、前記操作履歴保持手段が保持する操作履歴の最大数を保持する操作履歴最大数保持手段と、前記操作履歴最大数保持手段に操作履歴の最大数を設定するサービス選択履歴最大数登録手段を備え、前記操作選択登録手段は、前記操作履歴保持手段に操作履歴を登録する前に「前記操作履歴保持手段が保持する操作履歴の数」と「前記操作履歴最大数保持手段が保持する最大数」を比較し、等しい場合は操作履歴を登録する前に前記操作履歴保持手段が保持する操作履歴のうち最も古いものを削除することで、操作履歴の最大数を設定可能となる。
【００２９】
さらに、前記操作履歴保持手段が保持する操作履歴を削除する操作履歴削除手段を備えることで、操作履歴を削除可能となる。
【００３０】
さらに、前記操作履歴削除手段がアプリケーション識別子を受け取ると、当該アプリケーション識別子が特定するアプリケーションが指令した操作履歴のみを前記操作履歴保持手段より検索して削除することで、特定アプリケーションが行った操作履歴を選択的に削除可能となる。
【００３１】
さらに、前記操作履歴削除手段が開始時刻及び終了時刻を受け取ると、当該開始時刻と当該終了時刻の間に行われた操作履歴のみを前記操作履歴保持手段より検索して削除することで、特定時間帯に行われた操作の履歴を選択的に削除可能となる。
【００３２】
さらに、前記操作履歴削除手段が端末操作ＡＰＩの種類を受け取ると、当該端末操作ＡＰＩを通して行われた操作履歴のみを前記操作履歴保持手段より検索して削除することで、特定の端末操作ＡＰＩを通して行われた操作履歴のみ選択的に削除可能となる。
【００３３】
さらに、前記操作履歴保持手段が操作履歴を保持する期間を保持する操作履歴保持期間保持手段と、前記操作履歴保持期間保持手段に保持期間を登録する操作履歴保持期間登録手段と、前記操作履歴保持期間保持手段が保持期間を経過した操作履歴を前記操作履歴保持手段から削除する操作履歴保持期間経過エントリ削除手段を備えることで、一定の保持期間を経過した操作履歴を自動的に削除することが可能となる。
【００３４】
さらに、前記端末操作ＡＰＩに対して、「端末操作を行っても前記操作履歴登録手段に対して通知を行わない」ように設定する操作履歴取得停止手段と、前記端末操作ＡＰＩに対して、「端末操作を行ったら前記操作履歴登録手段に対して通知を行う」ように設定する捜査履歴取得開始手段を備えることで、操作履歴の取得の開始・停止を制御可能となる。
【００３５】
入力信号に含まれアプリケーション識別子によって特定されるアプリケーションをダウンロードして実行する情報処理装置であって、電源のｏｎ／ｏｆｆを切り替える電源ボタンと、電源のｏｎ／ｏｆｆが切り替え操作及びその時刻を保持する電源履歴保持手段と、前記電源履歴保持手段が保持する電源履歴をアプリケーションに対して提供する電源履歴取得手段と、前記電源履歴取得手段を利用して電源履歴を取得する権利を持つアプリケーションのアプリケーション識別子を記載する電源履歴取得許可アプリ保持手段を備え、前記電源履歴取得手段がアプリケーションによって利用された際、当該アプリケーションのアプリケーション識別子が前記電源履歴取得許可アプリ保持手段に記載されていれば当該アプリケーションに対して電源履歴を提供し、当該アプリケーションのアプリケーション識別子が前記電源履歴取得許可アプリ保持手段に記載されていなければ当該アプリケーションに対してエラーを通知することで、電源履歴を取得可能となる。
【発明の効果】
【００３６】
本発明では、各ダウンロードアプリケーションではなく、放送受信端末自身が過去の操作履歴を統一的に記録することで、各ダウンロードアプリケーションであっても、ユーザの全操作情報を取得できるようにした。
【００３７】
さらに、予め許可されたダウンロードアプリケーションのみがユーザ操作データベースにアクセス可能とする機構を導入することで、信頼できるアプリケーションのみがデータベースを参照できるようにした。
【発明を実施するための最良の形態】
【００３８】
（実施の形態１）
以下に、本発明の第１の実施形態に係る装置および方法を、図面を参照しながら説明する。本発明は、任意の媒体を用いて入力される信号の再生を対象としたものであるが、本実施例ではケーブルテレビ放送システムでの実施の形態を例にとって説明する。ケーブルテレビ放送システムでは、本発明の放送再生装置は一般的に端末装置と呼ばれる。
【００３９】
図１は、放送システムを構成する装置の関係を表したブロック図であり、放送局側システム１０１および三個の端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３で構成される。放送局側システムと各端末装置間の結合１２１は、ケーブルシステムでは同軸ケーブルや光ファイバでの有線結合である。図１では、１つの放送局側システムに対して三つの端末装置が結合されているが、端末装置の数は任意である。
【００４０】
放送局側システム１０１は、複数の端末装置に対して映像・音声・データ放送用データ等の情報を放送信号に含めて送信する。放送信号は放送システムの運用既定や、放送システムが運用される国・地域の法律により定められた周波数帯域内の周波数を利用して伝送される。
【００４１】
周波数帯域には様々な利用形態がある。図２のように周波数帯域によって用途が異なることもあれば、図３のように、端末装置によって周波数帯域が限定されることもある。本発明は周波数帯域の利用方法に関係なく適用可能である。
【００４２】
図４は、周波数帯使用の一例である。１５０〜１５６ＭＨｚと１５６〜１６２ＭＨｚはそれぞれテレビチャンネル１とテレビチャンネル２に割り当てられ、以降、６ＭＨｚ間隔でテレビチャンネルが割り当てられている。３１０ＭＨｚ以降は、１ＭＨｚ単位でラジオチャンネルに割り当てられている。これらの各チャンネルはアナログ放送として使用してもデジタル放送として使用してもよい。デジタル放送の場合は、ＭＰＥＧ２仕様にもとづいたＴＳパケット形式で伝送され、音声や映像に加え、各種データ放送用データやＥＰＧを構成するための番組編成情報も送信することができる。
【００４３】
放送局側システム１０１は、以上に説明した様な周波数帯域を利用して端末装置に適切な放送信号を送信するため、変調機能等をもつ。また、放送局側システム１０１は、これら変調部に関連する様々な機器をもつと考えられる。しかし、本発明は主として端末装置に関わるので、詳細な説明は省略する。
【００４４】
一方、端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３は、放送局側システム１０１からの放送信号を受信し再生するために、復調機能を持つ。詳細な構成は後述する。
【００４５】
放送局側システム１０１は、ＭＰＥＧ２トランスポートストリームを変調して放送信号に含めて伝送する。端末装置は放送信号を受信し、復調してＭＰＥＧ２トランスポートストリームを再現し、その中から必要な情報を抽出して用いる。端末装置に存在するデバイスの機能と接続の構成を説明するため、まずＭＰＥＧ２トランスポートストリームの構成を簡単に述べる。
【００４６】
図５はＴＳパケットの構成を表す図である。ＴＳパケット５００は１８８バイトの長さを持ち、ヘッダ５０１、アダプテーションフィールド５０２、ペイロード５０３からなる。ヘッダ５０１はＴＳパケットの制御情報を保持する。４バイトの長さを持ち、５０４で表される構成をとる。この中に“Ｐａｃｋｅｔ  ＩＤ（以下ＰＩＤ）”と記述されるフィールドを持ち、このＰＩＤの値によって、ＴＳパケットの識別を行う。アダプテーションフィールド５０２は時刻情報等の付加的な情報を保持する。アダプテーションフィールド５０２の存在は必須ではなく、存在しない場合もある。ペイロード５０３は映像・音声やデータ放送用データ等、ＴＳパケットが伝送する情報を保持する。
【００４７】
図６はＭＰＥＧ２トランスポートストリームの模式図である。ＴＳパケットはそのペイロードに映像や音声、データ放送用のデータ等様々な情報を保持する。ＴＳパケット６０１およびＴＳパケット６０３はヘッダにＰＩＤ１００を保持し、ペイロードに映像１に関する情報を保持する。ＴＳパケット６０２およびＴＳパケット６０５はヘッダにＰＩＤ２００を保持し、ペイロードにデータ１に関する情報を保持する。ＴＳパケット６０４はヘッダにＰＩＤ３００を保持し、ペイロードに音声１に関する情報を保持する。このように様々な種類のデータをペイロードに保持したＴＳパケットを混合して一連のシーケンスとして送出することを多重と呼ぶ。ＭＰＥＧ２トランスポートストリーム６００はＴＳパケット６０１〜６０５多重した構成の一例である。
【００４８】
同一ＰＩＤをもつＴＳパケットは同一種類の情報を保持する。そのため、端末装置は多重されたＴＳパケットを受信して、各ＴＳパケットが保持する情報をＰＩＤごとに抽出することで、映像・音声を再現したり、番組編成情報等のデータを再現したりできる。図６においては、ＴＳパケット６０１およびＴＳパケット６０３は共に映像１に関する情報を伝送し、またＴＳパケット６０３およびＴＳパケット６０５は共にデータ１に関する情報を伝送する。
【００４９】
ここで、ペイロードに内包される各種データの形式について説明する。
映像および音声は、ＰＥＳ（Ｐａｃｋｅｔｉｚｅｄ  Ｅｌｅｍｅｎｔａｒｙ  Ｓｔｒｅａｍ）パケットと呼ばれる形式で表現される。ＰＥＳパケットはある時間帯の映像情報または音声情報を含み、放送再生装置は、ＰＥＳパケットを受信することで、そのＰＥＳパケットが内包する映像・音声情報を画面・スピーカに出力することができる。放送局がＰＥＳパケットを途切れなく伝送することで、放送再生装置は、映像・音声を途切れなく再生し続けることが可能となる。
【００５０】
ＰＥＳパケットは、実際に伝送される際、一つのＴＳパケットのペイロードよりも大きいサイズをもつ場合は分割されて複数のＴＳパケットのペイロードに格納される。図７はＰＥＳパケットを伝送する際の分割例を表す。ＰＥＳパケット７０１は一つのＴＳパケット内のペイロードに格納して伝送するには大きいため、ＰＥＳパケット分割Ａ７０２ａ、ＰＥＳパケット分割Ｂ７０２ｂ、ＰＥＳパケット分割Ｃ７０２ｃに分割され、同一ＰＩＤをもつ三つのＴＳパケット７０３〜７０５によって伝送される。実際には、映像や音声は、複数のＰＥＳパケットのペイロードに含まれるデータを結合して得られるエレメンタリストリーム（ＥＳ）として得られる。このエレメンタリストリームは、ＭＰＥＧ２  Ｖｉｄｅｏ規格やＭＰＥＧ１、２  Ａｕｄｉｏ規格で定義されるデジタル化映像、音声の形式になっている。
【００５１】
一方、番組編成情報やデータ放送用のデータ等の情報はＭＰＥＧ２セクションと呼ばれる形式を用いて表現される。ＭＰＥＧ２セクションは実際に伝送される際、一つのＴＳパケットのペイロードよりも大きいサイズをもつ場合は分割されて複数のＴＳパケットのペイロードに格納される。図８はＭＰＥＧ２セクションを伝送する際の分割例を表す。ＭＰＥＧ２セクション８０１は一つのＴＳパケット内のペイロードに格納して伝送するには大きいため、セクション分割Ａ８０２ａ、セクション分割Ｂ８０２ｂ、セクション分割Ｃ８０２ｃに分割され、同一ＰＩＤをもつ三つのＴＳパケット８０３〜８０５によって伝送される。
【００５２】
図９はＭＰＥＧ２セクションの構造を表現する。ＭＰＥＧ２セクション９００はヘッダ９０１およびペイロード９０２から構成される。ヘッダ９０１はＭＰＥＧ２セクションの制御情報を保持する。その構成はヘッダ構成９０３によって表現される。ペイロード９０２はＭＰＥＧ２セクション９００が伝送するデータを保持する。ヘッダ構成９０３に存在するｔａｂｌｅ＿ｉｄはＭＰＥＧ２セクションの種類を表現し、さらにｔａｂｌｅ＿ｉｄ＿ｅｘｔｅｎｓｉｏｎはｔａｂｌｅ＿ｉｄが等しいＭＰＥＧ２セクション同士を区別する際に用いられる拡張識別子である。
【００５３】
ＭＰＥＧ２セクションの使用例として、図１０に番組編成情報を伝送する場合を挙げる。この例では、行１００４に記載されるように、放送信号の復調に必要な情報はヘッダ構成９０３内のｔａｂｌｅ＿ｉｄが６４であるＭＰＥＧ２セクションに記載され、さらにそのＭＰＥＧ２セクションはＰＩＤに１６が付与されたＴＳパケットによって伝送される。
【００５４】
ＭＰＥＧ２セクションの場合、ＰＥＳ形式は存在しない。そのため、ＭＰＥＧ２トランスポートストリームの中の同一ＰＩＤによって識別されるＴＳパケットのペイロードを結合したものをエレメンタリーストリーム（ＥＳ）とする。例えば、図８において、ＭＰＥＧ２セクション８０１を分割して伝送しているＴＳパケット８０３〜８０５はすべてＰＩＤが２００で識別される。これはＭＰＥＧ２セクション８０１を伝送するＥＳである、と言うことができる。
【００５５】
ＭＰＥＧ２トランスポートストリーム内にはさらにプログラムという概念が存在する。プログラムはＥＳの集合として表現され、複数のＥＳをまとめて扱いたい場合に利用される。プログラムを利用すると、映像・音声や、それに付随するデータ放送用データ等を一まとめに扱うことが可能となる。例えば、同時に再生したい映像・音声をまとめて扱う場合、映像ＥＳと、音声ＥＳをプログラムとしてまとめることで、放送再生装置はこれら二つのＥＳを１つの番組として同時に再生すべきであることがわかる。
【００５６】
プログラムを表現するために、ＭＰＥＧ２ではＰＭＴ（Ｐｒｏｇｒａｍ  Ｍａｐ  Ｔａｂｌｅ）およびＰＡＴ（Ｐｒｏｇｒａｍ  Ａｓｓｏｃｉａｔｉｏｎ  Ｔａｂｌｅ）と呼ばれる二つのテーブルが利用される。詳細な説明はＩＳＯ／ＩＥＣ１３８１８−１、“ＭＰＥＧ２  Ｓｙｓｔｅｍｓ”仕様を参照されたい。以下ではＰＭＴおよびＰＡＴに関して簡単に説明する。
【００５７】
ＰＭＴはＭＰＥＧ２トランスポートストリーム中に、プログラムの数だけ含まれるテーブルである。ＰＭＴはＭＰＥＧ２セクションとして構成され、ｔａｂｌｅ＿ｉｄは２である。ＰＭＴにはプログラムの識別に用いられるプログラムナンバーとプログラムの付加情報、さらにプログラムに属するＥＳに関する情報を保持する。ＰＭＴの例を図１１に挙げる。１１００はプログラムナンバーである。プログラムナンバーは同一トランスポートストリーム内でプログラムに一意に割り当てられ、ＰＭＴの識別に用いられる。行１１１１〜１１１５は個々のＥＳに関する情報を表現する。列１１０１はＥＳのタイプであり、“映像”、“音声”、“データ”等が指定される。列１１０２はＥＳを構成するＴＳパケットのＰＩＤである。列１１０３はＥＳに関する付加情報である。例えば、行１１１１に表されるＥＳは、音声ＥＳであり、ＰＩＤが５０１１であるＴＳパケットによって伝送される。
【００５８】
ＰＡＴはＭＰＥＧ２トランスポートストリームに一つだけ存在するテーブルである。ＰＡＴはＭＰＥＧ２セクションとして構成され、ｔａｂｌｅ＿ｉｄは０であり、ＰＩＤが０であるＴＳパケットによって伝送される。ＰＡＴには、ＭＰＥＧ２トランスポートストリームの識別に用いられるｔｒａｎｓｐｏｒｔ＿ｓｔｒｅａｍ＿ｉｄと、ＭＰＥＧ２トランスポートストリーム内に存在するプログラムを表現するすべてのＰＭＴに関する情報を保持する。
【００５９】
ＰＡＴの例を図１２に挙げる。１２００はｔｒａｎｓｐｏｒｔ＿ｓｔｒｅａｍ＿ｉｄである。ｔｒａｎｓｐｏｒｔ＿ｓｔｒｅａｍ＿ｉｄはＭＰＥＧ２トランスポートストリームの識別に用いられる。行１２１１〜１２１３はプログラムに関する情報を表現する。列１２０１はプログラムナンバーである。列１２０２はプログラムに対応するＰＭＴを伝送するＴＳパケットのＰＩＤである。例えば、行１２１１に表されるプログラムのＰＭＴは、プログラムナンバーが１０１であり、対応するＰＭＴはＰＩＤが５０１であるＴＳパケットによって伝送される。
【００６０】
端末装置があるプログラムを再生する場合は、ＰＡＴおよびＰＭＴを用いてプログラムを構成する映像・音声を特定し、それらを再生する。例えば、図１２のＰＡＴおよび図１１のＰＭＴを伝送するＭＰＥＧ２トランスポートストリームに関して、プログラムナンバーが１０１であるプログラムに属する映像・音声の再生を行う場合は以下のような手順をとる。まずＰＩＤが“０”であるＴＳパケットより、ｔａｂｌｅ＿ｉｄが“０”のＭＰＥＧ２セクションとして伝送されるＰＡＴを取得する。ＰＡＴよりプログラムナンバーが“１０１”であるプログラムを探索し、行１２１１を得る。行１２１１より、プログラムナンバーが“１０１”であるプログラムのＰＭＴを伝送するＴＳパケットのＰＩＤ“５０１”を得る。
【００６１】
次いでＰＩＤが“５０１”であるＴＳパケットより、ｔａｂｌｅ＿ｉｄが“２”のＭＰＥＧ２セクションとして伝送されるＰＭＴを取得する。ＰＭＴより、音声のＥＳ情報である行１１１１および映像のＥＳ情報である行１１１２を得る。行１１１１より、音声ＥＳを伝送するＴＳパケットのＰＩＤ“５０１１”を得る。また行１１１２より、映像ＥＳを伝送するＴＳパケットのＰＩＤ“５０１２”を得る。次いでＰＩＤ“５０１１”のＴＳパケットより音声用ＰＥＳパケットを、ＰＩＤ“５０１２”のＴＳパケットより映像用ＰＥＳパケットを取得する。これにより、再生対象となる映像・音声のＥＳパケットを取得することが可能となり、プログラムナンバー１０１を構成する映像と音声を再生することができる。
【００６２】
なお、ＭＰＥＧ２トランスポートストリームは暗号化されている場合がある。これは限定視聴とも呼ばれる仕組みである。例えば、ある映像・音声情報を伝送するＰＥＳパケットに対して暗号化処理を行うことで、その暗号を解読できる特定視聴者のみが視聴できるようになる。暗号を解読して映像や音声を視聴するために、視聴者はデスクランブラと呼ばれるデバイスを用いて暗号解除を行う。例えば、ＯＣＡＰ対応の端末装置は、デスクランブラを内蔵したカード型のアダプタを利用する。ケーブルテレビのオペレータは、視聴者ごとに特定のプログラムを解読できるように設定したアダプタを配布し、視聴者はそのアダプタを端末装置に挿入する。すると、アダプタは、暗号解除鍵等の暗号解除情報や各契約者の契約情報を元に、特定のプログラムに関して暗号を解除する。暗号解除の方式や、暗号解除鍵の入手方法はアダプタ依存であり、本発明の実現には影響しない。
【００６３】
ここまでＭＰＥＧ２仕様に関する簡単な説明を行ったが、ここで、単語の詳細な定義を行う。本発明に関して、「プログラム」という単語が二種類存在する。一つはＭＰＥＧ２仕様に登場する「プログラム」であり、もう一つはＣＰＵが実行するコードの集合という意味での「プログラム」である。前者に関しては、運用規定で用いられる「サービス」という単語と同義であるため、混乱を避けるため、以降、前者を「サービス」と呼び、後者を単に「プログラム」とよぶ。さらに後者に関して、特にＪａｖａ言語で記述された「プログラム」を「Ｊａｖａプログラム」とよぶ。
【００６４】
以上、本発明に関わる、ＭＰＥＧ２仕様にて決定されるいくつかの一般的な情報に関して説明を行った。以降、本実施の形態で用いる放送再生端末に関して詳細に説明する。
【００６５】
図１３は、本実施例の放送再生装置の一般的なハードウェア構成を表すブロック図であり、すなわち図１における端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３の具体的な内部構成である。１３００は放送再生装置であり、チューナ１３０１、ＴＳデコーダ（ＴＳ  Ｄｅｍｕｌｔｉｐｌｅｘｅｒ）１３０２、ＡＶデコーダ１３０３、スピーカ１３０４、ディスプレイ１３０５、ＣＰＵ１３０６、２次記憶部１３０７、１次記憶部１３０８、ＲＯＭ１３０９、入力部１３１０、アダプタ１３１１で構成される。
【００６６】
チューナ１３０１は、ＣＰＵ１３０６が指定する周波数などのチューニング情報に従って、放送局側システム１０１から伝送される変調された放送信号を復調するデバイスである。チューナ１３０１が復調した結果得られるＭＰＥＧ２トランスポートストリームは、暗号解除機能をもつアダプタ１３１１を経て、ＴＳデコーダ１３０２に送信される。
【００６７】
ＴＳデコーダ１３０２は、ＣＰＵ１３０６が指定するＰＩＤ、セクションフィルタ条件等の指定にもとづいてＭＰＥＧ２トランスポートストリームから指定条件に合致するＰＥＳパケットやＭＰＥＧ２セクションを選別する機能をもつデバイスである。放送を受信して再生する場合は、アダプタ１３１１が出力するＭＰＥＧ２トランスポートストリームがＴＳデコーダ１３０２に入力される。
【００６８】
ＴＳデコーダ１３０２が選別した映像及び音声のＰＥＳパケットは、ＡＶデコーダ１３０３に出力される。また、ＴＳデコーダ１３０２が選別したＭＰＥＧ２セクションは、１次記憶部１３０８にＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送され、ＣＰＵ１３０６が実行するプログラムによって利用される。
【００６９】
ＡＶデコーダ１３０３はエンコードされた映像ＥＳおよび音声ＥＳをデコードする機能をもつデバイスである。ＡＶデコーダはＴＳデコーダから転送される音声および映像情報を伝送するＰＥＳパケットからＥＳを取り出してデコードする。ＡＶデコーダ１３０３がデコードして得られたａｕｄｉｏ信号およびｖｉｄｅｏ信号は、スピーカ１３０４、ディスプレイ１３０５に出力される。
【００７０】
スピーカ１３０４は、ＡＶデコーダ１３０３から出力された音声を再生する。
ディスプレイ１３０５は、ＡＶデコーダ１３０３から出力された映像を再生する。
【００７１】
ＣＰＵ１３０６は放送再生装置上で動作するプログラムを実行する。ＣＰＵ１３０６は、ＲＯＭ１３０９に内臓されるプログラムを実行する。あるいは、放送信号やネットワークよりダウンロードされ１次記憶部１３０８に保持されているプログラムも実行する。あるいは、放送信号やネットワークよりダウンロードされ２次記憶部１３０７に保存されているプログラムも実行する。
【００７２】
そして実行するプログラムの指示に従い、チューナ１３０１、ＴＳデコーダ１３０２、ＡＶデコーダ１３０３、スピーカ１３０４、ディスプレイ１３０５、２次記憶部１３０７、１次記憶部１３０８、ＲＯＭ１３０９、入力部１３１０を制御する。また、ＣＰＵ１３０６は端末装置１３００内に存在するデバイスだけでなく、アダプタ１３１１内のデバイスと通信し、アダプタ１３１１を制御することが可能である。
【００７３】
２次記憶部１３０７は機器の電源が遮断されても記憶が消去されない記憶装置である。例えばＦＬＡＳＨ−ＲＯＭ等の不揮発性メモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＣＤ−ＲやＤＶＤ−Ｒ等の書き込み可能のメディア等、端末装置１３００の電源断の際にも情報が消去されない機器によって構成され、ＣＰＵ１３０６の指示により情報の保存を行う。
【００７４】
１次記憶部１３０８は、ＣＰＵ１３０６やＤＭＡ転送可能なデバイスの指示に従って情報を一時的に保存する機能をもつデバイスであり、ＲＡＭ等によって構成される。
【００７５】
ＲＯＭ１３０９は、書き換え不可能なメモリーデバイスであり、具体的にはＲＯＭやＣＤ−ＲＯＭ、ＤＶＤ等で構成される。ＲＯＭ１３０９には、ＣＰＵ１３０６が実行するプログラムやその実行に必要なデータ等が格納されている。
【００７６】
入力部１３１０は、具体的には、フロントパネルやリモコン受信機で構成され、ユーザからの入力を受け付ける。図１４は、フロントパネルで入力部１３１０を構成した場合の一例である。フロントパネル１４００は七つのボタン、上カーソルボタン１４０１、下カーソルボタン１４０２、左カーソルボタン１４０３、右カーソルボタン１４０４、ＯＫボタン１４０５、取消ボタン１４０６、ＥＰＧボタン１４０７、モード切換ボタン１４０８、電源ボタン１４０９を備えている。ユーザがボタンを押下すると、押下されたボタンの識別子が、ＣＰＵ１３０６に通知される。
【００７７】
アダプタ１３１１は、放送周波数帯で伝送されるＭＰＥＧ２トランスポートストリームにかけられた暗号を解除する装置で、１つ以上のデスクランブラを搭載する。アダプタ１３１１にはチューナ１３０１が出力するＭＰＥＧ２トランスポートストリームが入力され、ＣＰＵ１３０６が指定したＰＩＤをもつＴＳパケットに対して暗号解除を行う。アダプタ１３１１は、暗号を解除したＭＰＥＧ２トランスポートストリームをＴＳデコーダ１３０２に出力する。アダプタ１３１１の具体例としては、米国ケーブルシステムで利用されるＣａｂｌｅＣＡＲＤ、旧名ＰＯＤ（Ｐｏｉｎｔ  Ｏｆ  Ｄｅｐｌｏｙｍｅｎｔ）や、欧州放送システムで利用されるＤＶＢ−ＣＩが挙げられる。
【００７８】
ここで、放送波に含まれるサービスを再生する動作について述べる。
図１５に、サービスの記録時における、各デバイスの物理的な接続順序と処理内容、入出力のデータ形式を表現する概念図を示す。１５００は端末装置であり、チューナ１３０１、アダプタ１３１１、デスクランブラ１５０１、ＴＳデコーダ１３０２、ＰＩＤフィルタ１５０２、セクションフィルタ１５０３、ＡＶデコーダ１３０３、１次記憶部１３０８をもつ。図１５の構成要素のうち、図１３の構成要素と同一符号を持つものは、それらと同等の機能をもつため、説明を省略する。
【００７９】
まずＣＰＵ１３０６が指定したチューニング指示に従って、チューナ１３０１が放送波をチューニングする。チューナ１３０１は、放送波を復調し、アダプタ１３１１にＭＰＥＧ２トランスポートストリームを入力する。
【００８０】
アダプタ１３１１内にあるデスクランブラ１５０１は、視聴者ごとの限定解除情報に基づいて、ＭＰＥＧ２トランスポートストリームの暗号解除を行う。暗号解除されたＭＰＥＧ２トランスポートストリームは、ＴＳデコーダに入力される。
【００８１】
ＴＳデコーダ１３０２内にはＭＰＥＧ２トランスポートストリームに対して処理を行う２種類のデバイス、ＰＩＤフィルタ１５０２、セクションフィルタ１５０３が存在する。
【００８２】
ＰＩＤフィルタ１５０２は、入力されたＭＰＥＧ２トランスポートストリームから、ＣＰＵ１３０６が指定したＰＩＤをもつＴＳパケットを抽出し、さらにそのペイロードに存在するＰＥＳパケットやＭＰＥＧ２セクションを抽出する。例えば、ＣＰＵ１３０６がＰＩＤ＝１００のＴＳパケットを抽出するＰＩＤフィルタリングを指示した場に図６のＭＰＥＧ２トランスポートストリームが入力されたとすると、パケット６０１及び６０３が抽出されて更に連結され、映像１のＰＥＳパケットが再構成される。あるいは、ＣＰＵ１３０６がＰＩＤ＝２００のＴＳパケットを抽出するＰＩＤフィルタリングを指示した場に図６のＭＰＥＧ２トランスポートストリームが入力されたとすると、パケット６０２及び６０５が抽出されて更に連結され、データ１のＭＰＥＧセクションが再構成される。
【００８３】
セクションフィルタ１５０３は、入力されたＭＰＥＧ２セクションの中から、ＣＰＵ１３０６が指定するセクションフィルタ条件に合致するＭＰＥＧ２セクションを抽出し、１次記憶部１３０８にＤＭＡ転送する。例えば、ＣＰＵ１３０６はＰＩＤ＝２００のＴＳパケットを抽出するＰＩＤフィルタリングとｔａｂｌｅ＿ｉｄが６４であるセクションを抽出するセクションフィルタリングをセクションフィルタ１５０３に対して指定したとする。先に述べたように、データ１のＭＰＥＧ２セクションが再構成された後、セクションフィルタ１５０３はそのＭＰＥＧ２セクションの中からｔａｂｌｅ＿ｉｄが６４であるセクションのみを抽出し、１次記憶部１３０８にＤＭＡ転送する。
【００８４】
１次記憶部１３０８に入力されたＭＰＥＧ２セクションは、多重器１３１３に入力される。
【００８５】
ＴＳデコーダ１３０２によって抽出された映像ＰＥＳパケットと音声ＰＥＳパケットは、ＡＶデコーダ１３０３に入力される。
【００８６】
ＡＶデコーダ１３０３に入力された映像ＰＥＳと音声ＰＥＳは、デコードされてａｕｄｉｏ信号およびｖｉｄｅｏ信号が出力される。その後、ａｕｄｉｏ信号およびｖｉｄｅｏ信号はディスプレイ１３０５およびスピーカ１３０４に入力され、映像および音声が再生される。
【００８７】
１次記憶部１３０８に入力されたＭＰＥＧ２セクションは、適宜ＣＰＵ１３０６に入力される。
【００８８】
ここまでは、本発明に関するハードウェアの構成例に関して述べたが、以降、本発明に係るＪａｖａプログラムによるサービスの選択履歴制御に関して説明する。
【００８９】
図１６は、サービスの再生に必要とされるプログラムの構成図であり、ＲＯＭ１３０９に記憶されているソフトウエアである。
【００９０】
プログラム１６００は、サブプログラムであるＯＳ１６０１、ＥＰＧ１６０２、ＪａｖａＶＭ１６０３、サービスマネージャ１６０４、Ｊａｖａライブラリ１６０５、サービス履歴マネージャ１６０６で構成される。
【００９１】
ＯＳ１６０１は、オペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）であり、Ｌｉｎｕｘ、Ｗｉｎｄｏｗｓ（登録商標）等が一例である。ＯＳ１６０１は、他のサブプログラム、例えばＥＰＧ１６０２とＪａｖａＶＭ１６０３を実行するためのカーネル１６０１ａと、サブプログラムが端末装置１３００の構成要素を制御するために利用するライブラリ１６０１ｂで構成される。カーネル１６０１ａは公知技術であり、詳細な説明は省略する。
【００９２】
ライブラリ１６０１ｂは、例えばチューナ１３０１を制御するチューニング機能を提供する。ライブラリ１６０１ｂは、他のサブプログラムから周波数を含むチューニング情報を受け取り、それをチューナ１３０１に引き渡す。チューナ１３０１は与えられたチューニング情報にもとづき復調処理を行い、復調したＭＰＥＧ２トランスポートストリームをＴＳデコーダ１３０２に引き渡すことができる。この結果、他のサブプログラムはライブラリ１６０１ｃを通してチューナ１３０１を制御することができる。
【００９３】
また、ライブラリ１６０１ｂは、チャンネルを一意に識別するためのチャンネル情報を提供する。チャンネル情報の一例を図１７に示す。チャンネル情報は放送周波数帯を利用して送信され、放送端末によって受信されて解析し、ライブラリ１６０１ｂがアクセス可能な一時記憶部に格納される。チャンネル情報の形式は公知の情報であり、その解析方法は本発明と関連性が薄いため詳述しない。
【００９４】
列１７０１は、チャンネル識別子で、例えば、ＳＣＴＥ  ６５  Ｓｅｒｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｄｅｌｉｖｅｒｅｄ  Ｏｕｔ−Ｏｆ−Ｂａｎｄ  Ｆｏｒ  Ｄｉｇｉｔａｌ Ｃａｂｌｅ Ｔｅｌｅｖｉｓｉｏｎで定義されるｓｏｕｒｃｅ＿ＩＤが相当する。
【００９５】
列１７０２は、チャンネル名であり、同ＳＣＴＥ  ６５規格ではｓｏｕｒｃｅ＿ｎａｍｅなどに相当する。列１７０３はチューニング情報であり、周波数や転送レート、変調方式といったチューナ１３０１に与える情報である。列１７０４はＰＭＴを指定するためのプログラムナンバーである。例えば、行１７１１はチャンネル識別子が「１」、チャンネル名が「チャンネル１」、チューニング情報に周波数「１５０ＭＨｚ」、プログラムナンバーが「１０１」であるサービス情報の組となっている。
【００９６】
ＪａｖａＶＭ１６０３は、Ｊａｖａ（登録商標）言語で記述された１以上のプログラムを逐次解析し実行するＪａｖａバーチャルマシンである。Ｊａｖａ言語で記述されたプログラムはバイトコードと呼ばれる、ハードウェアに依存しない中間コードにコンパイルされる。Ｊａｖａバーチャルマシンは、このバイトコードを実行するインタープリタである。ＪａｖａＶＭ１６０３は、Ｊａｖａ言語で記述されたＪａｖａライブラリ１６０５を実行する。Ｊａｖａ言語やＪａｖａＶＭの詳細は、書籍「Ｊａｖａ  Ｌａｎｇｕａｇｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４５１−１）」や「Ｊａｖａ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４５１―Ｘ）」等で参照可能である。
【００９７】
また、ＪＮＩ（Ｊａｖａ  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ）を通して、Ｊａｖａ言語で記述されていない他のサブプログラムを呼び出したり、または、呼び出されたりすることが可能である。ＪＮＩに関しては、書籍「Ｊａｖａ  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ」等を参照のこと。また、マルチスレッド管理により、複数のプログラムを並列的に動作させることが可能である。
【００９８】
Ｊａｖａライブラリ１６０５は、Ｊａｖａプログラムが放送再生装置の機能を制御するために呼び出すＪａｖａ言語で記述されたライブラリである。ただし、必要に応じて、ＯＳ１６０１のライブラリ１６０１ｂなど非Ｊａｖａ言語で記述されたサブプログラムを利用することもある。Ｊａｖａプログラムは、Ｊａｖａライブラリ１６０５が持つＪａｖａ  ＡＰＩ（アプリケーションプログラミングインタフェース）を呼び出すことで、Ｊａｖａライブラリ１６０５が提供する機能を利用できる。
【００９９】
Ｔｕｎｅｒ１６０５ｃは、放送再生端末のチューナ１３０１を制御するためのＪａｖａライブラリである。ＪａｖａプログラムがＴｕｎｅｒ１６０５ｃにチューニング情報を渡すと、Ｔｕｎｅｒ１６０５ｃはそれを用いてライブラリ１６０１ｂのチューナ機能を呼び出し、結果、放送再生端末のチューナ１３０１の動作を制御できる。
【０１００】
ＳＦ１６０５ｅは、放送再生端末のＰＩＤフィルタ１５０２及びセクションフィルタ１５０３機能を制御するためのＪａｖａライブラリである。ＪａｖａプログラムがＳＦ１６０５ｅにＰＩＤやｔａｂｌｅ＿ｉｄなどのフィルタ条件を渡すと、ＳＦ１６０５ｅはその条件を元にライブラリ１６０１ｂの機能などを用いてＰＩＤフィルタ１５０２及びセクションフィルタ１５０３を制御し、所望のフィルタ条件に叶うＭＰＥＧ２セクションを取得して、フィルタ条件を設定したＪａｖａプログラムに渡す。
【０１０１】
ＤＳＭ−ＣＣ１６０５ｄは、ＤＳＭ−ＣＣオブジェクトカルーセルのファイルシステムにアクセスするためのＪａｖａライブラリである。ＤＳＭ−ＣＣオブジェクトカルーセルは、ＳＦ１６０５ｅによって取得されるＭＰＥＧ２セクションが内包している。ＤＳＭ−ＣＣは、ＩＳＯ／ＩＥＣ１３８１８−６規格で定義されており、ＭＰＥＧ２セクションを利用して任意のファイルを伝送するための仕組みである。これを利用することで、放送局から端末にファイルを伝送することができる。ＤＳＭ−ＣＣの詳細な実現方法は本発明とは関係ないため、説明を省略する。
【０１０２】
サービスマネージャ管理１６０５ｆは、サービスマネージャ１６０４に対し、サービスの再生を依頼するためのＪａｖａライブラリである。ＪａｖａＶＭ１６０３によって実行されるＪａｖａプログラムはサービスマネージャ管理１６０５ｆを利用することで、サービスの再生をサービスマネージャ１６０４に依頼する。
【０１０３】
サービス履歴取得ライブラリ１６０５ｇは、サービスマネージャ１６０４がこれまでに変更したサービスの履歴を取得するためのＪａｖａライブラリである。ＪａｖａＶＭ１６０３によって実行されるＪａｖａプログラムは、サービス履歴取得ライブラリ１６０５ｇを利用することで、過去のサービス変更履歴を取得することができ、履歴情報の解析結果を用いたユーザ特化ＧＵＩなどの先進的な振る舞いを実現できる。
【０１０４】
サービス履歴取得ライブラリ１６０５ｇは、Ｊａｖａプログラムより利用されると、そのＪａｖａプログラムのＪａｖａプログラム識別子を、後述するサービス履歴マネージャ１６０６のサービス履歴取得部１６０６ｄへ引き渡す。サービス履歴取得部１６０６ｄよりサービス履歴が取得できればそれをＪａｖａプログラムへ返し、サービス履歴が取得できずにエラーが返れば、Ｊａｖａプログラムへエラーを通知する。
【０１０５】
ＡＭ１６０５ｂは、サービスに含まれるＪａｖａアプリケーションの実行や終了を管理する機能を提供するアプリケーションマネージャである。ＡＭ１６０５ｂは指定されたＭＰＥＧ２トランスポートストリームの指定されたチャンネルに多重されたＪａｖａプログラムを抽出し、その抽出したＪａｖａプログラムを別途多重された同期情報に従って実行したり、あるいは終了させたりする。
【０１０６】
ＪａｖａプログラムのＪａｖａクラスファイルは、前述のＤＳＭ―ＣＣ方式でＭＰＥＧ２トランスポートストリームに多重されている。また、Ｊａｖａプログラムの同期情報はＡＩＴと呼ばれる形式で、ＭＰＥＧ２トランスポートストリームに多重されている。ＡＩＴは、ＤＶＢ−ＭＨＰ規格（ＥＴＳＩ  ＴＳ  １０１  ８１２  ＤＶＢ−ＭＨＰ仕様Ｖ１．０．２）の１０章に定義されている、Ａｐｐｌｉｃａｔｉｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔａｂｌｅの略であり、ｔａｂｌｅ＿ｉｄが「０ｘ７４」であるＭＰＥＧ２セクションである。
【０１０７】
ＡＭ１６０５ｂの入力は、ＭＰＥＧ２トランスポートストリームとチャンネル識別子である。まず、ＡＭ１６０５ｂは、指定されたチャンネル識別子をキーとしてライブラリ１６０１ｂのチャンネル情報を検索し、プログラムナンバーを得る。次にＳＦ１６０５ｅなどを利用して、ＭＰＥＧ２トランスポートストリームからＰＡＴを取得する。さらにＰＭＴの情報から、先ほど得られたプログラムナンバーに対応するＰＭＴのＰＩＤが得られる。再度ＳＦ１６０５ｅを利用して、実際のＰＭＴを取得する。取得されたＰＭＴは図１１の形式をしており、ストリーム種別が「データ」で補足情報として「ＡＩＴ」をもつエレメンタリーストリームのＰＩＤが書かれている。更にＳＦ１６０５ｅに、フィルタリング条件として今得られたＡＩＴのＰＩＤとｔａｂｌｅ＿ｉｄ「０ｘ７４」を与えると、ＡＩＴの実体が得られる。
【０１０８】
図１８は、ＡＩＴの情報の一例を模式的に表した表である。ＡＩＴバージョン１８００は、そのＡＩＴのバージョンを表現する。ＡＩＴバージョンが大きいほど、そのＡＩＴはより新しいＡＩＴである。等しいＡＩＴバージョンをもつＡＩＴは繰り返し受信されるが、ＡＭ１６０５ｂはすでに解析したＡＩＴと等しいＡＩＴバージョンをもつＡＩＴは解析せず、すでに解析したＡＩＴよりも新しいＡＩＴのみを解析して、それに対応した処理をする。列１８０１はＪａｖａプログラムの識別子である。
【０１０９】
列１８０２はＪａｖａプログラムの制御情報である。制御情報には「ａｕｔｏｓｔａｒｔ」「ｐｒｅｓｅｎｔ」「ｋｉｌｌ」等があり、「ａｕｔｏｓｔａｒｔ」は即時に端末装置１３００がこのＪａｖａプログラムを自動的に実行することを意味し、「ｐｒｅｓｅｎｔ」は自動実行しないことを意味し、「ｋｉｌｌ」はＪａｖａプログラムを停止することを意味する。列１８０３は、ＤＳＭ―ＣＣ方式でＪａｖａプログラムを含んでいるＰＩＤを抽出するためのＤＳＭ―ＣＣ識別子である。列１８０４はＪａｖａプログラムのプログラム名である。
【０１１０】
行１８１１、行１８１２、行１８１３、行１８１４は、Ｊａｖａプログラムの情報の組である。行１８１１で定義されるＪａｖａプログラムは、Ｊａｖａプログラムの識別子「３０１」、制御情報「ａｕｔｏｓｔａｒｔ」、ＤＳＭＣＣ識別子「１」、プログラム名「ａ／ＴｏｐＸｌｅｔ」の組である。同様に、行１８１２で定義されるＪａｖａプログラムは、Ｊａｖａプログラムの識別子「３０２」、制御情報「ｐｒｅｓｅｎｔ」、ＤＳＭＣＣ識別子「１」、プログラム名「ｂ／ＧａｍｅＸｌｅｔ」の組である。
【０１１１】
ここで、行１８１１、行１８１２、行１８１４で定義される３つのＪａｖａプログラムは同一のＤＳＭＣＣ識別子をもつが、これは１つのＤＳＭＣＣ方式でエンコードされたファイルシステム内に３つのＪａｖａプログラムが含まれていることを表す。ここでは、Ｊａｖａプログラムに対して４つの情報しか規定しないが、実際にはより多くの情報が定義される。詳細はＤＶＢ−ＭＨＰ規格を参照されたい。
【０１１２】
ＡＭ１６０５ｂは、ＡＩＴの中から「ａｕｔｏｓｔａｒｔ」のＪａｖａプログラムを見つけ出し、対応するＤＳＭＣＣ識別子およびＪａｖａプログラム名を抽出する。図１８を参照して、ＡＭ１６０５ｂは行１８１１のＪａｖａプログラムを抽出し、ＤＳＭＣＣ識別子「１」およびＪａｖａプログラム名「ａ／ＴｏｐＸｌｅｔ」を取得する。次いでＡＭ１６０５ｂは、ＡＩＴから取得したＤＳＭＣＣ識別子を用いて、ＪａｖａプログラムをＤＳＭＣＣ方式で格納しているＴＳパケットのＰＩＤをＰＭＴから取得する。具体的には、ＰＭＴの中でストリーム種別が「データ」で、補足情報のＤＳＭＣＣ識別子が合致するエレメンタリーストリームのＰＩＤを取得する。ここで、ＤＳＭＣＣ識別子が「１」であり、ＰＭＴが図１１とすると、行１１１４のエレメンタリーストリームが合致し、ＰＩＤ「５０１４」を取り出す。
【０１１３】
ＡＭ１６０５ｂは、ＳＦ１６０５ｅに、ＤＳＭＣＣ方式でデータが埋めこまれたＭＰＥＧ２セクションを伝送するＴＳパケットのＰＩＤおよびセクションフィルタ条件を指定する。ここでは、ＰＩＤ「５０１４」を与える。この結果、ＡＭ１６０５ｂは、必要なＤＳＭＣＣ用ＭＰＥＧ２セクションを収集することができる。ＡＭ１６０５ｂは、収集したＭＰＥＧ２セクションから、ＤＳＭＣＣ方式に従ってファイルシステムを復元し、１次記憶部１３０８に保存する。ＭＰＥＧ２トランスポートストリーム中のＴＳパケットからファイルシステム等のデータを取り出し１次記憶部１３０８、２次記憶部１３０７等の記憶手段に保存することを以降、ダウンロードとよぶ。
【０１１４】
図１９は、ダウンロードしたファイルシステムの一例である。図中、丸はディレクトリを四角はファイルを表し、１９０１はルートディレクトリ、１９０２はディレクトリ「ａ」、１９０３はディレクトリ「ｂ」、１９０４はファイル「ＴｏｐＸｌｅｔ．ｃｌａｓｓ」、１９０５はファイル「ＧａｍｅＸｌｅｔ．ｃｌａｓｓ」、１９０６はディレクトリ「ｚ」、１９０７はファイル「ＭｕｓｉｃＸｌｅｔ．ｃｌａｓｓ」、１９０８はファイル「ＳｔｕｄｙＸｌｅｔ．ｃｌａｓｓ」である。
【０１１５】
次いでＡＭ１６０５ｂは、１次記憶部１３０８にダウンロードしたファイルシステム中から実行するＪａｖａプログラムをＪａｖａＶＭ１６０３に引き渡す。ここで、実行するＪａｖａプログラム名が「ａ／ＴｏｐＸｌｅｔ」とすると、Ｊａｖａプログラム名の最後に「．ｃｌａｓｓ」を付加したファイル「ａ／ＴｏｐＸｌｅｔ．ｃｌａｓｓ」が実行すべきファイルとなる。「／」はディレクトリやファイル名の区切りであり、図１９を参照して、ファイル１９０４が実行すべきＪａｖａプログラムである。次いでＡＭ１６０５ｂは、ファイル１９０４をＪａｖａＶＭ１６０３に引き渡すと、そのファイルはＪａｖａプログラムとしてＪａｖａＶＭ上で実行される。
【０１１６】
ＡＭ１６０５ｂは、新しいＡＩＴバージョンを持つＡＩＴが来る度にそのＡＩＴを解析してＪａｖａプログラムの実行状態を変更させる。ここで、制御情報に「ｋｉｌｌ」が指定されていた場合は、Ｊａｖａプログラムを終了させる。
【０１１７】
ＪＭＦ１６０５ａは、サービスに含まれる映像と音声の再生制御を担う。具体的には、指定されたＭＰＥＧ２トランスポートストリームの指定されたチャンネルに多重された映像ＥＳと音声ＥＳをＡＶデコーダに入力して再生させる。受信した放送波から直接サービスを再生する場合は、アダプタ１３１１から出力されるＭＰＥＧ２トランスポートストリームを再生するように指定される。一方、２次記憶部１３０７に一旦記録されたサービスを再生する場合は、２次記憶部１３０７内の記録領域１５０４から出力されるＭＰＥＧ２トランスポートストリームを再生するように指定される。
【０１１８】
まず、ＪＭＦ１６０５ａは、指定されたチャンネル識別子をキーとしてライブラリ１６０１ｂのチャンネル情報を検索し、プログラムナンバーを得る。次にＳＦ１６０５ｅなどを利用して、ＭＰＥＧ２トランスポートストリームからＰＡＴを取得する。さらにＰＭＴの情報から、先ほど得られたプログラムナンバーに対応するＰＭＴのＰＩＤが得られる。再度ＳＦ１６０５ｅを利用して、実際のＰＭＴを取得する。取得されたＰＭＴは図１１の形式をしており、ストリーム種別が「映像」及び「音声」であるエレメンタリーストリームのＰＩＤが書かれている。
【０１１９】
ＪＭＦ１６０５ａが、それらのＰＩＤをＴＳデコーダ１３０２のＰＩＤフィルタ１５０２に設定すると、図１５に示されたごとく、該当ＰＩＤで多重されている映像ＥＳと音声ＥＳがＡＶデコーダ１３０３経由で再生される。
【０１２０】
サービス履歴マネージャ１６０６は、サービスマネージャが変更したサービスの履歴を管理する。図２０にサービス履歴マネージャの内部構成図を示す。
【０１２１】
サービス履歴管理表１６０６ａはサービス履歴を保持する。図２１にサービス履歴管理表１６０６ａの記録方式を図示する。列２１０１はサービスマネージャが再生開始したサービスを識別するチャンネル識別子を保持し、列２１０２は再生開始時刻を保持する。行２１１１及び行２１１２はそのエントリを表現する。サービス履歴管理表は２次記憶１３０７上に管理される。
【０１２２】
履歴取得可能アプリ管理表１６０６ｂはサービス履歴を取得可能なアプリケーションのＪａｖａプログラム識別子を保持する。図２２は履歴取得可能アプリ管理表１６０６ｂの記録方式を図示する。列２２０１は履歴取得が可能なアプリのＪａｖａプログラム識別子を保持する。行２２１１及び行２２１２はそのエントリを表現する。本実施の形態では、履歴取得可能アプリ管理表１６０６ｂは、Ｊａｖａプログラムに付与された権利（パーミッション）情報から構成される。これは端末１３００の起動時に生成され２次記憶部１３０７や１次記憶部１３０８に記録されることもあれば、読み出し時に動的に生成される場合もある。
【０１２３】
サービス履歴登録部１６０６ｃは、サービス履歴管理表１６０６ａを更新する。図２３にサービス履歴登録部１６０６ｃの動作シーケンスを図示する。まず手続きＳ２３０１にて、チャンネル識別子を受け取り、手続きＳ２３０２にて、受け取ったチャンネル識別子と現在時刻を組にして、サービス履歴管理表にエントリを追加する。
【０１２４】
サービス履歴取得部１６０６ｄは、サービス履歴管理表１６０６ａが管理するサービス履歴を取得する。図２４にサービス履歴取得部１６０６ｄの動作シーケンスを図示する。手続きＳ２４０１でＪａｖａプログラム識別子を受け取り、手続きＳ２４０２でそのＪａｖａプログラム識別子が履歴取得可能アプリ管理表１６０６ｂに記載されているかどうか調べる。記載されていれば、手続きＳ２４０３に進み、サービス履歴管理表１６０６ａを参照してサービス履歴を取得して返す。
【０１２５】
ここでサービス履歴は、記載されていなければ、手続きＳ２４０４に進んで、エラーを返して終了する。なお、サービス履歴取得部１６０６ｄが返すサービス履歴は、サービス履歴管理表１６０６ａが管理する情報で、具体的には各エントリが保持する情報全てを指すが、このうちの一部を返す、という形態であってもよい。さらに、各エントリが保持するサービス再生開始時刻は、一つ前のエントリが保持するサービス再生終了時刻を兼ねるため、各エントリについて、「サービス再生開始時刻」だけでなく参照によって求めた「サービス再生終了時刻」をも返す、という形態であってもよい。
【０１２６】
サービスマネージャ１６０４は、放送信号に含まれるサービスの再生を行うソフトウェアである。以下に、チューナ１３０１から入力されるＭＰＥＧ２トランスポートストリーム中のサービスの再生を行う場合の振舞いを説明する。これは、放送波から直接サービスを再生することに相当する。この場合、サービスマネージャ１６０４は、再生対象サービスのチャンネル識別子を入力とする。
【０１２７】
サービスマネージャ１６０４は、ライブラリ１６０１ｂを利用して入力されたチャンネル識別子に対応するチャンネル情報を取得し、チューニング情報を得る。それをＴｕｎｅｒ１６０５ｃに引き渡し、チューナ１３０１からアダプタ１３１１に対してＭＰＥＧ２トランスポートストリームが入力されるように設定する。次に図１５のアダプタ１３１１から出力されるＭＰＥＧ２トランスポートストリームをＴＳデコーダ１３０２に出力するように、ライブラリ１６０１ｂを通して指示する。
【０１２８】
その後、ＪＭＦ１６０５ａにＭＰＥＧ２トランスポートストリームの所在としてアダプタ１３１１を与え、また再生すべきチャンネル識別子を与える。すると、ＪＭＦ１６０５ａは、既に述べた動作によって、アダプタ１３１１から出力されるＭＰＥＧ２トランスポートストリームに多重された映像と音声の再生を開始する。
【０１２９】
更に、ＡＭ１６０５ｂにもＭＰＥＧ２トランスポートストリームの所在としてアダプタ１３１１を与え、また再生すべきチャンネル識別子を与える。すると、ＡＭ１６０５ｂはアダプタ１３１１から出力されるＭＰＥＧ２トランスポートストリームに多重されたＡＩＴに従って、２次記憶部１３０７から出力されるＭＰＥＧ２トランスポートストリームに多重されたＪａｖａプログラムの実行及び終了を開始する。
【０１３０】
最後に、サービスマネージャ１６０４はサービス履歴マネージャ１６０６のサービス履歴登録部１６０６ｃにチャンネル識別子を引き渡す。サービス履歴登録部１６０６ｃは前述の方法でサービス履歴管理表１６０６ａに履歴を追加する。
【０１３１】
ＥＰＧ１６０２は、電子番組表（Ｅｌｅｃｔｒｉｃ  Ｐｒｏｇｒａｍ  Ｇｕｉｄｅの略）であり、再生の対象とする番組をユーザに選択させる機能である。放送波を受信してサービスを再生する場合、ＥＰＧ１６０２は、放送番組一覧を表示してユーザに希望のチャンネルを選択させる。
【０１３２】
図２５は、再生対象とするチャンネルを選択させるための画面表示の一例である。時刻２５０１とチャンネル２５０２と２５０３が格子状に表示され、各時刻で記録可能な各チャンネルの番組を一覧できる。ユーザは端末装置１３００の入力部１３１０に備わっている上下左右カーソルボタン１４０１〜１４０４を用いて画面上のフォーカス２５３０を移動させることができる。図２６は、フォーカス２５３０が移動した例である。更にＯＫボタン１４０５を押下すると、現在フォーカスが当たっている番組を再生するチャンネルが再生対象として選択される。ＥＰＧ１６０２は当該番組のチャンネル識別子をライブラリから取得して知っており、ユーザによって再生対象チャンネルが選択されると、当該チャンネルのチャンネル識別子をサービスマネージャ１６０４に通知する。 サービスマネージャ１６０４は、そのチャンネル識別子に基づいて、前述した方法でサービスを再生する。
【０１３３】
以上、説明した動作により、Ｊａｖａプログラムはサービスマネージャ１６０４が再生開始したサービスの履歴を、サービス履歴取得ライブラリ１６０５ｇを利用して取得することが可能となる。
【０１３４】
（実施の形態２）
本実施の形態２では、履歴取得可能アプリ管理表１６０６ｂにＪａｖａプログラムを登録、及び登録削除する機能を付与する。
【０１３５】
図２７は本実施の形態におけるサービス履歴マネージャ１６０６の内部構成図である。前述した構成要素に関しては説明を割愛する。
【０１３６】
履歴取得可能アプリ登録部１６０６ｅはＪａｖａプログラム識別子を入力とし、履歴取得可能アプリ管理表１６０６ｂに、入力されたＪａｖａプログラム識別子を登録する。
【０１３７】
履歴取得可能アプリ登録削除部１６０６ｆはＪａｖａプログラム識別子を入力とし、履歴取得可能アプリ管理表１６０６ｂより、入力されたＪａｖａプログラム識別子を削除する。
【０１３８】
図２８は本実施の形態におけるプログラムの構成図である。前述した構成要素に関しては説明を割愛する。
【０１３９】
サービス履歴取得アプリ登録ライブラリ１６０５ｈは、ＪａｖａプログラムよりＪａｖａプログラム識別子を引数として利用されると、サービス履歴マネージャ１６０６内の履歴取得許可アプリ登録部１６０６ｅに対してＪａｖａプログラム識別子を引き渡す。
【０１４０】
サービス履歴取得アプリ登録削除ライブラリ１６０５ｉは、ＪａｖａプログラムよりＪａｖａプログラム識別子を引数として利用されると、サービス履歴マネージャ１６０６内の履歴取得許可アプリ登録削除部１６０６ｆに対してＪａｖａプログラム識別子を引き渡す。
【０１４１】
以上、詳述した操作により、端末１３００は、Ｊａｖａプログラムに対して、サービス履歴を取得可能なアプリを動的に変更する機能を提供する。
【０１４２】
（実施の形態３）
本実施の形態３では、特定のＪａｖａプログラムが行ったサービス選択の履歴を選択的に提供する端末１３００を実現する。
【０１４３】
本実施の形態におけるサービス履歴管理表１６０６ａを図２９に図示する。前述した構成要素に関しては説明を割愛する。列２９０３はＪａｖａプログラム識別子である。これはサービスマネージャ制御ライブラリ１６０５ｆを利用して、サービスマネージャ１６０４にサービス再生開始の指令を行ったＪａｖａプログラムの識別子である。
【０１４４】
本実施の形態におけるサービス履歴登録部１６０６ｃの動作シーケンスを図３０に表す。手続きＳＹ２６０１にてＪａｖａプログラム識別子及びチャンネル識別子を受け取ると、手続きＳＹ２６０２にて、Ｊａｖａプログラム識別子、チャンネル識別子及び現在時刻を組にして、サービス履歴管理表１６０６ａにエントリを追加する。
【０１４５】
本実施の形態におけるサービス履歴取得部１６０６ｄの動作シーケンスを図３１に表す。手続きＳ３１０１で履歴取得元Ｊａｖａプログラム識別子及び履歴取得先Ｊａｖａプログラム識別子を受け取る。手続きＳ３１０２でその履歴取得元Ｊａｖａプログラム識別子が履歴取得可能アプリ管理表１６０６ｂに記載されているかどうか調べる。記載されていれば、手続きＳ３１０３に進み、サービス履歴管理表１６０６ａを参照し、履歴取得先Ｊａｖａプログラム識別子と列２９０３のＪａｖａプログラム識別子が合致したサービス履歴エントリのみを取得して返す。記載されていなければ、手続きＳ３１０４に進んで、エラーを返して終了する。
【０１４６】
サービス履歴取得ライブラリ１６０５ｇは、Ｊａｖａプログラムより、履歴取得先Ｊａｖａプログラム識別子を受け取ると、受け取った履歴取得先Ｊａｖａプログラム識別子、及び当該アプリのＪａｖａプログラム識別子を履歴取得元Ｊａｖａプログラム識別子として、サービス履歴マネージャ１６０６のサービス履歴取得部１６０６ｄに引き渡し、サービス履歴が取得できればそれをＪａｖａプログラムに返し、エラーであればそれをＪａｖａプログラムに通知する。
【０１４７】
上述により、サービス履歴取得を許可されたＪａｖａプログラムは、特定のＪａｖａプログラムが行ったサービス履歴のみを取得することが可能となる。
【０１４８】
なお、本実施の形態では、サービス履歴取得部１６０６ｄは、履歴取得先のＪａｖａプログラム識別子を受け取り、それを検索条件としてＳ３１０３で合致するサービス履歴管理表１６０６ａのエントリを求め、サービス履歴として提供するが、さらにサービス履歴管理表１６０６ａの列が表す項目を検索条件として指定する形態であってもよい。
【０１４９】
例えば、開始時間を指定して、それ以降のエントリを求める、チャンネル識別子を指定して合致するエントリのみ求める、などが想定される。さらに単一の検索条件だけでなく複数の条件の組合せであってもよい。例えば、あるＪａｖａプログラム識別子と開始時間指定して、対応するＪａｖａプログラムが指定開始時間以降に行ったエントリをまとめたサービス履歴を求める、などが想定される。
【０１５０】
（実施の形態４）
本実施の形態では、サービス履歴のサイズの肥大化を防ぐため、サービス履歴管理表の最大サイズを決める機能をＪａｖａプログラムに提供する端末１３００を実現する。
【０１５１】
図３２は本実施の形態における、サービス履歴マネージャ１６０６の内部構成図である。前述した構成要素に関しては、動作に変更がない限り説明は省略する。
【０１５２】
サービス履歴最大数管理表１６０６ｋはサービス履歴管理表１６０６ａが管理するサービス履歴エントリの最大数を保持する。サービス履歴最大数管理表１６０６ｋは２次記憶部１３０７や１次記憶部１３０８上の領域として実現される。図３３はサービス履歴最大数管理表１６０６ｋを図示したものである。サービス履歴最大数管理表１６０６ｋはサービス履歴の最大数のみを保持する。図３３の場合は“１００”である。
【０１５３】
サービス履歴最大数登録部１６０６ｊはサービス履歴最大数管理表１６０６ｋが管理するサービス履歴エントリの最大数を変更する機能を持つライブラリである。図３４にサービス履歴最大数登録部１６０６ｊの動作シーケンスを図示する。手続きＳ３４０１にて新規サービス履歴最大数を受け取ると、手続きＳ３４０２にてサービス履歴最大数管理表１６０６ｋを上書きする。その後、手続きＳ３４０３にて、新規サービス履歴最大数を超えるエントリが、既にサービス履歴管理表１６０６ａに存在するかどうか調べ、もしあれば、新規サービス履歴最大数と、サービス履歴管理表１６０６ａのエントリ数が等しくなるまで、古い順にエントリを削除する（Ｓ３４０４）。
【０１５４】
図３５は、本実施の形態におけるサービス履歴登録部１６０６ｃの動作シーケンスを図示したものである。手続きＳ３５０１にてチャンネル識別子を受け取る。手続きＳ３４０２にて、サービス履歴最大数管理表１６０６ｋが管理するサービス履歴最大数と、サービス履歴管理表１６０６ａに記載されるエントリ数を比較し、数が等しい場合は手続きＳ３５０３にてサービス履歴管理表１６０６ａに記載されるエントリのうち、最も古いものを１つ削除する。その後、手続きＳ３５０４にて、手続きＳ３５０１にて受け取ったチャンネル識別子と現在時刻を組にして、サービス履歴管理表１６０６ａに追加する。
【０１５５】
図３６は本実施の形態におけるプログラム構成図である。前述した構成要素に関しては説明を割愛する。
【０１５６】
サービス履歴最大数登録ライブラリ１６０５ｚは、Ｊａｖａプログラムにサービス履歴最大数の変更機能を提供するためのライブラリである。入力としてサービス履歴最大数を受け取り、サービス履歴マネージャ１６０６のサービス履歴最大数登録部１６０６ｊに、受け取ったサービス履歴最大数を引き渡す。
【０１５７】
上述の動作により、Ｊａｖａプログラムが、サービス履歴管理表１６０６ａに登録されるサービス履歴エントリの数を制限できる。
【０１５８】
なお、本実施の形態ではエントリの数で最大数を制限するが、サービス履歴管理表１６０６ａの最大サイズによって制限してもよい。
【０１５９】
（実施の形態５）
本実施の形態では、サービス履歴を削除する機能をＪａｖａプログラムに提供する。
【０１６０】
図３７は、本実施の形態におけるサービス履歴マネージャ１６０６の内部構成図である。前述の構成要素は説明を割愛する。
【０１６１】
サービス履歴削除部１６０６ｚは、サービス履歴管理表１６０６ａが保持するサービス履歴のエントリを全て削除するライブラリである。
【０１６２】
図３８は、本実施の形態におけるプログラム構成図である。前述の構成要素は説明を割愛する。
【０１６３】
サービス履歴削除ライブラリ１６０５ｙは、Ｊａｖａプログラムに呼ばれると、サービス履歴マネージャ１６０６内のサービス履歴削除部１６０６ｚにサービス履歴の削除を指令する。
【０１６４】
上述により、サービス履歴を削除する機能をＪａｖａプログラムに提供する。
なお、本実施の形態ではサービス履歴削除部１６０６ｚはサービス履歴管理表１６０６ａが管理するサービス履歴の全エントリを一括削除するが、サービス履歴削除部１６０６ｚに対して検索条件を引き渡し、それに合致するエントリのみ削除する、という形態も考えられる。例えば、再生開始時刻が２００４年１月１日０：００以前のもの、などである。サービス履歴管理表１６０６ａの列が表現する項目であれば検索条件になりうる。その場合、単一の項目を検索条件としてもよいし、複数の項目の組合せを検索条件としてもよい。さらに、指定した検索条件に合致しないエントリのみ削除する、という形態であってもよい。
【０１６５】
（実施の形態６）
本実施の形態では、特定のアプリが行ったチャンネル変更のみがサービス履歴管理表１６０６ａに登録される、という機構を実現する。
【０１６６】
図３９は、本実施の形態におけるサービス履歴マネージャ１６０６の内部構成図である。前述した構成要素で、特に動作が変わらないものは説明を割愛する。
【０１６７】
履歴記録アプリ管理表１６０６ｍは、サービス履歴を記録するアプリのＪａｖａプログラム識別子を保持する。履歴記録アプリ管理表１６０６ｍは２次記憶部１３０７または１次記憶部１３０８に確保される領域として実現される。図４０は履歴記録アプリ管理表１６０６ｍの一例である。この場合、行４０１１及び行４０１２はエントリを表現している。行４０１１で表現されるエントリはＪａｖａプログラム識別子“１０”を保持し、行４０１２で表現されるエントリはＪａｖａプログラム識別子“２０”を保持している。
【０１６８】
履歴記録アプリ登録部１６０６ｌは、サービス履歴を記録するアプリのＪａｖａプログラム識別子を登録する。図４１は履歴記録アプリ登録部１６０６ｌの動作シーケンスである。手続きＳ４１０１にて、Ｊａｖａプログラム識別子を受け取ると、手続きＳ４１０２にて、Ｊａｖａプログラム識別子を履歴記録アプリ管理表に追加する。
【０１６９】
図４２に、本実施の形態におけるサービス履歴登録部１６０６ｃの動作シーケンスを表す。手続きＳ４２０１にてＪａｖａプログラム識別子とチャンネル識別子を受け取ると、手続きＳ４２０２にて受け取ったＪａｖａプログラム識別子が履歴記録アプリ管理表に記載しているかどうか調査する。もしも記載されていた場合は、手続きＳ４２０３に進み、Ｊａｖａプログラム識別子、チャンネル識別子、現在時刻を組にして、サービス履歴管理表１６０６ａにエントリを追加する。
【０１７０】
本実施の形態におけるサービス履歴管理表１６０６ａは図２９と同様である。
図４３に、本実施の形態におけるプログラム構成図を示す。前述した構成要素に関しては説明を割愛する。
【０１７１】
履歴記録アプリ登録ライブラリ１６０５ｊは、サービス履歴を記録するＪａｖａプログラムを登録するために呼び出される。履歴記録アプリ登録ライブラリは入力としてＪａｖａプログラムより、サービス履歴を記録する対象のＪａｖａプログラムのＪａｖａプログラム識別子を受け取り、それをサービス履歴マネージャ１６０６の履歴記録アプリ登録部１６０６ｌに引き渡す。
【０１７２】
上述の動作により、Ｊａｖａプログラムは、行ったサービス履歴を記録する対象アプリを端末１３００に登録することができるようになる。
【０１７３】
なお、本実施の形態では、Ｊａｖａプログラム識別子を記録の条件として利用するが、サービス履歴管理表が保存する別の項目を記録条件として判定に用いてもよい。
【０１７４】
（実施の形態７）
本実施の形態では、ザッピングによるサービス履歴は視聴と見なさず、履歴を記録しない。それにより、よりユーザがはっきりと視聴したサービスの履歴のみをＪａｖａプログラムに提供可能となる。
【０１７５】
図４４に、本実施の形態におけるサービス履歴マネージャ１６０６の内部構成図を表す。前述した構成要素に関しては、動作が変更されるもの以外は説明を割愛する。
【０１７６】
ザッピングタイムアウト管理表１６０６ｏはサービス視聴と判断するための最低時間（ザッピングタイムアウト）を保持する。図４５は、ザッピングタイムアウト管理表１６０６ｏの一例である。ここでは“２．０”という値を保持する。この場合、サービス選択後、２秒経過しても次のサービス選択が発生しない場合は、それをサービス視聴として認定することを表す。
【０１７７】
サービス履歴バッファ１６０６ｎは、サービス履歴を一時的に保管するためのバッファであり、一次記憶部１６０８上の領域として実現される。サービス履歴バッファ１６０６ｎは、サービス履歴管理表１６０６ａの１エントリが持つ情報と等しい情報を保管する。図４６は本実施の形態におけるサービス履歴バッファ１６０６ｎの一例である。列４６０１はチャンネル識別子、列４６０４は再生開始時刻である。
【０１７８】
サービス履歴タイマ１６０６ｐは、本実施の形態では、サービス履歴管理表１６０６ａの更新を行う。サービス履歴タイマ１６０６ｐは、能動的に動作するスレッド、プロセス、デーモンなどとして実現される。図４７は、サービス履歴タイマ１６０６ｐの動作シーケンスである。手続きＳ４７０１で、チャンネル識別子の入力を待つ。チャンネル識別子が入力されると、手続きＳ４７０２へ進み、チャンネル識別子及び現在時刻を、サービス履歴バッファ１６０６ｎに記録する。手続きＳ４７０３にてザッピングタイムアウト管理表１６０６ｏよりザッピングタイムアウトを取得すると、手続きＳ４７０４にて、取得したザッピングタイムアウト分スリープする。
【０１７９】
本スリープは外部より中断可能である。ザッピングタイムアウト時間が経過するか、スリープが中断されると、手続きＳ４７０５に至り、スリープが中断されたのか、ザッピングタイムアウト時間が経過したのか判定を行う。ザッピングタイムアウト時間が経過していた場合、手続きＳ４７０６に至り、サービス履歴バッファ１６０６ｎからチャンネル識別子、開始時刻を読み出して組にしてサービス履歴管理表にエントリを追加する。その後、手続きＳ４７０７に至り、サービス履歴バッファ１６０６ｎのデータを消去する。
【０１８０】
手続きＳ４７０５の判定にて、中断されていた場合、手続きＳ４７０７に至り、サービス履歴バッファ１６０６ｎのデータを消去する。その後、手続きＳ４７０１に戻り、次のチャンネル識別子の入力を待つ。
【０１８１】
本実施の形態におけるサービス履歴登録部１６０６ｃは直接サービス履歴管理表１６０６ａの変更を行わない。本実施の形態におけるサービス履歴登録部１６０６ｃの動作シーケンスを図４８に表す。手続きＳ４７０１でチャンネル識別子を受け取ると、手続きＳ４７０２にて、サービス履歴タイマ１６０６ｐが現在スリープ中かどうか判定する。スリープ中であれば、手続きＳ４８０３に至りサービス履歴タイマ１６０６ｐのスリープを中断する。スリープ中でなければ手続きＳ４８０３を行わない。手続きＳ４８０４では、チャンネル識別子をサービス履歴タイマ１６０６ｐに入力する。
【０１８２】
上述する形態により、本実施の形態では、ザッピングでないサービス視聴の履歴を取得することが可能となる。
【０１８３】
（実施の形態８）
実施の形態７では、ザッピングタイムアウトを導入し、ザッピングタイムアウト時間内に再度サービス変更された場合は、ザッピングと見なして、履歴として記録しない。本実施の形態では、ザッピングタイムアウトの時間を変更可能とする。
【０１８４】
図４９は本実施の形態におけるサービス履歴マネージャ１６０６の内部構成図である。前述の構成要素に関しては説明を割愛する。
【０１８５】
ザッピングタイムアウト更新部１６０６ｑは、入力を新規ザッピングタイムアウトとし、ザッピングタイムアウト管理表１６０６ｏが管理するザッピングタイムアウトを更新する。
【０１８６】
図５０は、本実施の形態におけるプログラム構成図である。前述の構成要素に関しては説明を割愛する。
【０１８７】
ザッピングタイムアウト更新ライブラリ１６０５ｌは、ザッピングタイムアウトを更新する際に呼ばれるライブラリである。入力を新規ザッピングタイムアウトとし、入力された新規ザッピングタイムアウトを、サービス履歴マネージャ１６０６のザッピングタイムアウト更新部１６０６ｑに引き渡す。
【０１８８】
上述する形態により、本実施の形態では、ザッピングタイムアウトの長さを変更する機能をＪａｖａプログラムに提供することが可能となる。
【０１８９】
（実施の形態９）
上述の実施の形態では、サービス履歴を取得したが、本実施の形態では、電源ｏｎ・ｏｆｆ履歴を取得することを可能とする。
【０１９０】
図５１は本実施の形態におけるプログラム構成図である。前述した構成要素に関しては説明を割愛する。
【０１９１】
電源履歴マネージャ１６０７は電源のｏｎ・ｏｆｆ履歴を管理する。図５２は電源履歴マネージャ１６０７の内部構成図である。
【０１９２】
電源履歴管理表１６０７ａは電源のｏｎ／ｏｆｆ履歴を管理する。図５３は電源履歴管理表１６０７ａの一例である。列５３０１は電源ｏｎ／ｏｆｆを表現する電源フラグである。列５３０２は時刻を表現する。行５３１１及び行５３１２は、情報のエントリである。行５３１１は、２００５年３月３０日の１１：００に端末１３００の電源がｏｎになったことを表し、行５３１２は２００５年４月１日２１：００に端末１３００の電源がｏｆｆになったことを表している。電源履歴管理表１６０７ａは２次記憶部１３０７上の領域として実現される。
【０１９３】
電源履歴取得可能アプリ管理表１６０７ｂは電源履歴を取得可能なＪａｖａプログラムのＪａｖａプログラム識別子を保持する。電源履歴取得可能アプリ管理表１６０７ｂは１次記憶部１３０８または２次記憶部１３０７上の領域として実現される。図５４は、電源履歴取得可能アプリ管理表１６０７ｂの一例である。列５４０１は電源履歴取得可能なＪａｖａプログラムのＪａｖａプログラム識別子を表す。行５４１１及び５４１２はエントリを表し、例えば行５４１１ではＪａｖａプログラム識別子が“１”であるＪａｖａプログラムが電源取得可能であることを表し、行５４１２ではＪａｖａプログラム識別子が“５”であるＪａｖａプログラムが電源取得可能であることを表している。
【０１９４】
電源履歴登録部１６０７ｃは、電源履歴を電源履歴管理表１６０７ａに追加するライブラリである。図５５は電源履歴登録部１６０７ｃの動作シーケンス図である。手続きＳ５５０１にて電源フラグを受け取ると、手続きＳ５５０２にて、電源フラグと現在時刻を組にして電源履歴管理表１６０７ａにエントリを追加する。
【０１９５】
電源履歴取得部１６０７ｄは、電源履歴管理表１６０７ａが管理する電源履歴を、電源履歴取得可能なＪａｖａプログラムに提供する機能を有するライブラリである。図５６は電源履歴取得部１６０７ｄの動作シーケンス図である。手続きＳ５６０１にてＪａｖａプログラム識別子を受け取ると、手続きＳ５６０２に至り、当該Ｊａｖａプログラム識別子が、電源履歴取得可能アプリ管理表に記載されているかどうか判定を行う。記載されていれば“Ｙｅｓ”へ進んで手続きＳ５６０３に至り、電源履歴管理表１６０７ａを参照して電源履歴を取得して返す。記載されていなければ、“Ｎｏ”に進んで手続きＳ５６０４に至り、エラーを返す。
【０１９６】
電源履歴取得ライブラリ１６０５ｍはＪａｖａプログラムが呼び出すライブラリであり、電源履歴を取得する機能を持つ。電源履歴取得ライブラリ１６０５ｍは、Ｊａｖａプログラムに呼ばれると、当該ＪａｖａプログラムのＪａｖａプログラム識別子を電源履歴マネージャ１６０７の電源履歴取得部１６０７ｄに引き渡す。電源履歴が返った場合は得られた電源履歴をＪａｖａプログラムに提供する。エラーが返った場合は、Ｊａｖａプログラムにエラーを通知する。
【０１９７】
これにより、電源ｏｎ／ｏｆｆ履歴をＪａｖａプログラムが取得することを可能とし、より高度な機能を実現することが可能となる。
【０１９８】
なお、電源履歴取得に関する一連の流れと、サービス履歴取得に関する一連の流れは類似し、サービス履歴取得に関して以前の実施の形態で述べた変化と特徴は、そのまま電源履歴取得に容易に適用・発展可能なものがある。具体的に以下に記す。
【０１９９】
実施の形態２で述べた、サービス履歴取得を行うことのできるＪａｖａプログラムを登録する機能に関しては、図５７にあるように電源履歴マネージャ１６０７内に電源履歴取得許可アプリ登録部１６０７ｅ及び電源履歴取得許可アプリ登録削除部１６０７ｆを新設し、さらに図５８にあるようにＪａｖａライブラリとして電源履歴取得アプリ登録ライブラリ１６０５ｎ及び電源履歴取得アプリ登録削除ライブラリ１６０５ｏを新設することで電源履歴管理についてもサービス履歴管理同様に発展可能であり、電源履歴を取得可能なＪａｖａプログラムを登録及び登録削除する機能をＪａｖａプログラムに提供できるようになる。
【０２００】
実施の形態４で述べた、サービス履歴の消去に関しては、図５９のように電源履歴マネージャ１６０７内に電源履歴最大数登録部１６０７ｊ及び電源履歴最大数管理表１６０７ｋを新設し、さらに図３６のようにＪａｖａライブラリ内に電源履歴最大数登録ライブラリ１６０５ｐを新設することで、電源履歴管理に関してもサービス履歴管理同様に発展可能であり、電源履歴の最大数をＪａｖａプログラムが変更できるようになる。
【０２０１】
（実施の形態１０）
本実施の形態では、サービス選択や電源のみではなくＪａｖａライブラリ１６０５内の各ライブラリの利用履歴を残し、それを許可されたＪａｖａプログラムが参照する機構を実現する。
【０２０２】
図６０は本実施の形態におけるプログラム構成図である。前述した構成要素に関しては、特に必要がない限り説明は割愛する。
【０２０３】
操作履歴マネージャ１６０８は、Ｊａｖａライブラリ１６０５の利用履歴を管理する。端末１３００上で動作するプログラムやライブラリとして実現される。
【０２０４】
図６１は、操作履歴マネージャ１６０８の内部構成図である。
操作履歴管理表１６０８ａは、Ｊａｖａライブラリ１６０５の利用履歴を保持する。２次記憶上１３０７上の領域として実現される。図６２は操作履歴管理表の一例である。列６２０１は、どのＪａｖａライブラリが呼び出されたのかを表現するライブラリＩＤである。列６２０２は各Ｊａｖａライブラリに対してどのような命令が指令されたのかを表現する操作ＩＤである。列６２０３は操作の引数である。各操作を実現するＡＰＩ呼出しは各々引数の数、形式が互いに異なるのは普通であり、本発明はその形態には依存せず適用可能である。列６２０４は操作時刻である。列Ｙ７２０５は操作を行ったＪａｖａプログラムのＪａｖａプログラム識別子である。行６２１１及び行６２１２は操作履歴管理表１６０８ａのエントリを表す。
【０２０５】
例えば、行６２１１は、２００５年３月３０日１１：００にＴｕｎｅｒライブラリ１６０５ｃがＪａｖａプログラム識別子“１”を持つＪａｖａプログラムによって利用され、７８６ＭＨｚの周波数にチューニングするよう指令されたことを表現する。また行６２１２は２００５年４月１日２１：００にＪＭＦライブラリ１６０５ａがＪａｖａプログラム識別子“５”を持つＪａｖａプログラムによって利用され、ＰＩＤ０ｘ１及びＰＩＤ０ｘ２のＴＳパケットが伝送する映像音声を再生するように指令されたことを表現する。
【０２０６】
操作履歴取得可能アプリ管理表１６０８ｂは、操作履歴を取得可能なＪａｖａプログラムのＪａｖａプログラム識別子を保持する。図６３は操作履歴取得可能アプリ管理表１６０８ｂの一例である。列６３０１はＪａｖａプログラム識別子である。行６３１１及び行６３１２は、操作履歴取得可能アプリ管理表１６０８ｂのエントリを表現する。
【０２０７】
操作履歴登録部１６０８ｃは操作履歴管理表１６０８ａに操作履歴のエントリを追加するライブラリとして実現される。図６４は操作履歴登録部の動作シーケンスである。手続きＳ６４０１にてライブラリＩＤ、操作ＩＤ、引数、Ｊａｖａプログラム識別子を受け取ると、手続きＳ６４０２にてライブラリＩＤ、操作ＩＤ、引数、現在の時刻、Ｊａｖａプログラム識別子を組にして、操作履歴管理表１６０８ａにエントリを追加する。
【０２０８】
操作履歴取得部１６０８ｄは、操作履歴管理表１６０８ａが管理する操作履歴を、操作履歴取得可能なＪａｖａプログラムに提供する機能を有するライブラリである。図６５は操作履歴取得部１６０８ｄの動作シーケンス図である。手続きＳ６５０１にてＪａｖａプログラム識別子を受け取ると、手続きＳ６５０２に至り、当該Ｊａｖａプログラム識別子が、操作履歴取得可能アプリ管理表に記載されているかどうか判定を行う。記載されていれば“Ｙｅｓ”へ進んで手続きＳ６５０３に至り、操作履歴管理表１６０８ａを参照して全エントリの全情報を取得し、操作履歴として返す。記載されていなければ、“Ｎｏ”に進んで手続きＳ６５０４に至り、エラーを返す。
【０２０９】
操作履歴取得ライブラリ１６０５ｐはＪａｖａプログラムが呼び出すライブラリであり、操作履歴を取得する機能を持つ。操作履歴取得ライブラリ１６０５ｐは、Ｊａｖａプログラムに呼ばれると、当該ＪａｖａプログラムのＪａｖａプログラム識別子を操作履歴マネージャ１６０８の操作履歴取得部１６０８ｄに引き渡す。電源履歴が返った場合は得られた電源履歴をＪａｖａプログラムに提供する。エラーが返った場合は、Ｊａｖａプログラムにエラーを通知する。
【０２１０】
Ｊａｖａライブラリ１６０５に属する各Ｊａｖａライブラリは、ＪａｖａプログラムがＪａｖａライブラリを利用した際、自ライブラリＩＤと指令された命令を表現する操作ＩＤ、及び引数、呼び出し元ＪａｖａプログラムのＪａｖａプログラム識別子を操作履歴マネージャ１６０８の操作履歴登録部１６０８ｃに引き渡す。これにより操作履歴管理表１６０８ａには操作履歴情報が随時記録されていくことになる。
【０２１１】
上述の振る舞いにより、Ｊａｖａプログラムは操作履歴取得ライブラリ１６０５ｐを利用することで、Ｊａｖａライブラリ１６０５内の各ライブラリの呼出し履歴を取得し、より高度なユーザ嗜好分析を行うことが可能となる。
【０２１２】
なお、Ｊａｖａライブラリ１６０５には、実施の形態に記載されたもの以外の機能を持つライブラリが存在しても本発明は適用可能である。代表的な機能として録画、録画コンテンツ再生、グラフィックス制御、電話利用、ネットワーク制御、ファイルＩＯ制御などが挙げられる。さらにここに列挙されないものが存在してもよい。
【０２１３】
また、Ｊａｖａプログラムが取得する操作履歴としてライブラリＩＤ、操作ＩＤ、引数、操作時刻、Ｊａｖａプログラム識別子としているが、そのうちの任意の組合せでもよい。その場合、操作履歴取得ライブラリ１６０５ｐが所望の組合せを入力として受け取り、操作取得履歴取得部１６０８ｄから得られた情報の中から所望の組合せを抽出し、Ｊａｖａプログラムに提供する。
【０２１４】
また、操作履歴管理表１６０８ａはライブラリＩＤ、操作ＩＤ、引数、操作時刻、Ｊａｖａプログラム識別子を保持しているが、このサブセットを記録する形式であってもよい。この場合、Ｊａｖａプログラムが得られる情報の種類は減少するが、発明自体は適用可能である。
【０２１５】
なお、本実施の形態では全てのＪａｖａライブラリ１６０５が操作履歴を記録するが、予め決められた１以上のＪａｖａライブラリ１６０５の操作履歴を記録する場合であっても本発明は適用可能である。
【０２１６】
（実施の形態１１）
本実施の形態では、Ｊａｖａプログラムが特定のＪａｖａライブラリに関する操作履歴のみ取得することを可能とする。
【０２１７】
図６６は本実施の形態における操作履歴取得部１６０８ｄの動作シーケンスである。手続きＳ６６０１ではライブラリＩＤ及びＪａｖａプログラム識別子を受け取ると、手続きＳ６６０２では、当該Ｊａｖａプログラム識別子が操作履歴取得可能アプリ管理表１６０８ｂに記載されているかどうか判定し、記載されていれば手続きＳ６６０３に進み、操作履歴管理表１６０８ａより、ライブラリＩＤが一致するエントリを抽出してそれを操作履歴として返す。記載されてなければＳ６６０４に進み、エラーを返す。
【０２１８】
操作履歴取得ライブラリ１６０５ｐは、ライブラリＩＤを入力としてＪａｖａプログラムより受け取り、当該ＪａｖａプログラムのＪａｖａプログラム識別子と共に操作履歴マネージャ１６０８の操作履歴取得部１６０８ｄに引き渡す。
【０２１９】
上述の振る舞いにより、Ｊａｖａプログラムは所望のライブラリに関する操作履歴のみを取得することが可能となる。
【０２２０】
なお、本実施の形態では、ライブラリＩＤを操作履歴取得部１６０８ｄによる操作履歴の検索条件として用いているが、操作履歴管理表１６０８ａが保持する他の項目を検索条件として用いてもよい。
【０２２１】
またそれら項目の組合せを検索条件として用いてもよい。例えば、Ｊａｖａプログラム１がチューナライブラリ１６０５ｃを利用した操作履歴を知りたければ、「Ｊａｖａプログラム１を表現するＪａｖａプログラム識別子」及び「チューナライブラリ１６０５ｃのライブラリＩＤ」を操作履歴取得ライブラリ１６０５ｐに引き渡すと、操作履歴取得ライブラリ１６０５ｐは、呼出し元Ｊａｖａプログラムを表現するＪａｖａプログラム識別子とともにそれら検索条件を操作履歴マネージャ１６０８の操作履歴取得部１６０８ｄに引き渡す。
【０２２２】
操作履歴取得部１６０８ｄは、手続きＳ６６０３において、検索条件として引き渡されたライブラリＩＤおよびＪａｖａプログラム識別子が等しいエントリのみ操作履歴管理表１６０８ａより抽出し、操作履歴として返す。これにより、Ｊａｖａプログラムは所望の操作履歴を取得することができる。類例として、操作時間帯を検索条件として指定して取得する「ある時間帯における操作履歴」、ライブラリＩＤと操作ＩＤを検索条件として指定して取得する「ある操作に特化された操作履歴」などが考えられる。検索条件の数、組合せの種類に関係なく本発明は適用可能である。
【０２２３】
（実施の形態１２）
実施の形態１１では、操作履歴取得時に取得する履歴を選別する方法を実現した。しかし操作履歴管理表１６０８ａは依然として全ての操作を記録するため操作履歴管理表１６０８ａは肥大化する恐れがあった。本実施の形態では、その解決の一つとして、操作履歴を操作履歴管理表１６０８ａに記録する時点で選別する機構を実現する。
【０２２４】
図６７は本実施の形態における、操作履歴マネージャ１６０８の内部構成図である。前述した内部構成に関して特に必要のない場合は説明を割愛する。
【０２２５】
操作履歴記録条件管理表１６０８ｆは、操作履歴管理表１６０８ａに記録する操作履歴を選別するための記録条件を保持する。操作履歴記録条件管理表１６０８ｆは２次記憶部１３０７または１次記憶部１３０８上の領域として実現される。図６８は操作履歴記録条件管理表１６０８ｆの一例である。列６８０１はライブラリＩＤを表す。列６８０２は操作ＩＤを表す。列６８０３は引数を表す。列６８０４は操作時間帯を表す。
【０２２６】
６８０５はＪａｖａプログラム識別子を表す。行６８１１及び行６８１２は操作履歴記録条件管理表１６０８ｆのエントリを表す。表内の“＊”はその項目には記録判定のための条件が存在しないことを表す。例えば、行６８１１はライブラリＩＤが“Ｔｕｎｅｒ”、操作ＩＤが“チューニング”である操作履歴を表す。例えば、行６８１２は、ライブラリＩＤが“ＪＭＦ”、操作時間帯が２００５年４月１日２１：００から２００７年４月１日０：００まで、Ｊａｖａプログラム識別子が６８０５である操作履歴を表す。
【０２２７】
操作履歴記録条件登録部１６０８ｅは操作履歴記録条件管理表１６０８ｆに記録条件を記録するライブラリとして実現される。図６９は操作履歴記録条件登録部１６０８ｅの動作シーケンスである。手続きＳ６９０１で記録条件を受け取ると、手続きＳ６９０２にて、記録条件を操作履歴記録条件管理表１６０８ｆに登録する。
【０２２８】
本実施の形態における操作履歴登録部１６０８ｃの動作シーケンスを図７０に表す。手続きＳ７００１でライブラリＩＤ、操作ＩＤ、引数、Ｊａｖａプログラム識別子を受け取ると、手続きＳ７００２では現在の時刻を取得する。Ｓ７００３に進み、今回受け取った操作履歴が操作履歴記録条件管理表１６０８ｆに記載される記録条件のいずれかに合致するかどうか判定を行う。合致する場合、Ｓ７００４に進み、捜査履歴を操作履歴管理表１６０８ａに追加する。合致しない場合は何もせずに動作を終了する。
【０２２９】
図７１は本実施の形態におけるプログラム構成図を表す。前述の構成要素に関しては説明を割愛する。
【０２３０】
操作履歴記録条件登録ライブラリ１６０５ｑは、Ｊａｖａプログラムより記録条件を受け取ると、その記録条件及び当該ＪａｖａプログラムのＪａｖａプログラム識別子を、操作履歴マネージャ１６０８の操作履歴記録条件登録部に引き渡す。
【０２３１】
上述の振る舞いにより、操作履歴記録条件管理表１６０８ｆに記載される記録条件に合致する操作履歴のみを操作履歴管理表１６０８ａに記録することが可能となる。
【０２３２】
なお、本実施の形態における記録条件は、操作履歴記録条件管理表１６０８ｆが管理する列のうち任意の組合せであっても本発明は適用可能である。例えば、Ｊａｖａプログラム識別子指定のみの記録条件であってもよく、またＪａｖａプログラム識別子及び時間帯指定の記録条件であってもよい。
【０２３３】
（実施の形態１３）
本実施の形態では操作履歴の消去を実現する。
【０２３４】
図７２は、本実施の形態における操作履歴マネージャ１６０８の内部構成図である。前述した構成要素に関しては説明を割愛する。
【０２３５】
操作履歴削除部１６０８ｇは、操作履歴管理表１６０８ａの全エントリを削除する機能を持つライブラリとして実現される。
【０２３６】
図７３は、本実施の形態におけるプログラム構成図である。前述した構成要素に関しては説明を割愛する。
【０２３７】
操作履歴削除ライブラリ１６０５ｒは、Ｊａｖａプログラムに呼ばれると、操作履歴マネージャ１６０８の操作履歴削除部１６０８ｇに操作履歴管理表１６０８ａ内のエントリを削除するように指令を出す。
【０２３８】
上述した振る舞いにより、端末１３００は、操作履歴管理表１６０８ａが管理する全エントリを削除する機能をＪａｖａプログラムに提供することができる。
【０２３９】
なお、本実施の形態では、操作履歴削除部１６０８ｇは操作履歴管理表１６０８ａが保持する操作履歴全エントリを一括削除するが、操作履歴削除部１６０８ｇに対し、操作履歴の検索条件を指定し、合致エントリするもののみ操作履歴管理表１６０８ａから削除する形態であってもよい。また、合致しないエントリのみ操作履歴管理表１６０８ａから削除する形態であってもよい。
【０２４０】
（実施の形態１４）
本実施の形態では、操作履歴管理表１６０８ａが保持する操作履歴の最大エントリ数を決定し、それを超えた分は自動的に削除することで、操作履歴管理表１６０８ａの肥大化を防ぐ。
【０２４１】
図７４に本実施の形態における操作履歴マネージャ１６０８の内部構成図を表す。前述の構成要素で、必要のないものは説明を割愛する。
【０２４２】
操作履歴最大数管理表１６０８ｉは、操作履歴管理表１６０８ａが保持する操作履歴エントリの最大数を管理する。操作履歴最大数管理表１６０８ｉは２次記憶部１３０７上の領域として実現される。図７５は操作履歴最大数管理表１６０８ｉの一例である。操作履歴最大数管理表１６０８ｉは一つの数値を保持する領域から構成され、この場合最大数として数値“１００”を保持する。
【０２４３】
操作履歴最大数登録部１６０８ｈは、操作履歴最大数管理表１６０８ｉが保持する最大数を変更する機能を持つライブラリとして実現される。図７６に操作履歴最大数登録部１６０８ｈの動作シーケンスを表す。手続きＳ７６０１にて操作履歴エントリの最大数を受け取ると、手続きＳ７６０２にて操作履歴エントリの最大数を操作履歴最大数管理表１６０８ｉに設定する。その後、手続きＳ７６０３に至り、その時点で、新規最大数を上回る数の操作履歴エントリが操作履歴管理表１６０８ａに保持されていた場合、エントリ数＝最大数となるまで、古い操作履歴のエントリから削除する。
【０２４４】
図７７は本実施の形態における操作履歴登録部１６０８ｃの動作シーケンスである。手続きＳ７７０１にて操作履歴のエントリ構成情報であるライブラリＩＤ、操作ＩＤ、引数、Ｊａｖａプログラム識別子を受け取ると、手続きＳ７７０２にて操作履歴最大数管理表１６０８ｉが管理する最大数と、操作履歴管理表１６０８ａのエントリ数を比較し、等しい場合は手続きＳ７７０３にて、操作履歴管理表１６０８ａが管理するエントリのうち、最も古いものを削除する。等しくない場合は、手続きＳ７７０３の処理を行わない。その後手続きＳ７７０４に至り、操作履歴エントリを操作履歴管理表１６０８ａに追加する。
【０２４５】
図７８は本実施の形態におけるプログラム構成図である。前述の構成要素は説明を割愛する。
【０２４６】
操作履歴最大数登録ライブラリ１６０５ｒは、Ｊａｖａプログラムより新規最大数を引数として呼ばれると、操作履歴マネージャ１６０８の操作履歴最大数登録部１６０８ｈに新規最大数を引き渡す。
【０２４７】
上述の動作により、操作履歴管理表１６０８ａが管理するエントリ数の最大数を設定可能である。
【０２４８】
なお、本実施の形態では、操作履歴管理表１６０８ａのエントリの数を指定するが、操作履歴管理表１６０８ａが２次記憶部１３０７上に確保するサイズの最大値を指定する方式であっても、本発明は容易に適用可能である。
【０２４９】
（実施の形態１５）
本実施の形態では、操作履歴の保持期間を設定し、その期間を経過したエントリは自動的に削除される。
【０２５０】
図７９は本実施の形態における操作履歴マネージャ１６０８の内部構成図である。前述の構成要素は、必要なもの以外は説明を割愛する。
【０２５１】
操作履歴保持期間管理表１６０８ｋは操作履歴の保持期間を保持する。２次記憶部１３０７上の領域として実現される。図８０は操作履歴保持期間管理表１６０８ｋの一例である。この例では、操作履歴の保持期間は１０日間である。
【０２５２】
操作履歴保持期間登録部１６０８ｊは、操作履歴保持期間を設定するライブラリである。図８１に操作履歴保持期間登録部１６０８ｊの動作シーケンスを表す。手続きＳ８１０１にて新規操作履歴保持期間を受け取ると、手続きＳ８１０２にて新規操作履歴保持期間を操作履歴保持期間管理表１６０８ｋに設定する。
【０２５３】
操作履歴古エントリ削除部１６０８ｌは、操作履歴保持期間を経過した古いエントリを削除する機能を持つライブラリである。本ライブラリは、タイマ設定により一定時間毎に起動されてもよく、また操作履歴保持期間登録部１６０８ｊ、操作履歴登録部１６０８ｃ、操作履歴取得部１６０８ｄなどによって起動される形態であってもよい。
【０２５４】
図８２は、操作履歴古エントリ削除部１６０８ｌの動作シーケンスである。手続きＳ８２０１にて、操作履歴保持期間管理表１６０８ｊより、操作履歴保持期間を取得する。手続きＳ８２０２にて、操作履歴管理表１６０８ａが保持する操作履歴のエントリのうち、保持期間を経過したものを削除する。
【０２５５】
図８３は本実施の形態におけるプログラム構成図である。前述の構成要素に関しては説明を割愛する。
【０２５６】
操作履歴保持期間登録ライブラリ１６０５ｓは、Ｊａｖａプログラムより新規操作履歴保持期間を受け取ると、操作履歴マネージャ１６０８の操作履歴保持期間登録部１６０８ｊに、それを引き渡す。
【０２５７】
上述の動作により、保持期間が経過した操作履歴を自動的に削除する端末１３００を実現できる。
【０２５８】
（実施の形態１６）
本実施の形態では、操作履歴取得の開始と停止を制御する機能をＪａｖａプログラムに提供する端末装置１３００を実現する。
【０２５９】
図８４は本実施の形態におけるプログラム構成図である。前述した構成要素は説明を割愛する。
【０２６０】
履歴取得開始ライブラリ１６０５ｔは、呼ばれるとＪａｖａライブラリ１６０５内のライブラリに対して、「Ｊａｖａプログラムに利用された際、操作履歴マネージャ１６０８の操作履歴登録部１６０８ｃに操作履歴登録を指令する」ように設定する。
【０２６１】
履歴取得停止ライブラリ１６０５ｕは、呼ばれるとＪａｖａライブラリ１６０５内のライブラリに対して、「Ｊａｖａプログラムに利用されても、操作履歴マネージャ１６０８の操作履歴登録部１６０８ｃに操作履歴登録を指令しない」ように設定する。
【０２６２】
これにより、Ｊａｖａプログラムが一度履歴取得停止ライブラリ１６０５ｕを利用すると、その後履歴取得開始ライブラリ１６０５ｔが利用されるまで、操作履歴取得が停止される。
【０２６３】
（実施の形態１７）
本実施の形態では、サービス履歴取得の開始と停止を制御する機能をＪａｖａプログラムに提供する端末装置１３００を実現する。
【０２６４】
図８５は本実施の形態におけるプログラム構成図である。前述した構成要素は説明を割愛する。
【０２６５】
履歴取得開始ライブラリ１６０５ｔは、呼ばれるとサービスマネージャ１６０４に対して、「Ｊａｖａプログラムに利用された際、サービス履歴マネージャ１６０６のサービス履歴登録部１６０６ｃにサービス履歴登録を指令する」ように設定する。
【０２６６】
履歴取得停止ライブラリ１６０５ｕは、呼ばれるとＪａｖａライブラリ１６０５内のライブラリに対して、「Ｊａｖａプログラムに利用されても、サービス履歴マネージャ１６０６のサービス履歴登録部１６０６ｃにサービス履歴登録を指令しない」ように設定する。
【０２６７】
これにより、Ｊａｖａプログラムが一度履歴取得停止ライブラリ１６０５ｕを利用すると、その後履歴取得開始ライブラリ１６０５ｔが利用されるまで、サービス履歴取得が停止される。
【０２６８】
以上説明したいくつかの実施例は、本発明の実現例を示したものであり、本発明の趣旨が実現される限り他の実現例でも実施可能である。
【０２６９】
実施例ではケーブルシステムを対象とした構成を示したが、本発明は放送システムの種類に依存しない。例えば、衛星システム、地上波システム、あるいはＩＰネットワークを用いた番組配信システムなどにも容易に適応可能である。さらに本発明は各放送システムの違いと直接的な関係を持たないため、放送システムに係らず任意の伝送媒体で適用可能である。有線、無線の違いにも依存しない。
【０２７０】
ＡＶデコーダは、必ずしも映像および音声を同時にデコードする必要はない。映像デコーダ、音声デコーダを分離した構成としても、本発明は実現可能である。またＡＶデコーダがクローズドキャプションなどのデータに対するデコード機能を持っていても差し支えない。ＡＶデコーダによってデコードされたａｕｄｉｏ信号およびｖｉｄｅｏ信号が、記録領域１４０４に蓄積されるまでの任意の段階において暗号化されてもよい。
【０２７１】
実施例では、限定視聴を制御するアダプタを導入した例を示したが、アダプタは本発明を実現するために必ずしも必要ではない。アダプタの形式がいかなるものであってもよいし、またアダプタのない構成とすることも可能である。その場合、図１５において、チューナからのＭＰＥＧ２トランスポートストリームが直接ＴＳデコーダに入力される。この場合も本発明は適用可能である。また、アダプタによる限定視聴解除をＴＳデコーダ以前に行う必要はない。任意の位置でアダプタを利用して限定視聴を解除する構成とすることは容易であり、その場合も本発明は適用可能である。
【０２７２】
ＡＶエンコーダによるａｕｄｉｏ信号およびｖｉｄｅｏ信号のエンコード形式は、任意の形式であってもよい。本発明はいかなるエンコード形式であっても適用可能である。
【０２７３】
多重器の多重形式は任意の形式であってもよい。本発明はいかなる多重形式であっても適用可能である。
【０２７４】
ディスプレイ及びスピーカは、放送再生装置内部に包含していてもよく、放送再生装置に外部ディスプレイ及びスピーカを接続してもよい。ディスプレイおよびスピーカの存在場所や数によらず、本発明は適用可能である。
【０２７５】
ＣＰＵ自身が、ＴＳデコード、ＡＶデコードのすべてあるいはいくつかの処理を兼用で行うシステムであっても本発明は実施可能である。
【０２７６】
一部のＪａｖａバーチャルマシンは、バイトコードをＣＰＵが理解可能な実行形式に翻訳してから、ＣＰＵに引渡して実行するが、この場合でも本発明は適用可能である。
【０２７７】
また、前述した全ての実施の形態では、一貫して放送波を受信し、放送波から抽出したＪａｖａプログラムを実行する端末に関して述べたが、本発明はＪａｖａプログラムの入手元を放送波に限定せず、例えばＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、光学メディアやネットワーク先であっても適用可能である。まずＨＤＤや光学メディア用ドライブ、半導体ドライブなど、データ読み出し機構を有するハードウェア構成例を図８６に示す。前述の構成要素は説明を割愛する。ドライブ８６２０は、ＨＤＤや光学メディアドライブ、半導体メディアドライブなど、固定メディアあるいは可般メディア内のデータを読み込むドライブである。
【０２７８】
ドライブ８６２０はメディアに記録されたデータを読み取って、ＴＳとしてＴＳデコーダ１３０２に流し込む。また図８７は図８６のハードウェア構成時のデータの流れを表した図である。ドライブ８６２０はＴＳをＴＳデコーダ１３０２に流し込む。以降の処理の流れは同様である。また図８８は図８６のハードウェア構成時のプログラム構成図である。ドライブ管理１６０５ｘはドライブ８６２０に対し、メディア内部のデータを読み込んでＴＳデコーダ１３０２にＴＳとして流し込むように指令を出すＪａｖａライブラリである。このようにして、ドライブからＪａｖａプログラムを読み込む場合であっても本発明は容易に適用可能である。
【０２７９】
またこの場合、Ｊａｖａプログラムは必ずしもＤＳＭ−ＣＣを利用して端末１３００に読み込まれなくてもよい。ドライブ８６２０が内容するメディアに記録されたＪａｖａプログラムはＴＳ形式ではなく、他形式で記録されている場合もあり、それを別の方法で解析して抽出する方法であってもよい。
【０２８０】
次にネットワークアダプタを利用する例を図８９に表す。ネットワークアダプタ８９２１は、外部の端末とネットワークで接続され、外部の端末上のデータを読み込んで、ＴＳデコーダ１３０２にＴＳとして送出するデバイスである。また図９０は図８９のハードウェア構成時のデータの流れを表した図である。ネットワークアダプタ８９２１はＴＳをＴＳデコーダ１３０２に流し込む。以降の処理の流れは同様である。
【０２８１】
また図９１は図８９のハードウェア構成時のプログラム構成図である。ネット管理１６０５ｗはネットワークアダプタ８９２１に対し、外部端末上のデータを読み込んでＴＳデコーダ１３０２にＴＳとして流し込むように指令を出すＪａｖａライブラリである。このようにして、ネットワークアダプタからＪａｖａプログラムを読み込む場合であっても本発明は容易に適用可能である。またこの場合、Ｊａｖａプログラムは必ずしもＤＳＭ−ＣＣを利用して端末１３００に読み込まれなくてもよい。ネットワークを介し、Ｊａｖａプログラム自体、アーカイブなど自由な形式としてＤＬされて利用されてもよい。
【０２８２】
また、前述した全ての実施の形態では、入力されるデータ形式はＴＳであったが、ＴＳでなくても、映像・音声・Ｊａｖａプログラムを選択的に取得することのできる形式であれば本発明は適用可能である。
【０２８３】
また、前述した全ての実施の形態では、一貫して端末がＪａｖａプログラムを起動することを前提としたが、Ｊａｖａ言語で記述されないプログラムであっても本発明は容易に適用可能である。
【産業上の利用可能性】
【０２８４】
本発明は、放送波より何らかのプログラムをダウンロードして実行する放送受信端末であって、さらに放送受信端末の操作履歴情報を利用してユーザ嗜好性の高い動作の実現に利用可能である。
【図面の簡単な説明】
【０２８５】
【図１】本発明に係る放送システムの構成図
【図２】本発明に係るケーブルテレビシステムにおいて放送局側システムと端末装置間の通信に使用される周波数帯域の使い方の一例を表した図
【図３】本発明に係るケーブルテレビシステムにおいて放送局側システムと端末装置間の通信に使用される周波数帯域の使い方の一例を表した図
【図４】本発明に係るケーブルテレビシステムにおいて放送局側システムと端末装置間の通信に使用される周波数帯域の使い方の一例を表した図
【図５】ＭＰＥＧ２仕様で既定されるＴＳパケットの構成図
【図６】ＭＰＥＧ２トランスポートストリームの模式図
【図７】ＭＰＥＧ２仕様で既定されるＰＥＳパケットがＴＳパケットを用いて伝送される際の分割例を表した図
【図８】ＭＰＥＧ２仕様で既定されるＭＰＥＧ２セクションがＴＳパケットを用いて伝送される際の分割例を表した図
【図９】ＭＰＥＧ２仕様で既定されるＭＰＥＧ２セクションの構成図
【図１０】ＭＰＥＧ２仕様で既定されるＭＰＥＧ２セクションの利用例を表した図
【図１１】ＭＰＥＧ２仕様で規定されるＰＭＴの利用例を表した図
【図１２】ＭＰＥＧ２仕様で規定されるＰＡＴの利用例を表した図
【図１３】本発明に係る情報処理装置のハードウェア構成の構成例を表した図
【図１４】本発明に係る情報処理装置の入力部例を表した図
【図１５】本発明に係る情報処理装置のデバイス接続例を表した図
【図１６】本発明に係る端末装置が保存するプログラム構成の構成図
【図１７】本発明に係る２次記憶部が保存する情報の一例を表した図
【図１８】本発明に係るＤＶＢ−ＭＨＰ規格が規定するＡＩＴの内容を表す模式図
【図１９】本発明に係るダウンロードアプリケーションの構成図
【図２０】本発明に係るサービス履歴マネージャの内部構成図
【図２１】本発明に係るサービス履歴管理表の一例を表した図
【図２２】本発明に係る履歴取得可能アプリ管理表の一例を表した図
【図２３】本発明に係るサービス履歴登録部のシーケンス図
【図２４】本発明に係るサービス履歴取得部のシーケンス図
【図２５】本発明に係る端末装置が実行するＥＰＧの一例を表した図
【図２６】本発明に係る端末装置が実行するＥＰＧの一例を表した図
【図２７】実施の形態２に係るサービス履歴マネージャの内部構成図
【図２８】実施の形態２に係る端末装置が保存するプログラムの構成図
【図２９】実施の形態３に係るサービス履歴管理表の一例を表した図
【図３０】実施の形態３に係るサービス履歴登録部のシーケンス図
【図３１】実施の形態３に係るサービス履歴取得部のシーケンス図
【図３２】実施の形態４に係るサービス履歴マネージャの内部構成図
【図３３】実施の形態４に係るサービス履歴最大数管理表の一例を表した図
【図３４】実施の形態４に係るサービス履歴最大数登録部のシーケンス図
【図３５】実施の形態４に係るサービス履歴登録部のシーケンス図
【図３６】実施の形態４に係る端末装置が保存するプログラムの構成図
【図３７】実施の形態５に係るサービス履歴マネージャの内部構成図
【図３８】実施の形態５に係る端末装置が保存するプログラムの構成図
【図３９】実施の形態６に係るサービス履歴マネージャの内部構成図
【図４０】実施の形態６に係る履歴記録アプリ管理表の一例を表した図
【図４１】実施の形態６に係る履歴記録アプリ登録部の動作シーケンスを表した図
【図４２】実施の形態６に係るサービス履歴登録部の動作シーケンスを表した図
【図４３】実施の形態６に係る端末装置が保存するプログラムの構成図
【図４４】実施の形態７に係るサービス履歴マネージャの内部構成図
【図４５】実施の形態７に係るザッピングタイムアウト管理表の一例を表した図
【図４６】実施の形態７に係るサービス履歴バッファの一例を表した図
【図４７】実施の形態７に係るサービス履歴タイマの動作シーケンスを表した図
【図４８】実施の形態７におけるサービス履歴登録部の動作シーケンスを表した図
【図４９】実施の形態８におけるサービス履歴マネージャの内部構成図
【図５０】実施の形態８に係る端末装置が保存するプログラムの構成図
【図５１】実施の形態９に係る端末装置が保存するプログラムの構成図
【図５２】実施の形態９に係る電源履歴マネージャの内部構成図
【図５３】実施の形態９に係る電源履歴管理表の一例を表した図
【図５４】実施の形態９に係る電源履歴取得可能アプリ管理表の一例を表した図
【図５５】実施の形態９に係る電源履歴登録部の動作シーケンスを表した図
【図５６】実施の形態９に係る電源履歴取得部の動作シーケンスを表した図
【図５７】実施の形態９に係る電源履歴マネージャの内部構成図オプション１を表した図
【図５８】実施の形態９に係る端末装置が保存するプログラムの構成図オプション１を表した図
【図５９】実施の形態９に係る電源履歴マネージャの内部構成図オプション２を表した図
【図６０】実施の形態９に係る電源履歴マネージャの内部構成図オプション２を表した図
【図６１】実施の形態１０に係る操作履歴マネージャの内部構成図
【図６２】実施の形態１０に係る操作履歴管理表の一例を表した図
【図６３】実施の形態１０に係る操作履歴取得可能アプリ管理表を表した図
【図６４】実施の形態１０に係る操作履歴登録部の動作シーケンスを表した図
【図６５】実施の形態１０に係る操作履歴取得部の動作シーケンスを表した図
【図６６】実施の形態１１に係る操作履歴取得部の動作シーケンスを表した図
【図６７】実施の形態１２に係る操作履歴マネージャの内部構成図
【図６８】実施の形態１２に係る操作履歴記録条件管理表の一例を表した図
【図６９】実施の形態１２に係る操作履歴記録条件登録部の動作シーケンスを表した図
【図７０】実施の形態１２に係る操作履歴登録部の動作シーケンスを表した図
【図７１】実施の形態１２に係る端末装置が記録するプログラムの構成図
【図７２】実施の形態１３に係る操作履歴マネージャの内部構成図
【図７３】実施の形態１３に係る端末装置が保存するプログラムの構成図
【図７４】実施の形態１４に係る操作履歴マネージャの内部構成図
【図７５】実施の形態１４に係る操作履歴最大数管理表の一例を表した図
【図７６】実施の形態１４に係る操作履歴最大数登録部の動作シーケンスを表した図
【図７７】実施の形態１４に係る操作履歴登録部の動作シーケンスを表した図
【図７８】実施の形態１４に係る端末装置が保存するプログラムの構成図
【図７９】実施の形態１５に係る操作履歴マネージャの内部構成図
【図８０】実施の形態１５に係る操作履歴保持期間管理表の一例を表した図
【図８１】実施の形態１５に係る操作履歴保持期間登録部の動作シーケンスを表した図
【図８２】実施の形態１５に係る操作履歴古エントリ削除部の動作シーケンスを表した図
【図８３】実施の形態１５に係る端末装置が保存するプログラムの構成図
【図８４】実施の形態１６に係る端末装置が保存するプログラムの構成図
【図８５】実施の形態１７に係る端末装置が保存するプログラムの構成図
【図８６】なおがきにおける端末装置のハードウェア構成例を表した図
【図８７】なおがきにおける端末装置上でのデータの流れの例を表した図
【図８８】なおがきにおける端末装置が保存するプログラムの構成図
【図８９】なおがきにおける端末装置のハードウェア構成例２を表した図
【図９０】なおがきにおける端末装置上でのデータの流れの例２を表した図
【図９１】なおがきにおける端末装置が保存するプログラムの構成図
【符号の説明】
【０２８６】
１６０６  サービス履歴マネージャ
１６０６ａ  サービス履歴管理表
１６０６ｂ  履歴取得可能アプリ管理表
１６０６ｃ  サービス履歴登録部
１６０６ｄ  サービス履歴取得部
【図１】
2009094702.tif 000003
【図２】
2009094702.tif 000004
【図３】
2009094702.tif 000005
【図４】
2009094702.tif 000006
【図５】
2009094702.tif 000007
【図６】
2009094702.tif 000008
【図７】
2009094702.tif 000009
【図８】
2009094702.tif 000010
【図９】
2009094702.tif 000011
【図１０】
2009094702.tif 000012
【図１１】
2009094702.tif 000013
【図１２】
2009094702.tif 000014
【図１３】
2009094702.tif 000015
【図１４】
2009094702.tif 000016
【図１５】
2009094702.tif 000017
【図１６】
2009094702.tif 000018
【図１７】
2009094702.tif 000019
【図１８】
2009094702.tif 000020
【図１９】
2009094702.tif 000021
【図２０】
2009094702.tif 000022
【図２１】
2009094702.tif 000023
【図２２】
2009094702.tif 000024
【図２３】
2009094702.tif 000025
【図２４】
2009094702.tif 000026
【図２５】
2009094702.tif 000027
【図２６】
2009094702.tif 000028
【図２７】
2009094702.tif 000029
【図２８】
2009094702.tif 000030
【図２９】
2009094702.tif 000031
【図３０】
2009094702.tif 000032
【図３１】
2009094702.tif 000033
【図３２】
2009094702.tif 000034
【図３３】
2009094702.tif 000035
【図３４】
2009094702.tif 000036
【図３５】
2009094702.tif 000037
【図３６】
2009094702.tif 000038
【図３７】
2009094702.tif 000039
【図３８】
2009094702.tif 000040
【図３９】
2009094702.tif 000041
【図４０】
2009094702.tif 000042
【図４１】
2009094702.tif 000043
【図４２】
2009094702.tif 000044
【図４３】
2009094702.tif 000045
【図４４】
2009094702.tif 000046
【図４５】
2009094702.tif 000047
【図４６】
2009094702.tif 000048
【図４７】
2009094702.tif 000049
【図４８】
2009094702.tif 000050
【図４９】
2009094702.tif 000051
【図５０】
2009094702.tif 000052
【図５１】
2009094702.tif 000053
【図５２】
2009094702.tif 000054
【図５３】
2009094702.tif 000055
【図５４】
2009094702.tif 000056
【図５５】
2009094702.tif 000057
【図５６】
2009094702.tif 000058
【図５７】
2009094702.tif 000059
【図５８】
2009094702.tif 000060
【図５９】
2009094702.tif 000061
【図６０】
2009094702.tif 000062
【図６１】
2009094702.tif 000063
【図６２】
2009094702.tif 000064
【図６３】
2009094702.tif 000065
【図６４】
2009094702.tif 000066
【図６５】
2009094702.tif 000067
【図６６】
2009094702.tif 000068
【図６７】
2009094702.tif 000069
【図６８】
2009094702.tif 000070
【図６９】
2009094702.tif 000071
【図７０】
2009094702.tif 000072
【図７１】
2009094702.tif 000073
【図７２】
2009094702.tif 000074
【図７３】
2009094702.tif 000075
【図７４】
2009094702.tif 000076
【図７５】
2009094702.tif 000077
【図７６】
2009094702.tif 000078
【図７７】
2009094702.tif 000079
【図７８】
2009094702.tif 000080
【図７９】
2009094702.tif 000081
【図８０】
2009094702.tif 000082
【図８１】
2009094702.tif 000083
【図８２】
2009094702.tif 000084
【図８３】
2009094702.tif 000085
【図８４】
2009094702.tif 000086
【図８５】
2009094702.tif 000087
【図８６】
2009094702.tif 000088
【図８７】
2009094702.tif 000089
【図８８】
2009094702.tif 000090
【図８９】
2009094702.tif 000091
【図９０】
2009094702.tif 000092
【図９１】
2009094702.tif 000093